/* ============================================================
   INCOMING PORTAL — TASARIM SİSTEMİ · ASP.NET Core MVC + Bootstrap 5.3
   v3 ile GÖRSEL OLARAK BİREBİR AYNI. Fark yalnızca altyapıda:
   grid / buton / kart / tablo / sekme / form / progress Bootstrap'tan,
   uygulama kabuğu ve alana özgü desenler bu dosyadan.

   Yükleme sırası (_Layout.cshtml):
     1) ~/lib/bootstrap/dist/css/bootstrap.min.css
     2) bu dosya           ← Bootstrap'ı ezer
   ============================================================ */

/* ---------- 1. TASARIM TOKENLARI (v3 ile birebir aynı) ---------- */
:root{
  --surface:#f8f9fb;
  --surface-dim:#d9dadb;
  --surface-bright:#f8f9fa;
  --surface-lowest:#ffffff;
  --surface-low:#f3f4f5;
  --surface-container:#edeeef;
  --surface-high:#e7e8e9;
  --surface-highest:#e1e3e4;
  --surface-elevated:#ffffff;
  --background:#f8f9fa;

  --on-surface:#191c1d;
  --on-surface-variant:#434654;
  --text-main:#1a1e25;
  --text-secondary:#5f636b;

  --border:#d5d8de;
  --outline:#747685;
  --outline-variant:#c4c5d6;

  --primary:#0039a2;
  --primary-container:#1e50c7;
  --on-primary:#ffffff;
  --primary-fixed:#dbe1ff;
  --primary-fixed-dim:#b5c4ff;
  --on-primary-fixed:#00174d;
  --on-primary-fixed-variant:#003cac;

  --secondary-container:#fdbb24;
  --secondary-fixed:#ffdea5;
  --on-secondary-container:#6c4d00;
  --on-secondary-fixed:#271900;
  --on-secondary-fixed-variant:#5d4200;

  --sidebar-bg:#101f3e;
  --sidebar-hover:#182c55;
  --sidebar-active:#1e376e;
  --tertiary:#344162;
  --tertiary-fixed:#d9e2ff;
  --on-tertiary-fixed:#0b1a39;
  --on-tertiary-container:#c2d0f8;

  /* --status-* = YÜZEY rengi · --text-* = METİN rengi (beyaz üstünde AA) */
  --status-new:#1e50c7;
  --status-request:#8b5cf6;
  --status-waiting:#f59e0b;
  --status-changed:#14b8a6;
  --status-okey:#10b981;
  --status-canceled:#ef4444;
  --status-error:#b91c1c;

  --text-new:#123a97;
  --text-request:#5b21b6;
  --text-waiting:#92590a;
  --text-changed:#0c6b62;
  --text-okey:#06694c;
  --text-canceled:#a01c1c;
  --error-container:#ffdad6;
  --on-error-container:#93000a;

  --sidebar-w:240px;
  --topbar-h:56px;
  --studio-h:0px;   /* stüdyo çubuğu yok — sticky offsetler 0 tabanlı */
  --radius-btn:8px;
  --radius-card:10px;
  --radius-card-st:12px;
  --container-st:1280px;
}

/* ---------- 2. BOOTSTRAP DEĞİŞKENLERİNİ TOKENLARA BAĞLA ---------- */
:root{
  --bs-primary:#0039a2;
  --bs-primary-rgb:0,57,162;
  --bs-warning:#fdbb24;
  --bs-warning-rgb:253,187,36;
  --bs-danger:#ef4444;
  --bs-success:#10b981;

  --bs-body-bg:var(--background);
  --bs-body-color:var(--on-surface);
  --bs-body-font-family:Inter,system-ui,-apple-system,sans-serif;
  --bs-body-font-size:14px;
  --bs-body-line-height:1.43;

  --bs-border-color:var(--border);
  --bs-border-color-translucent:var(--border);
  --bs-border-radius:.5rem;
  --bs-border-radius-sm:.375rem;
  --bs-border-radius-lg:.625rem;
  --bs-border-radius-xl:.75rem;

  --bs-secondary-color:var(--text-secondary);
  --bs-tertiary-bg:var(--surface-low);
  --bs-emphasis-color:var(--on-surface);
  --bs-link-color:var(--primary);
  --bs-link-hover-color:var(--primary-container);
  --bs-font-monospace:'JetBrains Mono',ui-monospace,monospace;
}

/* GÖLGE YASAĞI — sistemin temel kuralı. Bootstrap'ın tüm gölgeleri iptal. */
:root{
  --bs-box-shadow:none;
  --bs-box-shadow-sm:none;
  --bs-box-shadow-lg:none;
  --bs-box-shadow-inset:none;
}
.shadow,.shadow-sm,.shadow-lg,.dropdown-menu,.modal-content,.offcanvas,.popover,.toast,.card{
  box-shadow:none !important;
}

