/* Türkşeker Randevu Paneli — kurumsal, sade tema (v2)
   Renk: Türkşeker yeşili birincil; nötr gri yüzeyler; durumlar yeşil/amber/kırmızı/mavi. */
*{box-sizing:border-box}
:root{
  --bg:#f4f5f7;--surface:#ffffff;--surface2:#f8f9fb;--line:#e3e6ea;--line2:#eef0f3;
  --text:#1b2430;--heading:#0f1a2b;--muted:#68727f;
  --primary:#1a7a3e;--primary2:#146232;--primarysoft:#e7f3eb;
  --ok:#1a7a3e;--okbg:#e7f3eb;--wait:#a35a00;--waitbg:#fff4e5;--bad:#b42318;--badbg:#fdecea;--blue:#1d5fa8;--bluebg:#e9f0fa;--graybg:#f0f2f5;
  --r:10px;--rs:7px;--shadow:0 1px 2px rgba(16,24,40,.04)
}
html,body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 "Segoe UI",Inter,system-ui,-apple-system,Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--primary)}
h1{font-size:22px;margin:0;font-weight:600;color:var(--heading);letter-spacing:-.01em}
h2{font-size:12px;margin:0 0 12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
h3{font-size:15px;margin:18px 0 8px;color:var(--heading);font-weight:600}
p{margin:0 0 10px}
button,input,select,textarea{font:inherit}
button{background:var(--primary);color:#fff;border:1px solid var(--primary);border-radius:var(--rs);padding:8px 14px;cursor:pointer;font-weight:600;font-size:13.5px;white-space:nowrap;line-height:1.3;transition:background .12s,border-color .12s}
button:hover{background:var(--primary2);border-color:var(--primary2)}
button.ghost{background:var(--surface);color:var(--heading);border-color:var(--line)}
button.ghost:hover{background:var(--surface2);border-color:#cfd5dc}
button.danger{background:var(--surface);color:var(--bad);border-color:#efc4bf}
button.danger:hover{background:var(--bad);border-color:var(--bad);color:#fff}
button.sm{padding:5px 10px;font-size:12.5px}
button:disabled,button:disabled:hover{opacity:.45;cursor:default}
input,select,textarea{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--rs);padding:8px 10px;min-width:0;transition:border-color .12s,box-shadow .12s}
input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(26,122,62,.14);outline:none}
input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary);vertical-align:-2px;margin-right:6px}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.hide{display:none!important}

/* ---------- üst bar ---------- */
header{display:flex;justify-content:space-between;align-items:center;padding:0 24px;height:60px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.hbrand{display:flex;align-items:center;gap:14px;white-space:nowrap}
.hsep{width:1px;height:26px;background:var(--line)}
.htxt{display:flex;flex-direction:column;line-height:1.2}
.ht1{font-size:14.5px;font-weight:600;color:var(--heading);letter-spacing:-.005em}
.ht2{font-size:11px;color:var(--muted);margin-top:2px;letter-spacing:.02em}
.hstatus{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);white-space:nowrap}
.hitem{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;background:var(--surface2);border:1px solid var(--line2);font-variant-numeric:tabular-nums}
.hitem.warn{background:var(--waitbg);color:var(--wait);border-color:#f3dcb8}
.hitem.hot{background:var(--okbg);color:var(--ok);border-color:#bfe0ca;font-weight:600}
i.st{width:8px;height:8px;border-radius:50%;display:inline-block;background:#b6bec8}
i.st.ok{background:#22a35a}i.st.bad{background:#e0493b}i.st.warn{background:#f0a21b}
.hlink{background:var(--surface);color:var(--heading);border:1px solid var(--line);padding:5px 12px;font-weight:500;margin-left:8px;border-radius:var(--rs);font-size:12.5px}
.hlink:hover{background:var(--surface2);border-color:#cfd5dc}
@media (max-width:900px){.htxt,.hsep,.hitem:not(#saat){display:none}}

/* ---------- yerleşim ---------- */
.wrap{display:grid;grid-template-columns:300px 1fr;gap:20px;padding:22px 24px 40px;max-width:1480px;margin:0 auto;align-items:start}
.pagehead{display:flex;justify-content:space-between;align-items:flex-end;margin:0 0 16px}
.pagehead .muted{font-size:13px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;margin-bottom:18px;box-shadow:var(--shadow)}
.cardhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.cardhead h2{margin:0}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sp{justify-content:space-between}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.muted{color:var(--muted);font-size:13px}
.ok{color:var(--ok)}.bad{color:var(--bad)}.wait{color:var(--wait)}.blue{color:var(--blue)}
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap;line-height:1.5}
.badge.ok{background:var(--okbg);color:var(--ok)}
.badge.wait{background:var(--waitbg);color:var(--wait)}
.badge.bad{background:var(--badbg);color:var(--bad)}
.badge.blue{background:var(--bluebg);color:var(--blue)}
.badge.gray{background:var(--graybg);color:var(--muted)}
label.field{display:block;font-size:12px;color:var(--muted);margin:12px 0 5px;font-weight:600}
.legend{margin:10px 0 0;font-size:12.5px;color:var(--muted)}

/* ---------- uyarı şeridi ---------- */
.card.warnbox{background:var(--waitbg);border-color:#f0d9b5;color:#5b3a00;padding:14px 18px}
.card.warnbox .muted{color:#8a6a2a}
.card.warnbox .row{flex-wrap:nowrap;gap:16px}
.card.warnbox .row>span{flex:1}
/* sistem kartı ayar satırları */
.setrow{display:flex;align-items:center;gap:8px;padding:9px 0;border-top:1px solid var(--line2);font-size:13px}
.motorbox{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding:12px 14px;border-radius:8px;border:1px solid var(--line)}
.motorbox.on{background:var(--okbg);border-color:#bfe0ca}
.motorbox.off{background:var(--badbg);border-color:#f3c6c1}
.motorbox .mbl{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:600;color:var(--muted)}
.motorbox .mbv{display:block;font-size:17px;font-weight:700;line-height:1.2}
.motorbox.on .mbv{color:var(--ok)}.motorbox.off .mbv{color:var(--bad)}
.motorbox .mbh{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.motorbox button{flex:none;min-width:84px}
.hitem.off{background:var(--badbg);color:var(--bad);border-color:#f3c6c1;font-weight:600}
.setrow .sl{color:var(--muted);flex:1}
.setrow .sv{font-weight:600;color:var(--heading)}
.setrow select{padding:4px 8px;font-size:12.5px}
.alert{margin-top:12px;padding:9px 12px;border-radius:var(--rs);font-size:13px;border:1px solid transparent}
.alert.bad{background:var(--badbg);color:var(--bad);border-color:#f3c6c1}

/* ---------- çiftçi listesi ---------- */
.farmer{display:flex;align-items:center;gap:11px;width:100%;text-align:left;margin:0 0 6px;background:var(--surface);color:var(--text);border:1px solid var(--line2);font-weight:500;padding:10px 12px;border-radius:var(--rs);font-size:13.5px}
.farmer:hover{background:var(--surface2);border-color:var(--line);color:var(--text)}
.farmer.on{border-color:#c6cdd5;background:var(--surface2)}
.farmer.on .fname{color:var(--heading)}
.farmer .fdot{width:9px;height:9px;border-radius:50%;flex:none;background:#b6bec8}
.farmer .fdot.ok{background:#22a35a}.farmer .fdot.wait{background:#f0a21b}.farmer .fdot.bad{background:#e0493b}
.farmer .fmain{flex:1;min-width:0}
.farmer .fname{display:block;font-weight:600;color:var(--heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.farmer .sub{display:flex;gap:10px;font-size:12px;color:var(--muted);margin-top:1px;font-weight:400}

/* ---------- çiftçi başlığı ---------- */
.fh-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.fh-name{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.fh-name h1{font-size:20px}
.meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px 18px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line2)}
.mi .ml{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.mi .mv{display:block;font-size:14px;font-weight:600;color:var(--heading);margin-top:2px;font-variant-numeric:tabular-nums;white-space:nowrap}
.mi .mv .muted{font-weight:400}
.mi .psel{font-size:13px;padding:3px 6px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--heading);font-weight:600}

/* ---------- tablolar ---------- */
/* Düz tablo: çerçeve yok, başlık zemini yok; yalnızca ince yatay çizgiler ve hizalı sayılar */
table{width:100%;border-collapse:collapse;font-size:13.5px;background:transparent}
th{color:var(--muted);font-weight:600;font-size:12px;padding:6px 12px 9px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;letter-spacing:.01em}
th:first-child,td:first-child{padding-left:4px}
th:last-child,td:last-child{padding-right:4px}
td{padding:12px 12px;border-bottom:1px solid var(--line2);vertical-align:middle}
tbody tr:hover td{background:var(--surface2)}
tbody tr:last-child td{border-bottom:0}
tr.total td{font-weight:600;border-top:1px solid var(--line);border-bottom:0;color:var(--heading);background:transparent!important}
td.r{text-align:right}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
td.c,th.c{text-align:center}
td.nw{white-space:nowrap}
td b{color:var(--heading);font-weight:600}
tr.sec{cursor:pointer}
main{min-width:0}
/* durum: nokta + metin (rozet yerine) */
.stt{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:12.5px;white-space:nowrap}
.stt::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.stt.ok{color:var(--ok)}.stt.wait{color:var(--wait)}.stt.bad{color:var(--bad)}.stt.blue{color:var(--blue)}.stt.gray{color:var(--muted)}
.wname{display:block;font-weight:600;color:var(--heading);line-height:1.25}
.wname.ok{color:var(--ok)}.wname.wait{color:var(--wait)}.wname.bad{color:var(--bad)}
.ovtab tr.sec:hover .wname{text-decoration:underline;text-decoration-color:rgba(0,0,0,.25);text-underline-offset:3px}
.wsub{display:block;font-size:12px;color:var(--muted);line-height:1.3;margin-top:1px}
.ovtab td{white-space:nowrap}
.ovtab td:first-child{overflow:hidden}
.wname,.wsub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* sabit sütun düzeni: genişlik yetmeyince metinler kırpılır, tablo taşmaz */
.ovtab{table-layout:fixed}
.ovtab col.c-st{width:112px}.ovtab col.c-ton{width:126px}.ovtab col.c-rt{width:92px}.ovtab col.c-bk{width:80px}.ovtab col.c-tm{width:98px}.ovtab col.c-tl{width:64px}.ovtab col.c-ev{width:176px}
.tscroll{overflow-x:auto}
.aptab{table-layout:fixed}
.aptab col.c-dt{width:130px}.aptab col.c-sa{width:140px}.aptab col.c-du{width:120px}.aptab col.c-bk{width:120px}.aptab col.c-ac{width:160px}
@media (max-width:1240px){.aptab{min-width:720px}}
.daytab .tonc,.shtab .tonc{min-width:150px}
.shtab .dot2{margin-right:8px}
/* talimat / alım / olay / iz tabloları */
.intab td,.bktab td,.evtab td{padding:10px 12px}
.evtab td.t,.bktab td.t{color:var(--muted);font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums;width:64px}
.evtab tr.err td.m,.bktab tr.err td.m{color:var(--bad)}.evtab tr.ok td.m,.bktab tr.ok td.m{color:var(--ok)}.evtab tr.warn td.m{color:var(--wait)}
.evtab td.m{line-height:1.45}
.intab .acts2{display:flex;gap:6px;justify-content:flex-end}
.intab td.m{white-space:normal;min-width:140px;line-height:1.4}
.intab .c2 .stt{font-size:12px}
.intab td.r{padding-left:4px}
.intab .acts2 button.sm{padding:4px 8px}
.intab td.nw{white-space:nowrap}
.talgrid{grid-template-columns:minmax(320px,400px) 1fr}
/* talimat formu: adımlar */
#tform label.field{margin-top:16px}
#tform details.adv label.field{margin-top:12px}
button.wide{width:100%;margin-top:12px;padding:10px 14px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}
.seg button{background:transparent;color:var(--heading);border:0;border-right:1px solid var(--line);border-radius:0;padding:8px 14px;font-weight:500}
.seg button:last-child{border-right:0}
.seg button:hover{background:var(--surface2)}
.seg button.on{background:var(--primarysoft);color:var(--primary);font-weight:600}
.hint{font-size:12.5px;color:var(--muted);margin:6px 0 0;line-height:1.5}
.hint b{color:var(--heading)}
details.adv{margin-top:16px;border-top:1px solid var(--line2);padding-top:10px}
details.adv summary{cursor:pointer;color:var(--muted);font-weight:600;font-size:13px;list-style:none;display:flex;align-items:center;gap:6px}
details.adv summary::before{content:'›';display:inline-block;transition:transform .15s;font-size:16px;line-height:1}
details.adv[open] summary::before{transform:rotate(90deg)}
details.adv summary::-webkit-details-marker{display:none}
details.adv select{width:100%}
.tsum{background:var(--surface2);border:1px solid var(--line2);border-radius:8px;padding:11px 13px;margin-top:16px;font-size:13.5px;line-height:1.55}
.warnline{color:var(--wait);font-weight:600}
#tpick{margin-top:10px}
@media (max-width:1100px){.talgrid{grid-template-columns:1fr}}
.tonv{display:flex;justify-content:flex-end;align-items:baseline;gap:5px;font-variant-numeric:tabular-nums}
.tonv .muted{font-size:12px}
.tonc .bar{width:90px;margin:5px 0 0 auto;height:4px;background:#e6e9ee}
.ovtab td.evc{overflow:hidden;text-overflow:ellipsis;font-size:12.5px}
.evc .evt{color:var(--muted);font-size:12px;margin-right:6px;font-variant-numeric:tabular-nums}
@media (max-width:1180px){.ovtab{min-width:520px}.tscroll{padding-bottom:4px}}
/* kurallar tabloları */
.rtab td.k{font-weight:600;color:var(--heading);white-space:nowrap;width:190px;vertical-align:top}
.rtab td.m{line-height:1.55}
.rtab tr.on td{background:var(--surface2)}
.rtab tr.on td.k{color:var(--primary)}
.rules .cardhead a{text-decoration:none}.rules .cardhead a:hover{text-decoration:underline}

/* ---------- sekmeler ---------- */
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:-4px 0 18px}
.tab{background:transparent;color:var(--muted);border:0;border-bottom:2px solid transparent;border-radius:0;padding:9px 12px;font-weight:500;font-size:13.5px;margin-bottom:-1px}
.tab:hover{color:var(--heading);background:transparent}
.tab.on{color:var(--heading);font-weight:600;border-bottom-color:var(--primary)}

/* ---------- KPI ---------- */
.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.kpi .box{display:flex;flex-direction:column-reverse;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:var(--rs);padding:11px 13px}
.kpi .n{font-size:21px;font-weight:600;color:var(--heading);font-variant-numeric:tabular-nums;line-height:1.2}
.kpi .l{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}
aside .kpi{grid-template-columns:1fr 1fr}
aside .kpi .n{font-size:18px}

/* ---------- kota göstergeleri ---------- */
.bar{height:6px;border-radius:3px;background:#e8ebef;overflow:hidden;margin-top:5px}
.bar>span{display:block;height:100%}
.bar>span.yesil,.dot2.yesil{background:#22a35a}.bar>span.mavi,.dot2.mavi{background:#3b7dd8}.bar>span.kirmizi,.dot2.kirmizi{background:#e0493b}
.dot2{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:1px}
.chip{display:inline-flex;align-items:center;padding:3px 10px;margin:3px 4px 0 0;border-radius:999px;font-size:12px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-weight:600}
.chip.kapali{opacity:.5;text-decoration:line-through;cursor:default}
.chip.acik{border-color:#bfe0ca;color:var(--ok);background:var(--okbg)}
.chip.on{border-color:var(--primary);color:#fff;background:var(--primary)}

/* ---------- kayıt satırları ---------- */
.rules table{margin:8px 0}
.logline{padding:7px 0;border-bottom:1px solid var(--line2);font-size:13px;line-height:1.45}
.logline .t{color:var(--muted);font-size:11.5px;margin-right:10px;font-variant-numeric:tabular-nums}
.logline.err{color:var(--bad)}.logline.ok{color:var(--ok)}.logline.warn{color:var(--wait)}
.logline .badge{margin:0 4px}
.rules li{margin:7px 0}
.rules ul{padding-left:20px}
.pager{margin-top:10px;padding-top:10px;border-top:1px solid var(--line2)}

/* ---------- ikon + baloncuk ---------- */
.ico{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:11px;font-weight:700;line-height:1;margin:0 4px;vertical-align:middle;cursor:default}
.ico.st{width:9px;height:9px;margin:0 9px 0 0}
.ico.st.ok{background:#22a35a}.ico.st.wait{background:#f0a21b}.ico.st.bad{background:#e0493b}
.ico.ok{background:var(--okbg);color:var(--ok)}.ico.bad{background:var(--badbg);color:var(--bad)}.ico.wait{background:var(--waitbg);color:var(--wait)}
.ico.blue{background:var(--bluebg);color:var(--blue)}.ico.info{background:var(--graybg);color:var(--muted)}
.ico.txt{width:auto;height:auto;border-radius:0;font-weight:400;font-size:12px;color:var(--muted);margin-left:8px}
/* Baloncuk: tek bir yüzen öğe (JS konumlandırır) — tablo/kaydırma kırpmasından etkilenmez */
#tip{position:fixed;z-index:100;background:#101828;color:#fff;padding:8px 11px;border-radius:7px;font-size:12px;font-weight:400;line-height:1.45;white-space:pre-line;max-width:340px;text-align:left;box-shadow:0 8px 24px rgba(16,24,40,.22);pointer-events:none}
/* iki satırlı hücre, mono sayı */
.cell2 .c1{display:block;font-weight:600;color:var(--heading);line-height:1.25;white-space:nowrap}
.cell2 .c2{display:block;font-size:12px;color:var(--muted);line-height:1.3;margin-top:1px;white-space:nowrap}
.mono{font-family:Consolas,"Cascadia Mono","Segoe UI",monospace;font-variant-numeric:tabular-nums;letter-spacing:.01em}
td.nw{white-space:nowrap}

/* ---------- canlı akış ---------- */
.lchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.lchip{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:var(--surface2);font-size:13px;font-weight:600;color:var(--heading);cursor:default}
.lchip.off{background:var(--badbg);border-color:#f3c6c1;color:var(--bad)}
.lchip b{font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.lchip b.ok{color:var(--ok)}
.lvtab{table-layout:fixed}
.lvtab col.c1{width:88px}.lvtab col.c2{width:180px}.lvtab col.c3{width:104px}
.lvtab td{padding:8px 10px;font-size:13px}
.lvtab td.t{color:var(--muted);font-size:12px}
.lvtab td.m{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lvtab tr.ok td.m{color:var(--ok);font-weight:600}.lvtab tr.err td.m{color:var(--bad)}.lvtab tr.warn td.m{color:var(--wait)}
@media (max-width:1180px){.lvtab{min-width:760px}}
.lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:14px}
.lc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;min-width:0}
.lc.off{opacity:.7}
.lc h3{margin:0;font-size:15px;display:flex;align-items:center;gap:8px}
.lc h3 .stt{gap:0}
.lins{margin:8px 0 6px}
.lin{display:flex;align-items:center;gap:10px;padding:4px 0;border-bottom:1px solid var(--line2);font-size:13px}
.lin .n{font-variant-numeric:tabular-nums;min-width:30px}
.lin .ld{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.ltrs{margin-top:6px;max-height:190px;overflow:auto;background:var(--surface2);border-radius:8px;padding:6px 10px}
.ltr{font-size:12px;line-height:1.5;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ltr .t{color:var(--muted);margin-right:8px;font-variant-numeric:tabular-nums}
.ltr.ok{color:var(--ok)}.ltr.err{color:var(--bad)}.ltr.warn{color:var(--wait)}
@media (max-width:900px){.lgrid{grid-template-columns:1fr}}

/* ---------- modal / bildirim ---------- */
.ovl{position:fixed;inset:0;background:rgba(15,26,43,.5);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px;animation:fin .15s ease}
.mdl{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:22px 24px;max-width:560px;width:100%;box-shadow:0 24px 64px rgba(15,26,43,.28);animation:tin .18s ease;max-height:92vh;overflow:auto}
.mdl h3{margin:0 0 10px;font-size:16px;color:var(--heading)}
.mdl.err h3{color:var(--bad)}.mdl.okk h3{color:var(--ok)}.mdl.warn h3{color:var(--wait)}
.mdl p{margin:0 0 14px;line-height:1.55}
.mdl .acts{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;padding-top:14px;border-top:1px solid var(--line2)}
.mdl .acts button.danger{background:var(--bad);border-color:var(--bad);color:#fff}
.mdl .acts button.danger:hover{background:#962015;border-color:#962015}
button.danger:focus-visible{outline-color:var(--bad)}
.mdl input,.mdl select{width:100%}
.mdl.wide{max-width:860px}
.mdl.wide table{font-size:13px}
#toasts{position:fixed;top:72px;right:18px;z-index:60;display:flex;flex-direction:column;gap:8px;max-width:380px}
.toast{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--primary);border-radius:var(--rs);padding:10px 14px;font-size:13.5px;box-shadow:0 10px 28px rgba(16,24,40,.16);animation:tin .18s ease;transition:opacity .3s}
.toast.ok{border-left-color:#22a35a}.toast.err{border-left-color:#e0493b}.toast.warn{border-left-color:#f0a21b}
@keyframes tin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes fin{from{opacity:0}to{opacity:1}}
.sum div{display:flex;gap:10px;padding:7px 0;border-bottom:1px solid var(--line2)}
.sum .k{color:var(--muted);min-width:150px;font-size:13px}
.sum .v{font-weight:600;color:var(--heading)}
.ro{padding:8px 0;font-size:14px}
.num{display:inline-flex;align-items:center;gap:4px}
.num button{padding:5px 10px}
.num input{width:56px;text-align:center}

/* ---------- giriş ---------- */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--bg)}
.lcard{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 12px 32px rgba(15,26,43,.08)}
.llogo{padding:32px 28px 24px;border-bottom:1px solid var(--line2);text-align:center}
.llogo img{height:56px;width:auto;max-width:100%;display:inline-block}
.lbody{padding:16px 28px 28px}
.lbody label.field{margin-top:12px}
.lbody input{width:100%;padding:10px 12px;border-radius:8px;font-size:15px}
.lerr{margin-top:12px;padding:9px 12px;border-radius:8px;background:var(--badbg);color:var(--bad);border:1px solid #f3c6c1;font-size:13px;font-weight:600}
.lbtn{width:100%;margin-top:18px;padding:11px 14px;font-size:15px;border-radius:8px}
@media (max-width:480px){.llogo{padding:24px 20px 18px}.lbody{padding:12px 20px 22px}}

/* ---------- takvim ---------- */
.tk{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px 10px;user-select:none;max-width:420px}
.tk-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.tk-ay{font-weight:600;color:var(--heading);font-size:14px}
.tk-nav{background:var(--surface);color:var(--heading);border:1px solid var(--line);padding:0 11px;font-size:18px;line-height:1.4;border-radius:var(--rs)}
.tk-nav:hover{background:var(--surface2);border-color:var(--line);color:var(--heading)}
.tk-nav:disabled,.tk-nav:disabled:hover{background:var(--surface);opacity:.35;cursor:default}
.tk-w,.tk-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.tk-w span{text-align:center;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;padding:2px 0 6px;letter-spacing:.03em}
.tk-c{min-height:46px}
.tk-g{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:var(--surface);color:var(--text);border:1px solid var(--line2);border-radius:6px;padding:4px 2px;font-weight:600;font-size:13px;cursor:pointer;white-space:normal;line-height:1.1}
.tk-g:hover{background:var(--surface2);border-color:var(--line);color:var(--text)}
.tk-s{font-size:10px;font-weight:600;color:var(--muted);line-height:1}
.tk-g.acik{border-color:#bfe0ca;background:var(--okbg);color:var(--ok)}
.tk-g.acik:hover{background:#d5ebdc;border-color:#9fd1b0;color:var(--ok)}
.tk-g.acik .tk-s{color:var(--ok)}
.tk-g.kapali{border-color:#f3c6c1;background:var(--badbg);color:var(--bad)}
.tk-g.kapali:hover{background:#f9d9d5;color:var(--bad)}
.tk-g.kapali .tk-s{color:var(--bad)}
.tk-g.bugun{box-shadow:inset 0 0 0 1px var(--primary)}
.tk-g.secili,.tk-g.secili:hover{background:var(--primary);border-color:var(--primary);color:#fff}
.tk-g.secili .tk-s{color:#cfe8d8}
.tk-g.pasif,.tk-g.pasif:hover{background:var(--surface);color:#b5bcc6;border-color:var(--line2);cursor:default;opacity:1}
.tk-g.pasif.kapali,.tk-g.pasif.kapali:hover{background:var(--badbg);border-color:#f6d5d1;color:#d98a92}
.tk-g.pasif.kapali .tk-s{color:#d98a92}
.tk-g.gecmis,.tk-g.gecmis:hover{background:var(--surface2);color:#b5bcc6;border-color:var(--line2)}
.tk-leg{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;padding-top:8px;border-top:1px solid var(--line2);font-size:11px;color:var(--muted)}
.tk-leg i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px;border:1px solid var(--line)}
.tk-leg i.acik{background:var(--okbg);border-color:#bfe0ca}.tk-leg i.kapali{background:var(--badbg);border-color:#f3c6c1}.tk-leg i.yok{background:var(--surface)}.tk-leg i.secili{background:var(--primary);border-color:var(--primary)}
.tk-sel{margin-top:8px}
.dsel{border:1px solid var(--line);border-radius:8px;overflow:hidden}
.dsrow{display:flex;align-items:center;gap:10px;padding:7px 10px;border-top:1px solid var(--line2);font-size:13.5px}
.dsrow:first-child{border-top:0}
.dsrow .dsd{flex:1;font-weight:600;color:var(--heading)}
.dsrow .num input{width:40px;padding:3px 4px;text-align:center;font-weight:600}
.dsrow .num button{padding:3px 8px}
.dsrm{cursor:pointer;color:var(--muted);padding:0 4px;font-size:15px}.dsrm:hover{color:var(--bad)}
.tk-sel .chip{margin:0;cursor:default}
.tk-sel .chip b{margin-left:7px;cursor:pointer;opacity:.8;font-size:13px}.tk-sel .chip b:hover{opacity:1}
.tk-sel button.sm{padding:3px 9px;font-size:12px}

/* ---------- kota takvimi ---------- */
.kotagrid{grid-template-columns:minmax(300px,420px) 1fr}
.daytab td{padding:10px 12px;font-variant-numeric:tabular-nums;white-space:nowrap}
.daytab tr.on td{background:var(--surface2)!important}
.daytab tr.on .c1{color:var(--primary)}
.daytab tr.kapali td{color:var(--muted)}
.daytab .bar{margin-top:4px}
@media (max-width:1100px){.kotagrid{grid-template-columns:1fr}}

/* ---------- vardiya satırları ---------- */
.shiftpick,.shlist{display:flex;flex-direction:column;gap:6px}
.shrow{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-left:4px solid #cfd5dc;border-radius:var(--rs);padding:9px 12px;font-size:14px;cursor:pointer}
.shrow.yesil{border-left-color:#22a35a}.shrow.mavi{border-left-color:#3b7dd8}.shrow.kirmizi{border-left-color:#e0493b}
.shrow:hover{background:var(--surface2)}
.shrow input{margin:0}
.shno{font-weight:600;color:var(--heading);min-width:84px}
.shtime{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.3px}
.shst{margin-left:auto;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.shst.yesil{color:var(--ok)}.shst.mavi{color:var(--blue)}.shst.kirmizi{color:var(--bad)}
.mdl .shrow{font-size:15px;padding:11px 14px;cursor:default}
.mdl .shtime{font-size:17px}

/* ---------- barkod ---------- */
.barkod{text-align:center;margin-top:12px;padding:14px 12px 10px;border:1px solid var(--line);border-radius:var(--rs);background:var(--surface)}
.barkod img{width:min(100%,440px);height:auto;image-rendering:pixelated;image-rendering:crisp-edges}
.barkod .bno{font-family:Consolas,"Cascadia Mono",monospace;font-size:20px;letter-spacing:.25em;font-weight:700;color:var(--heading);margin-top:6px}

@media (max-width:900px){.wrap{grid-template-columns:1fr;padding:12px}.grid2{grid-template-columns:1fr}header{padding:0 14px}.fh-name h1{font-size:18px}}
/* Tüm talimatlar sayfası */
.talbar{margin:0 0 10px;padding:8px 0;border-bottom:1px solid var(--line2)}
.talbar label{gap:6px;cursor:pointer}
.taltab th.ck,.taltab td.ck{width:34px;padding-left:12px;padding-right:0;text-align:center}
.taltab tr.on td{background:var(--surface2)}
