/* 
   DATAPA CRM Modern UI Overrides 
   Strategy: Soft UI, Inter Font, Breathable Spacing
*/

/* Inter YEREL: assets/css/fonts.css + assets/webfonts/. Burada ayrıca Google
   Fonts'tan @import ediliyordu — hem "CDN referansı yok" kuralını çiğniyor hem
   de aynı aileyi ikinci kez indiriyordu. Üstelik @import render'ı bloklar ve
   ağ yoksa font takılır. */
:root {
  --font-primary: "Inter", sans-serif;
  --radius-md: 10px;
  --radius-sm: 6px;
  --shadow-soft: 0 5px 20px rgba(0, 0, 0, 0.05);
  --shadow-hover: 0 12px 30px rgba(0, 0, 0, 0.25);
  --transition-fast: all 0.1s ease-in-out;
}

/* 1. Global Typography */
body,
h1,
h2,
h3,
h4,
h5,
h6,
.tooltip,
.popover {
  font-family: var(--font-primary) !important;
}

body {
  letter-spacing: -0.015em; /* Modern tight spacing */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 2. Cars & Tiles (Soft UI) */
.tile,
.card {
  border: none !important;
  border-radius: var(--radius-md) !important;
  box-shadow: var(--shadow-soft) !important;
  transition: var(--transition-fast);
}

.tile:hover,
.card:hover {
  box-shadow: var(--shadow-hover) !important;
}

/* 3. Buttons (Modern Feel) */
.btn {
  border-radius: var(--radius-sm) !important;
  font-weight: 500;
  padding: 0.5rem 1.2rem; /* More breathing room */
  transition: var(--transition-fast);
  letter-spacing: 0.3px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); /* Subtle depth */
}

.btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.btn-xs,
.btn-sm {
  padding: 0.25rem;
  font-size: 0.85rem;
}

/* 4. Form Controls (Inputs) */
.form-control,
.select2-container--default .select2-selection--single {
  border-radius: var(--radius-sm) !important;
  border: 1px solid var(--app-border);
  padding: 0.5rem 0.8rem;
  height: auto !important; /* Fix fixed height issues */
  min-height: 38px;
  box-shadow: none !important;
  transition: border-color 0.2s ease;
}

.form-control:focus {
  border-color: var(--app-brand) !important;
  background-color: var(--app-surface);
}

/* 5. Tables (Breathing Room)
   Renkler sabit slate idi (#64748b başlık, #f1f5f9 hücre ayracı). #f1f5f9
   neredeyse beyaz: koyu temada tablo hücrelerinin arası parlak çizgiye
   dönüşüyordu — üstelik Tabler'ın --tblr-table-border-color üzerinden gelen
   doğru rengi eşit özgüllükle eziyordu. */
.table th {
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  font-size: 0.75rem;
  color: var(--app-text-muted);
  border-bottom-width: 1px !important;
  padding: 0.35rem 0.5rem !important; /* Extremely Compact */
}

.table td {
  vertical-align: middle !important;
  padding: 0.35rem 0.5rem !important; /* Extremely Compact */
  border-color: var(--app-border);
}

/* Tabler `.table-bordered` hücrelere `border-width: 0 1px` verip alt çizgiyi
   sıfırlıyordu — satırlar arası ayraç kayboluyordu. Dikey çizgiler kalır. */
.table-bordered > tbody > tr > td,
table.table-bordered.dataTable > tbody > tr > td {
  border-bottom-width: 1px;
}

/* 6. Modals */
.modal-content {
  border: none;
  border-radius: 12px;
  box-shadow: 0 15px 50px var(--app-shadow-color);
}

/* Dolgular 1.5rem idi: tek alanlık bir modalda (ör. "Özel Prim") 99px'lik
   içerik 257px'lik kutuya oturuyor, yarıdan fazlası boşluk kalıyordu — ölçüldü.
   Başlık + gövde + son öğe boşluğu birlikte ~40px kazandırıyor; büyük
   modallarda fark hissedilmiyor, küçüklerde kutu içeriğe oturuyor. */
/* Yatay dolgular gövdeyle aynı: başlık metni ile içerik aynı hizada başlasın. */
.modal-header {
  border-bottom: 1px solid var(--app-border);
  padding: 0.75rem 0.60rem;
}

.modal-body {
  padding: 0.60rem;
}

/* Gövdenin son öğesindeki alt boşluk (form alanlarındaki `mb-2`/`mb-3`)
   modal dolgusuyla üst üste biniyordu. Bootstrap aynısını .card-body ve
   .alert için zaten yapıyor. */