/* ---------- 3. TEMEL ---------- */
*{box-sizing:border-box}
body{
  -webkit-font-smoothing:antialiased;
  background:var(--background);
}
a{text-decoration:none}
code,.font-monospace{font-family:'JetBrains Mono',monospace}

/* Odak halkası — glow yok, 2px ring + 2px offset */
:focus-visible,.btn:focus-visible,.form-control:focus-visible{
  outline:2px solid var(--primary);outline-offset:2px;box-shadow:none !important;
}
.form-control:focus,.form-select:focus,.form-check-input:focus{
  border-color:var(--primary);box-shadow:none;
}

::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--outline)}

/* ---------- 4. İKON (Material Symbols) ---------- */
.ms{
  font-family:'Material Symbols Outlined';font-weight:400;font-style:normal;
  line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;
  white-space:nowrap;direction:ltr;-webkit-font-feature-settings:'liga';
  -webkit-font-smoothing:antialiased;font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;
  user-select:none;flex-shrink:0;vertical-align:middle;
}
.ms.fill{font-variation-settings:'FILL' 1}
.ms-14{font-size:14px}
.ms-18{font-size:18px}
.ms-20{font-size:20px}

/* ---------- 5. TİPOGRAFİ ROLLERİ ---------- */
.t-page{font-size:24px;line-height:32px;font-weight:600;letter-spacing:-.01em;margin:0}
.t-section{font-size:16px;line-height:22px;font-weight:600;margin:0}
.t-kpi{font-size:30px;line-height:36px;font-weight:700;letter-spacing:-.02em}
.t-body{font-size:14px;line-height:20px}
.t-table{font-size:13px;line-height:18px}
.t-mono{font-family:'JetBrains Mono',monospace;font-size:13px;line-height:18px}
.t-label{font-size:12px;line-height:16px;font-weight:500;letter-spacing:.02em}
.t-overline{
  font-size:11px;line-height:14px;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--text-secondary);display:block;
}
.muted{color:var(--text-secondary)}
.gap-12{gap:12px}

/* ---------- 6. BUTON (Bootstrap .btn üzerine) ---------- */
.btn{
  --bs-btn-border-radius:var(--radius-btn);
  --bs-btn-font-size:13.5px;
  --bs-btn-font-weight:500;
  --bs-btn-padding-y:0;--bs-btn-padding-x:15px;
  height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  white-space:nowrap;border-radius:var(--radius-btn);
}
.btn-sm{height:32px;--bs-btn-padding-x:12px;--bs-btn-font-size:13px}
.btn-lg{height:40px;--bs-btn-padding-x:18px;--bs-btn-font-size:14px}

.btn-primary{
  --bs-btn-bg:var(--primary);--bs-btn-border-color:var(--primary);--bs-btn-color:var(--on-primary);
  --bs-btn-hover-bg:var(--primary-container);--bs-btn-hover-border-color:var(--primary-container);
  --bs-btn-active-bg:var(--primary-container);--bs-btn-active-border-color:var(--primary-container);
}
/* Nazar sarısı — dönüşüm çıpası. Ekran başına en fazla 2 kez. */
.btn-warning{
  --bs-btn-bg:var(--secondary-container);--bs-btn-border-color:var(--secondary-container);
  --bs-btn-color:var(--on-secondary-container);--bs-btn-font-weight:600;
  --bs-btn-hover-bg:var(--secondary-fixed);--bs-btn-hover-border-color:var(--secondary-fixed);
  --bs-btn-hover-color:var(--on-secondary-container);
  --bs-btn-active-bg:var(--secondary-fixed);--bs-btn-active-color:var(--on-secondary-container);
}
/* v3'teki .btn-outline — beyaz zemin + 1px border */
.btn-outline-secondary{
  --bs-btn-bg:var(--surface-elevated);--bs-btn-border-color:var(--border);--bs-btn-color:var(--on-surface);
  --bs-btn-hover-bg:var(--surface-low);--bs-btn-hover-border-color:var(--border);--bs-btn-hover-color:var(--on-surface);
  --bs-btn-active-bg:var(--surface-container);--bs-btn-active-border-color:var(--border);--bs-btn-active-color:var(--on-surface);
}
/* v3'teki .btn-ghost */
.btn-link{
  --bs-btn-color:var(--primary);--bs-btn-hover-color:var(--primary-container);
  --bs-btn-padding-x:8px;text-decoration:none;--bs-btn-font-weight:500;
}
.btn-link:hover{background:var(--primary-fixed)}

