/* ==========================================================
   MEDYAPARK YÖNETİM PANELİ — bağımsız tasarım sistemi
   (theme.css'e bağlı değildir; ön yüzü etkilemez)
   ========================================================== */
:root{
  --c-bg:#f4f5f8; --c-panel:#ffffff; --c-alt:#f5f8fd;
  --c-ink:#111827; --c-ink2:#4b5563; --c-ink3:#646c80;   /* S13: #8b93a7 (3.1:1) → 5.3:1 beyaz, 4.9:1 zemin */
  --c-line:#e3e8ef; --c-line2:#eef2f6;
  --c-accent:#e11d48; --c-accent-d:#be123c; --c-accent-soft:#fde8ec;
  --c-brand:#e11d48; --c-brand-d:#be123c; --c-brand-dk:#881337; --c-brand-soft:#fdeaee;
  --c-violet:#7c5cff; --c-amber:#d99100; --c-amber-soft:#fdf3dd;
  /* S4.2 §14 — global olustur eylemleri icin semantik renk kumesi.
     Yeni bir tasarim sistemi DEGIL: mevcut paletin uzerine dort taninabilir
     ton. Ayni eylem uygulamanin her yerinde AYNI rengi kullanir. */
  --c-violet-soft:#efeaff; --c-violet-t:#5b3fd6;   /* S19: açık mor zeminde metin 5.6:1 (önce 3.7:1) */
  --c-blue:#2563eb; --c-blue-soft:#e7effd;
  --c-orange:#d9670f; --c-orange-soft:#fdeee1;
  --c-green:#1f9d55; --c-green-soft:#e4f5ea; --c-cyan:#0ea5b7;
  --c-red:#d64545; --c-red-soft:#fdeaea; --c-red-t:#b42323; --c-amber-t:#8a5a00;   /* S13: açık zeminde metin için ≥5:1 */ --c-slate:#8b93a7;
  --c-warn:#f0a828;
  --sd:#0d1730; --sd2:#16233f; --sd-ink:#96a2bb;
  --r:6px; --r-sm:4px;
  --sh:none;
  --c-hair:#e6eaf2;
  --f:"Plus Jakarta Sans","Outfit",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --fm:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  /* ---- S19 — ORTAK TASARIM DEĞİŞKENLERİ ----
     Yeni bir tasarım sistemi değil: taban kuralların (düğme, alan, kart,
     başlık, tablo, odak, durum) bağlandığı tek kaynak. Sayfaya özel yama
     yazmak yerine bu değerler değiştirilir.
     Tipografi: ekran başlığı > kart/bölüm başlığı > gövde > yardımcı > etiket. */
  --fs-title:16px; --fs-card:14.5px; --fs-body:13.5px; --fs-sm:12.5px; --fs-xs:11.5px;
  --fw-title:650; --fw-strong:600;
  /* Kontrol yüksekliği: form alanı / düğme (--ctl-h) ve araç çubuğu, süzgeç,
     küçük düğme (--ctl-h-sm). Aynı satırdaki alan, seçim kutusu ve düğme eşit. */
  --ctl-h:36px; --ctl-h-sm:32px; --r-ctl:9px;
  /* Kart: beyaz yüzey, okunur ama hafif sınır, neredeyse görünmez gölge. */
  --r-card:14px; --c-card-line:#dde2ea; --sh-card:0 1px 2px rgba(16,24,40,.04);
  --c-row:#e9edf3;                               /* tablo satır ayrımı */
  /* Klavye odağı: durum renklerinden (kırmızı/turuncu/yeşil), seçimden (koyu
     dolgu + ✓) ve hover'dan AYRI tek renk. Beyazda 6.4:1. */
  --c-focus:#5b3fd6; --c-focus-soft:#ebe6ff;
  /* Mecra durum renkleri — Mecralar tablosu, rapor önizlemesi, rozetler.
     Excel/PDF aynı tonları kullanır (rapor.js RP_DR, medya.js MD_RENK). */
  --st-yayin-bg:#F4C4BE; --st-yayin-ink:#7F1A10; --st-yayin-bar:#D24A3C; --st-yayin-soft:#FBE6E3;
  --st-ops-bg:#FAD6A0;   --st-ops-ink:#6E3D00;   --st-ops-bar:#E38B12;   --st-ops-soft:#FDEED6;
  --st-musait-bg:#CBEAD2;--st-musait-ink:#155A2A;--st-musait-bar:#3AA35A;
}
/* Dokunmatik genişlikte hedefler büyür (aynı değişkenler). */
@media(max-width:760px){ :root{--ctl-h:40px; --ctl-h-sm:36px;} }
*{box-sizing:border-box;}
body{margin:0;color:var(--c-ink);font-family:var(--f);font-size:13.5px;line-height:1.55;letter-spacing:-.005em;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss01";
  background:var(--c-bg);}
.main{background:var(--c-bg);}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.022em;}
.mono{font-family:var(--fm);font-feature-settings:"tnum";letter-spacing:-.02em;}
.muted,.dim{color:var(--c-ink3);}
.ic{flex:0 0 auto;}

/* ---------- butonlar ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--r-ctl);
  min-height:var(--ctl-h);padding:0 14px;font-size:var(--fs-body);font-weight:550;transition:.13s;border:1px solid transparent;line-height:1.2;}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--c-accent);color:#fff;} .btn-primary:hover{background:var(--c-accent-d);}
.btn-outline{background:#fff;border-color:var(--c-line);color:var(--c-ink);} .btn-outline:hover{border-color:var(--c-ink3);background:var(--c-alt);}
.btn-ghost{background:var(--c-line2);color:var(--c-ink2);} .btn-ghost:hover{background:var(--c-line);color:var(--c-ink);}
.btn-danger{background:var(--c-red-soft);color:var(--c-red-t);} .btn-danger:hover{background:#fbdcdc;}
.btn-sm{min-height:var(--ctl-h-sm);padding:0 11px;font-size:var(--fs-sm);}

/* ---------- semantik olustur eylemleri (S4.2 §14-§15) ----------
   Dort ayri dolu renk "gokkusagi" yaratirdi (§15). Bu yuzden yalniz
   BIRINCIL eylem (Guncelleme) dolu kirmizi kalir; digerleri kendi
   semantik tonunun HAFIF zeminini tasir. Renk sus degil, TANIMA
   yardimcisidir: ayni eylem hangi ekranda olursa olsun ayni tonu
   kullanir - Isler'deki `Yeni İş` de mavidir, Hafiza'daki
   `Hafızaya Ekle` de mordur, Operasyon'daki kayit ekleme de turuncudur.
   Sayfaya ozel inline renk YAZILMAZ; hep bu siniflar kullanilir. */
