/* Nastavení — plovoucí ozubené kolo + modální panel s přepínači.
   Barvy JEN přes CSS proměnné (tmavý režim jede sám). Prefix nast-. */

/* ——— plovoucí ozubené kolo (vedle přepínače tématu .tema-prep) ———
   Mobil: v horní liště .mob-lista, odjede s ní (absolute) — nic nepřekrývá (J-25).
   Desktop (≥ 900 px) ho index.html přesune fixně do topbaru. */
.nast-ozub{
  position:absolute;top:calc(9px + env(safe-area-inset-top));right:calc(max(9px,env(safe-area-inset-right)) + 46px);z-index:55;
  width:38px;height:38px;border-radius:50%;
  border:1px solid var(--line);background:var(--bg);color:var(--ink);
  font-size:17px;line-height:1;cursor:pointer;box-shadow:var(--sh);
  display:grid;place-items:center;transition:transform .15s;
}
.nast-ozub:active{transform:scale(.9)}
.nast-ozub:focus-visible{outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 34%,transparent)}

/* ——— overlay + panel ——— */
.nast-overlay{
  position:fixed;inset:0;z-index:1000;
  background:color-mix(in srgb,#000 48%,transparent);
  display:flex;align-items:center;justify-content:center;
  padding:16px;
  animation:nast-fade .18s ease both;
}
.nast-panel{
  width:100%;max-width:440px;max-height:88vh;
  display:flex;flex-direction:column;
  background:var(--bg);color:var(--ink);
  border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh);overflow:hidden;
  animation:nast-vjezd .22s cubic-bezier(.2,.8,.3,1) both;
}
.nast-hlava{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:14px 16px;border-bottom:1px solid var(--line);flex:0 0 auto;
}
.nast-titulek{margin:0;font-size:1.05rem;font-weight:900;color:var(--ink)}
.nast-zavrit{
  flex:0 0 auto;width:34px;height:34px;display:grid;place-items:center;
  border:1px solid var(--line);border-radius:50%;
  background:var(--bg);color:var(--ink);
  font-size:16px;line-height:1;cursor:pointer;
  transition:background .15s,transform .12s;
}
.nast-zavrit:hover{background:var(--bg-soft)}
.nast-zavrit:active{transform:scale(.9)}
.nast-zavrit:focus-visible{outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 34%,transparent)}

.nast-telo{padding:8px 16px 18px;overflow-y:auto;-webkit-overflow-scrolling:touch}

/* ——— řádek s přepínačem ——— */
.nast-radek{
  display:flex;align-items:center;gap:12px;
  padding:14px 2px;border-bottom:1px solid var(--line);
}
.nast-radek:last-child{border-bottom:0}
.nast-radek-ik{
  flex:0 0 auto;width:40px;height:40px;border-radius:12px;
  display:grid;place-items:center;font-size:20px;
  background:var(--bg-soft);
}
.nast-radek-txt{flex:1 1 auto;min-width:0}
.nast-radek-nadpis{font-size:.98rem;font-weight:800;color:var(--ink);line-height:1.25}
.nast-radek-popis{margin-top:2px;font-size:.8rem;font-weight:600;color:var(--ink-soft);line-height:1.4}
.nast-radek.je-disabled{opacity:.5}

/* ——— vlastní přepínač (switch) ———
   VYP: světlá dráha s obrysem --ink-soft a knoflík --ink-soft → ≥ 3 : 1 proti panelu i ve
   tmavém režimu (dřív dráha --line na --bg ≈ 1,5 : 1, A3-33). ZAP: dráha --brand, knoflík --on-brand. */