.icon-btn{
  width:36px;height:36px;border:none;background:none;border-radius:var(--radius-btn);
  display:inline-grid;place-items:center;color:var(--text-secondary);position:relative;
  transition:background .15s,color .15s;padding:0;
}
.icon-btn:hover{background:var(--surface-low);color:var(--on-surface)}
.dot{position:absolute;top:7px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--status-canceled);border:1.5px solid #fff}
.vsep{width:1px;height:24px;background:var(--border);margin:0 6px;flex-shrink:0}

/* ---------- 7. DURUM ROZETİ (Bootstrap .badge yeniden tanımlanır) ----------
   Bootstrap badge'i dolu renk; bizimki soft zemin + 1px border + koyu metin.
   İkon ZORUNLU — renk tek başına asla bilgi taşımaz. */
.badge.st{
  display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;
  border-radius:6px;font-size:12px;font-weight:600;line-height:1;border:1px solid;
  white-space:nowrap;vertical-align:middle;
}
.badge.st .ms{font-size:13px}
.st-new{background:rgba(30,80,199,.10);border-color:rgba(30,80,199,.30);color:var(--text-new)}
.st-request{background:rgba(139,92,246,.10);border-color:rgba(139,92,246,.30);color:var(--text-request)}
.st-waiting{background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.35);color:var(--text-waiting)}
.st-changed{background:rgba(20,184,166,.12);border-color:rgba(20,184,166,.32);color:var(--text-changed)}
.st-okey{background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.32);color:var(--text-okey)}
.st-canceled{background:rgba(239,68,68,.10);border-color:rgba(239,68,68,.30);color:var(--text-canceled)}
.st-neutral{background:var(--surface-container);border-color:var(--border);color:var(--text-secondary)}
.count-badge{
  background:var(--error-container);color:var(--on-error-container);
  font-size:11px;font-weight:700;padding:2px 7px;border-radius:20px;
}

/* ---------- 8. KART (Bootstrap .card üzerine) ---------- */
.card{
  --bs-card-border-color:var(--border);
  --bs-card-border-radius:var(--radius-card);
  --bs-card-bg:var(--surface-elevated);
  --bs-card-spacer-y:18px;--bs-card-spacer-x:18px;
  --bs-card-cap-bg:var(--surface);
  --bs-card-cap-padding-y:14px;--bs-card-cap-padding-x:18px;
  overflow:hidden;
}
.card-header{
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.card-header .ttl{display:flex;flex-direction:column;gap:2px;min-width:0}

/* ---------- 9. TABLO (Bootstrap .table üzerine) ---------- */
.table{
  --bs-table-bg:transparent;
  --bs-table-color:var(--on-surface);
  --bs-table-border-color:var(--border);
  --bs-table-hover-bg:var(--surface);
  --bs-table-hover-color:var(--on-surface);
  margin-bottom:0;font-size:13px;
}
.table > thead > tr > th{
  padding:10px 16px;background:var(--surface-bright);
  border-bottom:1px solid var(--border);font-size:11px;font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);white-space:nowrap;
}
.table > tbody > tr > td{
  padding:0 16px;height:48px;vertical-align:middle;
  border-bottom:1px solid var(--border);border-top:none;
}
.table > tbody > tr:last-child > td{border-bottom:none}
.table.table-compact > tbody > tr > td{height:40px}
.num{text-align:right;font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums}
.code{font-family:'JetBrains Mono',monospace;font-size:12.5px;color:var(--primary);font-weight:500;cursor:pointer}
.code:hover{text-decoration:underline}
.row-act{
  opacity:0;transition:opacity .15s;color:var(--text-secondary);
  border:none;background:none;padding:0;
}
tbody tr:hover .row-act{opacity:1}
.row-act:hover{color:var(--primary)}
.cell-2{display:flex;flex-direction:column;gap:1px}
.cell-2 small{font-size:11.5px;color:var(--text-secondary)}
.type-cell{display:inline-flex;align-items:center;gap:6px}
.type-cell .ms{font-size:16px;color:var(--text-secondary)}
/* seçili satır — sol kenarda 2px sarı bar */
.table > tbody > tr.sel{background:var(--primary-fixed)}
.table > tbody > tr.sel > td:first-child{box-shadow:inset 2px 0 0 var(--secondary-container)}

/* ---------- 10. SEKME (Bootstrap .nav-tabs üzerine) ---------- */
.nav-tabs{
  --bs-nav-tabs-border-width:1px;
  --bs-nav-tabs-border-color:var(--border);
  --bs-nav-tabs-link-active-color:var(--primary);
  --bs-nav-tabs-link-active-bg:transparent;
  --bs-nav-tabs-link-active-border-color:transparent transparent var(--primary);
  --bs-nav-link-color:var(--text-secondary);
  --bs-nav-link-hover-color:var(--on-surface);
  --bs-nav-link-padding-y:11px;--bs-nav-link-padding-x:13px;
  --bs-nav-link-font-size:13.5px;
  background:var(--surface);padding:0 18px;flex-wrap:nowrap;overflow-x:auto;
}
.nav-tabs .nav-link{
  border-width:0 0 2px;border-color:transparent;border-radius:0;white-space:nowrap;
}
.nav-tabs .nav-link.active{font-weight:600;border-bottom-color:var(--primary)}
.nav-tabs .nav-link .n{font-size:11px;color:var(--text-secondary);margin-left:5px;font-variant-numeric:tabular-nums}
.nav-tabs .nav-link.active .n{color:var(--primary)}

