/* ==========================================================================
   danovka — design systém v2 („Odevzdáno")
   --------------------------------------------------------------------------
   Sdílený vzhled VŠECH stránek. Vkládá se JAKO POSLEDNÍ v <head> (za inline
   <style> stránky), takže při shodné specificitě vyhrává pořadím — proto
   tento soubor skoro nepotřebuje !important (výjimky jsou komentované).

       <link rel="stylesheet" href="danovka.css">

   Principy:
     • SVĚTLÝ motiv: lišta z navigace.js, drobečky i hlavička stránky jsou
       světlé plochy s tmavým textem (bílá lišta, hlavička s jemným modrým
       nádechem --mast-bg), oddělené jen linkami; VŠTE modrá zůstává jako
       akcent (tlačítka, odkazy, aktivní krok, pečeť značky). Tmavě modré
       bloky nahoře byly do 2. 9. 2026; tmavý režim je má dál, tam je to
       přirozené.
     • Tmavý režim je navržený zvlášť (odstupňované plochy, světlý lem
       místo černého stínu), ne jen obrácená paleta.
     • Jedna škála písma (12/13/15/16/18/20/24/28), jedna škála rádiusů
       (--r-s 5 / --r 8 / --r-l 14 / --r-pill), jeden stín na karty
       a jeden na popovery, jeden styl mikro-popisku.
     • Sémantické barvy: úspěch je zelená (ne odstín odkazu), varování
       okrová, chyba červená — vždy trojice barva / podklad / rám; barvu
       nese levý proužek a zvýraznění, ne celý odstavec.
     • Gramatika sekcí: fieldset = karta sekce formuláře; .karta = panel;
       výsledkový panel má modré horní pravítko; details.rozsirene je táž
       karta, jen sbalitelná.
     • Layout stránek nechává inline gridům jejich poměry (mají důvod),
       jen je sjednocuje: kontejner 1160 px, mezery, přilepený výsledek,
       min-width:0 na dětech gridu, na mobilu přilepený hlavní akční řádek.
     • Sdílené widgety (navigace .dkn-*, asistentka .dka-*, nápověda
       .dnv-*) mají vlastní styly — globální pravidla je obcházejí.

   Barvy: tmavě modrá vychází z vizuálu VŠTE (odměřeno z is.vste.cz, bez
   grafického manuálu). Písmo: systémový stack, nic se nestahuje (offline).
   ========================================================================== */

/* ---- 1. Tokeny ---------------------------------------------------------- */
:root{
  /* plochy */
  --pozadi:#eef1f6; --panel:#ffffff; --panel-2:#f5f7fb; --panel-3:#e9edf4;
  --ram:#dfe4ec; --ram-silny:#c5cdd9;
  /* text */
  --text:#101828; --text-slaby:#475467; --text-faint:#6b7689;
  /* značka (VŠTE modrá) — ve světlém režimu jsou „pruhy" světlé, modrá je akcent */
  --band:#ffffff; --band-2:#f5f7fb; --band-line:#dfe4ec;
  --primar:#0b2f77; --primar-svetla:#2a4f9e; --primar-kontrast:#ffffff;
  --akcent:#2a4f9e; --akcent-poz:#e8eef9;
  /* sémantika */
  --ok:#1b6b47; --ok-poz:#e4f3ea; --ok-ram:#9fd3b6;
  --varovani:#8a5a00; --varovani-poz:#fdf4e1; --varovani-ram:#efcf7a;
  --chyba:#b42318; --chyba-poz:#fdecec; --chyba-ram:#f1a7a0;
  --info:#1d4ed8; --info-poz:#e8efff; --info-ram:#b8c9f5;
  /* hlavička stránky (světlá plocha s modrým nádechem, tmavý text) */
  --mast-bg:#f3f6fc; --mast-text:#101828; --mast-slaby:#475467;
  --mast-plocha:#ffffff; --mast-ram:#c5cdd9; --mast-linka:#dfe4ec; --mast-focus:#2a4f9e;
  /* zpětná kompatibilita se stránkami, které proměnné čtou */
  --zlata:#2a4f9e; --zlata-svetla:#5c88b6;
  /* rozměry */
  --r-s:5px; --r:8px; --r-l:14px; --r-pill:999px;
  --stin:0 1px 2px rgba(16,24,40,.05), 0 6px 20px -12px rgba(16,24,40,.18);
  --stin-pop:0 12px 32px -12px rgba(16,24,40,.35);
  --mezera:clamp(14px,2vw,22px); --kontejner:1160px;
  /* písmo */
  --font-hlavni:Inter,"Segoe UI",Roboto,"Helvetica Neue",Arial,system-ui,sans-serif;
  --font-serif:var(--font-hlavni);
  --font-mono:ui-monospace,"Cascadia Code","JetBrains Mono",Menlo,Consolas,monospace;
  --fs-xs:12px; --fs-sm:13px; --fs-md:15px; --fs-base:16px; --fs-lg:18px;
  --fs-xl:20px; --fs-2xl:24px; --fs-3xl:clamp(26px,2.6vw,32px);
}
@media (prefers-color-scheme:dark){:root{
  --pozadi:#0b1220; --panel:#131c2e; --panel-2:#1a2438; --panel-3:#22304a;
  --ram:#263248; --ram-silny:#38486a;
  --text:#e6ebf3; --text-slaby:#aab6c8; --text-faint:#8391a7;
  --band:#0f1f45; --band-2:#0c1a3a; --band-line:rgba(255,255,255,.12);
  --primar:#8fb0ee; --primar-svetla:#a9c3f3; --primar-kontrast:#0b1220;
  --akcent:#8fb0ee; --akcent-poz:#172a52;
  --ok:#7cd3a5; --ok-poz:#12301f; --ok-ram:#256b45;
  --varovani:#e6bc5f; --varovani-poz:#2b2210; --varovani-ram:#6b5320;
  --chyba:#f4a3a3; --chyba-poz:#361a1a; --chyba-ram:#7a3232;
  --info:#9ab6f5; --info-poz:#16223d; --info-ram:#2e4a8a;
  --mast-bg:var(--band); --mast-text:#ffffff; --mast-slaby:rgba(255,255,255,.76);
  --mast-plocha:rgba(255,255,255,.08); --mast-ram:rgba(255,255,255,.22);
  --mast-linka:rgba(255,255,255,.12); --mast-focus:#ffffff;
  --zlata:#8fb0ee; --zlata-svetla:#a9c3f3;
  --stin:0 0 0 1px rgba(255,255,255,.04), 0 10px 28px -14px rgba(0,0,0,.7);
  --stin-pop:0 0 0 1px rgba(255,255,255,.06), 0 16px 40px -12px rgba(0,0,0,.8);
}}