.modal-body > *:last-child,
.modal-body > form > *:last-child {
  margin-bottom: 0;
}

.modal-footer {
  border-top: 1px solid var(--app-border);
  padding: 0.75rem 0.60rem;
}

/* 7. Dropdowns */
.dropdown-menu {
  border: none;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  border-radius: var(--radius-md);
  padding: 0.5rem;
}

.dropdown-item {
  border-radius: 6px;
  margin-bottom: 2px;
  padding: 8px 16px;
}

.dropdown-item:hover {
  background-color: var(--app-surface-3);
  color: var(--app-brand);
}

/* Dark Mode Adjustments (Only apply if dark.css is loaded, handled by cascading) */

/* 8. Level 2: Advanced Modernization (The "Wow" Factor) */

/* 8.1 Custom Scrollbars — kural TEK yerde: app-tabler.css. Buradaki kopya
   tutamağı marka indigosu yapıyordu; app-tabler.css sonra yüklendiği için zaten
   eziliyordu (ölü kod) ama okuyanı iki farklı gerçekle karşılıyordu. */

/* 8.2 Glassmorphism Header */
/* 8.2 Glassmorphism Header - Updated with Texture */
/* Kabuk dokusu artık token'dan: açık temada nebula görseli, koyu temada aynı
   aileden bir gradyan (bkz. theme-*.css). Blend de token — gradyan overlay ile
   harmanlanırsa ton bozulur. */
.app-header {
  /* Sabit rgba(15,23,42,.85) yazılıydı; koyu temada gövdeyle farklı bir mavi
     tona düşüyordu. Kabuk rengi artık token'dan. */
  background-color: var(--app-shell) !important;
  background-image: var(--app-header-texture) !important;
  background-blend-mode: var(--app-shell-blend);
  background-size: cover;
  background-position: center top;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;
  border-bottom: 1px solid var(--app-shell-border);
}

/* Logo kutusu çubuğun dokusunu KENDİ kutusuna cover'lıyordu: 200px'lik kutuda
   kırpım farklı düşüyor, aynı görsel olmasına rağmen çubuktan ayrı bir renk
   çıkıyordu (ekranda logo altındaki ton kayması). Kutu artık saydam, doku
   .app-header'dan kesintisiz geçiyor. */
.app-header__logo {
  background: transparent !important;
  color: var(--app-shell-text);
  border-inline-end: 1px solid var(--app-shell-border) !important; /* Subtle separator */
}

/* 8.3 Modern Sidebar (Sleek & Professional) */
/* 8.3 Modern Sidebar (Sleek & Professional) */
.app-sidebar {
  /* Kabuk rengi token'dan: koyu temada sidebar ile ana gövde aynı aileden
     olsun (eskiden sabit rgba(15,23,42,.85) idi ve gövdeden kopuyordu). */
  background-color: var(--app-shell) !important;
  box-shadow: 10px 0 30px rgba(0, 0, 0, 0.1) !important;
  background-blend-mode: var(--app-shell-blend);
  background-image: var(--app-sidebar-texture);
  background-size: cover;
  background-position: center;
  /* Koyu temada kabuk (#11151d) ile gövde (#0c0f16) arasında ~%2 fark var;
     doku kalkınca sınır tamamen kayboluyordu. Ayraç çizgisi bunu tutuyor. */
  border-inline-end: 1px solid var(--app-shell-border);
}

/* User Section Refined */
.app-sidebar__user {
  padding: 20px;
  margin-bottom: 10px;
  border-bottom: 1px solid var(--app-shell-border);
}

.app-sidebar__user-avatar {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  object-fit: cover;
  border: 2px solid rgba(var(--app-brand-rgb), 0.3);
}

.app-sidebar__user-name {
  font-size: 1rem;
  font-weight: 600;
}

.app-menu__item {
  border-inline-start: none !important;
  border-radius: 10px;
  margin: 3px 8px; /* Reduced margin to give more space */
  padding: 10px 12px !important; /* Reduced padding for more text space */
  transition: var(--transition-fast);
  color: var(--app-shell-muted) !important;
  display: flex;
  align-items: center;
  font-size: 0.9rem; /* Slightly smaller for better fit */
}

.app-menu__item:hover {
  background: var(--app-shell-hover);
  color: var(--app-shell-text) !important;
  transform: translateX(4px);
}

.app-menu__item.active {
  background: var(--app-brand) !important;
  box-shadow: 0 4px 12px rgba(var(--app-brand-rgb), 0.2);
  color: var(--app-brand-contrast) !important;
}

