﻿/* =====================================================================
   AnaBayiPanel — Ana Bayi (B2B) Yönetim Sistemi
   Tasarım sistemi: açık (beyaz) kabuk, tek tipografi ailesi (Inter),
   ölçülü renk (indigo yalnızca birincil aksiyon ve seçili durum için).
   ===================================================================== */

:root {
  /* --- marka ------------------------------------------------------- */
  --primary:#4f46e5;
  --primary-hover:#4338ca;
  --primary-press:#3730a3;
  --primary-soft:#eef1fe;
  --primary-soft-2:#e0e4fd;
  --primary-ink:#3b32b8;
  --on-primary:#ffffff;

  /* --- yüzeyler (3 katman: uygulama < kenar çubuğu/kart) ------------ */
  --app:#f5f6f9;
  --surface:#ffffff;
  --surface-2:#fafbfc;
  --sidebar:#ffffff;
  --sidebar-hover:#f3f4f8;

  /* --- mürekkep (hepsi ≥4.5:1) ------------------------------------- */
  --ink:#10131a;
  --ink-2:#39404f;
  --muted:#646c7d;
  --faint:#8a91a1;         /* yalnız simge/ayraç — metin için kullanma */

  --line:#e7e9ef;
  --line-2:#d8dce5;

  /* --- durum ------------------------------------------------------- */
  --success:#0f7a3d; --success-soft:#e6f6ec;
  --danger:#c81e46;  --danger-soft:#fdeaee;
  --warning:#a15c07; --warning-soft:#fdf2df;
  --info:#0369a1;    --info-soft:#e4f2fb;

  /* --- biçim ------------------------------------------------------- */
  --r-sm:8px; --r:10px; --r-lg:14px; --r-xl:18px;
  --sh-1:0 1px 2px rgba(16,24,40,.04);
  --sh-2:0 1px 3px rgba(16,24,40,.06), 0 1px 2px rgba(16,24,40,.04);
  --sh-3:0 4px 14px -4px rgba(16,24,40,.10), 0 1px 3px rgba(16,24,40,.05);
  --sh-pop:0 14px 34px -8px rgba(16,24,40,.18), 0 4px 10px -3px rgba(16,24,40,.08);

  /* --- katman sırası (asla rastgele sayı yazma) --------------------- */
  --z-sticky:20; --z-backdrop:1040; --z-drawer:1045; --z-dropdown:1055;
  --z-modal:1060; --z-toast:1080;

  /* --- hareket ----------------------------------------------------- */
  --ease:cubic-bezier(.22,1,.36,1);
  --dur:.18s;

  /* Bootstrap köprüleri */
  --bs-primary:#4f46e5; --bs-primary-rgb:79,70,229;
  --bs-link-color:#4338ca; --bs-link-hover-color:#3730a3;
  --bs-body-color:#10131a; --bs-border-color:#e7e9ef;
}

/* ---------------------------------------------------------------- taban */

*, *::before, *::after { box-sizing:border-box; }

body {
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  font-size:.9375rem; line-height:1.5;
  background:var(--app); color:var(--ink);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  margin-bottom:0;
}

/* Ürün arayüzü: tek aile, sabit rem ölçek (akışkan clamp değil). */
h1,h2,h3,h4,h5,h6,
.h1,.h2,.h3,.h4,.h5,.h6 {
  font-family:inherit; font-weight:700; color:var(--ink);
  letter-spacing:-.018em; line-height:1.25; text-wrap:balance;
}
h1,.h1{ font-size:1.85rem; }
h2,.h2{ font-size:1.55rem; }
h3,.h3{ font-size:1.3rem; }
h4,.h4{ font-size:1.15rem; }
h5,.h5{ font-size:1.02rem; }
h6,.h6{ font-size:.9375rem; }

p { text-wrap:pretty; }
a { text-decoration:none; color:var(--bs-link-color); }
a:hover { color:var(--bs-link-hover-color); }
hr { border-color:var(--line); opacity:1; }
code, kbd, .font-monospace { font-variant-ligatures:none; }

.text-muted { color:var(--muted) !important; }
.text-primary { color:var(--primary) !important; }
.border-primary { border-color:var(--primary) !important; }

/* Klavye odağı her yerde görünür olsun. */
:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }

/* ------------------------------------------------------- bileşen: panel */

.panel {
  background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r-lg); box-shadow:var(--sh-2);
  padding:1.15rem 1.25rem;
}
/* Panel başlığı — tüm ekranlarda aynı sözlük. */
.panel-hd {
  display:flex; align-items:center; gap:.75rem; flex-wrap:wrap;
  margin:-1.15rem -1.25rem 1rem; padding:.85rem 1.25rem;
  border-bottom:1px solid var(--line);
}
.panel-hd h1,.panel-hd h2,.panel-hd h3,.panel-hd h4,.panel-hd h5{ margin:0; font-size:.98rem; }