/* ---- 2. Základ ---------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--pozadi) !important; /* inline body má natvrdo gradient/obrázek na 2 stránkách */
  background-image:none !important; color:var(--text);
  font-family:var(--font-hlavni); font-size:var(--fs-base); line-height:1.55;
}
[hidden]{display:none !important}   /* .grid2{display:grid} inline jinak přebíjelo UA [hidden] */
.skryto{display:none}
a{color:var(--akcent)}
a:hover{color:var(--primar)}
mark{background:var(--akcent-poz); color:inherit; border-radius:3px; padding:0 2px}
code,kbd,.mono{font-family:var(--font-mono); font-size:.92em}
hr{border:0; border-top:1px solid var(--ram); margin:20px 0}

h1,h2,h3,h4{font-family:var(--font-hlavni); font-weight:700; letter-spacing:-.01em; line-height:1.25; color:var(--text)}
main h1{font-size:var(--fs-2xl); margin:0 0 12px}
main h2,.karta h2,.doc-title{font-size:var(--fs-xl); margin:0 0 10px}
main h3,.karta h3{font-size:var(--fs-lg); margin:0 0 8px}
.karta h2{margin-top:0}

/* mikro-popisek (eyebrow) — jediný styl pro všechny */
.eyebrow,.zdroje-nadpis,.o-datech-nadpis,.dalsi-kroky b,.legenda-stavu>b{
  display:block; font:700 var(--fs-xs)/1.3 var(--font-hlavni); letter-spacing:.06em;
  text-transform:uppercase; color:var(--text-slaby); margin:0 0 8px;
}

/* ---- 3. Kontejner, hlavička stránky, patička --------------------------- */
main{max-width:var(--kontejner); margin:0 auto; padding:var(--mezera) var(--mezera) 56px}
main>*{min-width:0}
main.obal,.obal{max-width:820px; padding:32px var(--mezera) 56px}
main.obal p,main.obal li{font-size:var(--fs-base); line-height:1.65}

header.hlav,header.hlavni{
  background:var(--mast-bg); color:var(--mast-text);
  border-bottom:1px solid var(--mast-linka); padding:0;
}
header.hlav .in,header.hlavni .hlavni-vnitrek{
  max-width:var(--kontejner); margin:0 auto; padding:26px clamp(14px,2vw,24px) 30px;
}
header.hlav h1,header.hlavni h1{
  margin:0 0 8px; font-size:var(--fs-3xl); font-weight:700; letter-spacing:-.015em; color:var(--mast-text);
}
header.hlav p,header.hlavni p,header.hlav .podnadpis,header.hlavni .podnadpis{
  margin:0; max-width:70ch; font-size:var(--fs-md); line-height:1.55; color:var(--mast-slaby); opacity:1;
}
header.hlav span,header.hlavni span,header.hlav small,header.hlavni small,
header.hlav b,header.hlavni b,header.hlav strong,header.hlavni strong{color:var(--mast-text)}
/* každý odkaz v hlavičce dědí barvu hlavičky (inline styly stránek mají „a{color:#fff}") */
header.hlav a,header.hlavni a{color:var(--mast-text)}
/* odkazy v hlavičce jako drobné obrysové čipy */
header.hlav p a,header.hlavni p a{
  display:inline-block; margin:8px 6px 0 0; padding:5px 11px; border:1px solid var(--mast-ram);
  border-radius:var(--r-pill); color:var(--mast-text); text-decoration:none; font-size:var(--fs-sm); font-weight:600;
}
header.hlav p a:hover,header.hlavni p a:hover{background:var(--mast-plocha); border-color:var(--primar-svetla); color:var(--primar)}
header.hlav a:focus-visible,header.hlavni a:focus-visible{outline:3px solid var(--mast-focus); outline-offset:2px}
header.hlavni .logo,header.hlavni .znak,header.hlavni .mark{display:none}
header.hlavni .metrika,header.hlavni .stat,header.hlavni .tile{
  background:var(--mast-plocha); border:1px solid var(--mast-ram); border-radius:var(--r); color:var(--mast-text);
}

footer.hlavni{
  max-width:var(--kontejner); margin:0 auto; padding:0 var(--mezera) 24px;
  background:transparent; color:var(--text-slaby); font-size:var(--fs-sm); border:0;
}
footer.pravni-paticka{
  max-width:var(--kontejner); margin:0 auto; padding:18px var(--mezera) 84px;
  color:var(--text-faint); font-size:var(--fs-xs); line-height:1.55;
}
footer.pravni-paticka .disclaimer{margin:0}
footer.pravni-paticka a{color:var(--text-slaby)}
main+footer:not(.pravni-paticka),main+div+footer:not(.pravni-paticka){
  max-width:var(--kontejner); margin:0 auto; padding:0 var(--mezera); color:var(--text-slaby); font-size:var(--fs-sm);
}

/* skip-link */
.preskocit,.preskoc{
  position:absolute; left:-9999px; top:0; z-index:2000; padding:10px 16px; margin:8px;
  background:var(--primar); color:var(--primar-kontrast); border-radius:var(--r);
  font:700 var(--fs-md) var(--font-hlavni); text-decoration:none; box-shadow:var(--stin-pop);
}
.preskocit:focus,.preskoc:focus{left:8px; top:8px; outline:3px solid var(--primar-kontrast); outline-offset:-6px}

