/* ===========================================================================
   ZYM Bilişim - Teklif Yönetim Sistemi
   Tema, yerleşim ve bileşen stilleri (özel CSS, Bootstrap kullanılmadı)
   =========================================================================== */

/* ----------------------------- TEMA DEĞİŞKENLERİ ----------------------------- */
:root {
  --brand:#1e3a8a; --brand-2:#2563eb; --brand-soft:#e0e7ff; --accent:#0ea5e9;
  --success:#16a34a; --danger:#dc2626; --warning:#d97706; --info:#0891b2; --purple:#7c3aed;

  --bg:#eef2f7; --bg-elevated:#ffffff; --bg-muted:#f5f8fc; --bg-input:#ffffff;
  --text:#0f172a; --text-muted:#64748b; --border:#e2e8f0; --border-strong:#cbd5e1;

  --shadow-sm:0 1px 2px rgba(15,23,42,.06);
  --shadow-md:0 4px 16px rgba(15,23,42,.10);
  --shadow-lg:0 12px 40px rgba(15,23,42,.18);
  --radius:14px; --radius-sm:9px; --sidebar-w:252px;
}
html[data-theme="dark"] {
  --brand:#3b82f6; --brand-2:#60a5fa; --brand-soft:#1e293b; --accent:#38bdf8;
  --bg:#0b1220; --bg-elevated:#111c30; --bg-muted:#0f1829; --bg-input:#0f1b2e;
  --text:#e5edf7; --text-muted:#93a4bd; --border:#1e2c44; --border-strong:#2c3e5e;
  --shadow-sm:0 1px 2px rgba(0,0,0,.4); --shadow-md:0 4px 16px rgba(0,0,0,.45); --shadow-lg:0 12px 40px rgba(0,0,0,.55);
}

/* ----------------------------- RESET ----------------------------- */
* { box-sizing:border-box; margin:0; padding:0; }
html, body { height:100%; }
body {
  font-family:"Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
  background:var(--bg); color:var(--text); font-size:14px; line-height:1.5;
  -webkit-font-smoothing:antialiased; transition:background .25s, color .25s;
}
button { font-family:inherit; cursor:pointer; }
input, select, textarea { font-family:inherit; }
a { color:var(--brand-2); text-decoration:none; }

