:root{--modra:#1d4f91;--modra2:#e8eef8;--seda:#6b7280;--okraj:#d9dee6;--pozadi:#f5f7fa;--cervena:#b42318;--zelena:#067647;font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#1f2937}
*{box-sizing:border-box}body{margin:0;background:var(--pozadi)}
a{color:var(--modra)}h1{font-size:1.5rem;margin:.2rem 0 1rem}h2{font-size:1.15rem;margin:0 0 .8rem}
header{display:flex;align-items:center;gap:1rem;background:var(--modra);color:#fff;padding:.5rem 1rem;position:sticky;top:0;z-index:5;flex-wrap:wrap}
.logo{color:#fff;text-decoration:none;font-weight:700;font-size:1.15rem}.logo span{font-weight:400;opacity:.85}
#menu{display:flex;gap:.25rem;flex:1;flex-wrap:wrap}#menu a{color:#fff;text-decoration:none;padding:.45rem .75rem;border-radius:6px}
#menu a.akt,#menu a:hover{background:rgba(255,255,255,.18)}
header .tl-tichy{color:#fff;border-color:rgba(255,255,255,.4);background:transparent}
main{max-width:1200px;margin:0 auto;padding:1rem;outline:none}
.karta{background:#fff;border:1px solid var(--okraj);border-radius:10px;padding:1rem;margin-bottom:1rem}
details.karta>summary{cursor:pointer;font-weight:600;color:var(--modra)}details[open]>summary{margin-bottom:.8rem}
label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;color:#374151}
input,select,textarea{font:inherit;padding:.55rem .65rem;border:1px solid var(--okraj);border-radius:7px;background:#fff;min-height:44px;width:100%}
input:focus,select:focus,textarea:focus,.tl:focus-visible{outline:3px solid #9cc0f5;outline-offset:1px;border-color:var(--modra)}
.mrizka{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem;align-items:end}.siroke{grid-column:1/-1}
.radek{display:flex;gap:.8rem;align-items:end;flex-wrap:wrap}.radek label{width:auto}
.tl{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;font:inherit;padding:.5rem .9rem;min-height:44px;border-radius:7px;border:1px solid var(--okraj);background:#fff;color:#1f2937;cursor:pointer;text-decoration:none;white-space:nowrap}
.tl:hover{background:var(--modra2)}.tl:disabled{opacity:.5;cursor:default}
.tl-hlavni{background:var(--modra);color:#fff;border-color:var(--modra);font-weight:600}.tl-hlavni:hover{background:#163d71}
.tl-tichy{min-height:36px;padding:.3rem .7rem;font-size:.9rem}.tl-cervene{color:var(--cervena)}
.velke{min-height:56px;font-size:1.1rem}
.tiche{color:var(--seda);font-size:.9rem}.nacitam{color:var(--seda)}
.tabulka-obal{overflow-x:auto;background:#fff;border:1px solid var(--okraj);border-radius:10px;margin-bottom:1rem}
.karta .tabulka-obal{border:0}
.tab{border-collapse:collapse;width:100%}.tab th,.tab td{padding:.55rem .7rem;border-bottom:1px solid #edf0f4;text-align:left;vertical-align:middle}
.tab th{font-size:.82rem;color:var(--seda);font-weight:600;background:#fafbfc}.cislo{text-align:right!important;font-variant-numeric:tabular-nums}
.soucet td{font-weight:700;background:#fafbfc}tr.neaktivni{opacity:.55}
.hledej{margin-bottom:.8rem;max-width:420px}
.stav{display:inline-block;font-size:.78rem;padding:.1rem .5rem;border-radius:99px;background:#eef1f5;color:#374151;vertical-align:middle;font-weight:600}
.s-realizace{background:#e8eef8;color:var(--modra)}.s-hotovo{background:#e7f6ec;color:var(--zelena)}.s-schvaleno{background:#fff6e0;color:#8a5a00}.s-fakturovano{background:#f0eafa;color:#5b2ea6}
.upload{border:2px dashed #b8c4d6;border-radius:10px;padding:1.2rem;text-align:center;cursor:pointer;align-items:center;background:#fafcff}
.upload.nad{border-color:var(--modra);background:var(--modra2)}.upload span{color:var(--seda);font-size:.88rem}
.radek-prubeh{display:flex;gap:.6rem;align-items:center;margin:.4rem 0}.radek-prubeh progress{flex:1}
.soubory{list-style:none;padding:0;margin:.8rem 0 0}.soubory li{display:flex;gap:.8rem;align-items:center;padding:.55rem 0;border-bottom:1px solid #edf0f4;flex-wrap:wrap}
.nahled{width:56px;height:56px;border-radius:6px;background:#eef1f5;display:flex;align-items:center;justify-content:center;overflow:hidden;flex:none;text-decoration:none}
.nahled img{width:100%;height:100%;object-fit:cover}.pripona{font-weight:700;font-size:.8rem;color:var(--modra)}
.info{flex:1;min-width:180px;display:flex;flex-direction:column;word-break:break-word}.akce{display:flex;gap:.4rem;flex-wrap:wrap}
.zalozky{display:flex;gap:.3rem;margin-bottom:1rem}.zalozky a{padding:.5rem .9rem;border-radius:7px;text-decoration:none;border:1px solid var(--okraj);background:#fff}
.zalozky a.akt{background:var(--modra);color:#fff;border-color:var(--modra)}
.rychle{display:flex;flex-direction:column;gap:1rem;max-width:560px}
.dlazdice{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;max-height:260px;overflow:auto}
.dlazdice-tl{font:inherit;display:flex;flex-direction:column;align-items:flex-start;padding:.6rem;border:2px solid var(--okraj);border-radius:8px;background:#fff;cursor:pointer;min-height:56px;text-align:left}
.dlazdice-tl b{font-size:1.15rem}.dlazdice-tl span{font-size:.78rem;color:var(--seda);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.dlazdice-tl.vybrano{border-color:var(--modra);background:var(--modra2)}
.hodiny-volba{display:flex;flex-direction:column;gap:.5rem}.hodiny-volba>span{font-size:.9rem;color:#374151}
.pocitadlo{display:flex;gap:.5rem}.pocitadlo input{text-align:center;font-size:1.4rem;font-weight:700;min-height:56px}.pocitadlo .tl{min-width:64px;font-size:1.5rem}
.rychle-h{display:grid;grid-template-columns:repeat(6,1fr);gap:.4rem}.rychle-h .tl{padding:.3rem;min-height:56px;font-size:1rem}
.zaznamy{list-style:none;padding:0;margin:0}.zaznamy li{display:flex;gap:.6rem;align-items:center;padding:.5rem 0;border-bottom:1px solid #edf0f4}.zaznamy li>span{flex:1}
.tyden-hlava{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-bottom:.8rem}.vedle{flex-direction:row;align-items:center;gap:.5rem;margin-left:auto}.vedle select{width:auto}
.mrizka-h td{padding:.25rem}.mrizka-h th.dnes{color:var(--modra);background:var(--modra2)}
.bunka{width:4.2rem;min-height:40px;text-align:right;padding:.35rem .45rem;font-variant-numeric:tabular-nums}
.bunka.uklada{background:#fffbe6}.bunka.ulozeno{background:#e7f6ec}.bunka.spatne{border-color:var(--cervena);background:#fdecea}
.tyden-pridat{display:flex;gap:.6rem;margin-top:.8rem;flex-wrap:wrap}.tyden-pridat input{max-width:320px}
.vykaz h2{display:flex;justify-content:space-between}.celkem{color:var(--modra)}
.odkaz{display:flex;flex-direction:column;gap:.5rem;background:#f3f8ff}
.prihlaseni{max-width:380px;margin:12vh auto;display:flex;flex-direction:column;gap:1rem}.prihlaseni h1{text-align:center;color:var(--modra)}
#hlaska{position:fixed;left:50%;bottom:1.2rem;transform:translate(-50%,150%);background:#1f2937;color:#fff;padding:.7rem 1.1rem;border-radius:8px;transition:transform .2s;z-index:20;max-width:92vw}
#hlaska.ukaz{transform:translate(-50%,0)}#hlaska.chyba{background:var(--cervena)}
.akce-r{display:flex;gap:.3rem;flex-wrap:wrap}
@media (max-width:640px){main{padding:.6rem}header{padding:.4rem .6rem;gap:.4rem}#menu a{padding:.4rem .5rem}.rychle-h{grid-template-columns:repeat(3,1fr)}
 .tab th,.tab td{padding:.45rem .4rem}.vedle{margin-left:0}}
@media print{header,.tisk-skryt,#hlaska{display:none!important}body{background:#fff}.karta{border:0;padding:0}}

/* A2/A3 (oponentura) */
.bunka-det{font:inherit;background:none;border:0;padding:4px 8px;color:inherit;text-decoration:underline dotted;cursor:pointer}
.bunka-det:focus-visible{outline:2px solid currentColor}
.chyba-pole{color:#b3261e;font-weight:600;min-height:1.2em;display:block}
dialog.karta{max-width:640px;width:calc(100% - 32px)}
dialog::backdrop{background:rgba(0,0,0,.4)}
@media print{dialog{display:none}}

/* v0.1.3: AC-17 náhled, AC-22 Vrátit, AC-24 offline, AC-41 prázdno, AC-42 skeleton, AC-27 ✓ */
dialog.nahled-dlg{max-width:min(1100px,96vw)}
.nahled-dlg img{max-width:100%;max-height:75vh;display:block;margin:auto}
.nahled-dlg iframe{width:100%;height:75vh;border:0}
#hlaska button{min-height:44px;min-width:44px;margin-left:.6rem;color:#fff;border-color:#fff}
.offline{position:sticky;top:0;z-index:30;background:var(--cervena);color:#fff;padding:.6rem 1rem;text-align:center;font-weight:600}
.prazdno{text-align:center;padding:2rem 1rem}.prazdno p{font-size:1.15rem;margin:0 0 1rem}
.skeleton{padding:2rem;border-radius:8px;color:#6b7280;background:linear-gradient(90deg,#eee 25%,#f6f6f6 50%,#eee 75%);background-size:200% 100%;animation:sk 1.2s infinite}
@keyframes sk{to{background-position:-200% 0}}
.ok{color:#15803d;font-weight:700;margin-right:.3rem}
.bunka[aria-invalid="true"]{outline:2px solid var(--cervena)}
.pct{min-width:3.5em;text-align:right}

/* v0.2: materiál a nástroje */
.puv{display:inline-block;font-size:.78rem;padding:.1rem .5rem;border-radius:99px;font-weight:600}
.puv.dok{background:#FFF4D6;color:#6B4A00}.puv.skl{background:#eef1f5;color:#374151}
.segm{display:flex;gap:.4rem;margin-top:.25rem}.segm .tl{flex:1}.segm .tl[aria-pressed="true"]{background:var(--modra);color:#fff;border-color:var(--modra)}
[data-druh] .radek{justify-content:space-between;align-items:center;margin-bottom:.6rem}[data-druh] h2{margin:0}
[aria-invalid="true"]{border-color:var(--cervena)}
@media (max-width:700px){#fp.mrizka{grid-template-columns:1fr}}