/* ---- 4. Karty a sekce ---------------------------------------------------- */
.karta,.modul,.panel,.blok{
  background:var(--panel); border:1px solid var(--ram); border-radius:var(--r-l);
  box-shadow:var(--stin); padding:20px 22px; margin:0 0 var(--mezera);
}
.karta .karta{box-shadow:none; background:var(--panel-2)}
.vysledek{position:sticky; top:16px; min-width:0}
.vysledek .karta,.vys,#vys .karta,.vymer{border-top:3px solid var(--primar)}
.vysledek .karta+.karta{border-top:1px solid var(--ram)}

fieldset{
  background:var(--panel); border:1px solid var(--ram); border-radius:var(--r-l);
  box-shadow:var(--stin); padding:18px 22px 20px; margin:0 0 var(--mezera); min-width:0;
}
legend{
  font:700 var(--fs-base)/1.3 var(--font-hlavni); letter-spacing:-.005em; text-transform:none;
  color:var(--text); padding:0 8px; margin-left:-8px;
}
fieldset>.napoveda:first-of-type{margin-top:0}

/* sbalitelná sekce formuláře = táž karta, čárkovaný rám jen zavřená */
details.rozsirene{
  background:var(--panel); border:1px dashed var(--ram-silny); border-radius:var(--r-l);
  padding:0 22px; margin:0 0 var(--mezera);
}
details.rozsirene[open]{border-style:solid; box-shadow:var(--stin)}
details.rozsirene>summary{
  list-style:none; cursor:pointer; padding:14px 0; font:600 var(--fs-md)/1.3 var(--font-hlavni); color:var(--text);
}
details.rozsirene>summary::-webkit-details-marker{display:none}
details.rozsirene>summary::before{content:"▸"; display:inline-block; width:18px; color:var(--akcent); font-size:12px}
details.rozsirene[open]>summary::before{content:"▾"}
details.rozsirene>summary .pocet{font-weight:400; color:var(--text-slaby)}
details.rozsirene fieldset{border:0; box-shadow:none; padding:0 0 18px; margin:0}
details.rozsirene fieldset legend{margin-left:0; padding:0; color:var(--text-slaby); font-size:var(--fs-sm); font-weight:600}

/* obecné details/summary uvnitř obsahu (ne v liště / asistentce) */
main details:not(.rozsirene):not(.vystupy)>summary{cursor:pointer; color:var(--akcent); font-weight:600}
summary{cursor:pointer}

/* dynamický řádek seznamu (zaměstnavatel, plnění, dítě, vozidlo…) */
.podskupina{
  background:var(--panel-2); border:1px solid var(--ram); border-radius:var(--r);
  padding:14px 16px; margin:0 0 12px;
}
.podskupina>.hlava{display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 0 10px}
.podskupina>.hlava b{font-size:var(--fs-md)}

/* ---- 5. Formuláře -------------------------------------------------------- */
.grid2,.grid-pole,.radek2{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr)); gap:12px 14px}
.grid3{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr)); gap:12px 14px}
form .radek{display:grid; grid-template-columns:1fr; gap:12px; margin-bottom:12px}
.grid2>div,.grid3>div{min-width:0}

label{display:block; font:600 var(--fs-sm)/1.35 var(--font-hlavni); color:var(--text); margin:0 0 5px}
label .doplnek{font-weight:400; color:var(--text-slaby)}
/* Zaškrtávací popisek: vstup vlevo absolutně, VŠECHEN ostatní obsah (text
   i vnořené <span>/<b>) teče jako běžný text — flex by z každého uzlu
   udělal sloupec a doplňky se mačkaly vedle textu. Karta .volba má vlastní
   pravidlo níže — :has() by ji jinak přebilo (specificita 0,1,2 > 0,1,0). */
.zaskrt,label.zaskrt,label:not(.volba):has(>input[type=checkbox]),label:not(.volba):has(>input[type=radio]){
  display:block; position:relative; padding-left:28px; font-weight:400; font-size:var(--fs-md);
  line-height:1.45; color:var(--text); margin:6px 0; cursor:pointer;
}
.zaskrt>input,.zaskrt input[type=checkbox],.zaskrt input[type=radio],label:not(.volba)>input[type=checkbox],label:not(.volba)>input[type=radio]{
  position:absolute; left:0; top:3px; width:18px; height:18px; margin:0; accent-color:var(--primar);
}
.zaskrt .pozn{display:inline}
/* <div class="zaskrt"> je jen skupina popisků (index: slevy) — odsazení mají až popisky */
div.zaskrt{padding-left:0; cursor:default}
.zaskrty{display:flex; flex-wrap:wrap; gap:4px 20px; margin:6px 0}
.legenda-pov{font-size:var(--fs-xs); color:var(--text-slaby); margin:6px 0 0}
span.pov,span.povinne{color:var(--chyba); font-weight:700}

main input[type=number],main input[type=text],main input[type=search],main input[type=date],
main input[type=email],main input[type=password],main input[type=file],main select,main textarea{
  width:100%; max-width:100%; min-height:40px; padding:8px 11px; font:var(--fs-md)/1.4 var(--font-hlavni);
  color:var(--text); background:var(--panel); border:1px solid var(--ram-silny); border-radius:var(--r);
  transition:border-color .12s, box-shadow .12s;
}
main input[type=number]{font-variant-numeric:tabular-nums}
main textarea{min-height:88px; resize:vertical}
main input[type=file]{padding:6px 8px; background:var(--panel-2)}
main input:focus,main select:focus,main textarea:focus{
  outline:none; border-color:var(--primar-svetla); box-shadow:0 0 0 3px var(--akcent-poz);
}
main input::placeholder,main textarea::placeholder{color:var(--text-faint); opacity:1}
main input:disabled,main select:disabled{opacity:.6; background:var(--panel-2)}
main input.predvyplneno,main select.predvyplneno{background:var(--info-poz); border-color:var(--info-ram)}
td input,td select{min-height:34px !important; padding:5px 8px !important; font-size:var(--fs-sm) !important}
.napoveda,.napo{color:var(--text-slaby); font-size:var(--fs-sm); line-height:1.5; margin:4px 0 12px}
.pozn,.pozn-list,.tech{color:var(--text-slaby); font-size:var(--fs-xs); line-height:1.5}
ul.pozn-list{padding-left:18px; margin:8px 0}
.tech{font-family:var(--font-mono)}

