html,
body,
* {
  font-family: 'Roboto', sans-serif !important;
}



.ant-carousel .slick-prev,
.ant-carousel .slick-prev:hover,
.ant-carousel .slick-prev:focus {
  font-size: inherit;
  left: 10px;
  z-index: 2;
  color: #333;
}

.ant-carousel .slick-next,
.ant-carousel .slick-next:hover,
.ant-carousel .slick-next:focus {
  font-size: inherit;
  right: 10px;
  z-index: 2;
  color: #41009a;
}

.ant-carousel .slick-dots li button {
  background: #41009a;
}

.ant-carousel .slick-dots li.slick-active button {
  background: #41009a;
  opacity: 1;
}

.ant-btn-primary {
  background: #333;
}

.ant-btn-primary:not(:disabled):not(.ant-btn-disabled):hover {
  color: #fff;
  background: #40009a6e;
}

/* ==================== DEFAULT SELECT STYLES ==================== */
.ant-select-focused {
  border-radius: 7px;
  color: var(--bs-body-color);
  background-color: var(--bs-form-control-bg);
  border-color: #86b7fe;
  box-shadow: 0 0 0 0.25rem rgb(13 110 253 / 25%);
}

.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
  padding: 20px 10px 4px 11px;
  min-height: 56px;
}

.ant-select {
  padding: 0 !important;
  height: 58px;
  width: 100%;
  border: 1px solid transparent !important;
}

.ant-select .ant-select-selection-placeholder {
  color: rgba(0, 0, 0, 1) !important;
}

.ant-select-selection-search-input {
  padding-top: 10px !important;
}

.ant-select-selector {
  border: 0 !important;
}

.ant-select-single .ant-select-selector .ant-select-selection-search {
  top: 16px;
  border: 0 !important;
}

.ant-select-selection-search {
  top: 0 !important;
}

.ant-select .ant-select-selector {
  padding: 16px 13px 4px 5px;
  min-height: 58px;
  border: 1px solid #d9d9d9 !important;
  background: #ffffff;
}

.ant-select-outlined.ant-select-multiple .ant-select-selection-item {
  background: #d1bfeb !important;
}

/* ==================== NO STYLE OVERRIDE - FULL RESET ==================== */
/* .noSelectStyle içindeki select'leri tamamen Ant Design default'a döndür */

.noSelectStyle .ant-select-focused {
  border-radius: unset;
  color: unset;
  background-color: unset;
  border-color: unset;
  box-shadow: unset;
}

.noSelectStyle .ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
  padding: 0 11px !important;
  min-height: 32px !important;
}

.noSelectStyle .ant-select {
  padding: unset !important;
  height: auto !important;
  width: 100%;
  border: none !important;
}

.noSelectStyle .ant-select .ant-select-selection-placeholder {
  color: rgba(0, 0, 0, 0.25) !important;
}

.noSelectStyle .ant-select-selection-search-input {
  padding-top: 0 !important;
}

.noSelectStyle .ant-select-selector {
  border: 1px solid #d9d9d9 !important;
}

.noSelectStyle .ant-select-single .ant-select-selector .ant-select-selection-search {
  top: 0 !important;
  inset-inline-start: 11px !important;
  inset-inline-end: 11px !important;
  border: none !important;
}

.noSelectStyle .ant-select-selection-search {
  top: unset !important;
  inset-inline-start: 11px;
  inset-inline-end: 11px;
}

.noSelectStyle .ant-select .ant-select-selector {
  padding: 0 11px !important;
  min-height: 32px !important;
  border: 1px solid #d9d9d9 !important;
  background: #ffffff;
  border-radius: 6px;
}

.noSelectStyle .ant-select-outlined.ant-select-multiple .ant-select-selection-item {
  background: #f5f5f5 !important;
  border: 1px solid #d9d9d9;
}

/* Focus state */
.noSelectStyle .ant-select-focused .ant-select-selector {
  border-color: #4096ff !important;
  box-shadow: 0 0 0 2px rgba(5, 145, 255, 0.1) !important;
  outline: 0;
}

/* Disabled state */
.noSelectStyle .ant-select-disabled .ant-select-selector {
  color: rgba(0, 0, 0, 0.25);
  background: #f5f5f5;
  cursor: not-allowed;
}