/* Sayfa başlığı bloğu */
.page-head { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; flex-wrap:wrap; margin-bottom:1.15rem; }
.page-head .sub { color:var(--muted); font-size:.85rem; margin-top:.15rem; }

/* Boş durum — "burada bir şey yok" değil, arayüzü öğreten metin. */
.empty-state { text-align:center; padding:2.5rem 1rem; color:var(--muted); }
.empty-state .bi { font-size:1.9rem; color:var(--faint); display:block; margin-bottom:.6rem; }

/* ----------------------------------------------------- bileşen: düğmeler */

.btn {
  --bs-btn-font-weight:600;
  --bs-btn-border-radius:9px;
  --bs-btn-padding-y:.45rem; --bs-btn-padding-x:.85rem;
  --bs-btn-font-size:.875rem;
  transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease),
             color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.btn-sm { --bs-btn-border-radius:8px; --bs-btn-padding-y:.3rem; --bs-btn-padding-x:.62rem; --bs-btn-font-size:.8125rem; }
.btn-lg { --bs-btn-border-radius:11px; --bs-btn-font-size:1rem; }
.btn:focus-visible { box-shadow:0 0 0 3px rgba(79,70,229,.22); outline:none; }
.btn:disabled,.btn.disabled { opacity:.5; }