/* ----------------------------- ORTAK BİLEŞENLER ----------------------------- */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  border:1px solid transparent; border-radius:var(--radius-sm);
  padding:9px 15px; font-size:13.5px; font-weight:600;
  background:var(--bg-muted); color:var(--text); white-space:nowrap;
  transition:transform .05s, background .15s, box-shadow .15s, border-color .15s;
}
.btn:active { transform:translateY(1px); }
.btn svg { width:16px; height:16px; flex:none; }
.btn-primary { background:var(--brand-2); color:#fff; box-shadow:var(--shadow-sm); }
.btn-primary:hover { background:var(--brand); }
.btn-success { background:var(--success); color:#fff; }
.btn-danger  { background:var(--danger);  color:#fff; }
.btn-warning { background:var(--warning); color:#fff; }
.btn-info    { background:var(--info);    color:#fff; }
.btn-wa      { background:#25d366; color:#fff; }
.btn-ghost   { background:transparent; border-color:var(--border-strong); color:var(--text); }
.btn-ghost:hover { background:var(--bg-muted); }
.btn-sm { padding:6px 11px; font-size:12.5px; }
.btn-icon { padding:8px; width:36px; height:36px; }

.field { display:flex; flex-direction:column; gap:6px; }
.field label { font-size:12px; font-weight:600; color:var(--text-muted); text-transform:uppercase; letter-spacing:.3px; }
.input, .select, .textarea {
  width:100%; padding:10px 12px; font-size:14px;
  background:var(--bg-input); color:var(--text);
  border:1px solid var(--border-strong); border-radius:var(--radius-sm);
  transition:border-color .15s, box-shadow .15s;
}
.input:focus, .select:focus, .textarea:focus {
  outline:none; border-color:var(--brand-2);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--brand-2) 25%, transparent);
}
.input[readonly] { background:var(--bg-muted); color:var(--text-muted); }
.textarea { resize:vertical; min-height:90px; }

.badge { display:inline-flex; align-items:center; gap:5px; padding:4px 11px; border-radius:999px; font-size:12px; font-weight:700; }
.badge::before { content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.st-verildi   { background:color-mix(in srgb,var(--info) 15%,transparent);    color:var(--info); }
.st-bekleniyor{ background:color-mix(in srgb,var(--warning) 16%,transparent); color:var(--warning); }
.st-olumlu    { background:color-mix(in srgb,var(--success) 15%,transparent); color:var(--success); }
.st-olumsuz   { background:color-mix(in srgb,var(--danger) 14%,transparent);  color:var(--danger); }
.st-revize    { background:color-mix(in srgb,var(--purple) 15%,transparent);  color:var(--purple); }
.st-iptal     { background:color-mix(in srgb,var(--text-muted) 18%,transparent); color:var(--text-muted); }
.st-onaylandi { background:color-mix(in srgb,var(--success) 18%,transparent); color:var(--success); font-weight:600; }

.card { background:var(--bg-elevated); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow-sm); margin-bottom:20px; }
.card-head { display:flex; align-items:center; gap:12px; padding:16px 20px; border-bottom:1px solid var(--border); }
.card-head h3 { font-size:15px; font-weight:700; }
.card-head .spacer { flex:1; }
.card-body { padding:20px; }

.flash { padding:12px 16px; border-radius:var(--radius-sm); margin-bottom:18px; font-size:14px; font-weight:600; }
.flash-success { background:color-mix(in srgb,var(--success) 13%,transparent); color:var(--success); border:1px solid color-mix(in srgb,var(--success) 30%,transparent); }
.flash-error   { background:color-mix(in srgb,var(--danger) 12%,transparent);  color:var(--danger);  border:1px solid color-mix(in srgb,var(--danger) 32%,transparent); }

/* flash popup */
.flash-popup {
  position:fixed;top:24px;left:50%;transform:translateX(-50%);z-index:9999;
  display:flex;align-items:center;gap:10px;
  padding:14px 20px;border-radius:12px;
  font-size:15px;font-weight:600;
  box-shadow:0 8px 30px rgba(0,0,0,.2);
  animation:flashIn .35s ease-out;
  max-width:90vw;
}
@keyframes flashIn { from{opacity:0;transform:translateX(-50%) translateY(-20px)} to{opacity:1;transform:translateX(-50%) translateY(0)} }
.flash-hide { animation:flashOut .4s ease-in forwards; }
@keyframes flashOut { from{opacity:1;transform:translateX(-50%) translateY(0)} to{opacity:0;transform:translateX(-50%) translateY(-20px)} }
.flash-popup-success { background:#16a34a;color:#fff;border:1px solid #15803d; }
.flash-popup-error { background:#dc2626;color:#fff;border:1px solid #b91c1c; }
.flash-icon { font-size:18px;flex-shrink:0; }
.flash-msg { flex:1;white-space:pre-wrap; }
.flash-close { background:none;border:none;color:inherit;font-size:22px;cursor:pointer;opacity:.7;padding:0 0 0 4px;line-height:1; }
.flash-close:hover { opacity:1; }

/* ----------------------------- GİRİŞ EKRANI ----------------------------- */
#loginScreen {
  position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; padding:20px;
  background:
    radial-gradient(1200px 600px at 8% -10%, color-mix(in srgb,var(--brand-2) 32%,transparent), transparent),
    radial-gradient(1000px 500px at 112% 112%, color-mix(in srgb,var(--accent) 26%,transparent), transparent),
    var(--bg);
}
.login-card { width:100%; max-width:420px; background:var(--bg-elevated); border:1px solid var(--border);
  border-radius:var(--radius); box-shadow:var(--shadow-lg); padding:36px 32px; animation:pop .35s ease; }
@keyframes pop { from{opacity:0; transform:translateY(12px) scale(.98);} to{opacity:1; transform:none;} }
.login-logo { width:64px; height:64px; border-radius:16px; margin:0 auto 16px; display:grid; place-items:center;
  color:#fff; font-weight:800; font-size:22px; background:linear-gradient(135deg,var(--brand),var(--brand-2)); box-shadow:var(--shadow-md); }
.login-card h1 { text-align:center; font-size:22px; margin-bottom:4px; }
.login-card .sub { text-align:center; color:var(--text-muted); margin-bottom:24px; font-size:13px; }
.login-card .field { margin-bottom:16px; }
.login-hint { text-align:center; font-size:12px; color:var(--text-muted); margin-top:16px; }
.login-error { background:color-mix(in srgb,var(--danger) 12%,transparent); color:var(--danger);
  border:1px solid color-mix(in srgb,var(--danger) 35%,transparent); border-radius:var(--radius-sm);
  padding:10px 12px; font-size:13px; margin-bottom:16px; }

/* ----------------------------- YERLEŞİM ----------------------------- */
.layout { display:grid; grid-template-columns:var(--sidebar-w) 1fr; min-height:100vh; }
.sidebar { background:var(--bg-elevated); border-right:1px solid var(--border); display:flex; flex-direction:column;
  padding:18px 14px; gap:4px; position:sticky; top:0; height:100vh; }
.sidebar .brand { display:flex; align-items:center; gap:12px; padding:4px 4px 16px; width:100%; box-sizing:border-box; }
.sidebar .brand .logo { width:42px; height:42px; border-radius:11px; flex:none; display:grid; place-items:center;
  color:#fff; font-weight:800; font-size:16px; background:linear-gradient(135deg,var(--brand),var(--brand-2)); }
.sidebar .brand .logo.logo-img { background:#fff; overflow:hidden; padding:3px; }
.sidebar .brand .logo.logo-img img { width:100%; height:100%; object-fit:contain; }
.sidebar .brand.brand-logo-only {
  justify-content:center; align-items:center;
  padding:8px 4px 18px;
}
.sidebar .brand.brand-logo-only .logo.logo-img {
  width:100%; max-width:100%; height:auto; min-height:0;
  padding:0; border-radius:0; background:transparent; overflow:visible;
  display:flex; align-items:center; justify-content:center;
}
.sidebar .brand.brand-logo-only .logo.logo-img img {
  width:100%; max-width:100%; height:auto;
  max-height:78px; object-fit:contain; object-position:center center;
  display:block;
}
.sidebar .brand.brand-stacked {
  flex-direction:column; align-items:center; gap:8px;
  padding:8px 4px 18px;
}
.sidebar .brand.brand-stacked .logo.logo-img {
  width:100%; max-width:100%; height:auto; max-height:none;
  padding:0; border-radius:0; background:transparent; overflow:visible;
  display:flex; align-items:center; justify-content:center;
}
.sidebar .brand.brand-stacked .logo.logo-img img {
  width:100%; max-height:72px; object-fit:contain; object-position:center center;
  display:block;
}
.sidebar .brand.brand-stacked .name { text-align:center; }
.logo-preview { width:120px; height:120px; border-radius:14px; border:1px dashed var(--border);
  display:grid; place-items:center; overflow:hidden; background:var(--bg); }
.logo-preview img { width:100%; height:100%; object-fit:contain; padding:8px; }
.logo-preview span { font-weight:800; font-size:30px; color:var(--brand);
  background:linear-gradient(135deg,var(--brand),var(--brand-2)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; }

/* Marka görünüm seçenekleri (ayarlar) */
.brand-mode-btns { display:flex; gap:10px; flex-wrap:wrap; }
.brand-mode-opt { display:flex; flex-direction:column; gap:4px; padding:12px 14px; border:1px solid var(--border);
  border-radius:var(--radius-sm); background:var(--bg); cursor:pointer; flex:1; min-width:180px; transition:border-color .15s, box-shadow .15s; }
.brand-mode-opt:has(input:checked) { border-color:var(--brand-2); box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-2) 25%,transparent); background:var(--brand-soft); }
.brand-mode-opt input { margin-bottom:2px; }
.brand-mode-opt .t { font-weight:700; font-size:13px; }
.brand-mode-opt small { color:var(--text-muted); font-size:12px; line-height:1.35; }
.brand-header-preview-wrap { margin:18px 0; padding:16px; border:1px dashed var(--border); border-radius:var(--radius); background:var(--bg-muted); }
.brand-header-preview { background:#fff; color:#111; padding:16px 18px; border-radius:8px; border-bottom:3px solid #1e3a8a; min-height:72px; }
.brand-preview-block { display:flex; align-items:center; gap:14px; }
.brand-preview-block.brand-logo-only { align-items:center; }
.brand-preview-block.brand-logo-only .logo.logo-img { width:auto; max-width:200px; height:56px; }
.brand-preview-block.brand-logo-only .logo.logo-img img { max-height:56px; max-width:200px; object-fit:contain; }
.brand-preview-block.brand-stacked { flex-direction:column; align-items:flex-start; gap:8px; }
.brand-preview-block.brand-stacked .logo.logo-img img { max-height:64px; max-width:220px; object-fit:contain; }
.brand-preview-block .logo { width:54px; height:54px; border-radius:12px; display:grid; place-items:center; color:#fff; font-weight:800;
  background:linear-gradient(135deg,#1e3a8a,#2563eb); font-size:18px; flex:none; }
.brand-preview-block .logo.logo-img { background:#fff; border:1px solid #e5e7eb; }
.brand-preview-block .preview-firm { display:flex; flex-direction:column; gap:2px; }
.brand-preview-block .preview-firm strong { font-size:17px; color:#1e3a8a; }
.brand-preview-block .preview-firm span { font-size:12px; color:#555; }
.brand-preview-block .preview-firm small { font-size:11px; color:#777; }

.sidebar .brand .name { font-weight:800; font-size:15px; line-height:1.1; }
.sidebar .brand .name small { display:block; font-weight:500; font-size:11px; color:var(--text-muted); }
.nav-item { display:flex; align-items:center; gap:12px; width:100%; padding:11px 12px; border-radius:var(--radius-sm);
  border:none; background:transparent; color:var(--text-muted); font-size:14px; font-weight:600; text-align:left;
  transition:background .15s, color .15s; cursor:pointer; }
.nav-item svg { width:18px; height:18px; flex:none; }
.nav-item:hover { background:var(--bg-muted); color:var(--text); }
.nav-item.active { background:var(--brand-soft); color:var(--brand-2); }
.nav-group { margin-bottom:2px; }
.nav-group .nav-item.active { background:var(--brand-soft); color:var(--brand-2); border-radius:var(--radius-sm) var(--radius-sm) 0 0; }
.nav-group .nav-sub { padding-left:46px; font-size:13px; font-weight:500; border-radius:0 0 var(--radius-sm) var(--radius-sm); display:none; }
.nav-group .nav-sub.active { background:color-mix(in srgb,var(--brand-2) 10%,transparent); }
.nav-group.open .nav-sub { display:flex; }
.nav-group.open .nav-chevron { transform:rotate(180deg); }
.nav-chevron { transition:transform .2s ease; margin-left:auto; }

/* Teklif Hazırla buton stili (standalone) */
.nav-btn-action {
  background:var(--brand-2) !important;
  color:#fff !important;
  border-radius:var(--radius-sm) !important;
  margin:4px 12px !important;
  padding:10px 14px !important;
  font-weight:600 !important;
  gap:10px;
}
.nav-btn-action:hover { filter:brightness(1.1); }
.nav-btn-action svg { stroke:#fff !important; }
.nav-btn-action.active { filter:brightness(1.15); box-shadow:0 2px 10px rgba(0,0,0,.2); }

/* Durum Takibi 3 satır */
.nav-stacked { flex-direction:column !important; align-items:flex-start !important; gap:0 !important; padding:10px 14px !important; }
.nav-stacked svg { margin-bottom:2px; }
.nav-stacked-text { display:flex; flex-direction:column; line-height:1.3; }
.nav-stacked-title { font-size:13px; font-weight:600; }
.nav-stacked-desc { font-size:10.5px; color:var(--text-muted); font-weight:400; }
.nav-stacked.active .nav-stacked-desc { color:inherit; opacity:.7; }
.nav-spacer { flex:1; }
.nav-foot { font-size:11px; color:var(--text-muted); padding:12px 10px 4px; border-top:1px solid var(--border); }

.main { display:flex; flex-direction:column; min-width:0; }
.topbar { display:flex; align-items:center; gap:14px; padding:14px 24px; background:var(--bg-elevated);
  border-bottom:1px solid var(--border); position:sticky; top:0; z-index:20; }
.topbar h2 { font-size:17px; font-weight:700; }
.topbar .spacer { flex:1; }
.user-chip { display:flex; align-items:center; gap:10px; padding:6px 12px 6px 6px; border:1px solid var(--border);
  border-radius:999px; background:var(--bg-muted); }
.user-chip .av { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; background:var(--brand-2);
  color:#fff; font-weight:700; font-size:13px; text-transform:uppercase; }
.user-chip .uname { font-weight:600; }

.content { padding:24px; }
.page-title-row { display:flex; align-items:center; gap:12px; margin-bottom:18px; flex-wrap:wrap; }
.page-title-row .spacer { flex:1; }
.page-title-row h1 { font-size:20px; }
.act-bar { display:flex; gap:8px; flex-wrap:wrap; align-items:flex-start; }

.download-dropdown { position:relative; display:inline-block; }
.download-dropdown .download-menu { display:none; position:absolute; top:100%; right:0; z-index:50;
  min-width:180px; background:var(--bg-elevated); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow-lg); padding:6px; margin-top:4px; }
.download-dropdown .download-menu.show { display:block; }
.download-dropdown .download-menu a { display:flex; align-items:center; gap:10px; padding:10px 14px;
  border-radius:6px; text-decoration:none; color:var(--text); font-size:14px; transition:background .1s; }
.download-dropdown .download-menu a:hover { background:var(--brand-soft); }

/* ----------------------------- DASHBOARD KARTLARI ----------------------------- */
.stat-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
  margin-bottom:20px;
}
.stat-link { text-decoration:none; color:inherit; transition:transform .15s, box-shadow .15s; }
.stat-link:hover { transform:translateY(-2px); box-shadow:0 4px 12px color-mix(in srgb,var(--shadow) 25%,transparent); }
.stat {
  background:var(--bg-elevated); border:1px solid var(--border); border-radius:var(--radius); padding:16px 18px;
  box-shadow:var(--shadow-sm); display:flex; align-items:center; gap:12px; min-width:0;
}
.stat .ic { width:44px; height:44px; border-radius:12px; display:grid; place-items:center; flex:none; }
.stat .ic svg { width:22px; height:22px; }
.stat .stat-body { min-width:0; flex:1; }
.stat .v {
  font-size:22px; font-weight:800; line-height:1.15;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  font-variant-numeric:tabular-nums;
}
.stat.stat-money .v { font-size:18px; letter-spacing:-0.02em; }
.stat .l { font-size:12.5px; color:var(--text-muted); font-weight:600; margin-top:2px; }
.ic-blue   { background:color-mix(in srgb,var(--brand-2) 15%,transparent); color:var(--brand-2); }
.ic-orange { background:color-mix(in srgb,var(--warning) 16%,transparent); color:var(--warning); }
.ic-green  { background:color-mix(in srgb,var(--success) 15%,transparent); color:var(--success); }
.ic-red    { background:color-mix(in srgb,var(--danger) 14%,transparent);  color:var(--danger); }
.ic-purple { background:color-mix(in srgb,var(--purple) 15%,transparent);  color:var(--purple); }
@media (max-width:900px) {
  .stat-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:560px) {
  .stat-grid { grid-template-columns:1fr; }
  .stat.stat-money .v { font-size:20px; }
}

/* ----------------------------- FORM GRID ----------------------------- */
.form-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.form-grid .col-2 { grid-column:span 2; }
.form-grid .col-3 { grid-column:span 3; }
.form-grid .col-4 { grid-column:span 4; }

.cust-layout { display:grid; grid-template-columns:360px 1fr; gap:20px; align-items:start; }

/* ----------------------------- EXCEL BENZERİ TABLO ----------------------------- */
.table-wrap { overflow-x:auto; border:1px solid var(--border); border-radius:var(--radius); }
table.grid { width:100%; border-collapse:separate; border-spacing:0; min-width:820px; }
table.grid thead th { background:#36BCF1; color:#fff; font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:.02em; padding:8px 8px; text-align:left; white-space:nowrap;
  border:1px solid #2aa8d8; }
table.grid tbody td { padding:6px 8px; border-bottom:1px solid var(--border); vertical-align:middle; }
table.grid tbody tr:nth-child(even) td { background:color-mix(in srgb,var(--bg-muted) 55%,transparent); }
table.grid tbody tr:hover td { background:color-mix(in srgb,var(--brand-2) 7%,transparent); }
table.grid .cell-input { width:100%; border:1px solid transparent; background:transparent; color:var(--text);
  padding:8px; border-radius:6px; font-size:14px; }
table.grid .cell-input:focus { outline:none; background:var(--bg-input); border-color:var(--brand-2);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-2) 25%,transparent); }
table.grid td.num, table.grid .cell-input.num { text-align:right; }
table.grid .subtotal-cell { font-weight:700; text-align:right; white-space:nowrap; padding-right:12px; }
table.grid .col-actions { width:52px; text-align:center; }
.row-del { width:32px; height:32px; border-radius:8px; border:1px solid var(--border-strong); background:transparent;
  color:var(--danger); display:inline-grid; place-items:center; cursor:pointer; }
.row-del:hover { background:color-mix(in srgb,var(--danger) 12%,transparent); border-color:var(--danger); }
.grid-toolbar { display:flex; align-items:center; gap:10px; padding:12px 0 4px; flex-wrap:wrap; }

.summary-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:20px; align-items:start; }
.totals { background:var(--bg-muted); border:1px solid var(--border); border-radius:var(--radius); padding:8px 18px; }
.totals .row { display:flex; justify-content:space-between; padding:11px 0; border-bottom:1px dashed var(--border); }
.totals .row:last-child { border-bottom:none; }
.totals .row .lbl { color:var(--text-muted); font-weight:600; }
.totals .row .val { font-weight:700; font-variant-numeric:tabular-nums; }
.totals .row.grand .lbl, .totals .row.grand .val { font-size:18px; color:var(--brand-2); }

/* ----------------------------- LİSTE TABLOSU ----------------------------- */
table.list { width:100%; border-collapse:collapse; }
table.list th { text-align:left; padding:12px 14px; font-size:12px; text-transform:uppercase; color:var(--text-muted);
  border-bottom:1px solid var(--border); white-space:nowrap; }
table.list td { padding:11px 14px; border-bottom:1px solid var(--border); vertical-align:middle; }
table.list tr:hover td { background:var(--bg-muted); }
table.list .num { text-align:right; font-variant-numeric:tabular-nums; }
.act-group { display:flex; gap:5px; flex-wrap:wrap; }
.act-btn { width:32px; height:32px; border-radius:8px; border:1px solid var(--border); background:var(--bg-elevated);
  color:var(--text-muted); display:inline-grid; place-items:center; transition:all .15s; }
.act-btn svg { width:16px; height:16px; }
.act-btn:hover { color:#fff; border-color:transparent; }
.act-btn.v:hover { background:var(--brand-2); }
.act-btn.e:hover { background:var(--warning); }
.act-btn.p:hover { background:var(--danger); }
.act-btn.x:hover { background:var(--success); }
.act-btn.m:hover { background:var(--info); }
.act-btn.w:hover { background:#25d366; }

.toolbar-row { display:flex; gap:10px; align-items:center; margin-bottom:16px; flex-wrap:wrap; }
.search { flex:1; min-width:200px; max-width:340px; position:relative; }
.search input { padding-left:38px; }
.search svg { position:absolute; left:12px; top:50%; transform:translateY(-50%); width:16px; height:16px; color:var(--text-muted); }

.placeholder { text-align:center; padding:48px 20px; color:var(--text-muted); }

/* ----------------------------- KANBAN ----------------------------- */
.kanban { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px; }
.kan-col { background:var(--bg-muted); border:1px solid var(--border); border-radius:var(--radius); padding:14px; }
.kan-col h4 { font-size:13px; margin-bottom:12px; display:flex; align-items:center; gap:8px; }
.kan-col h4 .cnt { margin-left:auto; background:var(--bg-elevated); border:1px solid var(--border); border-radius:999px;
  padding:1px 9px; font-size:12px; }
.kan-card { display:block; background:var(--bg-elevated); border:1px solid var(--border); border-radius:10px; padding:12px;
  margin-bottom:10px; box-shadow:var(--shadow-sm); color:inherit; }
.kan-card:hover { border-color:var(--brand-2); }
.kan-card .no { font-weight:700; font-size:13px; }
.kan-card .cu { font-size:13px; color:var(--text-muted); margin:3px 0; }
.kan-card .tt { font-weight:700; font-size:14px; }

/* ----------------------------- DURUM ÖZET KUTULARI ----------------------------- */
.status-chips { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:20px; }
.status-chip { display:flex; align-items:center; gap:10px; padding:12px 16px; border:1px solid var(--border);
  border-radius:var(--radius); background:var(--bg-elevated); box-shadow:var(--shadow-sm); transition:all .15s;
  color:var(--text); }
.status-chip:hover { border-color:var(--brand-2); transform:translateY(-1px); }
.status-chip.active { border-color:var(--brand-2); box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-2) 30%,transparent); }
.status-chip .cc { font-weight:700; font-size:13px; color:var(--text-muted); }
.status-chip .nn { font-size:18px; font-weight:800; min-width:22px; text-align:center; }

.admin-firm-av { width:36px; height:36px; border-radius:8px; display:grid; place-items:center;
  font-size:13px; font-weight:800; color:#fff; flex:none;
  background:linear-gradient(135deg,var(--brand),var(--brand-2)); }

/* ----------------------------- A4 BELGE (tek sayfa) ----------------------------- */
.a4-wrap { display:flex; justify-content:center; }
.a4 { background:#fff; color:#111; width:210mm; max-width:100%; padding:10px 14px; font-size:13px;
  font-family: Calibri, "Segoe UI", Arial, Helvetica, sans-serif;
  border-radius:6px; box-shadow:var(--shadow-md);
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
  --doc-table-head:#49A9DA;
  --doc-section-head:#49A9DA;
  --doc-firm-band:#FFFF00;
}
.a4 .a4-head { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; border-bottom:2px solid var(--doc-table-head); padding-bottom:6px; }
.a4 .a4-brand { display:flex; align-items:center; gap:8px; flex:0 0 auto; max-width:20%; min-width:0; }
.a4 .a4-firm-info-wrap { flex:1 1 auto; min-width:0; max-width:58%; padding:0 6px; }
.a4 .a4-firm-info-text {
  font-family: Calibri, "Segoe UI", Arial, Helvetica, sans-serif;
  font-size:10px; color:#222; line-height:1.3;
}
.a4 .a4-firm-info-title {
  font-weight:700; font-size:11px; color:#1e3a8a; margin:0 0 2px;
}
.a4 .a4-firm-info-lines { margin:0; }
.a4 .a4-firm-info-lines .fi-lbl { font-weight:700; color:#334155; }
.a4 .a4-firm-info-lines a { color:#0563C1; text-decoration:underline; }
.a4 .doc-title { text-align:right; flex:0 0 auto; min-width:155px; }
.a4 .a4-brand.brand-logo-only { align-items:center; }
.a4 .a4-brand.brand-logo-only .a4-logo-img { max-width:130px; height:auto; }
.a4 .a4-brand.brand-logo-only .a4-logo-img img { max-height:38px; max-width:130px; width:auto; height:auto; object-fit:contain; object-position:left center; }
.a4 .a4-brand.brand-stacked { flex-direction:column; align-items:flex-start; gap:2px; }
.a4 .a4-brand.brand-stacked .a4-logo-img img { max-height:40px; max-width:140px; object-fit:contain; object-position:left top; }
.a4 .a4-brand.brand-stacked .firm { text-align:left; }
.a4 .a4-logo { width:36px; height:36px; border-radius:8px; display:grid; place-items:center; color:#fff; font-weight:800;
  background:linear-gradient(135deg,var(--doc-table-head),#1e3a8a); font-size:13px; }
.a4 .a4-logo.a4-logo-img { width:auto; height:36px; max-width:110px; background:none; border-radius:0; }
.a4 .a4-logo.a4-logo-img img { max-height:36px; max-width:110px; object-fit:contain; }
.a4 .firm h2 { font-size:16px; color:#1e3a8a; margin:0; }
.a4 .firm p { color:#555; font-size:11.5px; margin:0; line-height:1.25; }
.a4 .doc-title h1 { font-size:15px; letter-spacing:.3px; color:#1e3a8a; margin:0; line-height:1.25; }
.a4 .doc-meta { margin-top:2px; font-size:11.5px; color:#444; line-height:1.35; }
.a4 .a4-customer-block {
  margin:6px 0 4px;
  padding-top:4px;
  border-top:2px solid var(--doc-table-head);
}
.a4 .a4-customer-title {
  font-size:10.5px;
  text-transform:uppercase;
  letter-spacing:.2px;
  color:#888;
  margin-bottom:4px;
}
.a4 .a4-customer-ul {
  text-decoration:underline;
  text-decoration-color:var(--doc-table-head);
}
.a4 .a4-customer-line {
  font-size:11.5px;
  line-height:1.4;
  color:#222;
  margin:1px 0;
}
.a4 .a4-customer-lbl { font-weight:800; }
.a4 .a4-end-table {
  width:100%;
  border-collapse:collapse;
  margin-top:4px;
  table-layout:fixed;
}
.a4 .a4-end-table td {
  border:none;
  padding:0 6px;
  vertical-align:top;
  font-size:11px;
  font-weight:800;
  color:#111;
  line-height:1.05;
}
.a4 .a4-end-table .a4-end-side {
  width:52%;
  padding-right:12px;
  vertical-align:top;
}
.a4 .a4-end-table .a4-end-kur {
  width:52%;
  padding-right:12px;
  vertical-align:middle;
}
.a4 .a4-end-table .a4-tot-wrap {
  width:48%;
  padding:0;
  vertical-align:top;
  text-align:right;
}
.a4 .a4-end-table .a4-tot-inner {
  width:auto;
  margin-left:auto;
  border-collapse:collapse;
}
.a4 .a4-end-table .a4-tot-inner td {
  border:none;
  padding:3px 0;
  font-size:12px;
  font-weight:800;
  color:#111;
  line-height:1.2;
  vertical-align:top;
}
.a4 .a4-end-table .a4-tot-inner .tot-lbl {
  text-align:right;
  white-space:nowrap;
  padding:3px 2cm 3px 0;
}
.a4 .a4-end-table .a4-tot-inner .tot-amt {
  text-align:right;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
  padding:3px 0;
}
.a4 .a4-end-table tr.a4-grand-row .a4-tot-wrap {
  vertical-align:middle;
}
.a4 .a4-end-table .a4-tot-inner tr.g .tot-lbl,
.a4 .a4-end-table .a4-tot-inner tr.g .tot-amt {
  font-weight:900;
  color:#000 !important;
  background:var(--doc-firm-band) !important;
  border-top:2px solid var(--doc-table-head);
  font-size:13px;
  padding-top:4px;
  padding-bottom:5px;
  line-height:1.2;
  -webkit-print-color-adjust:exact;
  print-color-adjust:exact;
}
.a4 .a4-end-table .a4-tot-inner tr.g .tot-lbl {
  padding-right:2cm;
}
.a4 .a4-end-left {
  flex:1 1 auto;
  min-width:0;
  max-width:calc(100% - 300px);
  margin-right:auto;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.a4 .a4-kur-box {
  border:1px solid #cbd5e1;
  border-radius:4px;
  padding:5px 8px;
  font-size:12px;
  font-weight:800;
  color:#111;
  line-height:1.35;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0 12px;
}
.a4 .a4-kur-lbl { color:#1e3a8a; margin-right:2px; }
.a4 .a4-kur-usd,
.a4 .a4-kur-eur { color:#1e3a8a; }
.a4 .a4-notes-block {
  border:1px solid #cbd5e1;
  border-radius:4px;
  padding:6px 8px;
  font-size:11px;
  color:#111;
  line-height:1.3;
  word-break:break-word;
  overflow-wrap:anywhere;
  font-weight:700;
}
.a4 .a4-notes-title { font-weight:800; color:#1e3a8a; margin-bottom:3px; }
.a4 .a4-notes-body { color:#111; font-weight:700; }
.a4 .a4-iptal-block { border-color:#fca5a5; }
.a4 .a4-iptal-title { color:var(--danger); }
.a4 .a4-iptal-body { color:var(--danger); }
.a4 .a4-parties { display:flex; justify-content:space-between; gap:10px; margin:6px 0 4px; align-items:flex-start; }
.a4 .a4-parties .box { flex:1; min-width:0; font-size:11px; line-height:1.3; }
.a4 .a4-parties .box .t { font-size:9.5px; text-transform:uppercase; letter-spacing:.3px; color:#888; margin-bottom:1px; }
.a4 .a4-cur-line { margin-top:3px; padding-top:3px; border-top:1px dashed #dbe3f0; display:flex; flex-wrap:wrap; gap:3px 8px; font-size:10.5px; color:#334155; }
.a4 .a4-status-box { flex:0 0 auto; text-align:right; min-width:110px; }
.a4 .a4-status-inline { display:flex; gap:10px; justify-content:flex-end; }
.a4 .a4-status-inline > div { text-align:right; }
.a4 table { width:100%; border-collapse:collapse; margin-top:2px; }
.a4 table th {
  background:var(--doc-table-head) !important;
  color:#fff !important;
  padding:3px 5px;
  font-size:10.5px;
  text-align:left;
  -webkit-print-color-adjust:exact;
  print-color-adjust:exact;
}
.a4 table th.num, .a4 table td.num { text-align:right; }
.a4 table td { padding:3px 5px; border-bottom:1px solid #e5e7eb; font-size:11.5px; color:#222; }
.a4 .a4-end-row { display:flex; justify-content:flex-end; align-items:flex-start; gap:16px; margin-top:4px; width:100%; }
.a4 .a4-notes-col {
  flex:1 1 auto; min-width:0; max-width:calc(100% - 300px);
  margin-right:auto;
  border:1px solid #cbd5e1; border-radius:4px; padding:6px 8px;
  box-sizing:border-box; overflow:hidden;
}
.a4 .a4-notes-col.is-empty { display:none !important; border:none; padding:0; margin:0; }
.a4 .a4-totals { margin:0 0 0 auto; flex:0 0 auto; max-width:48%; }
.a4 .a4-totals table { width:auto; min-width:220px; margin-left:auto; border-collapse:collapse; }
.a4 .a4-totals td { border:none; padding:3px 6px; font-size:11px; font-weight:800; color:#111; }
.a4 .a4-totals td.tot-lbl { text-align:left; white-space:nowrap; padding-right:14px; }
.a4 .a4-totals td.tot-amt { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.a4 .a4-totals tr.g td {
  font-weight:900; color:#000 !important;
  background:var(--doc-firm-band) !important;
  border-top:2px solid var(--doc-table-head);
  font-size:12.5px; padding-top:5px; padding-bottom:5px;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.a4 .a4-notes { margin-top:0; font-size:10px; color:#111; line-height:1.3;
  word-break:break-word; overflow-wrap:anywhere; font-weight:700; }
.a4 .a4-notes .t { font-weight:800; color:#1e3a8a; margin-bottom:3px; }
.a4 .a4-notes-body { margin-bottom:5px; color:#111; font-weight:700; }
.a4 .a4-notes-auto { color:#1e3a8a; font-weight:800; font-size:12px; line-height:1.45; margin-top:2px; }
.a4 .a4-payinfo {
  margin-top:6px;
  font-family: Calibri, "Segoe UI", Arial, Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.a4 .a4-bank-block,
.a4 .a4-terms-block {
  width:100%; border-collapse:collapse; margin:0 0 6px;
  font-family: Calibri, "Segoe UI", Arial, Helvetica, sans-serif;
  color:#000; font-size:11px;
}
.a4 .a4-sec-head {
  background:var(--doc-table-head) !important; color:#fff !important; text-align:center;
  font-weight:700; font-size:13px; letter-spacing:0;
  padding:6px 8px; border:1px solid #000;
  font-family: Calibri, "Segoe UI", Arial, Helvetica, sans-serif;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.a4 .a4-firm-band {
  background:var(--doc-firm-band) !important; color:#000 !important; text-align:center;
  font-weight:700; font-size:13px; padding:6px 8px; border:1px solid #000;
  font-family: Calibri, "Segoe UI", Arial, Helvetica, sans-serif;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.a4 .a4-bank-left {
  border:1px solid #000; padding:5px 8px; vertical-align:middle; background:#fff;
  font-weight:600; font-size:12px; width:42%;
  font-family: Calibri, "Segoe UI", Arial, Helvetica, sans-serif;
}
.a4 .a4-bank-right {
  border:1px solid #000; padding:5px 8px; vertical-align:middle; background:#fff;
  font-weight:700; font-size:12.5px; letter-spacing:.2px;
  font-family: Calibri, "Segoe UI", Arial, Helvetica, sans-serif;
  font-variant-numeric: tabular-nums;
}
.a4 .a4-terms-body {
  border:1px solid #000; padding:7px 9px; background:#fff;
  font-weight:600; font-size:11.5px; color:#000; line-height:1.4; text-align:left;
  font-family: Calibri, "Segoe UI", Arial, Helvetica, sans-serif;
}
.a4 .a4-iban-table { width:100%; border-collapse:collapse; margin:0; font-size:11px; color:#000;
  font-family: Calibri, "Segoe UI", Arial, Helvetica, sans-serif; }
.a4 .a4-iban-table td { border:1px solid #000; padding:5px 8px; vertical-align:middle; background:#fff; font-weight:700; }
.a4 .a4-iban-table td:first-child { width:42%; font-weight:600; }
.a4 .a4-footer-notes { margin-top:4px; font-size:10.5px; color:#000; line-height:1.4; font-weight:600; }
.a4 .a4-stamp { margin:0; display:flex; justify-content:flex-end; align-items:flex-start; gap:10px; width:100%; }
.a4 .a4-stamp-bottom { margin-top:3mm; }
.a4 .a4-stamp-spacer { flex:1; }
.a4 .a4-stamp .box {
  width:5cm; height:2cm;
  min-width:5cm; min-height:2cm; max-width:5cm; max-height:2cm;
  margin-right:1cm; margin-top:3mm;
  border:1.5px dashed #94a3b8;
  box-sizing:border-box;
  display:flex; align-items:center; justify-content:center;
  padding:6px; text-align:center; line-height:1.2;
  font-size:12px; font-weight:700; color:#64748b; text-transform:uppercase;
  flex-shrink:0;
}
.a4 .a4-footer-wrap { width:100%; }
.a4 .badge { color:#1e3a8a; background:#e0e7ff; font-size:10px; padding:1px 6px; }

/* Çok kalemli teklifler — tek A4 sayfasına sığdır */
.a4.a4-compact {
  padding:7px 11px;
  font-size:11px;
}
.a4.a4-compact .a4-head { padding-bottom:4px; gap:6px; }
.a4.a4-compact .a4-logo.a4-logo-img img { max-height:30px; max-width:100px; }
.a4.a4-compact .a4-firm-info-text { font-size:9px; line-height:1.2; }
.a4.a4-compact .a4-firm-info-title { font-size:10px; margin-bottom:1px; }
.a4.a4-compact .doc-title h1 { font-size:12px; }
.a4.a4-compact .doc-meta { font-size:10px; line-height:1.25; }
.a4.a4-compact .a4-customer-block { margin:3px 0 2px; padding-top:3px; }
.a4.a4-compact .a4-customer-title { font-size:9.5px; margin-bottom:3px; }
.a4.a4-compact .a4-customer-line { font-size:10.5px; line-height:1.3; }
.a4.a4-compact .a4-end-table { margin-top:2px; }
.a4.a4-compact .a4-end-table .a4-end-side,
.a4.a4-compact .a4-end-table .a4-end-kur { padding-right:8px; }
.a4.a4-compact .a4-end-table .a4-tot-inner td { padding:2px 0; font-size:10.5px; line-height:1.15; }
.a4.a4-compact .a4-end-table .a4-tot-inner .tot-lbl { padding:2px 2cm 2px 0; }
.a4.a4-compact .a4-end-table .a4-tot-inner tr.g .tot-lbl { padding-right:2cm; }
.a4.a4-compact .a4-end-table .a4-tot-inner tr.g .tot-lbl,
.a4.a4-compact .a4-end-table .a4-tot-inner tr.g .tot-amt { font-size:11.5px; padding-top:3px; padding-bottom:3px; }
.a4.a4-compact .a4-kur-box { padding:4px 6px; font-size:10.5px; }
.a4.a4-compact .a4-notes-block { padding:4px 6px; font-size:10px; line-height:1.2; }
.a4.a4-compact .a4-notes-title { margin-bottom:2px; }
.a4.a4-compact .a4-parties { margin:3px 0 2px; }
.a4.a4-compact .a4-parties .box { font-size:10px; line-height:1.2; }
.a4.a4-compact .a4-parties .box .t { font-size:8.5px; }
.a4.a4-compact table th { padding:2px 4px; font-size:9.5px; }
.a4.a4-compact table td { padding:2px 4px; font-size:10px; line-height:1.15; }
.a4.a4-compact .a4-end-row { gap:10px; margin-top:2px; }
.a4.a4-compact .a4-notes-col { padding:4px 6px; max-width:calc(100% - 260px); }
.a4.a4-compact .a4-notes { font-size:9px; line-height:1.2; }
.a4.a4-compact .a4-notes .t { margin-bottom:2px; }
.a4.a4-compact .a4-notes-body { margin-bottom:3px; }
.a4.a4-compact .a4-notes-auto { font-size:10.5px; line-height:1.3; }
.a4.a4-compact .a4-totals td { padding:2px 5px; font-size:10px; }
.a4.a4-compact .a4-totals tr.g td { font-size:11px; padding-top:3px; }
.a4.a4-compact .a4-footer-wrap {
  width:100%;
  margin-top:3px;
}
.a4.a4-compact .a4-footer-wrap > .a4-stamp {
  margin-top:2mm;
}
.a4.a4-compact .a4-payinfo {
  width:100%;
  margin-top:0;
}
.a4.a4-compact .a4-bank-block,
.a4.a4-compact .a4-terms-block {
  margin-bottom:3px;
  font-size:10.5px;
  width:100%;
  table-layout:fixed;
}
.a4.a4-compact .a4-sec-head { font-size:10.5px; padding:3px 5px; }
.a4.a4-compact .a4-firm-band { font-size:10.5px; padding:3px 5px; }
.a4.a4-compact .a4-bank-left,
.a4.a4-compact .a4-bank-right { padding:2px 5px; font-size:10px; word-break:break-word; }
.a4.a4-compact .a4-terms-body { padding:4px 6px; font-size:9.5px; line-height:1.12; word-break:normal; overflow-wrap:break-word; }
.a4.a4-compact .a4-stamp {
  display:flex;
  justify-content:flex-end;
  align-items:flex-start;
  width:100%;
  margin-top:3mm;
}
.a4.a4-compact .a4-stamp-spacer { display:block; flex:1; }
.a4.a4-compact .a4-stamp .box {
  width:5cm;
  height:2cm;
  min-width:5cm;
  min-height:2cm;
  max-width:5cm;
  max-height:2cm;
  margin:0;
  font-size:11px;
  padding:6px;
  flex-shrink:0;
  box-sizing:border-box;
  white-space:nowrap;
}
@media print {
  .a4 { box-shadow:none; border-radius:0; width:100%; padding:5mm 7mm; }
  .a4.a4-compact { padding:3mm 5mm; }
  .a4 .a4-payinfo,
  .a4 .a4-footer-wrap,
  .a4 .a4-end-table,
  .a4 table.items { page-break-inside:auto; break-inside:auto; }
  .a4 .a4-stamp .box {
    page-break-inside:avoid;
    break-inside:avoid;
    width:5cm !important; height:2cm !important;
    min-width:5cm !important; min-height:2cm !important;
    max-width:5cm !important; max-height:2cm !important;
    flex-shrink:0 !important;
  }
  @page { size:A4; margin:5mm; }
}
@media (max-width:700px) {
  .a4 .a4-end-table .a4-end-side,
  .a4 .a4-end-table .a4-end-kur { padding-right:8px; }
  .a4 .a4-end-table .tot-lbl { white-space:normal; }
  .a4 .a4-status-inline { flex-direction:column; gap:8px; }
}

/* ----------------------------- MODAL ----------------------------- */
.modal-back { display:none; position:fixed; inset:0; background:rgba(2,6,23,.55); z-index:90;
  padding:24px; overflow:auto; }
.modal-back.show { display:flex; align-items:flex-start; justify-content:center; }
.modal { background:var(--bg-elevated); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow-lg); width:100%; max-width:560px; margin:auto; animation:pop .25s ease; }
.modal-overlay { position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1000;display:none;align-items:center;justify-content:center;padding:20px; }
.modal-overlay.show { display:flex; }
.modal-box { background:var(--bg-elevated); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow-lg); width:100%; animation:pop .25s ease; }
.modal-head { display:flex; align-items:center; gap:12px; padding:16px 20px; border-bottom:1px solid var(--border); }
.modal-head h3 { font-size:16px; flex:1; }
.modal-body { padding:20px; }
.modal-foot { display:flex; gap:8px; align-items:center; padding:14px 20px; border-top:1px solid var(--border); }

/* ----------------------------- TOAST ----------------------------- */
#toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(80px); z-index:200;
  background:#0f172a; color:#fff; padding:12px 20px; border-radius:10px; box-shadow:var(--shadow-lg); font-size:14px;
  opacity:0; transition:all .3s ease; pointer-events:none; }
#toast.show { transform:translateX(-50%) translateY(0); opacity:1; }

/* ----------------------------- RESPONSIVE ----------------------------- */
.menu-toggle { display:none; }
.sidebar-backdrop { display:none; position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:50; }
@media (max-width:980px) {
  .layout { grid-template-columns:1fr; }
  .sidebar { position:fixed; left:0; top:0; bottom:0; width:260px; z-index:60; transform:translateX(-100%);
    transition:transform .25s; box-shadow:var(--shadow-lg); }
  .sidebar.open { transform:none; }
  .menu-toggle { display:inline-grid; }
  .form-grid { grid-template-columns:repeat(2,1fr); }
  .form-grid .col-2,.form-grid .col-3,.form-grid .col-4 { grid-column:span 2; }
  .summary-grid { grid-template-columns:1fr; }
  .cust-layout { grid-template-columns:1fr; }
  .sidebar-backdrop.show { display:block; }
}
@media (max-width:560px) {
  .form-grid { grid-template-columns:1fr; }
  .form-grid .col-2,.form-grid .col-3,.form-grid .col-4 { grid-column:span 1; }
  .content { padding:16px; }
}

/* ===========================================================================
   KURUMSAL YENİ STİLLER (v2 - modern teklif yönetimi)
   =========================================================================== */

/* ----------------------------- FORM LAYOUT ----------------------------- */
.form-layout { display:grid; grid-template-columns:1fr 340px; gap:20px; align-items:start; }
.form-layout .form-main { min-width:0; }
.form-layout .form-sidebar { position:sticky; top:80px; }
@media (max-width:900px) {
  .form-layout { grid-template-columns:1fr; }
  .form-layout .form-sidebar { position:static; }
}

/* ----------------------------- KART İYİLEŞTİRMELER ----------------------------- */
.card-elevated { box-shadow:var(--shadow-md); border-color:var(--border-strong); }
.card-head-accent { border-left:4px solid var(--brand-2); padding-left:16px; }
.card-head .icon { width:22px; height:22px; color:var(--brand-2); flex:none; }
.card-head .icon svg { width:100%; height:100%; }
.card-head .badge { margin-left:auto; }
.card-body:first-child { border-radius:var(--radius) var(--radius) 0 0; }

/* ----------------------------- MÜŞTERİ SEÇİM ----------------------------- */
.customer-select-wrap { position:relative; }
.customer-dropdown { position:absolute; top:100%; left:0; right:0; z-index:30;
  background:var(--bg-elevated); border:1px solid var(--border-strong);
  border-radius:0 0 var(--radius-sm) var(--radius-sm); box-shadow:var(--shadow-md);
  max-height:240px; overflow-y:auto; display:none; }
.customer-dropdown.show { display:block; }
.customer-dropdown .item { display:flex; flex-direction:column; gap:2px; padding:10px 14px;
  cursor:pointer; border-bottom:1px solid var(--border); transition:background .1s; }
.customer-dropdown .item:last-child { border-bottom:none; }
.customer-dropdown .item:hover,
.customer-dropdown .item.highlight { background:var(--brand-soft); }
.customer-dropdown .item .name { font-weight:600; color:var(--text); font-size:14px; }
.customer-dropdown .item .detail { font-size:12px; color:var(--text-muted); }
.customer-dropdown .empty { padding:16px; text-align:center; color:var(--text-muted); font-size:13px; }

/* ----------------------------- ÖZET PANELİ ----------------------------- */
.summary-card { background:var(--bg-elevated); border:1px solid var(--border);
  border-radius:var(--radius); box-shadow:var(--shadow-sm); overflow:hidden; }
.summary-card .head { padding:16px 20px; border-bottom:1px solid var(--border);
  font-weight:700; font-size:15px; display:flex; align-items:center; gap:8px; }
.summary-card .head .icon { color:var(--brand-2); flex:none; }
.summary-card .body { padding:6px 0; }
.summary-card .row { display:flex; justify-content:space-between; align-items:center;
  padding:12px 20px; border-bottom:1px dashed var(--border); }
.summary-card .row:last-child { border-bottom:none; }
.summary-card .row .lbl { font-size:13px; color:var(--text-muted); font-weight:500; }
.summary-card .row .val { font-weight:700; font-variant-numeric:tabular-nums; font-size:14px; text-align:right; }
.summary-card .row .val .fx-eq { display:block; font-size:11px; font-weight:600; color:var(--text-muted); margin-top:2px; }
.summary-card .row.total { background:color-mix(in srgb,var(--brand-2) 8%,transparent);
  margin:4px 8px; border-radius:var(--radius-sm); border-bottom:none; padding:14px 12px; }
.summary-card .row.total .lbl { font-size:16px; font-weight:800; color:var(--brand-2); }
.summary-card .row.total .val { font-size:22px; font-weight:800; color:var(--brand-2); }
.summary-card .row.positive .val { color:var(--success); }
.summary-card .row.negative .val { color:var(--danger); }

/* ----------------------------- KALEM TABLOSU İYİLEŞTİRMELERİ ----------------------------- */
.grid-enhanced table.grid thead th { position:sticky; top:0; z-index:2; }
.grid-enhanced .table-wrap { max-height:520px; overflow-y:auto; border-radius:var(--radius); }
.grid-enhanced .cell-input { padding:10px 8px; font-size:13.5px; }
.grid-enhanced .cell-input.num { font-size:13px; }
.grid-enhanced .row-handle { width:28px; text-align:center; cursor:grab; color:var(--text-muted); }
.grid-enhanced .row-handle svg { width:16px; height:16px; vertical-align:middle; }
.row-actions { display:flex; gap:4px; justify-content:center; }
.row-actions button { width:30px; height:30px; border-radius:7px; border:1px solid var(--border);
  background:var(--bg-elevated); color:var(--text-muted); display:inline-grid; place-items:center;
  cursor:pointer; transition:all .12s; }
.row-actions button:hover { border-color:transparent; }
.row-actions .dup-row:hover { background:var(--brand-2); color:#fff; }
.row-actions .del-row:hover { background:var(--danger); color:#fff; }

/* ----------------------------- DURUM SEÇİCİ ----------------------------- */
.status-picker { display:flex; gap:6px; flex-wrap:wrap; }
.status-opt { padding:7px 14px; border-radius:999px; border:2px solid var(--border);
  background:transparent; color:var(--text-muted); font-size:12.5px; font-weight:700;
  cursor:pointer; transition:all .15s; }
.status-opt:hover { border-color:var(--border-strong); color:var(--text); }
.status-opt.selected { border-color:currentColor; background:color-mix(in srgb,currentColor 12%,transparent); }
.status-opt.st-verildi { color:var(--info); }
.status-opt.st-revize { color:var(--purple); }
.status-opt.st-iptal { color:var(--text-muted); }
.status-opt.st-onaylandi { color:var(--success); }

/* ----------------------------- DURUM TİMLİNE ----------------------------- */
.timeline { display:flex; align-items:center; gap:4px; margin:14px 0 20px; padding:0 4px; }
.timeline .step { display:flex; align-items:center; gap:6px; font-size:12px; font-weight:600;
  color:var(--text-muted); white-space:nowrap; }
.timeline .step .dot { width:10px; height:10px; border-radius:50%; background:var(--border-strong);
  flex:none; transition:all .25s; }
.timeline .step.active .dot { background:var(--brand-2); box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-2) 25%,transparent); }
.timeline .step.active { color:var(--brand-2); }
.timeline .step.done .dot { background:var(--success); }
.timeline .step.done { color:var(--success); }
.timeline .step.rejected .dot { background:var(--danger); }
.timeline .step.rejected { color:var(--danger); }
.timeline .connector { flex:1; height:2px; background:var(--border); min-width:16px; }
.timeline .connector.done { background:var(--success); }

/* ----------------------------- İŞ TAKİBİ KANBAN ----------------------------- */
.kanban-enhanced { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
@media (max-width:1100px) { .kanban-enhanced { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .kanban-enhanced { grid-template-columns:1fr; } }
.kanban-enhanced .col { background:var(--bg-muted); border:1px solid var(--border);
  border-radius:var(--radius); padding:12px; min-height:300px; }
.kanban-enhanced .col .col-head { display:flex; align-items:center; gap:8px;
  padding:4px 4px 12px; font-size:13px; font-weight:700; }
.kanban-enhanced .col .col-head .cnt { margin-left:auto; background:var(--bg-elevated);
  border:1px solid var(--border); border-radius:999px; padding:2px 10px; font-size:12px; }
.kanban-enhanced .card { background:var(--bg-elevated); border:1px solid var(--border);
  border-radius:10px; padding:12px 14px; margin-bottom:8px; box-shadow:var(--shadow-sm);
  transition:all .15s; cursor:pointer; }
.kanban-enhanced .card:hover { border-color:var(--brand-2); transform:translateY(-1px);
  box-shadow:var(--shadow-md); }
.kanban-enhanced .card .no { font-weight:700; font-size:13px; color:var(--brand-2); }
.kanban-enhanced .card .cu { font-size:13px; color:var(--text); margin:4px 0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.kanban-enhanced .card .tt { font-weight:700; font-size:14px; color:var(--text); }
.kanban-enhanced .card .date { font-size:11px; color:var(--text-muted); margin-top:6px; }

/* ----------------------------- DURUM FİLTRE ÇİPLERİ (gelişmiş) ----------------------------- */
.filter-chips { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.filter-chip { padding:8px 16px; border-radius:999px; border:1px solid var(--border);
  background:var(--bg-elevated); color:var(--text-muted); font-size:13px; font-weight:600;
  cursor:pointer; transition:all .15s; text-decoration:none; display:inline-flex;
  align-items:center; gap:8px; }
.filter-chip:hover { border-color:var(--brand-2); color:var(--text); }
.filter-chip.active { background:var(--brand-2); color:#fff; border-color:var(--brand-2); }
.filter-chip .nn { font-weight:700; min-width:18px; text-align:center; }

/* ----------------------------- TABLO İYİLEŞTİRMELERİ ----------------------------- */
.table-toolbar { display:flex; align-items:center; gap:12px; padding:12px 0; flex-wrap:wrap; }
.table-toolbar .spacer { flex:1; }
.table-toolbar .count { font-size:12px; color:var(--text-muted); font-weight:600; }

/* ----------------------------- TOGGLE / VIEW SWITCHER ----------------------------- */
.view-switcher { display:flex; gap:4px; background:var(--bg-muted); border:1px solid var(--border);
  border-radius:8px; padding:3px; }
.view-switcher .opt { padding:6px 12px; border-radius:6px; border:none; background:transparent;
  color:var(--text-muted); font-size:12px; font-weight:600; cursor:pointer; transition:all .15s; }
.view-switcher .opt.active { background:var(--bg-elevated); color:var(--text); box-shadow:var(--shadow-sm); }
.view-switcher .opt:hover:not(.active) { color:var(--text); }

/* ----------------------------- BİLDİRİM NOKTASI ----------------------------- */
.notif-dot { width:8px; height:8px; border-radius:50%; background:var(--danger);
  display:inline-block; margin-left:4px; }

/* ----------------------------- TEKLIF UST OZET + KUR ----------------------------- */
.quote-topbar {
  display:flex;
  gap:0;
  align-items:stretch;
  margin-bottom:18px;
  background:color-mix(in srgb, var(--brand-2) 8%, var(--bg-elevated));
  border:1px solid color-mix(in srgb, var(--brand-2) 22%, var(--border));
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
}
.quote-topbar .qstat,
.quote-topbar .quote-rates {
  flex:1;
  min-width:0;
  background:transparent;
  border:none;
  border-radius:0;
  box-shadow:none;
  padding:14px 18px;
  border-right:1px solid color-mix(in srgb, var(--brand-2) 16%, var(--border));
}
.quote-topbar .quote-rates { border-right:none; flex:1.35; color:inherit; }
.qstat .qlbl,
.quote-rates .rates-title {
  display:block;
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.4px;
  color:var(--text-muted);
  margin-bottom:4px;
  opacity:1;
}
.qstat .qval { font-size:20px; font-weight:800; color:var(--brand-2); font-variant-numeric:tabular-nums; }
.qstat .qval .fx-eq { display:block; font-size:12px; font-weight:600; color:var(--text-muted); margin-top:2px; }
.qstat-main .qval { color:var(--brand); }
.quote-rates .rates-line { font-size:14px; font-weight:700; color:var(--text); }
.quote-rates .rates-equiv { font-size:12.5px; margin-top:6px; color:var(--text-muted); }

/* Müşteri ilk satır: Firma | Yetkili | Telefon — renkli şerit */
.cust-row-highlight {
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);
  gap:14px;
  align-items:start;
  background:color-mix(in srgb, var(--brand-2) 8%, var(--bg-muted));
  border:1px solid color-mix(in srgb, var(--brand-2) 18%, var(--border));
  border-radius:10px;
  padding:14px;
}
.cust-row-highlight .field { margin:0; }
@media (max-width:900px) {
  .quote-topbar { flex-direction:column; }
  .quote-topbar .qstat,
  .quote-topbar .quote-rates { border-right:none; border-bottom:1px solid color-mix(in srgb, var(--brand-2) 16%, var(--border)); }
  .quote-topbar .quote-rates { border-bottom:none; }
  .cust-row-highlight { grid-template-columns:1fr; }
}
.cancel-banner { display:inline-block; padding:8px 14px; border-radius:8px; font-size:13px; font-weight:700; }
.cancel-banner-system { background:#fee2e2; color:#991b1b; border:1px solid #fca5a5; }
.cancel-banner-staff { background:#ffedd5; color:#9a3412; border:1px solid #fdba74; }
html[data-theme="dark"] .cancel-banner-system { background:#450a0a; color:#fecaca; border-color:#7f1d1d; }
html[data-theme="dark"] .cancel-banner-staff { background:#431407; color:#fed7aa; border-color:#9a3412; }
.iban-list {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
  margin-bottom:16px;
}
.iban-row {
  background:color-mix(in srgb, var(--brand-2) 7%, var(--bg-muted));
  border:1px solid color-mix(in srgb, var(--brand-2) 18%, var(--border));
  border-radius:10px;
  padding:12px 14px;
  font-size:13px;
  line-height:1.55;
  min-width:0;
}
.iban-row .iban-bank { font-weight:700; color:var(--text); margin-bottom:4px; word-break:break-word; }
.iban-row .iban-no { font-size:12.5px; color:var(--text-muted); word-break:break-all; }
@media (max-width:700px) {
  .iban-list { grid-template-columns:1fr; }
}
.stamp-box { border:2px dashed var(--border-strong); border-radius:10px; min-height:120px; display:flex; align-items:center; justify-content:center; background:var(--bg-muted); }
.stamp-label { font-size:13px; font-weight:800; letter-spacing:1px; color:var(--text-muted); text-transform:uppercase; }
.iban-editor-row { display:grid; grid-template-columns:2fr 90px 110px 1.6fr auto; gap:8px; margin-bottom:8px; align-items:end; }
@media (max-width:900px) {
  .iban-editor-row { grid-template-columns:1fr 1fr; }
}

/* Müşteri içe/dışa aktarım buton şeridi */
.cust-io-bar {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  margin-bottom:8px;
  padding:12px 14px;
  background:color-mix(in srgb, var(--brand-2) 8%, var(--bg-muted));
  border:1px solid color-mix(in srgb, var(--brand-2) 18%, var(--border));
  border-radius:10px;
}
.cust-io-hint {
  margin:0 0 16px;
  font-size:12px;
  color:var(--text-muted);
}

/* Dashboard hatırlatmalar */
.remind-card { margin-bottom:20px; }
.remind-count {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:22px; height:22px; padding:0 7px; margin-left:6px;
  font-size:12px; font-weight:800; border-radius:999px;
  background:var(--bg-muted); color:var(--text-muted); vertical-align:middle;
}
.remind-legend { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.remind-legend .rl {
  font-size:11px; font-weight:700; padding:4px 10px; border-radius:999px;
  text-decoration:none; border:1.5px solid transparent; cursor:pointer;
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
  display:inline-flex; align-items:center; gap:5px;
}
.remind-legend .rl:hover { transform:translateY(-1px); box-shadow:var(--shadow-sm); }
.remind-legend .rl.is-active { border-color:currentColor; box-shadow:0 0 0 2px color-mix(in srgb, currentColor 25%, transparent); }
.remind-legend .rl-n {
  min-width:18px; height:18px; padding:0 5px; border-radius:999px;
  background:rgba(255,255,255,.55); font-size:10px; font-weight:800;
  display:inline-flex; align-items:center; justify-content:center;
}
.remind-legend .rl-all {
  background:var(--bg-muted); color:var(--text-muted);
}
.remind-section-label {
  font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.3px;
  color:var(--text-muted); margin:0 0 10px; scroll-margin-top:12px;
}
#remind-red.remind-section-label { color:#991b1b; }
#remind-orange.remind-section-label { color:#9a3412; }
#remind-green.remind-section-label { color:#166534; }
.rl-green { background:#dcfce7; color:#166534; }
.rl-orange { background:#ffedd5; color:#9a3412; }
.rl-red { background:#fee2e2; color:#991b1b; }
html[data-theme="dark"] .rl-green { background:#14532d; color:#bbf7d0; }
html[data-theme="dark"] .rl-orange { background:#7c2d12; color:#fed7aa; }
html[data-theme="dark"] .rl-red { background:#7f1d1d; color:#fecaca; }
.remind-body { padding:14px; }
.remind-empty { padding:18px; }
.remind-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
  gap:12px;
}
.remind-item {
  display:flex; flex-direction:column; gap:8px;
  padding:14px; border-radius:12px; text-decoration:none; color:inherit;
  border:1px solid transparent; transition:transform .15s ease, box-shadow .15s ease;
  min-height:118px;
}
.remind-item:hover { transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.remind-head { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.remind-no { font-weight:800; font-size:13px; line-height:1.2; min-width:0; word-break:break-word; }
.remind-cust {
  font-size:14px; font-weight:600; color:var(--text);
  line-height:1.3;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.remind-meta {
  display:flex; flex-direction:column; gap:3px;
  font-size:11.5px; color:var(--text-muted); margin-top:auto;
}
.remind-meta b { color:var(--text); font-weight:700; }
.remind-badge {
  flex-shrink:0; font-size:11px; font-weight:800; padding:5px 10px;
  border-radius:999px; white-space:nowrap;
}
.remind-green {
  background:color-mix(in srgb, #22c55e 12%, var(--bg-elevated));
  border-color:color-mix(in srgb, #22c55e 35%, var(--border));
  box-shadow:inset 4px 0 0 #22c55e;
}
.remind-green .remind-badge { background:#22c55e; color:#fff; }
.remind-orange {
  background:color-mix(in srgb, #f97316 14%, var(--bg-elevated));
  border-color:color-mix(in srgb, #f97316 40%, var(--border));
  box-shadow:inset 4px 0 0 #f97316;
}
.remind-orange .remind-badge { background:#f97316; color:#fff; }
.remind-red {
  background:color-mix(in srgb, #ef4444 14%, var(--bg-elevated));
  border-color:color-mix(in srgb, #ef4444 42%, var(--border));
  box-shadow:inset 4px 0 0 #ef4444;
}
.remind-red .remind-badge { background:#ef4444; color:#fff; }
.remind-pager {
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px;
  margin-top:14px; padding-top:12px; border-top:1px solid var(--border); font-size:13px;
}
.remind-pager-info { color:var(--text-muted); }
.remind-pager-nav { display:flex; gap:4px; flex-wrap:wrap; }
@media (max-width:700px) {
  .remind-grid { grid-template-columns:1fr; }
  .remind-pager { flex-direction:column; align-items:stretch; }
  .remind-pager-nav { justify-content:center; }
}