/* ---------- 11. FORM (Bootstrap .form-control üzerine) ---------- */
.form-control,.form-select{
  height:36px;font-size:13.5px;border-color:var(--border);border-radius:var(--radius-btn);
  background:var(--surface-elevated);
}
.form-control::placeholder{color:var(--text-secondary)}
textarea.form-control{height:auto}
.form-label{
  font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  color:var(--text-secondary);margin-bottom:5px;
}
.form-check-input:checked{background-color:var(--primary);border-color:var(--primary)}

/* Arama kutusu — ikon + input */
.search{position:relative;max-width:380px;width:100%}
.search > .ms{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none}
.search .form-control{padding-left:38px;background:var(--surface-low);border-color:transparent}
.search .form-control:focus{background:var(--surface-elevated);border-color:var(--primary)}

/* Filtre çipi — Bootstrap'ta karşılığı yok */
.chip{
  height:30px;padding:0 11px;border-radius:20px;border:1px solid var(--border);
  background:var(--surface-elevated);font-size:12.5px;display:inline-flex;align-items:center;gap:5px;
  color:var(--text-secondary);transition:background .15s,border-color .15s,color .15s;
}
.chip:hover{background:var(--surface-low);color:var(--on-surface)}
.chip.on{background:var(--primary-fixed);border-color:var(--primary-fixed-dim);color:var(--on-primary-fixed-variant);font-weight:600}
.filterbar{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--border);flex-wrap:wrap}

/* ---------- 12. PROGRESS (Bootstrap .progress üzerine) ---------- */
.progress{
  height:7px;border-radius:20px;background:var(--surface-container);
  --bs-progress-bar-bg:var(--primary);
}
.progress.ok{--bs-progress-bar-bg:var(--status-okey)}
.progress.bad{--bs-progress-bar-bg:var(--status-canceled)}
.kv{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13.5px}
.kv + .kv{margin-top:12px}
.kv .k{color:var(--text-secondary)}
.kv .v{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:500}
.kv.total{padding-top:12px;border-top:1px solid var(--border);font-weight:600}
.kv.total .v{color:var(--text-okey);font-weight:700}

/* ---------- 13. UYGULAMA KABUĞU (Bootstrap'ta karşılığı yok) ---------- */

