
  :root {
    /* Led jako podklad: bílá se studeným nádechem, ne modrá. */
    --rink:      #F1F6F9;
    --board:     #FFFFFF;
    --board-2:   #E7EEF3;
    --ink:       #161012;
    --ink-soft:  #5C4F53;
    --ink-faint: #8E8286;
    --red:       #D2132F;
    --red-deep:  #8A0A1C;
    --red-ink:   #FFFFFF;
    --line:      #D8E3EA;
    --score:     #140C0E;
    --score-ink: #F6F1F2;
    --score-dim: #B08A90;

    --f-shout: "Anton", "Arial Narrow", system-ui, sans-serif;
    --f-read:  "IBM Plex Sans", -apple-system, "Segoe UI", Roboto, sans-serif;
    --f-num:   "IBM Plex Mono", ui-monospace, "Cascadia Mono", monospace;

    --s--1: clamp(.79rem, .77rem + .1vw, .85rem);
    --s-0:  clamp(1rem, .97rem + .15vw, 1.07rem);
    --s-1:  clamp(1.15rem, 1.06rem + .4vw, 1.35rem);
    --s-2:  clamp(1.7rem, 1.35rem + 1.6vw, 2.6rem);
    --s-3:  clamp(2.6rem, 1.7rem + 4.2vw, 5.4rem);

    --gutter: clamp(1.1rem, .55rem + 2.4vw, 2.8rem);
  }

  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
      --rink:      #0E1417;
      --board:     #161E22;
      --board-2:   #1E282D;
      --ink:       #EEF3F6;
      --ink-soft:  #A3B0B6;
      --ink-faint: #74838A;
      --red:       #FF4257;
      --red-deep:  #B01128;
      --red-ink:   #14090C;
      --line:      #26333A;
      --score:     #090D0F;
      --score-ink: #F2F6F8;
      --score-dim: #A3767E;
    }
  }
  :root[data-theme="dark"] {
    --rink:      #0E1417;
    --board:     #161E22;
    --board-2:   #1E282D;
    --ink:       #EEF3F6;
    --ink-soft:  #A3B0B6;
    --ink-faint: #74838A;
    --red:       #FF4257;
    --red-deep:  #B01128;
    --red-ink:   #14090C;
    --line:      #26333A;
    --score:     #090D0F;
    --score-ink: #F2F6F8;
    --score-dim: #A3767E;
  }

  *,*::before,*::after { box-sizing: border-box; }

  body {
    margin: 0;
    background: var(--rink);
    color: var(--ink);
    font-family: var(--f-read);
    font-size: var(--s-0);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
  }

  h1,h2,h3 { margin:0; font-family: var(--f-shout); font-weight:400; line-height:.94; letter-spacing:.005em; text-transform:uppercase; text-wrap:balance; }
  p { margin:0; }
  a { color:inherit; }
  :focus-visible { outline:3px solid var(--red); outline-offset:2px; }

  .wrap { width:min(100% - var(--gutter)*2, 1160px); margin-inline:auto; }

  /* mono štítek — stadionový popisek, používá se všude místo emoji ikon */
  .label {
    font-family: var(--f-num); font-size:.72rem; font-weight:600;
    letter-spacing:.16em; text-transform:uppercase; color:var(--red);
  }

  /* ── pruh návrhu ─────────────────────────────────────────────────────── */
  .mock { background:var(--score); color:var(--score-dim); font-family:var(--f-num); font-size:.72rem; letter-spacing:.06em; padding:.5rem 0; }
  .mock .wrap { display:flex; flex-wrap:wrap; gap:.3rem 1.4rem; justify-content:space-between; }
  .mock b { color:var(--red); font-weight:700; letter-spacing:.14em; }

  /* ── horní lišta + hlavička ──────────────────────────────────────────── */
  .strip { background:var(--board); border-bottom:1px solid var(--line); font-family:var(--f-num); font-size:.74rem; letter-spacing:.05em; color:var(--ink-soft); }
  .strip .wrap { display:flex; flex-wrap:wrap; gap:.3rem 1.5rem; justify-content:space-between; padding:.45rem 0; }
  .strip a { color:var(--ink); text-decoration:none; font-weight:600; }

  header.site { background:var(--board); border-bottom:3px solid var(--red); position:sticky; top:0; z-index:30; }
  header.site .wrap { display:flex; align-items:center; gap:1.1rem; padding:.75rem 0; flex-wrap:wrap; position:relative; }

  .brand { display:flex; align-items:center; gap:.75rem; text-decoration:none; }
  .brand img { width:2.9rem; height:2.9rem; flex:none; display:block; }
  .brand b { font-family:var(--f-shout); font-weight:400; font-size:1.35rem; letter-spacing:.01em; text-transform:uppercase; display:block; line-height:1; }
  .brand span { font-family:var(--f-num); font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-faint); }

  nav.main { margin-inline-start:auto; display:flex; flex-wrap:wrap; gap:.1rem 1.5rem; font-family:var(--f-num); font-size:.8rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
  nav.main a { text-decoration:none; color:var(--ink-soft); padding:.35rem 0; border-bottom:3px solid transparent; }
  nav.main a:hover { color:var(--ink); }
  nav.main a[aria-current] { color:var(--ink); border-bottom-color:var(--red); }

  .burger { display:none; width:2.6rem; height:2.6rem; margin-inline-start:auto; flex:none; background:transparent; border:2px solid var(--ink); align-items:center; justify-content:center; cursor:pointer; }
  .burger i, .burger i::before, .burger i::after { display:block; width:1.1rem; height:2px; background:var(--ink); }
  .burger i { position:relative; }
  .burger i::before, .burger i::after { content:""; position:absolute; left:0; transition:transform .16s; }
  .burger i::before { top:-.38rem; } .burger i::after { top:.38rem; }
  .burger[aria-expanded="true"] i { background:transparent; }
  .burger[aria-expanded="true"] i::before { top:0; transform:rotate(45deg); }
  .burger[aria-expanded="true"] i::after { top:0; transform:rotate(-45deg); }

  .btn { display:inline-block; font-family:var(--f-num); font-size:.82rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:.85rem 1.6rem; text-decoration:none; border:2px solid transparent; cursor:pointer; transition:background .15s, color .15s; }
  .btn-red { background:var(--red); color:var(--red-ink); }
  .btn-red:hover { background:var(--red-deep); }
  .btn-out { border-color:currentColor; }
  .btn-out:hover { background:#fff; color:var(--red-deep); }

  /* ── hero: fotka + kruh na buly ──────────────────────────────────────── */
  .hero { position:relative; overflow:hidden; background:var(--score); color:#fff; }
  .hero .shot { position:absolute; inset:0; background: linear-gradient(97deg, rgba(20,12,14,.95) 0%, rgba(20,12,14,.86) 26%, rgba(20,12,14,.5) 54%, rgba(20,12,14,.15) 84%), url("/assets/hero.jpg") center 44%/cover no-repeat; }
  /* kruh na buly — ambientní, nekřičí */
  .hero .faceoff { position:absolute; right:-14vw; top:50%; translate:0 -50%; width:min(64vw,720px); aspect-ratio:1; border:2px solid rgba(255,255,255,.13); border-radius:50%; pointer-events:none; }
  .hero .faceoff::after { content:""; position:absolute; inset:22%; border:2px solid rgba(255,255,255,.09); border-radius:50%; }
  .hero .wrap { position:relative; padding-block:clamp(3.4rem,1.4rem + 9vw,7rem); }
  .hero .label { color:#fff; opacity:.8; }
  .hero h1 { font-size:var(--s-3); max-width:13ch; margin-top:.6rem; }
  .hero h1 em { font-style:normal; display:block; color:var(--red); }
  .hero .lede { margin-top:1.2rem; max-width:42ch; font-size:var(--s-1); color:#E4D6D9; }
  .hero .cta { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:2rem; }

  @media (prefers-reduced-motion: no-preference) {
    .hero h1, .hero .lede, .hero .cta { animation:slide .5s cubic-bezier(.2,.7,.3,1) both; }
    .hero .lede { animation-delay:.07s; }
    .hero .cta  { animation-delay:.14s; }
    @keyframes slide { from { opacity:0; transform:translateX(-1.4rem); } to { opacity:1; transform:none; } }
  }

  /* ── stadionové hodiny ───────────────────────────────────────────────── */
  .clockbar { background:var(--board); border-bottom:1px solid var(--line); }
  .clockbar .wrap { display:grid; gap:1px; grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr)); background:var(--line); border-inline:1px solid var(--line); }
  .cell { background:var(--board); padding:1rem 1.1rem; display:grid; gap:.15rem; }
  .cell .k { font-family:var(--f-num); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint); }
  .cell .v { font-family:var(--f-num); font-size:1.05rem; font-weight:600; font-variant-numeric:tabular-nums; }
  .cell .v.on { color:#0F7A44; }
  :root[data-theme="dark"] .cell .v.on, :root:not([data-theme="light"]) .cell .v.on { color:#57D391; }

  /* ── co je na ledě ───────────────────────────────────────────────────── */
  .ice { background:var(--score); color:var(--score-ink); border-bottom:3px solid var(--red); }
  .ice .wrap { display:grid; gap:1.4rem; grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr)); padding:1.3rem 0 1.5rem; align-items:start; }
  .ice .k { font-family:var(--f-num); font-size:.68rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--red); display:block; margin-bottom:.45rem; }
  .ice .now { font-family:var(--f-shout); font-size:clamp(1.5rem,1.1rem + 1.6vw,2.3rem); line-height:1; letter-spacing:.01em; }
  .ice .t { font-family:var(--f-num); font-size:.85rem; font-variant-numeric:tabular-nums; color:var(--score-dim); margin-top:.35rem; }
  .ice .soon { display:grid; gap:.4rem; }
  .ice .soon .r { display:grid; grid-template-columns:auto 1fr; gap:.7rem; font-family:var(--f-num); font-size:.82rem; font-variant-numeric:tabular-nums; }
  .ice .soon .r span:first-child { color:var(--score-dim); }
  .ice .src-note { font-family:var(--f-num); font-size:.66rem; letter-spacing:.08em; color:var(--score-dim); opacity:.75; }
  .ice .zamboni { color:var(--score-dim); }

  /* ── sekce ───────────────────────────────────────────────────────────── */
  section { padding-block:clamp(2.8rem,1.4rem + 4vw,5rem); }
  section > .wrap { display:grid; gap:clamp(1.4rem,.8rem + 1.8vw,2.4rem); }
  .head { display:grid; gap:.6rem; max-width:58ch; }
  .head h2 { font-size:var(--s-2); }
  .head p { color:var(--ink-soft); }
  /* jediná červená středová čára na stránce */
  .centre { height:3px; background:var(--red); border:0; margin:0; }

  /* ── výsledková tabule = denní menu ──────────────────────────────────── */
  .score { background:var(--score); color:var(--score-ink); border:2px solid var(--score); }
  .score-top { display:flex; flex-wrap:wrap; gap:.6rem 1.4rem; justify-content:space-between; align-items:baseline; padding:1.1rem clamp(1rem,.6rem + 1.4vw,1.8rem); border-bottom:2px solid rgba(255,255,255,.14); }
  .score-top .date { font-family:var(--f-shout); font-size:clamp(1.4rem,1rem + 1.4vw,2.1rem); letter-spacing:.02em; }
  .score-top .date span { color:var(--red); }
  .score-top .when { font-family:var(--f-num); font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; color:var(--score-dim); }

  .lines { padding:clamp(1rem,.6rem + 1.4vw,1.8rem); display:grid; gap:1.7rem; }
  .line > h3 { font-family:var(--f-num); font-size:.74rem; font-weight:700; letter-spacing:.2em; color:var(--red); display:flex; align-items:center; gap:.5rem; margin-bottom:.7rem; }
  .line > h3::before { content:""; width:.5rem; height:.5rem; background:var(--red); border-radius:50%; flex:none; }
  .line ul { list-style:none; margin:0; padding:0; }
  .row { display:grid; grid-template-columns:1fr auto; gap:.15rem 1.4rem; padding:.62rem 0; border-bottom:1px solid rgba(255,255,255,.09); }
  .row:last-child { border-bottom:0; }
  .row .nm { font-weight:500; }
  .row .g { font-family:var(--f-num); font-size:.8rem; font-weight:600; color:var(--score-dim); margin-inline-end:.5rem; }
  .row .cz { font-family:var(--f-num); font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
  .row .pat { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:.25rem; margin-top:.3rem; }
  .score-foot { padding:.9rem clamp(1rem,.6rem + 1.4vw,1.8rem); border-top:2px solid rgba(255,255,255,.14); font-family:var(--f-num); font-size:.76rem; color:var(--score-dim); }

  /* alergeny jako dresová čísla */
  .pat i {
    font-style:normal; font-family:var(--f-num); font-weight:700; font-size:.7rem; line-height:1;
    min-width:1.45rem; padding:.28rem .2rem; text-align:center;
    background:transparent; border:1px solid currentColor; color:var(--score-dim);
    font-variant-numeric:tabular-nums; cursor:help; touch-action:manipulation;
  }
  .pat i:hover { color:#fff; }
  /* na světlých kartách stejný odznak, jiné barvy */
  .onboard .pat i { color:var(--ink-faint); }
  .onboard .pat i:hover { color:var(--red); }
  .tip { position:fixed; z-index:60; max-width:15rem; background:var(--red); color:#fff; font-family:var(--f-read); font-size:.8rem; font-weight:600; line-height:1.3; padding:.45rem .65rem; pointer-events:none; }

  /* ── bílé mantinely: lístek, o nás, kontakt ──────────────────────────── */
  .board { background:var(--board); border:1px solid var(--line); padding:clamp(1.1rem,.6rem + 1.4vw,1.7rem); }
  .two { display:grid; gap:clamp(1.3rem,.8rem + 2vw,2.2rem); grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr)); align-items:start; }
  .onboard .line > h3 { color:var(--red); }
  .onboard .row { border-bottom-color:var(--line); }
  .onboard .row .g { color:var(--ink-faint); }

  .slot { aspect-ratio:4/3; background:var(--board-2); border:1px dashed var(--line); display:grid; place-items:center; text-align:center; color:var(--ink-faint); font-family:var(--f-num); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; }

  .pull { font-family:var(--f-shout); font-size:clamp(1.5rem,1.1rem + 1.6vw,2.2rem); line-height:1; color:var(--red); text-transform:uppercase; }

  .cards { display:grid; gap:1px; grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr)); background:var(--line); border:1px solid var(--line); }
  .card { background:var(--board); padding:1.2rem; display:grid; gap:.4rem; }
  .card .when { font-family:var(--f-num); font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); }
  .card b { font-family:var(--f-shout); font-weight:400; font-size:1.15rem; text-transform:uppercase; letter-spacing:.01em; }
  .card p { color:var(--ink-soft); font-size:var(--s--1); }

  .f { display:grid; gap:.35rem; }
  .f label { font-family:var(--f-num); font-size:.68rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); }
  .f input, .f select { font:inherit; font-family:var(--f-read); padding:.65rem .7rem; border:1px solid var(--line); background:var(--rink); color:var(--ink); width:100%; }
  .grid2 { display:grid; gap:.9rem; grid-template-columns:1fr 1fr; }
  .grid2 .full { grid-column:1/-1; }

  dl.hrs { margin:0; display:grid; grid-template-columns:auto 1fr; gap:.28rem 1.4rem; font-family:var(--f-num); font-size:.85rem; }
  dl.hrs dt { font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); }
  dl.hrs dd { margin:0; font-variant-numeric:tabular-nums; }
  ul.cont { list-style:none; margin:0; padding:0; display:grid; gap:.55rem; }
  ul.cont li { display:grid; grid-template-columns:6rem 1fr; gap:.8rem; }
  ul.cont .k { font-family:var(--f-num); font-size:.68rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); }

  footer.site { background:var(--score); color:var(--score-dim); padding-block:2.4rem; font-size:var(--s--1); }
  footer.site .wrap { display:grid; gap:1.4rem; grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr)); }
  footer.site b { font-family:var(--f-shout); font-weight:400; font-size:1.05rem; text-transform:uppercase; color:var(--score-ink); display:block; margin-bottom:.45rem; letter-spacing:.02em; }
  footer.site a { text-decoration:none; }
  .fine { font-family:var(--f-num); font-size:.74rem; color:var(--ink-soft); }

  @media (prefers-reduced-motion: reduce) { *,*::before,*::after { animation:none !important; transition:none !important; } }
  @media (max-width: 640px) {
    .grid2 { grid-template-columns:1fr; }
    ul.cont li { grid-template-columns:1fr; gap:.05rem; }
    .burger { display:inline-flex; }
    nav.main { display:none; position:absolute; left:0; right:0; top:100%; flex-direction:column; gap:0; background:var(--board); border-bottom:3px solid var(--red); padding:.2rem var(--gutter) .7rem; }
    nav.main.open { display:flex; }
    nav.main a { padding:.7rem 0; border-bottom:1px solid var(--line); font-size:.9rem; }
    nav.main a:last-child { border-bottom:0; }
    .hero .faceoff { right:-40vw; opacity:.7; }
  }

  /* ════════════════════════════════════════════════════════════════════
     Zivy web — co navrh jako ukazka nepotreboval
     ════════════════════════════════════════════════════════════════════ */

  /* Fotky misto zastupnych ramecku. `.slot` ze zivého webu zmizel: dashed
     ramecek s popiskem "MISTO PRO FOTKU" je poznamka pro klienta, ne obsah. */
  .foto { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; background:var(--board-2); border:1px solid var(--line); }
  .foto.sirka { aspect-ratio:16/9; }

  /* Mapa: misto vlozeneho ramu tretí strany (cookies, sledovani) odkaz ven. */
  .mapa { display:grid; gap:.3rem; padding:1.1rem; background:var(--board-2); border:1px solid var(--line); text-align:center; }
  .mapa b { font-family:var(--f-shout); font-weight:400; font-size:1.05rem; text-transform:uppercase; letter-spacing:.02em; }
  .mapa span { font-size:var(--s--1); color:var(--ink-soft); }

  /* `[hidden]` nastavuje display:none, ale tridy s vlastnim displayem
     (treba .btn) ho prebijou specificitou. Tlacitko "Zacit znovu" pak bylo
     videt i pred zacatkem hry. */
  [hidden] { display: none !important; }

  /* Hra v modalnim okne. `<dialog>` ma vlastni vychozi styl, ktery je
     potreba prebit — jinak sedi uprostred v uzkem ramecku s ramem. */
  .hra-okno {
    width: min(100% - 2rem, 46rem);
    max-height: calc(100dvh - 2rem);
    padding: 0;
    border: 0;
    background: var(--board);
    color: var(--ink);
    overflow: auto;
    overscroll-behavior: contain;
  }
  .hra-okno::backdrop { background: rgba(20,12,14,.72); }
  .hra-vnitrek { padding: clamp(1rem,.6rem + 1.6vw,1.6rem); display:grid; gap:1rem; }
  .hra-hlavicka { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
  .hra-hlavicka h2 { font-size:var(--s-1); margin:.2rem 0 .3rem; }
  .hra-hlavicka .fine { margin:0; }
  .hra-zavrit {
    flex:none; width:2.4rem; height:2.4rem; line-height:1;
    font-family:var(--f-read); font-size:1.6rem;
    background:transparent; color:var(--ink-soft);
    border:1px solid var(--line); cursor:pointer;
  }
  .hra-zavrit:hover { color:var(--red); border-color:var(--red); }
  .hra-zavrit:focus-visible { outline:2px solid var(--red); outline-offset:2px; }

  /* V okne uz je platno mensi, at se vejde i se soupiskou. */
  .hra-okno #hra-platno { aspect-ratio:16/11; max-height:46dvh; }
  .hra-okno .soupiska { margin-top:0; }

  /* Hra: najezd na branu. Platno ma pevny pomer stran, at neposkakuje
     rozlozeni stranky, nez se JavaScript nacte. */
  .hriste { border:1px solid var(--line); background:var(--board); }
  #hra-platno { display:block; width:100%; aspect-ratio:16/10; max-height:62vh; touch-action:manipulation; cursor:crosshair; }
  #hra-platno:focus-visible { outline:3px solid var(--red); outline-offset:-3px; }
  .hra-pruh { display:flex; flex-wrap:wrap; align-items:center; gap:.8rem 1.4rem; padding:.8rem clamp(.8rem,.5rem + 1vw,1.4rem); border-top:1px solid var(--line); }
  .hra-pruh > div { display:grid; gap:.1rem; }
  .hra-pruh .k { font-family:var(--f-num); font-size:.66rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-faint); }
  .hra-pruh .v { font-family:var(--f-shout); font-size:1.5rem; line-height:1; font-variant-numeric:tabular-nums; }
  .hra-pruh p { margin:0; flex:1 1 12rem; font-size:var(--s--1); color:var(--ink-soft); }

  /* "Prave ted" v pasu o ledu odemyka hru — bez naparadeni, je to easter egg.
     Jen aby bylo poznat, ze na to jde sahnout z klavesnice. */
  #led-ted { cursor: pointer; }
  #led-ted:focus-visible { outline:2px solid #fff; outline-offset:4px; }

  /* Zapis na soupisku po dohrani. */
  .hra-zapis { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; padding:0 clamp(.8rem,.5rem + 1vw,1.4rem) 1rem; }
  .hra-zapis label { font-family:var(--f-num); font-size:.66rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-faint); width:100%; }
  .hra-zapis input { font:inherit; font-family:var(--f-read); padding:.55rem .7rem; border:1px solid var(--line); background:var(--rink); color:var(--ink); flex:1 1 12rem; min-width:0; }
  .hra-zapis .fine { width:100%; margin:0; }

  /* Soupiska strelcu. */
  .soupiska { border:1px solid var(--line); background:var(--board); margin-top:1.2rem; }
  .soupiska-hlava { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:.4rem 1rem; padding:.8rem clamp(.8rem,.5rem + 1vw,1.4rem); border-bottom:1px solid var(--line); }
  .soupiska-hlava .k { font-family:var(--f-num); font-size:.68rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--red); }
  .soupiska-hlava .v { font-family:var(--f-num); font-size:.8rem; color:var(--ink-faint); }
  .soupiska ol { list-style:none; margin:0; padding:0; counter-reset: poradi; }
  .soupiska li { counter-increment: poradi; display:grid; grid-template-columns:2.2rem 1fr auto; gap:.8rem; align-items:baseline; padding:.5rem clamp(.8rem,.5rem + 1vw,1.4rem); border-bottom:1px solid var(--line); }
  .soupiska li:last-child { border-bottom:0; }
  .soupiska li::before { content: counter(poradi) "."; font-family:var(--f-num); font-size:.8rem; color:var(--ink-faint); font-variant-numeric:tabular-nums; }
  .soupiska li:nth-child(-n+3)::before { color:var(--red); font-weight:700; }
  .soupiska .g { font-family:var(--f-num); font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }

  /* Soupiska v adminu — jeden radek, jmeno, skore, tlacitko. */
  .strelec { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1rem; padding:.5rem 0; border-bottom:1px solid var(--line); }
  .strelec:last-child { border-bottom:0; }
  .strelec > span:first-child { flex:1 1 10rem; min-width:0; word-break:break-word; }

  /* Editovatelny nahled v adminu. Policka sedi v tmave tabuli, takze
     musi byt svetla — jinak by v ni zmizela. */
  .upr-sekce {
    font:inherit; font-family:var(--f-num); font-weight:700; font-size:.78rem;
    letter-spacing:.18em; text-transform:uppercase; color:var(--red);
    background:transparent; border:0; border-bottom:1px solid rgba(255,255,255,.2);
    padding:.2rem 0; margin-bottom:.6rem; width:100%;
  }
  .upr-radek { display:grid; grid-template-columns:1fr 6rem 7rem; gap:.4rem; padding:.35rem 0; border-bottom:1px solid rgba(255,255,255,.09); }
  .upr-radek input {
    font:inherit; font-family:var(--f-read); font-size:.9rem;
    background:rgba(255,255,255,.06); color:var(--score-ink);
    border:1px solid rgba(255,255,255,.14); padding:.4rem .5rem; min-width:0;
  }
  .upr-radek input:focus { background:rgba(255,255,255,.12); outline:2px solid var(--red); outline-offset:1px; }
  .upr-radek.ma-navrh input:first-child { border-color:var(--red); }
  .upr-navrh { grid-column:1/-1; margin:.15rem 0 0; font-family:var(--f-num); font-size:.72rem; color:#FF8FA0; }
  @media (max-width: 640px) { .upr-radek { grid-template-columns:1fr; } }

  /* Vysledek kontroly pravopisu nad nahledem. */
  .pravopis { background:var(--board-2); border:1px solid var(--line); padding:.9rem 1.1rem; margin-bottom:1.1rem; }
  .pravopis b { font-family:var(--f-num); font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; }
  .pravopis ul { margin:.5rem 0 0; padding-inline-start:1.1rem; }

  /* Telefon misto formulare — cislo je tu to hlavni, at je videt. */
  .telefon-velky { font-family:var(--f-shout); font-size:clamp(1.8rem,1.2rem + 2.4vw,2.8rem); line-height:1.1; margin:.6rem 0 .2rem; }
  .telefon-velky a { color:var(--red); text-decoration:none; }

  /* Rezervace: hlaska po odeslani a chyby u poli. Formular v navrhu nic
     neodesílal, takze ani jedno nemel. */
  .uspech, .chyba { padding:.8rem 1rem; margin-bottom:1.1rem; font-size:var(--s--1); border-inline-start:4px solid; }
  .uspech { background:#EAF6EE; border-color:#1E7B3C; color:#13502A; }
  .chyba  { background:#FCEAED; border-color:var(--red); color:var(--red-deep); }
  .chyba-pole { font-family:var(--f-num); font-size:.72rem; font-weight:600; color:var(--red-deep); }
  .f [aria-invalid="true"] { border-color:var(--red); }

  /* Past na roboty. Nesmi zmizet pres display:none — nektere vyplnovace
     skryta pole preskoci a past by nechytila nic. */
  .past { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

  /* Pruh s otviraci dobou umi i "zavreno" — navrh znal jen OTEVRENO. */
  .clockbar .v.off { color:var(--ink-faint); }

  /* Pas o ledu bez rozpisu: dva sloupce misto tri. */
  .ice p { color:var(--score-dim); font-size:var(--s--1); line-height:1.5; }
  .ice a { color:var(--score-ink); }

  /* Viditelne zamereni klavesnici — na cervene i na tmave. */
  :is(a,button,input,select,.pat i):focus-visible { outline:2px solid var(--red); outline-offset:2px; }
  .hero a:focus-visible, .score :is(a,.pat i):focus-visible, .ice a:focus-visible { outline-color:#fff; }
