/* Vzkazy z plesu – společné styly: tmavá „sálová“ modř, papír, zlato, inkoust */
@font-face{font-family:"Caveat";src:url(fonts/Caveat.woff2) format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:"Fraunces";font-style:italic;src:url(fonts/FrauncesItalic.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Nunito";src:url(fonts/Nunito.woff2) format("woff2");font-weight:200 1000;font-display:swap}
:root{
  --night:#0b1222; --night2:#18244a; --paper:#f8f6f1; --ink:#22398a; --ink-soft:#4a5a8f; --gold:#dcbb73; --gold-dk:#86672b;
  --text:#1d2433; --muted:#6a7288; --line:#d6dae4; --ok:#1f7a4d; --warn:#9a6a00; --bad:#b03a2e; --on-night:#e7eaf3; --on-night-muted:#a9b1c8;
  --f-ui:"Nunito",system-ui,-apple-system,"Segoe UI",sans-serif; --f-display:"Fraunces",Georgia,serif; --f-hand:"Caveat","Comic Sans MS",cursive;
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{font-family:var(--f-ui);font-size:16px;line-height:1.5;color:var(--on-night);background:radial-gradient(700px 500px at 30% 0%,var(--night2),var(--night) 75%) fixed,var(--night)}
a{color:var(--gold)}
button,input,textarea,select{font:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* ---------- host (mobil) ---------- */
.host-wrap{max-width:520px;margin:0 auto;padding:max(20px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 40px max(16px,env(safe-area-inset-left));display:grid;gap:18px}
.host-head h1{font-family:var(--f-display);font-style:italic;font-weight:600;font-size:34px;line-height:1.1;margin:8px 0 4px;color:var(--gold)}
.host-head p{margin:0;color:var(--on-night-muted)}
.sheet{background:var(--paper);color:var(--text);border-radius:18px;padding:18px;display:grid;gap:14px;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.lab{display:block;font-size:14px;font-weight:700;color:#505a72;margin-bottom:5px}
.opt{font-weight:500;color:var(--muted)}
.pick{display:flex;gap:12px;align-items:center}
.thumb{width:76px;height:96px;flex:none;border-radius:10px;background:#dfe2ea center/cover no-repeat;display:grid;place-items:center;color:#7d8291;font-size:12px;text-align:center}
.pick-btn{flex:1;text-align:center;font-weight:700;color:var(--ink);background:#eef1fa;border:1.5px dashed #9aa6c9;border-radius:12px;padding:14px 12px;cursor:pointer}
.pick input{position:absolute;width:1px;height:1px;opacity:0}
.sheet textarea,.sheet input[type=text]{width:100%;font-size:17px;border:1px solid #cfd4e1;border-radius:12px;padding:11px 12px;background:#fff;color:var(--text)}
.sheet textarea{resize:none;line-height:1.4}
.counter{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-top:4px;font-variant-numeric:tabular-nums}
.counter b.near{color:var(--warn)} .counter b.full{color:var(--bad)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:#3d4559}
.check input{width:22px;height:22px;flex:none;margin:1px 0 0;accent-color:var(--ink)}
.send{font-weight:800;font-size:17px;background:var(--ink);color:#fff;border:0;border-radius:14px;padding:15px;cursor:pointer}
.send:disabled{opacity:.55;cursor:not-allowed}
.progress{height:6px;border-radius:3px;background:#e2e5ee;overflow:hidden}
.progress div{height:100%;width:0;background:var(--ink);transition:width .2s}
.msg{margin:0;font-weight:700;font-size:15px;min-height:0}
.msg:empty{display:none}
.msg.ok{color:var(--ok)} .msg.warn{color:var(--warn)} .msg.err{color:var(--bad)}
.small{font-size:13px;color:var(--muted);margin:0;line-height:1.45}
.small a{color:var(--ink)}
.mine h2,.info summary{font-family:var(--f-display);font-style:italic;font-weight:600;font-size:22px;color:var(--gold);margin:0 0 8px}
.mine ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.mine li{display:flex;gap:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:10px}
.mthumb{width:54px;height:68px;flex:none;border-radius:8px;background:#2a3350 center/cover no-repeat}
.mbody{min-width:0}
.mbody p{margin:0}
.mstate{font-weight:800;font-size:14px}
.mstate.zobrazen{color:var(--gold)} .mstate.fronta{color:#f0c86a} .mstate.skryt,.mstate.zamitnut{color:var(--on-night-muted)}
.mtext{font-size:14px;color:var(--on-night-muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.mnote{font-size:13px;color:var(--on-night);margin-top:4px!important}
.info{color:var(--on-night-muted);font-size:14px}
.info summary{font-size:17px;cursor:pointer}
.info p{margin:8px 0 0}

/* ---------- kiosek ---------- */
.kiosk{height:100vh;height:100dvh;overflow:hidden;user-select:none;-webkit-user-select:none}
.k-wrap{height:100%;display:grid;grid-template-columns:minmax(300px,30%) 1fr;gap:3vw;padding:3vw}
.k-pad{display:flex;flex-direction:column;gap:1.4vw;min-width:0}
.k-ttl{font-family:var(--f-display);font-style:italic;font-weight:600;font-size:clamp(26px,3vw,48px);color:var(--gold);line-height:1.05}
.k-hint{color:var(--on-night-muted);font-size:clamp(15px,1.4vw,22px)}
.k-num{font-family:var(--f-display);font-style:italic;font-weight:600;font-size:clamp(48px,6vw,96px);color:var(--paper);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:.1em .4em;min-height:1.4em;display:flex;align-items:center;font-variant-numeric:tabular-nums}
.k-num::before{content:"№\00a0";color:var(--gold)}
.k-keys{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:1vw;flex:1;min-height:0}
.k-keys button{font-size:clamp(26px,3vw,48px);font-weight:800;border:0;border-radius:16px;background:rgba(255,255,255,.1);color:var(--on-night);cursor:pointer;touch-action:manipulation}
.k-keys button:active{background:rgba(255,255,255,.22)}
.k-keys .go{background:var(--gold);color:#1b2033;font-size:clamp(18px,2vw,30px)}
.k-keys .del{font-size:clamp(18px,2vw,30px)}
.k-show{display:flex;flex-direction:column;gap:1.4vw;min-width:0;min-height:0}
.k-card{flex:1;min-height:0;background:var(--paper);color:var(--text);border-radius:14px;display:flex;gap:3%;padding:3%;box-shadow:0 2vw 5vw rgba(0,0,0,.4)}
.k-card img{height:100%;aspect-ratio:3/4;object-fit:cover;border-radius:6px;flex:none;max-width:48%}
.k-txt{flex:1;min-width:0;display:flex;flex-direction:column}
.k-meta{display:flex;justify-content:space-between;align-items:baseline}
.k-meta b{font-family:var(--f-display);font-style:italic;font-weight:600;color:var(--gold-dk);font-size:clamp(26px,3vw,52px)}
.k-meta span{color:#8a8f9c;font-weight:700;font-size:clamp(14px,1.4vw,24px)}
.k-komu{font-weight:800;color:var(--gold-dk);font-size:clamp(16px,1.7vw,28px);margin-top:.3em}
.k-msg{flex:1;min-height:0;display:flex;align-items:center;font-family:var(--f-hand);font-weight:500;color:var(--ink);line-height:1.12;overflow:hidden;overflow-wrap:anywhere}
.k-sig{text-align:right;font-family:var(--f-hand);color:var(--ink-soft);font-size:clamp(24px,2.6vw,44px)}
.k-nav{display:flex;gap:1vw;justify-content:space-between;align-items:center}
.k-nav button{font-size:clamp(16px,1.6vw,26px);font-weight:800;border:0;border-radius:14px;background:rgba(255,255,255,.1);color:var(--on-night);padding:.7em 1.2em;cursor:pointer}
.k-nav button:disabled{opacity:.3}
.k-navhint{flex:1;text-align:center;color:var(--on-night-muted);font-weight:700;font-size:clamp(13px,1.15vw,19px);line-height:1.35;padding:0 1vw}
.k-stav{display:inline-block;font-weight:800;font-size:clamp(12px,1.1vw,18px);color:#8a8f9c;border:1.5px solid #cfd3dc;border-radius:99px;padding:.2em .8em;margin:.3vw 0 .2vw}
.k-stav:empty{display:none}
.k-stav.on{background:#e5402e;border-color:#e5402e;color:#fff;animation:kstav 1.6s ease-in-out infinite}
@keyframes kstav{50%{box-shadow:0 0 0 .5vw rgba(229,64,46,.25)}}
.k-err{color:#ffb4a8;font-weight:700;font-size:clamp(16px,1.6vw,24px);min-height:1.5em}
.k-empty{flex:1;display:grid;place-items:center;text-align:center;color:var(--on-night-muted);font-size:clamp(20px,2.2vw,36px);border:2px dashed rgba(255,255,255,.15);border-radius:14px;padding:4vw}
.k-empty b{display:block;font-family:var(--f-display);font-style:italic;color:var(--gold);font-size:1.6em;margin-bottom:.3em}

/* ---------- dozor ---------- */
.dozor{background:#eef0f5;color:var(--text);color-scheme:light}
.d-top{position:sticky;top:0;z-index:5;background:var(--night);color:var(--on-night);padding:10px max(16px,env(safe-area-inset-left));display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}
.d-top h1{font-family:var(--f-display);font-style:italic;font-weight:600;font-size:22px;color:var(--gold);margin:0}
.d-top .who{margin-left:auto;font-size:14px;color:var(--on-night-muted)}
.d-top .who a{color:var(--gold)}
.d-tabs{display:flex;gap:6px;flex-wrap:wrap}
.d-tabs button{border:0;border-radius:999px;padding:7px 14px;font-weight:800;font-size:14px;background:rgba(255,255,255,.1);color:var(--on-night);cursor:pointer}
.d-tabs button[aria-pressed="true"]{background:var(--gold);color:#1b2033}
.d-tabs .n{display:inline-block;min-width:1.6em;margin-left:4px;padding:0 .4em;border-radius:999px;background:rgba(0,0,0,.25);font-variant-numeric:tabular-nums}
.d-banner{background:#fff4d6;color:#6a4b00;border-bottom:1px solid #f0d58f;padding:9px max(16px,env(safe-area-inset-left));font-weight:700;font-size:14px}
.d-main{max-width:1200px;margin:0 auto;padding:16px max(16px,env(safe-area-inset-left)) 60px}
.d-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.d-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.d-card.q{border-color:#f0c86a;box-shadow:0 0 0 2px #f8e3ae}
.d-head{display:flex;gap:12px;padding:12px}
.d-ph{width:78px;height:98px;flex:none;border-radius:8px;background:#e3e6ee center/cover no-repeat}
.d-body{min-width:0;flex:1}
.d-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px;color:var(--muted)}
.d-meta b{font-family:var(--f-display);font-style:italic;color:var(--gold-dk);font-size:18px}
.pill{display:inline-block;font-size:12px;font-weight:800;padding:2px 8px;border-radius:999px;background:#eef0f5;color:#4b5368}
.pill.filtr,.pill.odkaz{background:#fde3df;color:var(--bad)} .pill.karantena,.pill.zk{background:#fff1cc;color:#7a5500}
.pill.blok{background:#3b1d1a;color:#ffd5cf} .pill.nove,.pill.nouzovy{background:#e6ebfa;color:var(--ink)}
.d-komu{font-weight:800;font-size:13px;color:var(--ink);margin-top:4px}
.pill.trida{background:#f3ece2;color:#3a2d27}.pill.t8A{color:#c0301f}.pill.t4C{color:#2e6e4e}.pill.tvsem{color:#9a6c10}
.d-text{margin:6px 0 2px;font-size:15px;line-height:1.4;overflow-wrap:anywhere}
.d-sig{font-size:13px;color:var(--muted)}
.d-act{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px;border-top:1px solid var(--line);background:#fafbfd;margin-top:auto}
.d-act button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 10px;font-weight:700;font-size:13px;cursor:pointer;color:var(--text)}
.d-act button.pri{background:var(--ok);border-color:var(--ok);color:#fff}
.d-act button.bad{color:var(--bad);border-color:#efc2bc}
.d-act .dev{margin-left:auto;color:var(--ink)}
/* Ke kontrole: jedno velké tlačítko, ostatní akce schované pod „další“ */
.d-act button.big{flex:1 1 auto;font-size:17px;padding:13px 16px;border-radius:10px}
.d-card.k .d-act button.bad{padding:13px 14px}
.d-act button:disabled{opacity:.5}
.d-vic{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 10px;background:#fafbfd}
.d-vic[hidden]{display:none}
.d-vic button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 10px;font-weight:700;font-size:13px;cursor:pointer;color:var(--text)}
.d-vic button.bad{color:var(--bad);border-color:#efc2bc}
.d-card.pryc{opacity:0;transform:scale(.97);transition:opacity .2s,transform .2s}
.d-souhrn{grid-column:1/-1;font-weight:800;color:var(--muted,#667)}
.d-souhrn:empty{display:none}
.pill.ceka{background:#fff1cf;color:#8a5a00}.pill.plat{background:#e3f1e8;color:#1f6b3f}.pill.ok{background:#e3f1e8;color:#1f6b3f}.pill.tridni{background:#e3e7f6;color:#2f3d7a}
.n.hot{background:var(--bad,#c0392b)!important;color:#fff!important}
.d-empty{padding:40px 16px;text-align:center;color:var(--muted)}
.d-sec{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:14px}
.d-sec h2{font-family:var(--f-display);font-style:italic;font-weight:600;font-size:20px;margin:0 0 8px}
.d-sec p{margin:0 0 10px;color:var(--muted);font-size:14px}
.d-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.d-row input,.d-row select,.d-sec textarea{border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff;color:var(--text)}
.d-sec textarea{width:100%;min-height:240px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
.d-btn{border:0;border-radius:8px;padding:8px 14px;font-weight:800;background:var(--ink);color:#fff;cursor:pointer}
.d-btn.alt{background:#fff;color:var(--ink);border:1px solid var(--line)}
.d-btn.danger{background:var(--bad)}
.d-toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--night);color:#fff;padding:10px 16px;border-radius:10px;font-weight:700;box-shadow:0 8px 24px rgba(0,0,0,.3);z-index:20}
.d-login{max-width:380px;margin:12vh auto;background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;display:grid;gap:12px}
.d-login h1{font-family:var(--f-display);font-style:italic;font-weight:600;color:var(--ink);margin:0}
.d-login input{border:1px solid var(--line);border-radius:10px;padding:11px 12px;width:100%}
.d-login .err{color:var(--bad);font-weight:700;margin:0}
.d-users{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:6px}
.d-users li{display:flex;gap:10px;align-items:center}