.bo{display:flex;min-height:calc(100vh - var(--studio-h))}
.sidebar{
  width:var(--sidebar-w);background:var(--sidebar-bg);
  display:flex;flex-direction:column;flex-shrink:0;
  position:sticky;top:var(--studio-h);height:calc(100vh - var(--studio-h));
}
.sidebar-head{padding:20px 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(255,255,255,.08)}
.brand-eye{
  width:36px;height:36px;border-radius:9px;flex-shrink:0;
  background:var(--primary-container);display:grid;place-items:center;position:relative;
}
.brand-eye::before{content:"";width:14px;height:14px;border-radius:50%;background:#fff}
.brand-eye::after{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background:var(--sidebar-bg)}
.brand-text h1{font-family:Figtree,Inter,sans-serif;font-size:15px;line-height:18px;font-weight:800;color:var(--secondary-container);letter-spacing:.01em;margin:0}
.brand-text p{font-size:11px;line-height:14px;color:var(--on-tertiary-container);letter-spacing:.03em;margin:0}

.sidebar-scroll{flex:1;overflow-y:auto;padding:12px 0}
.nav-group{padding:14px 20px 6px;font-size:10px;font-weight:700;letter-spacing:.1em;color:#7f92b8;text-transform:uppercase}
/* .sidebar ile SINIRLI: bu kurallar koyu lacivert kenar cubugu icin yazildi.
   Global birakildiginda Bootstrap nav-tabs (.nav-item) da yakalaniyor ve
   rezervasyon detayindaki sekmeler koyu zemin uzerinde okunmaz hale geliyordu. */
.sidebar .nav-item{
  display:flex;align-items:center;gap:11px;margin:1px 8px;padding:9px 12px;
  border-radius:7px;border-left:3px solid transparent;color:var(--on-tertiary-container);
  font-size:13.5px;transition:background .15s,color .15s;cursor:pointer;
}
.sidebar .nav-item:hover{background:var(--sidebar-hover);color:#fff}
.sidebar .nav-item.active{background:var(--sidebar-active);border-left-color:var(--secondary-container);color:#fff;font-weight:600}
.sidebar .nav-item.active .ms{color:var(--secondary-container)}
.sidebar .nav-item .badge{
  margin-left:auto;background:rgba(253,187,36,.18);color:var(--secondary-container);
  font-size:10px;font-weight:700;padding:2px 6px;border-radius:20px;
}
.sidebar-cta{padding:12px}
.sidebar-cta .btn{width:100%;height:38px}
.sidebar-foot{border-top:1px solid rgba(255,255,255,.08);padding:8px 0}

.bo-main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{
  height:var(--topbar-h);background:var(--surface-elevated);border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:16px;padding:0 24px;position:sticky;top:var(--studio-h);z-index:1020;
}
.avatar{
  width:32px;height:32px;border-radius:50%;border:1px solid var(--border);
  background:linear-gradient(135deg,#1e50c7,#344162);color:#fff;
  display:grid;place-items:center;font-size:12px;font-weight:700;flex-shrink:0;
}
.user-chip{
  display:flex;align-items:center;gap:8px;padding:3px 8px 3px 3px;border-radius:20px;
  border:none;background:none;transition:background .15s;
}
.user-chip:hover{background:var(--surface-low)}
.user-chip span{font-size:13px;font-weight:500}

.canvas{padding:28px 32px 48px;display:flex;flex-direction:column;gap:22px;max-width:1640px;width:100%;margin:0 auto}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.page-head .sub{color:var(--text-secondary);margin:3px 0 0;font-size:13.5px}

/* ---------- 14. KPI ---------- */
.kpi{
  background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-card);
  padding:18px;position:relative;overflow:hidden;height:100%;
}
.kpi-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:10px;gap:10px}
.kpi-chip{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;flex-shrink:0}
.kpi-val{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
.kpi-val .unit{font-size:14px;color:var(--text-secondary);font-weight:400}
.kpi-meta{margin-top:7px;display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary)}
.kpi-meta.up{color:var(--text-okey)}
.kpi-meta.down{color:var(--text-canceled)}
.kpi::after{
  content:"";position:absolute;left:0;bottom:0;height:3px;width:100%;
  background:var(--primary);transform:scaleX(0);transform-origin:left;transition:transform .3s;
}
.kpi:hover::after{transform:scaleX(1)}
.kpi.k-wait::after{background:var(--status-waiting)}
.kpi.k-ok::after{background:var(--status-okey)}
.kpi.k-ter::after{background:var(--tertiary)}

/* ---------- 15. UYARI LİSTESİ · ZAMAN ÇİZELGESİ · GRAFİK ---------- */
.alert-item{
  display:flex;gap:11px;padding:12px 14px;border-radius:8px;text-align:left;width:100%;
  transition:background .15s;align-items:flex-start;border:none;background:none;
}
/* Hover yalnız gerçekten tıklanabilir olanlarda (a/button). Bilgi amaçlı div
   şeritler hover almaz — hover, tıklanabilirlik vaadi verir. */
button.alert-item:hover,a.alert-item:hover{background:var(--surface)}
.alert-item.crit{background:rgba(255,218,214,.35);border:1px solid var(--error-container)}

/* Kimliğe bürünme şeridi — sayfanın en üstünde, sabit, kapatılamaz.
   Uyarı rengi bilinçli: yönetici başka birinin ekranında olduğunu unutmamalı. */
.imp-bar{
  position:sticky;top:0;z-index:1080;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:9px 18px;background:var(--secondary-container,#fde68a);
  color:var(--on-secondary-container,#3f2d00);
  border-bottom:1px solid rgba(0,0,0,.12);
}
.imp-bar .imp-txt{display:flex;flex-direction:column;line-height:1.25;flex:1;min-width:200px}
.imp-bar .imp-txt strong{font-size:13.5px;font-weight:600}
.imp-bar .imp-txt small{font-size:11.5px;opacity:.85}
.imp-bar .imp-back{
  background:var(--surface-lowest,#fff);border:1px solid rgba(0,0,0,.18);
  color:var(--on-surface);font-weight:600;display:inline-flex;align-items:center;gap:6px;
}
button.alert-item.crit:hover,a.alert-item.crit:hover{background:rgba(255,218,214,.6)}
.alert-txt{flex:1;min-width:0}
.alert-txt strong{display:block;font-size:13.5px;font-weight:600;line-height:18px}
.alert-txt small{display:block;font-size:12px;color:var(--text-secondary);margin-top:2px;line-height:16px}
.alert-item .ms.chev{color:var(--outline-variant);align-self:center}

.timeline{display:flex;flex-direction:column}
.tl-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}
.tl-item:last-child{border-bottom:none}
.tl-dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:var(--surface-container);color:var(--text-secondary)}
.tl-dot.ok{background:rgba(16,185,129,.14);color:var(--text-okey)}
.tl-dot.warn{background:rgba(245,158,11,.16);color:var(--text-waiting)}
.tl-body strong{display:block;font-size:13.5px;font-weight:600}
.tl-body small{display:block;font-size:12px;color:var(--text-secondary);margin-top:2px}
.tl-time{margin-left:auto;font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--text-secondary);white-space:nowrap}

.bars{display:flex;align-items:flex-end;gap:6px;height:150px;padding-top:10px;position:relative}
.bars::before{
  content:"";position:absolute;inset:0;
  background-image:repeating-linear-gradient(to top,transparent,transparent 36px,var(--surface-container) 36px,var(--surface-container) 37px);
}
.bars i{flex:1;background:var(--primary-fixed-dim);border-radius:3px 3px 0 0;position:relative;transition:background .15s}
.bars i:hover{background:var(--primary-container)}
.bars i.hi{background:var(--primary)}
.bar-labels{display:flex;gap:6px;margin-top:7px}
.bar-labels span{flex:1;text-align:center;font-size:10px;color:var(--text-secondary)}

.pax-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid var(--border)}
.pax-row:last-child{border-bottom:none}
.pax-av{width:30px;height:30px;border-radius:50%;background:var(--surface-container);display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--text-secondary);flex-shrink:0}

.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}
.detail-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.detail-title h1{font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:500;letter-spacing:-.01em;margin:0}
.meta-row{display:flex;gap:18px;flex-wrap:wrap;margin-top:8px}
.meta-row > div{display:flex;flex-direction:column;gap:1px}
.meta-row .k{font-size:11px;color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;font-weight:600}
.meta-row .v{font-size:13.5px;font-weight:500}
.crumb{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text-secondary)}
.crumb .ms{font-size:15px}