.app-menu__icon {
  font-size: 1rem;
  margin-inline-end: 10px;
  margin-inline-start: -4px;
  width: 20px;
  flex-shrink: 0; /* Keep icon size fixed */
}

.app-menu__label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1; /* Allow label to grow and push indicator */
}

.treeview-indicator {
  margin-inline-start: 5px;
  flex-shrink: 0; /* Ensure arrow doesn't disappear */
}

/* Submenu (Treeview) Refinements */
.treeview-menu {
  background: transparent !important;
  padding-inline-start: 6px !important; /* Reduced from 25px */
  margin-inline-start: 12px !important; /* Reduced from 20px */
  border-inline-start: 1px solid var(--app-shell-border); /* Guide line */
}

.treeview-item {
  font-size: 0.85rem; /* Slightly smaller for density */
  padding: 6px !important; /* More compact */
  color: var(--app-shell-muted) !important;
  border-radius: 8px;
  margin: 1px 0;
  transition: var(--transition-fast);
}

.treeview-item:hover {
  background: var(--app-shell-hover) !important;
  color: var(--app-shell-text) !important;
  padding-inline-start: 14px !important;
}

/* Koyu kabukta düz --app-brand okunmuyordu; kabuk üstü varyant. */
.treeview-item.active {
  color: var(--app-brand-on-shell) !important;
  font-weight: 600;
  background: rgba(var(--app-brand-rgb), 0.14) !important;
}

.treeview-item i {
  font-size: 0.7rem !important; /* Smaller bullet icon */
  opacity: 0.8;
  margin-inline-end: 8px;
  color: var(--app-brand-on-shell);
}

/* Sidebar Badges */
.app-sidebar .badge {
  color: #fff !important; /* Always white for readability */
  font-size: 0.7rem;
  padding: 3px 7px;
  border-radius: 6px;
  font-weight: 600;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  border: 1px solid var(--app-shell-border); /* Soft border inside color */
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

/* Optional: Soften the badge colors slightly */
.treeview-item .badge {
  opacity: 0.9;
  letter-spacing: 0.5px;
}

/* Kabuk breakpoint'i 992'ye taşındı — gerekçe responsive.css §1'de. */
@media (min-width: 992px) {
  /* Fix: Sidebar Mini Mode (sidenav-toggled) - ONLY ON DESKTOP */
  .sidebar-mini.sidenav-toggled .app-sidebar {
    width: 50px !important;
    padding-inline-start: 0 !important;
    padding-inline-end: 0 !important;
  }

  .sidenav-toggled .app-sidebar__user {
    padding: 15px 0 !important;
    justify-content: center !important;
    display: flex !important;
    width: 50px !important;
  }

  .sidenav-toggled .app-sidebar__user-avatar {
    margin-inline-end: 0 !important;
    width: 32px !important;
    height: 32px !important;
    border-radius: 8px !important;
  }

  /* Centered Premium Tiles for Mini Sidebar */
  .sidenav-toggled .app-menu__item {
    width: 40px !important;
    height: 40px !important;
    margin: 4px auto !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 10px !important;
    border-inline-start: none !important;
    transition: all 0.2s ease !important;
    position: relative;
    float: none !important;
  }

  .sidenav-toggled .app-menu__icon {
    margin: 0 !important;
    width: 100% !important;
    height: auto !important;
    font-size: 1.2rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
  }

  .sidenav-toggled .treeview-indicator {
    display: none !important;
  }

  .sidebar-mini.sidenav-toggled .app-menu__item.active {
    border-radius: 10px !important;
    width: 40px !important;
    margin: 4px auto !important;
    background: var(--app-brand) !important;
    box-shadow: 0 4px 12px rgba(var(--app-brand-rgb), 0.4) !important;
  }

  /* Fix for expanded treeviews in mini mode */
  .sidenav-toggled .treeview.is-expanded > .app-menu__item {
    background: var(--app-shell-hover) !important;
  }

  .sidenav-toggled .treeview {
    position: relative !important;
    width: 50px !important;
  }

  .sidenav-toggled .treeview-menu {
    position: absolute !important;
    inset-inline-start: 50px !important;
    top: 0 !important;
    /* Sabit #1e293b slate idi: kabuğun ne açık ne koyu tonuyla akrabaydı,
       mini modda açılan uçan menü ayrı bir maviye düşüyordu. */
    background: var(--app-shell-2) !important; /* Shorthand override */
    min-width: 280px !important;
    box-shadow: 10px 10px 30px rgba(0, 0, 0, 0.4) !important;
    border-radius: 0 12px 12px 0 !important;
    padding: 6px !important;
    margin-inline-start: -2px !important;
    border: 1px solid var(--app-shell-border) !important;
    border-inline-start: 2px solid var(--app-brand) !important;
    height: auto !important; /* Fit content nicely */
    min-height: 0 !important; /* Kill default height */
    max-height: 70vh !important; /* User requested ~70vh */
    overflow-y: auto !important;
    z-index: 99999 !important;
  }

  /* Modern & Slim Scrollbar for Pop-out Menu */
  .sidenav-toggled .treeview-menu::-webkit-scrollbar {
    width: 6px;
  }

  .sidenav-toggled .treeview-menu::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.05);
    border-radius: 10px;
  }

  .sidenav-toggled .treeview-menu::-webkit-scrollbar-thumb {
    background: var(--app-brand);
    border-radius: 10px;
  }

  .sidenav-toggled .treeview-menu::-webkit-scrollbar-thumb:hover {
    background: rgba(var(--app-brand-rgb), .7);
  }

  /* Hover Bridge - Fill the gap between icon and menu */
  .sidenav-toggled .treeview::after {
    content: "";
    position: absolute;
    top: 0;
    inset-inline-end: -10px;
    width: 15px;
    height: 100%;
    z-index: 5;
  }

  /* Pop-out Labels Modernization */
  .sidebar-mini.sidenav-toggled .app-menu__label {
    background-color: var(--app-shell-2) !important;
    color: var(--app-shell-text) !important;
    inset-inline-start: 50px !important;
    padding: 12px !important;
    box-shadow: 10px 5px 25px rgba(0, 0, 0, 0.3) !important;
    border-radius: 0 10px 10px 0 !important;
    border: 1px solid var(--app-shell-border) !important;
    border-inline-start: 2px solid var(--app-brand) !important; /* Add Brand Connector */
    margin-inline-start: -9px !important; /* Overlap more aggressively */
    font-weight: 500 !important;
    z-index: 1000 !important;
  }

  .sidenav-toggled .treeview-item:hover {
    background: var(--app-shell-hover) !important;
    padding-inline-start: 16px !important;
  }
}