/* Large size override */
.noSelectStyle .ant-select-large {
  height: auto !important;
}

.noSelectStyle .ant-select-large .ant-select-selector {
  padding: 7px 11px !important;
  min-height: 40px !important;
}

.noSelectStyle .ant-select-large .ant-select-selection-search {
  inset-inline-start: 11px;
  inset-inline-end: 11px;
}

.noSelectStyle .ant-select-large .ant-select-selection-item {
  line-height: 24px;
}

.tree-is-invalid .ant-select .ant-select-selector {
  border-color: var(--bs-danger) !important;
  
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 12%27 width=%2712%27 height=%2712%27 fill=%27none%27 stroke=%27%23dc3545%27%3e%3ccircle cx=%276%27 cy=%276%27 r=%274.5%27/%3e%3cpath stroke-linejoin=%27round%27 d=%27M5.8 3.6h.4L6 6.5z%27/%3e%3ccircle cx=%276%27 cy=%278.2%27 r=%27.6%27 fill=%27%23dc3545%27 stroke=%27none%27/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(0.375em + 1.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
  transition: none !important;
}


.tree-is-invalid .react-tel-input .form-control {

  border-color: var(--bs-danger) !important;
  
  
    background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 12%27 width=%2712%27 height=%2712%27 fill=%27none%27 stroke=%27%23dc3545%27%3e%3ccircle cx=%276%27 cy=%276%27 r=%274.5%27/%3e%3cpath stroke-linejoin=%27round%27 d=%27M5.8 3.6h.4L6 6.5z%27/%3e%3ccircle cx=%276%27 cy=%278.2%27 r=%27.6%27 fill=%27%23dc3545%27 stroke=%27none%27/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right calc(0.375em + 0.2575rem) center;
    background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
    transition: none !important;
}

.ant-otp-input {
  padding-top: 0.900rem;
  padding-bottom: 0.900rem;
}

.ant-otp-input:focus {
  color: var(--bs-body-color);
  background-color: var(--bs-body-bg);
  border-color: #a080cd;
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(65, 0, 154, 0.25);
}

.ant-otp-input:hover {
  color: var(--bs-body-color);
  background-color: var(--bs-body-bg);
  border-color: #a080cd;
  outline: 0;

}

.ant-select-focused .ant-select-selector {
  border: 0 !important
}

.ant-select-focused {
  border-radius: 7px;
  color: var(--bs-body-color);
  background-color: var(--bs-form-control-bg);
  border-color: #a080cd;
  box-shadow: 0 0 0 0.25rem rgba(65, 0, 154, 0.25);
}

.ant-otp .ant-otp-input {
  font-weight: bold;
}

.float-label {
  position: relative;

}

.label {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  height: 100%;
  padding: 1rem 0.75rem;
  overflow: hidden;
  text-align: start;
  text-overflow: ellipsis;
  white-space: nowrap;
  pointer-events: none;
  border: var(--bs-border-width) solid transparent;
  transform-origin: 0 0;
  top: 2px;
  transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;
}

.label-float {
  top:0;
  transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
  color: rgba(var(--bs-body-color-rgb), 0.65)
}

/*
Popup
*/
.modals {
  position: fixed;

  width: 100%;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  height: 100vh;
  z-index: 901;
}


.backdrop {
  position: fixed;
  background-color: rgba(255, 255, 255, 0.65);
  width: 100%;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  height: 100vh;
  z-index: 900;
}


.modals .modals-container {
  width: 60%;


  position: absolute;
  z-index: 902;
  min-height: 20vh;
  max-height: 80vh;
  background-color: white;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);

}

#cc-main {
  --cc-btn-primary-bg: #41009a !important;
}
.ant-dropdown-menu-item-selected {
  color: #41009a !important;
}
.ant-typography {
  color: #41009a !important;
}

.ant-table-header {
  border-bottom: 3px solid #41009a;
 
  overflow: hidden;
  top: 0;
}

.spinLoadingBackground {
  position: absolute;
    z-index: 99;
    display: flex;
    /* align-content: center; */
    justify-content: center;
    width: 100%;
    height: 100%;
    align-items: center;
    background-color: rgba(255, 255, 255, 0.6);
}