/* ---- 6. Tlačítka --------------------------------------------------------- */
.tl,button.tl,.tlacitko,.tl2,button.tl2,.tlacitko.druhotne,.tl-mini,button.tl-mini,.tl-kopie{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer;
  font:600 var(--fs-md)/1.2 var(--font-hlavni); border-radius:var(--r); text-decoration:none;
  transition:background .12s, border-color .12s, color .12s, box-shadow .12s;
}
.tl,button.tl,.tlacitko{
  min-height:42px; padding:0 20px; background:var(--primar); color:var(--primar-kontrast);
  border:1px solid var(--primar); box-shadow:0 1px 2px rgba(16,24,40,.12);
}
.tl:hover,button.tl:hover,.tlacitko:hover{background:var(--primar-svetla); border-color:var(--primar-svetla)}
.tl2,button.tl2,.tlacitko.druhotne{
  min-height:42px; padding:0 16px; background:var(--panel); color:var(--primar);
  border:1px solid var(--ram-silny); font-weight:600;
}
.tl2:hover,button.tl2:hover,.tlacitko.druhotne:hover{background:var(--panel-2); border-color:var(--primar-svetla)}
.tl-mini,button.tl-mini,.tl-kopie{
  min-height:30px; padding:0 10px; font-size:var(--fs-sm); background:transparent; color:var(--text-slaby);
  border:1px solid var(--ram);
}
.tl-mini:hover,button.tl-mini:hover,.tl-kopie:hover{border-color:var(--text-slaby); color:var(--text)}
.tl-mini.nebezpecne,.tl-mini[data-del],.tl-mini[data-smaz]{color:var(--chyba)}
.tl-mini.nebezpecne:hover,.tl-mini[data-del]:hover,.tl-mini[data-smaz]:hover{border-color:var(--chyba); background:var(--chyba-poz)}
button:disabled,.tl:disabled{opacity:.55; cursor:progress}
/* generický <button> stránek (ne widgety) dědí rádius a písmo */
main button:not(.dnv-badge){font-family:var(--font-hlavni); border-radius:var(--r)}

.akce{display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:12px}
.akce button[type=reset]{margin-left:auto; background:transparent; color:var(--text-slaby); border-color:transparent}
.akce button[type=reset]:hover{color:var(--chyba); border-color:var(--chyba-ram); background:var(--chyba-poz)}

/* skupina exportů „Stáhnout a podat" */
details.vystupy{flex:1 0 100%; margin-top:4px; border:1px solid var(--ram); border-radius:var(--r); background:var(--panel-2)}
details.vystupy>summary{list-style:none; cursor:pointer; padding:10px 14px; font:600 var(--fs-sm)/1.3 var(--font-hlavni); color:var(--akcent)}
details.vystupy>summary::-webkit-details-marker{display:none}
details.vystupy>summary::before{content:"▸ "; font-size:11px}
details.vystupy[open]>summary::before{content:"▾ "}
details.vystupy>.vystupy-telo{display:flex; flex-wrap:wrap; gap:8px; padding:2px 14px 12px}
/* vysvětlivka a přepínač uvnitř „Stáhnout a podat" zaberou celý řádek nad tlačítky */
details.vystupy>.vystupy-telo>p{flex:1 0 100%; margin:0 0 2px; font-size:var(--fs-xs); color:var(--text-slaby); line-height:1.5}
details.vystupy>.vystupy-telo>.zaskrt{flex:1 0 100%; margin:2px 0 4px}

/* na mobilu drží hlavní akční řádek u spodního okraje */
@media (max-width:760px){
  form>.akce:has(button[type=submit]),form>.akce:has(.tl){
    position:sticky; bottom:0; z-index:5; margin:0 calc(-1 * var(--mezera)); padding:10px var(--mezera);
    background:var(--panel); border-top:1px solid var(--ram); box-shadow:0 -8px 20px -14px rgba(16,24,40,.35);
  }
  .akce .tl,.akce button.tl{flex:1 1 100%}
  .akce button[type=reset]{margin-left:0}
}

/* ---- 7. Stavové bloky ---------------------------------------------------- */
.chyba,.ok,.varov,.varovani,.varovbox,.varovani-box,.disclaim,.vyzva,.infobox,.pruh-navrh,
.hlaska,.obnova,.asist-lista:not(:empty),.meta-karta,.xmlbox{
  border:1px solid var(--ram); border-left-width:4px; border-radius:var(--r);
  padding:11px 14px; margin:10px 0; font-size:var(--fs-sm); line-height:1.5; color:var(--text);
  background:var(--panel-2);
}
.chyba,.hlaska.chyba{border-color:var(--chyba-ram); border-left-color:var(--chyba); background:var(--chyba-poz)}
.chyba b,.chyba strong,.hlaska.chyba b{color:var(--chyba)}
.ok{border-color:var(--ok-ram); border-left-color:var(--ok); background:var(--ok-poz)}
.ok b,.ok strong{color:var(--ok)}
.varov,.varovani,.varovbox,.varovani-box,.disclaim,.pruh-navrh{
  border-color:var(--varovani-ram); border-left-color:var(--varovani); background:var(--varovani-poz);
}
.varov b,.varovani b,.varovbox b,.varovani-box b,.disclaim b,.pruh-navrh{color:var(--varovani)}
.pruh-navrh{font-weight:600; margin:0 0 20px}
.pruh-navrh::before{content:"⚠ "}
.vyzva,.infobox,.hlaska.info,.obnova,.asist-lista:not(:empty),.meta-karta{
  border-color:var(--info-ram); border-left-color:var(--info); background:var(--info-poz);
}
.vyzva b{color:var(--info)}
.xmlbox{font-family:var(--font-mono); font-size:var(--fs-xs); white-space:pre-wrap; word-break:break-all; max-height:280px; overflow:auto}
.chyba ul,.varov ul,.varovani ul,.varovbox ul,.vyzva ul,.ok ul{margin:6px 0 0; padding-left:18px}
.chyba details>summary{color:var(--chyba)}
.prazdno,.hlaska.prazdno,p.prazdno{
  color:var(--text-slaby); text-align:center; padding:26px 12px; font-size:var(--fs-md);
  border:1px dashed var(--ram-silny); border-radius:var(--r); background:transparent;
}
td.prazdno,td>.prazdno,tr>td>p.prazdno{border:0; padding:12px}
.nacitani{color:var(--text-slaby); font-size:var(--fs-sm); margin-top:12px}
.nacitani::before{
  content:""; display:inline-block; width:13px; height:13px; margin-right:8px; vertical-align:-1px;
  border:2px solid var(--ram-silny); border-top-color:var(--primar); border-radius:50%; animation:dan-toc .7s linear infinite;
}
@keyframes dan-toc{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){*{animation:none !important; transition:none !important; scroll-behavior:auto !important}}