/* 9.7 Mobile Specific Sidebar Fixes */
/* Kabuk breakpoint'i 992'ye taşındı — gerekçe responsive.css §1'de.
   Kenar çubuğunun konum/ölçü kuralları (width/top/padding/left/transition)
   ve tıklama davranışı artık responsive.css §1+§3'te tek yerde; burada
   yalnızca bu dosyanın kendi görsel kararları kaldı. */
@media (max-width: 991.98px) {
  /* Üstteki kural zaten token'dan besleniyor; buradaki body.dark-mode kopyası
     sabit #1e293b/#cbd5e1 ile mobil arama kutusunu yüzey paletinin dışına
     çıkarıyordu. */
  #msearch .form-control {
    background: var(--app-surface-2) !important;
    color: var(--app-text) !important;
    border-color: var(--app-border) !important;
  }
}

/* 8.5 Badge Polish */

/* 9. Level 3: Professional Minimalism (Linear Style) */

/* 9.1 Professional Typography Features */
body,
h1,
h2,
h3,
h4,
h5,
h6,
.table {
  font-feature-settings:
    "cv11", "ss01"; /* Cleaner characters for data display */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 9.2 Linear Design - Breathable layout without harsh borders */
.card,
.tile {
  box-shadow: var(--shadow-soft) !important;
  border: none !important;
}

/* Dark Mode Specifics for Linear Style */
/* Dark Mode Specifics for Linear Style */
/* Note: Colors have been migrated to assets/css/dark.css */

.assigned-users-list {
  max-height: 200px;
  overflow-y: auto;
  background-color: var(--app-surface-2);
  border-radius: 8px;
  border: 1px solid var(--app-border) !important;
}

/* Waha Chat Account List */
.account-list-avatar {
  background: var(--app-surface-3);
}

.dropdown-item.active .account-list-avatar {
  background: rgba(255, 255, 255, 0.2);
}

.table-footer-spacer {
  background-color: var(--app-surface-2) !important;
}

/* 10. Global Overrides & Fixes */
/* Fix Bootstrap Select Z-Index Issue */
.bootstrap-select .dropdown-menu {
  z-index: 99999 !important; /* Force on top of everything including modals */
}

/* Ensure container also has high index if needed */
.bootstrap-select.show .dropdown-menu.show {
  z-index: 99999 !important;
}

/* Buradaki blok eskiden `body.dark-mode` altinda kendi slate paletini
   (#0f172a / #1e293b / #334155) zorluyordu; theme.css token'lari devreye girince
   sayfada iki ayri koyu ton cakisiyordu. Artik kurallar tema-bagimsiz, degerler
   token'dan geliyor: ayni satirlar hem acik hem koyu temada dogru sonucu veriyor. */
.card,
.tile {
  background: var(--app-surface);
}

.form-control,
.form-select,
.dt-search input,
.dt-length select,
.dataTables_filter input,
.dataTables_length select {
  background-color: var(--app-surface-2);
  border-color: var(--app-border);
  color: var(--app-text);
}

.form-control:focus {
  border-color: var(--app-brand);
  background-color: var(--app-surface-2);
  color: var(--app-text);
}

.table thead th {
  background-color: var(--app-surface-2);
  color: var(--app-text-muted);
  border-bottom: 1px solid var(--app-border);
}

.table td {
  border-color: var(--app-border);
  color: var(--app-text);
}

.page-link {
  background-color: var(--app-surface-2);
  border-color: var(--app-border);
}

.dropdown-menu {
  background-color: var(--app-surface);
  border: 1px solid var(--app-border);
}

.dropdown-item {
  color: var(--app-text);
}

.dropdown-item:hover,
.dropdown-item:focus {
  background-color: var(--app-surface-3);
  color: var(--app-text);
}

/* 9.4 Refined Inputs - Focus Styles */
.form-control:focus,
.select2-container--default.select2-container--open .select2-selection--single {
  box-shadow: none !important;
  border-color: var(--app-brand) !important;
}


/* 9.8 Input Group Polish (Unified Corners) */
.input-group > .form-control:not(:last-child),
.input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.input-group > .form-control:not(:first-child),
.input-group > .input-group-append > .btn,
.input-group > .input-group-append > .input-group-text {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
}

.input-group > .form-control:not(:first-child):not(:last-child) {
  border-radius: 0 !important;
}

/* Etiket butonu (Statü/Yetkili/Ürün) alanın yanında: iç köşeler düz olsun. */
.input-group > .btn:not(:last-child) {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

/* Sayfa zemini gri; --app-border alan kenarlığını zeminle aynı tonda bırakıp
   gizliyordu. İçerik alanındaki gruplarda güçlü kenarlık kullanılır. */
.app-content .input-group > .form-control,
.app-content .input-group > .ts-wrapper {
  border-color: var(--app-border-strong);
}

/* Fix for middle elements like select in type picker */
.input-group > select.form-control:not(:first-child):not(:last-child) {
  border-radius: 0 !important;
  margin-inline-start: -1px;
}

.table-responsive {
  border: none !important;
}

.table thead th {
  background: var(--app-surface-2);
  border-bottom: 1px solid var(--app-border);
  font-weight: 600;
  color: var(--app-text-muted);
}

/* 9.6 Monospace Numbers for Data */
td.number,
td.price,
.badge,
.apexcharts-tooltip-text-value {
  font-variant-numeric: tabular-nums;
  font-family: "Inter", monospace;
  letter-spacing: -0.5px;
}

.font-weight-semibold {
  font-weight: 600 !important;
}

/* 11. Color Utilities (Brand Consistency)
   Değerler sabit #525ce5 / #3d49d6 yazılıydı. Bugün token'la birebir aynı
   oldukları için görsel fark yoktu, ama marka rengi değiştiğinde bu satırlar
   geride kalıp sayfada iki farklı "primary" üretirdi. */
.text-primary {
  color: var(--app-brand) !important;
}

.bg-primary {
  background-color: var(--app-brand) !important;
  color: var(--app-brand-contrast) !important;
}

.badge-primary {
  background-color: var(--app-brand) !important;
  color: var(--app-brand-contrast) !important;
  border: none !important;
}

/* Ensure links with text-primary usually get a hover state */
a.text-primary:hover,
a.text-primary:focus {
  color: var(--app-brand-hover) !important;
}

.btn-primary {
  background-color: var(--app-brand) !important;
  border-color: var(--app-brand) !important;
  color: var(--app-brand-contrast) !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
  background-color: var(--app-brand-hover) !important;
  border-color: var(--app-brand-hover) !important;
}

/* Outline Primary */
.btn-outline-primary {
  color: var(--app-brand) !important;
  border-color: var(--app-brand) !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
  background-color: var(--app-brand) !important;
  color: var(--app-brand-contrast) !important;
}