/* ---------- 16. STOREFRONT ---------- */
.st-shell{background:#fff;min-height:calc(100vh - var(--studio-h))}
.st-header{
  height:68px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:28px;
  padding:0 32px;position:sticky;top:var(--studio-h);background:#fff;z-index:1020;
}
.st-brand{display:flex;align-items:center;gap:10px}
.st-brand .brand-eye::after{background:#0b1730}
.st-brand h1{font-family:Figtree,sans-serif;font-size:16px;font-weight:800;letter-spacing:.01em;color:var(--on-surface);margin:0}
.st-brand p{font-size:10.5px;color:var(--text-secondary);letter-spacing:.06em;text-transform:uppercase;margin:0}
.st-nav{display:flex;gap:22px;font-size:14.5px}
.st-nav a{color:var(--on-surface-variant);transition:color .15s}
.st-nav a:hover{color:var(--primary)}
.st-main{max-width:var(--container-st);margin:0 auto;padding:28px 32px 64px}

.hero{
  border-radius:var(--radius-card-st);overflow:hidden;border:1px solid var(--border);
  display:grid;grid-template-columns:2fr 1fr;gap:3px;background:var(--border);height:400px;
}
.ph{position:relative;overflow:hidden;background:linear-gradient(140deg,#1e376e,#1e50c7 55%,#3f7cd8)}
.ph.b{background:linear-gradient(140deg,#344162,#5b6f9e)}
.ph.c{background:linear-gradient(140deg,#7b5800,#fdbb24)}
.ph::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.22),transparent 55%)}
.ph .cap{position:absolute;left:14px;bottom:12px;z-index:2;color:#fff;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;opacity:.9}
.hero-r{display:grid;grid-template-rows:1fr 1fr;gap:3px}
/* .gal-btn kaldırıldı: ST-03 galeri düğmesi view'dan çıkarıldı, kural sahipsiz kalmıştı. */

.st-h1{font-family:Figtree,sans-serif;font-size:38px;line-height:46px;font-weight:800;letter-spacing:-.02em;margin:0}
.st-lead{font-size:16px;line-height:26px;color:var(--on-surface-variant);margin-top:12px}
.fact{
  display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;
  border:1px solid var(--border);border-radius:20px;font-size:13px;background:var(--surface);
}
.fact .ms{font-size:17px;color:var(--primary)}
.st-sec{margin-top:38px}
.st-sec h2{font-family:Figtree,sans-serif;font-size:22px;font-weight:700;margin-bottom:14px;letter-spacing:-.01em}
.itin{border:1px solid var(--border);border-radius:var(--radius-card-st);overflow:hidden}
.itin-day{display:flex;gap:14px;padding:16px 18px;border-bottom:1px solid var(--border)}
.itin-day:last-child{border-bottom:none}
.itin-n{width:44px;height:44px;border-radius:10px;flex-shrink:0;display:grid;place-items:center;background:var(--primary-fixed);color:var(--on-primary-fixed);font-weight:700;font-size:13px;line-height:1.1;text-align:center}
.itin-b strong{display:block;font-size:15px;font-weight:600;margin-bottom:3px}
.itin-b p{font-size:13.5px;line-height:21px;color:var(--text-secondary);margin:0}
/* Kalkış takvimi (ST-03) — sabit tarihli turlarda satın alınabilir tarihler */
.st03-cal{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.st03-dep{
  display:flex;flex-direction:column;gap:2px;padding:12px 14px;
  border:1px solid var(--border);border-radius:var(--radius-card-st);background:var(--surface);
}
.st03-dep .dt{font-family:'JetBrains Mono',monospace;font-size:15px;font-weight:600}
.st03-dep .dy{font-size:11.5px;color:var(--text-secondary)}
.st03-dep .pr{font-family:'JetBrains Mono',monospace;font-size:13px;margin-top:6px}
.st03-dep .st{font-size:11.5px;color:var(--text-secondary)}
/* Son koltuklar — aciliyet gerçek kontenjandan gelir, uydurulmaz */
.st03-dep.hot{border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.08)}
.st03-dep.hot .st{color:var(--on-secondary-container);font-weight:600}

.incl > div{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;line-height:20px}
.incl .ms{font-size:17px;margin-top:1px}
.incl .yes .ms{color:var(--status-okey)}
.incl .no{color:var(--text-secondary)}
.incl .no .ms{color:var(--outline)}

.buybox{border:1px solid var(--border);border-radius:16px;background:#fff;position:sticky;top:calc(var(--studio-h) + 88px);overflow:hidden}
.buybox-top{padding:20px;border-bottom:1px solid var(--border)}
.price{font-family:Figtree,sans-serif;font-size:34px;font-weight:800;letter-spacing:-.02em}
.price-old{font-size:15px;color:var(--text-secondary);text-decoration:line-through}
.price-per{font-size:13px;color:var(--text-secondary)}
.save{display:inline-flex;align-items:center;gap:5px;margin-top:10px;height:26px;padding:0 10px;border-radius:20px;background:var(--secondary-fixed);color:var(--on-secondary-fixed-variant);font-size:12px;font-weight:700}
.buybox-body{padding:18px 20px;display:flex;flex-direction:column;gap:14px}
.fld-in{height:40px;border:1px solid var(--border);border-radius:var(--radius-btn);display:flex;align-items:center;gap:9px;padding:0 12px;font-size:14px;background:#fff}
.fld-in .ms{color:var(--text-secondary);font-size:18px}
.stepper{display:flex;align-items:center;justify-content:space-between;height:40px;border:1px solid var(--border);border-radius:var(--radius-btn);padding:0 6px}
.stepper .btn{width:30px;height:30px;padding:0;border-radius:6px;color:var(--primary);border:none;background:none}
.stepper .btn:hover{background:var(--primary-fixed)}
.stepper .v{font-size:14px;font-weight:600}
.cta{height:48px;font-size:15px;font-weight:700;width:100%}
.cta-sub{height:44px;font-size:14px;font-weight:600;width:100%}
.trust{border-top:1px solid var(--border);padding:14px 20px;display:flex;flex-direction:column;gap:9px}
.trust > div{display:flex;gap:9px;align-items:center;font-size:12.5px;color:var(--text-secondary)}
.trust .ms{font-size:17px;color:var(--status-okey)}
.store-footer{border-top:1px solid var(--border);background:var(--surface);padding:32px}


@media (max-width:1024px){
  .sidebar{width:64px}
  .brand-text,.nav-item > span:not(.ms),.nav-group,.sidebar-cta .btn span:not(.ms){display:none}
  .nav-item{justify-content:center;padding:11px 0}
  .hero{grid-template-columns:1fr;height:auto}
  .hero-r{grid-template-rows:120px 120px}
  .ph{min-height:220px}
  .buybox{position:static}
}

/* ---------- 18. SÜRÜKLE & BIRAK (incoming-portal-dnd.js) ---------- */
[data-dnd-sort] [data-dnd-id],
[data-dnd-item]{cursor:grab}
[data-dnd-sort] [data-dnd-id]:active,
[data-dnd-item]:active{cursor:grabbing}

/* Sürüklenen öğe: yerinden kalktığı belli olsun ama kaybolmasın. */
.dnd-dragging{opacity:.45;outline:2px dashed var(--primary);outline-offset:2px}

/* Üzerine gelinen sıralama hedefi — nereye düşeceği görünsün. */
[data-dnd-sort] .dnd-over{box-shadow:0 -2px 0 0 var(--primary) inset}

/* Taşımada uygun hedefler: bırakılabilecek yerler önden belli olur. */
.dnd-available{border-color:var(--primary-fixed-dim) !important;background:var(--primary-fixed)}
.dnd-over{border-color:var(--primary) !important;background:var(--primary-fixed)}

/* Kaydediliyor — çift gönderimi caydırır. */
.dnd-saving{opacity:.6;pointer-events:none;transition:opacity .15s}

/* Sürükleme tutamacı */
.dnd-handle{color:var(--outline-variant);cursor:grab;flex-shrink:0}
.dnd-handle:hover{color:var(--text-secondary)}

/* Klavye odağı — sürükle-bırak tek başına erişilebilir değil, odak görünür olmalı. */
[data-dnd-item]:focus-visible,
[data-dnd-sort] [data-dnd-id]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}

/* ---------- 19. MATRİS SATIR İÇİ DÜZENLEME (incoming-portal-grid.js) ---------- */
.cell-edit{
  cursor:cell;position:relative;text-align:right;
  font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums;
  transition:background .12s,box-shadow .12s;
}
.cell-edit:hover{background:var(--surface-low)}
.cell-edit:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;background:var(--primary-fixed)}

/* Düzenlenemeyen hücre — sebebi title ile açıklanmalı. */
.cell-locked{cursor:not-allowed;color:var(--text-secondary);background:var(--surface-container)}
.cell-locked:hover{background:var(--surface-container)}

/* Düzenleme kutusu hücreyi tam doldurur — satır yüksekliği zıplamasın. */
.cell-editing{padding:0 !important;background:var(--primary-fixed)}
.cell-input{
  width:100%;height:100%;min-height:38px;border:2px solid var(--primary);border-radius:0;
  padding:0 10px;text-align:right;background:#fff;
  font-family:'JetBrains Mono',monospace;font-size:13px;font-variant-numeric:tabular-nums;
}
.cell-input:focus{outline:none}

/* Kaydediliyor / kaydedildi / reddedildi — geri bildirim üç durumda da görünür. */
.cell-saving{opacity:.55;pointer-events:none}
.cell-saved{background:rgba(16,185,129,.16);box-shadow:inset 0 0 0 1px var(--status-okey)}
.cell-error{background:rgba(239,68,68,.14);box-shadow:inset 0 0 0 1px var(--status-canceled)}

/* Matris: satır/sütun başlıkları kayarken sabit kalsın. */
.matrix-wrap{overflow:auto;max-height:70vh}
.matrix-wrap thead th{position:sticky;top:0;z-index:2}
.matrix-wrap tbody th,
.matrix-wrap td.matrix-head{
  position:sticky;left:0;z-index:1;background:var(--surface-elevated);
  border-right:1px solid var(--border);text-align:left;
}
.matrix-wrap thead th:first-child{z-index:3}

/* Doluluk yoğunluğu — allotment matrisinde hücre zemini */
.fill-0{background:var(--surface-lowest)}
.fill-1{background:rgba(16,185,129,.10)}
.fill-2{background:rgba(245,158,11,.14)}
.fill-3{background:rgba(239,68,68,.14)}
.fill-stop{background:repeating-linear-gradient(45deg,rgba(239,68,68,.18),rgba(239,68,68,.18) 4px,transparent 4px,transparent 8px)}

/* ---------- 20. YAZDIRMA ---------- */
@media print{
  /* Ekran kabuğu kâğıda basılmaz: sidebar, topbar, aksiyon butonları, filtreler. */
  .sidebar,.topbar,.page-head .btn,.filterbar,.nav-tabs,.alert-item,
  .row-act,.dnd-handle,.studio,.store-footer,.st-header{display:none !important}

  .bo,.bo-main,.canvas,.st-main{display:block;margin:0;padding:0;max-width:none}
  body{background:#fff}

  /* Kart çerçevesi kâğıtta gürültü; başlık kalsın, kutu gitsin. */
  .card{border:none;border-radius:0;break-inside:avoid}
  .card-header{background:transparent;border-bottom:1px solid #000;padding-left:0;padding-right:0}

  /* Tablo satırı sayfa sonunda ortadan bölünmesin. */
  table{width:100%;border-collapse:collapse}
  thead{display:table-header-group}          /* başlık her sayfada tekrarlansın */
  tr{break-inside:avoid}
  .table>tbody>tr>td,.table>thead>tr>th{padding:4px 6px;font-size:10pt}

  /* Rozet zeminleri yazıcıda mürekkep yer; çerçeveyle ayırt edilir. */
  .badge.st{background:transparent !important;border:1px solid #666;color:#000}

  a[href]::after{content:""}                 /* bağlantı adreslerini basma */
  .matrix-wrap{overflow:visible;max-height:none}
  @page{margin:12mm}
}
