/* ═══════════════════════════════════════════════════════════════════
   POSS — sdílené jádro (F2): tokeny dispečinku, login, hlavička,
   komponenty pro stránky modulů (/stoly/sklad, /stoly/ucetnictvi, …).
   Board /stoly/index.html má stejné tokeny inline (historicky).
   ═══════════════════════════════════════════════════════════════════ */
:root{
--red:#C41E1E;--red-d:#7F1D1D;--red-b:#EF4444;--red-g:rgba(196,30,30,.3);--rose:#FCA5A5;
--ok:#34D399;--warn:#FBBF24;--info:#60A5FA;--cash:#4ADE80;--gold:#D97706;--r:10px;--r2:14px;--rr:9999px;
--bg:#0A0A0C;--bg2:#131316;--bg3:rgba(19,19,22,.88);--bgE:rgba(35,30,40,.55);
--tx:#F4F4F5;--tx2:rgba(244,244,245,.6);--tx3:rgba(244,244,245,.35);
--bdr:rgba(196,30,30,.18);--bdr2:rgba(255,255,255,.06);--shadow:0 4px 20px rgba(0,0,0,.5);
--gradient-bg:radial-gradient(ellipse 55% 45% at 12% 18%,rgba(196,30,30,.08) 0%,transparent 70%),radial-gradient(ellipse 45% 55% at 88% 80%,rgba(127,29,29,.06) 0%,transparent 70%),var(--bg);
--ff:'Garet','Segoe UI',system-ui,sans-serif;
--hdr2:rgba(10,10,12,.95);
}
[data-theme="light"]{
--red-b:#B91C1C;--rose:#DC2626;--warn:#B45309;--ok:#047857;--info:#1D4ED8;--cash:#047857;
--bg:#F7F2E6;--bg2:#FFFDF7;--bg3:rgba(255,253,247,.94);--bgE:rgba(60,45,25,.07);
--tx:#1A1518;--tx2:rgba(26,21,24,.64);--tx3:rgba(26,21,24,.42);
--bdr:rgba(196,30,30,.28);--bdr2:rgba(26,21,24,.12);--shadow:0 4px 20px rgba(26,21,24,.14);
--hdr2:rgba(247,242,230,.95);
--gradient-bg:radial-gradient(ellipse 55% 45% at 12% 18%,rgba(196,30,30,.05) 0%,transparent 70%),var(--bg);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html,body{min-height:100%}
body{font-family:var(--ff);background:var(--gradient-bg);color:var(--tx);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;min-height:100dvh;touch-action:manipulation}
[hidden]{display:none!important}
button{font:inherit;border:none;cursor:pointer;background:none;color:inherit}
input,select,textarea{font-family:var(--ff);background:var(--bg3);color:var(--tx);border:1px solid var(--bdr2);border-radius:var(--r);padding:9px 11px;font-size:14px;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--red-g)}
a{color:var(--info);text-decoration:none}
code{font-family:'SF Mono','Consolas',monospace;font-size:11px;color:var(--tx2)}
@keyframes mu{from{opacity:0;transform:scale(.94)}to{opacity:1}}
.ic{width:1.05em;height:1.05em;vertical-align:-.16em;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ic-lg{width:1.45em;height:1.45em;vertical-align:-.28em}
.ic-xl{width:2.2em;height:2.2em;vertical-align:middle;stroke-width:1.4}
.ic-ok{color:var(--ok)}.ic-bad{color:var(--red-b)}.ic-warn{color:var(--warn)}
.ic-fill{fill:currentColor;stroke:none}

/* ═══ LOGIN (dispečink 1:1) ═══ */
.login{position:fixed;inset:0;z-index:500;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;transition:opacity .4s,transform .4s}
.login.gone{opacity:0;transform:scale(1.05);pointer-events:none}
.login-mark{width:86px;height:86px;flex:none;margin-bottom:14px;filter:drop-shadow(0 6px 24px var(--red-g))}
.login-ucet{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--tx3);margin-bottom:4px;min-height:14px}
.login-t{font-weight:700;font-size:24px;background:linear-gradient(135deg,var(--red-b),var(--rose));-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:4px}
.login-s{color:var(--tx3);font-size:13px;margin-bottom:28px;text-align:center}
.login-grid{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:400px}
.login-btn{width:95px;padding:14px 8px;border-radius:var(--r2);background:var(--bg3);border:1px solid var(--bdr2);display:flex;flex-direction:column;align-items:center;gap:6px;font-weight:700;font-size:13px;transition:all .2s}
.login-btn:active{transform:scale(.95)}
.login-av{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--red-d),var(--red));display:grid;place-items:center;font-size:18px;font-weight:700;color:#fff;border:2px solid var(--bdr)}
.login-btn.admin .login-av{background:linear-gradient(135deg,#92400E,var(--gold));border-color:rgba(251,191,36,.4)}
.login-name{max-width:85px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.login-rank{font-size:9px;color:var(--tx3);margin-top:2px}
.setup-card{width:100%;max-width:320px;background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r2);padding:20px;animation:mu .25s ease}
.pw-modal{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.8);display:none;align-items:center;justify-content:center;padding:20px}
.pw-modal.sh{display:flex}
.pw-in{width:100%;max-width:320px;background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r2);padding:24px 20px;animation:mu .25s ease}
.pw-t{font-weight:700;font-size:18px;color:var(--gold);margin-bottom:4px}
.pw-s{font-size:12px;color:var(--tx3);margin-bottom:16px}
.pw-inp{width:100%;padding:14px;border-radius:var(--r);border:2px solid var(--bdr);background:var(--bgE);color:var(--tx);font-size:16px;text-align:center;-webkit-appearance:none}
.pw-inp:focus{outline:none;border-color:var(--gold)}
.pw-err{font-size:11px;color:var(--red-b);text-align:center;margin-top:6px;min-height:16px}
.pw-btns{display:flex;gap:8px;margin-top:14px}
.pw-x,.pw-ok{flex:1;padding:12px;border-radius:var(--r);font-weight:700;font-size:14px}
.pw-x{background:var(--bgE);color:var(--tx2)}
.pw-ok{background:linear-gradient(135deg,#92400E,var(--gold));color:#fff}
.pw-x:active,.pw-ok:active{transform:scale(.95)}

/* ═══ HLAVIČKA ═══ */
.hdr{flex-shrink:0;position:sticky;top:0;z-index:100;background:linear-gradient(180deg,var(--bg) 55%,var(--hdr2));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--bdr);padding:8px 12px}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:9px;min-width:0}
.brand-ico{width:32px;height:32px;border-radius:50%;box-shadow:0 2px 10px var(--red-g);flex-shrink:0}
.brand-ico svg{width:100%;height:100%;display:block}
.brand-t{font-weight:700;font-size:15px;background:linear-gradient(135deg,var(--red-b),var(--rose));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.brand-s{font-size:7.5px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:1.5px}
.hdr-r{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.hbtn{padding:7px 11px;border-radius:var(--rr);background:var(--bg3);border:1px solid var(--bdr2);font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:5px;color:var(--tx)}
.hbtn:active{transform:scale(.95)}
.hbtn.gold{background:linear-gradient(135deg,#92400E,var(--gold));color:#fff;border-color:transparent}
.hbtn.on{background:linear-gradient(135deg,var(--red-d),var(--red));color:#fff;border-color:transparent}
.me{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700}
.me-av{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--red-d),var(--red));display:grid;place-items:center;font-size:13px;border:2px solid var(--bdr);color:#fff}
.podnik-sel{width:auto;padding:7px 11px;border-radius:var(--rr);background:var(--bg3);color:var(--tx);border:1px solid var(--bdr);font-size:12px;font-weight:700}
.modnav{display:flex;gap:4px;flex-wrap:wrap}

/* ═══ OBSAH ═══ */
main.poss{flex:1;padding:12px;display:grid;gap:12px;align-content:start;max-width:1400px;width:100%;margin:0 auto}
.tabs{display:flex;gap:6px;flex-wrap:wrap}
.card{background:var(--bg2);border:1px solid var(--bdr2);border-radius:var(--r2);padding:12px}
.card-t{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--tx3);margin-bottom:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.card-t .sp{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;text-transform:none;letter-spacing:0}
.empty{color:var(--tx3);font-size:12.5px;padding:8px 0}
.itm-sub{font-size:10.5px;color:var(--tx3);font-weight:400}
.cats{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.cat-chip{padding:6px 11px;border-radius:var(--rr);background:var(--bg3);border:1px solid var(--bdr2);font-size:12px;font-weight:700;white-space:nowrap;transition:transform .13s cubic-bezier(.2,.9,.3,1.3)}
.cat-chip:active{transform:scale(.95)}
.cat-chip.on{background:linear-gradient(135deg,var(--red-d),var(--red));color:#fff;border-color:transparent}
.frm{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.frm input,.frm select{width:100%}
.frm .wide{grid-column:1/-1}
.lbl{font-size:10.5px;color:var(--tx3);font-weight:700;display:block;margin-bottom:3px}
.row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--bdr2);flex-wrap:wrap}
.row:last-child{border-bottom:none}
.row-n{flex:1;min-width:120px;font-size:13px;font-weight:700}
.tag{font-size:10px;padding:2px 7px;border-radius:var(--rr);border:1px solid var(--bdr2);color:var(--tx2);white-space:nowrap}
.tag.gold{color:var(--warn);border-color:rgba(251,191,36,.4)}
.tag.bad{color:var(--red-b);border-color:rgba(239,68,68,.4)}
.tag.okt{color:var(--ok);border-color:rgba(52,211,153,.4)}
.tag.info{color:var(--info);border-color:rgba(96,165,250,.4)}
.btn{padding:10px 14px;border-radius:var(--r);font-weight:700;font-size:13px;background:var(--bg3);border:1px solid var(--bdr2);color:var(--tx);display:inline-flex;align-items:center;gap:6px;transition:transform .13s cubic-bezier(.2,.9,.3,1.3),filter .15s}
.btn:active{transform:scale(.93);filter:brightness(1.15)}
.btn.sm{padding:6px 10px;font-size:12px}
.btn.red{background:linear-gradient(135deg,var(--red-d),var(--red));color:#fff;border-color:transparent}
.btn.gold{background:linear-gradient(135deg,#92400E,var(--gold));color:#fff;border-color:transparent}
.btn.okb{background:rgba(52,211,153,.15);border-color:rgba(52,211,153,.4);color:var(--ok)}
.btn.danger{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.35);color:var(--red-b)}
.btn.on{background:rgba(52,211,153,.15);border-color:rgba(52,211,153,.4);color:var(--ok)}
.btn:disabled{opacity:.45;pointer-events:none}
@media(pointer:coarse){.btn{min-height:44px}.btn.sm{min-height:40px}}

/* tabulky */
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.t{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
table.t th{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--tx3);font-weight:700;text-align:left;padding:8px 8px;border-bottom:1px solid var(--bdr2);white-space:nowrap}
table.t td{padding:8px 8px;border-bottom:1px solid var(--bdr2);vertical-align:middle}
table.t tr:last-child td{border-bottom:none}
table.t .r{text-align:right}
table.t input,table.t select{padding:6px 8px;font-size:13px}
.mini{font-size:11px;color:var(--tx3)}
.ok-t{color:var(--ok)}.bad-t{color:var(--red-b)}.warn-t{color:var(--warn)}

/* dlaždice souhrnu */
.dlaz{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.dl{background:var(--bg2);border:1px solid var(--bdr2);border-radius:var(--r2);padding:12px 14px}
.dl-t{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--tx3);font-weight:700}
.dl-v{font-size:22px;font-weight:800;margin-top:4px;font-variant-numeric:tabular-nums}
.dl-p{font-size:11px;color:var(--tx3);margin-top:2px}
.dl.ok .dl-v{color:var(--ok)}.dl.bad .dl-v{color:var(--red-b)}.dl.warn .dl-v{color:var(--warn)}

/* modal + toasty */
.mo{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.72);display:none;align-items:flex-start;justify-content:center;padding:24px 12px;overflow:auto}
.mo.sh{display:flex}
.mo-in{width:100%;max-width:640px;background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r2);padding:18px;animation:mu .25s ease}
.mo-t{font-weight:700;font-size:17px;background:linear-gradient(135deg,var(--red-b),var(--rose));-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:10px}
.mo-btns{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px}
.toasts{position:fixed;top:12px;right:12px;z-index:800;display:flex;flex-direction:column;gap:8px;max-width:320px}
.toast{background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r);padding:10px 14px;font-size:13px;box-shadow:var(--shadow);animation:mu .25s ease}
.toast.ok{border-color:rgba(52,211,153,.4)}
.toast.warn{border-color:rgba(251,191,36,.4)}
.drop{margin:8px 0;border:2px dashed var(--bdr);border-radius:var(--r2);padding:22px 14px;text-align:center;color:var(--tx3);font-size:13px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px}
.drop.je-nad{border-color:var(--gold);color:var(--tx)}
.drop svg{width:26px;height:26px}
.graf{display:flex;align-items:flex-end;gap:2px;height:90px;padding:6px 0}
.graf-s{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:2px;min-width:0}
.graf-b{width:100%;background:linear-gradient(180deg,var(--red-b),var(--red-d));border-radius:3px 3px 0 0;min-height:0}
.graf-s span{font-size:9px;color:var(--tx3)}
.blokovano{max-width:520px;margin:40px auto;text-align:center}
@media(max-width:640px){main.poss{padding:8px}.card{padding:10px}.hdr{padding:6px 8px}}
@media print{.hdr,.toasts,.login,.pw-modal{display:none!important}body{background:#fff;color:#000}.card{border-color:#ccc}}