.act{border:1px solid transparent;font-weight:600;}
.act .ic{opacity:.9;}
.act-upd{background:var(--c-accent);color:#fff;}
.act-upd:hover{background:var(--c-accent-d);}
.act-work{background:var(--c-blue-soft);color:var(--c-blue);border-color:#cfe0fb;}
.act-work:hover{background:#d8e6fd;border-color:var(--c-blue);}
.act-mem{background:var(--c-violet-soft);color:var(--c-violet-t);border-color:#ddd4fb;}
.act-mem:hover{background:#e6dfff;border-color:var(--c-violet);}
.act-ops{background:var(--c-orange-soft);color:var(--c-orange);border-color:#f8dcc4;}
.act-ops:hover{background:#fbe3d0;border-color:var(--c-orange);}

/* ---------- form ---------- */
.inp,textarea.inp,select.inp{width:100%;height:var(--ctl-h);padding:0 12px;border:1px solid #d9dfe9;border-radius:var(--r-ctl);
  font-size:var(--fs-body);font-family:inherit;background:#fff;outline:none;transition:.13s;color:var(--c-ink);}
/* Odak: hata gibi okunan kırmızı çerçeve yerine ortak odak rengi. */
.inp:focus,textarea.inp:focus,select.inp:focus{border-color:var(--c-focus);box-shadow:0 0 0 3px var(--c-focus-soft);}
textarea.inp{height:auto;padding:9px 12px;resize:vertical;min-height:70px;}
.flabel{display:block;font-size:var(--fs-xs);font-weight:var(--fw-strong);color:var(--c-ink2);margin:0 0 5px;letter-spacing:.01em;}
.field{margin-bottom:12px;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}
.colorwrap{display:flex;gap:8px;align-items:center;}
.colorwrap input[type=color]{width:40px;height:36px;border:1px solid var(--c-line);border-radius:var(--r);padding:2px;background:#fff;cursor:pointer;}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;border-radius:var(--r-sm);
  padding:3px 8px;background:var(--c-line2);color:var(--c-ink2);}
.pill.teal{background:var(--c-accent-soft);color:var(--c-accent-d);}
.pill.sand{background:var(--c-amber-soft);color:var(--c-amber-t);}
.pill.clay{background:var(--c-red-soft);color:var(--c-red-t);}
.chip{background:var(--c-line2);color:var(--c-ink2);border-radius:var(--r-sm);padding:2px 8px;font-size:12px;font-weight:600;}

/* ---------- giriş ekranı ---------- */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#1b0a10 0%,#3f0d1f 55%,#881337 130%);}
.login .box{background:#fff;border-radius:8px;padding:32px;width:340px;box-shadow:0 20px 50px -12px rgba(0,0,0,.45);}
.login .lg{font-size:22px;font-weight:700;margin-bottom:6px;letter-spacing:-.02em;}
.login .lg span{color:var(--c-accent);}

/* ---------- kabuk ---------- */
.app{display:flex;min-height:100vh;}
/* S18: 252 → 216 px. Ölçüm (tüm gruplar açık, Yönetim + Team): en uzun öğe
   "Planlama Talepleri" 200 px'te kırılıyor, 208'de sığıyor; 8 px pay. Yazı küçültülmedi. */
.side{width:216px;flex:0 0 216px;color:#4b5563;display:flex;flex-direction:column;
  position:sticky;top:0;height:100vh;padding:0 0 8px;
  background:#ffffff;border-right:1px solid var(--c-line);}
.brand{padding:18px 16px 16px;border-bottom:1px solid var(--c-line2);margin-bottom:10px;}
.brand img{max-width:100%;max-height:46px;width:auto;height:auto;display:block;object-fit:contain;}
.brand-yer{display:block;height:36px;}                      /* logo ölçülene dek ayrılan yer */
/* Yalnız açık renkli (koyu zemin için hazırlanmış) logo varsa koyu plakada gösterilir. */
.brand-koyu{display:inline-block;background:var(--sd);border-radius:8px;padding:7px 10px;max-width:100%;}
.brand .wm{font-size:18px;font-weight:800;color:var(--c-ink);letter-spacing:-.02em;}
.brand .wm b{color:var(--c-accent);font-weight:800;}
.brand-sub{display:block;margin-top:6px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#9aa1af;}
.nav-scroll{flex:1;overflow-y:auto;padding:0 8px;}
.nav-grp{font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#9aa1af;padding:14px 10px 6px;}
/* --- gruplu / acilir menu --- */
.nav-g{margin-bottom:3px;}
.nav-gh{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border:0;cursor:pointer;
  background:transparent;color:#6b7280;border-radius:11px;font:inherit;font-size:11px;font-weight:800;
  letter-spacing:.1em;text-transform:uppercase;transition:.15s;}
.nav-gh:hover{background:#f3f4f6;color:var(--c-ink);}
.nav-gh span{flex:1;text-align:left;}
.nav-gh .ic{opacity:.85;}
.nav-ch{transition:transform .2s;opacity:.6;flex:0 0 auto;}
.nav-g.open .nav-ch{transform:rotate(180deg);}
.nav-gb{display:none;padding:2px 0 8px 10px;margin-left:9px;border-left:1px solid var(--c-line2);}
.nav-g.open .nav-gb{display:block;}
.nav-gb .navi{padding:9px 12px;font-size:13.5px;}
.navi{display:flex;align-items:center;gap:11px;width:100%;padding:10px 12px;border-radius:11px;
  font-size:13.5px;font-weight:500;color:#4b5563;transition:.12s;text-align:left;margin-bottom:1px;}
.navi:hover{background:#f5f6f8;color:var(--c-ink);}
.navi.on{background:var(--c-accent-soft);color:var(--c-accent-d);font-weight:700;}
.navi.on .ic{opacity:1;}
.navi .ic{opacity:.8;}
.logout{margin:6px 8px 0;color:#9aa1af;} .logout:hover{background:var(--c-red-soft);color:var(--c-red-t);}

.main{flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{height:64px;background:rgba(252,253,255,.85);backdrop-filter:blur(12px);border-bottom:1px solid var(--c-hair);
  display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:sticky;top:0;z-index:30;}
.topbar h2{font-size:var(--fs-title);font-weight:var(--fw-title);letter-spacing:-.025em;}
.tb-l{display:flex;align-items:baseline;gap:10px;min-width:0;}
/* S13: uzun başlık (ör. "Muhasebeye Gidecekler") dar ekranda kullanıcı
   rozetini sayfa dışına itmesin; başlık kısalır, tam metin ekranın kendi
   başlığında zaten var. */
.topbar h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tb-crumb{font-size:12.5px;color:var(--c-ink3);}
.content{padding:20px 22px 28px;flex:1;}

/* ---------- kart ---------- */
.card,.sec-card{background:var(--c-panel);border:1px solid var(--c-card-line);border-radius:var(--r-card);box-shadow:var(--sh-card);margin-bottom:14px;}
.sec-card{padding:16px;}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--c-row);}
.card-h h3{font-size:var(--fs-card);font-weight:var(--fw-strong);letter-spacing:-.015em;}
.card-b{padding:18px;}
.sec-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap;}
.sec-head h3{font-size:var(--fs-title);font-weight:var(--fw-title);letter-spacing:-.025em;}
.sec-head .sub{margin:3px 0 0;font-size:var(--fs-sm);color:var(--c-ink3);}
.empty{color:var(--c-ink3);font-size:13px;margin:0;padding:8px 0;}
.banner{background:var(--c-accent-soft);border:1px solid #cfd9ff;color:#2b3f8f;border-radius:var(--r);
  padding:11px 14px;font-size:12.5px;line-height:1.55;margin-bottom:14px;}

/* ---------- KPI ---------- */
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px;}
.kpi-c{background:var(--c-panel);border:1px solid var(--c-hair);border-radius:14px;padding:17px 18px 16px;
  position:relative;overflow:hidden;transition:border-color .16s,background .16s;}
.kpi-c:hover{border-color:#d3dbea;background:#fcfdff;}

.kpi-c.accent{--kc:var(--c-accent);} .kpi-c.violet{--kc:var(--c-violet);}
.kpi-c.amber{--kc:var(--c-amber);} .kpi-c.green{--kc:var(--c-green);}
.kpi-ic{position:absolute;right:14px;top:14px;color:var(--kc);width:30px;height:30px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--kc) 12%,#fff);}
.kpi-n{font-size:32px;font-weight:600;letter-spacing:-.035em;line-height:1.05;color:var(--c-ink);}
.kpi-t{font-size:12.5px;font-weight:550;color:var(--c-ink);margin-top:7px;}
.kpi-s{font-size:11.5px;color:var(--c-ink3);margin-top:3px;letter-spacing:0;}

.grid-2{display:grid;grid-template-columns:1.45fr 1fr;gap:14px;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}

/* ---------- grafikler ---------- */
.chart{position:relative;padding-left:34px;}
.cgrid{position:absolute;left:0;right:0;top:0;height:var(--ch);display:flex;flex-direction:column;justify-content:space-between;pointer-events:none;}
.cg-l{position:relative;height:0;border-top:1px dashed #dfe5f0;}
.cg-l span{position:absolute;left:0;top:-8px;font-size:10px;color:var(--c-ink3);font-family:var(--fm);width:30px;text-align:right;}
.bars{display:flex;align-items:flex-end;gap:5px;height:var(--ch);position:relative;}
.bcol{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;position:relative;}
.bstack{width:100%;max-width:38px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;
  border-radius:7px 7px 3px 3px;overflow:hidden;position:relative;cursor:default;}
.bstack i{display:block;width:100%;transform-origin:bottom;animation:grow .5s cubic-bezier(.22,1,.36,1) both;}
.b-rez{height:var(--pb);background:#f0a828;}
.b-dolu{height:var(--pa);background:#3b5bea;}
.b-zero{height:3px;background:var(--c-line);border-radius:2px;}
@keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.bstack:hover .b-rez,.bstack:hover .b-dolu{filter:brightness(1.08);}
.blab{margin-top:7px;font-size:10.5px;color:var(--c-ink3);font-family:var(--fm);}
.btip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px);
  background:#111827;color:#fff;border-radius:6px;padding:7px 10px;font-size:11.5px;white-space:nowrap;
  opacity:0;pointer-events:none;transition:.14s;z-index:20;line-height:1.5;box-shadow:0 6px 18px -6px rgba(0,0,0,.5);}
.btip b{display:block;font-weight:600;color:#9db4ff;} .btip b.rz{color:#f7c05a;}
.bcol:hover .btip{opacity:1;transform:translateX(-50%) translateY(0);}

.lgnd{display:flex;gap:12px;font-size:11.5px;color:var(--c-ink2);}
.lgnd span{display:inline-flex;align-items:center;gap:5px;}
.lgnd i,.dlist i{width:9px;height:9px;border-radius:3px;display:inline-block;}
.donut-wrap{display:flex;align-items:center;gap:22px;flex-wrap:wrap;justify-content:center;}
.donut{position:relative;flex:0 0 auto;}
.dseg{animation:dash .8s cubic-bezier(.22,1,.36,1) both;transition:stroke-width .15s;}
.dseg:hover{stroke-width:19;}
@keyframes dash{from{stroke-dasharray:0 999}}
.donut-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.donut-c b{font-size:26px;font-weight:600;font-family:var(--fm);letter-spacing:-.04em;}
.donut-c span{font-size:11px;color:var(--c-ink3);}
.dlist{display:flex;flex-direction:column;gap:9px;font-size:12.5px;}
.dlist div{display:flex;align-items:center;gap:9px;}
.dlist b{margin-left:auto;font-weight:600;}
.hbars{display:flex;flex-direction:column;gap:11px;}
.hb{display:flex;align-items:center;gap:11px;font-size:12.5px;}
.hb-l{flex:0 0 84px;color:var(--c-ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hb-t{flex:1;height:10px;background:#eef1f7;border-radius:6px;overflow:hidden;}
.hb-t i{display:block;height:100%;border-radius:6px;width:var(--w);background:var(--c);
  animation:widen .65s cubic-bezier(.22,1,.36,1) both;}
@keyframes widen{from{width:0}to{width:var(--w)}}
.hb-v{flex:0 0 auto;font-family:var(--fm);font-size:12px;color:var(--c-ink);min-width:22px;text-align:right;}

/* ---------- tablo ---------- */
.tbl{width:100%;border-collapse:collapse;font-size:13px;}
.tbl th{text-align:left;padding:10px 16px;font-size:11px;font-weight:650;letter-spacing:.05em;
  text-transform:uppercase;color:var(--c-ink2);background:#f6f8fb;border-bottom:1px solid var(--c-line);}
.tbl td{padding:11px 16px;border-bottom:1px solid var(--c-row);}
.tbl tbody tr:last-child td{border-bottom:0;}
.tbl.rowlink tbody tr{cursor:pointer;} .tbl tbody tr:hover{background:var(--c-alt);}
.badge-st{display:inline-block;padding:3px 10px;border-radius:7px;font-size:11.5px;font-weight:600;}
.st-yeni{background:var(--c-accent-soft);color:var(--c-accent-d);}
.st-gorusuldu{background:var(--c-amber-soft);color:var(--c-amber-t);}
.st-onaylandi{background:var(--c-green-soft);color:var(--c-green);}
.st-iptal{background:var(--c-red-soft);color:var(--c-red-t);}
.list-item{display:flex;align-items:center;gap:12px;padding:12px 15px;border:1px solid var(--c-hair);
  border-radius:11px;margin-bottom:7px;background:#fff;transition:border-color .14s;}
.list-item:hover{border-color:#d3dbea;}
.list-item .nm{font-weight:600;font-size:13.5px;}
.list-item .meta{color:var(--c-ink3);font-size:12px;flex:1;}
.addbar{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap;align-items:center;}
.addbar .abt{font-size:11.5px;font-weight:700;letter-spacing:.06em;color:var(--c-ink2);text-transform:uppercase;min-width:64px;}
.blk-off{opacity:.55;}
.blk-off .blk-head .bt{text-decoration:line-through;text-decoration-thickness:1px;}

/* ---------- kanban ---------- */
.kanban{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;align-items:stretch;}
.kcol{background:#fafbfe;border:1px solid var(--c-hair);border-radius:12px;display:flex;flex-direction:column;min-height:220px;}
.kcol-h{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--c-line);}
.kcol-h h4{font-size:12.5px;font-weight:650;flex:1;}
.kdot{width:8px;height:8px;border-radius:2px;background:var(--kc,var(--c-slate));}
.kcount{font-size:11.5px;color:var(--c-ink3);background:#fff;border:1px solid var(--c-line);border-radius:var(--r-sm);padding:1px 7px;}
.kcol.violet{--kc:var(--c-violet);} .kcol.amber{--kc:var(--c-amber);} .kcol.cyan{--kc:var(--c-cyan);}
.kcol.green{--kc:var(--c-green);} .kcol.slate{--kc:var(--c-slate);} .kcol.rose{--kc:var(--c-accent);}
.kcol-b{padding:10px;display:flex;flex-direction:column;gap:8px;flex:1;}
.kcard{background:#fff;border:1px solid var(--c-hair);border-left:3px solid var(--kc,var(--c-slate));
  border-radius:10px;padding:11px 12px;transition:border-color .14s;}
.kcard:hover{border-color:#d3dbea;}
.kc-t{font-size:13px;font-weight:600;line-height:1.35;}
.kc-m{font-size:12px;color:var(--c-ink3);margin-top:4px;line-height:1.45;}
.kc-a{display:flex;align-items:center;gap:4px;margin-top:9px;padding-top:8px;border-top:1px solid var(--c-line2);}
.kc-a button{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--r-sm);
  color:var(--c-ink3);transition:.12s;}
.kc-a button:hover{background:var(--c-line2);color:var(--c-ink);}
.kc-a .del{margin-left:auto;} .kc-a .del:hover{background:var(--c-red-soft);color:var(--c-red-t);}
.kempty{font-size:12px;color:var(--c-ink3);text-align:center;padding:14px 0;margin:0;}
.kadd{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:5px;padding:9px;font-size:12.5px;font-weight:550;
  color:var(--c-ink3);border-top:1px solid var(--c-line);transition:.12s;}
.kadd:hover{color:var(--c-accent-d);background:var(--c-accent-soft);}

/* ---------- modal ---------- */
.modal-bg{position:fixed;inset:0;background:rgba(17,24,39,.5);display:none;align-items:center;justify-content:center;z-index:200;padding:20px;}
.modal-bg.open{display:flex;}
.modal{background:#fff;border-radius:16px;padding:22px;width:560px;max-width:100%;max-height:88vh;overflow-y:auto;
  box-shadow:0 20px 60px -20px rgba(20,30,60,.35);}
.modal h3{font-size:var(--fs-title);font-weight:var(--fw-title);}

/* ---------- yardımcı ---------- */
.sec-card.lgrp{padding:0;overflow:hidden;}
.sec-card.lgrp>summary{cursor:pointer;font-weight:600;font-size:14px;padding:14px 16px;list-style:none;
  display:flex;align-items:center;gap:12px;transition:background .12s;letter-spacing:-.015em;}
.sec-card.lgrp>summary::-webkit-details-marker{display:none;}
.sec-card.lgrp>summary:hover{background:#f7f9fc;}
.sec-card.lgrp[open]>summary{border-bottom:1px solid var(--c-hair);}
.sec-card.lgrp[open]>summary .chev{transform:rotate(180deg);color:var(--c-accent);}
.lgrp-m{font-size:12px;color:var(--c-ink3);font-weight:400;margin-left:auto;}
.sec-card.lgrp>*:not(summary){padding-left:16px;padding-right:16px;}
.sec-card.lgrp>.rg-legend{padding-bottom:14px;}
.year-nav{display:inline-flex;align-items:center;gap:2px;background:#fff;border:1px solid var(--c-line);border-radius:var(--r);padding:2px;}
.year-nav button{width:28px;height:28px;border-radius:var(--r-sm);color:var(--c-ink2);font-size:15px;}
.year-nav button:hover{background:var(--c-line2);}
.year-nav .yr{padding:0 10px;font-size:13px;font-weight:650;font-family:var(--fm);}
.switch{display:inline-flex;align-items:center;gap:9px;cursor:pointer;user-select:none;}
.switch input{position:absolute;opacity:0;width:0;height:0;}
.switch .sl{width:38px;height:21px;border-radius:11px;background:#cbd2dd;position:relative;transition:.15s;flex:0 0 auto;}
.switch .sl::after{content:"";position:absolute;top:2.5px;left:2.5px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.15s;box-shadow:0 1px 2px rgba(0,0,0,.25);}
.switch input:checked + .sl{background:var(--c-accent);}
.switch input:checked + .sl::after{left:19.5px;}
.switch .txt{font-size:13.5px;font-weight:500;}
.fld-box{border:1px solid var(--c-line);border-radius:var(--r);padding:13px;margin:12px 0;background:var(--c-alt);}
.blk{border:1px solid var(--c-line);border-radius:var(--r);padding:12px;margin-bottom:10px;background:#fff;}
.blk-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px;}
.year-strip{display:flex;gap:4px;flex-wrap:wrap;}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block;}
/* ================= REZERVASYON IZGARASI (A/B yüzey) ================= */
.rtwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;padding:2px 2px 6px;}
.rgrid{display:inline-block;min-width:100%;}
.rg-row{display:flex;align-items:center;gap:12px;margin-bottom:6px;}
.rg-row:last-child{margin-bottom:0;}
.rg-lbl{flex:0 0 auto;width:92px;font-size:13px;font-weight:700;color:var(--ink,#1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rg-m{display:flex;gap:4px;flex:0 0 auto;}
.rg-head{margin-bottom:8px;}
.rg-head .rg-lbl{font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink3,#86868b);}
.rg-mh{width:calc(30px*2 + 4px);justify-content:center;}
.rg-mh span{font-size:11.5px;font-weight:700;color:var(--ink2,#6e6e73);}

.rcell{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:700;color:#fff;cursor:pointer;transition:transform .12s,box-shadow .12s,background .12s;user-select:none;}
.rcell i{font-style:normal;}
.rcell:hover{transform:translateY(-1px);box-shadow:0 4px 10px -3px rgba(0,0,0,.3);}
.rcell.bos{background:#3fb950;}
.rcell.dolu{background:#e5484d;}
.rcell.rezerve{background:#f0883e;}
.rcell.sel{background:#1f6feb;}
.rcell.yok{background:#f4f5f7;color:#c3c8cf;box-shadow:inset 0 0 0 1px #e6e8eb;cursor:default;}
.rcell.yok:hover{transform:none;box-shadow:inset 0 0 0 1px #e6e8eb;}
/* Salt okuma hücresi (team_member) — tıklanabilir görünmesin, hover
   bilgi kartı yine çalışır (parity audit S1 §3). */
.rcell.ro{cursor:default;}
.rcell.ro:hover{transform:none;box-shadow:none;}

.rg-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px;padding-top:12px;
  border-top:1px solid var(--line2);font-size:12.5px;color:var(--ink2,#6e6e73);}
.rg-legend span{display:inline-flex;align-items:center;gap:6px;}
.rg-legend .sw{width:14px;height:14px;border-radius:4px;display:inline-block;}
.rg-legend .sw.bos{background:#3fb950;} .rg-legend .sw.dolu{background:#e5484d;} .rg-legend .sw.rezerve{background:#f0883e;}
.rg-legend .lg-surf b{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;
  background:var(--bg2,#f5f5f7);border:1px solid var(--line);font-size:11px;color:var(--ink,#1d1d1f);}
.rg-legend .lg-sep{width:1px;height:16px;background:var(--line);}

/* bilgi kartı */
.rtip{position:fixed;z-index:9999;display:none;background:#fff;border:1px solid var(--line);border-radius:12px;
  box-shadow:0 12px 34px -8px rgba(0,0,0,.32);padding:11px 13px;min-width:190px;max-width:260px;pointer-events:none;font-size:13px;}
.rtip-t{font-weight:700;font-size:13px;margin-bottom:8px;color:var(--ink,#1d1d1f);}
.rtip-r{display:flex;justify-content:space-between;gap:14px;padding:3px 0;font-size:12.5px;}
.rtip-r span{color:var(--ink3,#86868b);} .rtip-r b{font-weight:600;text-align:right;}
.rtip-r b.st-dolu{color:#e5484d;} .rtip-r b.st-rezerve{color:#f0883e;} .rtip-r b.st-bos{color:#2f9c41;}
.rtip-n{margin-top:8px;padding-top:8px;border-top:1px solid var(--line2);font-size:12px;color:var(--ink2,#6e6e73);}

@media(max-width:760px){
  .rg-lbl{width:66px;font-size:12px;} .rg-row{gap:9px;}
  .rcell{width:28px;height:28px;} .rg-mh{width:calc(28px*2 + 4px);}
}

/* ---------- HARİTA (konum işaretleme) ---------- */
.hmap-grid{display:grid;grid-template-columns:300px 1fr;gap:14px;align-items:start;}
.hmap{height:540px;border-radius:var(--r);border:1px solid var(--c-line);overflow:hidden;background:#e9edf2;z-index:1;}
.hlist{max-height:492px;overflow-y:auto;border:1px solid var(--c-line);border-radius:var(--r);background:#fff;}
.hrow{display:flex;align-items:center;gap:9px;padding:9px 11px;border-bottom:1px solid var(--c-line2);cursor:pointer;transition:.11s;}
.hrow:last-child{border-bottom:0;}
.hrow:hover{background:var(--c-alt);}
.hrow.on{background:var(--c-accent-soft);box-shadow:inset 3px 0 0 var(--c-accent);}
.hdot{width:9px;height:9px;border-radius:2px;flex:0 0 auto;}
.hnm{flex:1;min-width:0;}
.hnm b{display:block;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hnm span{display:block;font-size:11.5px;color:var(--c-ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hst{font-size:12.5px;color:var(--c-ink3);flex:0 0 auto;}
.hbar{display:grid;grid-template-columns:1fr auto 1fr auto;gap:8px;margin-bottom:10px;}
.hbar .inp{margin:0;}
.hgeores{border:1px solid var(--c-line);border-radius:var(--r);background:#fff;margin-bottom:10px;overflow:hidden;max-height:180px;overflow-y:auto;}
.hgeores>div{padding:8px 11px;font-size:12.5px;border-bottom:1px solid var(--c-line2);cursor:pointer;line-height:1.35;}
.hgeores>div:last-child{border-bottom:0;}
.hgeores>div:hover{background:var(--c-alt);}
.hgeores>div.muted{cursor:default;}
.hselbar{display:flex;align-items:center;gap:11px;flex-wrap:wrap;background:var(--c-alt);border:1px solid var(--c-line);
  border-radius:var(--r);padding:10px 12px;margin-bottom:12px;font-size:13.5px;min-height:44px;}
.hcoord{font-family:var(--fm);font-size:12px;color:var(--c-ink2);background:#fff;border:1px solid var(--c-line);
  border-radius:var(--r-sm);padding:4px 9px;}

/* ---------- yıl hücreleri (takvim) ---------- */
.ycell{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:28px;border-radius:var(--r-sm);
  font-size:11.5px;font-weight:600;background:var(--c-green-soft);color:var(--c-green);cursor:pointer;}
.ycell.dolu{background:var(--c-red-soft);color:var(--c-red-t);}
.ycell.rezerve{background:var(--c-amber-soft);color:var(--c-amber-t);}
.ycell.past{background:var(--c-line2);color:var(--c-ink3);cursor:default;}
.ycell.sepette{background:var(--c-accent);color:#fff;}
.ycell.sm{min-width:30px;height:24px;font-size:10.5px;}

/* ==========================================================
   PANEL — TABLET & MOBİL
   ========================================================== */
@media(max-width:1200px){
  .kpi-row{grid-template-columns:repeat(2,1fr);}
  .grid-2,.grid-3{grid-template-columns:1fr;}
  .kanban{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:900px){
  .app{flex-direction:column;}
  .side{width:100%;flex:none;height:auto;position:sticky;top:0;z-index:60;padding:0;
    flex-direction:row;align-items:center;gap:8px;overflow-x:auto;}
  .brand{padding:8px 12px;border-bottom:0;margin:0;flex:0 0 auto;display:flex;align-items:center;gap:8px;}
  .brand img{max-height:28px;max-width:150px;} .brand .wm{font-size:15px;}
  .brand-yer{height:28px;width:110px;} .brand-koyu{padding:4px 8px;}
  .brand-sub{display:none;}
  .nav-scroll{display:flex;gap:4px;overflow-x:auto;padding:6px 8px;flex:1;}
  .nav-grp{display:none;}
  /* mobilde gruplar yatay serit olur, basliklar gizlenir */
  .nav-g{margin:0;display:contents;}
  .nav-gh{display:none;}
  .nav-gb{display:block !important;padding:0;margin:0;border:0;white-space:nowrap;}
  .nav-gb .navi{display:inline-flex;width:auto;}
  .navi{white-space:nowrap;padding:7px 12px;font-size:13px;margin:0;flex:0 0 auto;width:auto;min-height:34px;}
  .navi span{display:inline-block;}
  .logout{margin:0 8px 0 0;flex:0 0 auto;}
  .topbar{height:48px;padding:0 14px;} .topbar h2{font-size:15px;}
  .content{padding:14px;}
  .kanban{grid-template-columns:1fr;}
  .kcol{min-height:0;}
  .hmap-grid{grid-template-columns:1fr;} .hmap{height:380px;} .hlist{max-height:230px;}
  .hbar{grid-template-columns:1fr auto;}
  .row2,.row3{grid-template-columns:1fr;}
  .sec-card{padding:13px;}
  .sec-head{align-items:flex-start;}
  .tbl{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;}
  .list-item{flex-wrap:wrap;}
  .list-item .meta{flex:1 0 100%;order:3;}
  .modal{width:100%;max-height:88vh;}
  .inp{font-size:16px;}          /* iOS'ta odaklanınca zoom yapmaz */
  .btn{min-height:36px;}
  .kc-a button{width:30px;height:30px;}
  .year-nav button{width:30px;height:30px;}
  .donut-wrap{flex-direction:column;}
}
@media(max-width:560px){
  .kpi-row{grid-template-columns:1fr;}
  .kpi-n{font-size:24px;}
  .content{padding:12px;}
  .card-h{padding:11px 13px;flex-wrap:wrap;} .card-b{padding:13px;}
  .hb-l{flex:0 0 66px;}
  .chart-x span{font-size:9.5px;}
}

/* ---- görünürlük seçici ---- */
.vis-sel{display:flex;align-items:center;gap:10px;margin-top:9px;padding-top:9px;border-top:1px solid var(--c-line2);}
.vis-sel>span{font-size:12px;font-weight:600;color:var(--c-ink2);white-space:nowrap;flex:0 0 auto;}
.vis-sel select{max-width:230px;font-size:12.5px;padding:6px 9px;}
.slug-row{display:flex;align-items:center;gap:0;border:1px solid var(--c-line);border-radius:var(--r);overflow:hidden;background:#fff;}
.slug-row>span{padding:8px 10px;background:var(--c-alt);color:var(--c-ink3);font-size:12.5px;font-family:var(--fm);border-right:1px solid var(--c-line);white-space:nowrap;}
.slug-row .inp{border:0;border-radius:0;}
.slug-row .inp:focus{box-shadow:none;}

/* ---- içe aktarma sihirbazı ---- */
.imp-drop{border:1.5px dashed var(--c-line);border-radius:var(--r);padding:22px;text-align:center;background:var(--c-alt);margin-bottom:14px;}
.imp-info{background:var(--c-accent-soft);border:1px solid #cfd9ff;color:#2b3f8f;border-radius:var(--r);
  padding:8px 12px;font-size:12.5px;margin-bottom:12px;}
.imp-warn{background:var(--c-red-soft);border:1px solid #f5c2c2;color:#9c2b2b;border-radius:var(--r);
  padding:8px 12px;font-size:12.5px;margin-bottom:10px;}
.imp-map{display:flex;flex-direction:column;gap:8px;max-height:290px;overflow-y:auto;padding-right:4px;}
.imp-row{display:grid;grid-template-columns:132px 1fr;gap:10px;align-items:center;}
.imp-f{font-size:12.5px;font-weight:600;color:var(--c-ink2);}
.imp-f b{color:var(--c-red-t);}
.imp-h{grid-column:2;font-size:11px;color:var(--c-ink3);margin-top:-4px;}
.imp-row select{padding:6px 9px;font-size:12.5px;}
.imp-prev{max-height:180px;overflow:auto;border:1px solid var(--c-line);border-radius:var(--r);margin-top:10px;}
.imp-prev .tbl td,.imp-prev .tbl th{padding:6px 10px;font-size:12px;white-space:nowrap;}
@media(max-width:560px){ .imp-row{grid-template-columns:1fr;} .imp-h{grid-column:1;} }

/* ---- katlanabilir bölümler ---- */
.fld-box.is-grp,.sec-card.is-grp{padding:0;overflow:hidden;}
details.grp{border:0;}
details.grp>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;
  gap:12px;padding:13px 16px;font-size:13.5px;font-weight:600;color:var(--c-ink);user-select:none;transition:background .12s;}
details.grp>summary::-webkit-details-marker{display:none;}
details.grp>summary:hover{background:#f7f9fc;}
details.grp[open]>summary{border-bottom:1px solid #f0f3f8;}
.grp-t{flex:1;min-width:0;}
.chev{flex:0 0 auto;width:18px;height:18px;position:relative;transition:transform .18s;color:var(--c-ink3);}
.chev::before,.chev::after{content:"";position:absolute;top:7px;width:9px;height:1.8px;background:currentColor;border-radius:2px;}
.chev::before{left:1px;transform:rotate(45deg);} .chev::after{right:1px;transform:rotate(-45deg);}
details.grp[open]>summary .chev{transform:rotate(180deg);color:var(--c-accent);}
details.grp>summary:hover .chev{color:var(--c-accent);}
.grp-b{padding:14px 16px 16px;}
.grp-b>.field:last-child,.grp-b>.row2:last-child{margin-bottom:0;}
.grp-all{display:flex;align-items:center;gap:4px;margin:0 0 8px;font-size:12.5px;}
.grp-all button{color:var(--c-accent);font-weight:600;font-size:12.5px;padding:6px 8px;min-height:32px;display:inline-flex;align-items:center;border-radius:7px;}
.grp-all button:hover{background:var(--c-accent-soft);}
.grp-all button:hover{text-decoration:underline;}
.grp-all span{color:var(--c-ink3);}

/* ================= DASHBOARD (referans stil) ================= */
.tb-r{display:flex;align-items:center;gap:14px;min-width:0;}
.uchip{display:flex;align-items:center;gap:9px;padding-left:14px;border-left:1px solid var(--c-hair);
  background:none;border-top:0;border-right:0;border-bottom:0;font:inherit;color:inherit;cursor:pointer;}
.uchip img{width:34px;height:34px;border-radius:50%;object-fit:cover;}
.uc-i{width:34px;height:34px;border-radius:50%;background:var(--c-brand-d);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;}
.uc-b{display:flex;flex-direction:column;line-height:1.25;}
.uc-b b{font-size:13px;font-weight:600;} .uc-b span{font-size:11px;color:var(--c-ink3);}

.kpi2-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px;}
.kpi2{background:#fff;border:1px solid var(--c-hair);border-radius:18px;padding:20px 20px 18px;}
.kpi2-n{font-size:34px;font-weight:600;letter-spacing:-.04em;line-height:1;}
.kpi2-t{font-size:14px;font-weight:500;color:var(--c-ink);margin-top:9px;}
.kpi2-s{font-size:11.5px;color:var(--c-ink3);margin-top:3px;}
.k-blue .kpi2-n{color:#1d4ed8;} .k-lime .kpi2-n{color:#3b6fe0;}
.k-amber .kpi2-n{color:#e8a020;} .k-green .kpi2-n{color:#0f766e;}

/* üstteki 4 KPI kutusuyla aynı ızgara: sol 3 kutu eni, sağ 1 kutu eni */
.dash-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start;}
.dash-l{grid-column:span 3;} .dash-r{grid-column:span 1;}
.dash-l,.dash-r{display:flex;flex-direction:column;gap:14px;min-width:0;}
.btn-link{color:var(--c-ink3);font-size:12.5px;font-weight:500;padding:7px 11px;min-height:32px;display:inline-flex;align-items:center;border-radius:8px;}
.btn-link:hover{color:var(--c-accent-d);background:var(--c-accent-soft);}
/* S4.2 §16/§17/§19 — kart basligindaki eylem baglantilari (Takvime git,
   Görüntüle, Tümü) soluk gri metindi ve tiklanabilir oldugu anlasilmiyordu.
   Buyuk birincil dugme YAPILMAZ (§16); kucuk ama acikca eylem: aksan
   rengi, cerceve ve bir yon oku. */
.card-h .btn-link{color:var(--c-accent);font-weight:600;
  border:1px solid transparent;padding:5px 10px;gap:5px;}
.card-h .btn-link::after{content:"›";font-weight:700;font-size:14px;line-height:1;opacity:.75;}
.card-h .btn-link:hover{background:var(--c-accent-soft);border-color:#f6ccd6;}
/* Olusturma eylemi gezinme degildir: yon oku tasimaz. */
.card-h .btn-link.ekle::after{content:none;}

/* alan grafiği */
.areachart{position:relative;}
.ac-plot{position:relative;border-top:1px solid #e8edf6;border-bottom:1px solid #dde5f2;}
.ac-plot svg{display:block;}
.ag-line{fill:none;stroke:var(--c-brand-d);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round;}
.ac-max{position:absolute;left:0;top:-8px;font-size:10px;color:#aab3c4;font-family:var(--fm);background:#fff;padding-right:5px;}
.ac-pt{position:absolute;transform:translate(-50%,-50%);width:22px;height:22px;}
.ac-dot{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);
  width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 2px var(--c-brand-d);
  opacity:0;transition:opacity .12s;}
.ac-tip{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);
  background:#0d1730;color:#fff;border-radius:6px;padding:5px 9px;font-size:11px;font-weight:500;
  white-space:nowrap;opacity:0;pointer-events:none;transition:.12s;z-index:20;}
/* ilk ve son noktada balon ekran dışına taşmasın */
.ac-pt:first-of-type .ac-tip{left:0;transform:none;}
.ac-pt:last-of-type .ac-tip{left:auto;right:0;transform:none;}
.ac-pt:hover .ac-dot,.ac-pt:hover .ac-tip{opacity:1;}
.ac-x{display:flex;margin-top:9px;}
.ac-x span{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;}
.ac-x i{font-style:normal;font-size:11px;color:#93a0b5;font-weight:400;}
.ac-x u{text-decoration:none;font-size:9.5px;color:#b8c1d0;font-family:var(--fm);}

/* iş akışı listesi */
.flow{display:flex;flex-direction:column;}
.fl-row{display:grid;grid-template-columns:minmax(150px,1.05fr) minmax(220px,1.6fr) auto;gap:18px;align-items:center;
  padding:15px 4px;border-bottom:1px solid var(--c-hair);cursor:pointer;transition:background .12s;}
.fl-row:last-child{border-bottom:0;}
.fl-row:hover{background:var(--c-alt);}
.fl-l{min-width:0;}
.fl-f{font-size:13.5px;font-weight:600;letter-spacing:-.015em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fl-s{font-size:12px;color:var(--c-ink2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fl-d{font-size:11px;color:var(--c-ink3);margin-top:3px;font-family:var(--fm);}
.fl-r{min-width:0;padding:0 14px;}
.fl-track{position:relative;height:4px;background:#e8ecf3;border-radius:3px;margin:16px 0 22px;}
.fl-track>i{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--c-brand-d);
  animation:widen .6s cubic-bezier(.22,1,.36,1) both;}
.fl-node{position:absolute;top:50%;transform:translate(-50%,-50%);}
.fl-node b{display:block;width:11px;height:11px;border-radius:50%;background:#fff;
  box-shadow:inset 0 0 0 2px #cfd8e6;transition:.15s;}
.fl-node.done b{background:var(--c-brand-d);box-shadow:inset 0 0 0 2px var(--c-brand-d);}
.fl-node.now b{background:#fff;box-shadow:inset 0 0 0 3.5px var(--c-brand-d),0 0 0 4px var(--c-brand-soft);}
.fl-node em{position:absolute;top:15px;left:50%;transform:translateX(-50%);font-style:normal;
  font-size:10.5px;color:var(--c-ink3);white-space:nowrap;}
.fl-node.now em{color:var(--c-brand-d);font-weight:600;}
.fl-node.done em{color:var(--c-ink2);}
.fl-badge{font-size:11.5px;font-weight:600;padding:5px 11px;border-radius:8px;white-space:nowrap;
  background:var(--c-brand-soft);color:var(--c-brand-d);}
.fl-badge.s-yayin{background:#e3f5ee;color:#0f766e;}
.fl-badge.s-baski{background:var(--c-amber-soft);color:var(--c-amber-t);}
.fl-badge.s-montaj{background:#e8f0fe;color:#1d4ed8;}

/* takvim */
.calh{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.calh b{font-size:15px;font-weight:600;letter-spacing:-.02em;}
.calnav button{width:28px;height:28px;border-radius:50%;border:1px solid var(--c-hair);color:var(--c-ink2);
  font-size:15px;line-height:1;transition:.12s;}
.calnav button:hover{border-color:var(--c-ink3);background:var(--c-alt);}
.calnav button+button{margin-left:5px;}
.calg{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center;}
.calhead span{font-size:10.5px;color:var(--c-ink3);font-weight:600;padding-bottom:5px;}
.cd{height:34px;display:flex;align-items:center;justify-content:center;font-size:12.5px;border-radius:50%;
  color:var(--c-ink2);transition:.12s;}
.cd.has{background:var(--c-brand-d);color:#fff;font-weight:600;cursor:default;}
.cd.today{outline:1.5px solid var(--c-ink);outline-offset:-1.5px;font-weight:600;color:var(--c-ink);}
.cd.today.has{outline-color:#0b1c3f;}

/* mesaj / not listesi */
.msgs{display:flex;flex-direction:column;gap:2px;padding:8px 10px 12px;}
.msg{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:11px;cursor:pointer;transition:.12s;}
.msg:hover{background:var(--c-alt);}
.msg-av{width:32px;height:32px;border-radius:50%;background:var(--c-brand-soft);color:var(--c-brand-d);flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;font-weight:600;font-size:13px;}
.msg-b{flex:1;min-width:0;}
.msg-t{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.msg-x{font-size:11.5px;color:var(--c-ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.msg-d{font-size:11px;color:var(--c-ink3);font-family:var(--fm);flex:0 0 auto;}

@media(max-width:1200px){
  .kpi2-row{grid-template-columns:repeat(2,minmax(0,1fr));}
  .dash-grid{grid-template-columns:1fr;}
  .dash-l,.dash-r{grid-column:span 1;}
}
@media(max-width:560px){
  .kpi2-row{grid-template-columns:1fr;}
  .kpi2-n{font-size:30px;}
  .uc-b{display:none;}
  .uchip{padding-left:10px;}
  
}

/* ipucu kenarlarda taşmasın */
.gcol:first-child .gtip{left:0;transform:none;}
.gcol:last-child .gtip{left:auto;right:0;transform:none;}

@media(max-width:900px){
  .fl-row{grid-template-columns:1fr;gap:10px;}
  .fl-r{padding:0;} .fl-track{margin:14px 0 20px;}
  .fl-badge{justify-self:start;}
}

/* ---- bilgi balonu ---- */
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,14px);z-index:9999;
  background:#0d1730;color:#fff;border-radius:11px;padding:11px 18px;font-size:13px;font-weight:500;
  box-shadow:0 14px 40px -14px rgba(0,0,0,.55);opacity:0;pointer-events:none;transition:.22s;max-width:88vw;text-align:center;}
.toast.on{opacity:1;transform:translate(-50%,0);}

/* ---- raporlar ---- */
.rp-quick{display:flex;gap:7px;flex-wrap:wrap;margin-top:4px;}
.rp-list{display:flex;flex-direction:column;gap:8px;margin-top:10px;}
.rp-item{display:flex;align-items:flex-start;gap:11px;padding:12px 14px;border:1px solid var(--c-hair);
  border-radius:11px;cursor:pointer;transition:.13s;background:#fff;}
.rp-item:hover{border-color:#c9d3e6;background:#fcfdff;}
.rp-item input{margin-top:2px;width:18px;height:18px;flex:0 0 auto;accent-color:var(--c-brand-d);flex:0 0 auto;cursor:pointer;}
.rp-item span{display:flex;flex-direction:column;gap:2px;min-width:0;}
.rp-item b{font-size:13.5px;font-weight:600;}
.rp-item em{font-style:normal;font-size:12px;color:var(--c-ink3);line-height:1.45;}
.rp-item:has(input:checked){border-color:var(--c-brand);background:var(--c-brand-soft);}
.rp-prev{margin-top:14px;}
.rp-line{display:flex;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--c-hair);font-size:13px;}
.rp-line:last-child{border-bottom:0;}
.rp-line span{color:var(--c-ink3);font-family:var(--fm);font-size:12px;}

/* ---- footer menü düzenleyici ---- */
.ftr-item{display:grid;grid-template-columns:1.2fr 1fr 1.4fr auto auto auto;gap:7px;align-items:center;margin-bottom:7px;}
.ftr-item .inp,.ftr-item select{padding:7px 10px;font-size:12.5px;}
.ftr-item .btn{padding:6px 9px;min-height:32px;}
.mini{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--c-ink2);cursor:pointer;min-height:32px;padding:2px 0;}
.mini input{width:18px;height:18px;flex:0 0 auto;accent-color:var(--c-brand-d);cursor:pointer;}
@media(max-width:900px){ .ftr-item{grid-template-columns:1fr 1fr;} .ftr-item .btn{grid-column:span 1;} }

/* dar ekranda footer düzenleyici onay kutuları */
@media(max-width:560px){ .ftr-item{grid-template-columns:1fr;} }

/* ---- işlem kayıtları ---- */
.log-g{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--c-ink3);
  padding:14px 0 7px;border-bottom:1px solid var(--c-hair);margin-bottom:4px;}
.log-g:first-child{padding-top:0;}
.log-r{display:grid;grid-template-columns:52px 150px 1fr;gap:12px;align-items:baseline;
  padding:8px 4px;border-bottom:1px solid #f2f5fa;font-size:13px;}
.log-r:last-child{border-bottom:0;}
.log-t{color:var(--c-ink3);font-size:11.5px;}
.log-u{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.log-a{color:var(--c-ink2);}
.log-a b{font-weight:600;color:var(--c-ink);}
.log-a em{font-style:normal;color:var(--c-ink3);}
@media(max-width:700px){ .log-r{grid-template-columns:48px 1fr;} .log-a{grid-column:span 2;} }

/* ---- not görüntüleme penceresi ---- */
.note-row{cursor:pointer;}
.nv-head{border-bottom:1px solid var(--c-hair);padding-bottom:12px;margin-bottom:14px;}
.nv-meta{font-size:12.5px;color:var(--c-ink3);margin-top:5px;}
.nv-body{font-size:14px;line-height:1.7;color:var(--c-ink);white-space:pre-wrap;
  max-height:52vh;overflow-y:auto;}
.nav-badge{margin-left:auto;background:#e5484d;color:#fff;border-radius:999px;min-width:19px;height:19px;
  display:none;align-items:center;justify-content:center;font-size:11px;font-weight:700;font-style:normal;padding:0 6px;}

/* --- teklif olusturucu --- */
.qb-found{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:7px;margin-bottom:14px;max-height:230px;overflow-y:auto;}
.qb-f{text-align:left;background:#fff;border:1px solid var(--c-line);border-radius:10px;padding:9px 11px;cursor:pointer;font:inherit;transition:.14s;}
.qb-f:hover{border-color:var(--c-accent);background:var(--c-alt);}
.qb-f b{display:block;font-size:13px;}
.qb-f span{display:block;font-size:11.5px;color:var(--c-ink2);margin-top:2px;}
.qb-tbl td{vertical-align:middle;}
.inp-sm{font-size:13px;margin:0;width:100%;max-width:210px;}
/* Sabit yükseklikli küçük kontrol: dikey dolgu metni kesmesin (S13). */
.inp-sm,.inp.inp-sm,select.inp.inp-sm{height:var(--ctl-h-sm);padding:0 10px;line-height:calc(var(--ctl-h-sm) - 2px);}
.qb-ozet{margin-top:16px;margin-left:auto;max-width:340px;border-top:1px solid var(--c-line);padding-top:12px;}
.qb-row{display:flex;justify-content:space-between;padding:5px 0;font-size:13.5px;}
.qb-row.disc b{color:#0a7d3c;}
.qb-row.total{border-top:2px solid var(--c-ink);margin-top:8px;padding-top:10px;font-size:17px;font-weight:700;}
@media(max-width:760px){ .qb-ozet{max-width:none;} .qb-tbl{display:block;overflow-x:auto;} }

/* --- filtre çubuğu (Doluluk + Müşteriler) --- */
.fbar{padding:12px 14px;}
.fbar-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.fbar-row .inp{margin:0;}
.fbar-row input.inp{flex:1 1 240px;min-width:200px;}
.fbar-row select.inp{flex:0 1 190px;width:auto;min-width:150px;}
@media(max-width:760px){ .fbar-row select.inp{flex:1 1 46%;} }

/* --- v50: mecra formu sekmeleri --- */
.mtabs{display:flex;gap:2px;border-bottom:1px solid var(--c-line);margin:0 0 18px;overflow-x:auto;}
.mtab-btn{display:inline-flex;align-items:center;gap:7px;padding:10px 14px;font-size:13px;font-weight:600;
  color:var(--c-ink2);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:.13s;}
.mtab-btn:hover{color:var(--c-ink);}
.mtab-btn.on{color:var(--c-accent-d);border-bottom-color:var(--c-accent);}
.mtab-badge{font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--c-alt);color:var(--c-ink3);font-variant-numeric:tabular-nums;}
.mtab-btn.on .mtab-badge{background:var(--c-accent-soft);color:var(--c-accent-d);}
.mtab-badge.tam{background:var(--c-green-soft);color:var(--c-green);}
.mtab-p{display:none;} .mtab-p.on{display:block;}
@media(max-width:860px){
  .side{background:#fff;border-right:0;border-bottom:1px solid var(--c-line);}
}

/* tek yüzeyli pozisyon: hücre tam genişlik (2 kutu + boşluk = 64px) */
.rg-m .rcell:only-child{width:64px;}

/* --- v52: mecra düzenleme ergonomisi --- */
.mec-head{display:flex;align-items:center;gap:10px;margin:0 0 12px;flex-wrap:wrap;}
.pil-on{background:var(--c-green-soft);color:var(--c-green);}
.hazir{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px;padding:10px;background:var(--c-alt);border-radius:12px;}
.hz{font:inherit;font-size:12px;font-weight:600;padding:5px 11px;border-radius:999px;cursor:pointer;transition:.13s;border:1px solid transparent;}
.hz.ok{background:var(--c-green-soft);color:var(--c-green);}
.hz.no{background:#fff;color:var(--c-ink3);border-color:var(--c-line);}
.hz.yari{background:var(--c-amber-soft);color:var(--c-amber-t);}
.hz:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.06);}
.imgf{display:flex;gap:8px;align-items:center;}
.imgf .inp{flex:1;min-width:0;}
.imgf-pv{flex:0 0 46px;width:46px;height:46px;border-radius:10px;border:1px solid var(--c-line);background:var(--c-alt);
  display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:zoom-in;}
.imgf-pv img{width:100%;height:100%;object-fit:cover;display:block;}
.imgf-pv.bos{cursor:default;}
.imgf-pv.bos::after{content:'—';color:var(--c-ink3);font-size:12px;}
.imgf-x{flex:0 0 auto;padding:6px 9px;color:var(--c-ink3);}
.imgf-x:hover{color:var(--c-red-t);background:var(--c-red-soft);}
.stickybar{position:sticky;bottom:0;display:flex;align-items:center;gap:10px;justify-content:flex-end;
  margin:18px -18px -18px;padding:12px 18px;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);
  border-top:1px solid var(--c-line);border-radius:0 0 var(--r) var(--r);z-index:5;}
.dirty-msg{margin-right:auto;font-size:12.5px;font-weight:600;color:var(--c-amber-t);}
.dirty-msg:empty{display:none;}
@media(max-width:760px){ .imgf{flex-wrap:wrap;} .imgf .inp{flex:1 1 100%;order:2;} }

/* ===== v53: diyaloglar ===== */
.mpdlg-bg{position:fixed;inset:0;z-index:200;background:rgba(15,20,35,.42);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .14s;}
.mpdlg-bg.on{opacity:1;}
.mpdlg{background:#fff;border-radius:18px;padding:26px 26px 20px;width:min(400px,calc(100vw - 32px));
  box-shadow:0 24px 64px rgba(15,20,35,.22);transform:translateY(10px) scale(.97);transition:transform .16s;text-align:center;}
.mpdlg-bg.on .mpdlg{transform:none;}
.mpdlg-ic{width:52px;height:52px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;
  background:var(--c-accent-soft);color:var(--c-accent-d);}
.mpdlg-ic.dg{background:var(--c-red-soft);color:var(--c-red-t);}
.mpdlg-t{font-size:16.5px;font-weight:700;margin-bottom:6px;}
.mpdlg-m{font-size:13.5px;color:var(--c-ink2);line-height:1.6;white-space:pre-wrap;margin-bottom:18px;}
.mpdlg-b{display:flex;gap:8px;justify-content:center;}
.mpdlg-b .btn{min-width:110px;}

/* ===== v53: giriş ekranı ===== */
.login{min-height:100vh;display:flex;background:#fff;}
.lg-hero{flex:1.15;position:relative;overflow:hidden;display:flex;align-items:center;padding:48px;
  background:linear-gradient(150deg,#2a0a14 0%,#6f0f2c 52%,#b31145 100%);color:#fff;}
.lg-blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;animation:lgfloat 11s ease-in-out infinite;}
.lg-blob.b1{width:420px;height:420px;background:#ff4d6d;top:-120px;right:-80px;}
.lg-blob.b2{width:340px;height:340px;background:#7f1d3a;bottom:-100px;left:-60px;animation-delay:-4s;}
.lg-blob.b3{width:200px;height:200px;background:#ff8fa3;top:40%;left:55%;opacity:.3;animation-delay:-7s;}
@keyframes lgfloat{0%,100%{transform:translateY(0) scale(1);}50%{transform:translateY(-26px) scale(1.06);}}
.lg-hero-i{position:relative;z-index:2;max-width:460px;}
.lg-mark{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-bottom:34px;}
.lg-mark span{color:#ffb3c1;}
.lg-hero-i h1{font-size:clamp(26px,3.2vw,38px);font-weight:800;letter-spacing:-.03em;line-height:1.18;margin:0 0 30px;}
.lg-feats{display:flex;flex-direction:column;gap:13px;margin-bottom:42px;}
.lg-f{display:flex;align-items:center;gap:12px;font-size:14.5px;font-weight:500;color:#ffd9e0;}
.lg-f .ic{background:rgba(255,255,255,.13);border-radius:9px;padding:7px;width:32px;height:32px;}
.lg-alt{font-size:12px;color:#c98a9b;}
.lg-form{flex:1;display:flex;align-items:center;justify-content:center;padding:32px;}
.login .box{width:min(380px,100%);background:none;border:0;box-shadow:none;padding:0;}
.lg-hi{font-size:23px;font-weight:800;letter-spacing:-.02em;margin-bottom:4px;}
.lg-pw{position:relative;}
.lg-pw .inp{padding-right:42px;}
.lg-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);padding:7px;color:var(--c-ink3);border-radius:8px;}
.lg-eye:hover,.lg-eye.on{color:var(--c-accent);}
.lg-err{background:var(--c-red-soft);color:var(--c-red-t);border-radius:10px;padding:10px 13px;font-size:13px;margin:4px 0 14px;}
.lg-btn{width:100%;padding:12px;font-size:14.5px;margin-top:8px;}
.box.shake{animation:lgshake .4s;}
@keyframes lgshake{0%,100%{transform:none;}25%{transform:translateX(-7px);}75%{transform:translateX(7px);}}
@media(max-width:820px){
  .login{flex-direction:column;}
  .lg-hero{flex:0 0 auto;padding:30px 24px;}
  .lg-hero-i h1{font-size:22px;margin-bottom:18px;}
  .lg-feats{display:none;}.lg-alt{display:none;}.lg-mark{margin-bottom:16px;}
}

/* ===== v53: rezervasyon penceresi ===== */
.rezpop{position:fixed;z-index:150;width:300px;background:#fff;border-radius:16px;border:1px solid var(--c-line);
  box-shadow:0 18px 48px rgba(15,20,35,.18);padding:14px;animation:rzin .14s ease-out;}
@keyframes rzin{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
.rz-h{display:flex;align-items:baseline;gap:8px;margin-bottom:12px;}
.rz-h b{font-size:14.5px;}
.rz-h span{font-size:12px;color:var(--c-ink3);}
.rz-x{margin-left:auto;color:var(--c-ink3);padding:3px 7px;border-radius:8px;}
.rz-x:hover{background:var(--c-alt);color:var(--c-ink);}
.rz-seg{display:flex;background:var(--c-alt);border-radius:11px;padding:3px;gap:3px;margin-bottom:12px;}
.rz-seg button{flex:1;padding:7px 0;border-radius:9px;font-size:12.5px;font-weight:600;color:var(--c-ink2);transition:.12s;}
.rz-seg button.on{background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.09);color:var(--c-ink);}
.rz-seg button.on.dolu{color:#166534;} .rz-seg button.on.rezerve{color:#92400e;}
.rz-not{font-size:12px;color:var(--c-ink3);margin:4px 2px 10px;line-height:1.5;}
.rz-cust{margin-bottom:12px;}
.rz-sec{display:flex;align-items:center;gap:8px;background:var(--c-accent-soft);color:var(--c-accent-d);
  font-size:13px;font-weight:600;border-radius:10px;padding:8px 11px;}
.rz-sec button{margin-left:auto;color:inherit;opacity:.7;} .rz-sec button:hover{opacity:1;}
.rz-list{display:flex;flex-direction:column;gap:3px;margin-top:6px;max-height:168px;overflow-y:auto;}
.rz-list button{text-align:left;padding:7px 10px;border-radius:9px;font-size:13px;font-weight:500;transition:.1s;}
.rz-list button:hover{background:var(--c-alt);}
.rz-list button span{display:block;font-size:11px;color:var(--c-ink3);font-weight:400;}
.rz-f{display:flex;justify-content:flex-end;gap:6px;border-top:1px solid var(--c-line2);padding-top:10px;}

/* ===== v53: dashboard ===== */
.kpi2.tik{cursor:pointer;transition:transform .13s,box-shadow .13s;}
.kpi2.tik:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(15,20,35,.09);}
.jb{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
.jb-col{background:var(--c-alt);border-radius:13px;padding:8px;display:flex;flex-direction:column;gap:6px;}
.jb-h{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;padding:5px 7px;border-radius:9px;color:var(--c-ink2);}
.jb-h:hover{background:#fff;}
.jb-h i{width:8px;height:8px;border-radius:50%;}
.jb-h b{margin-left:auto;font-size:11.5px;background:#fff;border-radius:999px;min-width:20px;padding:2px 6px;text-align:center;}
.jb-col.violet .jb-h i{background:var(--c-violet);} .jb-col.amber .jb-h i{background:var(--c-amber);}
.jb-col.cyan .jb-h i{background:var(--c-cyan);} .jb-col.green .jb-h i{background:var(--c-green);}
.jb-c{position:relative;text-align:left;background:#fff;border:1px solid var(--c-line2);border-radius:10px;
  padding:8px 9px;transition:.12s;display:block;}
.jb-c:hover{border-color:var(--c-accent);box-shadow:0 3px 10px rgba(0,0,0,.06);}
.jb-t{display:block;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:26px;}
.jb-m{display:block;font-size:11px;color:var(--c-ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.jb-c .asg{position:absolute;right:7px;top:8px;}
.jb-bos{text-align:center;color:var(--c-ink3);font-size:12px;padding:10px 0;}
.jb-daha{font-size:11.5px;font-weight:600;color:var(--c-ink3);padding:4px;border-radius:8px;}
.jb-daha:hover{background:#fff;color:var(--c-ink);}
.asg{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;
  background:var(--c-accent-soft);color:var(--c-accent-d);font-size:10px;font-weight:800;flex:0 0 auto;vertical-align:middle;margin-left:6px;}
.kc-t .asg{float:right;}
@media(max-width:900px){ .jb{grid-template-columns:repeat(2,minmax(0,1fr));} }

/* ===== v54 ===== */
/* KPI tipografisi — belirgin */
.kpi2-n{font-size:40px;font-weight:800;letter-spacing:-.04em;line-height:1;}
.kpi2-t{font-size:13.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin-top:8px;}
.kpi2-s{font-size:12.5px;font-weight:500;margin-top:4px;}
/* yeşil buton + pazarlama rengi */
.btn-yes{background:var(--c-green);color:#fff !important;border-color:var(--c-green);}
.btn-yes:hover{background:#15803d;border-color:#15803d;}
.btn-yes .ic{color:#fff;}
.kcol.rose .kcol-h i,.st-pazarlama{background:var(--c-accent-soft);color:var(--c-accent-d);}
.kcol.rose .kcol-h i{background:var(--c-accent);}
.pzd{display:inline-block;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:999px;margin:2px 0 6px;}
.pzd.amber{background:var(--c-amber-soft);color:var(--c-amber-t);} .pzd.cyan{background:var(--c-cyan-soft);color:var(--c-cyan);}
.pzd.slate{background:var(--c-alt);color:var(--c-ink2);} .pzd.green{background:var(--c-green-soft);color:var(--c-green);}
.pzd.red{background:var(--c-red-soft);color:var(--c-red-t);}
/* doluluk trendi çizgisi yeşil */
.ag-line{stroke:var(--c-green);}
/* takvim noktaları */
.cd{position:relative;}
.cd.has{cursor:pointer;font-weight:700;}
.cd.has:hover{background:var(--c-accent-soft);}
.cdots{position:absolute;left:0;right:0;bottom:3px;display:flex;justify-content:center;gap:2px;}
.cdot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--c-accent);}
.cdot.pazarlama{background:var(--c-accent);} .cdot.tasarim{background:var(--c-violet);} .cdot.baski{background:var(--c-amber);}
.cdot.montaj{background:var(--c-cyan);} .cdot.yayin{background:var(--c-green);} .cdot.arsiv{background:var(--c-ink3);}
.cdot.more{background:var(--c-ink3);width:4px;height:4px;}
.cal-list{display:flex;flex-direction:column;gap:6px;}
.cal-i{display:flex;align-items:center;gap:10px;text-align:left;padding:9px 11px;border-radius:10px;background:var(--c-alt);}
.cal-i:hover{background:var(--c-accent-soft);}
.cal-i .cdot{width:8px;height:8px;flex:0 0 auto;}
.cal-t{flex:1;font-size:13px;font-weight:600;}
.cal-s{font-size:11.5px;color:var(--c-ink3);}
/* ekip kartları */
.tm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;}
.tm-card{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--c-line);border-radius:14px;padding:14px;cursor:pointer;transition:.13s;}
.tm-card:hover{border-color:var(--c-accent);box-shadow:0 6px 18px rgba(15,20,35,.07);transform:translateY(-1px);}
.tm-av{border-radius:50%;object-fit:cover;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;}
.tm-av-t{background:var(--c-accent-soft);color:var(--c-accent-d);font-weight:800;}
.tm-b{flex:1;min-width:0;}
.tm-n{font-weight:700;font-size:14.5px;display:flex;align-items:center;gap:8px;}
.tm-r{font-size:12.5px;color:var(--c-ink2);margin-top:2px;}
.tm-m{font-size:11.5px;color:var(--c-ink3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tm-go{color:var(--c-ink3);font-size:20px;}
/* profil sayfası */
.tp-top{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid var(--c-line);border-radius:16px;padding:20px;margin-bottom:14px;flex-wrap:wrap;}
.tp-i{flex:1;min-width:200px;}
.tp-i h2{margin:0;font-size:22px;letter-spacing:-.02em;display:flex;align-items:center;gap:10px;}
.tp-r{color:var(--c-ink2);font-weight:500;margin-top:3px;}
.tp-m{color:var(--c-ink3);font-size:12.5px;margin-top:3px;}
.tp-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px;}
.tp-k{background:#fff;border:1px solid var(--c-line);border-radius:14px;padding:16px;text-align:center;}
.tp-k b{display:block;font-size:30px;font-weight:800;letter-spacing:-.03em;}
.tp-k span{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--c-ink3);}
.tp-j{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 10px;border-radius:10px;margin-bottom:4px;}
.tp-j:hover{background:var(--c-alt);}
.tp-jt{flex:1;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tp-jd{font-size:11.5px;color:var(--c-ink3);font-variant-numeric:tabular-nums;}
/* bildirimler */
.bld{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-bottom:1px solid var(--c-line2);}
.bld:last-child{border-bottom:0;}
.bld-i{flex:0 0 auto;width:28px;height:28px;border-radius:9px;background:var(--c-amber-soft);color:var(--c-amber-t);display:flex;align-items:center;justify-content:center;}
.bld-b{flex:1;min-width:0;cursor:pointer;}
.bld-t{font-size:13px;font-weight:600;line-height:1.35;}
.bld-d{font-size:11.5px;color:var(--c-ink3);margin-top:2px;}
.bld-x{flex:0 0 auto;width:26px;height:26px;border-radius:8px;color:var(--c-ink3);}
.bld-x:hover{background:var(--c-green-soft);color:var(--c-green);}
@media(max-width:760px){ .tp-kpi{grid-template-columns:1fr;} }

/* --- ikon kütüphanesi --- */
.ik-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;}
.ik-card{background:#fff;border:1px solid var(--c-line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:8px;}
.ik-pv{height:74px;display:flex;align-items:center;justify-content:center;background:var(--c-alt);border-radius:10px;}
.ik-pv img{width:40px;height:40px;object-fit:contain;}
.ik-act{display:flex;justify-content:space-between;gap:6px;}
.ik-act .btn-ghost{font-family:var(--mono,monospace);font-size:11px;padding:4px 8px;}
.row3av{display:grid;grid-template-columns:150px 1fr 1.4fr;gap:8px;}
@media(max-width:760px){.row3av{grid-template-columns:1fr;}}

/* ==========================================================
   TEAM WORKSPACE (Sprint 06)
   Yeni tasarım dili DEĞİL: mevcut token/komponent sistemini
   kullanan küçük bir ek. Workspace'e izole tutulmuştur.
   ========================================================== */

/* Yüzey anahtarı — yalnız admin görür (07 §2.3) */
.ws-switch{display:flex;gap:4px;margin:0 16px 12px;padding:3px;background:var(--c-line2);border-radius:10px;}
.ws-switch button{flex:1;padding:6px 8px;border:0;background:transparent;border-radius:8px;cursor:pointer;
  font:600 11.5px/1.2 var(--f);color:var(--c-ink3);transition:.12s;}
.ws-switch button:hover{color:var(--c-ink);}
.ws-switch button.on{background:var(--c-panel);color:var(--c-accent-d);box-shadow:0 1px 2px rgba(16,24,40,.06);}
/* Aynı bileşen içerik alanında (geniş) kullanıldığında — Workspace
   Mecralar hub'ı — kenar boşluğu sıfırlanır ve genişlik içeriğe göre
   daralır; sidebar'daki yüzey anahtarı (yukarıda) etkilenmez. */
.ws-switch.inline{display:inline-flex;margin:0 0 14px;}
.ws-switch.inline button{flex:0 0 auto;min-height:calc(var(--ctl-h) - 6px);padding:0 16px;font-size:var(--fs-sm);}

/* Ana Sayfa satırı — tıklanabilir alan tüm satırdır (07 §18.8) */
.ws-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;width:100%;text-align:left;
  padding:10px 10px;border:0;background:transparent;border-radius:11px;cursor:pointer;transition:.12s;}
.ws-row:hover{background:var(--c-alt);}
.ws-row+.ws-row{border-top:1px solid var(--c-line2);}
.ws-row-t{grid-column:1;min-width:0;font:600 13px/1.35 var(--f);color:var(--c-ink);
  overflow-wrap:anywhere;}
.ws-row-m{grid-column:1;min-width:0;font-size:12px;color:var(--c-ink3);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ws-row-r{grid-column:2;grid-row:1/span 2;align-self:center;font-size:12px;color:var(--c-ink2);white-space:nowrap;}

/* Faz özeti — KPI yarışı değil, konum listesi (07 §3E) */
.ws-faz{display:flex;align-items:center;justify-content:space-between;padding:7px 2px;font-size:13px;}
.ws-faz+.ws-faz{border-top:1px solid var(--c-line2);}
.ws-faz b{font-weight:700;color:var(--c-ink);}

@media(max-width:900px){
  .ws-row{grid-template-columns:minmax(0,1fr);}
  .ws-row-r{grid-column:1;grid-row:auto;}
}

/* ==========================================================
   ERİŞİLEBİLİRLİK (07 §19)
   Klavye odağı her etkileşimli öğede görünür olmalı. Fare
   kullanıcısında halka çıkmasın diye :focus-visible. Halka rengi
   ortak `--c-focus`tur (S19): seçim ve durum renkleriyle karışmaz.
   ========================================================== */
.btn:focus-visible,.navi:focus-visible,.btn-link:focus-visible,.ws-row:focus-visible,
.ws-switch button:focus-visible,.kcard:focus-visible,.list-item:focus-visible,
.tbl.rowlink tbody tr:focus-visible,.msg:focus-visible,.kadd:focus-visible,
.kc-a button:focus-visible,.nav-gh:focus-visible,.uchip:focus-visible{
  outline:2px solid var(--c-focus);outline-offset:2px;border-radius:8px;}

/* alan formu */
.ga-grid{display:flex;gap:8px;flex-wrap:wrap;}
.ga-t{position:relative;width:96px;height:72px;border-radius:10px;overflow:hidden;border:1px solid var(--c-line);}
.ga-t img{width:100%;height:100%;object-fit:cover;display:block;}
.ga-t .btn{position:absolute;top:4px;right:4px;padding:2px 7px;}
.ub-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;}
.ub-sep{width:1px;height:22px;background:var(--c-line);margin:0 4px;}
.ub-chk{display:flex;align-items:center;gap:6px;font-size:12.5px;}
.uf{display:inline-flex;width:38px;height:30px;border-radius:7px;overflow:hidden;border:1px solid var(--c-line);background:var(--c-alt);align-items:center;justify-content:center;cursor:pointer;color:var(--c-ink3);font-weight:700;}
.uf img{width:100%;height:100%;object-fit:cover;} .uf:hover{border-color:var(--c-accent);}

/* harita: gruplu pozisyon listesi */
.hg-tools{display:flex;gap:6px;align-items:center;font-size:11.5px;color:var(--c-ink3);padding:2px 6px 8px;}
.hg-tools button{color:var(--c-accent-d);font-weight:600;font-size:11.5px;}
.hg{border:1px solid var(--c-line2);border-radius:12px;margin-bottom:6px;background:#fff;overflow:hidden;}
.hg-h{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;font-size:13px;font-weight:700;text-align:left;color:var(--c-ink);}
.hg-h:hover{background:var(--c-alt);}
.hg-h b{flex:1;}
.hga{border-top:1px solid var(--c-line2);}
.hga-h{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px 7px 22px;font-size:12.5px;font-weight:600;color:var(--c-ink2);text-align:left;background:var(--c-alt);}
.hga-h span{flex:1;}
.hga .hrow{padding-left:26px;}
.hg .chev,.hga .chev{width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);opacity:.5;transition:transform .15s;margin-right:4px;}
.hg.open>.hg-h .chev,.hga.open>.hga-h .chev{transform:rotate(45deg);}
.hsay{font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--c-line2);color:var(--c-ink2);font-variant-numeric:tabular-nums;}
.hsay.yari{background:var(--c-amber-soft);color:var(--c-amber-t);} .hsay.tam{background:var(--c-green-soft);color:var(--c-green);}
.hnm span{display:block;font-size:11px;color:var(--c-ink3);}

/* =====================================================================
   WORK CONTROL CENTER (Coordination C3)
   Mevcut görsel sistemin uzantısı: yeni renk/tipografi sözlüğü YOK.
   Hepsi :root token'larını ve mevcut .pill/.tbl/.ws-row dilini kullanır
   (D-231, 07 §1). Yoğunluk hedefi: 40-60 Work tek ekranda taranabilsin.
   ===================================================================== */
.fhint{margin:5px 0 0;font-size:11.5px;color:var(--c-ink3);min-height:1px;}
.ws-switch .tabn{font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:999px;
  background:var(--c-line2);color:var(--c-ink3);margin-left:4px;font-variant-numeric:tabular-nums;}
.ws-switch button.on .tabn{background:var(--c-accent-soft);color:var(--c-accent-d);}

/* paylaşılan filtre kartı: dar kolonlarda alt alta iner */
.coord-f{display:grid;grid-template-columns:minmax(190px,1.6fr) repeat(auto-fit,minmax(150px,1fr));gap:10px 14px;}
.sec-card.pad0{padding:0;overflow:hidden;}
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}

/* faz etiketi — kanban kolonlarıyla AYNI renk sözlüğü (JOBC) */
.ph{display:inline-flex;align-items:center;font-size:11.5px;font-weight:600;white-space:nowrap;
  padding:3px 9px;border-radius:var(--r-sm);background:var(--c-alt);color:var(--c-ink2);
  border-left:3px solid var(--kc,var(--c-slate));}
.ph.violet{--kc:var(--c-violet);} .ph.amber{--kc:var(--c-amber);} .ph.cyan{--kc:var(--c-cyan);}
.ph.green{--kc:var(--c-green);}  .ph.slate{--kc:var(--c-slate);}

/* ---- LİSTE ---- */
.tbl.lz td{padding:9px 14px;vertical-align:top;}
.tbl.lz th{white-space:nowrap;}
.tbl th.srt{cursor:pointer;user-select:none;}
.tbl th.srt:hover{color:var(--c-accent-d);}
.tbl th.srt i{font-style:normal;font-size:9px;margin-left:4px;color:var(--c-accent-d);}
.th-srt{all:unset;cursor:pointer;display:inline-flex;align-items:center;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;}
.th-srt:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px;border-radius:3px;}
.tbl th.srt.on{color:var(--c-ink);}
.lz-t{font-weight:600;font-size:13px;line-height:1.35;color:var(--c-ink);}
.lz-s{font-size:11.5px;color:var(--c-ink3);line-height:1.45;margin-top:2px;}
.lz-o{font-size:12.5px;color:var(--c-ink2);max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lz-late{color:var(--c-red-t);font-weight:600;}
.lz-old{background:var(--c-amber-soft);color:var(--c-amber-t);border-radius:var(--r-sm);
  padding:0 5px;font-size:10.5px;font-weight:700;}

/* ---- TAKİPLERİM ---- */
.ak-kpi{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.ak-k{flex:0 0 auto;min-width:104px;background:var(--c-panel);border:1px solid var(--c-hair);
  border-radius:var(--r);padding:10px 14px;}
.ak-k b{display:block;font:700 20px/1.1 var(--f);font-variant-numeric:tabular-nums;color:var(--c-ink);}
.ak-k span{font-size:11.5px;color:var(--c-ink3);}
.ak-k.k-red{border-color:#f3c9c9;background:var(--c-red-soft);} .ak-k.k-red b{color:var(--c-red-t);}
.ak-k.k-amber{border-color:#eedcb0;background:var(--c-amber-soft);} .ak-k.k-amber b{color:var(--c-amber-t);}
.ak-sec.ak-gec{border-left:3px solid var(--c-red);}
.ak-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;
  padding:9px 0;border-top:1px solid var(--c-line2);}
.ak-sec>.ak-row:first-of-type{border-top:0;}
.ak-main{display:block;width:100%;min-width:0;text-align:left;background:none;border:0;padding:0;cursor:pointer;font:inherit;}
.ak-main[disabled]{cursor:default;}
.ak-b{display:block;font:600 13px/1.4 var(--f);color:var(--c-ink);}
.ak-m{display:block;font-size:11.5px;color:var(--c-ink3);margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ak-main:hover .ak-b{color:var(--c-accent-d);}
.ak-d{white-space:nowrap;font-size:12px;}

/* ---- BEKLEYENLER ---- */
.bk-h{display:grid;grid-template-columns:1fr 104px 240px;gap:14px;padding:10px 16px;
  background:var(--c-alt);border-bottom:1px solid var(--c-hair);
  font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--c-ink3);}
.bk-row{display:grid;grid-template-columns:minmax(0,1fr) 104px 240px;gap:14px;padding:11px 16px;
  border-bottom:1px solid var(--c-line2);cursor:pointer;}
.bk-row:last-child{border-bottom:0;}
.bk-row:hover{background:var(--c-alt);}
.bk-a{min-width:0;}
.bk-t{font:600 13px/1.35 var(--f);color:var(--c-ink);overflow-wrap:anywhere;}
.bk-m{font-size:11.5px;color:var(--c-ink2);margin-top:2px;}
.bk-s{font-size:11.5px;color:var(--c-ink3);margin-top:3px;line-height:1.45;}
.bk-nx{font-size:12.5px;font-weight:600;color:var(--c-ink);line-height:1.35;}
.bk-yas{font:700 15px/1.2 var(--f);font-variant-numeric:tabular-nums;color:var(--c-ink2);}
.bk-yas.y-amber{color:var(--c-amber-t);} .bk-yas.y-red{color:var(--c-red-t);}

@media(max-width:880px){
  .bk-h{display:none;}
  .bk-row{grid-template-columns:minmax(0,1fr);gap:6px;}
  .ak-row{grid-template-columns:minmax(0,1fr) auto;}
  .ak-a{grid-column:1/-1;justify-self:start;}
  .ak-d{grid-column:2;grid-row:1;}
  .lz-o{max-width:150px;}
  /* Dar ekranda kısaltma yerine sarmala: aksiyon metni okunabilir kalmalı */
  .ak-b{overflow-wrap:anywhere;}
  .ak-m{white-space:normal;}
  .coord-f{grid-template-columns:minmax(0,1fr);}
}

/* =====================================================================
   C4 — TAKVIM · HIZLI KAYIT · OPERASYONEL KISAYOL
   Yeni renk/tipografi sozlugu YOK: mevcut :root token'lari ve
   .ws-switch / .pill / .tbl dili (D-231, 07 §1).
   ===================================================================== */

/* --- operasyonel kisayol seridi (C4 §21) --- */
.coord-sc{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px;}
.coord-sc button{display:inline-flex;align-items:center;gap:7px;min-height:var(--ctl-h-sm);padding:0 13px;border:1px solid var(--c-hair);
  background:var(--c-panel);border-radius:999px;cursor:pointer;font:600 12.5px/1 var(--f);color:var(--c-ink2);transition:.12s;}
.coord-sc button:hover{border-color:#d3dbea;color:var(--c-ink);}
.coord-sc button.on{background:var(--c-accent-soft);border-color:transparent;color:var(--c-accent-d);}
.coord-sc .ic{width:15px;height:15px;}

/* --- global hizli kayit (kabuk) --- */
.qc-top{display:flex;gap:7px;margin-right:4px;}
.act-l{white-space:nowrap;}
/* S4.2 §15 — ust cubuk gezinmeyi EZMEMELI.
   ONCE: Sprint 4.1'de dorduncu eylem (`+ Baskı/Montaj`) eklendiginde
   `.tb-r` 670px'e cikti ve ~1200px altindaki her genislikte yatay
   tasma yaratiyordu (olculdu: 902px viewport -> scrollWidth 1010).
   Ayrica buradaki eski kural `.btn-outline`i hedefliyordu; eylemler
   semantik siniflara gecince o kural bosa dustu.
   SONRA: orta genislikte ikincil eylemler ikon-only'ye duser (title
   ipuclari zaten var, eylem kaybolmaz); yalnizca cok dar ekranda
   gizlenir ve birincil `Güncelleme` her zaman kalir. */
@media(max-width:1200px){
  .qc-top .act:not(.act-upd) .act-l{display:none;}
  .qc-top .act:not(.act-upd){padding-left:9px;padding-right:9px;}
}
@media(max-width:860px){
  .qc-top .act-upd .act-l{display:none;}
  .qc-top .act-upd{padding-left:9px;padding-right:9px;}
}
@media(max-width:760px){ .qc-top .act:not(.act-upd){display:none;} }

/* --- hizli kayit baglam kutusu --- */
.qc-ctx{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;background:var(--c-alt);
  border:1px solid var(--c-hair);border-radius:var(--r);padding:9px 12px;margin-bottom:12px;}
.qc-ctx .qc-lbl{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--c-ink3);}
.qc-ctx b{font-size:13px;color:var(--c-ink);}
.qc-ctx em{font-style:normal;font-size:12px;color:var(--c-ink3);}

/* --- TAKVIM --- */
.tk-wrap{padding:14px 16px 12px;}
.tk-h{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px;}
.tk-nav{display:flex;align-items:center;gap:8px;}
.tk-nav b{font:700 15px/1 var(--f);min-width:118px;text-align:center;}
.tk-src{margin:0;}
.tk-f{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.tk-who{width:auto;min-width:150px;padding:7px 10px;font-size:12.5px;}
.tk-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;}
.tk-head span{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--c-ink3);text-align:center;padding:4px 0;}
.tk-bos{min-height:10px;}
.tk-d{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-height:62px;padding:6px 7px;
  border:1px solid var(--c-line2);border-radius:9px;background:var(--c-panel);cursor:pointer;
  font:inherit;text-align:left;transition:.12s;}
.tk-d:hover{border-color:#d3dbea;background:var(--c-alt);}
.tk-d.tk-has{border-color:var(--c-hair);}
.tk-d.tk-today .tk-n{background:var(--c-accent);color:#fff;}
.tk-d.tk-sel{border-color:var(--c-accent);box-shadow:0 0 0 1px var(--c-accent) inset;}
.tk-n{display:inline-flex;align-items:center;justify-content:center;min-width:21px;height:21px;padding:0 5px;
  border-radius:999px;font:700 11.5px/1 var(--f);font-variant-numeric:tabular-nums;color:var(--c-ink2);}
.tk-b{display:flex;gap:4px;flex-wrap:wrap;}
.tk-p{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:17px;padding:0 5px;
  border-radius:5px;font:700 10.5px/1 var(--f);font-variant-numeric:tabular-nums;}
i.tk-p{min-width:10px;height:10px;padding:0;border-radius:3px;}
.tk-takip{background:var(--c-accent-soft);color:var(--c-accent-d);}
.tk-takip.tk-gec{background:var(--c-red-soft);color:var(--c-red-t);}
.tk-op{background:var(--c-green-soft);color:var(--c-green);}
.tk-lgnd{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid var(--c-line2);
  font-size:11.5px;color:var(--c-ink3);}
.tk-lgnd span{display:inline-flex;align-items:center;gap:6px;}

/* gun ajandasi */
.tk-i{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;width:100%;
  text-align:left;background:none;border:0;border-top:1px solid var(--c-line2);padding:9px 2px;cursor:pointer;font:inherit;}
.sec-card>.tk-i:first-of-type{border-top:0;}
.tk-i:hover{background:var(--c-alt);}
.tk-i-k{display:inline-flex;align-items:center;justify-content:center;padding:3px 9px;border-radius:var(--r-sm);
  font:700 11px/1.4 var(--f);white-space:nowrap;}
.tk-i-b{min-width:0;}
.tk-i-b b{display:block;font:600 13px/1.35 var(--f);color:var(--c-ink);overflow-wrap:anywhere;}
.tk-i-b em{display:block;font-style:normal;font-size:11.5px;color:var(--c-ink3);margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tk-i-r{white-space:nowrap;font-size:12px;}

@media(max-width:760px){
  .tk-grid{gap:3px;}
  .tk-d{min-height:50px;padding:4px 5px;}
  .tk-nav b{min-width:96px;font-size:14px;}
  .tk-i{grid-template-columns:auto minmax(0,1fr);}
  .tk-i-r{grid-column:1/-1;}
  .tk-i-b em{white-space:normal;}
  /* 5. sekme (Takvim) ile birlikte tab seridi dar ekrana sigmiyordu:
     inline-flex + flex:0 0 auto sarmiyordu. Dar ekranda sarsin. */
  .ws-switch.inline{display:flex;flex-wrap:wrap;}
  .ws-switch.inline button{padding:0 12px;}
}

/* =====================================================================
   PS1.1 — gunluk calisma alani
   Sprint 1'in .ps-* kurallarinin yerini alir; Panelim artik dashboard
   degil. Mevcut Medyapark gorsel sistemi korunur (07 §1).
   ===================================================================== */

/* --- iki sutunlu gunluk duzen (§4) --------------------------------- */
/* §4 — olculerek ayarlandi. 1442px viewport'ta onceki 1.35fr/1fr orani
   %56.6/%41.9 veriyordu; gunluk panellerin satirlarinin 6'si kirpiliyordu.
   55/45 hem istenen araligin net bir noktasi hem de sag sutuna gercek
   genislik veriyor. Akis BIRINCIL yuzey olarak kaliyor. */
.pnl-grid{display:grid;grid-template-columns:minmax(0,55fr) minmax(0,45fr);
  gap:18px;align-items:start;}
.pnl-a{min-width:0;} .pnl-b{min-width:0;display:flex;flex-direction:column;gap:18px;}
/* §20: sag sutundaki uc modul "serbest akan icerik" degil, sinirlari
   belli parcalar gibi okunmali. Mevcut kart dili KORUNUR (ayni kenarlik,
   ayni yaricap); yalniz ic ritim netlestirilir. Yeni tasarim sistemi YOK. */
.pnl-b .card{margin-bottom:0;}
.pnl-b .card-h{padding:13px 16px;}
.pnl-b .card-h h3{display:flex;align-items:center;gap:7px;}
.pnl-b .card-b{padding:12px 16px 14px;}
@media(max-width:1100px){ .pnl-grid{grid-template-columns:1fr;} }

/* --- filtre cubugu (S4.2 §12) ---------------------------------------
   ONCE olculdu: acilir kutular 34px, anahtar haplari 32px yuksekligindeydi
   ve ayni gorsel satirdaki ust kenarlari 1px kayikti - "hafifce hizasiz"
   sikayetinin somut kaynagi buydu. Ayrica 3 kutu x 210px, 610px'lik cubuga
   sigmiyor ve ucuncu kutu haplarin yanina dusuyordu.

   SONRA: tek bir bilesen, iki acik grup. Butun kontroller AYNI yukseklikte
   (34px) ve ayni taban hizasinda. Yeni filtre yok, filtre cekmecesi yok. */
.pf{display:flex;flex-wrap:wrap;gap:9px 14px;align-items:center;
  padding:12px 16px;border-bottom:1px solid var(--c-line2);background:var(--c-alt);}
.pf-sel{display:flex;gap:8px;flex:1 1 430px;min-width:0;}
.pf-sel .inp-sm{flex:1 1 0;min-width:112px;max-width:none;}
.pf-tog{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.pf-t{display:inline-flex;align-items:center;height:var(--ctl-h-sm);
  border:1px solid var(--c-line);background:#fff;color:var(--c-ink2);border-radius:999px;
  padding:0 14px;font:600 13px/1 var(--f);cursor:pointer;transition:.13s;white-space:nowrap;}
/* Temizle: filtre grubunun kendi icinde, ayri bir serit gerektirmeden. */
.pf-x{display:inline-flex;align-items:center;height:var(--ctl-h-sm);padding:0 13px;
  border:1px solid var(--c-accent);background:#fff;color:var(--c-accent);
  border-radius:999px;font:600 12.5px/1 var(--f);cursor:pointer;white-space:nowrap;}
.pf-x:hover{background:var(--c-accent);color:#fff;}
.pf-t:hover{border-color:var(--c-ink3);color:var(--c-ink);background:var(--c-alt);}
/* §9: seçili filtre seçilmemişten AÇIKÇA farklı görünmeli. Sadece koyu zemin
   değil; kalınlık, gölge ve bir onay işareti birlikte. */
.pf-t.on{background:var(--c-ink);border-color:var(--c-ink);color:#fff;font-weight:700;
  box-shadow:0 1px 3px rgba(17,24,39,.28);}
.pf-t.on::before{content:"✓ ";font-weight:700;}

/* --- aktif filtre serıdı (§8) --------------------------------------
   Secili bir filtrenin fark edilmemesi bu sprintin duzelttigi somut
   sikayetlerden biri. Sadece kontrolu isaretlemek yetmiyor - listenin
   ustunde acikca yaziyor. */
/* AKTIF FILTRE seridi. Sinif adi bilinçli olarak `.afilt` — PS1.1'de
   bu blok `.fbar` adiyla yazilmisti ve Halil'in Doluluk ekranindaki
   MEVCUT `.fbar` filtre kartini (bkz. ~640. satir) sessizce yeniden
   stillendiriyordu. Ayni ada iki farkli bilesen bagli kalamaz. */
.afilt{display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  padding:9px 16px;background:var(--c-accent-soft);
  border-bottom:1px solid var(--c-line2);border-left:3px solid var(--c-accent);}
.afilt.neutral{background:var(--c-alt);border-left-color:var(--c-line);}
.afilt.neutral .afilt-l{color:var(--c-ink3);}
.afilt-l{font:700 11.5px/1.6 var(--f);letter-spacing:.06em;text-transform:uppercase;color:var(--c-accent-d);}
.afilt-v{font:600 13.5px/1.5 var(--f);color:var(--c-ink);}
.afilt-n{font-size:12.5px;color:var(--c-ink3);}
.afilt-x{margin-left:auto;border:1px solid var(--c-accent);background:#fff;color:var(--c-accent);
  border-radius:999px;padding:5px 13px;font:600 12.5px/1.4 var(--f);cursor:pointer;}
.afilt-x:hover{background:var(--c-accent);color:#fff;}
/* Secili bir degeri olan acilir kutu da gorsel olarak isaretlenir. */
.inp-on{border-color:var(--c-accent-d)!important;box-shadow:inset 0 0 0 1px var(--c-accent-soft);font-weight:600;}

/* --- kompakt guncelleme akisi (§5) ---------------------------------
   Sprint 1 satirlari 26px avatar + genis bosluk tasiyordu. Metin gorsel
   odak; baglam ikincil. */
.pu-list{display:flex;flex-direction:column;padding-top:4px;}
/* §7: satır biraz daha yer kaplayabilir ama KART OLMAZ. Hedef normal bir
   güncelleme için 2-3 görsel satır ve ekranda rahat 10-15 kayıt. */
/* §6: metnin nefes alacak yeri var ama satir KART DEGIL - ekranda hala
   rahat 10+ kayit goruluyor. */
.pu{padding:13px 14px 14px 13px;border-left:2px solid transparent;border-radius:0 var(--r) var(--r) 0;}
.pu+.pu{border-top:1px solid var(--c-line2);}
.pu:hover{background:var(--c-alt);}
/* S4.3 §26 — `.pu.mine` kirmizi sol cizgisi KALDIRILDI. Uc farkli
   anlami vardi ve hicbiri okunamiyordu; ucu de artik acikca temsil
   ediliyor (vurgulu `@Adin` ve `Benimle ilgili` filtresi). */
.pu.sys{opacity:.78;}
/* §5/§10: baslik iki bolgeli - solda kim/ne zaman, sagda Is·Kurum baglami.
   Baglam artik metnin ALTINDA degil, ustte ve sagda; guncelleme metniyle
   yarismiyor. */
.pu-h{display:flex;align-items:flex-start;justify-content:space-between;
  gap:10px;flex-wrap:wrap;margin-bottom:5px;}
.pu-hl{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;min-width:0;}
/* §11: chip'lerin ikinci satira tasmasi basligi iki kat yukseltiyor ve
   "rastgele sarmis metadata" gibi gorunuyordu. Baglam TEK SATIRDA kalir;
   sigmayan ad uc noktayla kirpilir, tam metin `title`da erisilebilir. */
.pu-hr{display:flex;align-items:center;gap:5px;flex-wrap:nowrap;
  justify-content:flex-end;min-width:0;max-width:58%;}
.pu-hr .pu-chip{flex:0 1 auto;min-width:0;}
.pu-h b{font:650 13px/1.5 var(--f);color:var(--c-ink);}
/* §5: oluşturma zamanı ZORUNLU ve okunaklı - hover'da gizlenmez, chip
   kalabalığında kaybolmaz. Tabular rakam hizalı okuma sağlar. */
.pu-h time{font:500 12.5px/1.5 var(--f);color:var(--c-ink3);font-variant-numeric:tabular-nums;}
.pu-b{border-radius:var(--r-sm);padding:1px 7px;font:700 11px/1.5 var(--f);white-space:nowrap;}
.pu-b.acil{background:var(--c-accent);color:#fff;letter-spacing:.03em;}
.pu-b.mine{background:var(--c-accent-soft);color:var(--c-accent-d);}
.pu-b.due{background:var(--c-line2);color:var(--c-ink2);}
.pu-b.gec{background:var(--c-red-soft);color:var(--c-red-t);}
/* §6: güncelleme metni satırın EN GÜÇLÜ öğesidir ve nefes alir.
   §11: cok genis ekranda satir uzunlugu 106 karaktere cikiyordu; okuma
   olcusu ust sinirla tutuluyor. `ch` birimi RAKAM genisligine gore
   cozulur ve Plus Jakarta'da rakamlar ortalama harften belirgin genistir
   - 76ch olcusu 106 gercek karaktere denk geliyordu, bu yuzden 60ch.
   Satirin kendisi tam genislikte kalir (baslik chip'leri ve alt
   metadata sag kenari kullanir), yalniz PARAGRAF sinirlanir. */
.pu-t{margin:5px 0 1px;font-size:14.5px;line-height:1.62;color:var(--c-ink);
  overflow-wrap:anywhere;cursor:pointer;max-width:60ch;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.pu-t.acik{-webkit-line-clamp:unset;display:block;}
/* §10: dar ekranda baslik DOGAL olarak yiginlanir - baglam chip'leri
   kendi satirini alir, yoksa 430px'te kurum adi tek harfe kadar
   kirpiliyordu. Bilgi sirasi aynidir, yalniz dikey dizilir. */
@media(max-width:760px){
  .pu-h{flex-direction:column;align-items:flex-start;gap:4px;}
  .pu-hr{max-width:100%;justify-content:flex-start;flex-wrap:wrap;}
  .pu-f{gap:6px;}
  .pu-fr{justify-content:flex-start;}
}
.pu-c{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px;align-items:center;}
.pu-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--c-line);background:#fff;
  color:var(--c-ink2);border-radius:var(--r-sm);padding:1px 7px;font:500 12px/1.5 var(--f);
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* §8: uzun resmi unvanlar satırı ele geçirmesin - görsel olarak kırpılır,
   tam metin title ile erişilebilir kalır. Kimlik verisi DEĞİŞMEZ. */
/* Daralma sirasi bilinclidir: yer yetmezse ONCE kurum chip'i kirpilir,
   Is basligi mumkun oldugunca tam kalir. */
.pu-chip.org{max-width:min(210px,100%);flex-shrink:3;}
.pu-chip.is{max-width:min(300px,100%);font-weight:600;color:var(--c-ink);flex-shrink:1;}
/* §7/§8: alt bolge. SOLDA son tarih (ayri bir bilgi sinifi, siradan bir
   etiket gibi gorunmez), SAGDA ikincil ilgi metadatasi. Ikisi ayni
   kumede DURMAZ - onceki satir duzeninde son tarih kurum chip'inin
   yanina dusuyordu. */
.pu-f{display:flex;align-items:center;justify-content:space-between;
  gap:10px;flex-wrap:wrap;margin-top:9px;}
.pu-fl{min-width:0;display:flex;align-items:center;}
.pu-fr{min-width:0;display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end;}
/* Son tarih normal metadatadan GUCLU, guncelleme metninden ZAYIF. */
.pu-son{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap;
  border-radius:999px;padding:3px 11px;font:600 12.5px/1.5 var(--f);
  background:var(--c-line2);color:var(--c-ink2);}
.pu-son b{font-weight:700;color:var(--c-ink);}
.pu-son i{font-style:normal;font-weight:500;opacity:.85;}
.pu-son.gec{background:var(--c-red-soft);color:var(--c-red-t);font-weight:700;}
.pu-son.gec i{color:var(--c-red-t);opacity:.9;}
/* Etiketlenen kisiler: gorunur ama KISIK (§8). */
.pu-who{font:600 12px/1.5 var(--f);color:var(--c-ink3);
  background:var(--c-line2);border-radius:999px;padding:2px 9px;white-space:nowrap;}
/* §3: oturum sahibinin kendi etiketi AYNI bicimde cizilir, yalnizca
   fark edilsin diye vurgulanir. Ayri bir kavram/sozcuk YOK. */
.pu-who.ben{background:var(--c-accent-soft);color:var(--c-accent-d);font-weight:700;
  box-shadow:inset 0 0 0 1px #f6ccd6;}
.pu-sys{font:500 11.5px/1.5 var(--f);color:var(--c-ink3);
  border:1px dashed var(--c-line);border-radius:999px;padding:1px 8px;}

/* --- S4.3: duzenlendi isareti + satir menusu ------------------------ */
/* §6: mevcut `entries.updated_at` kullanilir; yeni alan ACILMADI. */
.pu-duz{font:500 11.5px/1.5 var(--f);color:var(--c-ink3);font-style:italic;}
/* §4: kalici Duzenle/Sil dugmeleri YOK - tek, sessiz bir `⋯`. */
.pu-mb{flex:0 0 auto;width:26px;height:24px;border:0;background:none;cursor:pointer;
  color:var(--c-ink3);border-radius:6px;font:700 15px/1 var(--f);letter-spacing:.06em;
  opacity:.55;transition:.13s;}
.pu:hover .pu-mb{opacity:1;}
.pu-mb:hover{background:var(--c-line2);color:var(--c-ink);}
.pu-mb:focus-visible{opacity:1;}
.pu-pop{position:absolute;z-index:60;min-width:132px;background:var(--c-panel);
  border:1px solid var(--c-line);border-radius:10px;padding:5px;
  box-shadow:0 8px 24px rgba(17,24,39,.14);display:flex;flex-direction:column;gap:2px;}
.pu-pop button{text-align:left;background:none;border:0;cursor:pointer;
  padding:8px 11px;border-radius:7px;font:600 13px/1.3 var(--f);color:var(--c-ink);}
.pu-pop button:hover{background:var(--c-alt);}
.pu-pop button.sil{color:var(--c-red-t);}
.pu-pop button.sil:hover{background:var(--c-red-soft);}
button.pu-chip{cursor:pointer;transition:.13s;}
button.pu-chip:hover{border-color:var(--c-ink);color:var(--c-ink);}
.pu-chip.org{color:var(--c-ink2);}
.pu-chip.who{border-style:none;background:var(--c-accent-soft);color:var(--c-accent-d);font-weight:600;}
.pu-chip.dim{border-style:dashed;}
/* --- akis sayfalayici (S4.1 §4) ------------------------------------
   Sonsuz kaydirma DEGIL: kullanici kacinci sayfada oldugunu bilir ve
   ayni sayfaya geri donebilir. */
/* Ajanda gun tasmasi (§31): sessizce kesmek yerine nereye gidilecegini soyler. */
.pa-more{display:block;width:100%;text-align:left;background:none;border:0;cursor:pointer;
  padding:5px 4px 2px;font:600 12.5px/1.5 var(--f);color:var(--c-accent);}
.pa-more:hover{text-decoration:underline;text-underline-offset:2px;}
.pgr{display:flex;align-items:center;justify-content:space-between;gap:10px;
  flex-wrap:wrap;padding:11px 14px 13px;border-top:1px solid var(--c-line2);}
.pgr-n{font:600 13.5px/1.5 var(--f);color:var(--c-ink2);text-align:center;flex:1 1 auto;}
.pgr-n b{color:var(--c-ink);}
.pgr-n em{display:block;font:500 12.5px/1.5 var(--f);font-style:normal;color:var(--c-ink3);}
.pgr .btn[disabled]{opacity:.45;cursor:default;}

/* --- dikkat / takip satirlari (§12, §17) ---------------------------- */
/* §18/§19: satirlar arasi ritim ve ayrac netlestirildi; sebep (gecikme
   gun sayisi / Acil) sagda kendi bolgesinde durur. Semantik DEGISMEDI. */
/* Son sutun `minmax(0,auto)` idi ve sifira kadar ezilebiliyordu: uzun bir
   kurum+ozet ortadaki sutunu sisirince sagdaki faz etiketi tek harfe
   ("T…") duserek okunamaz hale geliyordu. `auto` da yetmedi: alan
   yetmeyince auto sutunlar da orantili daraliyor. `max-content` etiketin
   dogal genisligini GARANTI eder; daralma ortadaki metinde olur - o zaten
   uc noktayla kirpilmak uzere tasarlanmis. */
.pd-row{display:grid;grid-template-columns:auto minmax(0,1fr) max-content;gap:0;align-items:center;
  width:100%;text-align:left;background:none;border:0;padding:10px 6px;border-radius:var(--r);
  cursor:pointer;font:inherit;color:var(--c-ink);}
/* Sutunlar SIRAYA gore degil SINIFA gore yerlesir. `.pd-row` iki farkli
   sekilde kullaniliyor: Dikkat Gerekenler'de ikon+govde+sag, Takip
   Ettigim Isler ve kurum/kisi detayinda yalniz govde+sag. Sira temelli
   yerlesimde ikinci sekilde `.pd-r` ORTADAKI esnek sutuna dusuyor ve
   faz etiketi tek harfe ("T…") eziliyordu. Bosluk `gap` yerine kenar
   boslugu ile verilir; boylece ikonsuz satirlar hayalet bir bosluk
   kadar icerlek baslamaz. */
.pd-row>.pd-i{grid-column:1;margin-right:11px;}
.pd-row>.pd-b{grid-column:2;}
.pd-row>.pd-r{grid-column:3;margin-left:11px;}
.pd-row:hover{background:var(--c-alt);}
.pd-row+.pd-row{border-top:1px solid var(--c-line2);}
.pd-r{align-items:center;gap:6px;}
.pd-i{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;font-size:12.5px;flex:0 0 auto;}
.pd-i.gec{background:var(--c-red-soft);color:var(--c-red-t);}
.pd-i.acil{background:var(--c-accent-soft);color:var(--c-accent-d);}
.pd-b{min-width:0;}
.pd-t{display:block;font:600 13.5px/1.45 var(--f);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pd-s{display:block;font-size:12.5px;color:var(--c-ink3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pd-r{white-space:nowrap;display:flex;gap:4px;min-width:0;justify-content:flex-end;}
.pd-r .pill{overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.chip.clay{background:var(--c-red-soft);color:var(--c-red-t);}

/* --- bugun & yaklasan ajandasi (§13) -------------------------------- */
/* §16: gun basliklari artik gruplari acikca ayiriyor; olaylar gun
   bloklarinin icinde nefes aliyor. */
.pa-list{display:flex;flex-direction:column;gap:14px;}
.pa-d{border-left:2px solid var(--c-line2);padding-left:11px;}
.pa-d:first-child{border-left-color:var(--c-accent);}
.pa-dh{font:700 11.5px/1.6 var(--f);color:var(--c-ink3);letter-spacing:.07em;
  text-transform:uppercase;margin-bottom:3px;}
.pa-dh.now{color:var(--c-accent);}
.pa-e{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:none;border:0;
  padding:6px 7px;border-radius:var(--r-sm);cursor:pointer;font:inherit;}
.pa-e:hover{background:var(--c-alt);}
/* §16: rozetler okunakli - sabit genislik hizali bir sutun olusturur. */
.pa-k{flex:0 0 auto;min-width:62px;text-align:center;border-radius:999px;padding:3px 8px;
  font:700 10.5px/1.5 var(--f);text-transform:uppercase;letter-spacing:.05em;}
.pa-k.takip{background:var(--c-accent-soft);color:var(--c-accent-d);}
.pa-k.op{background:var(--c-line2);color:var(--c-ink2);}
.pa-k.op-baski{background:var(--c-orange-soft);color:var(--c-orange);}
.pa-k.op-montaj{background:var(--c-green-soft);color:var(--c-green);}
.pa-k.op-sokum{background:var(--c-blue-soft);color:var(--c-blue);}
/* S4.3 §23: kisisel etkinlik notr/kisisel bir tonda - sirket olaylarinin
   semantik renkleriyle yarismaz ve gurultulu bir gizlilik uyarisi degil.
   Kesikli kenarlik "bu yalniz senin" isaretidir. */
.pa-k.ozel{background:#fff;color:var(--c-ink2);border:1px dashed var(--c-ink3);}
.pa-e.ozel .pa-x{color:var(--c-ink2);}
.pa-e.ozel .pa-x b{color:var(--c-ink);font-variant-numeric:tabular-nums;}
.pa-x{flex:1;min-width:0;font-size:13.5px;color:var(--c-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pa-e em{font-style:normal;font:700 11.5px/1.6 var(--f);color:var(--c-red-t);white-space:nowrap;}
.pa-e.gec .pa-k{background:var(--c-red-soft);color:var(--c-red-t);}

/* --- composer (§9-§11) ---------------------------------------------- */
.qc-tags{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin:0 0 12px;}
.qc-mini{font:700 11.5px/1.6 var(--f);letter-spacing:.05em;text-transform:uppercase;color:var(--c-ink3);}
.qc-who{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--c-line);
  background:#fff;border-radius:999px;min-height:var(--ctl-h-sm);padding:0 12px;font-size:13px;cursor:pointer;user-select:none;}
.qc-who:hover{border-color:var(--c-ink3);}
.qc-who input{margin:0;cursor:pointer;}
.qc-who:has(input:checked){border-color:var(--c-ink);background:var(--c-ink);color:#fff;}
.qc-line{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 10px;}
.qc-line .inp-sm{flex:1 1 150px;max-width:260px;}
.qc-opt{padding-top:10px;border-top:1px solid var(--c-line2);}
.qc-acil{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--c-line);
  background:#fff;border-radius:999px;min-height:var(--ctl-h-sm);padding:0 13px;font:600 13px/1.3 var(--f);cursor:pointer;user-select:none;}
.qc-acil input{margin:0;cursor:pointer;}
.qc-acil:has(input:checked){border-color:var(--c-accent);background:var(--c-accent);color:#fff;}

/* --- satir ici kurum/kisi ekleme (§24) ------------------------------ */
.inp-add{display:flex;gap:5px;align-items:stretch;}
.inp-add .inp{flex:1;min-width:0;}
.add-b{flex:0 0 auto;width:34px;border:1px solid var(--c-line);background:#fff;color:var(--c-ink2);
  border-radius:var(--r);font:600 17px/1 var(--f);cursor:pointer;transition:.13s;}
.add-b:hover{border-color:var(--c-ink);color:var(--c-ink);background:var(--c-alt);}

/* --- Isler kapsam satiri -------------------------------------------- */
.coord-f2{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px;
  padding-top:10px;border-top:1px solid var(--c-line2);}

/* --- takvim olay hapleri (§21) --------------------------------------
   Eskiden hucrede yalnizca minik yesil/kirmizi sayi kareleri vardi;
   neyin oldugunu gormek icin gune tiklamak gerekiyordu. */
.tk-evs{display:flex;flex-direction:column;gap:2px;margin-top:2px;width:100%;overflow:hidden;}
.tk-ev{display:flex;align-items:center;gap:5px;border-radius:3px;padding:2px 5px;
  font:600 11.5px/1.5 var(--f);overflow:hidden;}
.tk-ev i{flex:0 0 auto;width:4px;height:4px;border-radius:50%;background:currentColor;}
.tk-ev b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
.tk-ev.takip{background:var(--c-accent-soft);color:var(--c-accent-d);}
.tk-ev.op{background:var(--c-green-soft);color:var(--c-green);}
.tk-ev.gec{background:var(--c-red-soft);color:var(--c-red-t);}
.tk-ev.acil{box-shadow:inset 2px 0 0 var(--c-accent);}
.tk-ev.more{background:transparent;color:var(--c-ink3);font-weight:700;padding-left:6px;}

/* --- S4.3.1 Ajandam Takvim -------------------------------------------
   Ayni izgara (Isler -> Takvim), farkli veri kapsami. Kisisel etkinlik
   sirket olaylarindan GORULEREK ayrilir ama yuksek sesle degil: notr
   zemin + kesikli kenar, Liste'deki `KİŞİSEL` rozetiyle ayni dil. */
.tk-ev.ozel{background:#fff;color:var(--c-ink2);border:1px dashed var(--c-ink3);padding:1px 4px;}
.tk-ev.op-baski{background:var(--c-orange-soft);color:var(--c-orange);}
.tk-ev.op-montaj{background:var(--c-green-soft);color:var(--c-green);}
.tk-ev.op-sokum{background:var(--c-blue-soft);color:var(--c-blue);}
i.tk-p.tk-ozel,.tk-i-k.tk-ozel{background:#fff;color:var(--c-ink2);border:1px dashed var(--c-ink3);}
i.tk-p.tk-ozel{border-radius:3px;}
/* Kart basligindaki Liste | Takvim anahtari: kompakt, basligi sisirmez. */
.ws-switch.aj-sw{margin:0;padding:2px;}
.ws-switch.aj-sw button{flex:0 0 auto;padding:4px 10px;font-size:12px;}
.tk-n{display:flex;align-items:center;justify-content:space-between;gap:4px;}
.tk-c{font-style:normal;font:700 9.5px/1.5 var(--f);color:var(--c-ink3);
  background:var(--c-line2);border-radius:999px;padding:0 5px;}

@media(max-width:760px){
  .pf{padding:9px 12px;} .inp-sm{max-width:100%;}
  /* Dar ekranda faz/durum rozetleri iki satira sarabilir. */
  .pd-r{flex-wrap:wrap;}
  .pu{padding:9px 2px 9px 8px;}
  .afilt{padding:9px 12px;} .afilt-x{margin-left:0;}
  .tk-ev b{display:none;}
  .tk-ev{justify-content:center;padding:2px;}
}

/* ===== S2: operasyonel kontrol seridi (§8) ===========================
   Donem/tur/durum artik bir formun icinde degil, tablonun hemen ustunde
   tek tiklik kontroller. Tablo yogun kalir; kart buyumez. */
.op-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  padding:10px 14px;background:var(--c-panel);border:1px solid var(--c-line);
  border-radius:var(--r);margin-bottom:8px;}
/* `display:flex` HTML'in `hidden` niteligini ezer - ozel aralik satiri
   gizliyken bile gorunuyordu. Nitelik kazanmali. */
.op-bar[hidden]{display:none;}
.op-bar+.op-bar{margin-top:-4px;}
.op-bar .inp-sm{margin:0;}
.op-ozel{background:var(--c-alt);}
/* Muhasebe satirindaki iki eylem yan yana sigsin. */
.acc-a{white-space:nowrap;}
.acc-a .btn+.btn{margin-left:6px;}
/* Operasyon satirinda "Is / Kurum" hucresi Work'u acar (§15). */
.op-j{cursor:pointer;}
.op-j:hover{text-decoration:underline;text-underline-offset:2px;}
/* Operasyon modalinda Work koprusu (§15) - ayri bir yorum alani DEGIL. */
.op-lnk{display:flex;gap:14px;flex-wrap:wrap;margin:0 0 14px;
  padding-bottom:10px;border-bottom:1px solid var(--c-line2);}
.op-say{gap:6px;}
.op-say .pf-t{display:inline-flex;align-items:center;gap:6px;}
.op-say .pf-t b{font-size:12px;opacity:.85;}
.op-say .pf-t.on b{opacity:1;}

/* Bos bolum: koca bos kart yerine tek satirlik sessiz ipucu (§27). */
.w-quiet{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;
  margin:0 0 12px;padding:9px 14px;border:1px dashed var(--c-line);
  border-radius:var(--r);font-size:12.5px;}

@media(max-width:760px){
  .op-bar{padding:9px 10px;}
  .op-bar .inp-sm{flex:1 1 46%;max-width:none;}
}

/* ===== PS3: Hafıza ===================================================
   Arama ekranin hakimi; liste yogun ve taranabilir. Dev kart yok (§13). */
/* §21: genis ekranda satirlar tam genislige yayilinca ad ile telefon
   arasinda genis bir bosluk kaliyor ve goz uzun bir mesafe kat ediyordu.
   Okuma genisligi sinirlanir - liste sakin ve taranabilir kalir. */
.haf-search,#hafBody{max-width:1180px;}
.haf-search{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px;}
.haf-q{flex:1 1 340px;min-width:240px;height:42px;font-size:14.5px;}
.haf-hint{margin:0 0 12px;font-size:13px;color:var(--c-ink3);}
.haf-say{margin:0 0 8px;font-size:12.5px;color:var(--c-ink3);}
.haf-grp{font:700 11.5px/1.6 var(--f);letter-spacing:.06em;text-transform:uppercase;
  color:var(--c-ink3);margin:16px 0 6px;display:flex;gap:6px;align-items:center;}
.haf-grp:first-child{margin-top:0;}

.haf-row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,auto);gap:11px;
  align-items:center;width:100%;text-align:left;background:var(--c-panel);
  border:1px solid var(--c-line2);border-radius:var(--r);padding:10px 13px;
  margin-bottom:5px;cursor:pointer;font:inherit;color:var(--c-ink);transition:.12s;}
.haf-row:hover{border-color:var(--c-ink3);background:var(--c-alt);}
/* S4.2 §21: "KURUM" ve "KİŞİ" farkli genislikteydi, bu yuzden sonuc
   basliklari tek bir sutunda hizalanmiyor ve goz her satirda yeniden
   yer ariyordu. Sabit minimum genislik ikisini de ayni kolona oturtur.
   Etiketin KENDISI degismedi - yalniz hizalanir. */
.haf-k{flex:0 0 auto;min-width:52px;text-align:center;border-radius:var(--r-sm);padding:2px 8px;
  font:700 11px/1.7 var(--f);text-transform:uppercase;letter-spacing:.04em;}
.haf-k.kisi{background:var(--c-accent-soft);color:var(--c-accent-d);}
.haf-k.kurum{background:var(--c-line2);color:var(--c-ink2);}
.haf-b{min-width:0;}
.haf-t{display:block;font:600 14px/1.45 var(--f);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.haf-s{display:block;font-size:12.5px;color:var(--c-ink3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.haf-r{text-align:right;font-size:12.5px;color:var(--c-ink2);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;}
.haf-r em{font-style:normal;color:var(--c-ink3);}
/* §27: koken/kanit ikincil kalir - kimligin onune gecmez. */
.haf-r .pill{background:transparent;color:var(--c-ink3);font-weight:500;padding:0 0 0 6px;}
.haf-ev{font-size:11.5px;color:var(--c-ink3);}

.haf-pick{display:flex;gap:10px;flex-wrap:wrap;}
.haf-pick-b{flex:1 1 190px;text-align:left;background:#fff;border:1px solid var(--c-line);
  border-radius:var(--r);padding:14px;cursor:pointer;font:inherit;transition:.13s;}
.haf-pick-b:hover{border-color:var(--c-accent-d);background:var(--c-accent-soft);}
.haf-pick-b b{display:block;font-size:14px;margin-bottom:3px;}
.haf-pick-b span{display:block;font-size:12px;color:var(--c-ink3);}

.haf-dup{margin:-4px 0 12px;padding:8px 11px;border-radius:var(--r);
  background:var(--c-amber-soft);font-size:12.5px;line-height:1.7;}
.haf-dup b{color:var(--c-amber-t);}

@media(max-width:760px){
  .haf-q{flex:1 1 100%;}
  .haf-row{grid-template-columns:auto minmax(0,1fr);}
  .haf-r{grid-column:2;text-align:left;white-space:normal;}
}
/* §12: dikkat satirinda tarih, NEDEN rozetinin yaninda ikincil kalir. */
.pd-d{font:500 11.5px/1.6 var(--f);color:var(--c-ink3);white-space:nowrap;}

/* ===== PS4: doluluk gerçek dönem + bugün görünümü ==================== */
.rz-per{margin-top:10px;padding-top:10px;border-top:1px solid var(--c-line2);}
.rz-per-r{display:flex;gap:6px;align-items:center;}
.rz-per-r .inp-sm{flex:1;min-width:0;max-width:none;}
.rz-per-d{color:var(--c-ink3);font-weight:600;}
.rz-per-y{margin:8px 0 0;}
.rz-next{display:flex;flex-wrap:wrap;gap:6px;}
.rz-next-i{display:inline-flex;flex-direction:column;gap:1px;border:1px solid var(--c-line);
  border-radius:var(--r-sm);padding:4px 9px;font-size:12px;min-width:84px;}
.rz-next-i b{font:600 12px/1.4 var(--f);}
.rz-next-i em{font-style:normal;font-size:11px;color:var(--c-ink3);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rz-next-i.dolu{background:var(--c-red-soft);border-color:transparent;}
.rz-next-i.rezerve{background:var(--c-amber-soft);border-color:transparent;}
.pill.ok{background:var(--c-green-soft);color:var(--c-green);}

/* ============ S4.4 — Güncellemeler | Hareketler ======================
   Iki akis tek kartta. Anahtar kart basliginin kendisidir (h3 yerine);
   Ajandam'in `aj-sw` kompakt olcusuyla ayni dil. Hareket satiri insan
   guncellemesinden GORSEL olarak ayrilir: daha sakin metin, rozet tipi
   etiket, satir ici acma/kapama yok (metin kisa ve sistem uretimi). */
.ws-switch.hr-sw{margin:0;padding:2px;}
.ws-switch.hr-sw button{flex:0 0 auto;padding:5px 12px;font-size:13px;font-weight:650;}
.pf.hr-f .ws-switch.inline{margin:0;}
.pu.hr{padding-block:10px 11px;}
.pu.hr .pu-h{margin-bottom:3px;}
.pu-h b.hr-oto{color:var(--c-ink3);font-weight:600;}
.hr-k{border-radius:var(--r-sm);padding:1px 7px;font:650 11.5px/1.5 var(--f);
  background:var(--c-line2);color:var(--c-ink2);white-space:nowrap;}
.hr-t{margin:0;font-size:13.5px;line-height:1.55;color:var(--c-ink2);overflow-wrap:anywhere;}
@media(max-width:760px){ .pf.hr-f .fhint{margin:0 !important;} }

/* ============ S5 — Raporlar önizleme ================================
   Önizleme, Excel'e giden AYNI satırları gösterir (ilk 10). Dönem her
   zaman yazılı; kullanıcı yalnız tarih kutularından çıkarım yapmaz. */
.rp-donem{margin:12px 0 0;font-size:13.5px;color:var(--c-ink2);}
.rp-donem b{color:var(--c-ink);font-weight:650;}
.rp-prev-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px 16px;flex-wrap:wrap;
  padding:10px 12px;border-radius:var(--r);background:var(--c-alt);font-size:13.5px;}
.rp-prev-h span{font-size:12.5px;color:var(--c-ink3);}
.rp-sec{margin-top:16px;}
.rp-sec .rp-line{padding:6px 2px;border-bottom:1px solid var(--c-hair);}
.rp-kapsam{margin:6px 2px 0;font-size:12.5px;line-height:1.5;color:var(--c-ink3);}
.rp-kapsam b{color:var(--c-ink2);font-weight:650;}
.rp-tbl{margin-top:8px;border:1px solid var(--c-hair);border-radius:var(--r);}
.rp-tbl .tbl{font-size:12.5px;}
.rp-tbl .tbl th,.rp-tbl .tbl td{white-space:nowrap;max-width:320px;overflow:hidden;text-overflow:ellipsis;}

/* ================= S6 — Belgeler & Ekler =================================
   Mevcut panel dili: hair cizgi, kucuk radius, pill/chip. Galeri yok. */
.bl-strip{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 2px;}
.bl-th{position:relative;width:64px;height:64px;padding:0;border:1px solid var(--c-hair);border-radius:var(--r);
  background:var(--c-line2);overflow:hidden;cursor:zoom-in;flex:0 0 auto;}
.bl-th img{width:100%;height:100%;object-fit:cover;display:block;}
.bl-th.sm{width:40px;height:40px;}
.bl-th.hata::after{content:'!';position:absolute;inset:0;display:grid;place-items:center;color:var(--c-ink3);font-weight:700;}
.bl-th:focus-visible,.bl-doc:focus-visible,.bl-rt:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px;}
.bl-more{font-size:12px;font-weight:650;color:var(--c-ink2);padding:0 4px;}
.bl-doc{display:inline-flex;align-items:center;gap:7px;max-width:260px;padding:5px 9px 5px 5px;
  border:1px solid var(--c-hair);border-radius:var(--r);background:var(--c-panel);cursor:pointer;
  font:inherit;font-size:12.5px;color:var(--c-ink);}
.bl-doc:hover{border-color:var(--c-ink3);background:var(--c-alt);}
.bl-nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bl-ext{display:inline-grid;place-items:center;min-width:38px;height:22px;padding:0 5px;border-radius:var(--r-sm);
  background:var(--c-line2);color:var(--c-ink2);font-size:10.5px;font-weight:700;letter-spacing:.02em;flex:0 0 auto;}
.bl-ext.dis{background:#eef4ff;color:#2f5ea8;}
.bl-dis{color:#2f5ea8;font-weight:700;}

.bl-f{flex-wrap:wrap;}
.bl-list{display:flex;flex-direction:column;}
.bl-row{display:flex;align-items:center;gap:12px;padding:9px 2px;border-top:1px solid var(--c-hair);}
.bl-list .bl-row:first-child{border-top:0;}
.bl-rb{flex:1 1 auto;min-width:0;}
.bl-rt{display:block;max-width:100%;padding:0;border:0;background:none;cursor:pointer;text-align:left;
  font:inherit;font-size:14px;font-weight:650;color:var(--c-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bl-rt:hover{color:var(--c-accent-d);text-decoration:underline;}
.bl-rs{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:3px;font-size:12.5px;color:var(--c-ink3);}
.bl-kay{color:var(--c-ink2);}
.bl-ra{display:flex;align-items:center;gap:6px;flex:0 0 auto;}

/* Ek bileseni */
.ek{border:1px dashed var(--c-line);border-radius:var(--r);padding:8px 10px;background:var(--c-alt);}
.ek-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;}
.ek-sec{cursor:pointer;}
.ek-sec:focus-within{outline:2px solid var(--c-focus);outline-offset:2px;}
.ek-hint{margin:0 0 0 auto;}
.ek-link{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.ek-link[hidden]{display:none;}
.ek-link .inp{flex:1 1 200px;min-width:0;}
.ek-list{display:flex;flex-direction:column;gap:4px;}
.ek-list:not(:empty){margin-top:8px;}
.ek-it{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:5px 6px;border-radius:var(--r-sm);background:var(--c-panel);
  border:1px solid var(--c-hair);font-size:12.5px;}
.ek-it.hata{border-color:#f1c4c4;background:var(--c-red-soft);}
.ek-it.sil{opacity:.55;}
.ek-it.sil .ek-ad{text-decoration:line-through;}
.ek-ad{flex:1 1 140px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;text-align:left;}
.ek-m{color:var(--c-ink3);}
.ek-tur{width:auto;max-width:170px;}
.ek-d{font-weight:650;}
.ek-d.yuk{color:var(--c-ink2);}
.ek-d.ok{color:#2e7d4f;}
.ek-d.hata{color:var(--c-red-t);}
.ek-x{border:0;background:none;cursor:pointer;color:var(--c-ink3);font:inherit;font-size:12.5px;padding:2px 6px;border-radius:var(--r-sm);}
.ek-x:hover{background:var(--c-line2);color:var(--c-ink);}

.op-eski{margin:-4px 0 10px;font-size:12.5px;color:var(--c-ink2);}
.op-eski-d{margin:0 0 10px;}
.op-eski-d summary{cursor:pointer;font-size:12.5px;color:var(--c-ink3);margin-bottom:6px;}

/* Resim onizleme (modal() degil: acik formun ustune acilir) */
.bl-lb{position:fixed;inset:0;z-index:300;background:rgba(15,20,30,.72);display:grid;place-items:center;padding:16px;}
.bl-lb-b{display:flex;flex-direction:column;max-width:min(1100px,100%);max-height:100%;background:var(--c-panel);
  border-radius:var(--r);overflow:hidden;}
.bl-lb-h{display:flex;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid var(--c-hair);}
.bl-lb-h b{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bl-lb-h span{font-size:12.5px;color:var(--c-ink3);}
.bl-lb img{display:block;max-width:100%;max-height:calc(100vh - 110px);object-fit:contain;margin:0 auto;background:#111;}

@media (max-width:640px){
  .ek-hint{display:none;}
  .ek-tur{max-width:none;flex:1 1 140px;}
  .bl-doc{max-width:100%;}
  .bl-row{flex-wrap:wrap;}
  .bl-ra{margin-left:auto;}
  .bl-th{width:56px;height:56px;}
}

/* ================= S7 — Ticari kayıtlar (Sözleşme) ====================== */
.modal.mdl-gen{width:880px;}
.tc-g{margin-top:4px;}
.tc-g+.tc-g{margin-top:16px;padding-top:14px;border-top:1px solid var(--c-hair);}
.tc-h{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.02em;
  color:var(--c-ink2);text-transform:uppercase;margin:0 0 8px;}
.tc-not{font-size:12.5px;color:var(--c-ink3);margin:10px 0 6px;}
.tc-dok{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;}
.sz-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--c-hair);
  border-radius:var(--r);background:var(--c-panel);cursor:pointer;margin-bottom:6px;}
.sz-row:hover{border-color:var(--c-ink3);background:var(--c-alt);}
.sz-row:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px;}
.sz-b{flex:1 1 auto;min-width:0;}
.sz-t{font-size:14px;font-weight:650;color:var(--c-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sz-ref{font-weight:500;color:var(--c-ink3);font-size:12.5px;}
.sz-s{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:4px;font-size:12.5px;color:var(--c-ink2);}
.sz-d{flex:0 1 220px;min-width:0;text-align:right;font-size:12.5px;color:var(--c-ink2);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sz-dh{margin-bottom:10px;}
.sz-sec{margin-top:14px;padding-top:12px;border-top:1px solid var(--c-hair);}
.sz-tw{overflow-x:auto;border:1px solid var(--c-hair);border-radius:var(--r);}
.sz-tbl{font-size:13px;width:100%;}
.sz-tbl td,.sz-tbl th{vertical-align:top;}
.sz-sub{font-size:12px;color:var(--c-ink3);margin-top:2px;}
.sz-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;justify-content:flex-end;margin-top:8px;font-size:13px;}
.sz-top b{font-size:15px;}
.sz-pre{white-space:pre-wrap;margin:0 0 6px;font-size:13px;}
.sz-act{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:16px;}
.sz-ed{display:flex;flex-direction:column;gap:8px;}
.sz-er{border:1px solid var(--c-hair);border-radius:var(--r);padding:8px;background:var(--c-alt);}
.sz-r1{display:grid;grid-template-columns:130px minmax(0,1fr) minmax(0,240px) auto;gap:6px;align-items:center;}
.sz-r1 .inp,.sz-r2 .inp{width:100%;min-width:0;max-width:none;}
.sz-r2{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-top:6px;}
.sz-r2 label{display:flex;flex-direction:column;gap:2px;font-size:11.5px;color:var(--c-ink3);font-weight:600;}
@media (max-width:760px){
  .sz-r1{grid-template-columns:1fr auto;}
  .sz-r1 [data-f="description"],.sz-r1 .sz-unit{grid-column:1 / -1;}
  .sz-r2{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sz-row{flex-wrap:wrap;}
  .sz-d{flex-basis:100%;text-align:left;}
}

/* ================= S7.1 — Work Detail hiyerarşisi, Hareketler, toplu operasyon === */
/* Başlık: ad + küçük düzenle ikonu (ayrı bir ekran değil). */
.w-head{margin-bottom:10px;}
.w-id{min-width:0;flex:1 1 360px;}
.w-id h3{display:flex;align-items:center;flex-wrap:wrap;gap:6px;}
.w-ad{min-width:0;overflow-wrap:anywhere;}
.w-ed{border:0;background:none;cursor:pointer;color:var(--c-ink3);font-size:14px;line-height:1;
  padding:5px 7px;border-radius:var(--r-sm);}
.w-ed:hover,.w-ed:focus-visible{color:var(--c-ink);background:var(--c-line2);}
.w-id .sub .btn-link{padding:0;min-height:0;font-size:inherit;color:var(--c-ink2);font-weight:600;}
.w-id .sub .btn-link:hover{color:var(--c-accent);}
.w-act{display:flex;gap:8px;flex-wrap:wrap;}

/* Aşama göstergesi: ilerleme yüzdesi DEĞİL; geçmiş adım "tamamlandı" işareti taşımaz. */
.w-faz{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 10px;padding:10px 14px;
  background:var(--c-panel);border:1px solid var(--c-hair);border-radius:var(--r);}
.w-faz-l{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--c-ink3);}
.w-faz ol{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0;overflow-x:auto;
  scrollbar-width:thin;max-width:100%;}
.w-faz li{display:flex;align-items:center;flex:0 0 auto;}
.w-faz li+li::before{content:"→";color:var(--c-ink3);font-size:13px;margin:0 4px 0 0;}
.w-faz button{font:600 13px/1.2 var(--f);padding:7px 12px;border-radius:999px;cursor:pointer;
  border:1px solid var(--c-line);background:#fff;color:var(--c-ink2);min-height:var(--ctl-h-sm);}
.w-faz button:hover{border-color:var(--fc);color:var(--c-ink);}
.w-faz button:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px;}
.w-faz li.once button{color:var(--c-ink);background:color-mix(in srgb,var(--fc) 9%,#fff);
  border-color:color-mix(in srgb,var(--fc) 28%,#fff);}
.w-faz li.on button{background:var(--fc);border-color:var(--fc);color:#fff;font-weight:750;cursor:default;
  box-shadow:0 1px 0 rgba(0,0,0,.06);padding-inline:15px;}
.w-faz-eski{font-size:12.5px;color:var(--c-ink2);}

/* Operasyonel durum satırı */
.w-st{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin:0 0 14px;padding:0 2px;font-size:13px;}
.w-ya{font-size:12.5px;padding:3px 10px;}
.w-ya.aktif{background:var(--c-green-soft);color:#17744a;}
.w-ya.arsiv{background:var(--c-line2);color:var(--c-ink2);}
.w-st-n{color:var(--c-ink2);}
.w-st-il{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;}
.w-k{font-size:12px;font-weight:650;color:var(--c-ink3);}
.w-st-a{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;}
.w-ars{border:0;padding:0;margin:0 0 6px;display:flex;flex-direction:column;gap:6px;}
.w-ars-o{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--c-line);
  border-radius:var(--r);cursor:pointer;}
.w-ars-o:has(input:checked){border-color:var(--c-accent-d);background:var(--c-accent-soft);}
.w-ars-o input{margin-top:3px;}
.w-ars-o span{display:flex;flex-direction:column;}
.w-ars-o em{font-style:normal;font-size:12.5px;color:var(--c-ink3);}

/* Bilgi kartı: anahtar/değer satırları */
.w-bilgi{padding:10px 16px;}
.w-kv{display:flex;align-items:baseline;gap:12px;padding:5px 0;flex-wrap:wrap;}
.w-kv+.w-kv{border-top:1px solid var(--c-line2);}
.w-kv .w-k{flex:0 0 96px;}
.w-kv .w-v{flex:1 1 260px;min-width:0;color:var(--c-ink2);overflow-wrap:anywhere;}
.w-kv .btn-link{padding:0 0 0 6px;min-height:0;color:var(--c-accent);font-weight:600;}

/* Bölüm kabuğu: boşken tek satır (başlık · sayı · ipucu · eylem) */
.w-sh{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;}
.w-sh h4{font-size:14px;margin:0;display:flex;align-items:center;gap:6px;}
.w-sh-i{font-size:12.5px;color:var(--c-ink3);}
.w-sh-a{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;}
.w-sec:not(.bos) .w-sh{margin-bottom:10px;}
.w-sec.bos{padding-block:9px;}
.tc-bos{margin:0;font-size:12.5px;color:var(--c-ink3);}

/* Derin bağlantı odağı */
.odak{animation:wOdak 2.4s ease-out 1;}
.list-item.odak,.bl-row.odak{box-shadow:inset 3px 0 0 var(--c-accent);}
@keyframes wOdak{0%,35%{background-color:var(--c-accent-soft);}100%{background-color:transparent;}}
.w-faz.odak,.w-st.odak{animation-name:wOdakKutu;}
@keyframes wOdakKutu{0%,35%{box-shadow:0 0 0 3px var(--c-accent-soft);}100%{box-shadow:0 0 0 0 transparent;}}

/* Hareketler: satır bir bağlantı */
.pu.hr.hr-git{cursor:pointer;}
.pu.hr.hr-git:hover{background:var(--c-alt);}
.pu.hr.hr-git:focus-visible{outline:2px solid var(--c-focus);outline-offset:-2px;}
.hr-git-o{color:var(--c-ink3);font-weight:700;}
.pu.hr.hr-git:hover .hr-git-o{color:var(--c-accent-d);}

/* Toplu Baskı / Montaj */
.opb-ort{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1.2fr) minmax(0,.8fr) minmax(0,.8fr);gap:0 10px;}
.opb-pk{border:1px solid var(--c-hair);border-radius:var(--r);padding:8px 10px;background:var(--c-alt);}
.opb-pk summary{cursor:pointer;font-size:13px;font-weight:650;display:flex;align-items:center;gap:8px;}
.opb-pk-h{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;margin:8px 0;}
.opb-pk-h .inp{flex:1 1 220px;max-width:none;}
.opb-pk-t{display:flex;gap:10px;font-size:13px;}
.opb-pk-t label{display:inline-flex;gap:4px;align-items:center;cursor:pointer;}
.opb-pk-l{max-height:210px;overflow:auto;border-top:1px solid var(--c-hair);padding-top:6px;}
.opb-pk-g+.opb-pk-g{margin-top:8px;}
.opb-pk-gh{font-size:12px;font-weight:700;color:var(--c-ink2);display:flex;align-items:center;gap:6px;}
.opb-pk-gh .btn-link{padding:0 4px;min-height:0;font-size:12px;color:var(--c-accent);}
.opb-pk-gl{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;}
.opb-pk-i{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border:1px solid var(--c-line);
  border-radius:999px;background:#fff;font-size:12.5px;cursor:pointer;}
.opb-pk-i input{margin:0;}
.opb-pk-i em{font-style:normal;color:var(--c-ink3);font-size:11.5px;}
.opb-pk-i.on{border-color:var(--c-accent-d);background:var(--c-accent-soft);}
.opb-rows{display:flex;flex-direction:column;gap:6px;}
.opb-r{display:grid;grid-template-columns:22px 118px repeat(3,minmax(0,1fr)) 72px auto;
  grid-template-areas:"n t u u d d x" ". q m l c k .";gap:6px;align-items:center;padding:7px 8px;
  border:1px solid var(--c-hair);border-radius:var(--r);background:var(--c-panel);}
.opb-r .opb-n{grid-area:n;} .opb-r [data-f="operation_type"]{grid-area:t;} .opb-r .opb-u{grid-area:u;}
.opb-r .opb-d{grid-area:d;} .opb-r .ek-x{grid-area:x;}
.opb-r [data-f="quantity"]{grid-area:q;} .opb-r [data-f="dimensions"]{grid-area:m;}
.opb-r [data-f="location_text"]{grid-area:l;} .opb-r [data-f="cost"]{grid-area:c;}
.opb-r .opb-k{grid-area:k;display:flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;color:var(--c-ink3);}
.opb-r .opb-k .inp{text-align:center;padding-inline:4px;}
.opb-r .inp{height:var(--ctl-h-sm);padding-block:0;line-height:calc(var(--ctl-h-sm) - 2px);}
.opb-r .inp{width:100%;min-width:0;max-width:none;}
.opb-r.hata{border-color:var(--c-red-t);background:var(--c-red-soft);}
.opb-n{font-size:12px;font-weight:700;color:var(--c-ink3);text-align:right;}
.opb-e{grid-column:2 / -1;grid-row:3;font-size:12.5px;color:var(--c-red-t);font-weight:600;}
@media (max-width:760px){
  .opb-ort{grid-template-columns:1fr 1fr;}
  .opb-ort .field:first-child,.opb-ort .field:nth-child(2){grid-column:1 / -1;}
  .opb-r{grid-template-columns:22px minmax(0,1fr) minmax(0,1fr) auto;
    grid-template-areas:"n t t x" ". u u ." ". d d ." ". q m ." ". l c ." ". k k .";}
  .w-st-a{margin-left:0;width:100%;}
  .w-faz{padding:8px 10px;}
  .w-faz button{padding:6px 10px;font-size:12.5px;}
  .w-kv .w-k{flex-basis:100%;}
}
@media (max-width:520px){
  .w-faz ol{gap:3px;}
  .w-faz li+li::before{content:none;}
  .w-faz button{padding:6px 8px;font-size:12.5px;min-height:32px;}
  .w-faz li.on button{padding-inline:10px;}
}

/* ==========================================================
   S8 — MECRALAR OPERASYON V2 (Halil paleti, PO kararı; renk DAİMA metinle)
     Boş → yeşil · Dolu → kırmızı · Opsiyon (rezerve) → turuncu
     Yakında boşalıyor → Dolu kalır; kırmızı çerçeveli işaret (turuncu tek anlamlı)
     Eski / ay bazlı → kesik çerçeve · İptal → soluk
     LED "Yayında" → mor (statik doluluktan ayrı aile)
   Mevcut tokenlar kullanılır; yeni palet yok.
   ========================================================== */
.md-gt:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px;}
/* Dönem araç çubuğu, mecra sekmeleri ve süzgeç satırı: aşağıda, S19 bloğunda. */

/* ---------- Mecra seçici (site-first, S8.1 §9) ---------- */


/* ---------- Katlanabilir grup başlığı (S8.1 §11) ---------- */
.md-gt{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;flex:1;min-width:0;text-align:left;
  background:none;border:0;padding:0;margin:0;cursor:pointer;border-radius:var(--r-sm);}
.md-gcv{color:var(--c-ink3);font-size:11px;line-height:1;align-self:center;width:10px;}
.md-gh{font:700 15px/1.35 var(--f);color:var(--c-ink);}
.md-gt:hover .md-gh{color:var(--c-accent-d);}
.md-kapali .md-ah{margin:0;}
.md-eslesen{color:var(--c-accent-d);font-weight:600;}
.md-okunma{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--c-ink2);margin:0 2px 10px;}
.md-alan{padding:14px 16px;}
.md-ah{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 10px;}
.md-ah h4{font-size:15px;margin:0;}
.md-as{font-size:12.5px;color:var(--c-ink3);}
.md-oz{font-size:12.5px;color:var(--c-ink2);}
.md-ah-r{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.md-tag{display:inline-flex;align-items:center;font:700 11.5px/1.5 var(--f);color:var(--c-violet-t);
  background:var(--c-violet-soft);border-radius:var(--r-sm);padding:1px 7px;letter-spacing:.01em;}
.md-not{font-size:12px;color:var(--c-ink3);margin:10px 0 0;}
.md-alt-b{font:700 11.5px/1.4 var(--f);letter-spacing:.06em;text-transform:uppercase;color:var(--c-ink3);margin:14px 0 6px;}

/* durum rozeti */
.md-st{display:inline-flex;align-items:center;gap:4px;font:700 12px/1.4 var(--f);border-radius:var(--r-sm);
  padding:3px 8px;white-space:nowrap;border:1px solid transparent;}
.md-st-bos{background:var(--c-green-soft);color:var(--c-green);}
.md-st-dolu{background:var(--c-red-soft);color:var(--c-red-t);}
.md-st-rezerve{background:var(--c-orange-soft);color:var(--c-orange);}
.md-st-yakinda{background:#fff;color:var(--c-red-t);border:1px solid #f1bcbc;}
.md-st-eski{background:var(--c-line2);color:var(--c-ink2);border-style:dashed;border-color:var(--c-ink3);}
.md-st-iptal{background:transparent;color:var(--c-ink3);border-color:var(--c-line);text-decoration:line-through;}
.md-st-pasif{background:var(--c-line2);color:var(--c-ink3);}
.md-st-yayin{background:var(--c-violet-soft);color:var(--c-violet);}
.md-yk{color:var(--c-red-t);font-weight:600;}

/* statik Bugün tablosu */
.md-tbl td,.md-tbl th{vertical-align:middle;}
.md-tbl .md-cb{width:34px;text-align:center;padding-left:6px;padding-right:0;}
.md-tbl .md-cb input{width:16px;height:16px;cursor:pointer;}
.md-poz{white-space:nowrap;}
.md-poz b{display:inline-block;min-width:38px;font-size:14px;}
.md-yuz{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;
  background:var(--c-line2);color:var(--c-ink2);font:700 11.5px/1 var(--f);margin-left:4px;}
.md-tbl tr.md-g td{border-top:2px solid var(--c-line);}
.md-tbl tbody tr:first-child td{border-top:none;}
.md-tbl tr.md-sel td{background:#f3f7ff;}
.md-org{font-weight:600;color:var(--c-ink);}
.md-is{color:var(--c-ink2);display:inline-block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;}
.md-odak td,.rg-row.md-odak{background:#fff7e0 !important;}
section.md-odak{box-shadow:0 0 0 2px var(--c-warn);}
.md-odak-b{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff7e0;border:1px solid #f3dca0;
  border-radius:var(--r);padding:9px 12px;margin:0 0 12px;font-size:13px;}
.md-odak-b .afilt-x{margin-left:auto;}

/* çoklu seçim çubuğu */
.md-secim{position:sticky;bottom:12px;z-index:30;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:var(--c-panel);border:1px solid var(--c-line);border-radius:14px;padding:10px 14px;margin-top:8px;
  box-shadow:0 8px 24px rgba(15,23,42,.12);}
.md-secim[hidden]{display:none;}
.md-secim>span{flex:1;min-width:200px;font-size:13px;}

/* LED — eşzamanlı yayın */
.md-led{border-left:3px solid var(--c-violet);}
.md-led-n{margin:0 0 8px;font-size:13.5px;}
.md-kmpl{list-style:none;margin:0;padding:0;border:1px solid var(--c-line2);border-radius:10px;}
.md-kmp-o{font-weight:700;}
.md-kmp-i{color:var(--c-ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.md-kmp-s{display:flex;gap:6px;justify-content:flex-end;align-items:center;}
.md-sn{font:700 11.5px/1.5 var(--fm);color:var(--c-violet-t);background:var(--c-violet-soft);border-radius:4px;padding:1px 6px;}

/* Yıl — statik ızgara: Halil `.rcell` + kesin dönem ipuçları */
button.rcell{border:0;padding:0;font-family:inherit;position:relative;}
.rcell:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px;}
.rcell.eski{outline:2px dashed rgba(255,255,255,.92);outline-offset:-4px;}
.rcell.cok::before{content:"";position:absolute;top:3px;right:3px;width:5px;height:5px;border-radius:50%;background:#fff;}
.rcell.kis::after{content:"";position:absolute;left:5px;right:5px;bottom:3px;height:3px;border-radius:2px;
  background:linear-gradient(90deg,rgba(0,0,0,.24) 0 var(--a),rgba(255,255,255,.96) var(--a) var(--b),rgba(0,0,0,.24) var(--b) 100%);}
.rcell.soluk{opacity:.3;}
.rg-legend .sw.eski{background:#e5484d;outline:1.5px dashed #fff;outline-offset:-3px;}
.rg-legend .lg-not{margin-left:auto;font-size:11.5px;color:var(--c-ink3);}
.md-alan .rtwrap{max-width:100%;}
.md-yil-site{margin:0 0 6px;}
.md-yil-t{font-size:16px;margin:14px 2px 8px;}

/* Yıl — LED eşzamanlı kampanya çizelgesi */
.md-tl{position:relative;overflow-x:auto;}
.md-tlh{border-top:none;}
.md-tll{display:flex;flex-direction:column;justify-content:center;padding:6px 8px;font-size:13px;min-width:0;}
.md-tll b,.md-tll span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.md-tll span{font-size:12px;color:var(--c-ink3);}
.md-tll em{font-style:normal;font-size:11.5px;color:var(--c-ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.md-eski-t{display:inline-block;margin-left:6px;font:600 11px/1.4 var(--f);color:var(--c-ink3);border:1px dashed var(--c-ink3);border-radius:4px;padding:0 5px;}
.md-yakl{color:var(--c-blue);font-weight:600;}
.md-tlh .md-tll{font:700 11.5px/1.4 var(--f);letter-spacing:.05em;text-transform:uppercase;color:var(--c-ink3);}
.md-tlt{position:relative;display:grid;min-height:52px;}
.md-tlt>i{border-left:1px solid var(--c-line2);font-style:normal;}
.md-tlh .md-tlt>i{font:700 12px/1 var(--f);color:var(--c-ink2);padding:10px 4px;text-align:center;}
.md-bugun{position:absolute;top:2px;bottom:2px;width:2px;background:var(--c-accent);opacity:.65;pointer-events:none;}

/* bağlam sorusu (Kurum / İş) */


/* form + detay */
.md-hdf{display:flex;flex-wrap:wrap;gap:5px;max-height:120px;overflow:auto;}
.md-cbx{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--c-ink2);margin-top:6px;cursor:pointer;}
.md-sorun{border:1px solid #f3c2c2;background:var(--c-red-soft);color:#8f1f1f;border-radius:var(--r);padding:10px 12px;font-size:13px;margin:4px 0 8px;}
.md-sorun ul{margin:6px 0 0;padding-left:18px;}
.md-sorun li{margin:2px 0;}
.md-mf-b{display:flex;gap:8px;align-items:center;margin-top:14px;flex-wrap:wrap;}
.md-dl{display:grid;grid-template-columns:110px 1fr;gap:6px 12px;font-size:13.5px;align-items:baseline;}
.md-dl>span{color:var(--c-ink3);font-size:12.5px;}
.md-dl>b{font-weight:600;}
.md-hlist{list-style:none;margin:0;padding:0;border:1px solid var(--c-line2);border-radius:10px;}
.md-hl{display:grid;grid-template-columns:150px 1fr 1fr auto;gap:8px;align-items:center;padding:7px 10px;
  border-top:1px solid var(--c-line2);font-size:13px;cursor:pointer;}
.md-hl:first-child{border-top:none;}
.md-hl:hover{background:var(--c-alt);}
.md-hl.iptal{opacity:.6;}
.md-adm{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--c-line2);font-size:12.5px;}
.md-adm>span:first-child{font-weight:700;color:var(--c-ink2);}

@media (max-width:640px){
  .md-kmp-s{justify-content:flex-start;}
  .md-okunma{flex-direction:column;gap:2px;}
  .md-hl{grid-template-columns:1fr auto;}
  .md-dl{grid-template-columns:90px 1fr;}
  .md-secim>span{min-width:0;}
  .md-ah-r{margin-left:0;}
  /* Dar ekranda grup başlığı tek sütuna iner; özet satırı başlığın
     altında kalır ve bağlamsal eylem erişilebilir olmayı sürdürür. */

  .md-head .sub{display:none;}
  .md-gt{flex-direction:column;align-items:flex-start;gap:2px;width:100%;}
  .md-gcv{align-self:flex-start;}
  .rg-legend .lg-not{margin-left:0;flex:0 0 100%;}
}
.md-dl .btn-link{color:var(--c-ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--c-line);text-underline-offset:3px;padding:0;}
.md-dl .btn-link:hover{text-decoration-color:var(--c-accent);color:var(--c-accent-d);}

/* ==========================================================
   PS9 — DOLULUK ZAMAN ÇİZELGESİ (.mtl-*)
   Sürekli tarih ekseni. Görsel dil (PS9 görsel kabul §4):
     · kayıt = ön plan, ay çizgileri = arka plan
     · boş = NÖTR zemin (yeşil DEĞİL; yeşil yalnız müsaitlik sonucu)
     · rezervasyon = sakin mavi, opsiyon = amber
     · kırmızı YALNIZ gerçek uyarı (süresi geçmiş opsiyon)
     · geçmiş kayıt = AYNI tür renginin düşük vurgulu hali
   Eski ızgara sınıfları (.rgrid/.rcell) Halil'in başka ekranlarında
   kullanıldığı için ayrı ad alanı olarak korunur.
   ========================================================== */

/* Fiziksel pozisyonlar arasında hafif ayırıcı (§4). */

.mtl-cb{flex:0 0 auto;margin:0;cursor:pointer;}

/* A/B kendi dar sütununda; şeritlerle tam hizalı. */


/* Ay ızgarası ARKA planda AYRI bir katmandır; satırın yüksekliğini
   ŞERİTLER belirler. (Önceden şeritler mutlak konumluydu ve satır
   yüksekliği etiket sütunundan geliyordu; A/B harfleri şeritlerle
   9px kayıyordu.) */

/* Başlık satırının izi hâlâ ızgaradır (ay adları yan yana dizilir);
   veri satırlarında ızgara ayrı bir arka plan katmanıdır. */


/* Bugün: net ama kayıtları bastırmayan çizgi. */


/* Şeritler: A ve B ayrı; okunabilir yükseklik (§4: ~20-24px). */


/* BOŞ zemin: nötr. Yıl boyunca yeşil şerit YOK. */

/* Müsaitlik aramasının OLUMLU sonucu — yeşil yalnız burada. */


/* Kayıt çubuğu: yazı dikey ortalı, taşan ad üç noktayla kesilir. */
                    /* rezervasyon: sakin mavi */
                    /* opsiyon: amber */
/* Geçmiş: AYNI tür rengi, düşük vurgu — ayrı bir "eski" türü DEĞİL. */

/* Gerçek uyarı: süresi geçmiş opsiyon. Kırmızı YALNIZ burada. */

/* Seçim/odak çerçevesi durum renginden AYIRT EDİLİR (mor halka). */


/* Bitişik yenileme: ince ayraç. Ayrı bir durum DEĞİL, lejantta yok. */


/* Boş alan önizlemesi: hover / klavye odağı (§2). */

.md-ekran{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px;}
.md-ekran .chip em{font-style:normal;font-weight:600;opacity:.7;margin-left:4px;}

/* Lejant: tek, kısa, yalnız gerçekten kullanılan anlamlar. */
.rg-legend .sw.kes{background:#3b6fd4;}
.rg-legend .sw.ops{background:#d98324;}
.rg-legend .sw.sur{background:#d98324;box-shadow:inset 0 0 0 2px #c0392b;}
.rg-legend .sw.gecmis{background:#3b6fd4;opacity:.45;}
.rg-legend .sw.bos{background:#f6f7f9;box-shadow:inset 0 0 0 1px #dfe3e8;}
.rg-legend .sw.musait{background:rgba(52,168,83,.25);box-shadow:inset 0 0 0 1px rgba(52,168,83,.55);}



/* PS9 kapanış: süresi dolmuş opsiyon uyarısı + envanter ekleme önizleme */
.md-ops-uyari{display:flex;flex-direction:column;gap:6px;margin:0 0 14px;padding:11px 13px;
  border-radius:10px;background:rgba(240,136,62,.10);box-shadow:inset 0 0 0 1px rgba(240,136,62,.42);}
.md-ops-uyari>b{font-size:13.5px;color:#7a3b00;}
.md-ops-uyari>span{font-size:12.5px;line-height:1.5;color:var(--c-ink2,#6e6e73);}
.md-ops-uyari .md-ops-b{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;}
.md-onizle{margin:2px 0 10px;font-size:12.5px;color:var(--c-ink2,#6e6e73);
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.md-onizle .chip.md-cak{background:rgba(229,72,77,.12);color:#b3272b;}

/* PS9 görsel kabul §3: kompakt, kaldırılabilir mecra filtre etiketleri
   (büyük kırmızı alarm bandı yerine) + müsaitlik arama satırı. */
.md-filtreler{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 12px;}
.md-fchip{display:inline-flex;align-items:center;gap:5px;padding:3px 6px 3px 9px;border-radius:14px;
  background:var(--c-bg2,#f4f5f7);box-shadow:inset 0 0 0 1px var(--c-line,#e6e8eb);
  font-size:12px;color:var(--c-ink2,#6e6e73);white-space:nowrap;}
.md-fchip b{font-weight:700;color:var(--c-ink,#1d1d1f);}
.md-fchip button{border:0;background:transparent;cursor:pointer;font-size:11px;line-height:1;
  color:var(--c-ink3,#86868b);padding:2px 3px;border-radius:50%;}
.md-fchip button:hover{background:rgba(0,0,0,.08);color:var(--c-ink,#1d1d1f);}
.md-ms-ozet{margin:0 0 12px;padding:9px 12px;border-radius:9px;font-size:13px;
  background:rgba(52,168,83,.10);box-shadow:inset 0 0 0 1px rgba(52,168,83,.32);color:var(--c-ink,#1d1d1f);}
/* Lejant ekran başına tek: gövdenin sonunda. */
.md-lejant .rg-legend{margin-top:4px;padding-top:0;border-top:0;}
.md-lejant{margin:2px 0 0;padding:10px 14px;background:var(--c-card,#fff);border-radius:12px;
  box-shadow:0 1px 2px rgba(0,0,0,.05);}

/* =====================================================================
   S10 — Müsaitlik araması, Bugüne git, Hafıza > Belgeler, belge formu
   ve detayı. Mevcut tokenlar ve bileşen dili (fbar, md-fchip, bl-ext,
   bl-th, pill, pgr, sz-sec) yeniden kullanılır.
   ===================================================================== */
/* Müsaitlik: tek kompakt grup — Başlangıç | Bitiş | Müsaitlik ara | Temizle */

.md-ms-f{display:flex;flex-direction:column;gap:3px;font-size:11.5px;font-weight:600;color:var(--c-ink3,#86868b);}
.md-ms-f input.inp{flex:0 0 auto;width:160px;max-width:none;height:var(--ctl-h-sm);min-width:0;margin:0;}
.md-ms-hata{flex-basis:100%;margin:2px 0 0;font-size:12.5px;font-weight:600;color:#b3272b;}
.md-ms-hata[hidden]{display:none;}
.md-ms-ozet{display:flex;flex-direction:column;gap:4px;}
.md-ms-ozet.hata{background:rgba(229,72,77,.08);box-shadow:inset 0 0 0 1px rgba(229,72,77,.35);}
.md-ms-ozet.hata span{color:var(--c-ink2,#6e6e73);}
.md-ms-uyari{padding:6px 8px;border-radius:7px;background:rgba(245,166,35,.12);color:var(--c-ink,#1d1d1f);font-size:12.5px;}
/* Aranan dönem takvimde işaretlenir: başlıkta etiketli bant, satırlarda zemin. */

/* Bugüne git: bugün zaten görünüyorsa sakin, kısa vurgu (sıçrama yok). */




/* Hafıza > Belgeler — kompakt liste */
.bl-fbar .fbar-row{gap:8px;flex-wrap:wrap;}
.bl-fbar .bl-q{flex:1 1 260px;min-width:200px;}
.bl-fbar select.inp{flex:0 1 210px;min-width:150px;}
.bl-f2{align-items:flex-end;margin-top:8px;}
.bl-f2 .bl-il{align-self:center;margin:0;}
.bl-f2 .bl-not{margin:0 0 0 auto;align-self:center;max-width:420px;}
.bl-kart{padding:12px 14px;}
.bl-kart.yukleniyor{opacity:.6;transition:opacity .15s;}
.bx-list{display:flex;flex-direction:column;}
.bx-row{display:flex;align-items:center;gap:10px;border-top:1px solid var(--c-hair,#eceef1);}
.bx-list .bx-row:first-child{border-top:0;}
.bx-main{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:9px 4px;border:0;background:transparent;
  text-align:left;cursor:pointer;border-radius:8px;color:inherit;font:inherit;}
.bx-main:hover{background:var(--c-bg2,#f4f5f7);}
.bx-main:focus-visible{outline:2px solid var(--c-focus);outline-offset:1px;}
.bx-th{flex:0 0 auto;}
.bx-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.bx-t{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bx-s{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--c-ink2,#6e6e73);min-width:0;}
.bx-k,.bx-i{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bx-k::before{content:'Kurum · ';color:var(--c-ink3,#86868b);}
.bx-i::before{content:'İş · ';color:var(--c-ink3,#86868b);}
.bx-m{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12.5px;color:var(--c-ink2,#6e6e73);}
.bx-m em{font-style:normal;color:var(--c-ink3,#86868b);}
.bx-ac{flex:0 0 auto;}

/* Belge formu */
.bf-rel{border:1px solid var(--c-hair,#eceef1);border-radius:10px;padding:10px 12px 4px;margin:6px 0 0;}
.bf-rel legend{font-size:12.5px;font-weight:700;color:var(--c-ink2,#6e6e73);padding:0 4px;}
.bf-ozet{margin:2px 0 6px;}
.bf-dur{margin:10px 0 0;font-size:12.5px;color:var(--c-ink2,#6e6e73);min-height:1em;}
.bf-dur.hata{color:#b3272b;font-weight:600;}

/* Belge detayı */
.bd-h{display:flex;align-items:flex-start;gap:10px;margin:0 0 10px;}
.bd-t{margin:0;font-size:17px;line-height:1.3;overflow-wrap:anywhere;}
.bd-onz{border:1px solid var(--c-hair,#eceef1);border-radius:10px;background:var(--c-bg2,#f4f5f7);
  display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:120px;}
.bd-onz img{max-width:100%;max-height:420px;display:block;object-fit:contain;}
.bd-onz iframe{width:100%;height:440px;border:0;background:#fff;}
.bd-onz.bos{flex-direction:column;gap:8px;padding:18px;font-size:13px;color:var(--c-ink2,#6e6e73);text-align:center;}
.bd-ac{display:flex;align-items:center;gap:8px;margin:10px 0 4px;flex-wrap:wrap;}
.bd-dl .bd-kir{overflow-wrap:anywhere;font-weight:500;}
.bd-duz{display:flex;flex-direction:column;gap:2px;}
.bd-bags{list-style:none;margin:4px 0 0;padding:0;}
.bd-bag{display:flex;align-items:center;gap:10px;padding:6px 0;border-top:1px solid var(--c-hair,#eceef1);}
.bd-bags .bd-bag:first-child{border-top:0;}
.bd-bt{flex:0 0 108px;font-size:12px;font-weight:700;color:var(--c-ink3,#86868b);text-transform:uppercase;letter-spacing:.02em;}
.bd-bn{flex:1;min-width:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bd-bf{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}
.bd-bf select{flex:1 1 180px;}
.bd-hist{list-style:none;margin:4px 0 0;padding:0;font-size:12.5px;}
.bd-hist li{display:flex;gap:8px;flex-wrap:wrap;padding:5px 0;border-top:1px solid var(--c-hair,#eceef1);}
.bd-hist li:first-child{border-top:0;}
.bd-hist time{color:var(--c-ink3,#86868b);}
.bd-hist span{flex-basis:100%;color:var(--c-ink2,#6e6e73);}

@media (max-width:760px){
  .md-ms-f{flex:1 1 140px;}
  .md-ms-f input.inp{width:100%;}
  .bl-fbar select.inp{flex:1 1 100%;}
  .bl-f2 .bl-not{margin:0;max-width:none;}
  .bx-main{flex-wrap:wrap;gap:8px 10px;}
  .bx-m{flex-direction:row;gap:8px;align-items:center;width:100%;padding-left:50px;}
  .bx-k,.bx-i{max-width:100%;}
  .bd-bt{flex-basis:80px;}
  .bd-onz iframe{height:360px;}
}
.bl-f2{align-items:flex-end;}
/* `.qc-who{display:flex}` HTML `hidden` niteliğini ezmesin. */
#bfOrgSar[hidden]{display:none;}
/* Belge formunda kategori seçimi okunur genişlikte. */
#ek_bf .ek-tur{min-width:200px;max-width:none;}

/* =====================================================================
   S11 — Durum dili, durum süzgeci, seçim vurgusu, harita
   Renk sözlüğü (kayıt durumu, S19'da tek kaynağa bağlandı — `--st-*`):
   Yayın/Dolu = kırmızı · Opsiyon = turuncu · Müsait = yeşil · geçmiş = aynı
   rengin açık tonu. SEÇİM ayrı bir dildir: koyu dolgu + ✓ işareti; klavye
   odağı ayrı bir renktir (`--c-focus`).
   ===================================================================== */
/* S19: rozetler Mecralar tablosu ve raporlarla AYNI durum tonlarını kullanır. */
.md-st-dolu,.md-st-yayin{background:var(--st-yayin-bg);color:var(--st-yayin-ink);}
.md-st-plan{background:#fff;color:var(--st-yayin-ink);border:1px dashed var(--st-yayin-bar);}
.md-st-rezerve{background:var(--st-ops-bg);color:var(--st-ops-ink);}
.md-st-yakinda{background:#fff;color:var(--st-musait-ink);border:1px solid var(--st-musait-bar);}
.md-st-bos{background:var(--st-musait-bg);color:var(--st-musait-ink);}

/* Durum süzgeci: segmentli seçim — belirgin dolgu, okunaklı metin, ✓ */
.md-seg{display:inline-flex;flex-wrap:wrap;gap:4px;padding:3px;border-radius:10px;background:var(--c-bg2,#f4f5f7);
  box-shadow:inset 0 0 0 1px var(--c-line,#e6e8eb);}
.md-seg button{border:0;background:transparent;font:600 13px/1 var(--f);color:var(--c-ink2,#4b5563);
  min-height:calc(var(--ctl-h-sm) - 6px);padding:0 12px;border-radius:7px;cursor:pointer;white-space:nowrap;}
.md-seg button:hover{background:#fff;color:var(--c-ink,#1d1d1f);}
.md-seg button.on{background:var(--c-ink,#1d1d1f);color:#fff;box-shadow:0 1px 2px rgba(16,24,40,.18);}
.md-seg button:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px;}
/* Aynı seçim dili: değeri olan süzgeç kutusu ve seçili ölçek */
.md-fbar select.inp.inp-on,.bl-fbar select.inp.inp-on{background:#f1f3f7;border-color:var(--c-ink,#1d1d1f)!important;
  box-shadow:inset 0 0 0 1px var(--c-ink,#1d1d1f);font-weight:700;color:var(--c-ink,#1d1d1f);}

/* Şeritler: eşleşen yüz / eşleşmeyen yüz / boşalma günü / durum tarihi */

.rg-legend .sw.yakinda{background:rgba(52,168,83,.12);box-shadow:inset 2px 0 0 #2e9e57,inset 0 0 0 1px rgba(52,168,83,.4);}
.rg-legend .sw.ref{background:transparent;border-left:1.5px dashed #6b7280;border-radius:0;width:2px;}
.rg-legend .sw.gecmis{opacity:.5;}
/* Takvimde göster hedefi: satır + bar belirgin (renk tek başına değil kalın çerçeve) */

.md-odak-not{display:block;font-style:normal;font-size:12px;color:#8a5a00;margin-top:2px;}

/* Harita (S11 §4) */
.hmap-kap{font-size:13px;margin:0 0 14px;line-height:1.6;}
.hmap-kutu{position:relative;}
.hmap-bos{position:absolute;left:12px;right:12px;top:12px;z-index:500;background:rgba(255,255,255,.95);border:1px solid var(--c-line);
  border-radius:10px;padding:10px 12px;font-size:13px;color:var(--c-ink2);box-shadow:0 2px 8px rgba(16,24,40,.08);}
.hmap-bos[hidden]{display:none;}
button.hrow{width:100%;border:0;background:transparent;text-align:left;font:inherit;color:inherit;}
.hga-n{font-style:normal;font-weight:500;color:var(--c-ink3);font-size:11.5px;margin-left:4px;}
.hst{white-space:nowrap;} .hst.ok{color:var(--c-green);font-weight:700;}
.hselbar .hsel-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.hsel-a{margin-left:auto;display:inline-flex;gap:6px;align-items:center;}
.hsel-kirli{font-style:normal;font-size:12px;font-weight:700;color:#a45f12;}
.hsel-l{list-style:none;margin:8px 0 0;padding:0;}
.hsel-l li{display:flex;align-items:center;gap:8px;padding:5px 0;border-top:1px solid var(--c-line2);font-size:13px;flex-wrap:wrap;}
.hsel-l li:first-child{border-top:0;}
.hsel-l .btn-link{margin-left:auto;}
.hsel-y{display:inline-grid;place-items:center;min-width:26px;height:20px;border-radius:5px;background:var(--c-line2);font:800 11px/1 var(--f);color:var(--c-ink2);}
@media (max-width:760px){
  .md-seg{width:100%;} .md-seg button{flex:1 1 auto;padding:8px 8px;}
}
.hmap-not{margin:0 0 10px;padding:8px 12px;border-radius:9px;background:#f1f5fb;color:#2f4a73;font-size:13px;box-shadow:inset 0 0 0 1px #d8e2f1;}
/* S11 §5: aşama taslağı — seçilen aşama işaretli, Kaydet/Vazgeç görünür */
.w-faz li.sec button{outline:2px dashed var(--fc);outline-offset:2px;font-weight:800;}
.w-faz-t{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto;padding:4px 6px 4px 10px;
  border-radius:9px;background:#fff7e0;box-shadow:inset 0 0 0 1px #f3dca0;font-size:13px;}
.w-faz.taslak{flex-wrap:wrap;}
/* S11 §6: biçim simgesi renk grubu — biçim ≠ kategori */
.bl-ext.t-xls{background:#e7f5ec;color:#1d6b3a;}
.bl-ext.t-doc{background:#e8f0fd;color:#2451a6;}
.bl-ext.t-pdf{background:#fdecec;color:#b42318;}
.bl-ext.t-img{background:#f1ecfb;color:#6440b0;}
.bl-ext.t-txt{background:#f1f2f4;color:#4b5563;}
.bl-ext.big{min-width:64px;height:40px;font-size:15px;border-radius:9px;}

/* ============ S12 — RAPORLAR V2 ============ */
.rp2-kartlar{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-bottom:16px;}
.rp2-kart{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:16px;border:1px solid var(--c-hair);
  border-radius:var(--r);background:var(--c-panel);cursor:pointer;font:inherit;color:var(--c-ink);transition:border-color .15s,box-shadow .15s;}
.rp2-kart:hover{border-color:var(--c-ink3);box-shadow:0 2px 10px rgba(16,24,40,.06);}
.rp2-kart:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px;}
.rp2-kart-i{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:9px;background:var(--c-accent-soft);color:var(--c-accent-d);}
.rp2-kart b{font-size:15px;} .rp2-kart em{font-style:normal;font-size:13px;color:var(--c-ink2);line-height:1.45;}
.rp2-kart-f{margin-top:auto;padding-top:6px;font-size:12.5px;font-weight:600;color:var(--c-accent);}
.rp2-eski{margin-top:6px;border-top:1px solid var(--c-hair);padding-top:10px;}
.rp2-eski>summary{cursor:pointer;font-weight:600;font-size:14px;padding:6px 0;}
.rp2{display:flex;flex-direction:column;gap:12px;}
.rp2-card{background:var(--c-panel);border:1px solid var(--c-card-line);border-radius:var(--r-card);box-shadow:var(--sh-card);padding:16px;}
.rp2-card>h4{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:var(--fs-card);font-weight:var(--fw-title);}
.rp2-card>h4 span{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;border-radius:50%;background:var(--c-ink);color:#fff;font-size:12px;}
.rp2-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.rp2-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}
.rp2-tarih{display:grid;grid-template-columns:minmax(0,220px) minmax(0,220px);gap:12px;}
.rp2-chips{display:flex;flex-wrap:wrap;gap:6px 14px;}
.rp2-chips.col{flex-direction:column;gap:6px;}
.rp2-isler{max-height:190px;overflow:auto;padding:6px;border:1px solid var(--c-hair);border-radius:10px;flex-direction:column;flex-wrap:nowrap;gap:4px;}
.rp2-chk{display:inline-flex;align-items:flex-start;gap:7px;font-size:13.5px;cursor:pointer;line-height:1.35;}
.rp2-chk input{margin:2px 0 0;width:16px;height:16px;flex:none;accent-color:var(--c-ink);}
.rp2-chk em{font-style:normal;color:var(--c-ink3);font-size:12.5px;}
.rp2-seg.sm button{font-size:12.5px;padding:0 10px;}
.rp2-adv{margin-top:10px;border-top:1px dashed var(--c-hair);padding-top:8px;}
.rp2-adv>summary{cursor:pointer;font-weight:600;font-size:13.5px;color:var(--c-ink2);padding:4px 0;}
.rp2-adv[open]>summary{margin-bottom:8px;}
.rp2-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;}
.rp2-cols>div{display:flex;flex-direction:column;gap:6px;} .rp2-cols b{font-size:13px;}
.rp2-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:3;
  background:var(--c-panel);padding:8px 0 10px;border-bottom:1px solid var(--c-hair);margin-bottom:10px;}
.rp2-say{font-size:14px;} .rp2-ind{display:flex;gap:8px;}
.rp2-not{padding:8px 12px;border-radius:9px;background:#eef4ff;color:#1e3a8a;font-size:13px;margin:0 0 8px;}
.rp2-not.uyari{background:#fff7e6;color:#8a5a00;}
.rp2-ozet{font-size:13.5px;margin:4px 0 8px;line-height:1.5;}
.rp2-g1{font-size:14px;margin:14px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--c-hair);}
.rp2-g2{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-weight:600;font-size:13px;margin:8px 0 4px;color:var(--c-ink2);}
.rp2-g2 em{font-style:normal;font-weight:500;color:var(--c-ink3);}
.rp2-rows{display:flex;flex-direction:column;gap:2px;}
.rp2-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;padding:6px 8px;border-radius:8px;cursor:pointer;font-size:13.5px;}
.rp2-row:hover{background:var(--c-alt);}
.rp2-row.dis{opacity:.45;} .rp2-row.dis b,.rp2-row.dis .rp2-det{text-decoration:line-through;text-decoration-color:rgba(0,0,0,.25);}
.rp2-cb{width:16px;height:16px;margin:0;align-self:center;accent-color:var(--c-ink);flex:none;}
.rp2-kod{min-width:54px;} .rp2-olcu{color:var(--c-ink3);font-size:12.5px;min-width:80px;}
.rp2-det{flex:1 1 260px;min-width:0;color:var(--c-ink2);overflow-wrap:anywhere;}
.rp2-det em{display:block;font-style:normal;color:var(--c-ink3);font-size:12.5px;}
.rp2-tarih-c{font-variant-numeric:tabular-nums;color:var(--c-ink3);font-size:12.5px;min-width:70px;}
.rp2-durum{font-size:12px;color:var(--c-ink3);}
.rp2-t{display:inline-block;font-size:12px;font-weight:600;padding:2px 7px;border-radius:6px;margin:1px 2px 1px 0;}
.rp2-t.musait{background:#e2f2e6;color:#1a7f37;} .rp2-t.yayin{background:#e6eefa;color:#1f5fb8;}
.rp2-t.opsiyon{background:#fbefd4;color:#8a5a00;} .rp2-t.uyari{background:#fbe7e5;color:#b3261e;}
.rp2-tip{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--c-ink3);min-width:62px;}
.rp2-tip.aksiyon{color:#1f5fb8;} .rp2-tip.op{color:#b45309;} .rp2-tip.randevu{color:#6440b0;} .rp2-tip.hareket{color:var(--c-ink3);}
.rp2-para{display:block;font-size:12.5px;color:var(--c-ink);} .rp2-notm{display:block;font-size:12.5px;color:#8a5a00;}
.rp2-paket{font-size:13px;margin:4px 0 8px 32px;padding:6px 10px;border-left:3px solid #1f5fb8;background:#f4f7fd;border-radius:0 8px 8px 0;}
.rp2-paket.kismi{border-left-color:#b3261e;background:#fdf3f2;}
.rp2-ozetkart{display:flex;flex-direction:column;gap:3px;padding:12px 14px;background:var(--c-alt);border-radius:10px;font-size:13.5px;}
.rp2-ozetkart b:first-child{font-size:15px;}
.op-fs{border:1px solid var(--c-hair);border-radius:10px;padding:10px 12px 2px;margin:0 0 12px;}
.op-fs legend{font-size:12.5px;font-weight:700;padding:0 6px;color:var(--c-ink2);}
.op-fs legend em{font-style:normal;font-weight:500;color:var(--c-ink3);}
.opb-r .opb-qu{grid-area:q;display:flex;gap:4px;min-width:0;}
.opb-r .opb-qu select{flex:0 0 74px;}
@media (max-width:760px){
  .rp2-grid,.rp2-grid3,.rp2-tarih{grid-template-columns:1fr;}
  .rp2-bar{position:static;}
  .rp2-row{padding:8px 4px;}
  .rp2-paket{margin-left:0;}
  .row3{grid-template-columns:1fr 1fr;}
}
@media (min-width:761px){ .opb-r{grid-template-columns:22px 160px repeat(3,minmax(0,1fr)) 72px auto;} }
.opb-r .opb-qu input{min-width:0;flex:1 1 auto;} .opb-r .opb-qu select{flex:0 0 72px;padding-inline:8px;}

/* ============ S13 — ortak UI/UX düzeltmeleri ============
   Sayfaya özel yama değil; tekrar eden sorunlar ortak kurallarda. */

/* Klavye odağı: özel kuralı olmayan her etkileşimli öğe için görünür halka
   (düşük özgüllük — mevcut özel odak stilleri korunur). */
:where(button,a[href],[role=button],[tabindex]:not([tabindex="-1"]),summary,input[type=checkbox],input[type=radio]):focus-visible{
  outline:2px solid var(--c-focus);outline-offset:2px;}
.inp:focus-visible{outline:none;}

/* Aktif süzgeç: kırmızı çerçeve doğrulama hatası gibi okunuyordu. Nötr koyu
   çerçeve + açık zemin (Mecralar süzgeciyle aynı dil). */
.inp-on,.inp.inp-on{border-color:var(--c-ink)!important;background-color:#f1f3f7;box-shadow:none;font-weight:600;}

/* Zorunlu / isteğe bağlı alan işareti */
.zor{color:var(--c-red,#c72c1f);font-weight:700;}
.ops{font-weight:500;font-size:11.5px;color:var(--c-ink3);margin-left:4px;}

/* Uzun formlarda eylemler görünür kalır: son satırdaki düğme grubu
   kaydırılan diyalogun altına yapışır (içeriği kapatmaz, üstünde ince çizgi). */
.modal > div:last-child:has(> .btn){position:sticky;bottom:-22px;z-index:3;background:#fff;
  margin-left:-22px;margin-right:-22px;margin-bottom:-22px;padding:12px 22px 16px;
  border-top:1px solid var(--c-hair);}
body.mdl-acik{overflow:hidden;}

/* Paket bedeli (S12 açığı) */
.w-paket{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  margin-top:8px;padding:10px 12px;border:1px solid var(--c-hair);border-left:3px solid #1f5fb8;border-radius:10px;background:#f7f9fd;}
.w-paket b{margin-right:8px;} .w-paket-t{font-size:13.5px;margin-right:8px;}
.w-paket .fhint{display:block;margin:2px 0 0;}
.pk-ops{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow:auto;padding:4px 0;}
.pk-op{font-size:13px;}

/* Dar ekranlar */
@media(max-width:600px){
  .sec-head{flex-wrap:wrap;gap:10px;}
  .sec-head > div:last-child{display:flex;flex-wrap:wrap;gap:6px;}
  .pf-sel{flex-wrap:wrap;}
  .pf-sel .inp-sm{flex:1 1 140px;}
  /* Üst gezinme: yan kaydırma ipucu yoktu, "Mecralar/Raporlar" ekran dışında
     kalıyordu. Marka + çıkış ilk satırda, bölümler ikinci satırda eşit
     genişlikte (Team yüzeyi 5 bölüm sığar; Yönetim'de kaydırma sürer). */
  .side{flex-wrap:wrap;overflow-x:visible;gap:0;}
  .logout{margin-left:auto!important;order:2;}
  .nav-scroll{order:3;flex:1 0 100%;min-width:0;padding:4px 4px 6px;border-top:1px solid var(--c-hair);}
  .nav-scroll .navi{flex:1 0 auto;flex-direction:column;justify-content:center;gap:2px;font-size:11.5px;padding:5px 6px;min-height:44px;}
}

/* S13 kontrast: eylem düğmelerinin METNİ açık zeminde 4.5:1'i geçer; ton
   (mavi/mor/turuncu anlamı) korunur, yalnız koyulaşır. */
.act-work{color:#1d4ed8;} .act-mem{color:#5b3fd6;} .act-ops{color:#a14a06;}
/* Etkin aşama: beyaz metin açık tonlarda (turkuaz, amber) okunmuyordu —
   aynı tonun koyu hâli. */
.w-faz li.on button{background:color-mix(in srgb,var(--fc) 62%,#000);border-color:color-mix(in srgb,var(--fc) 62%,#000);}

/* S13: çok dar ekranda (320px ≈ %400 yakınlaştırma) "Siteyi Aç" yalnız ikon;
   erişilebilir adı aria-label'da kalır. */
@media (max-width:380px){ .tb-site .tb-site-l{display:none;} .tb-site{padding-left:9px;padding-right:9px;} .tb-r{gap:8px;} }

/* S14: bulunamayan / açılamayan kayıt */
.kayit-yok{max-width:640px;padding:18px 20px;}
.kayit-yok p{margin:0 0 14px;color:var(--c-ink2);line-height:1.55;}
.kayit-yok-a{display:flex;gap:8px;flex-wrap:wrap;}

/* S14: aranabilir seçici */
.ara-sec{position:relative;}
.ara-kutu{position:relative;}
.ara-kutu .inp{padding-right:52px;text-overflow:ellipsis;}
.ara-ok{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--c-ink3);font-size:11px;}
.ara-x{position:absolute;right:28px;top:50%;transform:translateY(-50%);border:0;background:none;cursor:pointer;
  color:var(--c-ink3);font-size:18px;line-height:1;padding:2px 6px;border-radius:4px;}
.ara-x:hover{color:var(--c-ink);background:var(--c-line2);}
.ara-liste{position:absolute;z-index:70;left:0;right:0;top:calc(100% + 4px);max-height:min(320px,52vh);overflow:auto;
  margin:0;padding:4px;list-style:none;background:#fff;border:1px solid var(--c-line);border-radius:10px;
  box-shadow:0 10px 28px rgba(15,23,42,.14);}
.ara-liste li[role=option]{padding:8px 10px;border-radius:7px;cursor:pointer;line-height:1.35;overflow-wrap:anywhere;}
.ara-liste li[role=option]:hover{background:var(--c-line2);}
.ara-liste li.aktif{background:var(--c-accent-soft);outline:2px solid var(--c-accent-d);outline-offset:-2px;}
.ara-liste li[aria-selected=true] .ara-ad{font-weight:700;}
.ara-liste li[aria-selected=true] .ara-ad::before{content:'✓ ';}
.ara-ek{display:block;font-size:12px;color:var(--c-ink3);margin-top:1px;}
.ara-not{padding:8px 10px;font-size:12.5px;color:var(--c-ink3);}

/* ============ S15 — rapor şablonları (önizleme = dosya düzeni) ============
   Önizleme tabloları indirilen Excel/PDF'in yerleşimini taşır: doluluk
   tablosunda yüz başına kurum/durum + tarih, baskı/montajda kalem satırı. */
.rp3-f{display:flex;flex-direction:column;gap:4px;}
.rp3-hizli{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:13px;}
.rp3-lej{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:12.5px;margin:0 0 10px;}
.rp3-lej span{display:inline-flex;align-items:center;gap:6px;font-weight:600;}
.rp3-lej i{display:inline-block;width:16px;height:12px;border-radius:3px;border:1px solid rgba(0,0,0,.18);}
.rp3-lej em{font-style:normal;color:var(--c-ink3);}
.rp3-sh{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;}
.rp3-sh .rp2-g1{flex:1 1 auto;} .rp3-sh .rp2-g1 em{font-style:normal;font-weight:500;color:var(--c-ink3);font-size:12.5px;}
.rp3-sa{font-weight:500;font-size:12px;color:var(--c-ink3);margin-left:6px;}
.rp3-tum{display:flex;gap:10px;font-size:12.5px;}
.rp3-kap{overflow:auto;max-height:70vh;border:1px solid var(--c-hair);border-radius:10px;margin:0 0 12px;}
.rp3-tab{border-collapse:separate;border-spacing:0;font-size:12.5px;min-width:100%;}
.rp3-tab th{position:sticky;top:0;z-index:2;background:#fff2c7;color:var(--c-ink);font-weight:700;text-align:left;
  padding:7px 8px;border-bottom:1px solid #b8b8bf;white-space:nowrap;}
.rp3-tab td{padding:5px 8px;border-bottom:1px solid var(--c-hair);border-right:1px solid #ececef;vertical-align:top;}
.rp3-tab td small{display:block;font-size:11.5px;color:var(--c-ink3);margin-top:1px;}
.rp3-tab td.sag,.rp3-tab th.sag{text-align:right;white-space:nowrap;}
.rp3-tab tr.son td{border-bottom:1px solid #9c9ca3;}
.rp3-tab tr.dis td{opacity:.45;}
.rp3-dol td{min-width:132px;text-align:center;vertical-align:middle;}
.rp3-dol .rp3-no{min-width:30px;width:1%;font-weight:700;background:#fafafb;}
.rp3-dol .rp3-yuz{min-width:0;width:1%;text-align:left;background:#fafafb;position:sticky;left:0;z-index:1;white-space:nowrap;}
.rp3-dol .rp3-yuz label{display:inline-flex;align-items:center;gap:6px;cursor:pointer;}
.rp3-p{line-height:1.25;margin:1px 0;} .rp3-p b{display:block;font-size:12.5px;}
.rp3-p small{display:block;font-size:11px;color:inherit;opacity:.9;margin-top:0;}
.rp3-bm td{min-width:70px;} .rp3-bm td:nth-child(4){min-width:200px;}
.rp3-bm .rp3-cb,.rp3-bm th.rp3-cb{width:28px;min-width:28px;text-align:center;}
.rp3-bm .rp3-not{min-width:200px;white-space:pre-line;font-size:12px;color:var(--c-ink2);}
.rp3-bm .rp3-notm{color:#8a5a00;}
.rp3-pk td{background:#eef3fb;} .rp3-pk.kismi td{background:#fdf1ef;}
.rp3-gri{color:var(--c-ink3);font-style:italic;}
.rp3-top{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin:6px 0 4px;font-size:13.5px;}
.rp3-top div{display:flex;gap:16px;justify-content:flex-end;min-width:320px;}
.rp3-top div span{color:var(--c-ink2);} .rp3-top div.kalin{border-top:1px solid var(--c-hair);padding-top:3px;font-size:14.5px;}
.rp3-cik{margin:8px 0;padding:10px 12px;border:1px dashed var(--c-hair);border-radius:10px;font-size:13px;}
@media (max-width:760px){
  .rp3-kap{max-height:none;}
  .rp3-top div{min-width:0;}
}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.rp3-dol td.rp3-karma{text-align:left;padding-top:9px;}
.rp3-dp{display:flex;gap:6px;align-items:flex-start;} .rp3-dp i{flex:none;width:8px;height:8px;border-radius:2px;margin-top:4px;}
.rp3-dp span{display:block;}
/* S19 — LED yayın alanı önizlemesi: Excel sayfasıyla aynı okunuş (satır = kampanya, aylar sütunda) */
.rp3-led td{vertical-align:middle;}
.rp3-led .rp3-kmp{min-width:210px;background:#fafafb;position:sticky;left:0;z-index:1;}
.rp3-led .rp3-kmp label{display:flex;align-items:flex-start;gap:6px;cursor:pointer;}
.rp3-led .rp3-kmp small{margin:1px 0 0 22px;}
.rp3-led .rp3-ld,.rp3-led .rp3-ldn{white-space:nowrap;}
.rp3-led .rp3-ldn{font-size:12px;color:var(--c-ink2);}
.rp3-led .rp3-lay{min-width:104px;text-align:center;}
.rp3-lnot{margin:-4px 0 14px;}

/* ============ Mecralar aylık yönetim tablosu (.mtb-*) — S16 hesap, S19 görünüm ============
   Görünüş Raporlar › Mecra doluluk tablosu önizlemesiyle (.rp3-dol) aynı
   dildir: kompakt No / Yüz sütunları solda yapışkan, aylar sütunda, başlık
   yapışkan; tablo kendi içinde kayar.
     · tek durumlu ay    → hücre durum rengiyle dolu, metin ortada
     · ay içinde değişen → hücre beyaz; üstte günlere oranlı şerit, altında
       her dilim renk işareti + kalın ad + küçük tarih satırıyla
   Durum renkleri S15 şablon tonlarıdır (Excel/PDF/önizleme ile aynı) ve
   DAİMA metinle birlikte kullanılır. İşaretler birbirinden ayrıdır:
   bugün = mavi dikey çizgi · seçili yüz = mavi sol şerit · süzgeç eşleşmesi
   = koyu çerçeve · odak (Takvimde göster) = amber çerçeve · klavye odağı = mor.
   `--ng` (No) ve `--yg` (Yüz) sütun genişlikleridir; `--yg` çizimden sonra
   içerikten ölçülür (mdYuzGenOlc). <col>, tablo min-width'i ve yapışkan
   `left` AYNI değişkenleri kullanır. */
.mtb-wrap{overflow:auto;max-height:calc(100vh - 150px);border:1px solid var(--c-hair);border-radius:10px;background:#fff;
  position:relative;overscroll-behavior-x:contain;}
.mtb{--ng:34px;--yg:92px;border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;font-size:12.5px;line-height:1.25;}
.mtb col.c-no{width:var(--ng);} .mtb col.c-yuz{width:var(--yg);}
.mtb th,.mtb td{border-right:1px solid #ececef;border-bottom:1px solid var(--c-hair);}
.mtb thead th{position:sticky;top:0;z-index:3;background:#fff2c7;color:var(--c-ink);font-weight:700;
  padding:7px 8px;border-bottom:1px solid #b8b8bf;text-align:left;white-space:nowrap;}
.mtb thead th.mtb-no,.mtb thead th.mtb-yz,.mtb thead th.mtb-kmp{z-index:5;}
.mtb thead th.mtb-no{left:0;text-align:center;padding-left:4px;padding-right:4px;}
.mtb thead th.mtb-yz{left:var(--ng);}
.mtb thead th.mtb-kmp{left:0;}
/* Ay başlığı */
.mtb-ay{position:relative;}
.mtb-ay.bu{background:#ffe9a8;box-shadow:inset 0 -3px 0 #1f6feb;}
.mtb-ay.bu .mtb-ay-t{color:#1f4fa8;}
.mtb-ay.kismi{background:#f4f4f6;}
.mtb-ay.kismi.bu{background:#ffe9a8;}
.mtb-ay.vurgu{animation:mtbVurgu 1.4s ease-out 1;}
@keyframes mtbVurgu{0%{background:#cfe0ff;}100%{background:#ffe9a8;}}
.mtb-bu-e,.mtb-kismi{display:inline-block;font:700 10.5px/1 var(--f);font-style:normal;border-radius:4px;padding:2px 5px;margin-left:6px;vertical-align:1px;}
.mtb-bu-e{color:#fff;background:#1f6feb;}
.mtb-kismi{color:#5e5e64;background:#e4e4e8;}
/* dar kısmi ay sütununda çip alt satıra iner, kırpılmaz */
.mtb-ay.dar .mtb-kismi{display:block;width:max-content;margin:3px 0 0;}
/* Sol sütunlar: No (pano sırası) + Yüz (seçim kutusu ve yüz kodu) */
.mtb tbody th.mtb-no{position:sticky;left:0;z-index:2;background:#fafafb;text-align:center;vertical-align:middle;
  padding:5px 4px;font-weight:700;border-bottom:1px solid #9c9ca3;}
.mtb tbody th.mtb-yz{position:sticky;left:var(--ng);z-index:2;background:#fafafb;text-align:left;vertical-align:middle;
  padding:5px 8px;font-weight:400;border-right:1px solid #cfcfd6;}
.mtb-yi{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}
.mtb-yi .mtl-cb{width:15px;height:15px;margin:0;}
.mtb-ad.btn-link{font-weight:700;font-size:12.5px;padding:0;text-align:left;white-space:nowrap;color:var(--c-ink);}
.mtb-ad.btn-link:hover{color:var(--c-accent-d);}
.mtb-bos{display:block;margin-top:2px;font:700 10.5px/1.25 var(--f);color:#155a2a;}
.mtb tr.son>td,.mtb tr.son>th{border-bottom:1px solid #9c9ca3;}
.mtb tr.sec>th.mtb-yz{background:#eaf1ff;box-shadow:inset 3px 0 0 #2563eb;}
.mtb tr.md-odak>th{background:#fff1cf;}
/* Hücre: yükseklik satırın içeriğine göre; tek durumlu ayda düğme hücreyi doldurur. */
.mtb-c{position:relative;padding:0;vertical-align:middle;height:1px;background:#fff;}
.mtb-c.karma{padding:9px 0 3px;vertical-align:top;}
.mtb-serit{position:absolute;top:0;left:0;right:0;height:5px;}
.mtb-bl{display:flex;flex-direction:column;gap:1px;}
.mtb-b{display:flex;gap:6px;align-items:flex-start;width:100%;border:0;border-radius:4px;background:transparent;font:inherit;
  line-height:1.25;color:inherit;text-align:left;cursor:pointer;padding:2px 8px;position:relative;}
.mtb-m{display:block;min-width:0;}
.mtb-m b{display:block;font-size:12.5px;font-weight:700;overflow-wrap:anywhere;}
.mtb-m small{display:block;font-size:11px;overflow-wrap:anywhere;}
.mtb-m small i{font-style:normal;font-weight:650;}
.mtb-nk{flex:none;width:8px;height:8px;border-radius:2px;margin-top:4px;}
.mtb-c.tek>.mtb-b{height:100%;min-height:34px;border-radius:0;padding:5px 8px;justify-content:center;align-items:center;text-align:center;}
/* Durum: mürekkep + işaret (ay içinde değişen) ya da dolgu (tek durumlu ay / gösterge) */
.mtb-b.t-yayin,.mtb-sw.t-yayin{color:var(--st-yayin-ink);}
.mtb-b.t-opsiyon,.mtb-sw.t-opsiyon{color:var(--st-ops-ink);}
.mtb-b.t-musait,.mtb-sw.t-musait{color:var(--st-musait-ink);}
.mtb-b.t-yayin .mtb-nk{background:var(--st-yayin-bar);}
.mtb-b.t-opsiyon .mtb-nk{background:var(--st-ops-bar);}
.mtb-b.t-musait .mtb-nk{background:var(--st-musait-bar);}
.mtb-c.tek>.mtb-b.t-yayin,.mtb-sw.t-yayin{background:var(--st-yayin-bg);}
.mtb-c.tek>.mtb-b.t-opsiyon,.mtb-sw.t-opsiyon{background:var(--st-ops-bg);}
.mtb-c.tek>.mtb-b.t-musait,.mtb-sw.t-musait{background:var(--st-musait-bg);}
/* Geçmiş (Bitti): aynı türün AÇIK tonu; metin koyu kalır (okunur). */
.mtb-c.tek>.mtb-b.gecmis.t-yayin,.mtb-sw.t-yayin.gecmis{background:var(--st-yayin-soft);}
.mtb-c.tek>.mtb-b.gecmis.t-opsiyon{background:var(--st-ops-soft);}
.mtb-bl .mtb-b.gecmis .mtb-nk{opacity:.45;}
/* Planlandı: kesin yayın ama dönemi başlamadı — "Yayında" gibi görünmez. */
.mtb-c.tek>.mtb-b.plan,.mtb-sw.plan{outline:1.5px dashed rgba(127,26,16,.55);outline-offset:-4px;}
.mtb-bl .mtb-b.plan .mtb-nk{background:transparent;box-shadow:inset 0 0 0 1.5px var(--st-yayin-bar);}
/* Uyarı, süzgeç ve odak işaretleri */
.mtb-b.sur{box-shadow:inset 3px 0 0 #b3261e;}
.mtb-uy{display:block;font-style:normal;font-size:11px;font-weight:700;color:#b3261e;}
.mtb-b.soluk,.mtb-sw.soluk{opacity:.5;filter:saturate(.45);}
.mtb-b.vurgu{box-shadow:inset 0 0 0 2px #1d1d1f;}
.mtb-b.sur.vurgu{box-shadow:inset 3px 0 0 #b3261e,inset 0 0 0 2px #1d1d1f;}
.mtb-b.bosalma{box-shadow:inset 0 0 0 2px #1f7a3a;}
.mtb-bl .mtb-b:hover{background:#f1f2f5;}
.mtb-c.tek>.mtb-b:hover{filter:brightness(.96);}
.mtb-b:focus-visible{outline:2.5px solid var(--c-focus);outline-offset:-3px;z-index:2;}
.mtb-b.md-odak{box-shadow:inset 0 0 0 3px #b45309;animation:mtbOdak 1.6s ease-out 1;}
@keyframes mtbOdak{0%{box-shadow:inset 0 0 0 6px #f59e0b;}100%{box-shadow:inset 0 0 0 3px #b45309;}}
.mtb-c.pasif{background:repeating-linear-gradient(45deg,#f6f7f9,#f6f7f9 5px,#eef0f3 5px,#eef0f3 10px);
  text-align:center;color:var(--c-ink3);font-size:11px;padding:5px 8px;}
/* Bugün çizgisi (tıklamayı engellemez) */
.mtb-bugun{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:#1f6feb;opacity:.75;z-index:1;pointer-events:none;}
.mtb-bugun.b{top:auto;height:6px;bottom:0;opacity:1;}
.mtb-bugun.vurgu{animation:mtbBugun 1.4s ease-out 1;opacity:1;width:3px;}
@keyframes mtbBugun{0%{box-shadow:0 0 0 4px rgba(31,111,235,.35);}100%{box-shadow:none;}}
@media (prefers-reduced-motion: reduce){.mtb-ay.vurgu,.mtb-b.md-odak,.mtb-bugun.vurgu{animation:none;}}
/* LED: satır = kampanya; kampanya adı sütunu geniş kalır */
.mtb tbody th.mtb-kmp{position:sticky;left:0;z-index:2;background:#fafafb;text-align:left;vertical-align:middle;
  padding:6px 8px;font-weight:400;border-right:1px solid #cfcfd6;}
.mtb-kmp .mtb-ad{display:block;white-space:normal;}
.mtb-kmp-is,.mtb-kmp-d{display:block;font-size:11.5px;color:var(--c-ink3);line-height:1.25;}
.mtb-kmp-d{font-family:var(--fm);font-size:11px;letter-spacing:-.02em;}
.mtb-c.led-bos{background:#fff;}
.mtb tr.md-odak>th.mtb-kmp{box-shadow:inset 3px 0 0 #b45309;}
.mtb-led-not{margin:0 0 8px;}
/* Gösterge */
.rg-legend .mtb-sw{width:18px;height:13px;border-radius:3px;border:1px solid rgba(0,0,0,.12);}
.rg-legend .mtb-sw-bugun{width:3px;height:14px;border-radius:0;background:#1f6feb;}
.rg-legend .mtb-uy{display:inline;}
@media (max-width:760px){
  .mtb-wrap{max-height:70vh;}
  /* Dar ekranda yalnız Yüz sütunu yapışkandır; sıra no tabloyla birlikte kayar. */
  .mtb tbody th.mtb-no{position:static;}
  .mtb thead th.mtb-no{left:auto;z-index:3;}
  .mtb thead th.mtb-yz,.mtb tbody th.mtb-yz{left:0;}
}
@media (pointer:coarse){
  .mtb-c.tek>.mtb-b{min-height:44px;}
  .mtb-bl .mtb-b{padding-top:6px;padding-bottom:6px;}
  .mtb-yi .mtl-cb{width:18px;height:18px;}
}
/* S16 — rapor önizlemesi: kurum/iş grup bandı, kalem durumu, plan açıklaması */
.rp3-bm tr.rp3-grp td{background:#eaecf1;border-top:1.5px solid #6e6e75;border-bottom:1px solid #c9ccd4;padding-top:7px;padding-bottom:7px;}
.rp3-bm tr.rp3-grp td span{color:var(--c-ink2);font-weight:600;}
.rp3-bm tr.rp3-grp td em{font-style:normal;color:var(--c-ink2);font-size:12px;margin-left:6px;}
.rp3-bm tr.rp3-grp td.rp3-gec{color:#a32117;font-weight:700;}
.rp3-dr{display:block;font-size:12px;margin-bottom:2px;}
.rp4-acik{max-width:68ch;margin-top:10px;}
.rp2-g1.rp4-gec{color:#a32117;}
.rp2-chk.pasif{opacity:.6;}
.rp2-chk em{font-style:normal;color:var(--c-ink3);font-size:12px;margin-left:4px;}

/* ==========================================================
   Mecralar: dönem araç çubuğu, mecra sekmeleri, süzgeçler (S17, S19 yerleşim)
     · dönem araçları (hazır dönem, ileri/geri, Bugüne git, geçmiş ayları
       gizle, Excel) üst sağda tek kompakt araç çubuğu
     · mecra sekmeleri ayrı satırda, hep görünür
     · süzgeçler tek sıkı satır; özel dönem ayrı (yalnız Ara / Enter)
     · büyük "uygulanan arama" kutusu yerine tek satırlık özet
   SEÇİM dili tektir: koyu dolgu + ✓. Durum renkleri seçim için kullanılmaz.
   ========================================================== */
.md-head{align-items:center;gap:10px 14px;flex-wrap:wrap;margin-bottom:10px;}
.md-arac{display:flex;align-items:center;justify-content:flex-end;gap:6px 8px;flex-wrap:wrap;}
.md-hazir{display:inline-flex;align-items:center;gap:4px;}
.md-nav{width:var(--ctl-h-sm);height:var(--ctl-h-sm);border-radius:var(--r-ctl);border:1px solid var(--c-line);background:#fff;font:700 16px/1 var(--f);
  color:var(--c-ink2);cursor:pointer;}
.md-nav:hover{border-color:var(--c-ink3);color:var(--c-ink);}
.md-nav:focus-visible,.md-xls:focus-visible,.md-sp:focus-visible{outline:2px solid var(--c-focus);outline-offset:2px;}
.mtl-gk{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--c-ink2);white-space:nowrap;cursor:pointer;}
.md-xls[disabled]{opacity:.5;cursor:not-allowed;}
/* Mecra sekmeleri */
.md-site{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;}
.md-sp{border:1px solid var(--c-line);background:#fff;color:var(--c-ink2);border-radius:999px;cursor:pointer;
  min-height:var(--ctl-h-sm);padding:0 13px;font:600 13px/1.3 var(--f);transition:.12s;white-space:nowrap;}
.md-sp:hover{border-color:var(--c-ink3);color:var(--c-ink);}
.md-sp.on{background:var(--c-ink);border-color:var(--c-ink);color:#fff;}
.md-sp-all{border-style:dashed;}
.md-sp.on::before,.md-arac .md-seg button.on::before,.md-ara .md-seg button.on::before{content:'✓ ';}
/* Süzgeç kartı */
.md-ara{display:flex;flex-direction:column;gap:8px;padding:10px 12px;margin-bottom:10px;}
.md-f1,.md-f2{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.md-f1 .inp{margin:0;}
.md-f1 #mdQ{flex:1 1 150px;min-width:140px;max-width:none;}
.md-f1 select.inp{flex:1 1 128px;width:auto;min-width:128px;max-width:210px;}
.md-f2{padding-top:8px;border-top:1px solid var(--c-hair);}
.md-f2-e{font:700 11px/1 var(--f);text-transform:uppercase;letter-spacing:.04em;color:var(--c-ink3);}
.md-ara .md-ms-f{flex-direction:row;align-items:center;gap:6px;font-size:12px;}
.md-ara .md-ms-f input.inp{width:150px;height:var(--ctl-h-sm);}
.md-ara-go{min-width:64px;}
.md-bekleyen{font:700 12px/1.2 var(--f);color:#7a4a00;background:#fff3d6;box-shadow:inset 0 0 0 1px #f1c96b;border-radius:999px;padding:6px 10px;}
.md-bekleyen[hidden]{display:none;}
form.md-ara.bekliyor .md-ara-go{box-shadow:0 0 0 3px rgba(241,201,107,.55);}
.md-sifirla{margin-left:auto;font-size:12.5px;}
.md-ara .md-ms-hata{margin:0;}
/* Uygulanan aramanın tek satırlık özeti */
.md-sonuc{margin:0 2px 10px;font-size:13px;}
.md-sonuc-h{display:flex;align-items:baseline;gap:4px 12px;flex-wrap:wrap;margin:0;color:var(--c-ink2);}
.md-sonuc-h>b{color:var(--c-ink);}
.md-sonuc-c{font-size:12px;color:var(--c-ink2);background:var(--c-line2);border-radius:999px;padding:2px 8px;}
.md-sonuc-s{color:var(--c-ink);}
.md-sonuc-n{margin:3px 0 0;font-size:12px;color:var(--c-ink3);}
.md-yil-h{display:flex;align-items:center;gap:10px;justify-content:space-between;margin:12px 2px 8px;}
.md-yil-h .md-yil-t{margin:0;}
.md-bos{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
@media (max-width:760px){
  .md-arac{justify-content:flex-start;width:100%;}
  /* Mecra sekmeleri tek satırda yatay kayar (kontrol duvarı yok, S8.1 §19). */
  .md-site{flex-wrap:nowrap;overflow-x:auto;margin-bottom:8px;padding-bottom:4px;scrollbar-width:none;}
  .md-site::-webkit-scrollbar{display:none;}
  .md-sp{flex:0 0 auto;}
  .md-f1 #mdQ{flex:1 1 100%;}
  .md-f1 select.inp{flex:1 1 46%;max-width:none;}
  .md-ara .md-ms-f{flex:1 1 140px;} .md-ara .md-ms-f input.inp{flex:1 1 auto;width:100%;}
  .md-sifirla{margin-left:0;}
  .md-yil-h{margin-top:10px;}
}

/* Harita (S17): daraltılabilir liste, bilgi kartı, konumsuzlar ayrı */
.hmap-ayar summary{cursor:pointer;font-size:14px;}
.hmap-ayar[open] summary{margin-bottom:4px;}
.hmap-ust{display:flex;align-items:flex-start;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;margin:0 0 10px;}
.hmap-ust h3{margin:0 0 4px;font-size:16px;}
.hmap-ust .hmap-kap{margin:0;}
.hmap-ust-r{display:flex;gap:8px;flex-wrap:wrap;}
.hmap-grid.liste-kapali{grid-template-columns:1fr;}
.hmap-side[hidden]{display:none;}
.hside-f{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px;}
.hside-f .rp2-chk{margin:0;}
.hmap-side .inp{margin-bottom:8px;}
.hg-tools .sp{flex:1;}
.hdot.yok{background:#fff;box-shadow:inset 0 0 0 1.5px #9c9ca3;border-radius:50%;}
.hlist-bos{font-size:13px;padding:10px;}
.hkonumsuz{border-top:1px solid var(--c-line2);margin-top:4px;}
.hkonumsuz>summary{cursor:pointer;display:flex;align-items:center;gap:8px;padding:9px 10px;font-size:13px;font-weight:700;color:var(--c-ink2);}
.hkonumsuz .hrow{padding-left:18px;}
.hrow:focus-visible{outline:2px solid var(--c-focus);outline-offset:-2px;}
.hmap-secnot{position:absolute;left:50%;transform:translateX(-50%);top:12px;z-index:600;max-width:90%;
  background:#fff7e0;border:1px solid #f3dca0;color:#6e3d00;border-radius:10px;padding:8px 12px;font-size:13px;font-weight:600;
  box-shadow:0 2px 8px rgba(16,24,40,.1);}
.hmap-secnot[hidden]{display:none;}
.hpin span{display:block;width:14px;height:14px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.45);}
.hduzen[hidden]{display:none;}
.hselbar{display:block;}
.hk-h{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.hk-ad{font-size:15px;}
.hk-m{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;margin:6px 0 0;font-size:12.5px;color:var(--c-ink2);}
.hk-donem{margin:8px 0 0;font-size:12.5px;}
.hk-yuzler{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;margin:8px 0 0;}
.hk-yuz{background:#fff;border:1px solid var(--c-line);border-radius:10px;padding:8px 10px;}
.hk-yh{font-size:13px;margin:0 0 6px;}
.hk-d{display:grid;grid-template-columns:52px 1fr;gap:6px;font-size:12.5px;padding:4px 0;border-top:1px solid var(--c-line2);}
.hk-e{font:800 10.5px/1.6 var(--f);text-transform:uppercase;letter-spacing:.03em;color:var(--c-ink3);}
.hk-e.hk-bu{color:#1f4fa8;}
.hk-kl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;}
.hk-kl .btn-link{font-weight:700;padding:0;}
@media (max-width:760px){
  .hmap-ust-r{width:100%;} .hmap-ust-r .btn{flex:1 1 auto;}
  .hk-yuzler{grid-template-columns:1fr;}
}
.hg-tools{flex-wrap:nowrap;}
.hg-tools button{white-space:nowrap;}
.hg-tools>span:first-child{white-space:nowrap;}
.hmap-main .hselbar{margin:12px 0 0;}

/* ==========================================================
   S19 — Baskı & Montaj: üretim kalemi akışı, kayıt detayı, sade form
   Durum üç değerlidir (Yapılacak / Tamamlandı / İptal); "Gecikti" türetilir.
   Renk daima metin ve işaretle birliktedir (✓ ○ ! ✕). Sıradaki işlem koyu
   sol şeritle, detayda açık olan kayıt koyu çerçeveyle gösterilir — durum
   renkleri seçim için kullanılmaz.
   ========================================================== */
.op-st{display:inline-flex;align-items:center;gap:4px;font:700 11.5px/1.4 var(--f);border-radius:var(--r-sm);padding:2px 8px;white-space:nowrap;}
.op-st.planned{background:var(--c-line2);color:var(--c-ink2);}
.op-st.done{background:var(--c-green-soft);color:#136c3a;}
.op-st.cancelled{background:transparent;color:var(--c-ink3);box-shadow:inset 0 0 0 1px var(--c-line);text-decoration:line-through;}
.op-st.gec{background:var(--c-red-soft);color:var(--c-red-t);}
.op-gec-t{color:var(--c-red-t);}
.opk{padding:0;overflow:hidden;}
.opk-h,.opk-r{display:grid;grid-template-columns:minmax(190px,1fr) minmax(0,2.3fr) minmax(170px,.8fr);gap:10px 16px;padding:12px 16px;align-items:start;}
.opk-h{padding-top:9px;padding-bottom:9px;background:#f6f8fb;border-bottom:1px solid var(--c-line);
  font:650 11px/1.4 var(--f);letter-spacing:.05em;text-transform:uppercase;color:var(--c-ink2);}
.opk-r+.opk-r{border-top:1px solid var(--c-row);}
.opk-is{display:flex;flex-direction:column;gap:2px;min-width:0;align-items:flex-start;}
.opk-j.btn-link{padding:0;min-height:0;font-weight:650;font-size:var(--fs-body);color:var(--c-ink);text-align:left;white-space:normal;}
.opk-j.btn-link:hover{color:var(--c-accent-d);}
.opk-ku{font-size:12px;color:var(--c-ink3);}
.opk-ad{font-size:var(--fs-sm);color:var(--c-ink2);overflow-wrap:anywhere;}
.opk-akis{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 0;align-items:stretch;}
.opk-akis li{display:flex;align-items:center;min-width:0;}
.opk-akis li+li::before{content:"→";color:var(--c-ink3);margin:0 6px;font-size:13px;}
.opk-c{display:flex;flex-direction:column;gap:1px;text-align:left;border:1px solid var(--c-line);border-radius:10px;background:#fff;
  padding:6px 10px;min-width:128px;max-width:236px;cursor:pointer;font:inherit;color:var(--c-ink);}
.opk-c:hover{border-color:var(--c-ink3);background:var(--c-alt);}
.opk-ct{font-weight:700;font-size:var(--fs-sm);display:flex;align-items:center;gap:6px;}
.opk-ct i{font-style:normal;display:inline-grid;place-items:center;flex:none;width:16px;height:16px;border-radius:50%;
  font-size:10.5px;font-weight:800;background:var(--c-line2);color:var(--c-ink2);}
.opk-cd{font-size:var(--fs-xs);color:var(--c-ink2);}
.opk-cu{font-size:var(--fs-xs);color:var(--c-ink3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.opk-c.done{background:#f3faf5;border-color:#cfe8d7;} .opk-c.done .opk-ct i{background:#1a8a4a;color:#fff;}
.opk-c.cancelled{border-style:dashed;} .opk-c.cancelled .opk-ct,.opk-c.cancelled .opk-cd{color:var(--c-ink3);} .opk-c.cancelled .opk-ct{text-decoration:line-through;}
.opk-c.gec{border-color:#f1bcbc;background:#fff7f7;} .opk-c.gec .opk-ct i{background:var(--c-red-t);color:#fff;}
.opk-c.gec .opk-cd{color:var(--c-red-t);font-weight:600;}
.opk-c.sira{box-shadow:inset 3px 0 0 var(--c-ink);}
.opk-c.simdi{outline:2px solid var(--c-ink);outline-offset:1px;}
.opk-sr{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm);min-width:0;}
.opk-sl{display:none;font:650 11px/1.6 var(--f);letter-spacing:.05em;text-transform:uppercase;color:var(--c-ink3);}
.opk-su{color:var(--c-ink2);} .opk-su em{font-style:normal;color:var(--c-ink3);}
.opk-st{color:var(--c-ink3);}
@media(max-width:900px){
  .opk-h{display:none;}
  .opk-r{grid-template-columns:1fr;gap:8px;padding:12px;}
  .opk-sl{display:inline;}
  .opk-sr{flex-direction:row;flex-wrap:wrap;gap:4px 8px;align-items:baseline;}
  .opk-akis li{flex:1 1 100%;} .opk-akis li+li::before{content:"↓";margin:0 8px 0 2px;}
  .opk-c{flex:1 1 auto;max-width:none;min-width:0;}
}
/* Kayıt detayı */
.opd-h{display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap;margin:0 0 12px;}
.opd-h h3{margin:0;flex:1 1 200px;overflow-wrap:anywhere;}
.opd-dl{margin:0 0 4px;} .opd-dl>b{font-weight:500;overflow-wrap:anywhere;}
.opd-not{white-space:pre-line;}
.opd-b{font-size:var(--fs-sm);font-weight:700;color:var(--c-ink2);margin:14px 0 6px;display:flex;align-items:center;gap:6px;}
.opd-sira{margin:6px 0 0;}
.opd-bl{border:1px solid var(--c-row);border-radius:10px;padding:2px 10px;}
.opd-bt{font-weight:600;}
.opd-f{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:16px;}
.opd-sp{flex:1 1 0;}
/* Form: öneri notu, açılır bölümler, gerçekleşen tarih */
.op-oneri{background:#f1f5fb;box-shadow:inset 0 0 0 1px #d8e2f1;color:#2f4a73;border-radius:9px;padding:8px 12px;font-size:var(--fs-sm);margin:0 0 12px;}
.op-det{border:1px solid var(--c-hair);border-radius:10px;padding:0 12px;margin:0 0 12px;}
.op-det>summary{cursor:pointer;padding:9px 0;font-size:var(--fs-sm);font-weight:700;color:var(--c-ink2);}
.op-det[open]>summary{margin-bottom:4px;}
.op-ger{display:flex;gap:4px 8px;align-items:center;flex-wrap:wrap;} .op-ger .inp{flex:1 1 150px;width:auto;}
/* İşlem türüne göre gizlenen alan: `hidden` niteliği grid/flex kurallarına yenilmesin. */
.modal [hidden]{display:none!important;}
