:root {
  --bg: #f5f6f8;
  --panel: #ffffff;
  --panel-2: #f0f2f5;
  --line: #e2e5ea;
  --line-strong: #cfd4dc;
  --text: #1c2430;
  --muted: #667085;
  --accent: #1f5fbf;
  --accent-soft: #e6eefb;
  --accent-dolgu: #1f5fbf; --dolgu-yazi: #fff;
  --ok: #1e7f4f;
  --ok-soft: #e3f4ea;
  --warn: #9a5b00;
  --warn-soft: #fdf1dc;
  --bad: #b42318;
  --turuncu: #c2410c; --lacivert: #1e40a0; --kod: #14275e;
  --bad-soft: #fde8e6;
  --sub: #6941c6;
  --sub-soft: #efe9fb;
  --shadow: 0 8px 30px rgba(16, 24, 40, .14);
  --shadow-sm: 0 1px 3px rgba(16, 24, 40, .06);
  --ctx-bg: #e8eefa; --ctx-line: #c9d6ee; --ctx-muted: #5b6b8c;
  --side-line: #d5dae2;
  /* Tasarım ölçekleri: yeni stil yazarken sabit değer yerine bunları kullan */
  --font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: ui-monospace, "Cascadia Mono", Consolas, monospace;
  --fs-2xs: 10.5px; --fs-xs: 11.5px; --fs-sm: 12px; --fs-md: 13px; --fs-lg: 14.5px; --fs-xl: 16px; --fs-h1: 19px;
  --r-xs: 4px; --r-sm: 6px; --radius: 8px; --r-lg: 10px; --r-xl: 12px;
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 20px;
  --focus-ring: 0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent);
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #12151a; --panel: #1a1e25; --panel-2: #222731; --line: #2c323d; --line-strong: #3a4250;
    --text: #e6e9ee; --muted: #98a2b3; --accent: #6ea3ff; --accent-soft: #1d2b44; --accent-dolgu: #2f6bd0; --dolgu-yazi: #12151a;
    --ok: #4cc38a; --ok-soft: #173126; --warn: #f0b04d; --warn-soft: #382a12;
    --bad: #f97066; --bad-soft: #3d1a17; --turuncu: #fb923c; --lacivert: #9db8ff; --kod: #b4c8f5; --sub: #b69cf5; --sub-soft: #2a2140;
    --shadow: 0 8px 30px rgba(0, 0, 0, .5);
    --ctx-bg: #18223a; --ctx-line: #2b3a5e; --ctx-muted: #93a4c8;
    --side-line: #313845;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #12151a; --panel: #1a1e25; --panel-2: #222731; --line: #2c323d; --line-strong: #3a4250;
  --text: #e6e9ee; --muted: #98a2b3; --accent: #6ea3ff; --accent-soft: #1d2b44; --accent-dolgu: #2f6bd0; --dolgu-yazi: #12151a;
  --ok: #4cc38a; --ok-soft: #173126; --warn: #f0b04d; --warn-soft: #382a12;
  --bad: #f97066; --bad-soft: #3d1a17; --turuncu: #fb923c; --lacivert: #9db8ff; --kod: #b4c8f5; --sub: #b69cf5; --sub-soft: #2a2140;
  --shadow: 0 8px 30px rgba(0, 0, 0, .5);
  --ctx-bg: #18223a; --ctx-line: #2b3a5e; --ctx-muted: #93a4c8;
  --side-line: #313845;
  color-scheme: dark;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { height: 100%; margin: 0; }
body {
  background: var(--bg); color: var(--text);
  font: var(--fs-md)/1.45 var(--font);
  display: flex; flex-direction: column;
}
button, input, select, textarea { font: inherit; color: inherit; }
.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.muted { color: var(--muted); }
/* Kod yazısı (poz no, aktivite no, analiz no, kalem kodu): logo yazısının lacivert P'si, eşit genişlikli rakam */
.mono { font-family: var(--font); font-size: var(--fs-sm); font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: .02em; color: var(--kod); }
.mono.muted, .muted .mono { color: var(--muted); }
td.mono, td.kt-no, .g-row .mono { white-space: nowrap; }

/* Lisans uyarısı (auth.js lisansBandi) */
.lisans-bant { flex: none; padding: var(--sp-1, 4px) var(--sp-3, 12px); background: var(--warn-soft); color: var(--warn); font-size: var(--fs-sm); text-align: center; }
.lisans-bant.doldu { font-weight: 600; }
/* Örnek proje açıkken (app.js ornekBandi) */
.ornek-bant { flex: none; display: flex; align-items: center; gap: var(--sp-3, 12px); padding: 7px 20px; background: var(--panel); border-bottom: 1px solid var(--line); box-shadow: inset 3px 0 0 var(--accent); font-size: var(--fs-sm); }
.ornek-bant svg { width: 14px; height: 14px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ornek-bant .ob-etiket { display: inline-flex; align-items: center; gap: 6px; flex: none; padding: 3px 10px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); font-weight: 600; font-size: var(--fs-xs); letter-spacing: .02em; text-transform: uppercase; }
.ornek-bant .ob-metin { flex: 1; min-width: 0; color: var(--text); }
/* Kapatılan proje (app.js kapaliBandi) */
.kapali-bant { flex: none; display: flex; align-items: center; gap: var(--sp-3, 12px); padding: 7px 20px; background: var(--panel); border-bottom: 1px solid var(--line); box-shadow: inset 3px 0 0 var(--muted); font-size: var(--fs-sm); }
.kapali-bant .kb-etiket { display: inline-flex; align-items: center; gap: 6px; flex: none; padding: 3px 10px; border-radius: 999px; background: var(--panel-2); color: var(--text); font-weight: 600; font-size: var(--fs-xs); letter-spacing: .02em; text-transform: uppercase; }
.kapali-bant .kb-metin { flex: 1; min-width: 0; }
.proj-list button.kapali { color: var(--muted); }
.ornek-bant .ob-sifirla { display: inline-flex; align-items: center; gap: 6px; flex: none; margin-left: auto; }
.yasal-not { margin: var(--sp-4, 16px) 0 var(--sp-2, 8px); padding-top: var(--sp-2, 8px); border-top: 1px solid var(--line); color: var(--muted); font-size: var(--fs-xs); }
.page-head + .tabs + .yasal-not { margin: 0 0 var(--sp-3, 12px); padding-top: 0; border-top: 0; }
.yasal-not a { color: inherit; text-underline-offset: 2px; }