.ant-spin {
  color: #41009a !important;
}

.statusContainer {
  position: absolute;
  right: 15px;
  top: 15px;
}
/* ==================== POS — noSelectStyle KOYU TEMA İSTİSNASI ==================== */
/* .noSelectStyle panelin AÇIK teması için yazılmış bir sıfırlamadır:
   min-height 32px, açık gri kenarlık ve koyu placeholder rengi dayatır.
   Servis ekranı koyu temalı ve tablet için 52px dokunma hedefli olduğundan
   bu üçü de orada bozulmaya yol açar. Aşağısı yalnızca .pos-root içinde
   geçerlidir; panelin görünümü değişmez.
   Taban kurallar !important olduğu için burada da gerekli. */

.pos-root .noSelectStyle .ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
  min-height: 52px !important;   /* dokunma hedefi */
  padding: 0 14px !important;
  display: flex !important;
  align-items: center !important;
}

.pos-root .noSelectStyle .ant-select .ant-select-selector,
.pos-root .noSelectStyle .ant-select-selector {
  background-color: #0f172a !important;
  border: 1px solid #334155 !important;
  border-radius: 10px !important;
  color: #e2e8f0 !important;
}

.pos-root .noSelectStyle .ant-select-selection-item,
.pos-root .noSelectStyle .ant-select-selection-search-input {
  color: #e2e8f0 !important;
  font-size: 16px !important;    /* iOS'ta odaklanınca zoom tetiklenmesin */
  line-height: 52px !important;
}

/* Taban kural placeholder'ı rgba(0,0,0,.25) yapıyor — koyu zeminde görünmez. */
.pos-root .noSelectStyle .ant-select .ant-select-selection-placeholder {
  color: #64748b !important;
  line-height: 52px !important;
}

.pos-root .noSelectStyle .ant-select-focused .ant-select-selector {
  border-color: #059669 !important;
  box-shadow: 0 0 0 2px rgba(5, 150, 105, .2) !important;
}

.pos-root .noSelectStyle .ant-select-arrow,
.pos-root .noSelectStyle .ant-select-clear {
  color: #94a3b8 !important;
}
.pos-root .noSelectStyle .ant-select-clear {
  background: #0f172a !important;
}

/* ===========================================================================
   POS — telefon
   ===========================================================================
   Yerleşimi bileşen içindeki kırılım noktası yapıyor; burada yalnızca
   tarayıcı davranışı düzeltiliyor. Hepsi .pos-root ile sınırlı, panele
   dokunmuyor. */

.pos-root {
  /* iOS yatay çevirince yazıyı kendiliğinden büyütüyor ve dokunmatik
     ölçüler kayıyordu. */
  -webkit-text-size-adjust: 100%;
}

/* Dokununca çıkan gri kutu, koyu temada leke gibi duruyor. */
.pos-root button,
.pos-root .ant-btn,
.pos-root .ant-segmented-item {
  -webkit-tap-highlight-color: transparent;
}

@media (max-width: 767px) {
  /* Yatay kaydırma: bir çocuk taşarsa tüm ekran yana kayıyor ve masa planı
     hizasından çıkıyordu. */
  .pos-root {
    overflow-x: hidden;
  }

  /* Yatay kaydırılan durum şeridinde kaydırma çubuğu yer kaplamasın. */
  .pos-root ::-webkit-scrollbar {
    height: 0;
    width: 0;
  }

  /* Segmented iki uzun etiketi sıkıştırıyor; dokunma hedefi 44px altına
     inmesin. */
  .pos-root .ant-segmented-item-label {
    min-height: 44px;
    line-height: 44px;
    padding: 0 10px;
    font-size: 15px;
  }

  /* Alttan açılan çekmecede başlık yüksekliği ekranın çoğunu yiyordu. */
  .pos-root .ant-drawer-header {
    padding: 12px 16px;
  }

  /* Hesap kapatma penceresi telefonda kenarlara yapışmasın. */
  .pos-root .ant-modal,
  .ant-modal-root .ant-modal {
    max-width: calc(100vw - 24px);
    margin: 0 auto;
  }

  /* 16px altı yazıda iOS odaklanınca sayfayı yakınlaştırıyor ve kullanıcı
     geri çıkamıyor. Tüm metin girişleri için geçerli olmalı. */
  .pos-root input,
  .pos-root textarea,
  .pos-root .ant-input,
  .pos-root .ant-input-number-input {
    font-size: 16px;
  }
}