/* toast stavu u spodního okraje */
.stav{
  position:fixed; left:50%; bottom:16px; transform:translateX(-50%); z-index:60; max-width:min(560px,calc(100vw - 24px));
  background:var(--text); color:var(--pozadi); border:0; border-radius:var(--r-pill);
  padding:9px 18px; font-size:var(--fs-sm); box-shadow:var(--stin-pop);
}
.stav:empty{display:none}
@media (prefers-color-scheme:dark){.stav{background:#e6ebf3; color:#0b1220}}

/* „pokračujte" pod výsledkem */
.dalsi-kroky{
  margin-top:14px; padding:14px 16px; border:1px solid var(--ram); border-left:4px solid var(--akcent);
  border-radius:var(--r); background:var(--panel);
}
.dalsi-kroky a{display:inline-block; margin:2px 16px 2px 0; font-weight:600; color:var(--akcent); text-decoration:none}
.dalsi-kroky a:hover{text-decoration:underline}
.dalsi-kroky a::after{content:" →"}

/* ---- 8. Dlaždice výsledků ------------------------------------------------ */
.souhrn{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr)); gap:10px; margin:0 0 14px}
.dlazdice{
  background:var(--panel-2); border:1px solid var(--ram); border-radius:var(--r); padding:12px 14px; min-width:0;
}
.dlazdice .stitek{display:block; font-size:var(--fs-xs); font-weight:600; color:var(--text-slaby); margin:0 0 4px; line-height:1.3}
.dlazdice .cislo{font:700 var(--fs-xl)/1.2 var(--font-hlavni); font-variant-numeric:tabular-nums; letter-spacing:-.01em; color:var(--text); word-break:break-word}
.dlazdice .poznamka{display:block; font-size:var(--fs-xs); color:var(--text-slaby); margin-top:4px}
/* hlavní dlaždice: světlá modrá plocha s modrým číslem (dřív plná tmavě modrá) */
.dlazdice.hlavni{background:var(--akcent-poz); border-color:var(--info-ram); border-left:4px solid var(--primar); color:var(--text); grid-column:1/-1}
.dlazdice.hlavni .stitek{color:var(--text-slaby); opacity:1}
.dlazdice.hlavni .cislo{color:var(--primar); font-size:var(--fs-3xl)}
.dlazdice.dobre{background:var(--ok-poz); border-color:var(--ok-ram)}
.dlazdice.dobre .cislo{color:var(--ok)}
.dlazdice.spatne{background:var(--chyba-poz); border-color:var(--chyba-ram)}
.dlazdice.spatne .cislo{color:var(--chyba)}
.dlazdice.hlavni.dobre{background:var(--ok); border-color:var(--ok)}
.dlazdice.hlavni.dobre .cislo,.dlazdice.hlavni.dobre .stitek{color:#fff}
.dlazdice.hlavni.spatne{background:var(--chyba); border-color:var(--chyba)}
.dlazdice.hlavni.spatne .cislo,.dlazdice.hlavni.spatne .stitek{color:#fff}
.dlazdmala .dlazdice .cislo{font-size:var(--fs-lg)}
.dlazdmala{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,120px),1fr)); gap:8px; margin:0 0 12px}
.cislo,.vys-castka,.velka-castka,.castka-hlavni{font-variant-numeric:tabular-nums}
.vysledek-dan{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 14px; background:var(--ok-poz);
  border:1px solid var(--ok-ram); border-left:4px solid var(--ok); border-radius:var(--r); padding:14px 16px; margin-top:6px;
}
.vysledek-dan .castka{font:700 var(--fs-3xl)/1.15 var(--font-hlavni); color:var(--ok); font-variant-numeric:tabular-nums}
.vysledek-dan .stitek{color:var(--text-slaby)}

/* ---- 9. Tabulky ---------------------------------------------------------- */
.tabobal,.tabulka-obal,.rolovani,.tabbox{overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%; margin:8px 0}
table{width:100%; border-collapse:collapse; font-size:var(--fs-sm); font-variant-numeric:tabular-nums}
th{
  text-align:left; padding:8px 10px; border-bottom:2px solid var(--ram-silny);
  font:700 var(--fs-xs)/1.3 var(--font-hlavni); letter-spacing:.06em; text-transform:uppercase; color:var(--text-slaby);
  vertical-align:bottom;
}
td{padding:8px 10px; border-bottom:1px solid var(--ram); vertical-align:top}
tbody tr:hover>td{background:var(--panel-2)}
tr:last-child>td{border-bottom:0}
td.c,th.c,td.num,th.num,.num,table.rozpad td.cislo,table.rozpad th.cislo{text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums}
span.c{font-family:var(--font-mono); font-size:.92em}
tr.souhrn>td,tr.soucet>td,table.rozpad tr.souhrn td{font-weight:700; border-top:2px solid var(--ram-silny); background:var(--panel-2)}
table.paska td{padding:7px 10px}
tr.pripis>td.c{color:var(--ok); font-weight:600}
tr.odpis>td.c{color:var(--chyba)}
tr.soucet.odpis>td.c{color:var(--text)}
tr.mesic>td{background:var(--panel-3); font-weight:700; font-size:var(--fs-xs); letter-spacing:.06em; text-transform:uppercase; color:var(--text-slaby); border-bottom:0; padding:10px}
tr.proslo>td{color:var(--text-faint)}
tr.blizi>td{background:var(--varovani-poz)}
tr.dnesr>td{background:var(--info-poz); font-weight:600}
tr.nahrada>td{background:var(--varovani-poz)}
tr.nepl>td{background:var(--panel-2); color:var(--text-slaby)}
tr.jinam>td{background:var(--varovani-poz)}
tr.nevalidni>td{background:var(--chyba-poz)}
tr.klik{cursor:pointer}
tr.klik.vybrany>td{background:var(--akcent-poz)}
#denik_tab td.w-akce,#denik_tab th.w-akce{position:sticky; right:0; background:var(--panel); box-shadow:-6px 0 8px -8px rgba(16,24,40,.3)}
.cit,.par,.paragraf,.radekc{font-family:var(--font-mono); font-size:.88em; color:var(--akcent); white-space:nowrap}
td.datum,td.dni{white-space:nowrap}