/* Üst çubuk */
.topbar {
  display: flex; align-items: center; gap: 20px; padding: 10px 16px;
  background: #0f1b3d; border-bottom: 1px solid #0b1230; flex-wrap: wrap;
  --panel: rgba(255,255,255,.08); --panel-2: rgba(255,255,255,.16); --line: rgba(255,255,255,.14); --line-strong: rgba(255,255,255,.28);
  --text: #f1f5ff; --muted: #a9b8dc; --accent: #5aa2ff;
  --ok: #4cc38a; --bad: #f97066; --warn: #f0b04d; --warn-soft: rgba(240,176,77,.18);
  color: var(--text);
}
.topbar .btn.primary { background: #2f7bf5; border-color: transparent; }
.topbar .menu { background: #172554; border-color: var(--line-strong); }
.topbar .mode.active { color: #fff; border-bottom-color: #5aa2ff; }
.brand-title { font-weight: 700; font-size: 20px; display: flex; align-items: center; gap: 10px; letter-spacing: -.01em; white-space: nowrap; }
/* Logo: iyon sütunu, yivleri ilerleme çubuğu. Ana renk currentColor, süren yivler --logo-vurgu. */
.logo { color: #14275e; --logo-vurgu: #1f5fbf; }
.logo-vurgu { fill: var(--logo-vurgu); }
.brand-title .logo { width: 42px; height: 42px; flex: none; }
.topbar .logo { color: #ffffff; --logo-vurgu: #5aa2ff; }
/* Logo yazısı: "Poz" currentColor, "Base" --logo-vurgu; renkler simgeyle aynı. */
.logo-yazi { color: #14275e; --logo-vurgu: #1f5fbf; flex: none; }
.brand-title .logo-yazi { width: 124px; height: 19px; }
/* Yer azaldıkça logo ve yazı birlikte küçülür; yazı masaüstünde kalkmaz */
@media (max-width: 1760px) { .brand-title .logo { width: 34px; height: 34px; } .brand-title .logo-yazi { width: 104px; height: 16px; } }
@media (min-width: 1521px) and (max-width: 1620px) { .brand-title { gap: 8px; } .brand-title .logo { width: 28px; height: 28px; } .brand-title .logo-yazi { width: 84px; height: 13px; } }
.topbar .logo-yazi { color: #ffffff; --logo-vurgu: #5aa2ff; }
.tb-sep { width: 1px; height: 30px; background: var(--line); flex: none; }
.chev { font-size: var(--fs-2xs); opacity: .7; margin-left: 2px; }
.btn.icon { width: 34px; height: 34px; padding: 0; display: inline-flex; align-items: center; justify-content: center; font-size: var(--fs-xl); flex: none; }

/* Proje seçici: ad, altında İKN ve sözleşme tarihleri; menüde projeler */
.proj-wrap { min-width: 0; }
.proj-btn { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; max-width: min(420px, 100%); padding: 5px 12px; cursor: pointer; text-align: left;
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); }
.proj-btn:hover { background: var(--panel-2); }
.proj-name { display: flex; align-items: center; gap: 6px; max-width: 100%; font-weight: 600; font-size: var(--fs-xl); }
.proj-name > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.proj-sub { color: var(--muted); font-size: var(--fs-sm); max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.proj-sub:empty { display: none; }
/* Kutunun genişliğini alt satır belirler: uzun ad, sözleşme tarihinin bittiği yerde … ile kısalır (alt satır yoksa ad kendi genişliğinde) */
.proj-btn:has(.proj-sub:not(:empty)) .proj-name { width: 0; min-width: 100%; }
.proj-menu { left: 0; right: auto; width: 340px; }
.ayar-menu { left: 0; right: auto; width: 300px; }
.yardim-menu { left: auto; right: 0; width: 300px; }
.proj-menu input[type=search] { width: calc(100% - 4px); margin: 2px 2px 4px; background: var(--panel); color: var(--text); border-color: var(--line-strong); }
.proj-list { max-height: 50vh; overflow-y: auto; }
.proj-list button { display: flex; gap: 8px; }
.proj-list button.on { background: var(--panel-2); font-weight: 600; }
.proj-list .ck { width: 14px; flex: none; color: var(--accent); }
.proj-grup { padding: 8px 10px 2px; font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }

/* Bugün penceresi (bugun.js) */
.bg-btn { position: relative; display: inline-flex; align-items: center; gap: 6px; }
.bg-btn[hidden] { display: none; }
.bg-btn.bg-nokta::after { content: ''; position: absolute; top: 3px; right: 3px; width: 8px; height: 8px; border-radius: 50%; background: var(--warn); box-shadow: 0 0 0 2px var(--panel); }
body.ana-acik .topbar .actions .bg-btn { display: none; }
.modal.bg-modal { width: min(720px, calc(100vw - 32px)); }
/* Notlar (notlar.js) */
.nt-btn { position: relative; display: inline-flex; align-items: center; gap: 6px; }
.nt-btn[hidden], .topbar .actions .nt-btn[hidden] { display: none; }
body.ana-acik .topbar .actions .nt-btn { display: none; }
.nt-say { position: absolute; top: -4px; right: -4px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: var(--warn); color: #fff;
  font-size: 10px; font-weight: 700; line-height: 16px; text-align: center; box-shadow: 0 0 0 2px var(--panel); }
.nt-say[hidden] { display: none; }
.modal.nt-modal { width: min(820px, calc(100vw - 32px)); }
.nt-arac { margin-bottom: var(--sp-3); }
.nt-govde { max-height: min(62vh, 640px); overflow: auto; }
.nt-bolum { margin-bottom: var(--sp-4); }
.nt-bolum h4 { display: inline; margin: 0; font-size: var(--fs-sm); color: var(--muted); font-weight: 650; }
section.nt-bolum > h4 { display: block; margin-bottom: var(--sp-2); }
details.nt-bolum > summary { cursor: pointer; margin-bottom: var(--sp-2); }
.nt-kart { display: flex; gap: 10px; align-items: flex-start; padding: 10px 0; border-top: 1px solid var(--line); }
.nt-sol { flex: none; width: 20px; padding-top: 2px; display: flex; justify-content: center; color: var(--muted); }
.nt-tik { width: 16px; height: 16px; margin: 0; accent-color: var(--ok); cursor: pointer; }
.nt-ic { flex: 1; min-width: 0; }
.nt-bas { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.nt-metin { margin-top: 4px; white-space: pre-wrap; overflow-wrap: anywhere; font-size: var(--fs-sm); }
.nt-meta { margin-top: 4px; }
.nt-dug { flex: none; display: flex; gap: 2px; }
.nt-tamam .nt-bas b { text-decoration: line-through; color: var(--muted); }
.nt-tamam .nt-metin { color: var(--muted); }
.nt-bos { padding: var(--sp-3) 0; }
.nt-form { border: 1px solid var(--line); border-radius: var(--r-md); background: var(--panel-2); padding: var(--sp-3); margin-bottom: var(--sp-4); display: grid; gap: var(--sp-3); }
.nt-alan { display: grid; gap: 4px; font-size: var(--fs-sm); color: var(--muted); }
.nt-alan input, .nt-alan textarea { width: 100%; color: var(--text); }
.nt-alan textarea { resize: vertical; font-family: var(--font); }
.nt-satir { display: flex; flex-wrap: wrap; gap: var(--sp-3) var(--sp-4); }
.nt-satir .end-gor { justify-self: start; }
.nt-satir .end-gor button[disabled] { opacity: .45; cursor: not-allowed; }
.nt-projeler { display: grid; gap: 6px; }
.nt-pliste { display: flex; flex-wrap: wrap; gap: 6px 14px; max-height: 140px; overflow: auto; font-size: var(--fs-sm); }
.nt-pliste label { display: inline-flex; align-items: center; gap: 6px; }
.nt-form-dug { display: flex; justify-content: flex-end; gap: 8px; }
.bg-tarih { font-weight: 400; margin-left: 6px; }
.bg-govde { max-height: 68vh; overflow-y: auto; }
.bg-kurulum { margin-bottom: var(--sp-4); }
.bg-gizle, .bg-goster { margin: var(--sp-2) 0 0; }
.bg-bolum { margin-bottom: var(--sp-4); }
.bg-bolum h4 { margin: 0 0 var(--sp-2); font-size: var(--fs-sm); color: var(--muted); font-weight: 650; }
.bg-sat { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid var(--line); }
.bg-met { flex: 1; min-width: 0; }
.bg-nk { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--muted); }
.bg-nk.bg-bad { background: var(--bad); }
.bg-nk.bg-warn { background: var(--warn); }
.bg-nk.bg-ok { background: var(--ok); }
.bg-bos { padding: 8px 0; border-top: 1px solid var(--line); }
.etki-liste { margin: 4px 0 8px; padding-left: 18px; }
/* Boş poz listesi */
.bos-kart h2 { margin: 0 0 8px; font-size: var(--fs-h1); color: var(--text); }
.bos-kart p { max-width: 560px; margin: 0 auto; }
.bos-dugme { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-top: var(--sp-4); }
.bos-kart p.sm { margin-top: var(--sp-3); }

/* Bağlam şeridi: sekmenin göstergeleri ve dosya işlemleri */
.ctxbar { display: flex; align-items: center; gap: 12px 20px; flex-wrap: wrap; padding: 9px 16px; min-height: 58px; background: var(--ctx-bg); border-bottom: 1px solid var(--ctx-line);
  --line: var(--ctx-line); --muted: var(--ctx-muted); }
.ctxbar .kpis { flex: 1; gap: 0; row-gap: 6px; }
.ctxbar .kpi { display: flex; flex-direction: column; justify-content: center; padding: 0 20px; border-left: 1px solid var(--line); }
.ctxbar .kpi:first-child { padding-left: 0; border-left: 0; }
.ctxbar .kpi .v { font-size: var(--fs-xl); }
.kpi-ilk .ilk-sat { display: flex; justify-content: space-between; gap: 12px; font-size: var(--fs-xs); line-height: 1.35; white-space: nowrap; }
.kpi-ilk .ilk-sat span { color: var(--muted); }
.kpi-ilk .ilk-sat b { font-weight: 650; font-variant-numeric: tabular-nums; }
.kpi-ilk .ilk-top { margin-top: 2px; padding-top: 2px; border-top: 1px solid var(--line); }
.kpi-ilk .ilk-top span { color: inherit; font-weight: 600; }
.kpi-kesif .kesif-sat { display: flex; align-items: center; gap: 8px; margin-top: 2px; font-size: var(--fs-xs); color: var(--muted); white-space: nowrap; }
.kpi-kesif .kesif-sat label { display: inline-flex; align-items: center; gap: 3px; }
.kpi-kesif .kesif-sat input { width: 56px; height: 22px; padding: 1px 5px; font-size: var(--fs-xs); text-align: right; }
.kpi-ff .kesif-sat input { width: 78px; }
.kpi-ff .ff-ust { margin: 0 0 2px; }
.kpi-ff .ff-ust .l { margin: 0; }
.kpi-ff .ff-kdv { margin-top: 4px; }
.kpi .net-sat { margin-top: 4px; padding-top: 4px; border-top: 1px solid var(--line); }
/* Poz satırında teklif B.F. altındaki revize B.F. kutusu (revize birim fiyat, poz başına elle) */
.rv-bf { margin-top: 1px; }
.rv-bf label { display: inline-block; }
/* "revize" yazısı iki kutunun arasında, kutuyla aynı genişlikte ortalı */
.rv-bf span { display: block; font-size: var(--fs-2xs); line-height: 1.3; text-align: center; color: var(--bad); }
.rv-bf input.teklif-in { border-color: var(--bad); }
.rv-tut { color: var(--bad); font-weight: 400; }
.ctx-acts { display: flex; gap: 8px; align-items: center; margin-left: auto; }
.menu button small { display: block; color: var(--muted); font-size: var(--fs-xs); }
.kpis { display: flex; gap: 18px; flex: 1; flex-wrap: wrap; }
.kpi .l { color: var(--muted); font-size: var(--fs-xs); }
.kpi .v { font-weight: 650; font-variant-numeric: tabular-nums; }
.actions { display: flex; gap: 8px; align-items: center; margin-left: auto; }
.btn {
  border: 1px solid var(--line-strong); background: var(--panel); border-radius: var(--r-sm);
  padding: 6px 12px; cursor: pointer; white-space: nowrap;
}
.btn:hover { background: var(--panel-2); }
.btn.primary { background: var(--accent-dolgu); color: #fff; border-color: var(--accent-dolgu); }
.btn.primary:hover { filter: brightness(1.08); }
.btn.sm { padding: 3px 8px; font-size: var(--fs-sm); }
.btn.ghost { border-color: transparent; background: transparent; }
.btn.ghost:hover { background: var(--panel-2); }
.btn:disabled { opacity: .4; cursor: default; background: var(--panel); }
.btn.primary:disabled { background: var(--accent-dolgu); }
.undo-grp { display: flex; }
.undo-grp .btn { font-size: var(--fs-lg); line-height: 1; }
.btn.danger { color: var(--bad); }
.menu-wrap { position: relative; }
.menu {
  position: absolute; right: 0; top: calc(100% + 4px); background: var(--panel); border: 1px solid var(--line);
  border-radius: var(--radius); box-shadow: var(--shadow); min-width: 210px; padding: 4px; z-index: 30;
}
.menu button { display: block; width: 100%; text-align: left; border: 0; background: none; padding: 7px 10px; border-radius: var(--r-xs); cursor: pointer; }
.menu button:hover { background: var(--panel-2); }
.menu button.danger { color: var(--bad); }
.menu hr { border: 0; border-top: 1px solid var(--line); margin: 4px 0; }
.menu .menu-bas { padding: 6px 10px 2px; font-size: var(--fs-2xs); font-weight: 650; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
/* Excel'den poz bilgisi güncelle (excel.js importDeger): yazılacak değer yeşil, dolu olduğu için atlanan turuncu */
.dg-yaz { color: var(--ok); font-weight: 600; }
.dg-dolu { color: var(--warn); }
.dg-sayfa { display: grid; gap: 4px; }
.dg-sayfa + .dg-sayfa { padding-top: var(--sp-2); border-top: 1px solid var(--line); }
.oz-kontrol .dg-bos, .dg-sayfa .dg-ham-btn { margin-left: auto; }

/* Yerleşim */
.layout { flex: 1; display: flex; min-height: 0; }
.sidebar {
  width: 330px; flex-shrink: 0; background: var(--panel); border: 1px solid var(--side-line); border-radius: var(--radius);
  box-shadow: 0 1px 3px rgba(16, 24, 40, .06);
  margin: 10px 0 10px 10px; overflow: auto; padding: 8px 6px 40px;
}
.sidebar .nav-item.active, .sidebar .tree-row.active { background: var(--accent-soft); box-shadow: inset 3px 0 0 var(--accent); font-weight: 600; }
/* Sol paneli aç/kapat: kapalıyken yalnız simgeler kalır (dar), kategori ağacı çizilmez */
.sb-bas { position: sticky; top: -8px; z-index: 2; display: flex; align-items: center; justify-content: space-between; margin-top: -8px; padding: 8px 2px 4px 8px; /* top ve margin: kenar çubuğunun üst boşluğunu (padding 8px) da örter, kayan liste başlığın üstünde görünmesin */ background: var(--panel); }
.sb-dugme { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex-shrink: 0; padding: 0; border: 0; border-radius: var(--r-sm); background: transparent; color: var(--muted); cursor: pointer; }
.sb-dugme:hover { background: var(--panel-2); color: var(--text); }
.sb-dugme:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.sb-dugme .ikon { width: 16px; height: 16px; margin: 0; }
.sidebar.dar { width: 50px; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 4px; }
.sidebar.dar .sb-dugme { width: 36px; height: 36px; margin-bottom: 4px; }
.sidebar.dar .nav-item { position: relative; justify-content: center; width: 36px; height: 36px; padding: 0; }
.sidebar.dar .nav-ad { display: none; }
.sidebar.dar .count { position: absolute; top: -2px; right: -3px; margin: 0; line-height: 1; }
.sidebar.dar .count .badge { padding: 1px 4px; font-size: 10px; }
.sidebar.dar .count .badge:not(.warn):not(.acc) { display: none; }

/* İnce, sayfaya uyan kaydırma çubukları */
@supports not selector(::-webkit-scrollbar) {
  * { scrollbar-width: thin; scrollbar-color: var(--line-strong) transparent; }
}
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--line-strong); border-radius: var(--r-lg); border: 3px solid transparent; background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background-color: var(--muted); }
::-webkit-scrollbar-button { display: none; }
::-webkit-scrollbar-corner { background: transparent; }
.main { flex: 1; overflow: auto; padding: 16px 20px 80px; min-width: 0; --alt-bosluk: 80px; }

/* Ağaç */
.nav-item, .tree-row {
  display: flex; align-items: center; gap: 6px; padding: 5px 8px; border-radius: var(--r-sm); cursor: pointer;
  user-select: none;
}
.nav-item:hover, .tree-row:hover { background: var(--panel-2); }
.nav-item.active, .tree-row.active { background: var(--accent-soft); color: var(--accent); }
.nav-item .count { margin-left: auto; }
.sidebar .nav-item > .ikon { width: 15px; height: 15px; flex-shrink: 0; margin: 0; color: var(--muted); }
.sidebar .nav-item.active > .ikon { color: var(--accent); }
.nav-item .nav-ad { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tree-row .caret { width: 14px; text-align: center; color: var(--muted); flex-shrink: 0; font-size: var(--fs-2xs); }
.tree-row .name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tree-row .tot { color: var(--muted); font-size: var(--fs-xs); font-variant-numeric: tabular-nums; }
.kat-bas { display: flex; align-items: center; gap: 6px; }
.kat-bas-sag { margin-left: auto; display: flex; align-items: center; gap: 6px; text-transform: none; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.kat-agac { border: 0; background: none; color: var(--accent); cursor: pointer; font: inherit; font-size: var(--fs-xs); padding: 1px 4px; border-radius: var(--r-xs); }
.kat-agac:hover { background: var(--accent-soft); }
.kat-ara { display: flex; align-items: center; gap: 6px; margin: 2px 4px 6px; padding: 0 8px; height: 30px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--panel); color: var(--muted); }
.kat-ara:focus-within { border-color: var(--accent); box-shadow: var(--focus-ring); }
.kat-ara .ikon { width: 14px; height: 14px; margin: 0; flex-shrink: 0; }
.kat-ara input[type=search], .kat-ara input[type=search]:focus, .kat-ara input[type=search]:focus-visible { flex: 1; min-width: 0; height: 100%; border: 0; border-radius: 0; outline: 0; box-shadow: none; background: none; font-size: var(--fs-sm); color: var(--text); padding: 0; }
.kat-yok { padding: 8px 10px; color: var(--muted); font-size: var(--fs-xs); }
.tree-row .tools { display: none; gap: 2px; }
.tree-row:hover .tools { display: flex; }
.tree-row:hover .tot { display: none; }
.tree-row .tools button { border: 0; background: none; cursor: pointer; padding: 0 3px; color: var(--muted); border-radius: var(--r-xs); }
.tree-row .tools button:hover { background: var(--line); color: var(--text); }
.tree-row.drop, .sec-label.drop { outline: 2px dashed var(--accent); }
.tree-row.drop-once { box-shadow: inset 0 2px 0 var(--accent); }
.tree-row.drop-sonra { box-shadow: inset 0 -2px 0 var(--accent); }
tr.item.drop-once > td { box-shadow: inset 0 2px 0 var(--accent); }
tr.item.drop-sonra > td { box-shadow: inset 0 -2px 0 var(--accent); }
.sec-label { font-size: var(--fs-xs); color: var(--muted); text-transform: uppercase; letter-spacing: .04em; padding: 12px 8px 4px; }
.badge {
  display: inline-block; padding: 0 7px; border-radius: var(--r-lg); font-size: var(--fs-xs); line-height: 18px;
  background: var(--panel-2); color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap;
}
.badge.warn { background: var(--warn-soft); color: var(--warn); }
.badge.bad { background: var(--bad-soft); color: var(--bad); }
.badge.ok { background: var(--ok-soft); color: var(--ok); }
.badge.sub { background: var(--sub-soft); color: var(--sub); }
.badge.acc { background: var(--accent-soft); color: var(--accent); }

/* Ana içerik */
.page-head { display: flex; align-items: flex-end; gap: 16px; margin-bottom: 12px; flex-wrap: wrap; }
.page-head h1 { font-size: var(--fs-h1); margin: 0; }
.crumbs { color: var(--muted); font-size: var(--fs-sm); margin-bottom: 2px; }
.page-head .stats { display: flex; gap: 16px; margin-left: auto; }
.page-head .ctx-yer { margin-left: auto; }
.tabs { display: flex; gap: 2px; border-bottom: 1px solid var(--line); margin-bottom: 12px; }
.poz-bas { margin-bottom: 12px; }
.poz-bas-satir { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; }
.poz-bas-satir .tabs { margin-bottom: 0; }
.poz-bas-satir h1 { font-size: var(--fs-h1); margin: 0; }
.tab { padding: 7px 14px; border: 0; background: none; cursor: pointer; border-bottom: 2px solid transparent; color: var(--muted); }
.tab.active { color: var(--accent); border-bottom-color: var(--accent); font-weight: 600; }
.filters { display: flex; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; align-items: center; }
.filters input[type=search] { width: 280px; }
input:not([type]), input[type=text], input[type=search], input[type=number], input[type=date], input[type=email], input[type=password], select, textarea {
  border: 1px solid var(--line-strong); background: var(--panel); border-radius: var(--r-sm); padding: 5px 8px;
}
input:focus, select:focus, textarea:focus { outline: 2px solid var(--accent-soft); border-color: var(--accent); }

table.grid { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); }
.grid th {
  position: sticky; top: -16px; z-index: 2; background: var(--panel-2); text-align: left; font-weight: 600;
  font-size: var(--fs-sm); color: var(--muted); padding: 7px 8px; border-bottom: 1px solid var(--line); white-space: nowrap;
}
.grid td { padding: 6px 8px; border-bottom: 1px solid var(--line); vertical-align: top; }
.grid tr:last-child td { border-bottom: 0; }
.grid tr.item.d-yap td { background: color-mix(in srgb, var(--ok-soft) 70%, transparent); }
.grid tr.item.d-yapma td { background: color-mix(in srgb, var(--bad-soft) 70%, transparent); }
.grid tr.item.d-belirsiz td { background: color-mix(in srgb, var(--warn-soft) 70%, transparent); }
.grid tr.item:hover td { background: var(--panel-2); }
.grid tr.item.sel td { background: var(--accent-soft); }
.grid tr.grp td { background: var(--panel-2); font-weight: 650; font-size: var(--fs-sm); }
/* Pozlar: kaydırırken içinde bulunulan kategorinin satırı sütun başlığının altında kalır (--th-h: app.js basYuksIzle) */
.grid.pozlar tr.grp td { position: sticky; top: calc(var(--th-h, 34px) - 16px); z-index: 1; box-shadow: inset 0 -1px 0 var(--line-strong); }
.grid tr.grp .grp-ac { all: unset; cursor: pointer; font: inherit; color: inherit; border-radius: var(--r-sm); }
.grid tr.grp .grp-ac:hover { color: var(--accent); }
.grid tr.grp .grp-ac:focus-visible { box-shadow: var(--focus-ring); }
.grid tr.grp .share { margin-left: 8px; padding: 1px 7px; border-radius: var(--r-lg); background: var(--accent-soft); color: var(--accent); font-weight: 600; font-size: var(--fs-xs); }
.grid tr.grp td.grp-tutar { color: var(--lacivert); }
.grid td.poz { white-space: nowrap; }
.grid td.ad { min-width: 280px; }
.grid .exp { border: 0; background: none; cursor: pointer; color: var(--muted); width: 18px; padding: 0; }
.teklif-in { width: 110px; text-align: right; font-variant-numeric: tabular-nums; padding: 3px 6px; }
/* Elle değiştirilmiş değer: turuncu çerçeve (--turuncu kırmızıya çaldığı için ayrı renk) */
.teklif-in.changed, .teklif-in.elle-deger { border-color: #d9861a; }
/* Finans › Endirekt giderler: sabit başlıklar (bölüm, grup), tutarı girilmemiş satır soluk */
.grid tr.end-bol td { background: var(--accent-soft); font-size: var(--fs-md); }
.grid tr.end-alt td { background: var(--panel-2); font-weight: 600; cursor: pointer; }
.grid tr.end-alt:hover td { color: var(--accent); }
.grid tr.end-bos td:nth-child(-n+2) { color: var(--muted); }
.grid .end-bayrak { border: 0; background: none; cursor: pointer; color: var(--muted); padding: 0 4px 0 0; font-size: var(--fs-md); opacity: .45; }
.grid tr.item:hover .end-bayrak, .grid .end-bayrak:focus-visible { opacity: 1; }
.grid tr.end-isaret td { background: var(--warn-soft); }
.grid tr.end-isaret .end-bayrak { color: var(--warn); opacity: 1; }
.grid .poz-bayrak { border: 0; background: none; cursor: pointer; color: var(--muted); padding: 0 4px 0 0; font-size: var(--fs-md); opacity: 0; }
.grid tr.item:hover .poz-bayrak, .grid .poz-bayrak:focus-visible { opacity: .6; }
.grid .poz-bayrak:disabled { cursor: default; }
.grid tr.poz-isaret > td:first-child { box-shadow: inset 4px 0 0 var(--warn); }
.grid tr.poz-isaret .poz-bayrak { color: var(--warn); opacity: 1; }
/* Yer imi (yerimi.js): herkeste bordo; satırın üst kenarında kalın çizgi, tablonun solunda ucu tabloya değen üçgen, içeride baş harf etiketi */
:root { --yi-renk: #8c1d30; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --yi-renk: #d0566b; } }
:root[data-theme="dark"] { --yi-renk: #d0566b; }
.grid.pozlar tr.item > td.sec-td { position: relative; }
.grid tr.item.yi > td { box-shadow: inset 0 3px 0 var(--yi-renk); }
.grid tr.item.yi.poz-isaret > td:first-child { box-shadow: inset 4px 0 0 var(--warn), inset 0 3px 0 var(--yi-renk); }
/* left -12px: üçgen 11px, tablonun 1px kenarlığının dışında; sivri ucu tablo kenarına değer */
.yi-bas { position: absolute; left: -12px; top: -6px; display: flex; align-items: center; pointer-events: none; }
.yi-uc { width: 0; height: 0; border-top: 7px solid transparent; border-bottom: 7px solid transparent; border-left: 11px solid var(--yi-renk); }
.yi-etiket { pointer-events: auto; margin-left: 5px; max-width: 240px; height: 15px; padding: 0 6px; border: 0; border-radius: 8px; background: var(--yi-renk); color: #fff;
  font: 600 10px/15px var(--font); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; }
.yi-etiket:focus-visible { box-shadow: var(--focus-ring); outline: none; }
/* Yer imi bırakma: satırın üzerine gelince tablonun solunda soluk üçgen (sizin yer iminizin satırında kaldırır) */
.yi-ekle { position: absolute; left: -14px; top: -7px; width: 14px; height: 16px; padding: 0; border: 0; background: none; cursor: pointer; opacity: 0; }
.yi-ekle::before { content: ''; position: absolute; left: 2px; top: 1px; border-top: 7px solid transparent; border-bottom: 7px solid transparent; border-left: 11px solid var(--yi-renk); }
.grid tr.item:hover .yi-ekle { opacity: .35; }
.grid tr.item .yi-ekle:hover, .yi-ekle:focus-visible { opacity: .9; }
.grid tr.item.yi .yi-ekle::before { border-left-color: transparent; }
@media (hover: none) { .grid tr.item .yi-ekle { opacity: .25; } }
/* Kaydırma çubuğunun yanındaki şerit: her yer iminin listedeki yeri, tıklayınca o poza gider */
.yi-serit { position: fixed; z-index: 25; width: 10px; pointer-events: none; }
.yi-serit[hidden], body.ana-acik .yi-serit, body.ynt-acik .yi-serit { display: none; }
.yi-isaret { position: absolute; left: 1px; width: 8px; height: 4px; padding: 0; border: 0; border-radius: 2px; background: var(--yi-renk); box-shadow: 0 0 0 1px var(--panel);
  pointer-events: auto; cursor: pointer; transition: transform .1s; }
.yi-isaret:hover, .yi-isaret:focus-visible { transform: scale(1.4, 1.6); outline: none; }
.yi-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.yi-nokta { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--yi-renk); margin-right: 6px; vertical-align: middle; flex: none; }
.yi-sat { display: flex; align-items: center; gap: 6px; padding: 6px 0; border-bottom: 1px solid var(--line); min-width: 0; }
.yi-sat-ad { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--muted); font-size: var(--fs-sm); }
.yi-gor { display: flex; flex-direction: column; gap: 4px; }
.yi-dugme { display: inline-flex; align-items: center; gap: 6px; }
.yi-dugme .ikon { color: var(--yi-renk); width: 15px; height: 15px; }
@media print { .yi-serit, .yi-ekle, .yi-bas { display: none !important; } .grid tr.item.yi > td { box-shadow: none; } }
.teklif-in.end-m { width: 80px; }
.teklif-in.end-b { width: 64px; text-align: left; }
.grid select.durum { padding: 2px 4px; font-size: var(--fs-sm); }
/* Pozlar tablosu sığsın diye sıkı: dar kutular, "+ analiz" poz no altında, başlıklar iki satıra bölünebilir */
.grid.pozlar th { white-space: normal; padding: 7px 5px; vertical-align: bottom; color: var(--text); font-weight: 700; }
.grid.pozlar td { padding: 6px 5px; }
.grid.pozlar td.ad { min-width: 180px; }
.grid.pozlar td.num { white-space: nowrap; }
.grid.pozlar td.poz .alt-yap { display: block; width: fit-content; margin-top: 3px; }
.grid.pozlar .teklif-in { width: 86px; }
.grid.pozlar .teklif-in.gercek { width: 76px; }
/* Poz satırındaki kutular: keskin köşe, koyu ince çerçeve; elle değiştirilmiş değerde sağ ve alt kenar kalın turuncu */
.grid.pozlar .teklif-in:not(.an-in) { border-radius: 0; border-color: color-mix(in srgb, var(--text) 75%, transparent); }
.grid.pozlar .teklif-in:is(.changed, .elle-deger):not(.an-in) { border-right: 2px solid #d9861a; border-bottom: 2px solid #d9861a; }
.grid.pozlar select.durum { max-width: 112px; }
/* Sütunlar dikey çizgiyle ayrılır; poz no, tanım, grup adı ve analiz kutusu dışında her şey ortalı */
.grid.pozlar th + th, .grid.pozlar td + td { border-left: 1px solid var(--line); }
.grid.pozlar th, .grid.pozlar td, .grid.pozlar .teklif-in { text-align: center; }
/* Aktiviteler: no ve ad dışındaki sütunlar (yapı, poz, plan ve maliyet tutarı, adam-gün, süre hesabı, süre, tarihler, bolluk) ortalı */
@media (min-width: 761px) {
  .grid.kt-akt > thead > tr > th:is(:nth-child(n+5):nth-child(-n+14)),
  .grid.kt-akt > tbody > tr.item > td:is(:nth-child(n+5):nth-child(-n+14)) { text-align: center; }
}
.grid.pozlar th:nth-child(3), .grid.pozlar th:nth-child(4), .grid.pozlar td.poz, .grid.pozlar td.ad,
.grid.pozlar tr.grp td[colspan], .grid.pozlar tr.detail > td { text-align: left; }
.grid.pozlar td.poz .alt-yap { margin-left: 0; }
.grid.pozlar .poz-act { justify-content: center; }
/* Sütun genişliği (Excel gibi): başlığın sağ kenarındaki tutamak sürüklenir; ölçülünce tablo sabit düzene geçer (app.js kolGen) */
.kol-tut { position: absolute; top: 0; right: 0; width: 7px; height: 100%; cursor: col-resize; touch-action: none; z-index: 1; }
.kol-tut::after { content: ''; position: absolute; top: 18%; bottom: 18%; right: 1px; width: 3px; border-radius: 2px; background: transparent; }
.kol-tut:hover::after { background: var(--accent); }
body.kol-surukle, body.kol-surukle * { cursor: col-resize !important; user-select: none; }
.grid.pozlar.kol-sabit { table-layout: fixed; }
.grid.pozlar.kol-sabit td { overflow: hidden; text-overflow: ellipsis; }
.grid.pozlar.kol-sabit td.ad { min-width: 0; }
.grid.pozlar.kol-sabit .teklif-in, .grid.pozlar.kol-sabit select.durum { width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; }
/* Başlık açıklama balonu (app.js `ipucu`): noktalı alt çizgi, üzerine gelince ya da odakta formül */
.ipucu { position: relative; cursor: help; text-decoration: underline dotted; text-underline-offset: 3px; text-decoration-color: var(--muted); outline: none; }
.ipucu::after {
  content: attr(data-ipucu); position: absolute; top: calc(100% + 8px); left: 50%; transform: translateX(-50%); z-index: 20;
  width: max-content; max-width: 300px; padding: 8px 10px; border-radius: var(--r-sm); background: var(--text); color: var(--panel);
  font-size: var(--fs-xs); font-weight: 400; line-height: 1.5; text-align: left; white-space: pre-line;
  box-shadow: 0 4px 14px rgba(0,0,0,.18); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .12s;
}
.ipucu.sag::after { left: auto; right: 0; transform: none; }
.ipucu:hover::after, .ipucu:focus-visible::after { opacity: 1; visibility: visible; }
.ipucu:focus-visible { box-shadow: var(--focus-ring); border-radius: 2px; }
.grid th:has(.ipucu:hover), .grid th:has(.ipucu:focus-visible) { z-index: 6; }
@media (min-width: 761px) and (max-width: 1440px) {
  .grid.pozlar th, .grid.pozlar td { padding-left: 3px; padding-right: 3px; font-size: var(--fs-sm); }
  .grid.pozlar td.ad { min-width: 105px; }
  .grid.pozlar td.num .gd { white-space: normal; }
  .grid.pozlar .teklif-in { width: 72px; font-size: var(--fs-sm); }
  .grid.pozlar .teklif-in.gercek { width: 62px; }
  .grid.pozlar td.poz { font-size: var(--fs-xs); }
  .grid.pozlar select.durum { max-width: 84px; }
}
.diff-up { color: var(--ok); }
.diff-down { color: var(--bad); }
/* Gerçek metrajla değişen tutar, fark ve kâr (tablo hücreleri; göstergeler değil) */
.num.mt-deg { color: var(--turuncu); }
tr.detail > td { background: var(--bg); padding: 10px 12px 14px 34px; }
tr.item > td.sec-td { white-space: nowrap; }
.poz-tut { display: inline-block; width: 14px; margin-right: 4px; color: var(--muted); cursor: grab; text-align: center; -webkit-user-select: none; user-select: none; vertical-align: middle; }
.poz-tut:hover { color: var(--text); }
tr.item[draggable=true] .poz-tut { cursor: grabbing; }

/* Analiz ağacı */
.an { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.an + .an { margin-top: 8px; }
.an-head { display: flex; gap: 10px; align-items: center; padding: 7px 10px; background: var(--panel-2); border-bottom: 1px solid var(--line); font-size: var(--fs-sm); flex-wrap: wrap; }
.an table { width: 100%; border-collapse: collapse; }
.an td { padding: 4px 10px; border-bottom: 1px dashed var(--line); font-size: var(--fs-sm); vertical-align: top; }
.an tr.g td { font-weight: 650; color: var(--muted); background: transparent; padding-top: 8px; border-bottom: 0; text-transform: uppercase; font-size: var(--fs-xs); letter-spacing: .03em; }
.an tr.note td { color: var(--muted); font-style: italic; border-bottom: 0; }
.an tr.foot td { border-bottom: 0; font-weight: 600; }
/* Poz tablosunun ortalı hücrelerinden ayrı: girdi tanımı ve not sola, toplam yazısı tutarın yanına */
.grid.pozlar .an td:nth-child(2), .grid.pozlar .an tr.note td { text-align: left; }
.grid.pozlar .an tr.foot td.an-top-ad { text-align: right; padding-right: 12px; }
.grid.pozlar .an tr.an-add td { text-align: left; }
.an tr.an-bas td { font-size: var(--fs-xs); font-weight: 650; color: var(--muted); border-bottom: 1px solid var(--line); padding-top: 6px; white-space: nowrap; }
.an tr.sub > td { padding: 6px 10px 10px 28px; border-bottom: 1px dashed var(--line); }
.an .subbtn { border: 1px solid var(--sub-soft); background: var(--sub-soft); color: var(--sub); border-radius: var(--r-lg); cursor: pointer; font-size: var(--fs-xs); padding: 0 7px; }
.subbtn.alt-yap { border: 1px dashed color-mix(in srgb, var(--sub) 45%, transparent); background: transparent; color: var(--sub); border-radius: var(--r-lg); cursor: pointer; font-size: var(--fs-xs); padding: 0 7px; white-space: nowrap; opacity: .55; }
tr:hover > td > .subbtn.alt-yap, .an tr:hover .subbtn.alt-yap, .an-head:hover .subbtn.alt-yap, .subbtn.alt-yap:focus-visible { opacity: 1; }
body.ro .subbtn.alt-yap { display: none; }
.an .an-in, .grid.pozlar.kol-sabit .an .an-in { width: 84px; max-width: 100%; padding: 1px 5px; font-size: var(--fs-sm); }
.an .an-in.elle { border-color: var(--warn); background: var(--warn-soft); }
.an .an-elle { color: var(--warn); font-weight: 600; }
.an td.an-act .btn.an-aktar { opacity: 1; padding: 3px 10px; border-color: var(--warn); background: var(--warn-soft); color: var(--warn); font-weight: 600; }
.an td.an-act .btn.an-aktar:hover { background: var(--warn); color: var(--dolgu-yazi); }
.an td.an-act { width: 1%; padding: 2px 4px; text-align: right; }
.an td.an-act .btn { opacity: .35; padding: 0 6px; }
.an tr:hover td.an-act .btn { opacity: 1; }
.an tr.an-sil td { text-decoration: line-through; color: var(--muted); }
.an tr.an-sil td.an-act { text-decoration: none; }
.an tr.an-sil td.an-act .btn, .an tr.an-ek td.an-act .btn { opacity: 1; }
.an tr.an-add td { border-bottom: 0; padding: 6px 10px; }
.an details { padding: 6px 10px 10px; font-size: var(--fs-sm); color: var(--muted); }
.an details summary { cursor: pointer; }
.an details p { white-space: pre-wrap; margin: 6px 0 0; }
.empty { padding: 40px; text-align: center; color: var(--muted); background: var(--panel); border: 1px dashed var(--line-strong); border-radius: var(--radius); }

/* İnceleme */
.rv-section { margin-bottom: 22px; }
.rv-section h2 { font-size: var(--fs-lg); margin: 0 0 8px; display: flex; gap: 8px; align-items: center; }
.rv-section h2 .btn { margin-left: auto; }
.sugs { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 4px; }
.sug {
  border: 1px solid var(--line-strong); background: var(--panel); border-radius: var(--r-xl); padding: 2px 10px;
  cursor: pointer; font-size: var(--fs-sm); text-align: left;
}
.sug:hover { border-color: var(--accent); color: var(--accent); }
.sug.best { border-color: var(--accent); background: var(--accent-soft); color: var(--accent); }
.sug .why { display: block; font-size: var(--fs-xs); color: var(--muted); }
.hint { font-size: var(--fs-sm); color: var(--sub); margin-top: 3px; }
.chg { font-size: var(--fs-sm); }
.chg .old { color: var(--bad); text-decoration: line-through; }
.chg .new { color: var(--ok); }
.chg label { display: flex; gap: 6px; align-items: baseline; }
.callout { background: var(--accent-soft); color: var(--text); border-radius: var(--radius); padding: 10px 12px; margin-bottom: 14px; font-size: var(--fs-sm); }
.callout.warn { background: var(--warn-soft); }
/* Plan sayfalarının başındaki uyarı listesi: solda önem şeridi, başlık + sayı, açıklama, düğme */
.pl-uyarilar { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); margin-bottom: 14px; overflow: hidden; }
.pl-uyarilar > summary { display: flex; align-items: center; gap: 8px; padding: 7px 14px; cursor: pointer; list-style: none; font-size: var(--fs-sm); border-left: 4px solid var(--warn); }
.pl-uyarilar.bad > summary { border-left-color: var(--bad); }
.pl-uyarilar > summary::-webkit-details-marker { display: none; }
.pl-uyarilar > summary:hover { background: var(--panel-2); }
.pl-uyarilar[open] > summary { border-bottom: 1px solid var(--line); }
.pl-uy-ok { width: 0; height: 0; border-style: solid; border-width: 5px 0 5px 7px; border-color: transparent transparent transparent var(--muted); transition: transform .15s; flex: none; }
.pl-uyarilar[open] .pl-uy-ok { transform: rotate(90deg); }
.pl-uy-ozet { color: var(--muted); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; }
.pl-uyarilar[open] .pl-uy-ozet { visibility: hidden; }
.pl-uy-ac { flex: none; }
.pl-uy { display: grid; grid-template-columns: 220px 1fr auto; gap: 4px 16px; align-items: center; padding: 9px 14px; border-top: 1px solid var(--line); border-left: 4px solid var(--warn); font-size: var(--fs-sm); }
.pl-uy:first-child { border-top: 0; }
@media (prefers-reduced-motion: reduce) { .pl-uy-ok { transition: none; } }
.pl-uy.bad { border-left-color: var(--bad); }
.pl-uy-bas { font-weight: 600; display: flex; align-items: center; gap: 6px; }
.pl-uy-say { background: var(--warn-soft); border-radius: var(--r-xl); padding: 0 8px; font-size: var(--fs-xs); font-weight: 600; }
.pl-uy.bad .pl-uy-say { background: var(--bad-soft); }
.pl-uy-metin { color: var(--text); min-width: 0; }
.pl-uy-metin .mono { overflow-wrap: anywhere; }

/* Toplu işlem çubuğu */
.bulkbar {
  position: fixed; left: 50%; transform: translateX(-50%); bottom: 18px; background: var(--text); color: var(--bg);
  border-radius: var(--r-lg); padding: 8px 10px 8px 16px; display: flex; gap: 10px; align-items: center; box-shadow: var(--shadow); z-index: 20;
}
.bulkbar select { background: var(--bg); color: var(--text); }
.bulkbar .btn { background: var(--bg); color: var(--text); border-color: var(--bg); }

/* Modal */
.modal-back { position: fixed; inset: 0; background: rgba(15, 20, 30, .45); display: flex; align-items: flex-start; justify-content: center; padding: 24px 16px; z-index: 40; overflow: auto; }
.modal { --m-py: 18px; --m-px: 22px; margin: auto; background: var(--panel); border-radius: var(--r-xl); box-shadow: var(--shadow); width: min(640px, 100%); padding: var(--m-py) var(--m-px); }
.modal h3 { margin: 0 0 12px; font-size: var(--fs-xl); }
/* Başlıktan sürüklenir (app.js) */
.modal > h3:first-child, .rh-kutu > h3 { cursor: move; user-select: none; touch-action: none; }
.form { display: grid; grid-template-columns: 130px 1fr; gap: 8px 12px; align-items: center; }
.form label { color: var(--muted); font-size: var(--fs-sm); }
.form .full { grid-column: 1 / -1; }
.form input, .form select, .form textarea { width: 100%; }
.modal-foot { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
/* Pencere çerçevesi: başlık ve alt şerit ayrı bant; :where ile özgüllüğü düşük, pencereye özel kurallar bunu ezer */
:where(.modal) > h3:first-child { margin: calc(-1 * var(--m-py)) calc(-1 * var(--m-px)) 16px; padding: 15px var(--m-px) 13px; border-bottom: 1px solid var(--line); }
:where(.modal) > .modal-foot:last-child { margin: 20px calc(-1 * var(--m-px)) calc(-1 * var(--m-py)); padding: 12px var(--m-px);
  border-top: 1px solid var(--line); background: color-mix(in srgb, var(--panel-2) 45%, var(--panel)); border-radius: 0 0 var(--r-xl) var(--r-xl); }
:where(.modal) .form { grid-template-columns: 180px minmax(0, 1fr); gap: 10px 16px; }
:where(.modal) .form > label { color: var(--text); font-size: var(--fs-md); font-weight: 500; }
:where(.modal) h4 { margin: 20px 0 8px; font-size: var(--fs-md); font-weight: 650; }
:where(.modal) .callout > h4:first-child { margin-top: 0; }
:where(.modal) > p.muted:first-of-type { line-height: 1.5; }
/* Penceredeki "yeni kayıt" bölümü */
/* Onay penceresi: kısa soru, dar pencere */
.modal.onay-modal { width: min(460px, 100%); }
.onay-modal > p { margin: 0; line-height: 1.5; }
.ekle-kart { margin-top: 18px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r-lg); background: color-mix(in srgb, var(--panel-2) 50%, var(--panel)); }
.ekle-kart > h4:first-child { margin: 0 0 10px; }
.ekle-kart .row-add:first-of-type { margin-top: 0; }
.girdi-list td { padding: 3px 6px; }
.an-yeni-satir { display: flex; gap: 6px; margin-top: 6px; flex-wrap: wrap; }
.an-yeni-satir input, .an-yeni-satir select { width: 90px; }
.an-yeni-satir #agNo { width: 130px; }
.an-yeni-satir #agAd { flex: 1; min-width: 160px; }
.an-yeni-satir input:disabled, .an-yeni-satir select:disabled { opacity: .5; }
.tip-sec { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; }
.tip-sec label { display: inline-flex; align-items: center; gap: 4px; color: var(--text); font-size: var(--fs-sm); cursor: pointer; white-space: nowrap; }
.tip-sec input, .form .tip-sec input, .an-yeni-satir .tip-sec input { width: auto; margin: 0; }
.an-yeni-satir .tip-sec { gap: 2px 8px; }
.poz-act { display: flex; gap: 2px; align-items: center; margin-top: 4px; flex-wrap: nowrap; }
.poz-act .btn.sm { padding: 3px 6px; display: inline-flex; align-items: center; gap: 4px; }
.poz-act svg, .poz-not svg { display: block; flex: none; }
.poz-act .btn.ghost { color: var(--muted); }
.poz-act .btn.ghost:hover { color: var(--text); }
.poz-act .btn.ghost.danger:hover { color: var(--bad, #c0392b); }
.poz-not { display: flex; gap: 4px; align-items: center; }
.poz-tarif { margin-top: 4px; font-size: var(--fs-sm); }
.poz-tarif > summary { cursor: pointer; color: var(--accent); width: fit-content; }
.poz-tarif-metin { white-space: pre-wrap; color: var(--muted); margin: 4px 0; max-width: 70ch; }
.poz-tarif-ekle { display: inline-block; vertical-align: middle; margin: 2px 0 0 2px; }
tr:hover .poz-tarif .subbtn.alt-yap { opacity: 1; }
.an-kar { display: inline-flex; gap: 4px; align-items: center; }
.an-kar .teklif-in { width: 56px; }
body.ro [data-altekle], body.ro .an-sil-btn, body.ro .an tr.an-add, body.ro [data-anyeni] { display: none !important; }
.toast {
  position: fixed; right: 18px; bottom: 18px; background: var(--text); color: var(--bg); padding: 10px 14px;
  border-radius: var(--radius); box-shadow: var(--shadow); z-index: 50; max-width: 420px;
}
.drop-hint {
  position: fixed; inset: 12px; border: 3px dashed var(--accent); border-radius: var(--r-xl); background: color-mix(in srgb, var(--accent-soft) 85%, transparent);
  display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 600; color: var(--accent); z-index: 60; pointer-events: none;
}
.bar { height: 6px; background: var(--panel-2); border-radius: 3px; overflow: hidden; min-width: 60px; }
.bar > i { display: block; height: 100%; background: var(--accent); }

@media (max-width: 900px) {
  .layout { flex-direction: column; }
  .sidebar { width: auto; max-height: 40vh; margin: 10px 10px 0; }
  .sidebar.dar { width: auto; flex-direction: row; padding: 4px 6px; }
  .sidebar.dar .sb-dugme { margin: 0 4px 0 0; }
  .main { padding: 12px 16px 80px; }
  .filters input[type=search] { width: 100%; }
}

/* ===== Mod sekmeleri: geniş ekranda proje kutusunun yanında, dar ekranda ayrı satırda ===== */
.topbar { padding-top: 0; padding-bottom: 0; gap: 0 14px; min-height: 90px; }
.kpi .v { white-space: nowrap; }
.modes { display: flex; gap: 2px; align-self: stretch; margin-left: 4px; overflow-x: auto; scrollbar-width: none; }
.modes::-webkit-scrollbar { display: none; }
.mode { border: 0; border-top: 3px solid transparent; border-bottom: 3px solid transparent; background: none; padding: 0 12px; cursor: pointer; color: var(--muted); white-space: nowrap; font-weight: 500; font-size: var(--fs-lg); }
@media (max-width: 1520px) {
  .topbar > :not(.modes) { margin-block: 20px; }
  .modes { order: 10; flex-basis: 100%; align-self: auto; margin: 0 -16px; padding: 0 12px; border-top: 1px solid var(--line); }
  .mode { padding: 8px 12px 6px; border-top: 0; }
}
/* Geniş ekranda tek satır: uzun proje adı kısalır (…), sekmeler ve sağdaki düğmeler alt satıra kaymaz */
@media (min-width: 1521px) {
  .topbar { flex-wrap: nowrap; }
  .proj-wrap { flex: 0 1000 auto; min-width: 160px; }
  .modes { min-width: 0; }
}
@media (min-width: 1521px) and (max-width: 1620px) { .mode { padding: 0 9px; } }
.mode:hover { color: var(--text); }
.mode.active { color: var(--accent); border-bottom-color: var(--accent); font-weight: 650; }
body.plan-mode .sidebar { display: none; }
.teklif-in.gercek { width: 96px; }
.teklif-in.over { border-color: var(--bad); color: var(--bad); }
.gd { font-size: var(--fs-xs); margin-top: 2px; }
.h2 { font-size: var(--fs-lg); margin: 22px 0 8px; }
/* Endirekt giderler: genel toplam ekranın altında sabit (sticky alanı .main alt boşluğu kadar içeride; -72px kenara 8px kalır) */
.end-toplam-bar { position: sticky; bottom: -72px; z-index: 3; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 24px; margin-top: var(--sp-2);
  padding: 10px 14px; background: var(--panel); border: 1px solid var(--line-strong); border-radius: var(--radius); box-shadow: 0 -4px 14px rgba(0, 0, 0, .12); }
.end-toplam-bar b { font-size: var(--fs-lg); font-variant-numeric: tabular-nums; }
/* Nakit akışı: gruplu başlıklı tablo */
.fn-nakit-arac { align-items: flex-start; }
.fn-nasil { flex: 1 1 320px; max-width: 760px; }
.fn-nakit-wrap { overflow-x: auto; }
.fn-nasil summary { cursor: pointer; color: var(--accent); font-size: var(--fs-sm); padding: 2px 0; }
.fn-nasil ul { margin: 6px 0 0; padding-left: 18px; color: var(--muted); }
.fn-nasil li + li { margin-top: 3px; }
.grid.fn-nakit thead th { white-space: nowrap; }
.grid.fn-nakit thead tr:first-child th[colspan] { border-bottom: 2px solid var(--line-strong); font-weight: 700; }
.grid.fn-nakit .fn-gr-g { color: var(--ok); }
.grid.fn-nakit .fn-gr-c { color: var(--bad); }
.grid.fn-nakit tr.fn-gecmis td { color: var(--muted); }
.grid.fn-nakit tr.fn-gecmis td b { font-weight: 600; }
.grid.fn-nakit.oneri-haric .fn-on { opacity: .45; text-decoration: line-through; }
.grid.fn-nakit tfoot td { font-weight: 700; border-top: 2px solid var(--line-strong); }
.fn-bu-et { display: inline-block; margin-left: 4px; padding: 0 6px; border-radius: 9px; background: var(--accent-dolgu); color: #fff; font-size: var(--fs-xs); font-weight: 600; }
/* Toplu endirekt bütçesi kutusu (teklifin %'si; gerçekleşenler düşer) */
.end-toplu { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; padding: 10px 14px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); }
.end-toplu.bos { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 6px 12px; border-style: dashed; }
.end-toplu.asti { border-color: var(--bad); }
.end-toplu-ust { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.end-toplu-oran { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.end-toplu-oran input { width: 64px; }
.end-toplu .kr-ilr { flex: none; }
.end-toplu-sat td { font-weight: 600; }
.end-tablo tr.end-pasif td { opacity: .55; }
/* Endirekt araç çubuğu: üstte işlemler, altta görünüm (arama, süzgeç, aç/kapat) */
.end-arac { display: flex; flex-direction: column; gap: var(--sp-2); margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.end-arac-sat { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.end-arac-bosluk { flex: 1; }
.end-arac .end-ara { width: 260px; max-width: 100%; }
.icmal-baslik { margin: 0 0 0 6px; font-size: var(--fs-lg); }
/* İcmal: endirekt gider hesabı tablosunun icmal sayfası gibi tek tablo, altta notlar */
.icmal-kart { max-width: 960px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); padding: 12px 14px; }
.icmal-proje { font-weight: 650; margin-bottom: 8px; }
.grid.fn-icmal th:first-child, .grid.fn-icmal td:first-child { text-align: left; }
.grid.fn-icmal th.num, .grid.fn-icmal td.num { text-align: right; white-space: nowrap; width: 1%; padding-left: 32px; }
.grid.fn-icmal th:nth-child(2) { text-align: center; }
.grid.fn-icmal tr.icmal-ara td { border-top: 1px solid var(--line-strong); }
.grid.fn-icmal tr.icmal-son td { font-size: var(--fs-md); background: var(--accent-soft); }
.icmal-not { margin-top: 10px; font-size: var(--fs-sm); color: var(--muted); }
.end-arac .menu { min-width: 260px; }
/* Görünüm seçici: tek kutu içinde sekme gibi düğmeler, seçili olan beyaz kart */
.end-gor { display: inline-flex; align-items: center; gap: 2px; padding: 2px; background: var(--panel-2); border: 1px solid var(--line); border-radius: var(--r-sm); }
.end-gor button { display: inline-flex; align-items: center; gap: 6px; border: 0; background: transparent; color: var(--muted); padding: 4px 12px; border-radius: var(--r-xs);
  font: inherit; font-size: var(--fs-sm); line-height: 1.4; cursor: pointer; white-space: nowrap; }
.end-gor button:hover { color: var(--text); }
.end-gor button.secili { background: var(--panel); color: var(--accent); font-weight: 600; box-shadow: 0 1px 2px rgba(0, 0, 0, .12), 0 0 0 1px var(--line); }
.end-gor button:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.end-say { display: inline-block; min-width: 18px; padding: 0 6px; border-radius: var(--r-xl); background: var(--line); color: var(--text); font-size: var(--fs-xs); font-weight: 600; line-height: 1.5; text-align: center; }
.end-gor button.secili .end-say { background: var(--accent-dolgu); color: #fff; }
/* Personel kadrosu penceresi: işveren payları kartı, tablo (sayılar sağa yaslı), özet göstergeleri */
.kd-yuk-kart { border: 1px solid var(--line); border-radius: var(--r-sm); padding: 8px 12px; background: var(--panel-2); }
.kd-yuk-bas { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.kd-yuk { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 8px 16px; font-size: var(--fs-sm); }
.kd-yuk-k { display: flex; flex-direction: column; gap: 3px; }
.kd-yuk-l { font-weight: 600; }
.kd-yuk-g { display: inline-flex; align-items: center; gap: 6px; }
.kd-yuk-g .teklif-in { width: 76px; text-align: right; }
.kd-tablo td, .kd-tablo th { padding-top: 3px; padding-bottom: 3px; }
.kd-tablo th.num, .kd-tablo td.num { text-align: right; }
.kd-tablo td .teklif-in { text-align: right; }
.kd-tablo td input[data-ka="ad"] { text-align: left; width: calc(100% - 80px) !important; }
.kd-tablo tr.kd-grp td { font-weight: 600; }
.kd-tablo .kd-ek { margin-left: 4px; }
.kd-tablo td.kd-bos { padding: 6px 12px; }
.kd-ozet { margin-bottom: 0; }
.fn-icmal tr.grp td { font-weight: 600; }
.end-toplam-bar .end-tb-not { display: none; }
.end-toplam-bar.degisiyor .end-tb-not { display: inline; }
.end-toplam-bar.degisiyor b { color: var(--accent, #1f5fbf); }
/* Endirekt gerçekleşen / karşılaştırma görünümü */
.end-mod button { font-weight: 600; }
/* Finans listeleri (nakit akışı, krediler, çekler, hareketler, kaynaklar): bütün sütunlar ortalı */
.grid.fn-orta th, .grid.fn-orta td { text-align: center; }
/* Endirekt planlanan / gerçekleşen tablosu: kod ve kalem dışındaki sütunlar ortalı (Pozlar tablosundaki gibi kutu içi de) */
.grid.end-tablo th:nth-child(n+3), .grid.end-tablo td:nth-child(n+3), .grid.end-tablo td:nth-child(n+3) .teklif-in { text-align: center; }
.end-bitti { font-size: var(--fs-xs); padding: 0 6px; border-radius: var(--r-xs); background: var(--ok-soft); color: var(--ok); white-space: nowrap; }
/* Endirekt karşılaştırma: özet kartlar, sade kalem listesi */
.kr-ozet { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; margin-bottom: 12px; }
.kr-k { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-lg); }
.kr-k b { font-size: var(--fs-xl); font-variant-numeric: tabular-nums; }
.kr-k.asti b { color: var(--bad); } .kr-k.alti b { color: var(--ok); }
.kr-l { font-size: var(--fs-sm); color: var(--muted); }
.kr-alt { font-size: var(--fs-xs); color: var(--muted); font-weight: 400; }
.kr-cubuk { display: flex; align-items: center; gap: 8px; min-width: 120px; }
.kr-cubuk span { font-size: var(--fs-xs); color: var(--muted); min-width: 36px; font-variant-numeric: tabular-nums; }
.kr-ilr { flex: 1; height: 6px; border-radius: 3px; background: var(--line); overflow: hidden; }
.kr-ilr i { display: block; height: 100%; border-radius: 3px; background: var(--accent); }
.kr-ilr.asti i { background: var(--bad); }
.kr-hap { display: inline-block; padding: 1px 8px; border-radius: var(--r-xl); font-size: var(--fs-xs); font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.kr-hap.asti { background: var(--bad-soft); color: var(--bad); }
.kr-hap.alti, .kr-hap.ok { background: var(--ok-soft); color: var(--ok); }
.kr-hap.bekle { background: var(--panel-2); color: var(--muted); font-weight: 400; }
.kr-tablo td { vertical-align: middle; }
.kr-tablo th:nth-child(n+2), .kr-tablo td:nth-child(n+2) { text-align: center; }
.kr-tablo td .kr-cubuk { justify-content: center; }
.kr-tablo td .kr-alt { line-height: 1.2; }
.kr-tablo tr.kr-bol td { background: var(--panel-2); font-weight: 700; border-top: 2px solid var(--line); }
.kr-tablo tr.kr-grup td { font-weight: 600; color: var(--text); }
.kr-tablo tr.kr-kalem td:first-child { padding-left: 22px; }
.stats-row { display: flex; gap: 22px; flex-wrap: wrap; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 10px 14px; margin-bottom: 8px; }
.crumbs a { color: var(--accent); }
tr.item.crit td:nth-child(2) { box-shadow: inset 3px 0 0 var(--bad); }
tr.item.late td { background: var(--bad-soft); }
/* Tedarik ve hazırlık: adım hücreleri (işaret + son tarih) */
.grid.sv th.sv-mik, .grid.sv td.sv-mik { text-align: center; }
.grid.sv th.hz { text-align: center; }
.grid.sv td.hz { white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--muted); }
.grid.sv td.hz label { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; }
.grid.sv td.hz.ok { color: var(--ok); }
.grid.sv td.hz.gec { color: var(--bad); font-weight: 600; }
.grid.sv tr.item td.hz.ok { background: var(--ok-soft); }
input.tiny { width: 64px; text-align: right; padding: 2px 5px; font-variant-numeric: tabular-nums; }

/* Aktivite düzenleyici */
.ed { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 14px; }
.ed h4 { margin: 14px 0 6px; font-size: var(--fs-md); }
.ed-grid { display: grid; grid-template-columns: 120px minmax(160px, 1fr) 120px minmax(160px, 1fr); gap: 6px 10px; align-items: center; }
.ed-grid label { color: var(--muted); font-size: var(--fs-sm); }
.ed-grid input, .ed-grid select { min-width: 0; width: 100%; }
.ed-info { margin-top: 10px; font-size: var(--fs-sm); background: var(--panel-2); border-radius: var(--r-sm); padding: 7px 10px; }
/* Başlangıcı en erken başlangıç kısıtından gelen aktivite */
.kisit-rz { display: inline-flex; vertical-align: -1px; margin-left: 4px; color: var(--warn); cursor: help; }
.kisit-alan { display: flex; gap: 6px; align-items: center; min-width: 0; }
.kisit-alan input { flex: 1; }
.kisit-not { color: var(--warn); }
.kisit-not svg { vertical-align: -1px; }
/* Aktivite açılımı: üst özet ve poz bazında süre/başlangıç/not */
.ed-info.ed-ilk { margin-top: 0; }
.akt-poz .teklif-in { width: 84px; }
.akt-poz input[type="date"] { width: 132px; }
.akt-poz .pz-not { width: 140px; }
/* Süre hücresi: yöntem, birimli değer, hesaplanan süre tek satırda; plan hücresi: tarih aralığı, kısıt verilince tarih kutusu */
.pz-sure { display: flex; gap: 6px; align-items: center; justify-content: center; white-space: nowrap; }
.pz-deger { display: inline-flex; gap: 4px; align-items: center; }
.akt-poz .pz-in { width: 64px; }
.pz-birim { color: var(--muted); font-size: var(--fs-xs); min-width: 34px; text-align: left; }
.pz-sonuc { font-weight: 600; cursor: help; }
.pz-plan { display: inline-flex; gap: 4px; align-items: center; }
.akt-poz .pz-basekle { font-size: var(--fs-xs); color: var(--muted); padding: 0 4px; }
/* Aktivite içi poz öncülleri: plan hücresinin altında çipler ve ekleme seçimi */
/* Hedefe sığdır penceresi: sonuç özeti ve değişen pozlar */
.hs-ozet { padding: 8px 10px; border-radius: var(--r-sm); border-left: 3px solid var(--ok); background: var(--panel-2); font-size: var(--fs-sm); }
.hs-ozet.warn { border-left-color: var(--warn); }
.hs-ozet.bad { border-left-color: var(--bad); }
.hs-tablo { margin-top: 8px; }
#hs-sonuc { max-height: 46vh; overflow: auto; }
/* Plan önerisi (bağlı uygulama): bant ve inceleme penceresi */
.oneri-bant .pk-etiket { background: var(--ok-soft, var(--accent-soft)); color: var(--ok, var(--accent)); }
.on-liste { max-height: 42vh; overflow: auto; }
.on-liste td:first-child, .on-liste th:first-child { width: 28px; text-align: center; }
.on-hata { color: var(--bad); }
.on-aciklama { white-space: pre-wrap; background: var(--panel-2); border-radius: var(--r-sm); padding: 8px 10px; }
.hs-chk { display: flex; gap: 6px; align-items: center; color: var(--text); }
.form .hs-chk input { width: auto; }
.pz-oncler { display: flex; gap: 4px; flex-wrap: wrap; justify-content: center; margin-top: 3px; }
.pz-onc { font-size: var(--fs-xs); padding: 0 2px 0 7px; }
.pz-onc.sur { border-color: var(--accent); font-weight: 600; }
.pb-liste { max-height: 220px; margin-top: 6px; display: flex; flex-direction: column; gap: 2px; }
.pb-sat { text-align: left; background: none; border: 1px solid transparent; border-radius: var(--r-xs); padding: 3px 6px; font-size: var(--fs-sm); color: var(--text); cursor: pointer; }
.pb-sat:hover { background: var(--hover, rgba(127, 127, 127, .12)); }
.pb-sat.secili { border-color: var(--accent); font-weight: 600; }
.pb-onp { display: contents; }
.pz-tum .teklif-in { width: 70px; }
/* Bölünmüş poz: plan hücresinin altında parçalar; Gantt'ta parça çubukları */
.pz-bol { font-size: var(--fs-xs); color: var(--muted); padding: 0 4px; }
.pz-parcalar { display: flex; flex-direction: column; gap: 2px; margin-top: 3px; font-size: var(--fs-xs); }
.pz-parca { display: flex; gap: 4px; align-items: center; justify-content: center; }
.pz-parca .pz-pno { color: var(--muted); font-weight: 600; }
.pz-parca input[type="date"] { font-size: var(--fs-xs); height: 22px; padding: 0 2px; }
.pz-parca .btn { padding: 0 4px; }
.pz-parca-dug { display: flex; gap: 2px; justify-content: center; }
.pz-parca-dug .btn { font-size: var(--fs-xs); color: var(--muted); padding: 0 4px; }
.g-bar.g-pbar.g-parca { border-radius: 2px; }
/* Pozlar ve miktarlar: poz no, tanım ve not dışındaki sütunlar ortalı; kaynak tablolarında ad dışındakiler ortalı */
.akt-poz > thead > tr > th:not(:nth-child(1), :nth-child(2), :nth-child(11)),
.akt-poz > tbody > tr > td:not(:nth-child(1), :nth-child(2), :nth-child(11), [colspan]),
.akt-poz .teklif-in { text-align: center; }
.kaynak-poz .grid.sub th:not(:first-child), .kaynak-poz .grid.sub td:not(:first-child) { text-align: center; }
.chips { display: flex; gap: 6px; flex-wrap: wrap; }
.chip { display: inline-flex; gap: 4px; align-items: center; background: var(--panel-2); border: 1px solid var(--line); border-radius: var(--r-xl); padding: 2px 4px 2px 10px; font-size: var(--fs-sm); }
.chip input.tiny { width: 40px; }
.chip button { border: 0; background: none; cursor: pointer; color: var(--muted); }
.row-add { display: flex; gap: 6px; align-items: center; margin-top: 8px; flex-wrap: wrap; }
table.grid.sub th { position: static; }
/* Aktivite açılımı: kaydırırken poz tablosunun başlığı aktivite tablosunun sabit başlığının üstüne geçer (iki başlık karışmasın) */
table.grid.akt-poz > thead > tr > th { position: sticky; top: -16px; z-index: 3; height: 36px; }
table.grid.kt-akt.ic-bas > thead [data-pl-secall] { visibility: hidden; } /* plan.js akBasIzle */.two { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.kaynak-poz { margin-bottom: 8px; }
.kaynak-poz > summary { cursor: pointer; padding: 4px 0; font-size: var(--fs-md); }
.kaynak-poz > summary .mono { font-weight: 600; }
/* Kaynak ihtiyacındaki ekip tablosu: üstte günlük imalat ve süre, satırda adet kutusu */
.ek-ust { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 6px; }
.ek-ust .pz-in, .ek-tablo .pz-in { width: 64px; text-align: center; }
.ek-tablo tfoot td { font-weight: 600; }
.akt-poz .pz-oto { padding: 0 6px; }
.ek-tablo td.ek-ag { cursor: help; text-decoration: underline dotted var(--muted); text-underline-offset: 3px; }
/* Kısıt kilidi düğmesi: tıklayınca en erken başlangıç kısıtı kalkar */
button.kisit-ac { border: 0; background: none; padding: 0 2px; cursor: pointer; color: var(--warn); line-height: 1; font: inherit; }
button.kisit-ac:hover { color: var(--bad); }
button.kisit-ac.acik { color: var(--muted); margin-right: 4px; }
button.kisit-ac.acik:hover, .kisit-yeniden:hover { color: var(--warn); }
.ak-kisit { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.ak-kisit .kisit-not { display: inline-flex; }
/* Aktivite açılımının özeti: süre, tarih aralığı, işçilik, en erken başlangıç kutuları; altında açıklama satırları */
.ak-ozet { padding: 10px 12px; }
.ak-kutular { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 8px; }
.ak-kutu { display: flex; flex-direction: column; gap: 3px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-sm); padding: 7px 10px; min-width: 0; }
.ak-kutu.kisit { border-color: var(--warn); }
.ak-kutu > b { font-size: var(--fs-md); }
.ak-et { color: var(--muted); font-size: var(--fs-xs); }
.ak-alt { color: var(--muted); font-size: var(--fs-xs); }
.ak-satir { color: var(--muted); font-size: var(--fs-xs); margin-top: 6px; }
/* Günlük giriş: plan hızını aşan hedef */
.days { display: flex; gap: 10px; flex-wrap: wrap; }
.days label { color: var(--text); }
/* Proje ayarları › Takvim: tatil listesi (tek satırlık satırlar, kaydırmalı) */
.pa-body .form .tt-et { align-self: start; padding-top: 6px; }
.tt { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.tt-arac { display: flex; gap: var(--sp-2, 8px); flex-wrap: wrap; align-items: center; }
.tt-arac input[type="date"] { width: auto; }
.tt-liste { max-height: 168px; overflow: auto; border: 1px solid var(--line); border-radius: var(--r-sm); }
.tt-sat { display: grid; grid-template-columns: 78px 28px minmax(0, 1fr) auto 24px; gap: 8px; align-items: center; padding: 2px 4px 2px 8px; font-size: var(--fs-sm); border-bottom: 1px solid var(--line); }
.tt-sat:last-child { border-bottom: 0; }
.tt-sat .tt-ad { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tt-sat.tt-elle .tt-ad, .tt-sat.tt-disi { color: var(--muted); }
.tt-sat.tt-calis { background: var(--ok-soft); }
.tt-sat label { display: inline-flex; gap: 4px; align-items: center; color: var(--muted); white-space: nowrap; }
.tt-sat.tt-calis label { color: var(--ok); }
.tt-x { border: 0; background: none; color: var(--muted); cursor: pointer; font-size: var(--fs-lg); line-height: 1; border-radius: var(--r-xs); padding: 2px 4px; }
.tt-x:hover { color: var(--bad); background: var(--bad-soft); }
.pa-body { border: 0; padding: 0; margin: 0; min-width: 0; }
.pa-body .form { grid-template-columns: 170px 1fr; }
.isc-tip input[type=text] { width: 100%; }
.isc-sec label { display: inline-flex; align-items: center; gap: 6px; color: var(--text); }
.isc-sec input { width: auto; }
.isc-liste { max-height: 300px; margin-top: var(--sp-2); }
.isc-liste table.grid th { top: 0; }
/* İşçilik sekmesi pencereyi ekran yüksekliğine sığdırır; girdi listesinin yüksekliğini plan.js iscBoy kalan alana göre verir
   (üstteki alan sığmazsa pencere gövdesi kayar) */
.modal.isc-tam { height: calc(100vh - 48px); display: flex; flex-direction: column; }
.modal.isc-tam .pa-body { flex: 1 1 0; min-height: 0; overflow: auto; }
.modal.isc-tam .modal-foot { margin-top: var(--sp-2); }
.isc-arac { display: flex; gap: var(--sp-2); flex-wrap: wrap; }
.isc-arac input { flex: 1; min-width: 180px; }
.isc-liste select { max-width: 220px; }
.isc-liste tr.isc-bos td { background: var(--warn-soft); }
.isc-liste tr.isc-elle select { font-weight: 600; }
.isc-uyari { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; }

/* Gantt */
.print-only { display: none; }
.gantt { overflow-x: auto; overflow-y: hidden; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); }
/* Yatay kaydırma çubuğu sayfa kayarken ekranın altında kalır (telefonda Gantt'ın kendi çubuğu) */
.g-ykay { display: none; }
@media (min-width: 761px) {
  .gantt { scrollbar-width: none; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
  .gantt::-webkit-scrollbar { display: none; }
  .g-ykay { display: block; position: sticky; bottom: calc(-1 * var(--alt-bosluk, 0px)); z-index: 6; overflow-x: auto; overflow-y: hidden; background: var(--panel);
    border: 1px solid var(--line); border-top: 0; border-radius: 0 0 var(--radius) var(--radius); }
  .g-ykay > div { height: 1px; }
  body.pl-print .g-ykay { display: none; }
}
.g-inner { position: relative; }
.g-row { display: flex; height: 30px; border-bottom: 1px solid var(--line); }
.g-row.g-grp { background: var(--panel-2); font-weight: 650; font-size: var(--fs-sm); }
.g-row.g-grp .g-left { background: var(--panel-2); }
.g-left { position: sticky; left: 0; z-index: 2; background: var(--panel); flex-shrink: 0; display: grid;
  grid-template-columns: 56px 1fr 40px 46px 46px 38px; gap: 6px; align-items: center; padding: 0 8px; font-size: var(--fs-sm); border-right: 1px solid var(--line-strong); }
.g-grp .g-left { display: flex; }
.g-name { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.g-tl { position: relative; flex-shrink: 0; }
.g-head { display: flex; position: sticky; top: 0; z-index: 4; background: var(--panel-2); height: 44px; border-bottom: 1px solid var(--line-strong); }
.g-head .g-left { background: var(--panel-2); font-weight: 600; color: var(--muted); z-index: 5; }
.g-mrow, .g-drow { position: relative; height: 22px; }
.g-m { position: absolute; top: 0; height: 22px; border-left: 1px solid var(--line-strong); font-size: var(--fs-xs); font-weight: 600; padding: 3px 4px; white-space: nowrap; overflow: hidden; }
.g-d { position: absolute; top: 0; height: 22px; border-left: 1px solid var(--line); font-size: var(--fs-2xs); color: var(--muted); padding: 4px 2px; overflow: hidden; white-space: nowrap; }
.g-d.off { background: var(--line); }
.g-bar { position: absolute; top: 7px; height: 16px; border-radius: var(--r-xs); background: var(--accent); cursor: pointer; overflow: hidden; opacity: .85; }
.g-bar:hover { opacity: 1; outline: 2px solid var(--panel); }
.g-bar.crit { background: var(--bad); }
.g-bar.idari { background: var(--sub); }
.g-bar.idari.crit { box-shadow: inset 0 0 0 2px var(--bad); }
.g-bar.engel { outline: 2px dashed var(--warn); outline-offset: 1px; }
/* Planlama eksik ya da ona bağlı: tarih kesin değil */
.g-bar.g-gecici { background-image: repeating-linear-gradient(135deg, transparent 0 5px, rgba(255,255,255,.45) 5px 9px); opacity: .75; }
.pl-gecici { color: var(--muted); font-style: italic; }
.pz-eksik { display: block; margin-top: 2px; }
ul.pl-eksik { margin: 4px 0 0; padding-left: 18px; }
.g-bar i { display: block; height: 100%; background: rgba(0, 0, 0, .35); }
/* Gantt düzenleme: sürükle-taşı, sağ uçtan uzat, uç noktalardan bağla, bağlantı okları */
.g-bar.g-ed { cursor: grab; }
.g-bar .g-tut { position: absolute; top: 0; right: 0; width: 6px; height: 100%; cursor: ew-resize; }
.g-bar.g-ed:hover .g-tut { background: rgba(255, 255, 255, .45); }
.g-bar.g-tasiniyor { opacity: .6; outline: 2px dashed var(--text); z-index: 3; }
.g-bar.g-hedef { outline: 2px solid var(--warn); opacity: 1; }
/* Sürüklenen işe bağlı çubuk ve ok */
.g-bar.g-bagli { outline: 2px solid var(--accent); outline-offset: 1px; opacity: 1; }
.g-ok.vurgu .g-ok-cz { stroke: var(--accent); stroke-width: 2; opacity: 1; }
body.g-suruk, body.g-suruk * { cursor: grabbing !important; user-select: none; }
.g-uc { position: absolute; top: 10px; width: 10px; height: 10px; border-radius: 50%; background: var(--panel); border: 2px solid var(--accent);
  z-index: 1; cursor: crosshair; opacity: 0; transition: opacity .1s; }
.g-row:hover .g-uc, body.g-suruk .g-uc { opacity: 1; }
.g-oklar { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none; overflow: visible; }
.g-ok .g-ok-cz { fill: none; stroke: var(--muted); stroke-width: 1.2; opacity: .75; }
.g-ok.sur .g-ok-cz { stroke: var(--text, #333); opacity: .9; }
.g-ok.kr .g-ok-cz { stroke: var(--bad); }
.g-ok .g-ok-vur { fill: none; stroke: transparent; stroke-width: 9; }
.g-ok[data-g-bag] .g-ok-vur, .g-ok[data-g-pbag] .g-ok-vur { pointer-events: stroke; cursor: pointer; }
.g-ok[data-g-bag]:hover .g-ok-cz, .g-ok[data-g-pbag]:hover .g-ok-cz { stroke: var(--accent); stroke-width: 2; opacity: 1; }
/* Poz bağları: ince, kesikli ok */
.g-pok .g-ok-cz { stroke-width: 1; stroke-dasharray: 3 2; }
.g-poz .g-uc { top: 7px; width: 8px; height: 8px; }
/* Yan yana poz parçaları: uç noktası çubuğun üst kenarında */
.g-poz .g-uc.ic { top: -1px; z-index: 2; }
.g-ok-gecici { fill: none; stroke: var(--accent); stroke-width: 1.5; stroke-dasharray: 4 3; }
/* Okun üstündeki gecikme yazısı ve bağlayınca açılan gecikme kutusu */
.g-ok-et { font-size: var(--fs-xs); font-weight: 600; font-variant-numeric: tabular-nums; fill: var(--muted); stroke: var(--panel); stroke-width: 3px; paint-order: stroke; stroke-linejoin: round; }
.g-ok.sur .g-ok-et { fill: var(--text, #333); }
.g-ok.kr .g-ok-et { fill: var(--bad); }
.g-ok.vurgu .g-ok-et, .g-ok[data-g-bag]:hover .g-ok-et, .g-ok[data-g-pbag]:hover .g-ok-et { fill: var(--accent); }
.g-ok[data-g-bag] .g-ok-et, .g-ok[data-g-pbag] .g-ok-et { pointer-events: all; cursor: pointer; }
.g-gec { position: fixed; z-index: 900; width: 300px; display: grid; gap: var(--sp-1, 4px); padding: var(--sp-2, 8px) 10px; background: var(--panel); color: var(--text); border: 1px solid var(--line-strong); border-radius: var(--r-sm, 6px); box-shadow: var(--shadow); }
.g-gec-bas { font-size: var(--fs-sm); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.g-gec-sat { display: flex; align-items: center; gap: 6px; font-size: var(--fs-sm); }
.g-gec-sat input { width: 56px; height: 26px; text-align: right; padding: 2px 4px; }
.g-gec-sat .btn { margin-left: auto; }
.g-ipucu { position: absolute; z-index: 6; background: var(--text, #222); color: var(--panel); font-size: var(--fs-xs); padding: 3px 7px; border-radius: var(--r-xs); white-space: nowrap; pointer-events: none; }
.g-not { list-style: none; margin: var(--sp-2, 8px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 2px 20px; color: var(--muted); font-size: var(--fs-xs); line-height: 1.45; }
.g-not b { font-weight: 600; color: var(--text); }
.g-mn { border: 0; background: none; color: var(--muted); cursor: pointer; padding: 0 2px; font: inherit; line-height: 1; }
.g-mn:hover { color: var(--text, #222); }
.g-row.g-secili, .g-row.g-secili .g-left { background: var(--accent-soft); }
.g-row.g-secili .g-bar { outline: 2px solid var(--accent); outline-offset: 1px; opacity: 1; }
.g-hc { position: relative; cursor: text; border-radius: var(--r-xs); padding: 1px 2px; margin: -1px -2px; }
.g-hc:hover { background: var(--panel-2); box-shadow: inset 0 0 0 1px var(--line-strong); }
.g-hc-in { position: absolute; left: -4px; top: 50%; transform: translateY(-50%); z-index: 6; width: 132px; height: 26px; font: inherit; font-size: var(--fs-sm); padding: 2px 4px;
  border: 1px solid var(--accent); border-radius: var(--r-xs); background: var(--panel); color: var(--text); box-shadow: var(--shadow); }
.g-hc-in.sure { width: 56px; text-align: right; }
.g-sira { cursor: grab; color: var(--muted); font-weight: 400; margin-right: 3px; opacity: .45; }
.g-row:hover .g-sira { opacity: 1; }
.g-row.g-sira-kaynak { opacity: .45; }
.g-sira-cizgi { position: absolute; left: 0; right: 0; height: 2px; background: var(--accent); z-index: 7; pointer-events: none; }
body.pl-print .g-sira { display: none; }
.g-row.g-yeni { height: 26px; }
.g-yeni .g-tl { cursor: crosshair; }
.g-yeni:hover .g-tl { background-color: var(--accent-soft); }
.g-yeni-dg { border: 0; background: none; color: var(--accent); cursor: pointer; padding: 0; font: inherit; font-size: var(--fs-sm); text-align: left; }
.g-yeni-dg:hover { text-decoration: underline; }
.g-bar.g-cizilen { top: 5px; opacity: .55; outline: 2px dashed var(--accent); pointer-events: none; }
body.pl-print .g-yeni { display: none; }
.menu.g-menu { position: fixed; right: auto; top: 0; z-index: 60; min-width: 240px; }
.g-menu-bas { padding: 6px 10px 4px; font-size: var(--fs-xs); color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 300px; }
/* Gantt poz çubukları (aktivite satırında ▸) */
.g-exp { border: 0; background: none; cursor: pointer; color: var(--muted); width: 16px; padding: 0; margin-right: 2px; font: inherit; }
.g-row.g-poz { height: 24px; }
.g-poz .g-left { font-size: var(--fs-xs); color: var(--muted); }
.g-poz .g-name { padding-left: 14px; }
.g-bar.g-pbar { top: 7px; height: 10px; opacity: .6; }
.g-poz .g-lab { top: 5px; }
.g-lab { position: absolute; top: 7px; font-size: var(--fs-xs); color: var(--muted); white-space: nowrap; pointer-events: none; }
.g-line { position: absolute; top: 44px; bottom: 0; width: 0; z-index: 1; pointer-events: none; }
.g-line.today { border-left: 2px solid var(--accent); }
.g-line.soz { border-left: 2px dashed var(--bad); }
.g-line.bl { border-left: 2px dotted var(--muted); }
.g-line.hedef { border-left: 2px dashed var(--ok); }
.g-bl { position: absolute; top: 25px; height: 3px; border-radius: 2px; background: var(--muted); opacity: .7; pointer-events: auto; }
.g-sap { font-weight: 600; margin-left: 4px; }
.g-sap.gec { color: var(--bad); }
.g-sap.erken { color: var(--ok); }
.g-sap.yeni { color: var(--sub); font-weight: 400; }
.legend { display: inline-flex; gap: 10px; align-items: center; font-size: var(--fs-sm); color: var(--muted); flex-wrap: wrap; }
.lg { display: inline-block; width: 18px; height: 10px; border-radius: 3px; margin-right: 3px; vertical-align: middle; }
.lg.bar { background: var(--accent); }
.lg.bar.crit { background: var(--bad); }
.lg.bar.idari { background: var(--sub); }
.lg.bar.engel { background: transparent; outline: 2px dashed var(--warn); outline-offset: -2px; }
.lg.bl { height: 3px; background: var(--muted); }
.lg.prog { background: linear-gradient(90deg, rgba(0, 0, 0, .45) 50%, var(--accent) 50%); }
.lg.line { width: 0; height: 14px; border-radius: 0; }
.lg.line.today { border-left: 2px solid var(--accent); }
.lg.line.soz { border-left: 2px dashed var(--bad); }
.lg.line.hedef { border-left: 2px dashed var(--ok); }
/* Ortak araç çubuğu (.arac): gruplar arası ayraç, aynı yükseklikte kutu ve düğmeler, açılıp kapanan süzgeç düğmeleri (.arac-tgl) */
.arac { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.arac-grup { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.arac-grup + .arac-grup { padding-left: 14px; border-left: 1px solid var(--line); }
.arac-bosluk { flex: 1; }
.arac-bosluk + .arac-grup { padding-left: 0; border-left: 0; }
.arac-et { font-size: var(--fs-sm); color: var(--muted); }
.arac-alan { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-sm); color: var(--muted); white-space: nowrap; }
.arac :is(select, input[type=search], input[type=date], .btn, .arac-tgl) { height: 30px; font-size: var(--fs-sm); }
.arac :is(select, input[type=search], input[type=date]) { padding-top: 0; padding-bottom: 0; color: var(--text); }
.arac .btn { display: inline-flex; align-items: center; gap: 6px; padding: 0 12px; }
.arac .btn svg { margin: 0; }
.arac .seg .btn { padding: 0 10px; }
.arac .end-gor { height: 30px; }
.arac .end-gor button { padding: 3px 12px; }
.arac-tgl { display: inline-flex; align-items: center; gap: 6px; padding: 0 10px; border: 1px solid var(--line-strong); border-radius: var(--r-sm); background: var(--panel);
  cursor: pointer; white-space: nowrap; user-select: none; }
.arac-tgl:hover { background: var(--panel-2); }
.arac-tgl:has(input:checked) { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); font-weight: 600; }
.arac-tgl input { margin: 0; accent-color: var(--accent); }
.arac-grup > label:not(.arac-tgl):not(.arac-alan) { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-sm); }
.arac-grup > a { white-space: nowrap; }
/* Gantt (plan.js renderGantt): üstte araç çubuğu, altta açıklama şeridi */
.g-arac { flex-direction: column; align-items: stretch; gap: var(--sp-2); }
.g-arac .legend { gap: 6px 16px; padding: 6px 10px; background: var(--panel-2); border-radius: var(--r-sm); }
.g-arac .lg-k { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.g-arac .lg { margin-right: 0; flex: none; }
.g-arac .lg.bar { width: 22px; min-width: 0; }
.g-arac .lg.prog { width: 28px; }
.g-arac .lg.bl { width: 22px; }
.g-arac .lg-ayrac { align-self: stretch; width: 1px; background: var(--line-strong); }

/* Hakediş */
.hk-scroll { overflow-x: auto; }
table.hk-ya th, table.hk-ya td { white-space: nowrap; }
table.hk-ya .pl { font-size: var(--fs-2xs); color: var(--muted); min-height: 14px; }
table.hk-ya .cur { background: color-mix(in srgb, var(--accent) 9%, var(--panel)); }
table.hk-ya th a { color: inherit; }
table.grid tr.hk-top > td { font-weight: 600; background: var(--panel-2); border-top: 1px solid var(--line-strong); }
table.hk tr.hk-bu > td:first-child { box-shadow: inset 3px 0 0 var(--accent); }

/* Sevkiyat pivot */

/* Takip */
table.tk td.off, table.tk th.off { background: var(--panel-2); }
table.tk .pl { font-size: var(--fs-2xs); color: var(--muted); min-height: 14px; }
table.tk .tk-x { display: inline-block; width: 18px; margin-right: 2px; }
table.tk tr.tk-akt > td { background: var(--panel-2); }
table.tk tr.tk-akt > td.off { background: color-mix(in srgb, var(--panel-2) 70%, var(--line)); }
table.tk th:not(:first-child), table.tk td:not(:first-child) { text-align: center; }
table.grid.tk th.tk-il, table.tk th:last-child, table.tk td:last-child { text-align: left; }
table.tk tr.tk-poz > td:first-child { padding-left: 30px; font-size: var(--fs-sm); max-width: 340px; }
/* Gün durumu düğmesi (çalışılmadı / iş durdu) ve gerekçeli giriş */
.tk-dur { display: block; margin: 2px 0 0 auto; padding: 0 5px; border: 1px solid transparent; border-radius: var(--r-xs); background: none; color: var(--muted); font: inherit; font-size: var(--fs-2xs); cursor: pointer; line-height: 16px; }
.tk-dur:hover { border-color: var(--line-strong); color: var(--text); }
.tk-dur.yok { background: var(--panel); border-color: var(--line-strong); color: var(--text); }
.tk-dur.durdu { background: var(--warn-soft); color: var(--warn); border-color: color-mix(in srgb, var(--warn) 40%, transparent); }
body.ro .tk-dur:not(.yok):not(.durdu) { display: none; }
body.ro .tk-dur { pointer-events: none; }
input.gerekce { border-color: var(--warn); box-shadow: inset 3px 0 0 var(--warn); }
.tk-arac { gap: 10px; margin-bottom: 8px; }
.tk-hafta { display: inline-flex; align-items: center; gap: 2px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); padding: 1px; }
.tk-hafta b { padding: 0 6px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tk-sag { display: inline-flex; align-items: center; gap: 10px; margin-left: auto; }
.tk-kum { display: inline-grid; grid-template-columns: auto auto; align-items: baseline; gap: 2px 10px; text-align: right; font-variant-numeric: tabular-nums; }
.tk-kum span { color: var(--muted); font-size: var(--fs-2xs); text-align: left; }
.tk-kum b { font-weight: 600; }
.tk-kum b.geri { color: var(--turuncu); }
.tk-kum b.pl { font-weight: 400; color: var(--muted); font-size: var(--fs-sm); }
.tk-ilr { --c: var(--muted); width: 140px; }
.tk-ilr.ok { --c: var(--ok); }
.tk-ilr.warn { --c: var(--turuncu); }
.tk-ilr.bad { --c: var(--bad); }
.tk-ilb { position: relative; height: 6px; border-radius: 3px; background: var(--panel-2); box-shadow: inset 0 0 0 1px var(--line); }
.tk-ilb .e { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 3px; background: var(--c); }
.tk-ilb .m { position: absolute; top: -3px; bottom: -3px; width: 2px; margin-left: -1px; border-radius: 1px; background: var(--text); opacity: .55; }
.tk-ilt { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; margin-top: 4px; font-size: var(--fs-xs); font-variant-numeric: tabular-nums; }
.tk-ilt b { color: var(--c); font-weight: 650; font-size: var(--fs-sm); }
.tk-ilr.bos .tk-ilt b { color: var(--muted); font-weight: 500; }
.tk-ilt span { color: var(--muted); }
table.tk tr.tk-akt .tk-ilb { height: 8px; }
.tk-oncesil { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 7px 12px; margin-bottom: 8px; border: 1px solid color-mix(in srgb, var(--warn) 40%, transparent); border-left: 4px solid var(--warn); border-radius: var(--radius); background: var(--warn-soft); font-size: var(--fs-sm); }
.tk-yardim { border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); margin-bottom: 10px; font-size: var(--fs-sm); }
.tk-yardim > summary { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; padding: 6px 12px; cursor: pointer; color: var(--muted); }
.tk-yardim > summary b { color: var(--text); font-weight: 600; }
.tk-yardim > summary b::before { content: '▸'; display: inline-block; width: 14px; color: var(--muted); transition: transform .15s; }
.tk-yardim[open] > summary b::before { transform: rotate(90deg); }
.tk-yardim > summary::-webkit-details-marker { display: none; }
.tk-yardim > summary { list-style: none; }
.tk-lej { display: inline-flex; flex-wrap: wrap; gap: 4px 14px; font-size: var(--fs-xs); }
.tk-lej > span { display: inline-flex; align-items: center; gap: 5px; }
.tk-ornek { display: inline-block; min-width: 20px; padding: 0 4px; border: 1px solid var(--line); border-radius: var(--r-xs); text-align: center; font-size: var(--fs-2xs); color: var(--muted); background: var(--panel-2); }
.tk-yardim ul { margin: 0; padding: 4px 12px 10px 32px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 4px 24px; color: var(--muted); }
.tk-yardim li b { color: var(--text); }
@media (prefers-reduced-motion: reduce) { .tk-yardim > summary b::before { transition: none; } }
.tk-kutu { position: relative; display: inline-block; }
input.tk-ok { border-color: var(--ok); color: var(--ok); font-weight: 600; }
input.tk-az { border-color: var(--bad); color: var(--bad); font-weight: 600; }
input.tk-gelecek { opacity: .45; background: var(--panel-2); cursor: not-allowed; }
input.tk-erken { opacity: .6; border-style: dashed; }
input.tk-erken:focus { opacity: 1; }
.tk-not { position: absolute; left: 100%; top: 50%; transform: translateY(-50%); margin-left: 2px; width: 18px; height: 18px; padding: 0; border: 1px solid transparent; border-radius: var(--r-xs); background: none; color: var(--muted); font: inherit; font-size: var(--fs-2xs); line-height: 16px; cursor: pointer; opacity: .55; }
.tk-not:hover, .tk-not:focus-visible { opacity: 1; border-color: var(--line-strong); color: var(--text); }
.tk-not.var { opacity: 1; color: var(--warn); }
body.ro .tk-not:not(.var) { display: none; }
body.ro .tk-not { pointer-events: none; }
.tg-in .tk-kutu { display: inline-flex; flex-direction: row-reverse; align-items: center; gap: var(--sp-1); }
.tg-in .tk-not { position: static; transform: none; margin: 0; width: 28px; height: 28px; font-size: var(--fs-md); line-height: 26px; border-color: var(--line-strong); opacity: 1; }
.tk-dm { display: grid; gap: var(--sp-2); }
.tk-dm label { display: block; }
.tk-h { padding: 0 3px; border: 1px dashed transparent; border-radius: var(--r-xs); background: none; color: inherit; font: inherit; font-weight: inherit; cursor: pointer; }
.tk-h:hover, .tk-h:focus-visible { border-color: currentColor; background: var(--accent-soft); }
body.ro .tk-h { pointer-events: none; }
.tk-gbas { display: inline-flex; align-items: center; gap: 6px; }
.tk-gd { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 18px; padding: 0; border: 1px solid var(--line-strong); border-radius: var(--r-xs); background: var(--panel); color: var(--text); font: inherit; font-weight: 700; line-height: 1; cursor: pointer; }
.tk-gd:hover, .tk-gd:focus-visible { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); }
body.ro .tk-gd { display: none; }
.tk-dm-liste { display: grid; gap: 4px; max-height: 240px; margin-top: 6px; padding: 6px 8px; border: 1px solid var(--line); border-radius: var(--r-sm); font-size: var(--fs-sm); }
.tk-dm-liste label { display: block; }
.seg { display: inline-flex; }
.seg .btn:first-child { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.seg .btn + .btn { border-top-left-radius: 0; border-bottom-left-radius: 0; margin-left: -1px; }
/* Hakediş dönemleri */
/* Hakediş sayfası: iki gruplu göstergeler, alt sekmeler, liste oranı, aylık tablo, çağrı kutusu */
.hk-kutular { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; }
.hk-kutular .stats-row { margin-bottom: 0; align-items: center; }
.hk-grup { font-size: var(--fs-xs); font-weight: 650; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; min-width: 72px; }
.hk-oran { display: flex; align-items: center; gap: 8px; justify-content: flex-end; }
.hk-oran .fn-trk { width: 80px; height: 6px; }
.hk-oran span { min-width: 36px; text-align: right; font-variant-numeric: tabular-nums; }
table.hk-aylik tr.hk-gelecek td { color: var(--muted); }
table.hk-aylik tfoot td { font-weight: 650; }
/* Hakediş sekmesinin tablolarında sayısal sütunlar: başlık ve değer ortalı */
table.hk-aylik th.num, table.hk-aylik td.num, table.hk-ya th.num, table.hk-ya td.num,
table.hk-liste th.num, table.hk-liste td.num, table.hk th.num, table.hk td.num,
.hk-girmeyen table th.num, .hk-girmeyen table td.num { text-align: center; }
table.hk-liste .hk-oran { justify-content: center; }
table.hk td.num input { text-align: center; }
.hk-cagri { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.hk-cagri .btn { margin-left: auto; }
.hk-detay { border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--sp-3); margin: var(--sp-3) 0; background: var(--panel); }
.hk-detay h3 { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; margin: 0 0 var(--sp-2); }
table.grid tr.sel > td { background: var(--accent-soft); }
/* Gün görünümü: telefonda tek elle giriş */
.tk-gun { max-width: 820px; }
.tg-ozet { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-bottom: 10px; font-size: var(--fs-sm); color: var(--muted); }
.tg-ozet b { color: var(--text); font-variant-numeric: tabular-nums; }
.tg-ozet .ok, .tg-ozet .ok b { color: var(--ok); }
.tg-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-lg); padding: var(--sp-3) var(--sp-3) var(--sp-1); margin-bottom: var(--sp-3); box-shadow: var(--shadow-sm); }
.tg-card.durdu { border-color: color-mix(in srgb, var(--warn) 50%, var(--line)); border-left: 4px solid var(--warn); }
.tg-card > header { display: flex; gap: var(--sp-3); align-items: flex-start; justify-content: space-between; padding-bottom: var(--sp-2); }
.tg-baslik { min-width: 0; }
.tg-baslik b { font-size: var(--fs-md); }
.tg-no { color: var(--muted); }
.tg-meta { margin-top: 2px; font-size: var(--fs-xs); color: var(--muted); }
.tg-meta .badge { margin-left: 2px; }
.tg-sag { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex-shrink: 0; }
.tg-sag .tk-ilr { width: 150px; }
body.ro .tg-gd { display: none; }
.tg-poz { display: flex; gap: var(--sp-3); align-items: center; justify-content: space-between; padding: 10px 0; border-top: 1px solid var(--line); font-size: var(--fs-sm); }
.tg-poz.bitti .tg-pad { color: var(--muted); }
.tg-ad { flex: 1; min-width: 0; display: grid; gap: 5px; }
.tg-pad { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.35; }
.tg-ilr { display: flex; align-items: center; gap: 10px; }
.tg-ilr .tk-ilb { flex: 0 1 160px; --c: var(--accent); }
.tg-poz.bitti .tg-ilr .tk-ilb { --c: var(--ok); }
.tg-top { font-size: var(--fs-xs); color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.tg-bilgi { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; font-size: var(--fs-xs); }
.tg-hd { display: inline-flex; align-items: center; gap: 2px; padding: 1px 6px 1px 8px; border-radius: var(--r-xl); background: var(--panel-2); border: 1px solid var(--line); color: var(--muted); }
.tg-hd .tk-h { color: var(--text); font-weight: 600; }
.tg-tamam { color: var(--ok); font-weight: 600; }
.tg-hiz { color: var(--muted); font-variant-numeric: tabular-nums; }
.tg-hiz b { color: var(--text); font-weight: 600; }
.tg-hiz b.tg-hiz-yuksek { color: var(--warn); }
.tg-mik { font-variant-numeric: tabular-nums; }
button.tk-asim { cursor: pointer; border: 0; font: inherit; font-size: var(--fs-xs); margin-left: 4px; }
.tk-asim-ozet { display: flex; flex-wrap: wrap; gap: 6px 18px; padding: 8px 10px; margin-bottom: 8px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--panel-2); font-variant-numeric: tabular-nums; }
.tk-asim-ozet .bad { color: var(--bad); }
.tg-in { display: flex; align-items: center; gap: var(--sp-1); flex-shrink: 0; }
.tg-in input { width: 104px; font-size: var(--fs-lg); padding: 6px 8px; text-align: right; }
.tg-in span { min-width: 28px; color: var(--muted); font-size: var(--fs-sm); }
.prog { position: relative; height: 8px; width: 110px; background: var(--panel-2); border-radius: var(--r-xs); overflow: hidden; margin-left: auto; margin-bottom: 2px; }
.prog i { position: absolute; left: 0; top: 0; height: 100%; }
.prog i.p { background: color-mix(in srgb, var(--s1) 35%, transparent); }
.prog i.e { background: var(--s2); height: 50%; top: 25%; }

/* S-eğrisi: iki seri, doğrulanmış palet (mavi / turuncu) */
:root { --s1: #2a78d6; --s2: #eb6834; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --s1: #3987e5; --s2: #d95926; } }
:root[data-theme="dark"] { --s1: #3987e5; --s2: #d95926; }
.sc-wrap { position: relative; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 10px 12px; }
.scurve { width: 100%; max-width: 1280px; height: auto; display: block; margin: 0 auto; }
.sc-legend { display: flex; gap: 16px; font-size: var(--fs-sm); color: var(--muted); margin-bottom: 4px; }
.sw { display: inline-block; width: 14px; height: 3px; border-radius: 2px; vertical-align: middle; margin-right: 5px; }
.sw.s1 { background: var(--s1); }
.sw.s2 { background: var(--s2); }
.sc-grid { stroke: var(--line); stroke-width: 1; }
.sc-base { stroke: var(--line-strong); stroke-width: 1; }
.sc-tick { stroke: var(--line-strong); }
.sc-ax { fill: var(--muted); font-size: var(--fs-xs); font-variant-numeric: tabular-nums; }
.sc-lab { fill: var(--text); font-size: var(--fs-sm); font-weight: 600; }
.sc-l { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.sc-l.s1 { stroke: var(--s1); }
.sc-l.s2 { stroke: var(--s2); }
.sc-today { stroke: var(--muted); stroke-dasharray: 3 3; }
.sc-cross { stroke: var(--muted); stroke-width: 1; }
.sc-dot { stroke: var(--panel); stroke-width: 2; }
.sc-dot.s1 { fill: var(--s1); }
.sc-dot.s2 { fill: var(--s2); }
.sc-hit { fill: transparent; cursor: crosshair; }
.sc-tip {
  position: absolute; background: var(--panel); border: 1px solid var(--line-strong); border-radius: var(--r-sm); box-shadow: var(--shadow);
  padding: 6px 10px; font-size: var(--fs-sm); pointer-events: none; min-width: 180px; font-variant-numeric: tabular-nums;
}
@media (max-width: 900px) {
  .ed-grid { grid-template-columns: 110px 1fr; }
  .two { grid-template-columns: 1fr; }
}

/* ================= Genel bakış ================= */
/* Gerçekleşen = mavi (vurgu), plan = gri (referans). Kırmızı/sarı/yeşil yalnız durum için. */
:root { --pn-act: #2a78d6; --pn-plan: #85837c; --pn-plan-f: #a8a69e; --pn-cur: #eef0f3; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --pn-act: #3987e5; --pn-plan: #8f8d86; --pn-plan-f: #6b6a64; --pn-cur: #232833; } }
:root[data-theme="dark"] { --pn-act: #3987e5; --pn-plan: #8f8d86; --pn-plan-f: #6b6a64; --pn-cur: #232833; }
.pn { max-width: 2200px; margin: 0 auto; }
.pn-title { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.pn-scope { color: var(--accent); font-weight: 600; }
.pn-all { font-weight: 600; }
.pn-head { display: flex; align-items: flex-end; gap: 16px; margin-bottom: 10px; }
.pn-head h1 { font-size: var(--fs-h1); margin: 0; }
.pn-exit { margin-left: auto; }
.pn .mut { display: block; color: var(--muted); font-size: var(--fs-sm); }

/* Üst bant: ana durum bloğu + 4 kutu */
.pn-top { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 4fr); gap: 10px; margin-bottom: 10px; }
.pn-hero { display: flex; gap: 14px; align-items: center; border-radius: var(--radius); padding: 14px 18px; border: 1px solid var(--line); background: var(--panel); }
.pn-hero.ok { background: var(--ok-soft); border-color: color-mix(in srgb, var(--ok) 35%, transparent); }
.pn-hero.warn { background: var(--warn-soft); border-color: color-mix(in srgb, var(--warn) 35%, transparent); }
.pn-hero.bad { background: var(--bad-soft); border-color: color-mix(in srgb, var(--bad) 35%, transparent); }
.pn-hero-ic i { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; font-style: normal; font-size: 22px; font-weight: 700; color: var(--dolgu-yazi); background: var(--muted); }
.pn-hero.ok .pn-hero-ic i { background: var(--ok); }
.pn-hero.warn .pn-hero-ic i { background: var(--warn); }
.pn-hero.bad .pn-hero-ic i { background: var(--bad); }
.pn-hero-tx { min-width: 0; }
.pn-hero .lab { font-size: var(--fs-sm); font-weight: 700; letter-spacing: .08em; }
.pn-hero.ok .lab { color: var(--ok); }
.pn-hero.warn .lab { color: var(--warn); }
.pn-hero.bad .lab { color: var(--bad); }
.pn-hero .big { font-size: clamp(22px, 2vw, 30px); font-weight: 700; line-height: 1.15; margin: 2px 0 4px; }
.pn-hero .line { font-size: var(--fs-md); line-height: 1.45; }

.pn-st { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-sm); font-weight: 600; white-space: nowrap; color: var(--text); }
.pn-st i, .pn-dot-st i { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; font-style: normal; font-size: var(--fs-xs); color: var(--dolgu-yazi); background: var(--muted); }
.pn-st.ok i, .pn-dot-st.ok i { background: var(--ok); }
.pn-st.warn i, .pn-dot-st.warn i { background: var(--warn); }
.pn-st.bad i, .pn-dot-st.bad i { background: var(--bad); }
.pn-dot-st.na i { background: var(--line-strong); color: var(--text); }
.pn-st.sm i { width: 15px; height: 15px; font-size: 9px; }
.pn-st.ok { color: var(--ok); }
.pn-st.warn { color: var(--warn); }
.pn-st.bad { color: var(--bad); }
.pn-tiles { display: grid; grid-template-columns: repeat(var(--pn-nt, 4), minmax(0, 1fr)); gap: 10px; }
.pn-top.one { grid-template-columns: 1fr; }
.pn-tile { background: var(--panel); border: 1px solid var(--line); border-top: 3px solid var(--line); border-radius: var(--radius); padding: 10px 14px; min-width: 0; }
.pn-tile.st-ok { border-top-color: var(--ok); }
.pn-tile.st-warn { border-top-color: var(--warn); }
.pn-tile.st-bad { border-top-color: var(--bad); }
.pn-tile.st-bad .v { color: var(--bad); }
.pn-tile.st-warn .v { color: var(--warn); }
.pn-tile .l { color: var(--muted); font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pn-tile .v { font-size: clamp(20px, 1.8vw, 28px); font-weight: 700; margin: 2px 0 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pn-tile .v.uzun { font-size: clamp(16px, 1.35vw, 22px); }
.pn-tile .s { font-size: var(--fs-sm); display: flex; flex-direction: column; gap: 3px; }
.pn-meter { position: relative; height: 10px; background: var(--panel-2); border-radius: var(--r-xs); }
.pn-meter i.f { position: absolute; left: 0; top: 0; height: 100%; background: var(--pn-act); border-radius: var(--r-xs); }
.pn-meter i.m { position: absolute; top: -3px; width: 3px; height: 16px; margin-left: -1.5px; background: var(--pn-plan); border-radius: 1px; box-shadow: 0 0 0 2px var(--panel); }
.pn-tile .pn-meter { margin-bottom: 3px; }
.sw.act { background: var(--pn-act); }
.sw.plan { background: var(--pn-plan); }
.sw.plan-f { background: var(--pn-plan-f); }
.sw.cur { background: var(--pn-cur); border: 1px solid var(--line-strong); }
.sw.gap { background: color-mix(in srgb, var(--bad) 22%, transparent); height: 10px; width: 14px; }
.pn-tick { display: inline-block; width: 3px; height: 12px; background: var(--pn-plan); vertical-align: middle; margin-right: 5px; border-radius: 1px; }

/* Kartlar üç bölümde; yükseklik içerikten (liste kutusu en çok --pn-fit-max), aynı satırdakiler en uzununa uzar */
.pn-bolum { margin-top: 14px; }
.pn-bas { font-size: var(--fs-sm); font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; margin: 0 0 6px 2px; }
.pn-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-flow: row dense; gap: 10px; }
.pn-card { position: relative; display: flex; flex-direction: column; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 12px 14px; min-width: 0; min-height: 0; break-inside: avoid; --pn-fit-max: 300px; }
.pn-card[data-card="al"] { --pn-fit-max: 360px; }
.pn-card.pn-wide { grid-column: span 2; }
.pn-bolum .pn-grid { grid-template-columns: repeat(var(--pn-c2, 2), minmax(0, 1fr)); }
@media screen and (min-width: 1400px) {
  body:not(.pn-present):not(.pn-print) .pn-bolum .pn-grid { grid-template-columns: repeat(var(--pn-c3, 3), minmax(0, 1fr)); }
  body:not(.pn-present):not(.pn-print) .pn-bolum .pn-card.pn-uzun { grid-row: span 2; }
}
.pn-card header { display: flex; align-items: center; gap: 8px; }
/* Kartı başlığından sürükleyerek taşıma (fare ve kalem) */
@media (hover: hover) {
  body:not(.pn-present):not(.pn-print) .pn-bolum .pn-card:not(.pn-max) > header { cursor: grab; user-select: none; }
}
.pn-bolum-bos { display: none; }
body.pn-surukle .pn-bolum-bos { display: block; }
body.pn-surukle, body.pn-surukle * { cursor: grabbing !important; user-select: none; }
.pn-grid.bos { min-height: 96px; align-items: center; justify-items: center; border: 1.5px dashed var(--line-strong); border-radius: var(--radius); color: var(--muted); font-size: var(--fs-sm); }
.pn-grid.bos::before { content: "Kartı buraya bırakın"; }
.pn-card.pn-yer { background: var(--panel-2); border: 1.5px dashed var(--accent); box-shadow: none; }
.pn-card.pn-yer > * { visibility: hidden; }
.pn-hayalet { position: fixed; z-index: 90; margin: 0; max-height: 260px; overflow: hidden; pointer-events: none; opacity: .94; box-shadow: var(--shadow); }
.pn-rz { flex: none; font-size: var(--fs-xs); font-weight: 700; padding: 1px 8px; border-radius: 999px; white-space: nowrap; background: var(--panel-2); color: var(--muted); }
.pn-rz.bad { background: var(--bad-soft); color: var(--bad); }
.pn-rz.warn { background: var(--warn-soft); color: var(--warn); }
.pn-card h2 + .pn-rz, .pn-rz + .pn-rz { margin-left: -2px; }
/* Sorunu olmayan kartlar: tek satırlık şerit */
.pn-temiz { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; margin-top: 14px; padding: 10px 14px; border: 1px dashed var(--line-strong); border-radius: var(--radius); background: var(--panel); }
.pn-tz .pn-st { font-weight: 500; color: var(--text); }
.pn-card { container-type: inline-size; }
.pn-card header { flex-wrap: wrap; row-gap: 4px; }
.pn-card h2 { font-size: var(--fs-lg); margin: 0; flex: 0 0 auto; max-width: calc(100% - 64px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Dar kartta ilerleme satırı: çubuk gizlenir, ad, yüzde ve bitiş kalır */
@container (max-width: 420px) {
  .pn-row { grid-template-columns: 20px minmax(0, 1fr) auto auto; }
  .pn-row .pn-meter { display: none; }
}
.pn-card header .pn-icon.pn-rm { margin-left: auto; }
.pn-icon { display: inline-grid; place-items: center; width: 28px; height: 28px; border: 1px solid transparent; border-radius: var(--r-sm); background: none;
  color: var(--muted); cursor: pointer; flex: none; }
.pn-icon:hover, .pn-icon:focus-visible { color: var(--text); background: var(--panel-2); border-color: var(--line); outline: none; }
.pn-sub { font-size: var(--fs-sm); color: var(--muted); margin: 2px 0 6px; }
.pn-legend { display: flex; gap: 16px; flex-wrap: wrap; font-size: var(--fs-sm); color: var(--muted); margin: 2px 0 4px; align-items: center; }
.sw.blk { height: 10px; width: 10px; border-radius: 2px; }
.pn-chart { position: relative; flex: 1; min-height: 260px; overflow: hidden; }
.pn-chart svg { display: block; }
.pn-fit { flex: 1; min-height: 0; max-height: var(--pn-fit-max); overflow: hidden; }
.pn-ig-ust { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; }
.pn-ig-ust .pn-seg { margin: 0; }
.pn-leg-sag { margin-left: auto; }
.pn-hz { max-width: 220px; overflow: hidden; text-overflow: ellipsis; }
.pn-more { font-size: var(--fs-sm); padding-top: 6px; }
.pn .pn-gl { stroke: var(--line); stroke-width: 1; }
.pn .pn-base { stroke: var(--line-strong); stroke-width: 1; }
.pn .pn-ax { fill: var(--muted); font-size: var(--fs-xs); font-variant-numeric: tabular-nums; }
.pn .pn-lab { font-size: var(--fs-sm); font-weight: 700; }
.pn .pn-lab.act { fill: var(--pn-act); }
.pn .pn-lab.plan { fill: var(--muted); font-weight: 600; }
.pn .pn-l { fill: none; stroke-linejoin: round; stroke-linecap: round; }
.pn .pn-l.act { stroke: var(--pn-act); stroke-width: 3; }
.pn .pn-l.plan { stroke: var(--pn-plan); stroke-width: 2; }
.pn .pn-gap.bad { fill: color-mix(in srgb, var(--bad) 22%, transparent); }
.pn .pn-gap.ok { fill: color-mix(in srgb, var(--ok) 20%, transparent); }
.pn .pn-end { fill: var(--pn-act); stroke: var(--panel); stroke-width: 2; }
.pn .pn-now { stroke: var(--muted); stroke-width: 1; }
.pn .pn-cross { stroke: var(--muted); stroke-width: 1; }
.pn .pn-dot { stroke: var(--panel); stroke-width: 2; }
.pn .pn-dot.plan { fill: var(--pn-plan); }
.pn .pn-dot.act { fill: var(--pn-act); }
.pn .pn-hit { fill: transparent; }
.pn .pn-bar.plan { fill: var(--pn-plan-f); }
.pn .pn-bar.act { fill: var(--pn-act); }
.pn .pn-curm { fill: var(--pn-cur); }
.pn-table { margin-top: 6px; font-size: var(--fs-sm); }
/* Kategori halka grafiği: sabit kategorik sıra (açık / koyu tema ayrı adımlar), Diğer ve Kategorisiz gri */
:root { --pn-k0: #2a78d6; --pn-k1: #eb6834; --pn-k2: #1baf7a; --pn-k3: #eda100; --pn-k4: #e87ba4; --pn-k5: #008300; --pn-k6: #4a3aa7; --pn-ko: #a8a69e; --pn-kk: #d3d1ca; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --pn-k0: #3987e5; --pn-k1: #d95926; --pn-k2: #199e70; --pn-k3: #c98500; --pn-k4: #d55181; --pn-k5: #008300; --pn-k6: #9085e9; --pn-ko: #6b6a64; --pn-kk: #4a4945; } }
:root[data-theme="dark"] { --pn-k0: #3987e5; --pn-k1: #d95926; --pn-k2: #199e70; --pn-k3: #c98500; --pn-k4: #d55181; --pn-k5: #008300; --pn-k6: #9085e9; --pn-ko: #6b6a64; --pn-kk: #4a4945; }
.pn-c0 { --c: var(--pn-k0); } .pn-c1 { --c: var(--pn-k1); } .pn-c2 { --c: var(--pn-k2); } .pn-c3 { --c: var(--pn-k3); }
.pn-c4 { --c: var(--pn-k4); } .pn-c5 { --c: var(--pn-k5); } .pn-c6 { --c: var(--pn-k6); } .pn-co { --c: var(--pn-ko); } .pn-ck { --c: var(--pn-kk); } .pn-ckar { --c: var(--ok); }
.pn-kr-alt { color: var(--muted); border-bottom: 0; }
.sw[class*="pn-c"] { background: var(--c); }
.pn-pie { flex: 1; min-height: 0; display: flex; gap: 14px; align-items: center; }
.pn-pie-svg { flex: none; width: min(210px, 42%); height: auto; max-height: 100%; }
.pn .pn-slice { fill: var(--c); stroke: var(--panel); stroke-width: 2; stroke-linejoin: round; }
.pn .pn-slice:hover { opacity: .85; }
.pn .pn-pie-t { fill: var(--text); font-size: 17px; font-weight: 700; font-variant-numeric: tabular-nums; }
.pn-pie-l { align-self: stretch; display: flex; flex-direction: column; justify-content: center; gap: 2px; }
.pn-pie-r { display: grid; grid-template-columns: auto minmax(0, 1fr) auto 52px; gap: 8px; align-items: center; font-size: var(--fs-sm); padding: 3px 0; border-bottom: 1px solid var(--line); }
.pn-pie-r .n { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pn-pie-r .v { color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.pn-pie-r .p { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.pn-pie-r .sw { margin: 0; }
.pn-en { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 8px 28px; }
.pn-en > div { min-width: 0; min-height: 0; display: flex; flex-direction: column; }
.pn-card:not(.pn-wide) .pn-en { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); }
.pn-pair.pn-en-top { flex-wrap: wrap; gap: 6px 20px; margin-bottom: 8px; }
.pn-pair.pn-en-top .v { font-size: 20px; font-variant-numeric: tabular-nums; }
.pn-en-bar { flex: none; display: flex; height: 12px; border-radius: var(--r-xs); overflow: hidden; background: var(--line); margin: 2px 0 6px; }
.pn-en-bar i { background: var(--c); min-width: 2px; }
.pn-en-bar i + i { border-left: 2px solid var(--panel); }
.pn-en-leg { flex: none; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: var(--fs-sm); color: var(--muted); margin-bottom: 10px; }
.pn-en-leg b { color: var(--text); font-variant-numeric: tabular-nums; }
.pn-seg { display: inline-flex; align-self: flex-start; border: 1px solid var(--line); border-radius: var(--r-sm); overflow: hidden; margin: 0 0 4px; }
.pn-seg button { border: 0; background: none; padding: 3px 10px; font: inherit; font-size: var(--fs-sm); color: var(--muted); cursor: pointer; }
.pn-seg button + button { border-left: 1px solid var(--line); }
.pn-seg button.on { background: var(--accent-soft); color: var(--accent); font-weight: 600; }
body.pn-print .pn-seg { display: none; }
.pn-table summary { cursor: pointer; color: var(--accent); }
.pn-table table { margin-top: 6px; }
.pn-row { display: grid; grid-template-columns: 20px minmax(0, 1.3fr) minmax(0, 1fr) 52px 92px; gap: 10px; align-items: center; padding: 8px 4px; border-top: 1px solid var(--line); font-size: var(--fs-md); }
.pn-row.click { cursor: pointer; border-radius: var(--r-xs); }
.pn-row.click:hover { background: var(--panel-2); }
.pn-row .n { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pn-row .v { text-align: right; font-weight: 700; font-size: var(--fs-lg); font-variant-numeric: tabular-nums; }
.pn-row .pn-meter { height: 12px; border-radius: var(--r-sm); }
.pn-row .b { text-align: right; font-size: var(--fs-sm); white-space: nowrap; font-variant-numeric: tabular-nums; }
.pn-late { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 7px 4px; border-top: 1px solid var(--line); font-size: var(--fs-md); }
.pn-late .n { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pn-late .d { text-align: right; white-space: nowrap; }
.pn-late .d b { font-size: 17px; }
.pn-tbl { font-size: var(--fs-sm); }
.pn-tbl td.tx { max-width: 0; width: 100%; overflow: hidden; text-overflow: ellipsis; }
.pn-tbl td, .pn-tbl th { white-space: nowrap; }
.pn-ok { padding: 18px 0; }
.pn-pair { display: flex; gap: 32px; margin: 6px 0 10px; }
.pn-pair .v { font-size: 34px; font-weight: 700; line-height: 1.1; }
.pn-pair .v.bad { color: var(--bad); }
.pn-pair .v.warn { color: var(--warn); }
.pn-pair .l { font-size: var(--fs-sm); color: var(--muted); display: flex; align-items: center; gap: 4px; }
/* Özelleştirme: kaldır düğmesi yalnız karta gelince belirgin */
.pn-card .pn-rm { opacity: 0; }
.pn-card:hover .pn-rm, .pn-card .pn-rm:focus-visible { opacity: 1; }
.pn-card.pn-max .pn-rm, body.pn-present .pn-rm { display: none; }
.pn-card:not(.pn-wide):not(.pn-max) .pn-table { display: none; }
.pn-none { grid-column: 1 / -1; }
.pn-al { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; align-items: start; padding: 8px 4px; border-top: 1px solid var(--line); font-size: var(--fs-md); line-height: 1.4; }
.pn-al .mut { margin-top: 2px; }
.pn-card.pn-wide[data-card="al"] .pn-fit { display: grid; grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); column-gap: 24px; align-content: start; }
.pn-card.pn-wide[data-card="al"] .pn-more { grid-column: 1 / -1; }
.pn-st.info i, .pn-dot-st.info i { background: var(--accent); }
.pn-c-bad { color: var(--bad); }
.pn-c-warn { color: var(--warn); }
.pn .mut-i { color: var(--muted); font-size: var(--fs-xs); }
.pn .pn-git { margin-left: var(--sp-1); white-space: nowrap; font-weight: 600; }
.pn .pn-bm-ad { white-space: normal; }
.pn-present .pn-git { display: none; }
.pn .pn-val { font-size: var(--fs-xs); fill: var(--text); }
.pn-dz-note { margin: -4px 0 10px; font-size: var(--fs-sm); }
.pn-dz-body { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; max-height: calc(100vh - 260px); overflow: auto; }
.pn-dz-sec h4 { margin: 0 0 6px; font-size: var(--fs-md); }
.pn-dz-cap { font-size: var(--fs-xs); color: var(--muted); text-transform: uppercase; letter-spacing: .04em; margin: 10px 0 4px; }
.pn-dz-row { display: flex; align-items: center; gap: 8px; padding: 6px 4px; border-top: 1px solid var(--line); }
.pn-dz-row.off .pn-dz-on b { color: var(--muted); font-weight: 500; }
.pn-dz-on { flex: 1; min-width: 0; display: flex; gap: 8px; align-items: flex-start; cursor: pointer; font-size: var(--fs-md); }
.pn-dz-on input { margin-top: 2px; }
.pn-dz-on .mut { display: block; color: var(--muted); font-size: var(--fs-xs); }
.pn-dz-w { font-size: var(--fs-sm); color: var(--muted); white-space: nowrap; display: inline-flex; align-items: center; gap: 4px; }
.pn-dz-mv { display: inline-flex; gap: 2px; }
.pn-dz-mv .btn { padding: 2px 6px; font-size: var(--fs-2xs); line-height: 1.4; }
@media (max-width: 760px) { .pn-dz-body { grid-template-columns: 1fr; } }
.pn-tip { position: fixed; z-index: 90; background: var(--panel); border: 1px solid var(--line-strong); border-radius: var(--r-sm); box-shadow: var(--shadow);
  padding: 8px 11px; font-size: var(--fs-sm); pointer-events: none; min-width: 190px; max-width: 340px; font-variant-numeric: tabular-nums; line-height: 1.6; }

/* Büyütülmüş kart: ekranı kaplar, grafik kutuyu doldurur, listeler tam görünür */
.pn-back { position: fixed; inset: 0; z-index: 70; background: rgba(16, 24, 40, .45); }
.pn-card.pn-max { position: fixed; inset: 24px; z-index: 80; height: auto !important; box-shadow: var(--shadow); padding: 16px 20px; }
.pn-card.pn-max h2 { font-size: 18px; }
.pn-card.pn-max .pn-chart { flex: 1; height: auto; }
.pn-card.pn-max .pn-fit { overflow: auto; max-height: none; }
.pn-card.pn-max .pn-tbl { font-size: var(--fs-md); }
.pn-card.pn-max .pn-tbl td.tx { white-space: normal; }

/* Sunum modu: uygulama çerçevesi gizli, tek ekran, kaydırma yok, yazılar bir kademe büyük */
:is(body.pn-present, body.pn-print) .topbar, :is(body.pn-present, body.pn-print) .ctxbar, :is(body.pn-present, body.pn-print) .pn-filters, :is(body.pn-present, body.pn-print) .pn-table, :is(body.pn-present, body.pn-print) .toast { display: none !important; }
:is(body.pn-present, body.pn-print) .main { padding: 14px 18px; overflow: hidden; }
:is(body.pn-present, body.pn-print) .pn { max-width: none; height: calc(100vh - 28px); display: flex; flex-direction: column; }
:is(body.pn-present, body.pn-print) .pn-head { margin-bottom: 8px; }
:is(body.pn-present, body.pn-print) .pn-head h1 { font-size: 24px; }
:is(body.pn-present, body.pn-print) .pn-head .crumbs { font-size: var(--fs-md); }
body.pn-present .pn-pbtns { margin-left: auto; display: flex; align-items: center; gap: 8px; opacity: .3; transition: opacity .15s; }
body.pn-present .pn-pbtns:hover, body.pn-present .pn-pbtns:focus-within { opacity: 1; }
body.pn-present .pn-exit { margin-left: 0; }
.pn-ref svg { vertical-align: -2px; margin-right: 4px; }
.pn-ref.busy svg { animation: pn-spin .8s linear infinite; }
@keyframes pn-spin { to { transform: rotate(360deg); } }
.pn-ref-t { font-size: var(--fs-sm); color: var(--muted); }
:is(body.pn-present, body.pn-print) .pn-top { margin-bottom: 8px; }
:is(body.pn-present, body.pn-print) .pn-hero .line, :is(body.pn-present, body.pn-print) .pn-tile .s { font-size: var(--fs-md); }
:is(body.pn-present, body.pn-print) .pn-tile .l { font-size: var(--fs-sm); }
:is(body.pn-present, body.pn-print) .pn .mut { font-size: var(--fs-md); }
:is(body.pn-present, body.pn-print) .pn-grid { flex: 1; min-height: 0; grid-template-columns: repeat(var(--pn-cols, 4), minmax(0, 1fr)); grid-template-rows: repeat(var(--pn-rows, 2), minmax(0, 1fr)); grid-auto-flow: dense; gap: 8px; }
:is(body.pn-present, body.pn-print) .pn-card { height: auto; padding: 10px 14px; --pn-fit-max: none; }
:is(body.pn-present, body.pn-print) .pn-chart { min-height: 0; }
:is(body.pn-present, body.pn-print) .pn-temiz { margin-top: 8px; padding: 6px 12px; }
:is(body.pn-present, body.pn-print) .pn-card h2 { font-size: var(--fs-xl); }
:is(body.pn-present, body.pn-print) .pn-card.pn-wide { grid-column: span 2; }
:is(body.pn-present, body.pn-print) .pn-card:not(.pn-max) .pn-sub { display: none; }
:is(body.pn-present, body.pn-print) .pn-legend { font-size: var(--fs-md); }
:is(body.pn-present, body.pn-print) .pn-chart { flex: 1; height: auto; }
:is(body.pn-present, body.pn-print) .pn .pn-ax { font-size: var(--fs-sm); }
:is(body.pn-present, body.pn-print) .pn .pn-lab { font-size: var(--fs-lg); }
:is(body.pn-present, body.pn-print) .pn-row, :is(body.pn-present, body.pn-print) .pn-late, :is(body.pn-present, body.pn-print) .pn-tbl { font-size: var(--fs-lg); }
@media screen and (max-height: 860px) {
  body.pn-present:not(.pn-print) .pn-head h1 { font-size: 20px; }
  body.pn-present:not(.pn-print) .pn-hero { padding: 10px 14px; }
}

@media screen and (max-width: 1200px) { body:not(.pn-print) .pn-top { grid-template-columns: 1fr; } }
@media screen and (max-width: 800px) { body:not(.pn-print) .pn-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } body:not(.pn-print) .pn-grid { grid-template-columns: 1fr; } body:not(.pn-print) .pn-card.pn-wide { grid-column: auto; } }
/* Yazdırma: sunum düzeni 1400×960 px tuvalde çizilir, A4 yatay (277×190 mm) tek sayfaya ölçeklenir */
body.pn-print .main { padding: 0; overflow: hidden; }
body.pn-print .pn { width: 1400px; height: 960px; max-width: none; }
body.pn-print .pn-pbtns, body.pn-print .pn-all, body.pn-print .pn-icon, body.pn-print .pn-back, body.pn-print .pn-tip { display: none !important; }
@media print {
  @page { size: A4 landscape; margin: 10mm; }
  /* Kâğıtta her zaman açık tema */
  :root:not([data-theme="__"]), :root[data-theme] {
    --bg: #ffffff; --panel: #ffffff; --panel-2: #f0f2f5; --line: #e2e5ea; --line-strong: #cfd4dc; --text: #1c2430; --muted: #667085;
    --accent: #1f5fbf; --accent-soft: #e6eefb; --ok: #1e7f4f; --ok-soft: #e3f4ea; --warn: #9a5b00; --warn-soft: #fdf1dc; --bad: #b42318; --bad-soft: #fde8e6;
    --pn-act: #2a78d6; --pn-plan: #85837c; --pn-plan-f: #a8a69e; --pn-cur: #eef0f3; color-scheme: light;
    --pn-k0: #2a78d6; --pn-k1: #eb6834; --pn-k2: #1baf7a; --pn-k3: #eda100; --pn-k4: #e87ba4; --pn-k5: #008300; --pn-k6: #4a3aa7; --pn-ko: #a8a69e; --pn-kk: #d3d1ca;
  }
  body.plan-mode .topbar, .ctxbar, .pn-filters, .pn-tip, .pn-table, .toast, .pn-icon, .pn-pbtns, .pn-all, .pn-back { display: none !important; }
  html, body { height: auto !important; overflow: hidden !important; background: #fff !important; }
  body.pn-print .layout, body.pn-print .main { display: block; height: 715px !important; overflow: hidden !important; padding: 0 !important; background: #fff !important; }
  body.pn-print .pn { transform: scale(.745); transform-origin: 0 0; }
  .pn { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .pn-card, .pn-tile { border-color: #ccc; break-inside: avoid; }

  /* Gantt ve S-eğrisi çıktısı: uygulama çerçevesi gizli, çok sayfa serbest, genişliğe sığar */
  body.pl-print { display: block; height: auto !important; overflow: visible !important; --s1: #2a78d6; --s2: #eb6834; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  html:has(body.pl-print) { height: auto !important; overflow: visible !important; }
  body.pl-print .topbar, body.pl-print .ctxbar, body.pl-print .sidebar, body.pl-print .filters > :not(.legend), body.pl-print .tk-daily, body.pl-print .no-print,
  body.pl-print .toast, body.pl-print .bulkbar, body.pl-print .page-head a, body.pl-print .sc-tip { display: none !important; }
  body.pl-print .layout, body.pl-print .main { display: block; height: auto !important; overflow: visible !important; padding: 0 !important; background: #fff !important; }
  body.pl-print .print-only { display: block; }
  body.pl-print .pl-ph { display: flex !important; justify-content: space-between; border-bottom: 2px solid #1c2430; padding-bottom: 4px; margin-bottom: 8px; font-size: var(--fs-md); }
  body.pl-print .gantt { overflow: visible; max-height: none; border: 0; }
  body.pl-print .g-head { transform: none !important; }
  body.pl-print .g-head { position: static; }
  body.pl-print .g-left { position: static; }
  body.pl-print .g-row { break-inside: avoid; }
  body.pl-print .g-bar { opacity: 1; }
  body.pl-print .g-uc, body.pl-print .g-mn, body.pl-print .g-tut { display: none; }
  body.pl-print .scurve { max-width: none; }
  body.pl-print .sc-wrap, body.pl-print table.grid { break-inside: avoid; }
  body.pl-print .page-head { margin-bottom: 8px; }
}

/* Giriş paneli ve oturum (sunucu modu) */
/* boot: oturum denetlenene kadar uygulama gizli (yenilemede giriş ekranından önce görünmesin) */
body.boot > :not(.auth):not(.toast), body.auth-on > :not(.auth):not(.toast) { visibility: hidden; }
.auth { position: fixed; inset: 0; z-index: 60; display: flex; align-items: center; justify-content: center; padding: 64px 16px 24px;
  background: radial-gradient(1000px 520px at 88% 108%, var(--accent-soft), transparent 62%), linear-gradient(160deg, color-mix(in srgb, var(--bg) 75%, var(--line-strong)), color-mix(in srgb, var(--bg) 40%, var(--line-strong))); overflow: auto; }
.auth-geri { position: absolute; top: 18px; left: 18px; display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px 10px 14px; border-radius: 999px; border: 1.5px solid var(--accent); background: var(--panel); color: var(--accent); font-size: var(--fs-lg); font-weight: 700; text-decoration: none; box-shadow: 0 4px 14px rgba(16,24,40,.12); transition: background .15s, color .15s, transform .15s; }
.auth-geri:hover { background: var(--accent); color: var(--panel); transform: translateX(-2px); }
.auth-geri:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.auth-geri svg { width: 18px; height: 18px; }
.auth-wrap { display: flex; width: min(1000px, 100%); margin: auto; border-radius: 24px; overflow: hidden; box-shadow: 0 24px 60px rgba(16,24,40,.16), 0 4px 14px rgba(16,24,40,.08); border: 1px solid var(--line); }
.auth-art { flex: 1; min-width: 0; min-height: 560px; background: linear-gradient(to bottom, rgba(0,29,61,0) 40%, rgba(0,29,61,.7) 72%, #001d3d 100%), url("giris.webp?v=1") center 30% / cover, #001d3d; padding: 44px; display: flex; flex-direction: column; justify-content: flex-end; }
.auth-art-ad { color: #fff; text-shadow: 0 1px 8px rgba(0,0,0,.5); font-size: 32px; line-height: 1.15; font-weight: 800; letter-spacing: -.02em; }
.auth-art-ad .logo-yazi { width: 151px; height: 23px; vertical-align: -1px; color: #fff; --logo-vurgu: #6ea3ff; filter: drop-shadow(0 1px 6px rgba(0,0,0,.5)); }
.auth-art-alt { color: rgba(255,255,255,.92); text-shadow: 0 1px 6px rgba(0,0,0,.5); font-size: var(--fs-xl); line-height: 1.5; margin-top: 10px; max-width: 400px; }
.auth-card { position: relative; flex: 1; min-width: 0; background: var(--panel); padding: 44px 48px 28px; display: flex; flex-direction: column; justify-content: center; gap: 14px; }
/* Görselle form arasındaki ok ucu */
.auth-art + .auth-card::before { content: ""; position: absolute; left: -15px; top: 50%; transform: translateY(-50%); border: 16px solid transparent; border-left: 0; border-right-color: var(--panel); }
@media (max-width: 760px) { .auth-art { display: none; } .auth-wrap { width: min(440px, 100%); } .auth-card { padding: 32px 24px 22px; } }
.auth-brand { display: flex; align-items: center; justify-content: center; gap: 12px; font-size: 28px; font-weight: 800; letter-spacing: -.02em; color: #001d3d; margin-bottom: 6px; }
.auth-brand .logo { width: 52px; height: 52px; flex: none; }
.auth-brand .logo-yazi { width: 157px; height: 24px; }
:root[data-theme="dark"] .auth-brand { color: #e6e9ee; }
:root[data-theme="dark"] .auth-brand .logo, :root[data-theme="dark"] .auth-brand .logo-yazi { color: #e6e9ee; --logo-vurgu: #6ea3ff; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .auth-brand { color: #e6e9ee; } :root:not([data-theme="light"]) .auth-brand .logo, :root:not([data-theme="light"]) .auth-brand .logo-yazi { color: #e6e9ee; --logo-vurgu: #6ea3ff; } }
.auth-bas h1 { margin: 0; font-size: 22px; font-weight: 700; letter-spacing: -.01em; color: var(--text); }
.auth-hello { font-size: var(--fs-lg); margin-top: 4px; }
.auth-sub { color: var(--muted); font-size: var(--fs-lg); margin: 4px 0 0; line-height: 1.5; }
.auth-field { display: flex; flex-direction: column; gap: 6px; font-size: var(--fs-md); font-weight: 600; color: var(--text); }
.auth-gir { position: relative; display: flex; }
.auth-ikon { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: var(--muted); pointer-events: none; }
.auth-gir input { flex: 1; min-width: 0; padding: 12px 13px 12px 42px; border: 1px solid var(--line-strong); border-radius: var(--r-lg); background: var(--panel); font-size: var(--fs-lg); font-weight: 400; color: var(--text); transition: border-color .15s, box-shadow .15s; }
.auth-gir input:focus { outline: none; border-color: #2f6fd6; box-shadow: 0 0 0 3px rgba(47,111,214,.18); }
.auth-gir input::placeholder { color: var(--muted); opacity: .6; }
.auth-gir:focus-within .auth-ikon { color: #2f6fd6; }
.auth-satir { display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin-top: -6px; font-size: var(--fs-sm); }
.auth-hatirla { display: inline-flex; align-items: center; gap: 7px; margin-right: auto; color: var(--text); cursor: pointer; }
.auth-hatirla input { width: 16px; height: 16px; margin: 0; accent-color: var(--accent); }
.auth-satir .auth-link { text-decoration: none; font-weight: 600; }
.auth-satir .auth-link:hover { text-decoration: underline; }
.auth-not { background: var(--accent-soft); border-radius: var(--r-sm); padding: 9px 11px; font-size: var(--fs-sm); color: var(--muted); line-height: 1.5; }
.auth-err { background: var(--bad-soft); color: var(--bad); border-radius: var(--r-sm); padding: 8px 10px; font-size: var(--fs-sm); }
.auth .auth-btn { background: #14275e; color: #fff; border: 0; border-radius: var(--r-lg); padding: 14px; font-size: var(--fs-xl); font-weight: 700; margin-top: 2px; box-shadow: 0 6px 16px rgba(20,39,94,.28); }
.auth .auth-btn:hover:not(:disabled) { background: #1b3270; color: #fff; }
.auth-btn:disabled { opacity: .85; cursor: progress; }
.auth-onay { display: flex; gap: 8px; align-items: flex-start; font-size: var(--fs-md); line-height: 1.5; cursor: pointer; }
.auth-onay input { margin-top: 3px; flex: none; width: 16px; height: 16px; }
.auth-sub a, .auth-onay a { color: var(--accent); }
.auth-foot { color: var(--muted); font-size: var(--fs-md); text-align: center; line-height: 1.7; }
.auth-link { background: none; border: 0; padding: 0; font: inherit; color: var(--accent); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.auth-link:hover { text-decoration-thickness: 2px; }
.auth-spin { width: 16px; height: 16px; border: 2px solid rgba(255,255,255,.35); border-top-color: #fff; border-radius: 50%; display: inline-block; vertical-align: -3px; margin-right: 8px; animation: auth-don .7s linear infinite; }
@keyframes auth-don { to { transform: rotate(360deg); } }
.auth-pw input { padding-right: 46px; }
.auth-goz { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 38px; height: 38px; display: grid; place-items: center; background: none; border: 0; border-radius: var(--r-sm); color: var(--muted); cursor: pointer; }
.auth-goz:hover { color: var(--text); background: var(--line); }
.auth-goz svg { width: 20px; height: 20px; }
.auth-goz .g-kapa, .auth-goz[aria-pressed="true"] .g-ac { display: none; }
.auth-goz[aria-pressed="true"] .g-kapa { display: block; }
.auth-caps { color: var(--warn); font-size: var(--fs-sm); margin-top: -8px; }
.auth-caps::before { content: "⇪ "; }
.auth-kilit { display: flex; align-items: center; justify-content: center; gap: 6px; color: var(--muted); font-size: var(--fs-sm); margin-top: -4px; }
.auth-kilit svg { width: 15px; height: 15px; color: var(--ok); }
.auth-iletisim { border: 1px dashed var(--line-strong); border-radius: var(--r-lg); padding: 11px 12px; text-align: center; font-size: var(--fs-sm); color: var(--muted); display: flex; flex-direction: column; align-items: center; gap: 3px; }
.auth-iletisim a { display: inline-flex; align-items: center; gap: 5px; color: var(--accent); font-weight: 700; font-size: var(--fs-md); text-decoration: none; }
.auth-iletisim a:hover { text-decoration: underline; text-underline-offset: 2px; }
.auth-iletisim svg { width: 14px; height: 14px; }
.auth-alt { display: flex; flex-direction: column; align-items: center; gap: 4px; color: var(--muted); font-size: var(--fs-xs); margin-top: 2px; }
.auth-alt a { color: var(--muted); text-decoration: none; }
.auth-alt a:hover { color: var(--text); text-decoration: underline; text-underline-offset: 2px; }

.user-btn { display: flex; align-items: center; gap: 8px; padding: 4px 12px 4px 4px; }
.topbar .user-btn { font-size: var(--fs-lg); }
.topbar .user-btn .avatar { width: 30px; height: 30px; font-size: var(--fs-sm); }
.topbar .sync { font-size: var(--fs-md); }
.user-btn .uname { max-width: 140px; overflow: hidden; text-overflow: ellipsis; }
.user-btn .avatar { width: 26px; height: 26px; border-radius: 50%; background: var(--accent-dolgu); color: #fff; display: inline-flex; align-items: center;
  justify-content: center; font-size: var(--fs-xs); font-weight: 700; }
#userDrop { right: 0; left: auto; min-width: 230px; }
#userDrop .menu-not { margin: 4px 6px 6px; color: var(--text); }
.menu-tema { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 10px 8px; border-bottom: 1px solid var(--line); margin-bottom: 4px; font-size: var(--fs-md); }
.tema-sec { display: flex; gap: 2px; padding: 2px; border: 1px solid var(--line-strong); border-radius: var(--r-sm); }
.menu .tema-sec button { width: auto; padding: 3px 8px; font-size: var(--fs-sm); text-align: center; color: inherit; }
.menu .tema-sec button[aria-pressed="true"] { background: var(--accent-dolgu); color: #fff; font-weight: 600; }
.menu-head { padding: 8px 10px 10px; border-bottom: 1px solid var(--line); margin-bottom: 4px; }
.menu-head .muted { font-size: var(--fs-sm); margin-bottom: 6px; }
.menu-head .menu-gorev { font-size: var(--fs-sm); color: var(--text); margin-bottom: 2px; }
/* Kişi adı (PozOrtak.kisi): üzerine gelince görev ve rol ipucu */
.kisi-ad[data-kisi] { cursor: help; }
.kisi-ad[data-kisi]:hover { text-decoration: underline dotted; text-underline-offset: 2px; }
.ynt-gorev { color: var(--text); }
table.users input[data-ynt-kgorev] { width: 100%; min-width: 130px; }

.sync { font-size: var(--fs-sm); color: var(--muted); white-space: nowrap; padding: 3px 8px; border-radius: var(--r-lg); }
.sync.saved { color: var(--ok); padding-inline: 2px; }
.sync.saved .sync-t { display: none; }
.sync.saved.taze .sync-t { display: inline; }
.sync.saving, .sync.dirty { color: var(--muted); }
.sync.offline, .sync.conflict, .sync.error { background: var(--warn-soft); color: var(--warn); }
.sync.ro { background: var(--panel-2); }

/* İzleyici: düzenleme düğmeleri gizli (sunucu da değişikliği reddeder). ro: açık projede izleyici, ro-genel: hesap izleyici (proje oluşturamaz) */
body.ro-genel [data-act="new-project"], body.no-create [data-act="new-project"], body.ro [data-act="upload"], body.ro [data-act="new-poz"], body.ro [data-act="new-cat"],
body.ro #importWrap, body.ro #newWrap, body.ro [data-act="tpl-save"], body.ro .undo-grp, body.ro .tree-row .tools { display: none !important; }
body.ro #main .teklif-in, body.ro #main select.durum { pointer-events: none; background: transparent; border-color: transparent; }
body.ro [data-pl="new-akt"], body.ro [data-pl="gen"], body.ro [data-pl-dup], body.ro [data-pl-del], body.ro [data-hk="yeni"] { display: none !important; }
body.ro .pl-sec, body.ro .pl-secbar { display: none !important; }
body.ro #main [data-pl-ted], body.ro #main [data-pl-pz], body.ro #main [data-pl-hzr] { pointer-events: none; background: transparent; border-color: transparent; }
.plan-kilit-bant { margin: 0 0 var(--sp-3); }
/* Poz kilidi (app.js pozKilitli): pozlar, kategoriler, analizler ve dosya yüklemesi kapalı; değişiklik yine de gelirse save() geri alır */
body.pkilit [data-act="upload"], body.pkilit [data-act="new-poz"], body.pkilit [data-act="new-cat"], body.pkilit #importWrap, body.pkilit #newWrap,
body.pkilit .tree-row .tools, body.pkilit .subbtn.alt-yap, body.pkilit [data-altekle], body.pkilit .an-sil-btn, body.pkilit .an tr.an-add,
body.pkilit [data-anyeni], body.pkilit .poz-tut { display: none !important; }
body.pkilit #main table.pozlar :is(input:not([type=checkbox]), select, textarea) { pointer-events: none; background: transparent; border-color: transparent; }
.poz-kilit-bant { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 12px; padding: 8px 12px; border: 1px solid var(--line);
  border-radius: var(--radius); background: var(--panel); box-shadow: inset 3px 0 0 var(--accent); font-size: var(--fs-sm); }
.poz-kilit-bant .btn { display: inline-flex; align-items: center; gap: 6px; }
.poz-kilit-bant .pk-etiket { flex: none; display: inline-flex; align-items: center; gap: 5px; padding: 2px 10px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); font-weight: 600; font-size: var(--fs-xs); }

.welcome { max-width: 560px; margin: 80px auto; text-align: center; }
.welcome h1 { font-size: 22px; margin: 0 0 8px; }
.welcome p { color: var(--muted); }
.welcome-btns { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-top: 18px; }

.modal.wide { width: min(920px, 100%); }
.grid.users input[type="text"] { width: 100%; min-width: 120px; }
.grid.users tr.pasif td { opacity: .55; }
.kaydir-x { overflow-x: auto; }
/* Yükleme önizlemesi (amp.js onizle) */
.oz-kontrol { display: flex; flex-wrap: wrap; gap: var(--sp-2); align-items: center; }
.oz-kontrol input[type="search"] { width: 240px; }
.oz-kontrol label { display: inline-flex; gap: 4px; align-items: center; margin: 0; }
.oz-ozet { display: flex; flex-wrap: wrap; gap: var(--sp-1); }
.oz-oneri { margin-top: var(--sp-2); padding: var(--sp-2) var(--sp-3); background: var(--panel-2); border-radius: var(--r-sm); display: grid; gap: var(--sp-1); }
.oz-govde { max-height: min(52vh, 560px); overflow: auto; border: 1px solid var(--line); border-radius: var(--r-sm); }
.oz-tablo thead th { position: sticky; top: 0; background: var(--panel); z-index: 1; }
.oz-tablo tr.oz-haric td:not(:first-child):not(:last-child) { opacity: .45; }
.oz-tablo tr.oz-haric .oz-ad { text-decoration: line-through; }
.oz-tablo tr.oz-sayfa td { background: var(--accent-soft); }
.oz-tablo tr.oz-toplam td { padding-top: 2px; padding-bottom: 2px; font-style: italic; }
.oz-tablo .oz-ok { padding: 0 6px; color: var(--muted); }
.oz-tablo .oz-ok.on { color: var(--accent); background: var(--accent-soft); }
/* Yükleme önizlemesi: başlık satırı ve sütun eşleme, dosyanın hücreleri (Excel gibi), veri denetimi */
.oz-sutunlar > summary { cursor: pointer; list-style-position: inside; }
.oz-es { padding: var(--sp-2) 0; border-top: 1px solid var(--line); display: grid; gap: var(--sp-1); }
.oz-es:first-of-type { border-top: 0; }
.oz-es-no { width: 64px; }
.oz-es-alanlar { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 4px var(--sp-2); }
.oz-es-alan { display: grid; gap: 2px; margin: 0; color: var(--muted); }
.oz-es-alan select { width: 100%; color: var(--text); }
.oz-ham-bas { display: flex; flex-wrap: wrap; gap: var(--sp-2); align-items: center; margin-top: var(--sp-2); }
.oz-ham-bas .btn { margin-left: auto; }
.oz-ham-lj { display: inline-flex; gap: 4px; align-items: center; }
.oz-ham-lj .lj { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-left: 6px; }
.lj.b, .oz-ham tr.h-b td { background: var(--accent-soft); }
.lj.p { background: var(--ok-soft); box-shadow: inset 3px 0 0 var(--ok); }
.lj.h { background: var(--panel-2); box-shadow: inset 3px 0 0 var(--muted); }
.lj.t, .oz-ham tr.h-t td { background: var(--warn-soft); }
.oz-ham-govde { max-height: min(46vh, 480px); overflow: auto; border: 1px solid var(--line); border-radius: var(--r-sm); margin-top: var(--sp-1); }
.oz-ham { border-collapse: separate; border-spacing: 0; font-size: var(--fs-sm); }
.oz-ham th, .oz-ham td { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 2px 6px; white-space: nowrap; max-width: 260px; overflow: hidden; text-overflow: ellipsis; }
.oz-ham thead th { position: sticky; top: 0; z-index: 2; background: var(--panel-2); font-weight: 600; text-align: left; vertical-align: top; }
.oz-ham thead th select { width: 100%; min-width: 92px; height: 26px; font-size: var(--fs-xs); }
.oz-ham thead th.es { background: var(--accent-soft); }
.oz-ham thead th.es select { border-color: var(--accent); font-weight: 600; }
.oz-ham tbody th { position: sticky; left: 0; z-index: 1; background: var(--panel-2); padding: 0; }
.oz-ham .oz-ham-kose { left: 0; z-index: 3; }
.oz-ham-no { border: 0; background: none; width: 100%; padding: 2px 8px; color: var(--muted); font: inherit; cursor: pointer; text-align: right; }
.oz-ham-no:hover { color: var(--accent); background: var(--accent-soft); }
.oz-ham td.es { background: color-mix(in srgb, var(--accent-soft) 45%, transparent); }
.oz-ham td.num { text-align: right; font-variant-numeric: tabular-nums; }
.oz-ham tr.h-b td { font-weight: 600; }
.oz-ham tr.h-p td:first-of-type { box-shadow: inset 3px 0 0 var(--ok); }
.oz-ham tr.h-h td { color: var(--muted); }
.oz-ham tr.h-h td:first-of-type { box-shadow: inset 3px 0 0 var(--muted); }
.oz-ham td.sorun { background: var(--bad-soft); color: var(--bad); }
.oz-tablo .oz-uyari { color: var(--warn); }
/* Yönetim ekranı (yonetim.js) */
.modal.wide.genis { width: min(1180px, 100%); }
.ynt-govde { max-height: min(62vh, 640px); }
.ynt-form { display: grid; grid-template-columns: 150px 1fr; gap: var(--sp-2) var(--sp-3); align-items: center; margin-bottom: var(--sp-2); }
.ynt-form label { margin: 0; justify-self: start; }
.ynt-form input[type="checkbox"] { width: auto; margin: 0; }
.ynt-form label.nowrap, .ynt-sekmeler label { margin-right: var(--sp-3); display: inline-flex; gap: 4px; align-items: center; }
.ynt-proje { border: 1px solid var(--line); border-radius: var(--radius); margin-bottom: var(--sp-2); background: var(--panel); }
.ynt-proje > summary { cursor: pointer; padding: var(--sp-2) var(--sp-3); }
.ynt-proje-ic { padding: 0 var(--sp-3) var(--sp-3); }
.ynt-not { margin-bottom: var(--sp-1); }
@media (max-width: 640px) { .ynt-form { grid-template-columns: 1fr; } }
.callout.ok-box { background: var(--ok-soft); }
.callout code.pw { font: 600 15px ui-monospace, "Cascadia Mono", Consolas, monospace; background: var(--panel); padding: 2px 8px; border-radius: var(--r-xs); margin: 0 4px; user-select: all; }

/* Şablonlar */
.tpl-parts { display: flex; flex-direction: column; gap: 8px; margin: 8px 0; }
.tpl-parts label { display: flex; gap: 8px; align-items: flex-start; font-size: var(--fs-md); cursor: pointer; }
.tpl-parts input { margin-top: 3px; }
.tpl-parts .hint { display: block; }
.tpl-report { margin: 6px 0 8px; padding-left: 18px; font-size: var(--fs-md); }
.tpl-report li { margin: 2px 0; }

/* Plan sayfalarının göstergeleri ekranda bağlam şeridinde; sayfadaki kopya yalnız çıktıda */
.page-head .stats.pl-stats { display: none; }
@media print { body.pl-print .page-head .stats.pl-stats { display: flex; } }

/* Kullanım rehberi (rehber.js) */
.btn.icon.rh-btn svg { display: block; }
/* Sunucu modunda rehber kullanıcı menüsündedir; "?" yalnız kullanıcı menüsü olmayan sunucusuz modda */
.rh-nabiz { animation: rhNabiz 1.6s ease-out 6; }
@keyframes rhNabiz { 0% { box-shadow: 0 0 0 0 rgba(90, 162, 255, .7); } 100% { box-shadow: 0 0 0 12px rgba(90, 162, 255, 0); } }
.rh { position: fixed; inset: 0; z-index: 200; }
.rh-perde { position: absolute; inset: 0; background: rgba(15, 20, 30, .5); }
.rh-delik { position: absolute; border-radius: var(--radius); box-shadow: 0 0 0 3px var(--accent) inset, 0 0 0 4px rgba(255, 255, 255, .5);
  transition: left .2s, top .2s, width .2s, height .2s; }
.rh-kutu { position: absolute; width: min(380px, calc(100vw - 32px)); max-height: calc(100vh - 32px); overflow: auto;
  background: var(--panel); color: var(--text); border: 1px solid var(--line-strong); border-radius: var(--r-xl);
  box-shadow: var(--shadow); padding: 16px 18px 14px; }
.rh-kutu.rh-orta { left: 50% !important; top: 50% !important; transform: translate(-50%, -50%); }
.rh-kutu.rh-genis { width: min(560px, calc(100vw - 32px)); }
.rh-kutu h3 { margin: 0 24px 6px 0; font-size: var(--fs-xl); }
.rh-kutu p { margin: 0 0 10px; }
.rh-x { position: absolute; top: 8px; right: 8px; width: 28px; height: 28px; border: 0; border-radius: var(--r-sm); background: transparent; color: var(--muted); cursor: pointer; }
.rh-x:hover { background: var(--panel-2); color: var(--text); }
.rh-ust { color: var(--accent); font-size: var(--fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 4px; }
.rh-metin { line-height: 1.55; }
.rh-metin ol { margin: 4px 0 0; padding-left: 20px; }
.rh-metin li + li { margin-top: 4px; }
.rh-not { margin-top: 10px !important; padding: 6px 10px; border-radius: var(--r-sm); background: var(--warn-soft); font-size: var(--fs-sm); }
.rh-ilerleme { height: 3px; background: var(--line); border-radius: 2px; margin: 14px 0 12px; overflow: hidden; }
.rh-ilerleme i { display: block; height: 100%; background: var(--accent); transition: width .2s; }
.rh-alt { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rh-giris .rh-alt { justify-content: space-between; margin-top: 14px; }
.rh-bolumler { display: grid; gap: 8px; }
.rh-bolum { display: flex; align-items: center; gap: 12px; text-align: left; padding: 10px 12px; cursor: pointer;
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-lg); }
.rh-bolum:hover, .rh-bolum:focus-visible { border-color: var(--accent); background: var(--accent-soft); outline: none; }
.rh-bolum > span:nth-child(2) { flex: 1; min-width: 0; }
.rh-bolum small { display: block; color: var(--muted); font-size: var(--fs-sm); }
.rh-no { width: 28px; height: 28px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--accent-dolgu); color: #fff; font-weight: 700; }
.rh-say { color: var(--muted); font-size: var(--fs-sm); white-space: nowrap; }
@media print { .rh { display: none !important; } }

/* ================= Ortak yardımcı sınıflar (satır içi style="" yerine) ================= */
.xs { font-size: var(--fs-xs); }
.sm { font-size: var(--fs-sm); }
.nowrap { white-space: nowrap; }
.ikon { width: 1.1em; height: 1.1em; vertical-align: -.2em; flex: none; display: inline-block; }
.ikon + .ikon-et, .badge .ikon, .btn .ikon, .sync .ikon, .nav-item .ikon, .tk-dur .ikon { margin-right: 4px; }
.mt-1 { margin-top: var(--sp-1); } .mt-2 { margin-top: var(--sp-2); } .mt-3 { margin-top: var(--sp-3); }
.mb-2 { margin-bottom: var(--sp-2); } .mb-3 { margin-bottom: var(--sp-3); }
.hint.muted { color: var(--muted); }
.w-cat { max-width: 240px; }
.scroll-box { max-height: 200px; overflow: auto; font-size: var(--fs-sm); }
.scroll-panel { max-height: 60vh; overflow: auto; }
kbd { display: inline-block; min-width: 18px; padding: 0 5px; border: 1px solid var(--line-strong); border-bottom-width: 2px; border-radius: var(--r-xs);
  background: var(--panel-2); color: var(--muted); font: 600 var(--fs-2xs)/16px var(--font); text-align: center; }

/* Klavyeyle gezinirken odak her zaman görünsün */
.btn:focus-visible, .tab:focus-visible, .mode:focus-visible, .nav-item:focus-visible, .menu button:focus-visible, .sug:focus-visible, .exp:focus-visible {
  outline: none; box-shadow: var(--focus-ring); }
input:focus-visible, select:focus-visible, textarea:focus-visible { box-shadow: var(--focus-ring); }
.grid tr.item.flash td { animation: satir-flash 1.6s ease-out; }
@keyframes satir-flash { 0%, 30% { background: var(--accent-soft); } 100% { background: transparent; } }

/* ================= Komut paleti (komut.js) ================= */
/* Claude'a sor (üst çubuk; yalnız bağlı uygulamaları açık hesapta) ve penceresi */
.cl-btn { display: inline-flex; align-items: center; gap: 6px; }
.cl-btn[hidden] { display: none; }
.cl-hazir { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
#clSoru { width: 100%; resize: vertical; margin-top: 4px; }
/* Üst çubuğun sağı: çerçevesiz simge düğmeler, adları ipucunda */
.topbar .actions { gap: 4px; }
.topbar .actions .btn { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; padding: 0; background: transparent; border-color: transparent; color: var(--text); }
.topbar .actions .btn:hover:not(:disabled) { background: var(--panel-2); }
.topbar .actions .btn:disabled { color: var(--muted); opacity: .55; }
.topbar .actions .bg-btn[hidden], .topbar .actions .cl-btn[hidden] { display: none; }
.topbar .actions .user-btn { display: flex; width: auto; height: auto; padding: 4px 12px 4px 4px; background: var(--panel); border-color: var(--line); }
.topbar .actions .undo-grp { margin-right: 4px; }
.kp-back { position: fixed; inset: 0; z-index: 60; background: rgba(15, 20, 30, .35); display: flex; justify-content: center; align-items: flex-start; padding: 12vh 16px 16px; }
.kp { width: min(640px, 100%); background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-xl); box-shadow: var(--shadow); overflow: hidden; display: flex; flex-direction: column; max-height: 70vh; }
.kp-in { border: 0 !important; border-bottom: 1px solid var(--line) !important; border-radius: 0 !important; padding: 14px 16px !important; font-size: var(--fs-lg); outline: none !important; box-shadow: none !important; }
.kp-list { overflow: auto; padding: var(--sp-1); }
.kp-grup { padding: 8px 10px 4px; color: var(--muted); font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .04em; }
.kp-row { display: flex; align-items: baseline; gap: 10px; padding: 7px 10px; border-radius: var(--r-sm); cursor: pointer; }
.kp-row.on, .kp-row:hover { background: var(--accent-soft); }
.kp-row.on .kp-ad { color: var(--accent); }
.kp-ad { font-weight: 600; white-space: nowrap; }
.kp-alt { color: var(--muted); font-size: var(--fs-sm); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.kp-bos { padding: 24px; text-align: center; color: var(--muted); }
.kp-foot { display: flex; gap: 14px; padding: 7px 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: var(--fs-xs); }
.kisayol td { padding: 6px 8px; }

/* ================= Değişiklik geçmişi (gecmis.js) ================= */
.gc-kume { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 10px 12px; margin-bottom: var(--sp-2); }
.gc-kume.bekliyor { border-style: dashed; }
.gc-bas { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.gc-zaman { font-weight: 600; font-variant-numeric: tabular-nums; }
.gc-kim { color: var(--accent); font-weight: 600; }
.gc-ozet { font-size: var(--fs-sm); margin-left: auto; }
.gc-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 3px; }
.gc-list li { font-size: var(--fs-sm); line-height: 1.5; }
.gc-t { min-width: 70px; text-align: center; margin-right: 4px; }
.gc-poz { background: var(--accent-soft); color: var(--accent); }
.gc-analiz, .gc-kategori { background: var(--sub-soft); color: var(--sub); }
.gc-aktivite, .gc-takip { background: var(--ok-soft); color: var(--ok); }
.gc-tedarik, .gc-plan, .gc-yapi { background: var(--warn-soft); color: var(--warn); }
.gc-alan { color: var(--muted); }
.gc-e { text-decoration: line-through; color: var(--muted); }
.gc-y { font-weight: 600; }
.gc-op { font-size: var(--fs-xs); font-weight: 600; color: var(--muted); }
.gc-op.ekle { color: var(--ok); } .gc-op.sil { color: var(--bad); }
.gc-devam { text-align: center; margin: var(--sp-3) 0; }
/* Geçmişten seçip geri alma */
.gc-gun { display: inline-flex; gap: 4px; align-items: center; flex-wrap: wrap; }
.gc-sec { margin: 0 6px 0 0; vertical-align: middle; }
/* Yedekler (auth.js backupsModal): proje süzgeci ve sayfa geçişi */
.yd-arac { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin: 10px 0 8px; }
.yd-arac select { max-width: 420px; min-width: 0; }
.yd-arac.yd-alt { margin: 8px 0 0; }
.yd-tablo { max-height: 46vh; overflow: auto; }
/* Sistem yönetimi sayfasında (pencere değil) genel kaydırma yok: tablo kalan yüksekliğe sığar, kendi içinde kayar, sayfa geçişi altta görünür kalır */
.ynt-s-govde:has(.ynt-gom .yd-tablo) { overflow: hidden; display: flex; flex-direction: column; }
.ynt-s-govde:has(.ynt-gom .yd-tablo) > .ynt-s-ic { flex: 1; min-height: 0; width: 100%; box-sizing: border-box; display: flex; flex-direction: column; padding-bottom: var(--sp-4); }
.ynt-s-ic > .ynt-govde:has(> .ynt-gom .yd-tablo), .ynt-s-ic .ynt-govde > .ynt-gom:has(> .yd-tablo) { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.ynt-s-ic .ynt-gom:has(> .yd-tablo) > * { flex: none; }
.ynt-s-ic .ynt-gom > .yd-tablo { flex: 0 1 auto; min-height: 160px; max-height: none; }
.yd-sayfa { display: flex; align-items: center; gap: 6px; }
.yd-sayfa .btn[disabled] { opacity: .45; cursor: default; }
.gc-kume-sec { display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-xs); color: var(--muted); cursor: pointer; }
.gc-secim-bar { display: none; position: sticky; top: 0; z-index: 3; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 12px; margin-bottom: var(--sp-2);
  background: var(--accent-soft); border: 1px solid var(--line); border-radius: var(--radius); }
.gc-secim-bar.acik { display: flex; }
.gc-uyari { color: var(--warn); }
tr.gc-cakisma td { background: var(--warn-soft); }

/* ================= Hata kayıtları (hata.js) ================= */
.err-msg { font-weight: 600; word-break: break-word; }
.err-stack { white-space: pre-wrap; word-break: break-all; font: var(--fs-xs)/1.4 var(--font-mono); background: var(--panel-2); padding: 8px; border-radius: var(--r-sm); max-height: 220px; overflow: auto; margin: 4px 0; }
@media print { .kp-back, .kp-btn { display: none !important; } }

/* Model (IFC görüntüleyici) */
body.model-mode .main { padding: 10px 12px; overflow: hidden; display: flex; }
.mdl { flex: 1; display: flex; flex-direction: column; min-height: 0; min-width: 0; gap: 8px; }
.mdl-bar, .mdl-4d { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.mdl-bar select { max-width: 220px; }
.mdl-yuva small { color: inherit; opacity: .7; font-weight: 400; margin-left: 2px; }
/* Model araç çubuğu (model.js render): gruplar arası ayraç, araçlar tek parça düğme grubu */
.mdl-bar { gap: 6px 14px; padding: 2px 0; }
.mdl-grup { display: flex; align-items: center; gap: 6px; }
.mdl-grup + .mdl-grup { padding-left: 14px; border-left: 1px solid var(--line); }
.mdl-bar .mdl-arac { margin-left: auto; gap: 0; }
.mdl-arac .btn { border-radius: 0; margin-left: -1px; display: inline-flex; align-items: center; gap: 5px; }
.mdl-arac .btn:first-child { border-radius: var(--r-sm) 0 0 var(--r-sm); margin-left: 0; }
.mdl-arac .btn:last-child { border-radius: 0 var(--r-sm) var(--r-sm) 0; }
.mdl-arac .btn.on { position: relative; z-index: 1; }
.mdl-arac .ik { font-size: 13px; line-height: 1; }
.mdl-bar .menu { left: 0; right: auto; }
.mdl-dosya { display: inline-flex; align-items: center; gap: 6px; max-width: 280px; }
.mdl-dosya-ad { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mdl-dosya small { color: var(--muted); font-weight: 400; white-space: nowrap; }
.mdl-menu-not { padding: 6px 10px; font-size: var(--fs-xs); color: var(--muted); border-top: 1px solid var(--line); margin-top: 4px; max-width: 280px; overflow-wrap: anywhere; }
.mdl-bar .mdl-renk { max-width: 160px; }
.mdl-say { display: inline-grid; place-items: center; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: var(--accent-dolgu); color: #fff; font-size: 10px; font-weight: 700; }
.mdl-suz { display: grid; gap: 8px; padding: 8px; min-width: 250px; }
.mdl-suz label { display: grid; gap: 3px; font-size: var(--fs-xs); color: var(--muted); }
.mdl-suz label select { max-width: none; width: 100%; color: var(--text); }
.mdl-suz .mdl-suz-k { display: flex; align-items: center; gap: 6px; font-size: var(--fs-sm); color: var(--text); }
.mdl-suz .btn { justify-self: start; }
@media (max-width: 1250px) { .mdl-arac .et { display: none; } .mdl-arac .ik { font-size: 15px; } }
.mdl-4d { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 6px 10px; }
.mdl-4d input[type=range] { flex: 1; min-width: 160px; accent-color: var(--accent); }
.mdl-date { font-variant-numeric: tabular-nums; min-width: 86px; text-align: center; }
.mdl-body { flex: 1; display: flex; gap: 10px; min-height: 0; }
.mdl-view { flex: 1; position: relative; min-width: 0; background: var(--panel-2); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.mdl-canvas { position: absolute; inset: 0; }
.mdl-canvas canvas { display: block; width: 100%; height: 100%; outline: none; }
/* View cube (model.js kupKur): sağ üstte, kameraya göre döner */
.mdl-kup { position: absolute; top: 10px; right: 10px; width: 92px; height: 108px; z-index: 2; user-select: none; touch-action: none; --kup-y: 32px; }
.mdl-kup-sahne { width: 92px; height: 92px; perspective: 400px; display: grid; place-items: center; cursor: grab; }
.mdl-kup-kutu { position: relative; width: 64px; height: 64px; transform-style: preserve-3d; }
.mdl-kup-yuz { position: absolute; inset: 0; display: grid; place-items: center; padding: 0; font: 600 11px/1 var(--font); color: var(--text); background: color-mix(in srgb, var(--panel) 88%, transparent); border: 1px solid color-mix(in srgb, var(--muted) 55%, transparent); border-radius: 3px; backface-visibility: hidden; cursor: pointer; }
.mdl-kup-yuz:hover { background: var(--accent-soft); color: var(--accent); border-color: var(--accent); }
.mdl-kup-ev { position: absolute; left: 0; bottom: 0; width: 22px; height: 22px; padding: 0; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--panel); color: var(--muted); font-size: 13px; line-height: 1; cursor: pointer; }
.mdl-kup-ev:hover { color: var(--accent); border-color: var(--accent); }
.mdl-kup:has(~ .mdl-walk:not([hidden])) { display: none; }
/* Kat planı + yürüme (model.js planPanel): solda plan, sağda model; ayırıcı sürüklenir */
.mdl-view.plan-bolu .mdl-canvas { left: var(--plan-w, 50%); }
.mdl-view.plan-bolu .mdl-tip { display: none; }
.mdl-plan { position: absolute; left: 0; top: 0; bottom: 0; width: var(--plan-w, 50%); display: flex; flex-direction: column; background: var(--panel); border-right: 1px solid var(--line); z-index: 1; }
.mdl-plan-bar { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.mdl-plan-bar select { max-width: 200px; }
.mdl-plan-bar input[type="number"] { width: 58px; }
.mdl-plan-bar .btn.on { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }
.mdl-plan-cv { flex: 1; min-height: 0; width: 100%; display: block; cursor: crosshair; touch-action: none; }
.mdl-plan-tip { position: absolute; left: 8px; bottom: 6px; font-size: var(--fs-xs); color: var(--muted); background: color-mix(in srgb, var(--panel) 85%, transparent); padding: 2px 8px; border-radius: var(--r-sm); pointer-events: none; }
.mdl-bolucu { position: absolute; top: 0; bottom: 0; left: var(--plan-w, 50%); width: 8px; margin-left: -4px; cursor: col-resize; z-index: 3; touch-action: none; }
.mdl-bolucu:hover, .mdl-bolucu:active { background: color-mix(in srgb, var(--accent) 30%, transparent); }
.mdl-tip { position: absolute; left: 10px; bottom: 8px; font-size: var(--fs-xs); color: var(--muted); background: color-mix(in srgb, var(--panel) 80%, transparent); padding: 2px 8px; border-radius: var(--r-sm); pointer-events: none; }
.mdl-gor { position: absolute; right: 10px; bottom: 8px; display: flex; align-items: center; gap: 8px; font-size: var(--fs-sm); background: color-mix(in srgb, var(--panel) 92%, transparent); border: 1px solid var(--line); padding: 4px 6px 4px 10px; border-radius: var(--r-sm); box-shadow: 0 2px 8px rgba(16, 24, 40, .1); z-index: 1; }
.mdl-gor ~ .mdl-tip { display: none; }
.mdl-menu { position: fixed; z-index: 1000; min-width: 210px; max-width: 300px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 6px 20px rgba(16, 24, 40, .18); padding: 4px; font-size: var(--fs-sm); }
.mdl-menu-h { padding: 4px 8px 6px; font-weight: 600; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mdl-menu button { display: flex; width: 100%; justify-content: space-between; align-items: center; gap: 12px; background: none; border: 0; padding: 6px 8px; border-radius: var(--r-sm); color: inherit; font: inherit; text-align: left; cursor: pointer; }
.mdl-menu button:hover, .mdl-menu button:focus-visible { background: var(--accent-soft); color: var(--accent); outline: none; }
.mdl-menu kbd { font-family: var(--font-mono); font-size: var(--fs-xs); color: var(--muted); border: 1px solid var(--line); border-radius: 4px; padding: 0 5px; }
.mdl-menu hr { border: 0; border-top: 1px solid var(--line); margin: 4px 2px; }
.mdl-legend { display: flex; gap: 12px; flex-wrap: wrap; font-size: var(--fs-sm); color: var(--muted); }
.mdl-legend i { display: inline-block; width: 11px; height: 11px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }
.mdl-legend b { color: var(--text); font-weight: 600; margin-left: 2px; }
.mdl-view > .mdl-legend { position: absolute; left: 10px; top: 8px; background: color-mix(in srgb, var(--panel) 88%, transparent); padding: 4px 10px; border-radius: var(--r-sm); }
.mdl-4d .mdl-legend.in { flex-basis: 100%; }
.mdl-msg { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 30px; gap: 6px; }
.mdl-msg h2 { margin: 0; font-size: var(--fs-h1); }
.mdl-msg p { max-width: 520px; margin: 4px 0; }
.mdl-drop { cursor: pointer; border: 2px dashed var(--line-strong); border-radius: var(--radius); margin: 14px; }
.mdl-drop:hover { border-color: var(--accent); background: var(--accent-soft); }
.mdl-boyut { max-width: 520px; margin: 8px 0; text-align: left; font-size: var(--fs-sm); }
.mdl-boyut table { width: 100%; border-collapse: collapse; margin-top: 6px; }
.mdl-boyut td { padding: 5px 8px; border-top: 1px solid var(--line); vertical-align: top; }
.mdl-boyut td:first-child { font-weight: 600; }
.mdl-bd { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; }
.mdl-bd.iyi { background: var(--ok); }
.mdl-bd.orta { background: var(--warn); }
.mdl-bd.kotu { background: var(--bad); }
.mdl-spin { width: 32px; height: 32px; border: 3px solid var(--line-strong); border-top-color: var(--accent); border-radius: 50%; animation: mdl-don 0.9s linear infinite; }
@keyframes mdl-don { to { transform: rotate(360deg); } }
.mdl-side { width: 360px; flex: none; overflow: auto; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 10px 12px 30px; }
.mdl-side h4 { margin: 14px 0 6px; font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.mdl-side-h { display: flex; align-items: center; gap: 8px; justify-content: space-between; margin-bottom: 8px; flex-wrap: wrap; }
.mdl-side-h b { word-break: break-word; }
.mdl-side-h input[type=search] { flex: 1; min-width: 150px; }
.mdl-grp { margin-bottom: 8px; }
.mdl-grp-h { font-weight: 600; font-size: var(--fs-sm); padding: 4px 2px; border-bottom: 1px solid var(--line); }
.mdl-row { display: flex; width: 100%; justify-content: space-between; gap: 8px; text-align: left; background: none; border: 0; padding: 5px 4px; border-radius: var(--r-sm); cursor: pointer; color: inherit; font: inherit; font-size: var(--fs-sm); }
.mdl-row:hover { background: var(--panel-2); }
.mdl-cnt { color: var(--muted); font-variant-numeric: tabular-nums; flex: none; }
.mdl-cnt.ok { color: var(--ok); font-weight: 600; }
.mdl-cnt.kismi { color: var(--warn); font-weight: 600; }
.mdl-kv { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.mdl-kv th { text-align: left; color: var(--muted); font-weight: 400; padding: 3px 8px 3px 0; vertical-align: top; width: 38%; }
.mdl-kv td { padding: 3px 0; word-break: break-word; }
.mdl-acts { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.mdl-links { list-style: none; margin: 0; padding: 0; }
.mdl-links li { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; padding: 6px 0; border-bottom: 1px solid var(--line); font-size: var(--fs-sm); }
.mdl-add { display: flex; gap: 6px; margin-top: 8px; }
.mdl-add select, .mdl-add input { flex: 1; min-width: 0; }
.mdl-props { margin-top: 14px; }
.mdl-props summary { cursor: pointer; font-weight: 600; font-size: var(--fs-sm); }
.mdl-pset { margin-top: 8px; }
.mdl-pset > b { font-size: var(--fs-sm); }
body.ro .mdl-add { display: none; }
@media (max-width: 900px) {
  body.model-mode .main { overflow: auto; display: block; }
  .mdl-body { flex-direction: column; }
  .mdl-view { min-height: 60vh; }
  .mdl-side { width: auto; }
}
.mdl-bar .btn.on, .mdl-seg .btn.on {background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }
.mdl-panels { position: absolute; right: 10px; top: 124px; display: flex; flex-direction: column; gap: 8px; max-height: calc(100% - 132px); overflow: auto; z-index: 1; }
.mdl-pnl { width: 270px; background: color-mix(in srgb, var(--panel) 94%, transparent); border: 1px solid var(--line); border-radius: var(--radius); padding: 8px 10px; box-shadow: 0 2px 8px rgba(16, 24, 40, .12); font-size: var(--fs-sm); }
.mdl-seg { display: flex; gap: 4px; flex-wrap: wrap; margin: 4px 0 6px; }
.mdl-kesit-h { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
.mdl-kr { display: grid; grid-template-columns: 70px 1fr 1fr; gap: 6px; align-items: center; padding: 3px 0; }
.mdl-kr input[type=range] { width: 100%; accent-color: var(--accent); }
.mdl-kr select { grid-column: 2 / 4; }
.mdl-walk { position: absolute; left: 50%; top: 10px; transform: translateX(-50%); background: rgba(15, 27, 61, .82); color: #fff; padding: 6px 14px; border-radius: var(--r-sm); font-size: var(--fs-sm); pointer-events: none; white-space: nowrap; z-index: 2; }
.mdl-canvas.hedef canvas { cursor: crosshair; }
.mdl-pnl p { margin: 6px 0 0; }
.mdl-pnl .mdl-kr b { font-weight: 600; font-variant-numeric: tabular-nums; }
.mdl-pnl .mdl-acts label { display: inline-flex; align-items: center; gap: 4px; }
/* Aktiviteler ve Gantt'tan modele geçiş */
.btn.mdl-git { padding: 2px 5px; line-height: 0; color: var(--accent); }
.btn.mdl-git svg { display: block; }
.g-mdl { display: flex; justify-content: center; }
.g-mdl .btn.mdl-git { padding: 1px 3px; }
@media print { .btn.mdl-git { visibility: hidden; } }

/* Firmalar (auth.js) */
.sekme-kutu { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.sekme-kutu .chk { display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-sm); white-space: nowrap; cursor: pointer; }
input.sinir { width: 64px; }
body.baska-firma .topbar { box-shadow: inset 0 -3px 0 var(--warn, #d97706); }

/* Finans sekmesi */
.fn-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--sp-3, 16px); }
.fn-bars { display: flex; flex-direction: column; gap: 6px; }
.fn-bar { display: grid; grid-template-columns: 1fr auto; gap: 4px 8px; align-items: center; font-size: var(--fs-sm); }
.fn-bar .fn-trk { grid-column: 1 / -1; }
.fn-bars .fn-bar + .fn-bar { margin-top: 4px; }
.fn-ozet { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: var(--sp-3, 16px); align-items: start; margin-top: 14px; }
.fn-ozet .fn-kart, .fn-yan .fn-kart:last-child { margin-bottom: 0; }
.fn-yan { display: flex; flex-direction: column; gap: var(--sp-3, 16px); }
.fn-kart > .h2 { margin: 0 0 10px; font-size: var(--fs-lg); }
.fn-ozet + .fn-kart, .fn-ozet ~ .fn-kart { margin-top: var(--sp-3, 16px); }
.fn-hs { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-top: 1px solid var(--line); }
.fn-kart > .h2 + .fn-hs { border-top: 0; }
.fn-hs-v { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.fn-hs-kar { margin-top: 6px; padding: 10px 12px; border: 0; border-radius: var(--radius); font-size: var(--fs-lg); }
.fn-hs-kar.arti { background: var(--ok-soft); }
.fn-hs-kar.eksi { background: var(--bad-soft); }
.fn-uyarilar { display: flex; flex-direction: column; gap: 4px; margin: 10px 0 0; }
.fn-uy { display: flex; gap: 8px; align-items: baseline; font-size: var(--fs-sm); padding: 6px 10px; border-radius: var(--radius); background: var(--accent-soft); }
.fn-uy.bad { background: var(--bad-soft); }
.fn-uy.warn { background: var(--warn-soft); }
.fn-uy.ok { background: var(--ok-soft); }
.fn-uy-i { font-weight: 700; width: 12px; text-align: center; }
.fn-uy.bad .fn-uy-i { color: var(--bad); }
.fn-uy.warn .fn-uy-i { color: var(--warn); }
.fn-uy.ok .fn-uy-i { color: var(--ok); }
@media (max-width: 1000px) { .fn-ozet { grid-template-columns: 1fr; } }
.fn-trk { background: var(--line); border-radius: var(--r-xs, 3px); height: 10px; overflow: hidden; }
.fn-trk i { display: block; height: 100%; background: var(--accent); }
.fn-v small { color: var(--muted); }
.fn-kart { border: 1px solid var(--line); border-radius: var(--radius); padding: 10px 12px; margin-bottom: 14px; background: var(--panel); }
.fn-kart-h { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 8px; }
.fn-od td { opacity: .6; }
.fn-gec td:first-child, .fn-gec td:nth-child(2) { color: var(--bad, #c0392b); font-weight: 600; }
/* Krediler: kart başlığı, özet kalemleri, ilerleme, taksit tablosu; kredi penceresi */
.fn-kr .fn-kart-h { align-items: flex-start; }
.fn-kr-ac { border: 0; background: none; cursor: pointer; color: var(--muted); font-size: var(--fs-md); padding: 0 2px; line-height: 1.4; }
.fn-kr-ac:hover { color: var(--text); }
.fn-kr-ad { min-width: 0; }
.fn-kr-ozet { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px 16px; padding: 8px 0; border-top: 1px solid var(--line); }
.fn-kr-k { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fn-kr-k .l { color: var(--muted); font-size: var(--fs-xs); }
.fn-kr-k .v { font-weight: 650; font-variant-numeric: tabular-nums; }
.fn-kr-k .v.ok { color: var(--ok); }
.fn-kr-ilr { display: grid; grid-template-columns: minmax(120px, 280px) auto; gap: 10px; align-items: center; margin-bottom: 8px; }
.fn-kr-ilr .fn-trk { height: 6px; }
.fn-kr-ilr .fn-trk i { background: var(--ok); }
.fn-kr-tablo { overflow-x: auto; }
.fn-kr-tablo td.nowrap input[type="date"] { width: 140px; }
.fn-kr-tablo tfoot td { font-weight: 650; }
.fn-kr-bol { font-weight: 650; font-size: var(--fs-sm); padding-top: 6px; border-top: 1px solid var(--line); }
.form .fn-kr-bol:first-child { border-top: 0; padding-top: 0; }
.fn-kr-sat { display: flex; gap: 8px; align-items: center; }
.form .fn-kr-sat .fn-kr-kisa, .form input.fn-kr-kisa { width: 90px; }
.fn-kr-on { background: var(--panel-2); border: 1px solid var(--line); border-radius: var(--radius); padding: 4px 12px; font-size: var(--fs-sm); }
.fn-kr-on .fn-hs { padding: 5px 0; }
.fn-kr-on .fn-hs:first-child { border-top: 0; }
/* Çekler: süzgeç, tablo, durum seçimi; çek penceresi */.fn-cek-arac { gap: 10px; }.fn-cek-tablo { overflow-x: auto; }.grid.fn-cek select.fn-cek-dur { width: auto; min-width: 130px; }.grid.fn-cek tfoot td { font-weight: 650; }.form [hidden] { display: none; }.form .fn-cek-chk { display: flex; gap: 8px; align-items: center; color: var(--text); }.form .fn-cek-chk input { width: auto; }
/* Nakit hareketleri: ay satırları, açıklama, pencerede yön/durum seçimi ve uyarı */
.grid.fn-har tr.fn-har-ay td { text-align: left; font-weight: 650; }
.grid.fn-har tr.fn-har-ay td.num { text-align: center; }
.grid.fn-har td.fn-har-ac { max-width: 320px; }
.fn-har-sec { display: flex; gap: 16px; flex-wrap: wrap; }
.form .fn-har-r { display: inline-flex; gap: 6px; align-items: center; color: var(--text); cursor: pointer; }
.form .fn-har-r input { width: auto; }
.fn-har-uy { background: var(--warn-soft); color: var(--warn); border-radius: var(--radius); padding: 6px 10px; font-size: var(--fs-sm); }
.form select.fn-har-tk { width: auto; }
.fn-cek-arac input[type="search"] { min-width: 220px; }
/* Kaynaklar: finansman açığı uyarısı, finansman yapısı çubuğu, sermayeyi koyanlar; pencerede tür seçimi */
.fn-kay-ih { align-items: center; flex-wrap: wrap; margin-bottom: 12px; }
.fn-kay-ih .btn { margin-left: auto; }
.fn-kay-bar { display: flex; height: 14px; border-radius: var(--r-xs, 3px); overflow: hidden; background: var(--line); }
.fn-kay-bar i { display: block; height: 100%; }
.fn-kay-lej { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 8px; font-size: var(--fs-sm); }
.fn-kay-lej > span { display: inline-flex; gap: 6px; align-items: center; }
.fn-kay-lej i { width: 10px; height: 10px; border-radius: 2px; display: inline-block; }
.fn-kay-kisi { margin-top: 12px; max-width: 520px; }
.fn-kay-tur { display: flex; flex-direction: column; gap: 6px; }
.form .fn-kay-tur .fn-har-r { align-items: flex-start; }
.form .fn-kay-tur .fn-har-r input { margin-top: 3px; }
tr.fn-bu td { background: var(--accent-soft); }

/* Sekme bilgisi (ⓘ) */
.rh-sekme { border-color: var(--accent); background: var(--accent-soft); margin-bottom: 8px; width: 100%; }
.bilgi h4 { margin: 12px 0 4px; font-size: var(--fs-md); }
.bilgi ul { margin: 0; padding-left: 20px; }
.bilgi li { margin-bottom: 4px; font-size: var(--fs-sm); }
/* İşe başlama hazırlığı (aktivite düzenleyici): adım × durum ızgarası, pozlar çip */
.hz { margin: 4px 0 8px; }
.hz-ust { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin-bottom: 8px; }
.hz-ust h4 { margin: 0; }
.hz-ipucu { flex: 1 1 260px; text-align: right; }
.hz-d { display: inline-flex; align-items: center; gap: 4px; padding: 1px 8px; border-radius: 999px; font-size: var(--fs-xs); font-weight: 600; white-space: nowrap; }
.hz-d.ok { background: var(--ok-soft); color: var(--ok); }
.hz-d.bad { background: var(--bad-soft); color: var(--bad); }
.hz-d.warn { background: var(--warn-soft); color: var(--warn); }
.hz-d.nt { background: var(--bg); color: var(--muted); }
.hz-grid { --hz-kol: minmax(170px, 1.3fr) repeat(4, minmax(110px, 1fr)) minmax(160px, 1.2fr); border: 1px solid var(--line); border-radius: var(--radius); overflow: visible; background: var(--panel); }
.hz-bas, .hz-sat { display: grid; grid-template-columns: var(--hz-kol); gap: 6px; padding: 8px 10px; align-items: start; }
.hz-bas { font-size: var(--fs-xs); font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: .03em; border-bottom: 1px solid var(--line); padding-top: 6px; padding-bottom: 6px; }
.hz-bas > span[class^="hz-bas-"] { text-align: center; }
.hz-bas > span[class^="hz-bas-"]::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; vertical-align: 0; }
.hz-bas-ok::before { background: var(--ok); }
.hz-bas-bad::before { background: var(--bad); }
.hz-bas-nt::before { background: var(--line-strong); }
.hz-bas-warn::before { background: var(--warn); }
.hz-sat + .hz-sat { border-top: 1px solid var(--line); }
.hz-sat.late { background: color-mix(in srgb, var(--bad-soft) 45%, transparent); }
.hz-adim { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-width: 0; padding-top: 4px; }
.hz-adim .muted { flex-basis: 100%; }
/* Durum hücresi: açık renkli zemin, boşken soluk */
.hz-h { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; min-height: 34px; padding: 4px; border-radius: var(--r-sm); border: 1px solid transparent; transition: background .12s, border-color .12s; }
.hz-h.hz-ok { background: color-mix(in srgb, var(--ok-soft) 70%, transparent); }
.hz-h.hz-bad { background: color-mix(in srgb, var(--bad-soft) 70%, transparent); }
.hz-h.hz-nt { background: var(--bg); }
.hz-h.hz-warn { background: color-mix(in srgb, var(--warn-soft) 55%, transparent); }
.hz-h:has(details[open]) { z-index: 31; }
.hz-h.uzerinde { border-color: var(--accent); border-style: dashed; }
.hz-cip { display: inline-flex; align-items: center; gap: 2px; padding: 2px 4px 2px 8px; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--panel); font: 600 var(--fs-xs)/1.4 var(--font); font-variant-numeric: tabular-nums; white-space: nowrap; cursor: grab; box-shadow: var(--shadow-sm); }
.hz-cip:not(:has(.hz-x)) { padding-right: 8px; }
.hz-cip.oto { border-style: dashed; box-shadow: none; background: color-mix(in srgb, var(--panel) 60%, transparent); }
.hz-cip.gec { border-color: var(--bad); color: var(--bad); }
.hz-cip.surukle { opacity: .4; }
.hz-cip.sec { border-color: var(--accent); border-style: solid; background: var(--accent-soft); color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.hz-grid:has(.hz-cip.sec) .hz-h[data-hz-hedef] { cursor: pointer; }
.hz-cip { user-select: none; }
/* Çipten gidilen poz satırı kısa süre vurgulanır */
@keyframes pzVurgu { 0%, 40% { background: var(--accent-soft); } 100% { background: transparent; } }
@keyframes pzVurguIlk { 0%, 40% { background: var(--accent-soft); box-shadow: inset 3px 0 0 var(--accent); } 100% { background: transparent; box-shadow: inset 3px 0 0 transparent; } }
tr.pz-vurgu > td { animation: pzVurgu 2s ease-out; }
tr.pz-vurgu > td:first-child { animation-name: pzVurguIlk; }
.hz-x { all: unset; display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; color: var(--muted); font-size: 13px; line-height: 1; cursor: pointer; }
.hz-x:hover { background: var(--bad-soft); color: var(--bad); }
.hz-x:focus-visible { box-shadow: var(--focus-ring); }
/* "+" menüsü */
.hz-ekle { position: relative; }
.hz-ekle > summary { list-style: none; display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; border: 1px dashed var(--line-strong); color: var(--muted); font-size: 15px; line-height: 1; cursor: pointer; user-select: none; }
.hz-ekle > summary::-webkit-details-marker { display: none; }
.hz-ekle > summary:hover, .hz-ekle[open] > summary { border-style: solid; border-color: var(--accent); color: var(--accent); background: var(--accent-soft); }
.hz-ekle > summary:focus-visible { box-shadow: var(--focus-ring); outline: none; }
.hz-pop { position: absolute; z-index: 30; top: calc(100% + 4px); left: 0; width: 300px; max-height: 260px; overflow: auto; padding: 4px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow); }
.hz-pop button { all: unset; box-sizing: border-box; display: flex; gap: 6px; width: 100%; padding: 6px 8px; border-radius: var(--r-sm); font-size: var(--fs-sm); cursor: pointer; }
.hz-pop button:hover, .hz-pop button:focus-visible { background: var(--accent-soft); }
.hz-pop .mono { flex: none; }
.hz-pop-ad { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); }
/* Pozsuz aktivite: hücrenin kendisi seçim düğmesi */
.hz-tek { all: unset; box-sizing: border-box; display: flex; justify-content: center; font-size: var(--fs-xs); font-weight: 600; cursor: pointer; }
.hz-tek:not(.sec) { opacity: .45; }
.hz-tek:hover { border-color: var(--line-strong); opacity: 1; }
.hz-tek:focus-visible { box-shadow: var(--focus-ring); }
.hz-tek.sec.hz-ok { color: var(--ok); } .hz-tek.sec.hz-bad { color: var(--bad); } .hz-tek.sec.hz-warn { color: var(--warn); } .hz-tek.sec.hz-nt { color: var(--muted); }
.hz-n { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.hz-n input { width: 100%; min-width: 0; box-sizing: border-box; }
/* Dar ekranda başlık satırı gizlenir: adım üstte, dört durum hücresi yan yana (etiketli), not altta */
@media (max-width: 1100px) {
  .hz-bas { display: none; }
  .hz-sat { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hz-adim { grid-column: 1 / -1; }
  .hz-n { grid-column: 1 / -1; }
  .hz-h::before { flex-basis: 100%; content: attr(data-l); font-size: var(--fs-xs); font-weight: 600; color: var(--muted); }
  .hz-tek { align-items: center; }
  .hz-n::before { content: attr(data-l); font-size: var(--fs-xs); font-weight: 600; color: var(--muted); }
  .hz-ipucu { text-align: left; }
}
/* Projeler ana ekranı (app.js anaCiz): girişten sonra, logo ve ⚙ › Projeler ile; açıkken proje şeritleri gizli. Tam genişlik:
   üstte araç şeridi (yapışık), altında kart ızgarası; kartta proje logosu (yoksa baş harfler) */
body.ana-acik .ctxbar, body.ana-acik .layout, body.ana-acik #ornekBant, body.ana-acik #kapaliBant, body.ana-acik .bulkbar,
body.ana-acik .topbar .modes, body.ana-acik .topbar .proj-wrap, body.ana-acik .topbar .ayar-wrap, body.ana-acik .topbar .undo-grp { display: none !important; }
/* Üst çubuk bu sayfada tek satır: logo | Projeler, arama, firma, sıralama … Örnek proje, + Yeni proje, Projeye dön | Ara, rehber, kullanıcı */
body.ana-acik .topbar { min-height: 64px; flex-wrap: nowrap; }
body.ana-acik .topbar > * { margin-block: 12px; }
.ana-tb { display: flex; align-items: center; gap: 10px 14px; flex: 1; min-width: 0; }
.ana-tb[hidden] { display: none; }
.ana-baslik { margin: 0; font-size: 18px; font-weight: 650; color: #fff; letter-spacing: -.01em; white-space: nowrap; }
.ana-arac { display: flex; align-items: center; gap: 8px; min-width: 0; }
.ana-arac input, .ana-arac select { height: 32px; color: var(--text); }
.ana-arac select option { color: #172033; background: #fff; }
.ana-arac input::placeholder { color: var(--muted); }
.ana-ara { flex: 1 1 280px; width: auto; min-width: 150px; }
.ana-arac select { flex: 0 0 auto; max-width: 180px; }
.ana-arac { flex: 1 1 560px; max-width: 600px; }
/* Projeler ekranı: araç şeridi sıkışmasın; kayıt durumu gizlenir */
body.ana-acik #syncState { display: none !important; }
@media (max-width: 1320px) { body.ana-acik .ana-baslik { display: none; } }
@media (max-width: 1240px) and (min-width: 761px) {
  body.ana-acik .topbar { flex-wrap: wrap; }
  body.ana-acik .ana-tb { order: 10; flex-basis: 100%; }
  body.ana-acik .topbar > * { margin-block: 6px; }
}
.ana-tb .arac-bosluk { flex: 1; }
.ana-eylem { display: flex; gap: 8px; flex: none; }
@media (max-width: 1180px) { .ana-baslik { display: none; } }
.brand-title[data-act="ana"] { cursor: pointer; border-radius: var(--r-sm); }
.brand-title[data-act="ana"]:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.ana { flex: 1; min-height: 0; overflow: auto; }
.ana[hidden] { display: none; }
.ana-ic { padding: 20px; }
.ana-izgara { display: grid; grid-template-columns: repeat(auto-fill, minmax(232px, 1fr)); gap: 16px; }
/* Firma grupları (birden çok firmanın projesi görünüyorsa, app.js anaCiz firmaBloklari): başlık kaydırınca üstte kalır */
.ana-firma + .ana-firma { margin-top: 22px; }
.ana-fbas { position: sticky; top: 0; z-index: 6; display: flex; align-items: center; gap: 10px; margin: -20px -20px 12px; padding: 14px 20px 10px;
  background: var(--bg); border-bottom: 1px solid var(--line); }
.ana-firma + .ana-firma .ana-fbas { margin-top: 0; }
.ana-firma.kapali .ana-fbas { margin-bottom: 0; }
.ana-fac { all: unset; display: flex; align-items: center; gap: 10px; min-width: 0; flex: 0 1 auto; cursor: pointer; border-radius: var(--r-sm); padding: 2px 4px; }
.ana-fac:focus-visible { box-shadow: var(--focus-ring); }
.ana-fac:hover .ana-fad { color: var(--accent); }
.ana-fok { width: 16px; color: var(--muted); font-size: 16px; line-height: 1; text-align: center; }
.ana-flogo { width: 44px; height: 30px; flex-shrink: 0; display: grid; place-items: center; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--panel-2); overflow: hidden; }
.ana-flogo.resim { background: #fff; }
.ana-flogo img { max-width: 90%; max-height: 24px; object-fit: contain; display: block; }
.ana-flogo .logo-harf { font-size: 13px; }
.ana-fad { font-weight: 650; font-size: var(--fs-md); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ana-fsay { color: var(--muted); font-size: var(--fs-sm); white-space: nowrap; }
.ana-grup { font-size: var(--fs-xs); font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); margin: 28px 0 10px; }
.ana-kart { position: relative; display: flex; flex-direction: column; min-width: 0; background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-lg);
  cursor: pointer; transition: border-color .12s, box-shadow .12s; }
.ana-kart:hover { border-color: var(--line-strong); box-shadow: 0 4px 14px rgba(16, 24, 40, .08); }
.ana-kart:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.ana-kart.on { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.ana-kart:has(.ana-mw .menu:not([hidden])) { z-index: 5; }
.ana-logo { height: 136px; display: grid; place-items: center; padding: 18px; border-radius: var(--r-lg) var(--r-lg) 0 0; border-bottom: 1px solid var(--line);
  background: var(--panel-2); overflow: hidden; }
.ana-logo.resim { background: #fff; }
.ana-logo img { max-width: 78%; max-height: 100px; object-fit: contain; display: block; }
.ana-logo .logo-harf { font-size: 40px; }
.ana-kart.kapali .ana-logo img, .ana-kart.kapali .ana-logo .logo-harf { opacity: .55; filter: grayscale(1); }
.ana-mw { position: absolute; top: 8px; right: 8px; opacity: 0; transition: opacity .12s; }
.ana-kart:hover .ana-mw, .ana-kart:focus-within .ana-mw, .ana-mw:has(.menu:not([hidden])) { opacity: 1; }
.ana-daha { width: 30px; padding: 0; font-size: 18px; line-height: 1; background: var(--panel); }
.ana-mw .menu { min-width: 240px; right: 0; left: auto; }
.ana-govde { padding: 12px 14px 10px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ana-ad { margin: 0; font-size: var(--fs-md); font-weight: 650; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ana-alt { color: var(--muted); font-size: var(--fs-sm); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ana-rozet { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 2px; }
.ana-ayak { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 14px; border-top: 1px solid var(--line);
  color: var(--muted); font-size: var(--fs-sm); }
.ana-ayak b { color: var(--text); font-weight: 600; font-variant-numeric: tabular-nums; }
.ana-ayak > span { white-space: nowrap; }
.ana-zaman { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.ana-zaman .ikon { width: 12px; height: 12px; vertical-align: -1px; margin-right: 4px; }
.ana-bos { padding: 48px 20px; text-align: center; border: 1px dashed var(--line-strong); border-radius: var(--r-lg); color: var(--muted);
  display: flex; flex-direction: column; align-items: center; gap: 8px; }
.ana-bos b { color: var(--text); font-size: var(--fs-lg); }
/* Proje logosu: baş harfler ve seçim kutusu (yeni proje, Ad ve logo, Proje ayarları › Genel) */
.logo-harf { font-weight: 700; letter-spacing: .02em; color: var(--lacivert, #14275e); line-height: 1; }
.logo-sec { display: flex; align-items: center; gap: 12px; }
.logo-onizle { flex: none; width: 64px; height: 64px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: var(--r-md, 8px);
  background: var(--panel-2); overflow: hidden; }
.logo-onizle:has(img) { background: #fff; padding: 6px; }
.logo-onizle img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
.logo-onizle .logo-harf { font-size: 22px; }
.logo-dg { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.logo-btn { display: flex; gap: 6px; }
.np-logo { margin-top: var(--sp-3); }

/* Yeni proje penceresi */
.modal.np-modal { width: min(680px, 100%); }
.np-alt { margin: -4px 0 var(--sp-3); font-size: var(--fs-sm); }
.np-bolum { padding: var(--sp-4) 0; border-top: 1px solid var(--line); }
.np-paket { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); margin-bottom: var(--sp-3); padding: var(--sp-2) var(--sp-3);
  border: 1px dashed var(--line-strong); border-radius: var(--r-lg); font-size: var(--fs-sm); }
.np-paket > span { display: flex; gap: 8px; align-items: flex-start; }
.np-paket .btn { flex: none; }
.np-bolum[hidden] { display: none; }
.np-bas { display: flex; align-items: center; gap: var(--sp-2); font-weight: 650; margin-bottom: var(--sp-3); }
.np-bas .muted { font-weight: 400; }
.np-no { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; flex: none;
  background: var(--accent-soft); color: var(--accent); font-size: var(--fs-xs); font-weight: 700; }
.np-drop { display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; padding: var(--sp-5) var(--sp-4);
  border: 1.5px dashed var(--line-strong); border-radius: var(--r-lg); background: var(--panel-2); cursor: pointer; transition: border-color .12s, background .12s; }
.np-drop:hover, .np-drop.uzerinde { border-color: var(--accent); background: var(--accent-soft); }
.np-drop:focus-within { box-shadow: var(--focus-ring); }
.np-drop input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.np-drop b { color: var(--accent); }
.np-drop .muted { max-width: 440px; }
.np-drop .ikon.np-drop-ikon { width: 26px; height: 26px; color: var(--accent); margin: 0 0 4px; }
.np-dosya-mesaj { margin-top: var(--sp-2); color: var(--muted); }
.np-dosya { display: flex; flex-direction: column; gap: 6px; padding: var(--sp-3); border: 1px solid color-mix(in srgb, var(--ok) 35%, var(--line)); border-radius: var(--r-lg);
  background: color-mix(in srgb, var(--ok-soft) 55%, var(--panel)); }
.np-dosya-ad { display: flex; align-items: center; gap: 6px; font-weight: 600; overflow-wrap: anywhere; }
.np-dosya-ad .ikon { flex: none; color: var(--ok); }
.np-dosya-dg { display: flex; flex-wrap: wrap; gap: 6px; }
.np-iki { display: grid; grid-template-columns: 2fr 1fr; gap: var(--sp-3); }
.np-alan { display: flex; flex-direction: column; gap: 4px; }
.np-alan > span { font-size: var(--fs-sm); color: var(--muted); }
.np-alan input { width: 100%; }
.np-zorunlu { color: var(--bad); font-style: normal; }
.np-secler { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-2); }
.np-sec { position: relative; display: flex; gap: var(--sp-2); align-items: flex-start; padding: var(--sp-3); border: 1px solid var(--line); border-radius: var(--r-lg);
  cursor: pointer; background: var(--panel); transition: border-color .12s, background .12s; }
.np-sec:hover { border-color: var(--line-strong); }
.np-sec.on { border-color: var(--accent); background: color-mix(in srgb, var(--accent-soft) 60%, var(--panel)); box-shadow: 0 0 0 1px var(--accent); }
.np-sec input { margin: 2px 0 0; accent-color: var(--accent); flex: none; }
.np-sec-g { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.np-sec-g b { font-weight: 650; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.np-kaynak { width: 100%; margin-top: 4px; }
.np-detay { margin-top: var(--sp-3); font-size: var(--fs-sm); color: var(--muted); }
.np-detay summary { cursor: pointer; color: var(--accent); width: max-content; }
.np-detay p { margin: var(--sp-2) 0 0; line-height: 1.5; }
.np-modal #npTpl { width: 100%; }

/* Proje ayarları: solda bölüm gezinmesi, sağda kayan içerik; pencere her bölümde aynı boyda */
.modal.pa-modal { width: min(1000px, 100%); height: min(760px, calc(100vh - 48px)); display: flex; flex-direction: column; padding: 0; overflow: hidden; }
/* İşçilik: girdi listesi uzun, pencere ekran boyunu alır */
.modal.pa-modal.isc-tam { width: min(1180px, 100%); height: calc(100vh - 48px); }
.pa-modal > h3 { margin: 0; padding: var(--sp-4) var(--sp-5); border-bottom: 1px solid var(--line); }
.pa-duzen { flex: 1 1 0; min-height: 0; display: flex; }
.pa-nav { flex: none; width: 210px; display: flex; flex-direction: column; gap: 2px; padding: var(--sp-3); background: var(--panel-2); border-right: 1px solid var(--line); overflow: auto; }
.pa-nav-b { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; text-align: left; border: 0; background: none; padding: 8px 12px; border-radius: var(--radius);
  cursor: pointer; color: var(--text); position: relative; }
.pa-nav-b b { font-weight: 600; font-size: var(--fs-md); }
.pa-nav-b small { color: var(--muted); font-size: var(--fs-xs); }
.pa-nav-b:hover { background: color-mix(in srgb, var(--panel) 70%, var(--panel-2)); }
.pa-nav-b.active { background: var(--panel); box-shadow: var(--shadow-sm), inset 3px 0 0 var(--accent); }
.pa-nav-b.active b { color: var(--accent); }
.pa-nav-b:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.modal.pa-modal .pa-body { flex: 1 1 0; min-width: 0; min-height: 0; overflow: auto; padding: var(--sp-5); }
.pa-modal .modal-foot { margin: 0; padding: var(--sp-3) var(--sp-5); border-top: 1px solid var(--line); }
.pa-bas { margin-bottom: var(--sp-4); }
.pa-bas h4 { margin: 0; font-size: var(--fs-lg); }
.pa-bas p { margin: 4px 0 0; color: var(--muted); font-size: var(--fs-sm); line-height: 1.45; }
.pa-alt-bas { margin: var(--sp-5) 0 var(--sp-2); padding-top: var(--sp-4); border-top: 1px solid var(--line); font-weight: 650; }
.pa-form { display: flex; flex-direction: column; }
.pa-satir { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: var(--sp-3); align-items: start; padding: 10px 0; border-bottom: 1px solid var(--line); }
.pa-satir:first-child { padding-top: 0; }
.pa-satir:last-child { border-bottom: 0; padding-bottom: 0; }
.pa-satir > label { padding-top: 7px; font-size: var(--fs-md); font-weight: 550; color: var(--text); }
.pa-deger { min-width: 0; }
.pa-deger > input[type=text], .pa-deger > input[type=date] { width: 100%; }
.pa-ipucu { margin-top: 4px; color: var(--muted); font-size: var(--fs-xs); line-height: 1.4; }
/* Excel sayfa ve sütun seçimi (excel.js secimModal): Proje ayarları düzeni; solda anahtarlı sayfalar, sağda gruplu sütun hapları */
.modal.pa-modal.ex-modal { width: min(1180px, 100%); height: min(860px, calc(100vh - 48px)); }
.ex-nav { display: flex; align-items: center; gap: 2px; padding-left: 8px; border-radius: var(--radius); }
.ex-nav .pa-nav-b { flex: 1; min-width: 0; }
.ex-nav.active { background: var(--panel); box-shadow: var(--shadow-sm), inset 3px 0 0 var(--accent); }
.ex-nav .pa-nav-b.active { background: none; box-shadow: none; }
.ex-nav.kapali .pa-nav-b b { color: var(--muted); }
.ex-anahtar { appearance: none; flex: none; width: 30px; height: 18px; margin: 0; border-radius: 999px; background: var(--line-strong); position: relative; cursor: pointer; transition: background .15s; }
.ex-anahtar::before { content: ""; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(16, 24, 40, .25); transition: transform .15s; }
.ex-anahtar:checked { background: var(--accent); }
.ex-anahtar:checked::before { transform: translateX(12px); }
.ex-anahtar:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.ex-bas { display: flex; align-items: flex-start; gap: var(--sp-3); }
.ex-bas > div:first-child { flex: 1; min-width: 0; }
.ex-hizli { display: flex; gap: 6px; flex: none; }
.ex-grup + .ex-grup { margin-top: var(--sp-4); }
.ex-grup-ad { margin-bottom: 6px; color: var(--muted); font-size: var(--fs-xs); font-weight: 650; text-transform: uppercase; letter-spacing: .04em; }
.ex-haplar { display: flex; flex-wrap: wrap; gap: 6px; }
.ex-hap { display: inline-flex; position: relative; cursor: pointer; font-size: var(--fs-md); }
.ex-hap input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ex-hap span, .ex-hap.ex-zor { display: inline-flex; align-items: center; gap: 5px; padding: 5px 12px; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--panel); color: var(--muted); transition: background .12s, border-color .12s, color .12s; }
.ex-hap span::before { content: ""; width: 12px; height: 12px; border: 1.5px solid currentColor; border-radius: 3px; flex: none; opacity: .6; }
.ex-hap:hover span { border-color: var(--accent); }
.ex-hap input:checked + span { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); font-weight: 550; }
.ex-hap input:checked + span::before { opacity: 1; background: var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2 5 8.5l4.5-5' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 10px no-repeat; border-color: var(--accent); }
.ex-hap input:focus-visible + span { box-shadow: var(--focus-ring); }
.ex-hap.ex-zor { cursor: default; background: var(--panel-2); border-color: var(--line); color: var(--text); }
.ex-hap.ex-zor .ikon, .ex-ipucu .ikon { width: 12px; height: 12px; color: var(--muted); }
.ex-ipucu { margin-top: var(--sp-4); display: flex; align-items: center; gap: 4px; }
.ex-bos { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--sp-3); height: 100%; min-height: 200px; color: var(--muted); text-align: center; }
.ex-bos b { color: var(--text); font-size: var(--fs-lg); }
.ex-foot { align-items: center; }
.ex-ozet { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: var(--fs-sm); }
.ex-ozet .ex-sayi { font-weight: 600; }
.ex-foot .btn.primary .ikon { width: 15px; height: 15px; }
.ex-bosr { margin-left: 2px; padding: 0 6px; border-radius: 999px; background: var(--warn-soft); color: var(--warn); font-size: var(--fs-2xs); font-style: normal; font-weight: 600; }
/* Önizleme: Excel görünümü (sütun harfleri, satır numaraları, renkli başlık) */
.ex-onizle { margin-top: var(--sp-5); border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--panel); }
.ex-onizle > summary { padding: 10px 14px; cursor: pointer; font-weight: 600; font-size: var(--fs-md); list-style: none; display: flex; align-items: center; gap: 6px; }
.ex-onizle > summary::-webkit-details-marker { display: none; }
.ex-onizle > summary::before { content: "▸"; color: var(--muted); transition: transform .15s; }
.ex-onizle[open] > summary::before { transform: rotate(90deg); }
.ex-onizle > summary .muted { font-weight: 400; font-size: var(--fs-sm); }
.ex-onizle > summary:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: var(--r-lg); }
.ex-onizle-ic { border-top: 1px solid var(--line); }
.ex-onizle-bos { padding: var(--sp-4); font-size: var(--fs-sm); }
.ex-tablo-kap { overflow: auto; max-height: 340px; border-radius: 0 0 var(--r-lg) var(--r-lg); }
.ex-tablo { border-collapse: collapse; font-size: var(--fs-xs); min-width: 100%; }
.ex-tablo th, .ex-tablo td { border: 1px solid var(--line); padding: 3px 8px; white-space: pre; max-width: 240px; overflow: hidden; text-overflow: ellipsis; text-align: left; }
.ex-tablo td.num { text-align: right; font-variant-numeric: tabular-nums; }
.ex-tablo thead th { position: sticky; z-index: 1; }
.ex-tablo .ex-harf th { top: 0; background: var(--panel-2); color: var(--muted); font-weight: 500; text-align: center; height: 22px; }
.ex-tablo thead tr:last-child th { top: 22px; background: #1f5fbf; color: #fff; font-weight: 600; }
.ex-tablo thead tr:last-child th:first-child, .ex-tablo tbody th { background: var(--panel-2); color: var(--muted); font-weight: 500; text-align: center; min-width: 30px; }
.ex-tablo tbody th { position: sticky; left: 0; }
.ex-tablo th.ex-cikar { cursor: pointer; }
.ex-tablo th.ex-cikar span { margin-left: 6px; opacity: 0; }
.ex-tablo th.ex-cikar:hover { background: var(--bad); }
.ex-tablo th.ex-cikar:hover span { opacity: 1; }
.ex-tablo tr.ex-g td { background: var(--accent-soft); font-weight: 650; }
.ex-tablo tr.ex-top td { background: var(--panel-2); font-weight: 650; }
.pa-birimli { display: inline-flex; align-items: stretch; }
.pa-birimli input { border-top-right-radius: 0; border-bottom-right-radius: 0; text-align: right; }
.pa-birimli span { display: flex; align-items: center; padding: 0 10px; border: 1px solid var(--line-strong); border-left: 0; border-radius: 0 var(--r-sm) var(--r-sm) 0;
  background: var(--panel-2); color: var(--muted); font-size: var(--fs-sm); white-space: nowrap; }
.pa-gunler { display: flex; flex-wrap: wrap; gap: 6px; }
.pa-gunler label { position: relative; cursor: pointer; }
.pa-gunler input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pa-gunler span { display: inline-flex; align-items: center; justify-content: center; min-width: 46px; height: 30px; padding: 0 10px; border: 1px solid var(--line-strong);
  border-radius: 999px; font-size: var(--fs-sm); color: var(--muted); background: var(--panel); transition: background .12s, color .12s, border-color .12s; }
.pa-gunler label:hover span { border-color: var(--accent); }
.pa-gunler input:checked + span { background: var(--accent-dolgu); border-color: var(--accent-dolgu); color: #fff; font-weight: 600; }
.pa-gunler input:focus-visible + span { box-shadow: var(--focus-ring); }
.pa-onay { display: inline-flex; align-items: flex-start; gap: 8px; padding-top: 6px; color: var(--text); cursor: pointer; }
.pa-onay input { margin-top: 2px; }
.pa-bos { padding: var(--sp-4); text-align: center; color: var(--muted); font-size: var(--fs-sm); border: 1px dashed var(--line-strong); border-radius: var(--r-lg); }
.pa-modal .tt-arac .tt-say { margin-left: auto; }
.pa-modal .tt-liste { max-height: 260px; border-radius: var(--radius); }
.pa-modal .tt-sat { padding: 4px 6px 4px 10px; }
.pa-modal #ps-tatil-ad { flex: 1; min-width: 160px; max-width: 320px; }
.tt-ad-k { width: 100%; min-width: 0; height: 26px; padding: 2px 8px; font-size: var(--fs-sm); }
.tt-ad-k:placeholder-shown { border-style: dashed; }
/* İşçilik girdileri iç kaydırmasız: pencere gövdesi kayar, başlık satırı gövdenin üstüne yapışır */
.pa-modal .isc-liste { max-height: none; overflow: visible; }
.pa-modal .isc-liste table.grid th { position: sticky; top: calc(-1 * var(--sp-5)); z-index: 2; }
.pa-yap-liste { display: flex; flex-direction: column; gap: 6px; }
.pa-yap-sat { display: flex; align-items: center; gap: var(--sp-2); padding: 6px 6px 6px 10px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.pa-yap-sat input { flex: 1; min-width: 0; }
.pa-yap-no { flex: none; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: var(--accent-soft); color: var(--accent); font-size: var(--fs-xs); font-weight: 700; }
.pa-yap-sat .btn .ikon { margin: 0; }
.pa-yap-ekle { display: flex; gap: var(--sp-2); margin-top: var(--sp-3); }
.pa-yap-ekle input { flex: 1; min-width: 0; }
.pa-detay { margin: 0 0 var(--sp-3); }
.pa-modal .isc-tip { margin-top: 0; }

/* Yeni poz penceresi (yeni proje penceresinin bölüm düzeniyle) */
.np-iki.esit { grid-template-columns: 1fr 1fr; }
.np-iki.uclu { grid-template-columns: 2fr 1fr; }
.np-alan.tam { grid-column: 1 / -1; }
.np-alan textarea { width: 100%; resize: vertical; }
.yp-girdi { border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.yp-girdi table { width: 100%; border-collapse: collapse; }
.yp-girdi td { padding: 6px 10px; border-bottom: 1px solid var(--line); font-size: var(--fs-sm); }
.yp-girdi tr:last-child td { border-bottom: 0; }
.yp-girdi .yp-bos td { text-align: center; color: var(--muted); padding: 14px; }
.yp-girdi-ekle { display: flex; gap: var(--sp-2); padding: 10px; background: var(--panel-2); border-top: 1px solid var(--line); }
.yp-girdi-ekle #pGirdiNo { flex: 1; min-width: 0; }
.yp-girdi-ekle #pGirdiMiktar { width: 100px; }
.yp-kar { display: inline-flex; align-items: center; gap: 8px; margin-top: var(--sp-3); font-size: var(--fs-sm); }
#pSug:not(:empty) { margin-top: 6px; }

/* Yönetim penceresi: Proje ayarları gibi solda bölüm gezinmesi, sağda kayan içerik */
.modal.pa-modal.ynt-modal { width: min(1240px, 100%); height: calc(100vh - 48px); }
.ynt-modal .ynt-govde { max-height: none; overflow: visible; }
.ynt-modal table.grid th { top: calc(-1 * var(--sp-5)); }
.ynt-modal .kpis { gap: var(--sp-2); }
.ynt-modal .kpis .kpi { flex: 1; min-width: 130px; padding: 10px 14px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--panel); }
.ynt-modal .kpis .kpi .v { font-size: var(--fs-xl); margin-top: 2px; }
.ynt-suz { display: flex; gap: var(--sp-2); flex-wrap: wrap; margin-bottom: var(--sp-3); }
.ynt-suz input[type=search] { flex: 1; min-width: 200px; }

/* Sistem yönetimi sayfası (sistem sahibi; yonetim.js SAYFA): pencere değil tam ekran. Üstte lacivert şerit, altında tek sütun:
   firma (ynt-f) › bölümler (ynt-bolum: projeler, kullanıcılar) › proje kartı (ynt-proje) ve ekibi */
body.ynt-acik { overflow: hidden; }
.ynt-sayfa { position: fixed; inset: 0; z-index: 35; display: flex; flex-direction: column; background: var(--bg); color: var(--text); }
.ynt-sayfa[hidden] { display: none; }
.ynt-s-ust { flex: none; display: flex; align-items: center; gap: 6px 24px; flex-wrap: wrap; min-height: 64px; padding: 8px 20px; background: #0f1b3d; color: #f1f5ff; }
.ynt-s-bas { display: flex; flex-direction: column; line-height: 1.3; }
.ynt-s-bas b { font-size: var(--fs-lg); }
.ynt-s-bas small { color: #a9b8dc; font-size: var(--fs-xs); }
.ynt-s-sekme { display: flex; gap: 2px; flex: 1; min-width: 0; overflow-x: auto; }
.ynt-s-sekme button, .ynt-s-don { flex: none; border: 1px solid transparent; background: none; color: #c9d4f0; font: inherit; font-size: var(--fs-md); padding: 7px 12px; border-radius: var(--radius); cursor: pointer; white-space: nowrap; }
.ynt-s-sekme button:hover, .ynt-s-don:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.ynt-s-sekme button.active { background: rgba(255, 255, 255, .16); color: #fff; font-weight: 600; }
.ynt-s-don { border-color: rgba(255, 255, 255, .28); color: #fff; }
.ynt-s-ust button:focus-visible { outline: 2px solid #5aa2ff; outline-offset: 1px; }
.ynt-s-govde { flex: 1; min-height: 0; overflow: auto; }
.ynt-s-ic { max-width: 1320px; margin: 0 auto; padding: var(--sp-5) 20px 56px; }
.ynt-sayfa .ynt-govde { max-height: none; overflow: visible; }
.ynt-sayfa table.grid th { position: static; }
.ynt-sayfa table.grid { background: var(--panel); }
.ynt-sayfa .kpis { gap: var(--sp-2); }
.ynt-sayfa .kpis .kpi { flex: 1; min-width: 130px; padding: 10px 14px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--panel); }
.ynt-sayfa .kpis .kpi .v { font-size: var(--fs-xl); margin-top: 2px; }
.ynt-sayfa .ynt-suz input[type=search] { height: 36px; }
.ynt-yeni { margin: 0 0 var(--sp-3); }
.ynt-f { border: 1px solid var(--line); border-radius: 12px; background: var(--panel); margin-bottom: var(--sp-2); }
.ynt-f:not(.acik):hover { border-color: var(--line-strong); box-shadow: var(--shadow-sm); }
.ynt-f.acik { border-color: color-mix(in srgb, var(--accent) 35%, var(--line-strong)); box-shadow: 0 6px 24px rgba(16, 24, 40, .08); margin: var(--sp-4) 0; }
.ynt-f-bas { display: flex; align-items: center; gap: 12px; width: 100%; padding: 14px 18px; border: 0; background: none; color: inherit; font: inherit; text-align: left; border-radius: 12px; }
button.ynt-f-bas { cursor: pointer; }
button.ynt-f-bas:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.ynt-f.acik > .ynt-f-bas { border-bottom: 1px solid var(--line); border-radius: 12px 12px 0 0; background: color-mix(in srgb, var(--accent-soft) 45%, var(--panel)); }
.ynt-f-ok { flex: none; width: 12px; color: var(--muted); }
.ynt-f-logo { flex: none; width: 44px; height: 44px; border-radius: 10px; display: grid; place-items: center; background: var(--accent-soft); color: var(--accent); font-size: var(--fs-sm); font-weight: 700; letter-spacing: .02em; }
.ynt-f.pasif .ynt-f-logo { background: var(--panel-2); color: var(--muted); }
.ynt-f-logo.resim { background: #fff; border: 1px solid var(--line); padding: 3px; }
.ynt-f-logo img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; border-radius: 6px; }
.ynt-f.pasif .ynt-f-logo img { opacity: .55; filter: grayscale(1); }
.ynt-form .logo-sec, .ynt-yeni .logo-sec { justify-self: start; }
.ynt-f-ad { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.ynt-f-ad b { font-size: var(--fs-lg); }
.ynt-f.pasif .ynt-f-ad b { color: var(--muted); }
.ynt-f-say { flex: none; display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.ynt-cip { display: inline-flex; align-items: center; gap: 4px; padding: 2px 10px; border-radius: 999px; background: var(--panel-2); color: var(--muted); font-size: var(--fs-xs); line-height: 18px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ynt-cip b { color: var(--text); }
.ynt-cip.uyari { background: var(--warn-soft); color: var(--warn); }
.ynt-f.acik > .ynt-f-bas .ynt-cip { background: var(--panel); }
.ynt-f-ic { padding: 16px 18px 18px; }
.ynt-f-arac { margin-bottom: var(--sp-3); }
.ynt-f-arac .arac-bosluk, .ynt-p-arac .arac-bosluk { flex: 1; }
.ynt-f-bilgi { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; margin-bottom: var(--sp-4); }
.ynt-f-bilgi > div { display: flex; flex-direction: column; gap: 2px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 10px; background: color-mix(in srgb, var(--panel-2) 45%, var(--panel)); }
.ynt-f-bilgi small { color: var(--muted); font-size: var(--fs-xs); }
.ynt-f-bilgi span { font-size: var(--fs-lg); font-variant-numeric: tabular-nums; }
.ynt-bolum { border-top: 1px solid var(--line); }
.ynt-bolum > summary, .ynt-proje > summary { cursor: pointer; list-style: none; display: flex; align-items: center; }
.ynt-bolum > summary::-webkit-details-marker, .ynt-proje > summary::-webkit-details-marker { display: none; }
.ynt-bolum > summary::before, .ynt-proje > summary::before { content: '▸'; flex: none; width: 12px; color: var(--muted); }
.ynt-bolum[open] > summary::before, .ynt-proje[open] > summary::before { content: '▾'; }
.ynt-bolum > summary { gap: 8px; padding: 12px 2px; font-size: var(--fs-md); }
.ynt-bolum > summary:hover b { color: var(--accent); }
.ynt-bolum-ic { padding: 0 0 var(--sp-3) 20px; }
/* Proje kartı ve ekip tablosu (pencerede de) */
.ynt-proje { border-radius: 10px; }
.ynt-proje > summary { flex-wrap: wrap; gap: 6px 10px; padding: 10px 14px; border-radius: 10px; }
.ynt-proje > summary:hover { background: color-mix(in srgb, var(--panel-2) 45%, var(--panel)); }
.ynt-proje[open] { border-color: var(--line-strong); }
.ynt-proje[open] > summary { border-bottom: 1px solid var(--line); border-radius: 10px 10px 0 0; background: color-mix(in srgb, var(--panel-2) 45%, var(--panel)); }
.ynt-p-ad { flex: 1; min-width: 220px; }
.ynt-p-say { display: flex; flex-wrap: wrap; gap: 6px; }
.ynt-proje[open] > summary .ynt-cip:not(.uyari) { background: var(--panel); }
.ynt-proje-ic { padding: 12px 14px 14px; }
.ynt-p-arac { margin-bottom: 10px; align-items: center; }
.ynt-p-ekle { margin-top: 10px; }
.ynt-ekip td { vertical-align: middle; }
.ynt-kisi { display: flex; align-items: center; gap: 10px; min-width: 190px; }
.ynt-av { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--accent-soft); color: var(--accent); font-size: var(--fs-xs); font-weight: 650; }
tr.ynt-yon .ynt-av { background: var(--sub-soft); color: var(--sub); }
select.ynt-pf { min-width: 168px; }
select.ynt-pf.gizli { border-color: var(--warn); background-color: var(--warn-soft); }
.ynt-sekme-b { text-align: left; white-space: normal; }
.ynt-sekme-b.kisitli { color: var(--warn); }
.ynt-nasil { margin-bottom: var(--sp-2); font-size: var(--fs-sm); }
.ynt-nasil > summary { cursor: pointer; color: var(--muted); width: fit-content; }
.ynt-nasil > p { margin: 6px 0 0; max-width: 110ch; }

/* Pencere formları: bölüm başlıkları, seçim düğmeleri (radyo yerine), seçenek kartları */
:where(.modal) .fn-kr-bol { margin-top: 8px; padding-top: 14px; font-size: var(--fs-xs); font-weight: 650; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
:where(.modal) .form .fn-kr-bol:first-child { margin-top: 0; padding-top: 0; }
.fn-har-sec { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid var(--line-strong); border-radius: var(--radius); background: var(--panel-2); justify-self: start; flex-wrap: wrap; }
.form .fn-har-sec .fn-har-r { position: relative; gap: 0; padding: 5px 14px; border-radius: var(--r-sm); font-size: var(--fs-sm); color: var(--muted); transition: background .12s, color .12s; }
.form .fn-har-sec .fn-har-r input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.form .fn-har-sec .fn-har-r:hover { color: var(--text); }
.form .fn-har-sec .fn-har-r:has(input:checked) { background: var(--panel); color: var(--accent); font-weight: 600; box-shadow: var(--shadow-sm); }
.form .fn-har-sec .fn-har-r:has(input:focus-visible) { box-shadow: var(--focus-ring); }
.form .fn-kay-tur { gap: 6px; }
.form .fn-kay-tur .fn-har-r { padding: 9px 12px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--panel); transition: border-color .12s, background .12s; }
.form .fn-kay-tur .fn-har-r:hover { border-color: var(--line-strong); }
.form .fn-kay-tur .fn-har-r:has(input:checked) { border-color: var(--accent); background: color-mix(in srgb, var(--accent-soft) 60%, var(--panel)); box-shadow: 0 0 0 1px var(--accent); }
.form .fn-kay-tur .fn-har-r .muted { display: block; margin-top: 2px; }
.form .fn-kay-tur .fn-har-r input { accent-color: var(--accent); }
.form .fn-cek-chk { padding: 8px 12px; border: 1px solid var(--line); border-radius: var(--r-lg); background: color-mix(in srgb, var(--panel-2) 50%, var(--panel)); }
.fn-kr-on { border-radius: var(--r-lg); }

/* Görünümü düzenle: iki sütun panel, satırlar kart */
.pn-dz-body { gap: 14px; }
.pn-dz-sec { padding: 12px; border: 1px solid var(--line); border-radius: var(--r-lg); background: color-mix(in srgb, var(--panel-2) 50%, var(--panel)); align-self: start; }
.pn-dz-sec h4 { margin: 0 0 8px; }
.pn-dz-row { margin-top: 6px; padding: 8px 10px; border: 1px solid var(--line); border-top: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); transition: border-color .12s; }
.pn-dz-row:hover { border-color: var(--line-strong); }
.pn-dz-row:not(.off) { box-shadow: inset 3px 0 0 var(--accent); }
.pn-dz-row.off { background: transparent; }
.pn-dz-cap { margin: 14px 0 2px; font-weight: 650; }
.pn-dz-on input { accent-color: var(--accent); }

/* Rehber bölüm seçimi: pencerelerle aynı başlık ve alt şerit */
.rh-genis > h3 { margin: -16px -18px 12px; padding: 15px 48px 13px 18px; border-bottom: 1px solid var(--line); }
.rh-genis > .rh-x { top: 11px; right: 10px; }
.rh-genis > .rh-alt { margin: 14px -18px -14px; padding: 12px 18px; border-top: 1px solid var(--line); justify-content: space-between;
  background: color-mix(in srgb, var(--panel-2) 45%, var(--panel)); border-radius: 0 0 var(--r-xl) var(--r-xl); }

/* ================= Telefon (≤ 760 px) =================
   Bu blok yalnız dar ekranda geçerlidir; masaüstü yerleşimine dokunmaz.
   Sayfa bütün olarak kayar (üst çubuk yukarı kayıp gider), sekmeler başparmakla erişilen alt şeritte sabittir,
   göstergeler tek satırda yatay kayar, geniş tablolar kendi içinde yatay kayar. */
@media (max-width: 760px) {
  /* Yer imi: tablo kendi içinde kaydığı için üçgen dışarıda kesilirdi; içeride durur */
  .yi-bas { left: 0; }
  .yi-ekle { left: 0; }
  /* Claude'a sor üst çubukta yer kaplamasın: Ctrl+K'da */
  .topbar .actions .cl-btn { display: none; }
  /* Notlar Bugün penceresinden ve aramadan (Ctrl+K) açılır */
  .topbar .actions .nt-btn { display: none; }
  .nt-govde { max-height: none; }
  /* Kayıt durumu yalnız sorun varsa yer kaplar: proje adı sıkışmasın */
  .topbar .sync.saved, .topbar .sync.saving, .topbar .sync.dirty { display: none; }
  /* Projeler ana ekranı: üst çubuk iki satır (araç şeridi alt satırda tam genişlik), iki sütunlu kartlar, kart menüsü hep görünür */
  body.ana-acik .topbar { flex-wrap: wrap; min-height: 0; }
  body.ana-acik .topbar > * { margin-block: 0; }
  .ana-tb { order: 10; flex-basis: 100%; flex-wrap: wrap; gap: 8px; }
  .ana-baslik { display: none; }
  .ana-arac { order: 2; flex-basis: 100%; flex-wrap: wrap; }
  .ana-ara { flex: 1 1 100%; width: auto; font-size: 16px; }
  .ana-arac select { flex: 1 1 0; min-width: 0; font-size: 16px; }
  .ana-tb .arac-bosluk { display: none; }
  .ana-eylem { order: 1; flex: 1; }
  .ana-eylem .btn { flex: 1; padding-inline: 6px; }
  .ana-ic { padding: 12px; }
  .ana-fbas { margin: -12px -12px 10px; padding: 10px 12px 8px; }
  .ana-fsay { display: none; }
  .ana-izgara { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .ana-logo { height: 96px; padding: 12px; }
  .ana-logo .logo-harf { font-size: 30px; }
  .ana-mw { opacity: 1; top: 4px; right: 4px; }
  .ana-govde { padding: 10px 10px 8px; }
  .ana-ayak { padding: 6px 10px; flex-wrap: wrap; gap: 2px 8px; }
  .ornek-bant { padding: 6px 12px; gap: 8px; }
  .ornek-bant .ob-metin .muted { display: none; }
  /* Plan uyarı listesi: başlık, açıklama ve düğme alt alta */
  .pl-uy { grid-template-columns: 1fr; }
  .pl-uy-dugme { justify-self: start; }
  /* Proje ayarları › Takvim: tatil listesi tam genişlik */
  .pa-body .form .tt-et, .pa-body .form .tt { grid-column: 1 / -1; }
  .tt-sat { grid-template-columns: 78px 28px minmax(0, 1fr) auto 28px; }
  /* İşe başlama hazırlığı: durum hücreleri ikişer, not tam satır */
  .hz-sat { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hz-pop { width: min(300px, 78vw); }
  html, body { height: auto; }
  .kol-tut, .poz-tut { display: none; }
  .grid .poz-bayrak { opacity: .6; }
  body { min-height: 100vh; min-height: 100dvh; }
  .layout { flex: none; display: block; }
  .main { overflow: visible; padding: 12px 12px calc(76px + env(safe-area-inset-bottom)); }
  .sidebar { max-height: 35vh; }
  /* Yükleme önizlemesi: arama tam genişlik, tablo pencere içinde kayar */
  .oz-kontrol input[type="search"], .oz-kontrol select { width: 100%; }
  .oz-govde { max-height: 58vh; }
  .oz-es-alanlar { grid-template-columns: 1fr 1fr; }
  .oz-ham-govde { max-height: 50vh; }

  /* Üst çubuk: tek satır (logo simgesi, proje, ayar, arama, Bugün, yardım, kullanıcı) */
  .topbar { min-height: 0; gap: 6px; padding: 8px 12px; flex-wrap: nowrap; }
  .topbar > :not(.modes) { margin-block: 0; }
  .brand-title .logo-yazi, .topbar .tb-sep, .topbar .undo-grp, .topbar .user-btn .uname { display: none; }
  .brand-title .logo { width: 30px; height: 30px; }
  .proj-wrap { flex: 1; }
  .proj-btn { width: 100%; max-width: none; padding: 4px 10px; }
  .proj-name { font-size: var(--fs-lg); }
  /* Düğme logonun sağında başlar: menü ekrana sığsın diye sola alınır (kenar boşluğu 12 px) */
  .proj-menu { left: -36px; width: min(340px, calc(100vw - 24px)); }
  .ayar-menu { left: auto; right: 0; width: min(300px, calc(100vw - 24px)); }
  .yardim-menu { width: min(300px, calc(100vw - 24px)); }
  .np-paket { flex-direction: column; align-items: stretch; }
  .topbar .actions { gap: 2px; }
  /* Proje adına yer kalsın: hesap düğmesi yalnız baş harfler ("▾" font-size: 0 ile gizli) */
  .topbar .actions .user-btn { width: 34px; height: 34px; padding: 0; justify-content: center; font-size: 0; background: transparent; border-color: transparent; }
  .topbar .menu { max-width: calc(100vw - 24px); }

  /* Sekmeler: alt şerit */
  .modes { position: fixed; left: 0; right: 0; bottom: 0; z-index: 25; order: 0; flex-basis: auto; margin: 0; gap: 0;
    padding: 0 4px env(safe-area-inset-bottom); background: #0f1b3d; border-top: 1px solid var(--line-strong); box-shadow: 0 -4px 16px rgba(0, 0, 0, .18); }
  .mode { min-height: 52px; padding: 0 12px; border-top: 3px solid transparent; border-bottom: 0; font-size: var(--fs-md); }
  .topbar .mode.active { border-top-color: #5aa2ff; }

  /* Bağlam şeridi: göstergeler yatay kayar, işlemler alt satırda */
  .ctxbar { gap: 6px 12px; padding: 8px 12px; min-height: 0; }
  .ctxbar .kpis { min-width: 0; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .ctxbar .kpis::-webkit-scrollbar { display: none; }
  .ctxbar .kpi { padding: 0 12px; flex: none; }
  .ctxbar .kpi .v { font-size: var(--fs-lg); }
  .ctx-acts { flex-basis: 100%; justify-content: flex-end; }
  .ctx-acts .btn { padding: 5px 10px; }

  /* Dokunma: büyük hedefler; 16 px yazı iOS'un odakta yakınlaştırmasını önler */
  .btn { min-height: 36px; }
  .btn.sm { min-height: 32px; }
  .btn.icon { width: 36px; height: 36px; }
  input:not([type]), input[type=text], input[type=search], input[type=number], input[type=date], input[type=email], input[type=password], select, textarea { font-size: 16px; }
  .menu button { padding: 10px 12px; }

  /* Sayfa başlıkları ve süzgeçler */
  .page-head { gap: 8px; }
  .filters input[type=search] { width: 100%; }
  .arac-grup + .arac-grup { padding-left: 0; border-left: 0; }
  .arac-bosluk { display: none; }
  .tabs { overflow-x: auto; scrollbar-width: none; }
  .tabs::-webkit-scrollbar { display: none; }
  .tab { white-space: nowrap; }

  /* Geniş tablolar kendi içinde yatay kayar (sayfa yana kaymaz) */
  #main table.grid { display: block; max-width: 100%; overflow-x: auto; }
  .grid th { top: 0; }
  .grid.pozlar tr.grp td { position: static; }
  .modal > h3:first-child, .rh-kutu > h3 { cursor: auto; user-select: auto; touch-action: auto; }
  .pn-card.pn-wide[data-card="al"] .pn-fit { grid-template-columns: minmax(0, 1fr); }
  .pn-en { grid-template-columns: minmax(0, 1fr); }

  /* Pencereler: tam genişlik, etiket kutunun üstünde */
  .modal-back { padding: 8px; }
  .modal, .modal.wide, .modal.wide.genis { --m-py: 14px; --m-px: 14px; padding: 14px; }
  .form { grid-template-columns: 1fr; gap: 4px 12px; }

  /* Bildirim ve toplu işlem çubuğu alt şeridin üstünde */
  .toast { left: 12px; right: 12px; max-width: none; bottom: calc(64px + env(safe-area-inset-bottom)); }
  .bulkbar { bottom: calc(64px + env(safe-area-inset-bottom)); max-width: calc(100vw - 16px); flex-wrap: wrap; }
  .bulkbar.pl-secbar { left: 8px; right: 8px; transform: none; justify-content: center; }
  .end-toplam-bar { bottom: calc(64px + env(safe-area-inset-bottom)); gap: 4px 14px; padding: 8px 12px; }

  /* Gün görünümü: tek elle giriş */
  .tg-card { padding: 12px 12px 4px; }
  .tg-card > header { flex-wrap: wrap; }
  .tg-sag { flex-direction: row; align-items: center; justify-content: space-between; width: 100%; }
  .tg-poz { flex-wrap: wrap; }
  .tg-in { margin-left: auto; }
  .tg-in input { width: 110px; }

  /* Kart görünümü (Aktiviteler .kt-akt, Tedarik .kt-sv): her satır bir kart, hücre etiketi data-l'den.
     Altı sütunlu ızgara: başlık hücresi (.kt-bas) tam satır, bilgiler üçte bir; sıra .kt-oN ile. */
  #main table.grid.kt { display: block; overflow: visible; border: 0; background: none; }
  #main .kt thead { display: none; }
  #main .kt tbody { display: block; }
  #main .kt tr.item { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px 10px; margin-bottom: 10px; padding: 12px;
    background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-sm); }
  #main .kt tr.item > td { display: block; grid-column: span 2; min-width: 0; padding: 0; border: 0; background: none; box-shadow: none; text-align: left; white-space: normal; }
  #main .kt tr.item > td[data-l]::before { content: attr(data-l); display: block; color: var(--muted); font-size: var(--fs-xs); font-weight: 400; }
  #main .kt tr.item > td.kt-bas { grid-column: 1 / -1; order: -1; font-size: var(--fs-lg); font-weight: 600; }
  #main .kt tr.grp { display: block; margin: 16px 2px 6px; }
  #main .kt tr.grp > td { display: block; padding: 0; border: 0; background: none; }
  #main .kt tr.detail { display: block; margin: -4px 0 12px; }
  #main .kt tr.detail > td { display: block; padding: 10px; border: 1px solid var(--line); border-radius: var(--r-lg); overflow-x: auto; }

  #main .kt-akt .badge { white-space: normal; max-width: 100%; overflow-wrap: anywhere; }
  #main .kt-akt tr.item.crit { box-shadow: inset 4px 0 0 var(--bad), var(--shadow-sm); }
  #main .kt-akt tr.item > td.kt-sec { grid-row: 1; grid-column: 1; align-self: center; }
  #main .kt-akt tr.item > td.kt-sec input { width: 22px; height: 22px; }
  #main .kt-akt tr.item > td.kt-exp { grid-row: 1; grid-column: 1; }
  #main .kt-akt tr.item > td.kt-sec + td.kt-exp { grid-column: 2; }
  #main .kt-akt tr.item > td.kt-sec ~ td.kt-no { grid-column: 3 / 5; }
  body.ro #main .kt-akt tr.item > td.kt-exp { grid-column: 1; }
  body.ro #main .kt-akt tr.item > td.kt-no { grid-column: 2 / 5; }
  #main .kt-akt tr.item > td.kt-no { grid-row: 1; grid-column: 2 / 5; align-self: center; }
  #main .kt-akt tr.item > td.kt-is { grid-row: 1; grid-column: 5 / 7; justify-self: end; }
  #main .kt-akt .exp { width: 32px; height: 32px; font-size: var(--fs-xl); }
  #main .kt-akt .kt-o1 { order: 1; } #main .kt-akt .kt-o2 { order: 2; } #main .kt-akt .kt-o3 { order: 3; }
  #main .kt-akt .kt-o4 { order: 4; } #main .kt-akt .kt-o5 { order: 5; } #main .kt-akt .kt-o6 { order: 6; }
  #main .kt-akt .kt-o7 { order: 7; } #main .kt-akt .kt-o8 { order: 8; } #main .kt-akt .kt-o9 { order: 9; }

  #main .kt-sv tr.item.late { border-color: color-mix(in srgb, var(--bad) 45%, var(--line)); }
  #main .kt-sv tr.item > td.kt-sira, #main .kt-sv tr.item > td.kt-gen { grid-column: 1 / -1; }
  #main .kt-sv tr.item > td.hz { padding: 6px 8px; border-radius: var(--r-sm); background: var(--panel-2); }
  #main .kt-sv tr.item > td.hz.ok { background: var(--ok-soft); }
  #main .kt-sv tr.item > td.hz.gec { background: var(--bad-soft); }
  #main .kt-sv td.hz label { display: flex; min-height: 28px; }
  #main .kt-sv td.hz input { width: 20px; height: 20px; }
  #main .kt-sv input.tiny { width: 80px; text-align: left; }
  /* Kat planı + yürüme: plan üstte, model altta */
  .mdl-view.plan-bolu { min-height: 80vh; }
  .mdl-view.plan-bolu .mdl-canvas { left: 0; top: var(--plan-w, 50%); }
  .mdl-plan { width: auto; right: 0; bottom: auto; height: var(--plan-w, 50%); border-right: 0; border-bottom: 1px solid var(--line); }
  .mdl-bolucu { left: 0; right: 0; width: auto; height: 12px; margin: -6px 0 0; top: var(--plan-w, 50%); bottom: auto; cursor: row-resize; }
  .mdl-plan-bar input[type="number"] { font-size: 16px; }
  /* Model araç çubuğu: gruplar alt alta, ayraçsız */
  .mdl-grup + .mdl-grup { padding-left: 0; border-left: 0; }
  .mdl-bar .mdl-arac { margin-left: 0; }
  /* Krediler: ilerleme çubuğu ve yazısı alt alta, özet kalemleri iki sütun */
  .fn-kr-ilr { grid-template-columns: 1fr; gap: 4px; }
  .fn-kr-ozet { grid-template-columns: 1fr 1fr; }
  /* Yeni proje penceresi: alanlar ve kategori seçenekleri alt alta */
  .np-iki, .np-secler { grid-template-columns: 1fr; }
  /* Proje ayarları: bölümler üstte yatay kayan şerit, pencere içerik boyunda */
  .modal.pa-modal, .modal.pa-modal.isc-tam, .modal.pa-modal.ynt-modal, .modal.pa-modal.ex-modal { height: auto; max-height: none; overflow: visible; }
  .ex-nav { flex: none; padding-left: 6px; }
  .ex-bas { flex-direction: column; }
  .ex-foot { flex-wrap: wrap; }
  .ex-ozet { flex-basis: 100%; }
  .pa-duzen { flex: none; flex-direction: column; }
  .pa-nav { width: auto; flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line); padding: var(--sp-2); }
  .pa-nav-b { flex: none; padding: 6px 12px; }
  .pa-nav-b small { display: none; }
  .modal.pa-modal .pa-body { flex: none; overflow: visible; padding: var(--sp-4); }
  .pa-satir { grid-template-columns: 1fr; gap: 6px; }
  .pa-satir > label { padding-top: 0; }
  /* Pencere formları ve görünüm düzeni tek sütun */
  :where(.modal) .form { grid-template-columns: 1fr; gap: 4px 0; }
  :where(.modal) .form > label:not(:first-child) { margin-top: 8px; }
  .pn-dz-body { grid-template-columns: 1fr; }
  /* Sistem yönetimi sayfası */
  .ynt-s-ust { padding: 8px 12px; gap: 6px 12px; }
  .ynt-s-sekme { order: 3; flex-basis: 100%; }
  .ynt-s-don { margin-left: auto; }
  .ynt-s-ic { padding: var(--sp-3) 12px 40px; }
  .ynt-f-bas { flex-wrap: wrap; gap: 4px 8px; padding: 10px 12px; }
  .ynt-f-say { flex-basis: 100%; padding-left: 22px; white-space: normal; }
  .ynt-f-ic { padding: var(--sp-2) 10px 12px; }
  .ynt-bolum-ic { padding-left: 0; overflow-x: auto; }
}

/* Proje paketi (paket.js) */
.pk-secim { display: flex; flex-direction: column; gap: 6px; }
.pk-secim > label { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pk-alt { margin-left: 26px; }
.pk-sorma { display: flex; align-items: center; gap: 6px; margin-top: var(--sp-2); }
.pk-alt select { min-width: 260px; max-width: 100%; }