.btn-primary {
  --bs-btn-bg:var(--primary); --bs-btn-border-color:var(--primary);
  --bs-btn-hover-bg:var(--primary-hover); --bs-btn-hover-border-color:var(--primary-hover);
  --bs-btn-active-bg:var(--primary-press); --bs-btn-active-border-color:var(--primary-press);
  --bs-btn-disabled-bg:var(--primary); --bs-btn-disabled-border-color:var(--primary);
  box-shadow:var(--sh-1);
}
.btn-outline-primary {
  --bs-btn-color:var(--primary-ink); --bs-btn-border-color:var(--line-2);
  --bs-btn-hover-bg:var(--primary-soft); --bs-btn-hover-border-color:var(--primary-soft-2);
  --bs-btn-hover-color:var(--primary-ink);
  --bs-btn-active-bg:var(--primary-soft-2); --bs-btn-active-border-color:var(--primary-soft-2);
  --bs-btn-active-color:var(--primary-press);
}
/* Panel genelinde ikincil düğme = beyaz + ince kenarlık (gri blok değil). */
.btn-light {
  --bs-btn-bg:var(--surface); --bs-btn-color:var(--ink-2); --bs-btn-border-color:var(--line-2);
  --bs-btn-hover-bg:var(--app); --bs-btn-hover-color:var(--ink); --bs-btn-hover-border-color:var(--line-2);
  --bs-btn-active-bg:#eceef4; --bs-btn-active-border-color:var(--line-2); --bs-btn-active-color:var(--ink);
}
.btn-outline-secondary { --bs-btn-color:var(--ink-2); --bs-btn-border-color:var(--line-2); --bs-btn-hover-bg:var(--app); --bs-btn-hover-color:var(--ink); --bs-btn-hover-border-color:var(--line-2); }
.btn-outline-danger { --bs-btn-color:var(--danger); --bs-btn-border-color:var(--line-2); --bs-btn-hover-bg:var(--danger-soft); --bs-btn-hover-border-color:var(--danger-soft); --bs-btn-hover-color:var(--danger); }
.btn-danger  { --bs-btn-bg:var(--danger);  --bs-btn-border-color:var(--danger);  --bs-btn-hover-bg:#ac1a3c; --bs-btn-hover-border-color:#ac1a3c; }
.btn-success { --bs-btn-bg:var(--success); --bs-btn-border-color:var(--success); --bs-btn-hover-bg:#0c6733; --bs-btn-hover-border-color:#0c6733; }

/* Filtre şeritlerinde kullanılan düğme grubu */
.btn-group > .btn { --bs-btn-border-radius:9px; }

/* Yalnız simge taşıyan kare düğme (üst çubuk) */
.icon-btn {
  width:34px; height:34px; flex-shrink:0; border-radius:9px;
  border:1px solid var(--line-2); background:var(--surface); color:var(--ink-2);
  display:inline-flex; align-items:center; justify-content:center; font-size:1rem;
  transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.icon-btn:hover { background:var(--app); color:var(--ink); }
.icon-btn:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }

/* -------------------------------------------------------- bileşen: form */

.form-control,.form-select {
  border-color:var(--line-2); border-radius:9px;
  font-size:.875rem; padding:.45rem .7rem; color:var(--ink); background-color:var(--surface);
  transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.form-control-sm,.form-select-sm { font-size:.8125rem; padding:.32rem .6rem; border-radius:8px; }
.form-control:focus,.form-select:focus { border-color:var(--primary); box-shadow:0 0 0 3px rgba(79,70,229,.18); }
.form-control::placeholder { color:var(--muted); opacity:1; }   /* soluk gri değil: 4.5:1 */
.form-control:disabled,.form-select:disabled { background:var(--app); color:var(--muted); }
.form-label { font-weight:600; font-size:.8125rem; color:var(--ink-2); margin-bottom:.35rem; }
.form-text { color:var(--muted); font-size:.78rem; }
.form-check-input:checked { background-color:var(--primary); border-color:var(--primary); }
.form-check-input:focus { border-color:var(--primary); box-shadow:0 0 0 3px rgba(79,70,229,.18); }
.input-group-text { background:var(--app); border-color:var(--line-2); color:var(--muted); font-size:.8125rem; }

/* ------------------------------------------------------ bileşen: tablo */

.table {
  --bs-table-bg:transparent;
  --bs-table-hover-bg:#f6f7fb; --bs-table-hover-color:var(--ink);
  color:var(--ink); font-size:.875rem; margin-bottom:0;
}
.table > thead th {
  font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  color:var(--muted); background:var(--surface-2);
  border-bottom:1px solid var(--line-2); padding:.6rem .75rem; white-space:nowrap;
}
.table > tbody > tr > td { padding:.68rem .75rem; border-bottom-color:var(--line); vertical-align:middle; }
.table > tbody > tr:last-child > td { border-bottom-width:0; }
.table-sm > thead th { padding:.45rem .7rem; }
.table-sm > tbody > tr > td { padding:.48rem .7rem; }
/* Rakam sütunları kaymasın. */
.table td,.table th { font-variant-numeric:tabular-nums; }

/* ----------------------------------------------------- bileşen: rozet */

.badge { font-weight:600; font-size:.72rem; letter-spacing:.005em; padding:.34em .6em; border-radius:6px; }
/* Durum rozetleri yumuşak tonda: pasif bilgi tam doygunlukta bağırmaz. */
.badge.text-bg-success { background:var(--success-soft) !important; color:var(--success) !important; }
.badge.text-bg-danger  { background:var(--danger-soft)  !important; color:var(--danger)  !important; }
.badge.text-bg-warning { background:var(--warning-soft) !important; color:var(--warning) !important; }
.badge.text-bg-info    { background:var(--info-soft)    !important; color:var(--info)    !important; }
.badge.text-bg-primary { background:var(--primary-soft) !important; color:var(--primary-ink) !important; }
.badge.text-bg-light   { background:var(--surface) !important; color:var(--ink-2) !important; border:1px solid var(--line-2); }
.badge.text-bg-secondary,.badge.text-bg-dark { background:#eceef3 !important; color:var(--ink-2) !important; }

/* ---------------------------------------------------- bileşen: uyarı */

.alert { border-radius:var(--r); border-width:1px; font-size:.875rem; padding:.75rem 1rem; box-shadow:var(--sh-1); }
.alert-success { background:var(--success-soft); border-color:#c8ead6; color:var(--success); }
.alert-danger  { background:var(--danger-soft);  border-color:#f6ccd6; color:var(--danger); }
.alert-warning { background:var(--warning-soft); border-color:#f2debb; color:var(--warning); }
.alert-info    { background:var(--info-soft);    border-color:#c9e3f5; color:var(--info); }

/* -------------------------------------------------- bileşen: açılır menü */

.dropdown-menu {
  border-color:var(--line); border-radius:12px; box-shadow:var(--sh-pop);
  padding:.35rem; font-size:.875rem; z-index:var(--z-dropdown);
}
.dropdown-item { border-radius:8px; padding:.45rem .6rem; font-weight:500; color:var(--ink-2); }
.dropdown-item:hover,.dropdown-item:focus { background:var(--app); color:var(--ink); }
.dropdown-divider { border-color:var(--line); }

.modal-content { border:0; border-radius:var(--r-xl); box-shadow:var(--sh-pop); }
.modal-header,.modal-footer { border-color:var(--line); }
.nav-tabs { border-bottom-color:var(--line); }
.nav-tabs .nav-link { border:0; color:var(--muted); font-weight:600; font-size:.875rem; padding:.55rem .85rem; border-bottom:2px solid transparent; border-radius:0; }
.nav-tabs .nav-link:hover { color:var(--ink); }
.nav-tabs .nav-link.active { color:var(--primary-ink); background:transparent; border-bottom-color:var(--primary); }
.progress { background:var(--line); border-radius:999px; }
.progress-bar { background:var(--primary); border-radius:999px; }

/* ============================ YÖNETİM KABUĞU ============================ */

.admin-shell { display:flex; min-height:100vh; }

/* ------------------------------------------------------- kenar çubuğu */

.admin-sidebar {
  width:264px; flex-shrink:0; height:100vh; position:sticky; top:0;
  display:flex; flex-direction:column; min-height:0;
  background:var(--sidebar); border-right:1px solid var(--line);
  transition:width .2s var(--ease), transform .24s var(--ease);
}

.brand { display:flex; align-items:center; gap:.6rem; padding:.95rem .9rem .3rem; }
.brand-mark {
  width:32px; height:32px; flex-shrink:0; border-radius:9px;
  background:var(--primary); color:#fff; font-size:.95rem;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 2px 6px rgba(79,70,229,.32);
}
.brand-txt { min-width:0; }
.brand-name { font-weight:700; font-size:.95rem; letter-spacing:-.015em; color:var(--ink); line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.brand-sub  { font-size:.72rem; color:var(--muted); line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* Menü araması — 25 kayıt arasında hedefe tek satırda gitmek için. */
.nav-search { position:relative; margin:.7rem .75rem .35rem; }
.nav-search input {
  width:100%; height:34px; border:1px solid var(--line-2); border-radius:9px;
  background:var(--app); color:var(--ink); font-size:.82rem;
  padding:0 2.1rem 0 2rem;
  transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
.nav-search input::placeholder { color:var(--muted); opacity:1; }
.nav-search input:focus { outline:none; background:var(--surface); border-color:var(--primary); box-shadow:0 0 0 3px rgba(79,70,229,.16); }
.nav-search input::-webkit-search-cancel-button { -webkit-appearance:none; appearance:none; }
.nav-search .ico { position:absolute; left:.62rem; top:50%; transform:translateY(-50%); color:var(--muted); font-size:.85rem; pointer-events:none; }
.nav-search kbd {
  position:absolute; right:.45rem; top:50%; transform:translateY(-50%);
  background:var(--surface); border:1px solid var(--line-2); border-radius:5px;
  color:var(--muted); font-size:.66rem; font-family:inherit; padding:.05rem .32rem; pointer-events:none;
}
.nav-search input:focus ~ kbd { opacity:0; }

.admin-nav { flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden; padding:.35rem .75rem 1rem; }

/* --- yaprak bağlantı --- */
.nav-item-link {
  display:flex; align-items:center; gap:.6rem;
  padding:.5rem .6rem; margin-bottom:1px; border-radius:9px;
  color:var(--ink-2); font-weight:500; font-size:.875rem;
  white-space:nowrap; overflow:hidden;
  transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.nav-item-link > .bi { font-size:1rem; width:20px; flex-shrink:0; text-align:center; color:var(--faint); transition:color var(--dur) var(--ease); }
.nav-item-link > span { overflow:hidden; text-overflow:ellipsis; }
.nav-item-link:hover { background:var(--sidebar-hover); color:var(--ink); }
.nav-item-link:hover > .bi { color:var(--ink-2); }
.nav-item-link.active { background:var(--primary-soft); color:var(--primary-ink); font-weight:600; }
.nav-item-link.active > .bi { color:var(--primary); }

/* --- katlanır grup --- */
.nav-group { margin-top:.3rem; }
.nav-group-hd {
  width:100%; display:flex; align-items:center; gap:.6rem;
  padding:.5rem .6rem; border:0; background:transparent; border-radius:9px;
  color:var(--muted); font-weight:600; font-size:.8rem; text-align:left;
  cursor:pointer; white-space:nowrap;
  transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.nav-group-hd > .bi:first-child { font-size:.95rem; width:20px; flex-shrink:0; text-align:center; color:var(--faint); }
.nav-group-hd > span { overflow:hidden; text-overflow:ellipsis; }
.nav-group-hd:hover { background:var(--sidebar-hover); color:var(--ink); }
.nav-group-hd .chev { margin-left:auto; font-size:.7rem; color:var(--faint); flex-shrink:0; transition:transform .24s var(--ease); }
.nav-group-hd .nav-count + .chev { margin-left:.4rem; }
.nav-group.open > .nav-group-hd .chev { transform:rotate(180deg); }
.nav-group.has-active > .nav-group-hd { color:var(--ink); }
.nav-group.has-active > .nav-group-hd > .bi:first-child { color:var(--ink-2); }

/* grid 0fr→1fr: sabit max-height tahmini olmadan gerçek yüksekliğe açılır.
   Geçiş yalnızca .nav-ready sonrası devrede — açılışta hatırlanan gruplar
   akordeonu oynatmadan doğrudan açık gelir. */
.nav-group-items { display:grid; grid-template-rows:0fr; }
.nav-ready .nav-group-items { transition:grid-template-rows .24s var(--ease); }
.nav-group.open > .nav-group-items { grid-template-rows:1fr; }
/* display:flex, [hidden] varsayılanını ezdiği için arama filtresi açıkça gizler. */
.nav-item-link[hidden],.nav-group[hidden],.nav-empty[hidden] { display:none !important; }
.nav-group-items > .inner { overflow:hidden; min-height:0; position:relative; padding-left:1.3rem; }
.nav-group-items > .inner::before {
  content:''; position:absolute; left:.92rem; top:.1rem; bottom:.3rem;
  width:1px; background:var(--line);
}

/* --- sayaç rozeti --- */
.nav-count {
  margin-left:auto; flex-shrink:0;
  min-width:19px; height:18px; padding:0 5px; border-radius:999px;
  background:var(--danger-soft); color:var(--danger);
  font-size:.68rem; font-weight:700; line-height:1;
  display:inline-flex; align-items:center; justify-content:center;
}
.nav-count.warn { background:var(--warning-soft); color:var(--warning); }
/* Grup açıkken toplam gereksiz — sayılar alt satırlarda zaten görünüyor. */
.nav-group.open > .nav-group-hd .nav-count.roll { display:none; }

/* --- alt bilgi --- */
.admin-foot {
  flex-shrink:0; border-top:1px solid var(--line);
  padding:.6rem .9rem; display:flex; align-items:center; gap:.5rem;
  font-size:.72rem; color:var(--muted); white-space:nowrap;
}
.admin-foot .dot { width:6px; height:6px; border-radius:50%; background:var(--success); flex-shrink:0; }

/* ---------------------------------------------------------- üst çubuk */

.admin-content { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; }

.admin-topbar {
  position:sticky; top:0; z-index:var(--z-sticky);
  background:var(--surface); border-bottom:1px solid var(--line);
  padding:.55rem 1.25rem; min-height:57px;
  display:flex; align-items:center; gap:.75rem;
}
.admin-topbar .ttl { font-weight:600; font-size:1rem; letter-spacing:-.015em; color:var(--ink); min-width:0; }

.user-chip {
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.2rem .6rem .2rem .2rem; border:1px solid var(--line-2); border-radius:999px;
  background:var(--surface); color:var(--ink-2); font-weight:600; font-size:.82rem;
  transition:background-color var(--dur) var(--ease);
}
.user-chip:hover { background:var(--app); color:var(--ink); }
.user-chip::after { display:none; }              /* bootstrap ok işareti yerine chevron */
.user-chip .av {
  width:26px; height:26px; flex-shrink:0; border-radius:50%;
  background:var(--primary-soft); color:var(--primary-ink);
  display:flex; align-items:center; justify-content:center;
  font-size:.7rem; font-weight:700; letter-spacing:.02em;
}

.admin-body { padding:1.5rem 1.5rem 3rem; width:100%; max-width:1680px; margin-inline:auto; }

/* --------------------------------------------------- istatistik kartı */

.stat-card {
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:1rem 1.1rem; box-shadow:var(--sh-2);
  display:flex; align-items:center; gap:.9rem; height:100%;
  transition:box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
a.stat-card:hover { box-shadow:var(--sh-3); border-color:var(--line-2); transform:translateY(-1px); }
.stat-card .ico { width:42px; height:42px; border-radius:11px; display:inline-flex; align-items:center; justify-content:center; font-size:1.25rem; flex-shrink:0; }
.stat-card .val { font-weight:700; font-size:1.6rem; line-height:1.1; color:var(--ink); letter-spacing:-.025em; font-variant-numeric:tabular-nums; }
.stat-card .lbl { color:var(--muted); font-size:.8125rem; margin-top:.15rem; }
.ic-green { background:var(--success-soft); color:var(--success); }
.ic-blue  { background:var(--info-soft);    color:var(--info); }
.ic-amber { background:var(--warning-soft); color:var(--warning); }
.ic-rose  { background:var(--danger-soft);  color:var(--danger); }
.ic-indigo{ background:var(--primary-soft); color:var(--primary-ink); }
.ic-dark  { background:#eceef3;             color:var(--ink-2); }

/* ------------------------------------------------------------- giriş */

.login-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(140deg,#1e1b4b 0%,#111827 55%,#0b0d12 100%); padding:1rem; }
.login-card { background:var(--surface); border-radius:var(--r-xl); box-shadow:0 24px 64px -12px rgba(0,0,0,.45); padding:2.2rem; width:100%; max-width:404px; }

/* Sayfa altına yapışan aksiyon çubuğu (sevkiyat ekranları). Hem yönetim
   kabuğunda hem yalın toplayıcı kabuğunda kullanıldığı için burada. */
.pick-sticky-bottom {
  position:sticky; bottom:0; z-index:15; background:var(--surface);
  border-top:1px solid var(--line); padding:.75rem 1rem; margin-top:1rem;
  border-radius:var(--r-lg) var(--r-lg) 0 0; box-shadow:0 -6px 18px rgba(16,24,40,.06);
}

/* Dar ekranda çubuk yalnız düğmelerden ibaret kalır: açıklama metni ekranın
   yarısını yiyordu, iki düğme de alt alta kırpılıyordu. */
@media (max-width: 575.98px) {
  .pick-sticky-bottom { padding:.6rem .75rem; gap:.5rem; }
  .pick-sticky-bottom .pick-hint { display:none; }
  .pick-sticky-bottom > .ms-auto { width:100%; }
  .pick-sticky-bottom > .ms-auto > form { flex:1 1 auto; }
  .pick-sticky-bottom > .ms-auto .btn { width:100%; }
}

/* Sayfa içindeki ikinci yapışkan çubuk (toplama araç çubuğu) başlığın ALTINA
   oturur. Başlık yüksekliği içeriğe göre değiştiği için sabit değil; ölçülüp
   --pick-top-h'ye yazılır (js/yapiskan-baslik.js). */
.pick-sticky-top { position:sticky; top:var(--pick-top-h, 60px); z-index:5; }

/* Toplama araç çubuğundaki arama: masaüstünde dar, telefonda tam genişlik. */
.pick-search { max-width:300px; }
@media (max-width: 575.98px) { .pick-search { max-width:none; flex:1 1 100%; } }

/* Bootstrap'te min-width yardımcısı YOK. Esnek bir satırda `text-truncate`
   ancak min-width:0 ile çalışır; olmayınca uzun ürün adı kutuyu ve sayfayı
   yana taşırıyordu (sevkiyat toplama kartı, toplayıcı başlığı). */
.min-w-0 { min-width:0; }

/* Görsel büyütme katmanı (sevkiyat ekranları): küçük kareye dokununca
   ürünün tam boy hâli açılır — depoda doğru ürünü ayırt etmenin tek yolu. */
.img-zoomable { cursor:zoom-in; }
.zoom-overlay {
  position:fixed; inset:0; z-index:1090; display:flex; align-items:center; justify-content:center;
  background:rgba(9,11,15,.92); padding:1rem; cursor:zoom-out;
  -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
}
.zoom-overlay img {
  max-width:100%; max-height:100%; object-fit:contain;
  border-radius:12px; box-shadow:0 20px 60px rgba(0,0,0,.6); background:#fff;
}
.zoom-overlay .zoom-cap {
  position:absolute; left:0; right:0; bottom:0; padding:.9rem 1rem calc(.9rem + env(safe-area-inset-bottom));
  color:#fff; font-size:.9rem; text-align:center; background:linear-gradient(transparent,rgba(0,0,0,.75));
}
.zoom-overlay .zoom-close {
  position:absolute; top:calc(.6rem + env(safe-area-inset-top)); right:.6rem;
  width:44px; height:44px; border:0; border-radius:50%;
  background:rgba(255,255,255,.14); color:#fff; font-size:1.3rem; line-height:1;
}

/* ================= MASAÜSTÜ: SİMGE ŞERİDİNE DARALT ================= */
/* Daraltılmışken gruplar zorla açılır; başlık satırları ayraca dönüşür,
   böylece 25 hedefin tamamı tek tıkla erişilebilir kalır. */

.nav-collapsed .admin-sidebar { width:72px; }
.nav-collapsed .brand { justify-content:center; padding:.95rem .5rem .3rem; }
.nav-collapsed .brand-txt,
.nav-collapsed .nav-search { display:none; }
.nav-collapsed .admin-nav { padding:.7rem .6rem 1rem; }
.nav-collapsed .nav-item-link { justify-content:center; padding:.55rem 0; position:relative; }
.nav-collapsed .nav-item-link > span:not(.nav-count) { display:none; }
.nav-collapsed .nav-item-link > .bi { width:auto; font-size:1.08rem; }
.nav-collapsed .nav-group-hd { display:none; }
.nav-collapsed .nav-group { margin-top:.55rem; padding-top:.55rem; border-top:1px solid var(--line); }
.nav-collapsed .nav-group-items { grid-template-rows:1fr; }
.nav-collapsed .nav-group-items > .inner { padding-left:0; }
.nav-collapsed .nav-group-items > .inner::before { display:none; }
/* Şeritte etiket yok: sayaç tek uyarı sinyali, o yüzden dolu renkle basılır. */
.nav-collapsed .nav-count {
  position:absolute; top:2px; right:5px; margin:0;
  min-width:16px; height:16px; padding:0 4px; font-size:.62rem;
  background:var(--danger); color:#fff; box-shadow:0 0 0 2px var(--sidebar);
}
.nav-collapsed .nav-count.warn { background:var(--warning); color:#fff; }
.nav-collapsed .nav-count.roll { display:none; }
.nav-collapsed .admin-foot { justify-content:center; padding-inline:.4rem; }
.nav-collapsed .admin-foot .txt { display:none; }

/* ================= MOBİL: MENÜ BİR ÇEKMECEDİR ================= */

.admin-backdrop { display:none; }

@media (max-width: 991.98px) {
  .admin-sidebar {
    position:fixed; top:0; left:0; bottom:0; z-index:var(--z-drawer);
    width:284px; height:100vh; transform:translateX(-100%);
    box-shadow:0 0 50px rgba(16,24,40,.28);
  }
  .nav-open .admin-sidebar { transform:translateX(0); }
  .admin-backdrop {
    display:block; position:fixed; inset:0; z-index:var(--z-backdrop);
    background:rgba(16,19,26,.42); opacity:0; pointer-events:none;
    transition:opacity .24s var(--ease);
  }
  .nav-open .admin-backdrop { opacity:1; pointer-events:auto; }
  .nav-open { overflow:hidden; }

  /* Daraltma yalnızca masaüstünde anlamlı; çekmece her zaman tam genişlikte. */
  .nav-collapsed .admin-sidebar { width:284px; }
  .nav-collapsed .brand { justify-content:flex-start; padding:.95rem .9rem .3rem; }
  .nav-collapsed .brand-txt { display:block; }
  .nav-collapsed .nav-search { display:block; }
  .nav-collapsed .admin-nav { padding:.35rem .75rem 1rem; }
  .nav-collapsed .nav-item-link { justify-content:flex-start; padding:.5rem .6rem; }
  .nav-collapsed .nav-item-link > span:not(.nav-count) { display:inline; }
  .nav-collapsed .nav-item-link > .bi { width:20px; font-size:1rem; }
  .nav-collapsed .nav-group-hd { display:flex; }
  .nav-collapsed .nav-group { margin-top:.3rem; padding-top:0; border-top:0; }
  .nav-collapsed .nav-group-items { grid-template-rows:0fr; }
  .nav-collapsed .nav-group.open > .nav-group-items { grid-template-rows:1fr; }
  .nav-collapsed .nav-group-items > .inner { padding-left:1.3rem; }
  .nav-collapsed .nav-group-items > .inner::before { display:block; }
  .nav-collapsed .nav-count { position:static; margin-left:auto; min-width:19px; height:18px; padding:0 5px; font-size:.68rem; }
  .nav-collapsed .nav-count.roll { display:inline-flex; }
  .nav-collapsed .nav-group.open > .nav-group-hd .nav-count.roll { display:none; }
  .nav-collapsed .admin-foot .txt { display:inline; }

  .admin-topbar { padding:.5rem .9rem; gap:.5rem; min-height:53px; }
  .admin-topbar .ttl { font-size:.95rem; }
  .admin-body { padding:1.1rem .9rem 2.5rem; min-width:0; }
  .panel { padding:1rem; }
  .panel-hd { margin:-1rem -1rem .85rem; padding:.75rem 1rem; }
}

/* Bitişik düğme grubu (ör. "Sipariş / Ürün / Domain bazında") sarmalanmadığı
   için dar ekranda tüm sayfayı yatay kaydırıyordu. Dar ekranda grup dağılır,
   her düğme kendi hapına döner; sayfa gövdesi asla yana kaymaz. */
@media (max-width: 767.98px) {
  .btn-group,.btn-group-sm { flex-wrap:wrap; gap:.35rem; max-width:100%; }
  .btn-group > .btn,.btn-group-sm > .btn { border-radius:8px !important; margin-left:0 !important; }
}

/* Dar telefonlarda tablolar sayfayı yatay kaydırmasın, kendi içinde kaysın. */
@media (max-width: 575.98px) {
  .table-responsive { -webkit-overflow-scrolling:touch; }
  .stat-card { padding:.8rem .85rem; gap:.7rem; }
  .stat-card .ico { width:38px; height:38px; font-size:1.1rem; }
  .stat-card .val { font-size:1.3rem; }
  h1,.h1 { font-size:1.45rem; }
  h2,.h2 { font-size:1.3rem; }
  h3,.h3 { font-size:1.18rem; }
  .page-head { margin-bottom:.9rem; }
}

/* ------------------------------------------------------------ hareket */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important; scroll-behavior:auto !important;
  }
  /* Akordeon anlık açılıp kapansın — ara kare yok. */
  .nav-group-items { transition:none; }
}

@media print {
  .admin-sidebar,.admin-topbar,.admin-backdrop { display:none !important; }
  .admin-body { padding:0; max-width:none; }
  .panel { border:0; box-shadow:none; }
}

/* ------------------------------------------------ tablo filtresi (arama + koşul kurucusu)
   Sipariş vb. listelerde üstteki arama kutusu, "Filtre" açılır paneli ve uygulanmış
   koşul çipleri. Bileşen iki panelde de aynı görünsün diye yalnız tasarım belirteçleri
   (token) kullanılır — bkz. Views/Shared/_TableFilter.cshtml + js/table-filter.js. */

.tfilter { position:relative; margin-bottom:1rem; }
.tfilter-bar { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }

.tfilter-search { position:relative; display:flex; align-items:center; flex:0 1 340px; min-width:210px; margin:0; }
.tfilter-search .bi-search { position:absolute; left:.7rem; color:var(--faint); font-size:.9rem; pointer-events:none; }
.tfilter-search input { width:100%; padding:.45rem 1.9rem .45rem 2.1rem; border:1px solid var(--line-2);
  border-radius:var(--r); background:var(--surface); color:var(--ink); font-size:.875rem; }
.tfilter-search input:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-soft); }
.tfilter-search input::-webkit-search-cancel-button { display:none; }
.tfilter-x { position:absolute; right:.6rem; color:var(--muted); font-size:.72rem; line-height:1; text-decoration:none; }
.tfilter-x:hover { color:var(--ink); }

.tfilter-open { display:inline-flex; align-items:center; gap:.4rem; padding:.45rem .8rem; border:1px solid var(--line-2);
  border-radius:var(--r); background:var(--surface); color:var(--ink-2); font-size:.875rem; font-weight:600; }
.tfilter-open:hover { background:var(--sidebar-hover); }
.tfilter-on .tfilter-open { border-color:var(--primary); background:var(--primary-soft); color:var(--primary-ink); }
.tfilter-badge { min-width:1.25rem; padding:0 .35rem; border-radius:999px; background:var(--primary);
  color:var(--on-primary); font-size:.7rem; font-weight:700; line-height:1.25rem; text-align:center; }
.tfilter-result { margin-left:auto; color:var(--muted); font-size:.8rem; }

/* Kırılım (görünüm) seçimi: arama satırında duran bitişik düğme grubu. */
.tfilter-modes { display:inline-flex; border:1px solid var(--line-2); border-radius:var(--r); overflow:hidden; }
.tfilter-mode { display:inline-flex; align-items:center; gap:.35rem; padding:.45rem .75rem; border-left:1px solid var(--line);
  background:var(--surface); color:var(--muted); font-size:.85rem; font-weight:600; text-decoration:none; white-space:nowrap; }
.tfilter-mode:first-child { border-left:0; }
.tfilter-mode:hover { background:var(--sidebar-hover); color:var(--ink-2); }
.tfilter-mode.on { background:var(--primary-soft); color:var(--primary-ink); }

.tfilter-chips { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; margin-top:.6rem; }
.tfilter-chip { display:inline-flex; align-items:center; gap:.3rem; padding:.25rem .3rem .25rem .65rem;
  border:1px solid var(--primary-soft-2); border-radius:999px; background:var(--primary-soft);
  color:var(--primary-ink); font-size:.78rem; font-weight:600; }
.tfilter-chip a { display:inline-flex; align-items:center; justify-content:center; width:1.15rem; height:1.15rem;
  border-radius:50%; color:inherit; text-decoration:none; opacity:.65; }
.tfilter-chip a:hover { background:rgba(16,24,40,.10); opacity:1; }
.tfilter-clear { font-size:.78rem; color:var(--muted); }

.tfilter-panel { position:absolute; z-index:var(--z-dropdown); top:calc(100% + .4rem); left:0;
  width:min(700px, calc(100vw - 2rem)); padding:.9rem; background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r-lg); box-shadow:var(--sh-pop); }
.tfilter-row { display:flex; align-items:flex-start; gap:.4rem; margin-bottom:.5rem; }
.tfilter-field { flex:0 0 11rem; }
.tfilter-op { flex:0 0 9.5rem; }
.tfilter-value { flex:1 1 auto; display:flex; align-items:center; gap:.35rem; min-width:0; }
.tfilter-del { flex:0 0 auto; width:2rem; height:2rem; border:0; background:transparent; color:var(--muted);
  border-radius:var(--r-sm); }
.tfilter-del:hover { background:var(--danger-soft); color:var(--danger); }

.tfilter-opts { display:flex; flex-wrap:wrap; gap:.3rem; width:100%; max-height:9.5rem; overflow:auto;
  padding:.3rem; border:1px solid var(--line); border-radius:var(--r-sm); }
.tfilter-opt { display:inline-flex; align-items:center; gap:.3rem; padding:.15rem .55rem; border:1px solid var(--line-2);
  border-radius:999px; font-size:.78rem; cursor:pointer; user-select:none; }
.tfilter-opt.on { border-color:var(--primary); background:var(--primary-soft); color:var(--primary-ink); font-weight:600; }
.tfilter-opt input { accent-color:var(--primary); margin:0; }
.tfilter-hint, .tfilter-sep { color:var(--muted); font-size:.8rem; }

.tfilter-empty { margin:.2rem 0 .8rem; color:var(--muted); font-size:.85rem; }
.tfilter-foot { display:flex; align-items:center; gap:.5rem; padding-top:.65rem; border-top:1px solid var(--line); }
.tfilter-add { margin-right:auto; display:inline-flex; align-items:center; gap:.35rem; border:0; background:transparent;
  color:var(--primary); font-size:.85rem; font-weight:600; }
.tfilter-add:hover { text-decoration:underline; }

@media (max-width:575.98px) {
  .tfilter-search { flex:1 1 100%; }
  .tfilter-result { width:100%; margin-left:0; }
  .tfilter-modes { width:100%; }
  .tfilter-mode { flex:1 1 0; justify-content:center; padding:.45rem .4rem; }
  .tfilter-row { flex-wrap:wrap; }
  .tfilter-field, .tfilter-op { flex:1 1 46%; }
  .tfilter-value { flex:1 1 100%; }
}