/* ---- 10. Odznaky, značky, čipy ------------------------------------------ */
.odznak,.znacka,.seg-tag,.dan-tag,.kodznak,.znacka-typ,.predpis-znak,.uspora-znak,.doporuceno,.chip,.cip,.cip-citace,.skore,
.oblast,.obdobi,span.kod{
  display:inline-flex; align-items:center; gap:5px; padding:2px 9px; border-radius:var(--r-pill);
  font:600 var(--fs-xs)/1.4 var(--font-hlavni); letter-spacing:0; text-transform:none;
  background:var(--panel-3); color:var(--text-slaby); border:1px solid transparent; white-space:nowrap; vertical-align:middle;
}
.odznak.ok,.znacka.zn-ok,.znacka.ano,.znacka.dolozeno,.odznak.klid,.znacka.zn-klid{background:var(--ok-poz); color:var(--ok); border-color:var(--ok-ram)}
.odznak.ne,.znacka.zn-po,.znacka.ne,.odznak.po,.znacka.nepl{background:var(--chyba-poz); color:var(--chyba); border-color:var(--chyba-ram)}
.odznak.uziv,.znacka.vypocteno,.znacka.zn-blizko,.znacka.jinam,.odznak.blizi,.odznak.posun,.odznak.zmena,.seg-tag.nezarazeno,.dan-tag{
  background:var(--varovani-poz); color:var(--varovani); border-color:var(--varovani-ram);
}
.odznak.dnes,.znacka-typ,.predpis-znak,.uspora-znak,.doporuceno{background:var(--akcent-poz); color:var(--akcent); border-color:transparent}
.predpis-znak{font-weight:700}
.chip,.cip{cursor:pointer; background:var(--panel); border-color:var(--ram-silny); color:var(--text); padding:6px 13px; font-size:var(--fs-sm)}
.chip:hover,.cip:hover{border-color:var(--primar-svetla); color:var(--primar)}
.chip[aria-pressed=true]{background:var(--primar); color:var(--primar-kontrast); border-color:var(--primar)}
.cipy,.filtr,.rychle{display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 4px}
.tecka{display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:6px; vertical-align:-1px; background:var(--text-faint)}
.tecka.ok{background:var(--ok)} .tecka.ne{background:var(--chyba)}
/* .ok/.ne jsou i třídy stavových boxů (padding 11px 14px, levý lem) — tečka se jimi nesmí nafouknout */
.tecka.ok,.tecka.ne{padding:0; border:0; width:9px; height:9px}
.znamka,.overeno,.badge{border-radius:var(--r-pill)}

/* prapor stavu podání */
.prapor{border:1px solid var(--ram); border-left-width:4px; border-radius:var(--r); padding:14px 16px; margin:0 0 14px; background:var(--panel-2)}
.prapor .nadpis{margin:0 0 4px; font:700 var(--fs-lg)/1.3 var(--font-hlavni)}
.prapor .detail{margin:0; color:var(--text-slaby); font-size:var(--fs-sm)}
.prapor.podano{background:var(--ok-poz); border-color:var(--ok-ram); border-left-color:var(--ok)}
.prapor.podano .nadpis{color:var(--ok)}
.prapor.nepodano{background:var(--varovani-poz); border-color:var(--varovani-ram); border-left-color:var(--varovani)}
.prapor.nepodano .nadpis{color:var(--varovani)}
.prapor.selhalo{background:var(--chyba-poz); border-color:var(--chyba-ram); border-left-color:var(--chyba)}
.prapor.selhalo .nadpis{color:var(--chyba)}
ul.legenda-stavu{list-style:none; margin:8px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:6px 16px; font-size:var(--fs-sm); color:var(--text-slaby)}
.kanal-nedostupny{color:var(--text-faint); font-size:var(--fs-sm)}

/* ---- 11. Záložky ----------------------------------------------------------- */
.zalozky{display:flex; flex-wrap:wrap; gap:4px; margin:0 0 var(--mezera); padding:4px; background:var(--panel-2); border:1px solid var(--ram); border-radius:var(--r)}
.zalozky [role=tab],.zalozky button{
  appearance:none; background:transparent; border:1px solid transparent; border-radius:var(--r-s); cursor:pointer;
  padding:8px 14px; font:600 var(--fs-sm)/1.3 var(--font-hlavni); color:var(--text-slaby); white-space:nowrap;
}
.zalozky [role=tab]:hover{color:var(--text); background:var(--panel)}
.zalozky [role=tab][aria-selected=true]{background:var(--panel); color:var(--primar); border-color:var(--ram); box-shadow:var(--stin)}
nav.zalozky{position:sticky; top:0; z-index:40; margin:0; padding:0; border:0; border-bottom:1px solid var(--ram); border-radius:0; background:var(--panel)}
nav.zalozky .zalozky-vnitrek{max-width:var(--kontejner); margin:0 auto; padding:0 var(--mezera); display:flex; gap:2px; overflow-x:auto}
nav.zalozky .zalozka{border:0; border-bottom:3px solid transparent; border-radius:0; padding:14px 16px; font-size:var(--fs-md); color:var(--text-slaby); background:transparent; box-shadow:none}
nav.zalozky .zalozka:hover{color:var(--text); background:var(--panel-2)}
nav.zalozky .zalozka[aria-selected=true]{color:var(--primar); border-bottom-color:var(--primar); background:transparent}
.mrizka{display:grid; grid-template-columns:1fr; gap:var(--mezera)}
@media (min-width:1000px){.mrizka{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); align-items:start}}

