/* Sdílený vizuální základ Zvol si info pro samostatné nástroje v public/
   (/nomofobie, /anketa). Odkazuje se na něj relativně: ../zsi/zsi.css,
   takže stránky fungují i po dvojkliku z disku, ne jen přes server.

   Proč to není společné i s /ai-test: ten je popsaný v kontext/ai-testik_1/NAVOD.md
   jako balík, který se předává jako jedna složka a otevře se i z file://.
   Má proto vlastní kopii zsi.css a fontů. Když se tady mění barvy nebo fonty,
   je potřeba je změnit i tam.
*/

/* Fonty Montserrat a Geist self-hosted (Fontsource, SIL OFL) místo Google Fonts:
   účastníci tak neposílají IP adresu Googlu a CSP může mít font-src 'self'.
   Jen latin + latin-ext (čeština), ostatní subsety nejsou potřeba. */
@font-face{font-family:"Montserrat";font-style:normal;font-weight:600;font-display:swap;src:url(fonty/montserrat-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:600;font-display:swap;src:url(fonty/montserrat-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:700;font-display:swap;src:url(fonty/montserrat-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:700;font-display:swap;src:url(fonty/montserrat-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:800;font-display:swap;src:url(fonty/montserrat-latin-800-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:800;font-display:swap;src:url(fonty/montserrat-latin-ext-800-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Geist";font-style:normal;font-weight:400;font-display:swap;src:url(fonty/geist-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Geist";font-style:normal;font-weight:400;font-display:swap;src:url(fonty/geist-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Geist";font-style:normal;font-weight:500;font-display:swap;src:url(fonty/geist-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Geist";font-style:normal;font-weight:500;font-display:swap;src:url(fonty/geist-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Geist";font-style:normal;font-weight:700;font-display:swap;src:url(fonty/geist-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Geist";font-style:normal;font-weight:700;font-display:swap;src:url(fonty/geist-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* Zvol si info: vizuální styl (brand manuál 2024) */
:root{
  --red:#FF272D; --red-dark:#B60115; --red-light:#FF9396;
  --pink-1:#FFEBEC; --pink-2:#FFD7D8; --pink-3:#FFC2C4;
  --brown:#3F0207; --brown-2:#70000A;
  --grey:#999999; --grey-light:#E9DCDC; --white:#FFFFFF;
  --display:"Nohemi","Montserrat",system-ui,sans-serif;
  --body:"Geist",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{color-scheme:light}
body{margin:0;background:var(--pink-1);color:var(--brown);font-family:var(--body);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--red-dark)}
button{font:inherit;color:inherit}
.top{background:var(--red);color:var(--white);padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{font-family:var(--display);font-weight:800;font-size:18px;letter-spacing:-.01em;color:var(--white)}
.top .tag{font-size:13px;font-weight:500;opacity:.92;letter-spacing:.04em;text-transform:uppercase}
h1,h2,h3{font-family:var(--display);line-height:1.15;text-wrap:balance;margin:0}
h1{font-size:30px;font-weight:800;letter-spacing:-.02em}
h2{font-size:22px;font-weight:700}
p{margin:0}
.card{background:var(--white);border-radius:22px;padding:26px 24px;display:flex;flex-direction:column;gap:18px}
.lead{font-size:18px}
.muted{color:var(--grey);font-size:15px}
.area{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--red-dark);font-weight:700}
.btn{appearance:none;border:0;border-radius:999px;background:var(--red);color:var(--white);padding:15px 26px;font-weight:700;font-size:17px;cursor:pointer;transition:background .15s,transform .1s;text-decoration:none;display:inline-block}
.btn:hover{background:var(--red-dark)}
.btn:active{transform:scale(.98)}
.btn:disabled{background:var(--pink-3);cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--brown-2);padding:12px 6px;font-weight:500}
.btn.ghost:hover{background:var(--pink-2)}
.btn:focus-visible,.opt:focus-visible,input:focus-visible{outline:3px solid var(--red-dark);outline-offset:3px}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.row.between{justify-content:space-between}
.sep{height:1px;background:var(--grey-light)}
.warn{color:var(--red-dark);font-size:14px}

/* Zelená pro „správná odpověď". Na bílé má kontrast 5,0:1, projde i jako text. */
:root{--green:#1B7A3E;--green-light:#E4F3EA}

/* ---------- Rozvržení stránky ---------- */
.page{max-width:600px;margin:0 auto;padding:24px 18px 60px}
.page.wide{max-width:1280px;padding:22px 22px 60px}
.center{text-align:center}
@media (max-width:420px){.card{padding:22px 18px}}

/* ---------- Ukazatel průběhu ---------- */
.progress{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.bar{flex:1;height:8px;background:var(--pink-2);border-radius:999px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--red);border-radius:999px;transition:width .25s}
.count{font-family:var(--display);font-weight:700;font-size:15px;font-variant-numeric:tabular-nums;color:var(--brown-2)}

/* ---------- Nabídka odpovědí ---------- */
.opts{display:flex;flex-direction:column;gap:10px}
.opt{display:flex;gap:14px;align-items:flex-start;width:100%;text-align:left;background:var(--pink-1);border:2px solid transparent;border-radius:16px;padding:14px 16px;cursor:pointer;transition:background .12s,border-color .12s}
.opt:hover{background:var(--pink-2)}
.opt.on{background:var(--white);border-color:var(--red)}
.opt .k{flex:0 0 32px;height:32px;border-radius:50%;background:var(--white);color:var(--red-dark);font-family:var(--display);font-weight:700;display:grid;place-items:center;font-size:15px}
.opt.on .k{background:var(--red);color:var(--white)}
.opt .t{flex:1;padding-top:3px}

/* ---------- Potvrzení ---------- */
.done{width:84px;height:84px;border-radius:50%;background:var(--red);display:grid;place-items:center;margin:4px auto 0}
.done svg{width:44px;height:44px}
.err{background:var(--pink-2);border-radius:14px;padding:12px 16px;color:var(--red-dark);font-size:15px;margin-bottom:14px}

/* ---------- Hlavička dashboardu ---------- */
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.head h1{font-size:34px}
.live{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--brown-2)}
.live i{width:10px;height:10px;border-radius:50%;background:var(--red);animation:pulse 1.6s infinite}
.live.off i{background:var(--grey);animation:none}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.seg{display:inline-flex;background:var(--white);border-radius:999px;padding:4px}
.seg button{border:0;background:transparent;border-radius:999px;padding:8px 16px;cursor:pointer;font-weight:500;color:var(--brown-2)}
.seg button.on{background:var(--red);color:var(--white);font-weight:700}
input.run{border:2px solid var(--pink-3);border-radius:999px;padding:8px 14px;font:inherit;background:var(--white);color:var(--brown);width:130px}

/* ---------- Dlaždice s čísly ---------- */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.tile{background:var(--white);border-radius:18px;padding:16px 18px}
.tile b{display:block;font-family:var(--display);font-size:38px;font-weight:800;color:var(--red-dark);font-variant-numeric:tabular-nums;line-height:1.05}
.tile.hero{background:var(--red);color:var(--white)}
.tile.hero b{color:var(--white);font-size:56px}
.tile span{font-size:14px;color:inherit;opacity:.85}

/* ---------- Mřížka otázek ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:14px}
.q{background:var(--white);border-radius:20px;padding:18px 20px;display:flex;flex-direction:column;gap:12px;cursor:pointer}
.q h3{font-size:17px;font-weight:700}
.q .num{font-family:var(--display);color:var(--red);font-weight:800;margin-right:6px}
.badge{align-self:flex-start;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--brown-2);background:var(--pink-2);border-radius:999px;padding:3px 10px;margin-top:-6px}

/* ---------- Rozložení odpovědí ---------- */
.dist{display:flex;flex-direction:column;gap:7px}
.drow{display:grid;grid-template-columns:24px 1fr 52px;gap:10px;align-items:center;font-size:14px}
.drow .k{font-family:var(--display);font-weight:700;color:var(--red-dark)}
.drow .track{height:18px;background:var(--pink-1);border-radius:999px;overflow:hidden}
.drow .track i{display:block;height:100%;background:var(--red);border-radius:999px;transition:width .5s ease}
.drow.ok .track i{background:var(--brown-2)}
.drow.spravne .track{background:var(--green-light)}
.drow.spravne .track i{background:var(--green)}
.drow.spravne .k,.drow.spravne .lbl,.drow.spravne .n{color:var(--green)}
.drow .n{font-variant-numeric:tabular-nums;text-align:right;font-weight:700;color:var(--brown-2)}
.drow .lbl{grid-column:2/4;font-size:13px;color:var(--brown-2);line-height:1.3;margin-top:-3px}

/* ---------- Promítací režim ---------- */
.focus{background:var(--white);border-radius:26px;padding:34px 38px;display:flex;flex-direction:column;gap:22px;min-height:60vh}
.focus h2{font-size:34px}
.focus .dist{gap:14px}
.focus .drow{grid-template-columns:44px 1fr 90px;font-size:20px}
.focus .drow .track{height:38px}
.focus .drow .k{font-size:24px}
.focus .drow .lbl{font-size:18px;margin-top:-6px}
.focus .drow .n{font-size:24px}
.nav{display:flex;justify-content:space-between;align-items:center;margin-top:auto}

/* ---------- Doplňky ovládání ---------- */
.btn.small{font-size:15px;padding:11px 20px}
.btn.danger{background:transparent;color:var(--red-dark);box-shadow:inset 0 0 0 2px var(--red-dark)}
.btn.danger:hover{background:var(--red-dark);color:var(--white)}
.data-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}
details summary{cursor:pointer;font-weight:700;color:var(--brown-2);margin-top:22px;list-style:none}
details summary::before{content:"\25B8 ";color:var(--red)}
details[open] summary::before{content:"\25BE "}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