.nast-switch{
  flex:0 0 auto;position:relative;
  width:50px;height:30px;padding:0;
  border:0;border-radius:999px;cursor:pointer;
  background:var(--bg-soft);
  box-shadow:inset 0 0 0 2px var(--ink-soft);
  transition:background .2s,box-shadow .2s;
}
.nast-switch.je-zap{background:var(--brand);box-shadow:inset 0 0 0 2px var(--brand)}
.nast-switch:disabled{cursor:not-allowed}
.nast-switch:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--ink-soft),0 0 0 4px color-mix(in srgb,var(--brand) 30%,transparent)}
.nast-switch.je-zap:focus-visible{box-shadow:inset 0 0 0 2px var(--brand),0 0 0 4px color-mix(in srgb,var(--brand) 30%,transparent)}
.nast-switch-knob{
  position:absolute;top:5px;left:5px;
  width:20px;height:20px;border-radius:50%;
  background:var(--ink-soft);box-shadow:0 1px 3px rgba(0,0,0,.3);
  transition:transform .2s cubic-bezier(.2,.8,.3,1),background .2s;
}
.nast-switch.je-zap .nast-switch-knob{transform:translateX(20px);background:var(--on-brand,#fff)}

.nast-paticka{
  margin:6px 2px 0;font-size:.76rem;font-weight:600;
  color:var(--ink-soft);line-height:1.45;text-align:center;
}

/* ——— KLIDOVÝ REŽIM: globálně ztlumí rušivé animace/přechody ———
   Zrcadlí chování @media (prefers-reduced-motion:reduce) z index.html. */
html[data-klid] *,
html[data-klid] *::before,
html[data-klid] *::after{
  animation-duration:.001s!important;
  animation-iteration-count:1!important;
  transition-duration:.001s!important;
  scroll-behavior:auto!important;
}

/* ——— segment (2–4 volby): velikost písma, pozadí bloku, klávesnice ——— */
.nast-radek-seg{flex-wrap:wrap}
.nast-seg{display:inline-flex;flex-wrap:wrap;gap:3px;margin-left:auto;padding:3px;
  background:var(--bg-soft);border:1.5px solid var(--line);border-radius:999px}
.nast-seg-btn{border:0;border-radius:999px;background:transparent;color:var(--ink-soft);
  font:inherit;font-weight:800;font-size:.82rem;padding:7px 13px;cursor:pointer;
  transition:background .15s,color .15s}
.nast-seg-btn:active{transform:scale(.96)}
.nast-seg-btn.je-akt{background:var(--brand);color:var(--on-brand,#fff)}
.nast-seg-btn:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 30%,transparent)}

/* ——— časové / datové pole (připomínka, termín zkoušky) ——— */
/* Rámeček pole ≥ 3 : 1 vůči pozadí (WCAG 1.4.11) — --line (≈ 1,2 : 1) je jen na jemné oddělovače. */
.nast-vstup{margin-left:auto;font:inherit;font-weight:700;color:var(--ink);
  background:var(--bg-soft);border:1.5px solid var(--line-strong,var(--ink-soft));border-radius:10px;padding:6px 10px}
.nast-vstup:focus-visible{outline:none;border-color:var(--brand);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 25%,transparent)}
/* tmavý režim: ikona kalendáře / hodin a rozbalovací výběr data jsou systémové → musí vědět, že je tma (R3-13) */
html[data-tema="tmavy"] .nast-vstup{color-scheme:dark}

/* ——— připomínka nejde (nepodporovaný prohlížeč): vysvětlení zůstane plně čitelné ——— */
.nast-radek.je-nepodporovano{opacity:1}
.nast-radek.je-nepodporovano .nast-switch{opacity:.45}

/* ——— hláška u termínu zkoušky ——— */
.nast-chyba{font-size:.8rem;font-weight:700;color:var(--err-ink,var(--err));line-height:1.4}
.nast-chyba:empty{display:none}
.nast-vstup[aria-invalid="true"]{border-color:var(--err-ink,var(--err))}

/* ——— záloha postupu ——— */
.nast-radek-zaloha{align-items:flex-start}
.nast-zaloha-akce{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.nast-tl{font:inherit;font-weight:800;font-size:.85rem;color:var(--ink);background:var(--bg);
  border:1.5px solid var(--line);border-radius:999px;padding:8px 14px;cursor:pointer}
.nast-tl:hover{border-color:var(--brand)}
.nast-tl:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 30%,transparent)}
.nast-tl-hlavni{background:var(--brand);border-color:var(--brand);color:var(--on-brand,#fff)}
.nast-zaloha-stav{margin-top:8px;font-size:.8rem;font-weight:700;color:var(--ok-ink,var(--ink-soft));line-height:1.4}
.nast-zaloha-stav:empty{display:none}
.nast-zaloha-stav.je-chyba{color:var(--err-ink,var(--err))}
.nast-zaloha-potvrzeni{margin-top:10px;padding:12px;border-radius:12px;background:var(--bg-soft);border:1.5px solid var(--line)}
.nast-zaloha-otazka{margin:0;font-size:.85rem;font-weight:700;color:var(--ink);line-height:1.45}

/* ——— řádek „Třída" + jednorázová změna ročníku (B5-2) ——— */
.nast-radek-trida{align-items:flex-start}
.nast-radek-trida .nast-tl{flex:0 0 auto;margin-top:2px}
.nast-radek-pozn{margin-top:6px;font-size:.78rem;font-weight:700;color:var(--ink-soft);line-height:1.4}
.nast-radek-pozn:empty{display:none}
.nast-trida-stav{margin-top:6px;font-size:.8rem;font-weight:700;color:var(--ok-ink,var(--ink-soft));line-height:1.4}
.nast-trida-stav:empty{display:none}

/* ——— vnořený modál „Změnit třídu" (nad panelem Nastavení) ——— */
.nast-overlay-nad{z-index:1002}
.nast-panel-modal{max-width:360px;padding:22px 20px 18px;overflow:visible}
.nast-modal-ik{font-size:30px;line-height:1;margin:0 0 8px}
.nast-modal-titulek{margin:0 0 8px;font-size:1.2rem;font-weight:900;color:var(--ink)}
.nast-modal-text{margin:0 0 16px;font-size:.95rem;font-weight:700;line-height:1.45;color:var(--ink)}
.nast-seg-trida{display:flex;width:100%;margin:0 0 18px}
.nast-seg-trida .nast-seg-btn{flex:1 1 0;text-align:center}
.nast-modal-akce{display:flex;flex-wrap:wrap;gap:10px}
.nast-modal-akce .nast-tl{flex:1 1 140px;min-height:48px;font-size:.95rem}
/* modál drží tvar karty i na mobilu (ne spodní list jako hlavní panel) */
@media (max-width:520px){
  .nast-overlay.nast-overlay-nad{align-items:center;padding:16px}
  .nast-panel.nast-panel-modal{max-width:360px;border-radius:var(--r);border-bottom:1px solid var(--line);
    animation:nast-vjezd .22s cubic-bezier(.2,.8,.3,1) both}
}

/* ——— sekce „Uzpůsobení podmínek": prodloužený čas pro žáky se SVP (B4-9) ———
   Rámeček kolem sekce, ať nadpis zjevně patří jen k ní; <select> přes celou šířku textu
   (na mobilu se nevejde vedle dlouhého popisu), dotyková výška 44 px. */
.nast-skupina{margin:12px 0 4px;padding:12px 12px 2px;border-radius:14px;
  background:var(--bg-soft);border:1.5px solid var(--line)}
.nast-skupina-nadpis{margin:0 2px;font-size:.74rem;font-weight:900;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-soft)}
.nast-skupina .nast-radek{padding-top:10px}
.nast-skupina .nast-radek-ik{background:var(--bg)}
.nast-radek-spu{align-items:flex-start}
.nast-select{display:block;margin:10px 0 0;width:100%;max-width:280px;min-height:44px;
  background:var(--bg);cursor:pointer}
.nast-select option{background:var(--bg);color:var(--ink)}
html[data-tema="tmavy"] .nast-select{color-scheme:dark}
.nast-spu-info{margin-top:8px;font-size:.8rem;font-weight:700;color:var(--ink);line-height:1.4}

/* ——— vysoký kontrast (Windows, forced-colors): přepínač i vybraná volba musí být vidět (B4-14) ——— */
@media (forced-colors:active){
  .nast-switch{forced-color-adjust:none;background:Canvas;box-shadow:none;border:2px solid CanvasText}
  .nast-switch .nast-switch-knob{background:CanvasText;box-shadow:none;top:3px;left:3px}
  .nast-switch.je-zap{background:Highlight;border-color:Highlight}
  .nast-switch.je-zap .nast-switch-knob{background:HighlightText}
  .nast-switch:disabled{border-color:GrayText}
  .nast-switch:disabled .nast-switch-knob{background:GrayText}
  .nast-switch:focus-visible{outline:3px solid CanvasText;outline-offset:2px}
  .nast-seg{border-color:CanvasText}
  .nast-seg-btn{border:2px solid transparent}
  .nast-seg-btn.je-akt{forced-color-adjust:none;background:Highlight;color:HighlightText;border-color:Highlight}
  .nast-tl,.nast-zavrit,.nast-ozub{border:2px solid ButtonText}
  .nast-panel{border:2px solid CanvasText}
  /* pole (čas, datum, prodloužený čas): box-shadow fokusu se tu nekreslí → obrys */
  .nast-vstup{border:2px solid ButtonText}
  .nast-vstup:focus-visible{outline:3px solid CanvasText;outline-offset:2px}
  .nast-skupina{border:2px solid CanvasText}
}

/* ——— mobil: panel jako spodní list ——— */
@media (max-width:520px){
  .nast-overlay{align-items:flex-end;padding:0}
  .nast-panel{max-width:none;max-height:92vh;border-radius:var(--r) var(--r) 0 0;border-bottom:0;
    animation:nast-sheet .24s cubic-bezier(.2,.8,.3,1) both}
}

@keyframes nast-fade{from{opacity:0}to{opacity:1}}
@keyframes nast-vjezd{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@keyframes nast-sheet{from{transform:translateY(100%)}to{transform:none}}
@media (prefers-reduced-motion:reduce){
  .nast-overlay,.nast-panel{animation:none!important}
}