/* ---- 12. Specifické komponenty stránek ----------------------------------- */
/* průvodce */
.kroky{display:flex; flex-wrap:wrap; gap:6px; list-style:none; margin:0 0 var(--mezera); padding:0; counter-reset:krok}
.kroky li{
  flex:1 1 120px; padding:9px 12px; border-radius:var(--r); background:var(--panel-2); border:1px solid var(--ram);
  font:600 var(--fs-sm)/1.3 var(--font-hlavni); color:var(--text-slaby); text-align:center;
}
.kroky li.aktivni,.kroky li[aria-current]{background:var(--primar); color:var(--primar-kontrast); border-color:var(--primar)}
.kroky li.hotovo{background:var(--ok-poz); color:var(--ok); border-color:var(--ok-ram)}
.volby{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr)); gap:10px}
/* Karta volby: přepínač vlevo, název na vlastním řádku, popis pod ním —
   celá šířka karty patří textu (dřív flex: název | popis ve třech sloupcích). */
.volba{
  display:block; position:relative; padding:14px 14px 14px 42px; border:1px solid var(--ram-silny); border-radius:var(--r);
  background:var(--panel); cursor:pointer; font-weight:400; font-size:var(--fs-md); line-height:1.45; min-width:0;
}
.volba:hover{border-color:var(--primar-svetla); background:var(--panel-2)}
.volba.vybrano{border-color:var(--primar); background:var(--akcent-poz); box-shadow:0 0 0 2px var(--akcent-poz)}
.volba input{position:absolute; left:14px; top:17px; width:18px; height:18px; margin:0; accent-color:var(--primar)}
.volba b{display:block; font-size:var(--fs-md); margin:0 0 3px}
.volba .pozn,.volba span{display:block; font-size:var(--fs-sm); color:var(--text-slaby); line-height:1.45}

/* oddíly kontrolního hlášení */
.oddil{border:1px solid var(--ram); border-radius:var(--r); margin:0 0 10px; overflow:hidden; background:var(--panel)}
.oddil>.hlava{display:flex; align-items:center; gap:10px; padding:10px 14px; background:var(--panel-2); border-bottom:1px solid var(--ram)}
.oddil>.hlava .kod{font:700 var(--fs-sm) var(--font-mono); color:var(--primar); background:var(--akcent-poz); border-radius:var(--r-s); padding:2px 8px}
.oddil>.hlava .nazev{flex:1 1 auto; font-weight:600; font-size:var(--fs-sm)}
.oddil>.hlava .pocet{color:var(--text-slaby); font-size:var(--fs-xs)}
.oddil>.telo{padding:8px 14px}
.oddil.prazdny>.telo{color:var(--text-faint); font-size:var(--fs-sm)}

/* žebříček optimalizace */
.modul{background:var(--panel); border:1px solid var(--ram); border-radius:var(--r-l); box-shadow:var(--stin); padding:18px 20px; margin:0 0 14px}
.modul.nedostupne{opacity:.72; box-shadow:none; background:var(--panel-2)}
.modul h3{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 8px; font-size:var(--fs-lg)}
.modul .proc,.vysv{color:var(--text-slaby); font-size:var(--fs-sm); line-height:1.5}
ol.zebr{list-style:none; margin:10px 0; padding:0; counter-reset:poradi}
ol.zebr li{
  display:grid; grid-template-columns:auto 1fr auto; grid-template-areas:"poz nazev castka" "poz vysv castka"; align-items:center; gap:2px 12px;
  padding:10px 12px; border:1px solid var(--ram); border-radius:var(--r); margin:0 0 8px; background:var(--panel);
}
ol.zebr li.top{border-color:var(--ok-ram); background:var(--ok-poz)}
ol.zebr .poz{grid-area:poz; counter-increment:poradi; width:28px; height:28px; border-radius:50%; display:grid; place-items:center; background:var(--panel-3); font:700 var(--fs-sm) var(--font-hlavni); color:var(--text-slaby)}
ol.zebr .poz::before{content:counter(poradi)}
ol.zebr li.top .poz{background:var(--ok); color:#fff}
ol.zebr .nazev{grid-area:nazev; font-weight:600}
ol.zebr .castka{grid-area:castka; font:700 var(--fs-lg) var(--font-hlavni); font-variant-numeric:tabular-nums; white-space:nowrap}
ol.zebr li.top .castka{color:var(--ok)}
ol.zebr .vysv{grid-area:vysv}

/* životní situace */
.dlazdice-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr)); gap:12px}
.situace-tl{
  display:flex; flex-direction:column; gap:4px; text-align:left; padding:14px 16px; border:1px solid var(--ram); border-radius:var(--r);
  background:var(--panel); cursor:pointer; font:inherit; color:var(--text); box-shadow:var(--stin);
}
.situace-tl:hover{border-color:var(--primar-svetla); transform:translateY(-1px)}
.situace-tl.aktivni{border-color:var(--primar); background:var(--akcent-poz)}
.situace-tl b{font-size:var(--fs-md); color:var(--primar)}
.situace-tl .komu{font-size:var(--fs-xs); color:var(--text-slaby)}
.detail-hlava{display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:10px; margin:0 0 12px}
.detail-hlava .komu{color:var(--text-slaby); font-size:var(--fs-sm)}
.param-grid,.kalk-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr)); gap:10px; margin:10px 0}
.param{background:var(--panel-2); border:1px solid var(--ram); border-radius:var(--r); padding:10px 12px}
.param .stitek{display:block; font-size:var(--fs-xs); color:var(--text-slaby); margin-bottom:2px}
.param .cislo{font:700 var(--fs-lg) var(--font-hlavni)}
.param .cislo.chybi{color:var(--text-faint); font-weight:400; font-size:var(--fs-sm)}
a.kalk{display:block; padding:12px 14px; border:1px solid var(--ram); border-radius:var(--r); background:var(--panel); text-decoration:none; color:var(--text)}
a.kalk:hover{border-color:var(--primar-svetla); background:var(--panel-2)}
a.kalk b{color:var(--primar)}
a.kalk .proc{color:var(--text-slaby); font-size:var(--fs-sm)}
a.kalk .sipka{color:var(--akcent)}
ul.povinnosti,ol.checklist,ul.pozor{margin:8px 0; padding-left:20px}
ul.povinnosti li{margin:0 0 8px}
ul.povinnosti .p-nazev{font-weight:600}
ul.povinnosti .p-popis{color:var(--text-slaby); font-size:var(--fs-sm)}
ul.pozor li{color:var(--varovani)}
.souvis{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px}
.souvis a{font-size:var(--fs-sm)}