/* Çift dokunmayla yakınlaştırma. meta user-scalable=no bunu iOS'ta
   engellemiyor; touch-action gerekiyor. "manipulation" kaydırmayı ve
   dokunmayı bırakır, yalnızca çift dokunma yakınlaştırmasını kaldırır. */
.pos-root,
.pos-root * {
  touch-action: manipulation;
}

/* ---------------------------------------------------------------------------
   POS — koyu tema giriş alanları
   ---------------------------------------------------------------------------
   noSelectStyle yalnızca Select'i kapsıyordu; Input, InputNumber ve Segmented
   açık temada kalıp koyu ekranda beyaz kutular olarak duruyordu. */

.pos-root .ant-input,
.pos-root .ant-input-affix-wrapper,
.pos-root .ant-input-number,
.pos-root .ant-input-number-input,
.pos-root .ant-input-number-group-addon {
  background-color: #0f172a !important;
  border-color: #334155 !important;
  color: #e2e8f0 !important;
}

.pos-root .ant-input::placeholder,
.pos-root .ant-input-number-input::placeholder {
  color: #64748b !important;
}

.pos-root .ant-input-affix-wrapper > .ant-input {
  background-color: transparent !important;
}

.pos-root .ant-input-affix-wrapper:focus-within,
.pos-root .ant-input:focus,
.pos-root .ant-input-number-focused {
  border-color: #059669 !important;
  box-shadow: 0 0 0 2px rgba(5, 150, 105, .2) !important;
}

.pos-root .ant-input-prefix,
.pos-root .ant-input-suffix,
.pos-root .ant-input-clear-icon,
.pos-root .ant-input-number-handler-wrap {
  color: #94a3b8 !important;
  background-color: transparent !important;
}

/* Segmented: açık zemin koyu ekranda kesip atılmış gibi duruyordu. */
.pos-root .ant-segmented {
  background-color: #1e293b !important;
  color: #94a3b8 !important;
}

.pos-root .ant-segmented-item-selected {
  background-color: #059669 !important;
  color: #fff !important;
}

.pos-root .ant-segmented-item:hover:not(.ant-segmented-item-selected) {
  background-color: #334155 !important;
}

.pos-root .ant-segmented-item-label {
  color: inherit !important;
}

/* InputNumber "prefix" ile kullanılınca antd dıştan bir affix sarmalayıcı
   ekliyor. Yalnızca içteki .ant-input-number koyulaştığı için beyaz çerçeve
   içinde siyah kutu görünüyordu. Sarmalayıcı da koyulaşmalı, iç kısım ise
   saydam kalmalı. */
.pos-root .ant-input-number-affix-wrapper {
  background-color: #0f172a !important;
  border-color: #334155 !important;
  color: #e2e8f0 !important;
}

.pos-root .ant-input-number-affix-wrapper .ant-input-number,
.pos-root .ant-input-number-affix-wrapper .ant-input-number-input,
.pos-root .ant-input-number-affix-wrapper .ant-input-number-input-wrap {
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.pos-root .ant-input-number-affix-wrapper:focus-within {
  border-color: #059669 !important;
  box-shadow: 0 0 0 2px rgba(5, 150, 105, .2) !important;
}

/* Varsayılan butonlar ("Sorgula", "Kapat") açık temada kalıp koyu ekranda
   beyaz lekeler oluşturuyordu. Birincil ve tehlike butonlarına dokunulmuyor. */
.pos-root .ant-btn-default {
  background-color: #1e293b !important;
  border-color: #334155 !important;
  color: #e2e8f0 !important;
}

.pos-root .ant-btn-default:hover,
.pos-root .ant-btn-default:focus {
  background-color: #334155 !important;
  border-color: #475569 !important;
  color: #fff !important;
}

.pos-root .ant-btn-default:disabled,
.pos-root .ant-btn-default.ant-btn-disabled {
  background-color: #1e293b !important;
  border-color: #334155 !important;
  color: #475569 !important;
}