/* vyhledávání (index) */
.polozka{border:1px solid var(--ram); border-radius:var(--r); padding:14px 16px; margin-top:12px; background:var(--panel)}
.polozka-hlava{display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center; justify-content:space-between}
.citace{font-weight:600; margin:6px 0 2px}
.uryvek{color:var(--text); margin:6px 0}
.ustanoveni{white-space:pre-wrap; word-wrap:break-word; background:var(--panel-2); border:1px solid var(--ram); border-radius:var(--r); padding:14px 16px; margin:12px 0 0; font-size:var(--fs-md); max-height:60vh; overflow:auto}
.meta-radek{display:flex; flex-wrap:wrap; gap:6px 16px; color:var(--text-slaby); font-size:var(--fs-sm); margin-top:8px}
.odkaz-esb{display:inline-flex; align-items:center; gap:5px; color:var(--akcent); font-weight:600; font-size:var(--fs-sm); text-decoration:none}
.odkaz-esb:hover{text-decoration:underline}
.odkaz-esb::after{content:"↗"; font-size:.9em}
footer .odkaz-esb{font-size:inherit; font-weight:600}

/* zamestnavatel: předěly agend */
.agenda-nadpis{margin:32px 0 10px; padding-top:22px; border-top:2px solid var(--ram-silny); font-size:var(--fs-xl)}
.agenda-nadpis:first-of-type{margin-top:0; padding-top:0; border-top:0}

/* zmeny */
.krizodkaz{display:flex; flex-wrap:wrap; gap:8px 16px; font-size:var(--fs-sm); margin-top:8px}
section.skupina>h3{display:flex; align-items:center; gap:10px; margin:18px 0 6px}
section.skupina .popisek{color:var(--text-slaby); font-size:var(--fs-sm); margin:0 0 8px}

/* klienti */
.rozdel{display:grid; grid-template-columns:1fr; gap:var(--mezera)}
@media (min-width:1040px){.rozdel{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); align-items:start}}
.radek-poznamky{padding:8px 0; border-bottom:1px solid var(--ram); font-size:var(--fs-sm)}
.radek-poznamky time{color:var(--text-faint); font-size:var(--fs-xs); margin-right:8px}

/* účet */
.souhlas{background:var(--panel-2); border:1px solid var(--ram); border-radius:var(--r); padding:12px 14px; margin:12px 0}
.zdroj{font-size:var(--fs-xs); color:var(--text-faint)}
.citace .zdroj{margin-left:6px}

/* deník: editovatelné buňky */
#denik_tab td.w-datum{min-width:130px} #denik_tab td.w-doklad{min-width:110px}
#denik_tab td.w-popis{min-width:180px} #denik_tab td.w-castka{min-width:110px}

/* oss: režimy těla dokumentu */
.jen-ioss,.jen-mimoeu{display:none}
body.rezim-dovozni .jen-ioss{display:block}
body.rezim-mimo-eu .jen-mimoeu{display:block}
body.rezim-dovozni .grid2>.jen-ioss,body.rezim-mimo-eu .grid2>.jen-mimoeu{display:block}

/* platby */
span.ucet{font-family:var(--font-mono); font-weight:700; white-space:nowrap}
span.vs{font-family:var(--font-mono)}

/* ---- 13. Přístupnost ------------------------------------------------------- */
main a:focus-visible,main button:focus-visible,main input:focus-visible,main select:focus-visible,
main textarea:focus-visible,main summary:focus-visible,main [tabindex]:focus-visible,main [role=tab]:focus-visible{
  outline:3px solid var(--primar-svetla); outline-offset:2px;
}
main input:focus-visible,main select:focus-visible,main textarea:focus-visible{outline:none}

/* ---- 14. Tisk ---------------------------------------------------------------- */
@media print{
  body{background:#fff !important; color:#000}
  header.hlav,header.hlavni{background:#fff; color:#000; border-bottom:2px solid #000}
  header.hlav *,header.hlavni *{color:#000 !important}
  .karta,fieldset,.modul{box-shadow:none; break-inside:avoid}
  .akce,.stav,.dalsi-kroky,.dka-obal,.dnv-badge,footer.pravni-paticka{display:none !important}
  .vysledek{position:static}
}

/* Pruh o vypršeném přihlášení (vkládá navigace.js). Drží se dole, aby
   nepřekryl rozdělanou práci, kterou má uživatel na stránce zachovanou. */
.dkn-vyprselo{position:fixed;left:0;right:0;bottom:0;z-index:60;
  background:#8a5a00;color:#fff;padding:10px 16px;font-size:14px;text-align:center;
  box-shadow:0 -2px 10px rgba(0,0,0,.2)}
.dkn-vyprselo a{color:#fff;text-decoration:underline}
.dkn-odhlasit{background:transparent;border:1px solid currentColor;color:inherit;
  border-radius:6px;padding:2px 8px;font-size:12px;cursor:pointer;margin-left:6px}
.dkn-odhlasit:hover{background:rgba(255,255,255,.12)}
