/* FMLIGA - styl aplikace.
   Prevzato z prototypu web/generator/web.mjs. Zatim jen to, co potrebuje
   tabulka; zbytek pribude spolu s dalsimi strankami.

   VZHLED JE JEN BLOK PROMENNYCH. Prepina se atributem `data-vzhled`
   na <html> a VYCHOZI JE TO, CO SEDI NA :root - nikdy hodnota atributu.

     (nic)    Zpravy   svetle seda strana, bile karty  - VYCHOZI
     tma      cerna, cervena z kuzelky
     noc      Nord     modroseda, porad tmava
     gruvbox  Gruvbox  tepla retro tmava
     sepie    Solarized Light - tepla papirova, bez bileho svitu

   Do 3. 9. 2026 byla vychozi tma - kuzelna po setmeni, jak to bylo od
   zacatku. Uzivatel si pak vybral Zpravy, takze si obe jen prohodily
   misto; tma zadnou barvu neztratila.

   V pravidlech NENI ANI JEDNA BARVA NATVRDO - vsechno jde pres var().
   Kdyz nekde pribude `#hex`, ve dvou ze tri vzhledu bude spatne, a pozna
   se to az u nekoho na obrazovce. Hlida to app/zkouska_vzhledu.py. */
:root{
  color-scheme:light;
  /* PODIUM KOLA STESTI. Zamerne TOTEZ ve vsech vzhledech: losuje se
     na notebooku v herne, klidne na externi televizi, a tmavy podklad
     je tam citelnejsi. Efekt tim vypada stejne bez ohledu na to, jak
     ma kdo nastaveny prohlizec.

     Stoji to tady, v HLAVNIM `:root`, ne ve vlastnim bloku - druhy blok
     `:root` vypada jako dalsi paleta a jednou uz tise prepsal celou
     tmavou. A jsou to promenne, ne barvy natvrdo: pravidlo "nic
     natvrdo" plati i na to, co se schvalne nemeni. */
  /* PROJEKTOR. Vysledky na televizi v herne - CERNE NA BILEM bez
     ohledu na vybrany vzhled. Je to jina situace nez prohlizeni webu:
     cte se z dalky a rozhoduje kontrast, ne vkus. Proto tady, mimo
     palety - stejne jako podium Kola stesti. */
  --proj-bg: #ffffff;
  --proj-ink: #000000;
  --proj-linka: #d0d0d0;
  --proj-akcent: #c4161c;
  /* Bile na cernem na vyzkouseni - prepina se na miste klavesou I.
     Barvy patri sem, ne do pravidla: v pravidlech nesmi byt zadna
     natvrdo a zkouska to hlida. */
  --proj-inv-bg: #000000;
  --proj-inv-ink: #ffffff;
  --proj-inv-linka: #3a3a3a;
  --proj-inv-akcent: #ff5a4a;
  /* LETISTNI TABULE. Cerna se zlutou je schema, ktere maji odjezdove
     tabule odjakziva - od mechanickych Solari po dnesni LED - a je
     to volba pro CITELNOST z dalky a za spatneho svetla, ne ozdoba.
     Bily text je vyhrazeny prvnimu mistu, jako "BOARDING" na tabuli. */
  --proj-fids-bg: #0a0a0a;
  --proj-fids-ink: #f0b429;
  --proj-fids-linka: #33291a;
  --proj-fids-akcent: #ffffff;
  --los-podklad:#0B0D10;  /* plocha, na ktere se toci kolo */
  --los-linka:#242B36;    /* jeji obrys */
  --los-sipka:#FF4A38;    /* rucicka nahore - cervena z kuzelky */
  --los-stin:rgba(0,0,0,.6);
  --los-vysec:rgba(0,0,0,.34);      /* stridave vysece */
  --los-vysec-2:rgba(0,0,0,.16);
  --los-rez:rgba(255,255,255,.16);  /* jejich obrys */
  --los-cislo:#FFFFFF;              /* cislo na vyseci */
  --los-vyhra:#FFB92E;              /* vylosovana vysec */
  --los-vyhra-ink:#1A1200;
  --los-stred:#101318;              /* stred kola */
  --los-popis:rgba(255,255,255,.65);
  --paper:#F0F2F3;        /* strana je svetle seda, ne bila */
  --band:#E7EAEC;         /* hlavicka */
  --surface:#FFFFFF;      /* karty */
  --surface-2:#F5F6F7;    /* hlavicky a paticky tabulek */
  --line:#D3D7DA;
  --line-solid:#B2B9BE;
  --ink:#2B3135;
  --muted:#434D52;
  --faint:#5E6970;
  --accent:#C11B1B;       /* cervena z kuzelky */
  --accent-ink:#9A1517;   /* tmavsi varianta, na najeti */
  --zlata:#8A6100;        /* okrova - meta 250+; zlata by na bile zmizela */
  --line-strong:#B2B9BE60;
  --shadow:0 1px 0 rgba(43,49,53,.03), 0 12px 28px -20px rgba(43,49,53,.4);
  --f-disp:"Oswald","Arial Narrow",Helvetica,sans-serif;
  --f-body:"Source Serif 4",Georgia,"Times New Roman",serif;
  --f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  /* Odvozene tony. Driv stály natvrdo v pravidlech, coz drzelo, dokud byl
     vzhled jeden. Ve svetlem prasknou prvni: tmave pozadi pod zlatym
     textem musi na bile byt svetly nadech, ne tmavy. */
  --na-akcentu:#fff;      /* text na cervene - ta je cervena ve vsech vzhledech */
  --ink-jas:#000000;      /* nejjasnejsi text, 250+ */
  --stin-barva:rgba(43,49,53,.5);      /* barva vrzenych stinu */
  --zaves:rgba(43,49,53,.45);/* pozadi za modalnim oknem */
  --pas-bg:#DFE3E5;       /* pas webu - o stupen tmavsi nez hlavicka */
  --pruh-bg:#F7F8F9;      /* odlisena sekce v tabulce (devitkova kola mixu) */
  --zlata-hrana:#D9B85F;  /* hrana zlateho odznaku */
  --zlata-tlum:#FCF5E4;   /* pozadi zvyrazneneho radku */
  --zlata-tlum2:#F6EBCF;  /* tyz radek pod kurzorem */
  --zelena:#2E7D32;       /* hrana "hotovo" */
  --zelena-ink:#1B6E2C;   /* text "hotovo" */
  --lesk:rgba(43,49,53,.07); /* odlesk na skle bubnu */
  --foto-zavoj:rgba(240,242,243,.80);      /* pres fotku, at je cist text */
  --foto-zavoj-vic:rgba(240,242,243,.56);  /* druhy stupen - fotka vic videt */
  --pas-vyska:40px;      /* jen radek MENU - titul se nekotvi */
  --na-akcentu:#fff;
  /* SIRKA STRANKY. Drzi ji pas, hlavicka, obsah i paticka a musi se
     menit VSECHNY NAJEDNOU - proto je to promenna, ne ctyri cisla.
     Do 14. 9. 2026 to bylo 1080 px zapsane ctyrikrat; roztazeno o 1 cm
     na kazdou stranu (2 x 37,8 px), protoze husta tabulka zapisu se do
     1080 uz nevesla. */
  --sirka-stranky:1156px;
  /* Vzkaz pro nas: formular i odstavce kolem nej maji TOTEZ cislo.
     V PIXELECH, ne v `ch` - ty se pocitaji z pisma toho prvku, takze
     "84 znaku" bylo u karty (16 px) a u poznamky pod ni (12,5 px)
     pokazde jinak siroke a odstavce koncily jinde nez formular
     (uzivatel 18. 9. 2026). Tataz past jako `em` u sloupcu projektoru. */
  --vzk-sirka:680px;
}

/* ==================================================================
   SADY PISEM

   Tataz uvaha jako u vzhledu: pismo jsou tri promenne, takze sada je
   jeden blok. Prepina se atributem `data-font` na <html>; vychozi sada
   sedi na :root, takze nema hodnotu.

     (nic)      Saira Condensed + Source Sans 3    sportovni, uzka
     novinovy   Oswald + Source Serif 4            vysledkovy servis
     jedna      Fira Sans Condensed + Fira Sans    jedna rodina na vse
     moderni    Inter Tight + Inter                cistá, nejlepsi cislice

   A ctyri okoukane z webu, ktere uzivatel jmenoval (3. 9. 2026):

     idnes      Fira Sans + Inter        presne to, co ma idnes.cz
     bowling    Roboto Condensed + Open Sans   bowlingovaliga.cz
                                               i jadran.xbowling.cz
     systemove  bez webfontu             novinky.cz jede na Arialu; jejich
                                         "Trivia Seznam" je komercni font
                                         Suitcase Type, ten pouzit nejde
     citelne    Atkinson Hyperlegible    delane pro slabozrake

   Kazda sada ma tri role a ty se nemichaji:
     --f-disp   nadpisy a cisla, na ktera se kouka
     --f-body   text
     --f-mono   tabulkove cislice, kde MUSI sedet sloupce pod sebou

   Soubory se stahuji AZ PODLE VOLBY (viz _vzhled_hlava.html) - nacitat
   deset rodin dopredu kvuli jedne pouzite nema smysl.
   ================================================================== */
/* Puvodni vychozi sada - uzka sportovni. Vychozi byla do 3. 9. 2026,
   pak si uzivatel vybral novinovou (Oswald + serif). */
[data-font="sportovni"]{
  --f-disp:"Saira Condensed","Arial Narrow",Helvetica,sans-serif;
  --f-body:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
[data-font="jedna"]{
  --f-disp:"Fira Sans Condensed","Arial Narrow",Helvetica,sans-serif;
  --f-body:"Fira Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"Fira Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
[data-font="moderni"]{
  --f-disp:"Inter Tight",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
/* idnes.cz: v hlavicce jim visi `firasans-semibold.woff2` a
   `inter-regular.woff2` - tedy Fira na nadpisy, Inter na text. Neni to
   totez co sada "jedna" ani "moderni": ty jedou na jedne rodine, tohle
   je MIX, a prave tim to vypada jako zpravodajsky web. */
[data-font="idnes"]{
  --f-disp:"Fira Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
/* bowlingovaliga.cz i jadran.xbowling.cz jedou na temze: Open Sans
   a Roboto (Jadran si je tahá z Google Fonts, ABL je ma u sebe). Je to
   tedy pismo, na ktere jsou lidi z kuzelny zvykli. */
[data-font="bowling"]{
  --f-disp:"Roboto Condensed","Arial Narrow",Helvetica,sans-serif;
  --f-body:"Open Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"Roboto Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
/* Bez webfontu vubec - to, co ma prohlizec doma. Nejrychlejsi (nic se
   nestahuje) a na kazdem systemu jine. Novinky.cz jsou v podstate tohle;
   jejich nadpisove "Trivia Seznam" je komercni a pouzit ho nejde. */
/* seznam.cz nema webfont ZADNY - v jejich stylopisu stoji
   `font-family:Arial CE,Arial,Helvetica CE,Helvetica,sans-serif`
   a na strojopis `Courier New`. "Font ze Seznamu" je tedy Arial;
   jejich nadpisove Trivia Seznam je komercni pismo Suitcase Type
   a pouzit ho nejde.

   Neni to totez co sada "systemove": ta zacina `system-ui`, tedy na
   Windows Segoe UI. Tohle je Arial, at uz ma clovek cokoli. */
[data-font="seznam"]{
  --f-disp:Arial,"Helvetica Neue",Helvetica,sans-serif;
  --f-body:Arial,"Helvetica Neue",Helvetica,sans-serif;
  --f-mono:"Courier New",Courier,monospace;
}
[data-font="systemove"]{
  --f-disp:system-ui,-apple-system,"Segoe UI",Arial,Helvetica,sans-serif;
  --f-body:system-ui,-apple-system,"Segoe UI",Arial,Helvetica,sans-serif;
  --f-mono:ui-monospace,SFMono-Regular,"Cascadia Mono",Consolas,monospace;
}
/* Atkinson Hyperlegible - kresleny pro slabozrake, znaky se od sebe
   lisi vic nez u beznych bezpatkovych (nula, O, I, l). Na strance plne
   cisel to neni marnost. */
[data-font="citelne"]{
  --f-disp:"Atkinson Hyperlegible",system-ui,-apple-system,sans-serif;
  --f-body:"Atkinson Hyperlegible",system-ui,-apple-system,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}

/* ------------------------------------------------------------------- NOC

   Nord - modrosede polarni schema. Porad tmavy vzhled, ale je videt, ze
   je vlastni: pozadi #2E3440 je od cerne trikrat dal nez byl puvodni
   "sero" #171A21, ktery se od tmy nedal rozeznat.

   Zluta z Nordu (#EBCB8B) sedne na roli zlate lepe nez cokoli vlastniho
   a cervena je ztepla, aby na modrosedem podkladu neskripala. */
[data-vzhled="noc"]{
  color-scheme:dark;
  --paper:#2E3440;
  --band:#2B303B;
  --surface:#343B48;
  --surface-2:#3B4252;
  --line:#434C5E;
  --line-solid:#4C566A;
  --ink:#ECEFF4;
  --muted:#C2CAD8;
  --faint:#98A2B4;
  --accent:#D65B67;
  --accent-ink:#EE8E95;
  --zlata:#EBCB8B;
  --line-strong:#4C566A60;
  --shadow:0 1px 0 rgba(255,255,255,.04), 0 18px 40px -22px #1B1F26;
  --na-akcentu:#fff;
  --ink-jas:#FFFFFF;
  --stin-barva:#1B1F26;
  --zaves:rgba(27,31,38,.74);
  --pas-bg:#272C36;
  --pruh-bg:#333A46;
  --zlata-hrana:#7C6737;
  --zlata-tlum:#3A3627;
  --zlata-tlum2:#45402E;
  --zelena:#5B8A5F;
  --zelena-ink:#A3BE8C;
  --lesk:rgba(255,255,255,.07);
  --foto-zavoj:rgba(28,32,40,.83);
  --foto-zavoj-vic:rgba(28,32,40,.63);
}

/* ----------------------------------------------------------------- SEPIE

   Solarized Light - tepla papirova bez modre slozky. Tohle je to skutecne
   "neco mezi": svetle, ale bez bileho svitu, takze vecer nepali.

   Karta je SVETLEJSI nez stranka, obracene nez v tmavych vzhledech - tak
   to na svetlem podkladu funguje, jinak by karty vypadaly jako diry. */
[data-vzhled="sepie"]{
  color-scheme:light;
  --paper:#F2EAD5;
  --band:#EDE4CC;
  --surface:#FDF6E3;
  --surface-2:#F0E7CF;
  --line:#E2D7B8;
  --line-solid:#C8B994;
  --ink:#3B3226;
  --muted:#5F5546;
  --faint:#6E6353;
  --accent:#B02A1E;
  --accent-ink:#8E2018;
  --zlata:#7A5C0A;
  --line-strong:#C8B99460;
  --shadow:0 1px 0 rgba(255,255,255,.55), 0 12px 28px -20px rgba(59,50,38,.5);
  --na-akcentu:#fff;
  --ink-jas:#1B1610;
  --stin-barva:rgba(59,50,38,.45);
  --zaves:rgba(59,50,38,.45);
  --pas-bg:#E7DCBF;
  --pruh-bg:#F8F1DE;
  --zlata-hrana:#BFA152;
  --zlata-tlum:#F7EBC8;
  --zlata-tlum2:#EFE0B2;
  --zelena:#5A7A28;
  --zelena-ink:#46661C;
  --lesk:rgba(59,50,38,.06);
  --foto-zavoj:rgba(242,234,213,.78);
  --foto-zavoj-vic:rgba(242,234,213,.56);
}

/* --------------------------------------------------------------- GRUVBOX

   Gruvbox (Pavel Pertsev) - tepla retro tmava. Proti Nordu, ktery je
   studeny a modrosedy, je tahle hneda a zluta; vedle sebe je nezamenite.
   Cervena z kuzelky se sem hodi lip nez kamkoli jinam. */
[data-vzhled="gruvbox"]{
  color-scheme:dark;
  --paper:#282828;
  --band:#1D2021;
  --surface:#32302F;
  --surface-2:#3C3836;
  --line:#504945;
  --line-solid:#665C54;
  --ink:#FBF1C7;
  --muted:#D5C4A1;
  --faint:#A89984;
  --accent:#FB4934;
  --accent-ink:#FE8019;
  --zlata:#FABD2F;
  --line-strong:#665C5460;
  --shadow:0 1px 0 rgba(255,255,255,.04), 0 18px 40px -22px #1D2021;
  --na-akcentu:#fff;
  --ink-jas:#FFFFFF;
  --stin-barva:#1D2021;
  --zaves:rgba(29,32,33,.74);
  --pas-bg:#1D2021;
  --pruh-bg:#32302F;
  --zlata-hrana:#7C6231;
  --zlata-tlum:#3A3320;
  --zlata-tlum2:#453C26;
  --zelena:#689D6A;
  --zelena-ink:#B8BB26;
  --lesk:rgba(255,255,255,.06);
  --foto-zavoj:rgba(40,40,40,.82);
  --foto-zavoj-vic:rgba(40,40,40,.58);
}

/* ---------------------------------------------------------------- ZPRAVY

   Svetly vzhled ceskych zpravodajskych webu: strana je SVETLE SEDA,
   obsah lezi na bilych kartach. O to jde - "bila" a "svetla" nejsou
   totez a plna bila na cele plose sviti.

   BARVY JSOU OPSANE Z IDNES.CZ, ne vymyslene. Jejich stylopis
   (1gr.cz/css/idn4/) drzi celou skalu neutralu:

     #F0F2F3  pozadi strany      #75868E  ztlumeny text
     #D3D7DA  linky              #2B3135  text - neni to cerna
     #B2B9BE  silnejsi linky     #C11B1B  cervena

   CO SE NEPREVZALO: iDNES ma znacku modrou (#1B3E7A) a pas v ni.
   Nase je cervena z kuzelky, takze modra by sem netahla cizi znacku -
   pas je proto neutralne sedy a akcent zustava cerveny. Shoda je
   nahodna a prijemna: jejich cervena #C11B1B a nase svetla varianta
   #C4161C se lisi o chlup.

   --faint je tmavsi nez jejich #75868E schvalne: hlavicky tabulek jsou
   maly text a na bile karte by #75868E nedosahl na 4,5:1. */
/* ------------------------------------------------------------------ TMA

   Cerna a cervena z kuzelky - kuzelna po setmeni, jak web vypadal od
   zacatku. Do 3. 9. 2026 to byl vychozi vzhled a sedel na `:root`;
   pak si uzivatel vybral jako vychozi Zpravy, takze si tma vzala
   vlastni blok a :root prevzal jeji misto. Mechanismus je porad
   tyz: VYCHOZI JE TO, CO SEDI NA :root. */
[data-vzhled="tma"]{
  color-scheme:dark;
  --paper:#000000;
  --band:#07090C;
  --surface:#0D1015;
  --surface-2:#151920;
  --line:#1D2229;
  --line-solid:#2E353F;
  --ink:#F4F7FC;
  --muted:#98A6BB;
  --faint:#6A7789;
  --accent:#FF4A38;
  --accent-ink:#FF6E5E;
  --zlata:#FFB92E;
  --line-strong:#2E353F60;
  --shadow:0 1px 0 rgba(255,255,255,.03), 0 18px 40px -22px #000;
  --ink-jas:#FFFFFF;
  --stin-barva:#000;
  --zaves:rgba(0,0,0,.72);
  --pas-bg:#04060A;
  --pruh-bg:#0F1319;
  --zlata-hrana:#7A5A16;
  --zlata-tlum:#17130A;
  --zlata-tlum2:#241C0A;
  --zelena:#2E7D32;
  --zelena-ink:#7FD69B;
  --lesk:rgba(255,255,255,.10);
  --foto-zavoj:rgba(0,0,0,.82);
  --foto-zavoj-vic:rgba(0,0,0,.62);
}

/* ------------------------------------------------------------ FOTKA

   Fotka na pozadi je NEZAVISLA na vzhledu - musi jit pod kazdy z nich,
   takze zavoj pres ni je v kazde palete vlastni: pres tmavy vzhled
   cerny, pres svetly bily.

   Lezi na <html>, ne na <body>: telo ma vlastni pozadi a fotka pod nim
   by nebyla videt. Zavoj je prvni vrstva TEHOZ pozadi, takze se nemusi
   nic prekryvat pseudoprvkem a nepřekazi to zadnemu z-indexu.

   Karty jsou nepruhledne (--surface), takze text lezi porad na plne
   barve; fotka je videt v okrajich stranky. Kdyby prosvitala pod
   tabulkami, cisla by se spatne cetla - o to jde.

   Silny zavoj (87-90 %) je zamer. Je to nalada, ne obrazek. */
/* KTERA FOTKA. Je to zvlast od sily zavoje - jedno je "co", druhe
   "jak moc".

   VYCHOZI JE HERNA - byla to hlavni fotka titulni strany
   skcncprodukt.cz. Ta i skladanka odtud pochazeji; web uz nezije
   a Wayback ma pod /web/ jen PDF, takze jedina kopie je ta, ktera
   byla na disku. */
html{--foto-obrazek:url("skladanka.jpg")}
html[data-obrazek="herna"]{--foto-obrazek:url("herna.jpg")}
html[data-obrazek="boty"]{--foto-obrazek:url("boty.jpg")}

html[data-foto]{
  background-color:var(--paper);
  background-image:linear-gradient(var(--foto-zavoj), var(--foto-zavoj)),
                   var(--foto-obrazek);
  background-size:cover;
  background-position:center center;
  background-attachment:fixed;
  background-repeat:no-repeat;
}
html[data-foto] body{background:transparent}
/* OBSAH LEZI NA PAPIRE, ne primo na fotce. Bez toho se vysledky ztraceji
   v kuzelkach - nahlasil uzivatel 3. 9. 2026 a na snimku to bylo videt
   presne: tabulka bez karty stala primo na obrazku a datumy zmizely.

   Fotka tak zustane videt v okrajich a za pasem, kde se nic necte, a
   cisla maji pod sebou plnou barvu. Je to zaroven duvod, proc smi byt
   zavoj slabsi nez driv - fotce uz nic necha prekazet. */
html[data-foto] .wrap{background:var(--paper);border-radius:8px;
  box-shadow:0 20px 60px -30px var(--stin-barva);
  margin-top:18px;margin-bottom:28px}
@media (max-width:760px){
  html[data-foto] .wrap{border-radius:0;margin-top:0;margin-bottom:0}
}
/* Druhy stupen: tenci zavoj, fotka je vic videt. Dva stupne proto, ze
   "vic" je vec vkusu a hadat za nekoho jednu hodnotu nema smysl. */
html[data-foto="2"]{
  background-image:linear-gradient(var(--foto-zavoj-vic), var(--foto-zavoj-vic)),
                   var(--foto-obrazek);
}
/* Na mobilu je `fixed` drahe a nekde se chova divne - tam at se posouva
   s obsahem. */
@media (max-width:760px){html[data-foto]{background-attachment:scroll}}

/* NASTAVENI VZHLEDU je pod jednim slovem, ne rozlozene v pasu. Ctyri
   tlacitka vzhledu, fotka a seznam pisem zabraly pul radku a pas se
   lamal na dva. Je to nastaveni, ne obsah - at zabira jedno slovo. */
.pas-nastaveni{position:relative;margin-left:10px}
.pas-nastaveni>summary{list-style:none;cursor:pointer;
  font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  font-size:15px;letter-spacing:.02em;color:var(--muted);white-space:nowrap;
  padding:9px 12px 11px;border-bottom:3px solid transparent}
.pas-nastaveni>summary::-webkit-details-marker{display:none}
.pas-nastaveni>summary::after{content:" ▾";color:var(--faint)}
.pas-nastaveni>summary:hover{color:var(--ink)}
.pas-nastaveni[open]>summary{color:var(--ink);border-bottom-color:var(--accent)}
.pas-nabidka{position:absolute;right:0;top:100%;z-index:70;min-width:250px;
  background:var(--surface);border:1px solid var(--line-solid);border-radius:5px;
  box-shadow:var(--shadow);padding:12px 14px 14px}
.pas-nabidka .pas-popisek{margin:10px 0 5px;font-family:var(--f-mono);
  font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--faint)}
.pas-nabidka .pas-popisek:first-child{margin-top:0}
/* Predel uvnitr nabidky. Klub 9 stoji hned pod Klubem 250 a musi byt
   videt, ze to k sobe nepatri - cisla se nescitaji. Staci na to CARA;
   popisek i vysvetlujici veta tu byly a sly pryc (uzivatel
   28. 9. 2026) - nabidka neni misto na vysvetlovani. */
.pas-nabidka .pas-oddeleno{margin-top:9px;padding-top:9px;
  border-top:1px solid var(--line-solid)}
.pas-nabidka .pas-pismo select,
.pas-nabidka .pas-obrazek select{width:100%}
.pas-obrazek{display:inline-block;margin-left:8px}
.pas-obrazek select{font-family:var(--f-mono);font-size:11px;color:var(--faint);
  background:var(--surface);border:1px solid var(--line-solid);border-radius:3px;
  padding:3px 4px;cursor:pointer}
.pas-nabidka .pas-obrazek{display:block;margin:6px 0 0}

.pas-vzhled{display:inline-flex;align-items:center;gap:0}
.pas-vzhled button{font-family:var(--f-mono);font-size:11px;
  letter-spacing:.04em;text-transform:uppercase;color:var(--faint);
  background:none;border:1px solid transparent;border-radius:3px;
  padding:3px 6px;cursor:pointer}
.pas-vzhled button:hover{color:var(--ink)}
.pas-vzhled button[aria-current]{color:var(--ink);border-color:var(--line-solid);
  background:var(--surface)}
/* Fotka je zvlast - neni to ctvrty vzhled, ale prepinac pres vsechny. */
.pas-foto{display:inline-block}
/* Vyber pisma. Je to seznam, ne rada tlacitek - ctyri dalsi popisky by
   pas rozbily a pismo se nemeni tak casto jako vzhled. */
.pas-pismo{display:block}
.pas-pismo select{font-family:var(--f-mono);font-size:11px;color:var(--faint);
  background:var(--surface);border:1px solid transparent;border-radius:3px;
  padding:3px 4px;cursor:pointer}
.pas-pismo select:hover,.pas-pismo select:focus{color:var(--ink);
  border-color:var(--line-solid);outline:none}
/* Pas se zalamuje (flex-wrap), takze prepinac nemusi hned mizet - jen
   se zuzi. Uplne pryc je az na uzkych telefonech, kde by zabral radek
   sam pro sebe; svetly vzhled chce ale casto prave nekdo na telefonu,
   tak at vydrzi co nejdyl. */
/* Nabidka je jedno slovo, takze se uz nemusi skryvat driv nez zbytek
   pasu - svetly vzhled chce casto prave nekdo na telefonu. */
@media (max-width:560px){.pas-nastaveni>summary{padding:11px 4px 9px}}


/* HIDDEN MUSI PLATIT. Prohlizec ma [hidden]{display:none} jako pravidlo
   uzivatelskeho agenta, takze ho PREBIJE cokoli s tridou - a stranka pak
   schovava neco, co je porad videt. JavaScript pritom `hidden` poctive
   nastavi, takze v nem chyba nikde neni a hleda se blbe.

   Stalo se to uz dvakrat: u cookie listy (.cookies s display:flex)
   a u zlute znacky nenalezeneho hrace (.t-nenalezen s display:block),
   kde popis „... neni v databazi" zustal viset i po prirazeni hrace.
   Tridicich pravidel s `display` je pres sto a `hidden` se prepina na
   osmatriceti mistech, takze na to nema smysl cekat potreti. */
[hidden]{display:none !important}

/* A TOTEZ PLATI O `<dialog>`. Zavrene okno schovava taky jen pravidlo
   uzivatelskeho agenta (`dialog:not([open]){display:none}`), a to
   PREBIJE kterekoli autorske pravidlo s `display` - autorsky stylopis
   vyhrava nad UA bez ohledu na specificitu.

   Stalo se to 8. 9. 2026, kdyz `.nh-okno` dostalo `display:flex` kvuli
   rolovani: od te chvile stalo VSECH DEVET oken na webu natvrdo ve
   strance, pod formularem. Nahlasil to uzivatel 11. 9. 2026 u zapisu
   pulmaratonu - "dole je porad dialog pridani hrace, nevim proc" - ale
   tykalo se to i ligoveho zapisu a zapisu turnaje serie.

   Jedno pravidlo na cely web, ne zaplata u kazdeho okna: tridu
   s `display` dostane driv nebo pozdeji dalsi okno a tahle chyba je
   tak tichá, ze si ji nikdo nespoji s pravidlem o rolovani. */
dialog:not([open]){display:none !important}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--f-body);font-size:18px;line-height:1.55;-webkit-text-size-adjust:100%}
/* JEDNA RODINA V JEDNOM RADKU. Ve vysledkove tabulce stály tri: mono
   na poradi, body na nahozy a display na body. Dokud byl vzhled jeden
   a vsechna tri pisma uzka, splyvalo to; s Robotem se to rozpadlo na
   tri ruzne kostry v jednom radku (nahlasil uzivatel 3. 9. 2026).

   Hierarchii dela VELIKOST A TUCNOST, ne dalsi pismo. Sloupce cisel
   drzi `tabular-nums` - na to mono potreba neni. */
.num{font-variant-numeric:tabular-nums;text-align:right}

/* ---- hlavicka ---- */
.top{background:var(--band);border-bottom:1px solid var(--line-solid)}
.topin{max-width:var(--sirka-stranky);margin:0 auto;padding:16px clamp(14px,3vw,28px) 0}
.znacka{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.znacka h1{font-family:var(--f-disp);font-weight:700;text-transform:uppercase;
  font-size:clamp(22px,4vw,31px);letter-spacing:-.01em;margin:0;line-height:1}
/* Zadny text-transform:uppercase! Firefox pocita sirku selectu z textu
   optionu tak, jak prisel ze serveru, a transformaci do toho nezapocita -
   nazev sezony pak leze pod sipku. Velka pismena proto posila sablona
   (filtr |upper) a prohlizec meri, co opravdu vykresli.
   flex-shrink:0 je tu proto, aby select neustoupil nadpisu vedle sebe.
   min-width v pixelech, ne v ch - jednotka ch se odvozuje od pisma,
   ktere Firefox u selectu stejne nepouziva k mereni. Text ma kolem
   95 px, odsazeni 43 - 150 je tesne, ale s rezervou na sipku. */
select.sezona{flex:0 0 auto;max-width:100%;min-width:150px;
  font-family:var(--f-disp);font-weight:600;font-size:15px;
  letter-spacing:.02em;color:var(--ink);
  background:var(--surface);border:1px solid var(--line-solid);border-radius:4px;
  padding:6px 32px 6px 11px;cursor:pointer;appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),
                   linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 15px) 55%, calc(100% - 10px) 55%;
  background-size:5px 5px, 5px 5px;background-repeat:no-repeat}
select.sezona:hover{border-color:var(--accent-ink)}
.sekce{display:flex;gap:2px;margin:14px 0 0;overflow-x:auto;scrollbar-width:none}
.sekce::-webkit-scrollbar{display:none}
.sek{font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  font-size:15px;letter-spacing:.02em;padding:9px 14px 11px;white-space:nowrap;
  color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-1px}
.sek[aria-current]{color:var(--ink);border-bottom-color:var(--accent)}

/* ---- obsah ---- */
.wrap{max-width:var(--sirka-stranky);margin:0 auto;padding:clamp(24px,3.6vw,40px) clamp(14px,3vw,28px) 40px}
h2{font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  letter-spacing:.02em;font-size:clamp(24px,3.6vw,33px);margin:0 0 5px;line-height:1.1}
.podnadpis{color:var(--muted);font-size:16px;margin:0 0 18px;max-width:72ch}
.karta{background:var(--surface);border:1px solid var(--line);border-radius:4px;
  box-shadow:var(--shadow)}
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:16.5px}
/* Zahlavi bylo v mono. Charakter popisku mu dava VELIKOST, prostrkani
   a verzalky - dalsi rodina na to potreba neni a v tabulce cisel to
   byla treti kostra. Viz pravidlo o jedne rodine v jednom radku. */
th{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--faint);font-weight:500;text-align:right;padding:11px 9px;
  border-bottom:1px solid var(--line-solid);white-space:nowrap;background:var(--surface-2)}
th.jm{text-align:left}
td{padding:8px 9px;border-bottom:1px solid var(--line);white-space:nowrap}
tbody tr:last-child td{border-bottom:none}
td.jm{text-align:left}
.por{color:var(--faint);font-size:13px;width:1%}

/* Tabulka ma malo sloupcu s kratkym obsahem. Kdyby se roztahla na celou
   sirku stranky, jsou mezi sloupci stovky pixelu prazdna. Proto se sirka
   rovna obsahu a karta se smrskne s ni. */
.karta.uzka{width:fit-content;max-width:100%}
.tabulka{width:auto}
.tabulka th,.tabulka td{padding-left:15px;padding-right:15px}
.tabulka td.jm{padding-right:26px}
.tabulka td.body{font-size:21px;font-weight:700;width:1%}

/* ---- paticka ---- */
.paticka{max-width:var(--sirka-stranky);margin:0 auto;padding:0 clamp(14px,3vw,28px) 48px;
  color:var(--faint);font-size:13.5px;font-family:var(--f-mono)}

/* ---- pas hracich dnu ---- */
.dny{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:15px 0 0}
/* NA TELEFONU JEDEN RADEK, ktery roluje do strany - ne dva zalomene.
   Jedenact hracich dnu se na 430px displej nevejde a zalomena rada
   pilulek zabrala 90 px vysky, tedy desetinu obrazovky, jeste nez
   zacal obsah. Totez uz na webu dela `.sekce` o kus niz; tady je
   to tataz rada pilulek, tak at se chova stejne.

   Uvnitr NENI zadna rozbalovaci nabidka, takze rolovani nema co
   uriznout - na `.pas-souteze` by to neslo, tam je `.pas-nabidka`
   umistena absolutne a schovala by se pod okraj. */
@media (max-width:620px){
  .dny{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
    -webkit-overflow-scrolling:touch}
  .dny::-webkit-scrollbar{display:none}
  /* Popisek "Hrací den" se nesmi smrsknout, jinak se rozpadne
     na dva radky uvnitr jedne pilulky. */
  .dny .lab{flex:0 0 auto}
  .dny .den{flex:0 0 auto}
}
.dny .lab{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--faint);margin-right:4px}
.den{font-family:var(--f-disp);font-weight:600;font-size:15px;text-decoration:none;
  padding:5px 13px;border:1px solid var(--line-solid);border-radius:999px;
  color:var(--muted);background:var(--surface);line-height:1.35;
  font-variant-numeric:tabular-nums;transition:background .12s,color .12s,border-color .12s}
.den:hover{color:var(--ink);border-color:var(--faint)}
.den[aria-current]{background:var(--accent);border-color:var(--accent);color:var(--na-akcentu)}
.sek{text-decoration:none}
.sek:hover{color:var(--ink)}
.sek .kr{display:none}
@media(max-width:640px){.sek .kr{display:inline}.sek .dl{display:none}}

/* ---- spolecne ---- */
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
h3{font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  font-size:19px;margin:0 0 10px;letter-spacing:.02em}
.seznam{display:flex;flex-direction:column;gap:22px}
.souper{color:var(--muted);font-size:15.5px}
.dim{color:var(--faint)}
.pod{font-size:14px;color:var(--faint);margin:10px 0 0}
.poradi{width:auto}
.poradi th,.poradi td{padding-left:15px;padding-right:15px}
.poradi td.jm{padding-right:26px}
.poradi td.body{font-size:18px;font-weight:700;width:1%}
/* TABULKA PREVZATE LIGY MA TRINACT SLOUPCU, ne pet. `.poradi` dava
   kazde bunce 15 px po stranach - to je delane pro prehledove tabulky
   o par sloupcich a tady z toho bylo skoro 400 px jen na odsazeni,
   takze posledni sloupec (Min) zustal za pravym okrajem karty
   (uzivatel 24. 9. 2026: „nevejde se").
   Bere se proto zakladni odsazeni tabulky; misto patri cislum. Tataz
   uvaha jako u zapisu turnaje, ktery se do karty taky nevesel. */
.poradi.zebricek th,.poradi.zebricek td{padding-left:9px;padding-right:9px}
.poradi.zebricek td.jm{padding-right:18px}
.hdc{color:var(--muted)}
/* stupnice nahozu: 200 tucne, 250 zlate, 300 inverzne */
.s200{font-weight:700;color:var(--ink-jas)}
.s250{font-weight:700;color:var(--zlata)}
/* 300 je maximum. Puvodne to byla cervena znacka s podkladem - v lize
   se nikdy neukazala (zadna tam nepadla) a v devitce, kde jich je pres
   dvacet, pusobila prilis. Staci cervene a tucne. */
.s300{font-weight:700;color:var(--accent)}

/* ---- jmena hracu ----
   Prijmeni kapitalkami, krestni jmeno normalne. Handicap je maly cerveny
   index hned za jmenem - kdyz zadny neni, neni tam nic. */
.pr{font-variant-caps:small-caps;letter-spacing:.03em;font-weight:600}
.krest{font-weight:400;color:var(--muted)}
.hdcx{font-size:.8em;color:var(--accent-ink);font-weight:700;
  margin-left:4px;vertical-align:.25em;letter-spacing:0}

/* ---- prehled hracich dnu ---- */
.denblok h3{display:flex;align-items:baseline;gap:9px}
.dc{color:var(--accent-ink);font-size:17px}
.dd{font-family:var(--f-body);font-weight:400;text-transform:none;
  font-size:13.5px;color:var(--faint);letter-spacing:0}
.prehled td{font-size:15px}
.prehled .r2{text-align:right}
/* Vitez se NEBARVI - cislo samo rekne, kdo vyhral. Akcent je vyhrazeny
   navigaci, prvni trojce v tabulkach a nejlepsimu nahozu. */
.prehled .jm{font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  font-size:17px;width:34%;color:var(--ink)}
.vys{font-family:var(--f-disp);font-weight:700;font-size:19px;width:1%;
  padding:8px 14px;color:var(--ink)}

/* ---- zapisovy list ---- */
.utkani{background:var(--surface);border:1px solid var(--line);border-radius:4px;
  box-shadow:var(--shadow);overflow:hidden}
.uhead{padding:18px clamp(14px,2.4vw,22px) 15px;background:var(--surface-2);
  cursor:pointer;list-style:none;position:relative}
.uhead::-webkit-details-marker{display:none}
.utkani[open] .uhead{border-bottom:1px solid var(--line-solid)}
.uhead:hover .rozbal{color:var(--accent-ink);border-color:var(--accent-ink)}
.kdy{margin:0;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--faint);font-family:var(--f-mono);
  display:flex;align-items:center;justify-content:space-between;gap:12px}
.rozbal{display:inline-flex;align-items:center;gap:6px;padding:2px 9px 3px;
  border:1px solid var(--line-solid);border-radius:999px;color:var(--muted);
  letter-spacing:.09em;transition:color .12s,border-color .12s;white-space:nowrap}
.rozbal i{font-style:normal;font-weight:500;font-size:14px;line-height:1}
.rozbal i::before{content:"+"}
.utkani[open] .rozbal i::before{content:"−"}
.vs{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:9px 0 7px}
.tym{font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  font-size:clamp(18px,3.6vw,31px);line-height:1.05;color:var(--ink)}
.t1{text-align:right}.t2{text-align:left}
.skore{font-family:var(--f-disp);font-weight:700;font-size:clamp(27px,5vw,44px);
  display:flex;align-items:baseline;gap:5px;font-variant-numeric:tabular-nums;color:var(--ink)}
.skore i{font-style:normal;color:var(--faint);font-size:.68em}
.souhrn{margin:0;text-align:center;font-size:13px;color:var(--muted)}
.kola{display:flex;flex-direction:column}
.kolo+.kolo{border-top:1px solid var(--line-solid)}
.kolo h4{margin:0;padding:13px clamp(14px,2.4vw,18px) 9px;display:flex;
  align-items:baseline;justify-content:space-between;gap:10px}
.knw{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.kn{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted)}
.dom{font-family:var(--f-body);font-size:11.5px;color:var(--faint);
  text-transform:none;letter-spacing:0}
.kv{font-family:var(--f-disp);font-weight:700;font-size:20px;
  font-variant-numeric:tabular-nums;color:var(--ink)}
.zapis{font-size:15.5px;min-width:580px}
.zapis th{padding:8px 6px;font-size:10.5px;letter-spacing:.07em}
.zapis td{padding:5px 6px}
.zapis .draha{color:var(--faint);font-family:var(--f-mono);font-size:11.5px;
  text-align:center;width:1%}
.zapis .num,.zapis .draha{width:1%}
.zapis td.jm,.zapis th.l,.zapis th.r{width:50%}
/* NAZEV DRUZSTVA STOJI NAD SVYMI HRACI, tedy vlevo. Globalni `th` je
   zarovnane doprava (sloupce jsou skoro same cislice) a `th.l` tridu
   `jm` nema, takze se domaci nazev tiskl az u praveho okraje sveho
   sloupce - vedle popisku „Nához". Vlevo nad jmeny pak zustalo jedine
   „DR" a vypadalo to, ze je to hlavicka toho sloupce (uzivatel
   24. 9. 2026: „proč je tam DR? místo družstva?"). Hoste uz zarovnani
   meli, domaci ho jen nedostali. */
.zapis th.l{text-align:left}
.zapis td.jm.r,.zapis th.r{text-align:right}
.zapis .sum{font-weight:600}
.zapis .b{font-family:var(--f-disp);font-weight:700;font-size:16px;width:1%;
  background:var(--surface-2);color:var(--ink)}
/* po kazdych trech radcich vynechany pulradek - konci jedna hra kola */
.zapis tbody tr.grp td{padding-top:17px;position:relative}
.zapis tbody tr.grp td::before{content:"";position:absolute;left:0;right:0;top:6px;
  border-top:1px dotted var(--line-strong)}
.zapis td.nenastoupil{color:var(--faint);font-style:italic}
/* soucty stoji ve stejnych sloupcich jako cisla nad nimi */
.zapis tfoot td{border-bottom:none;background:var(--surface-2);
  padding-top:5px;padding-bottom:5px}
.zapis tfoot tr.celkem td{border-top:2px solid var(--line-solid);
  padding-top:9px;padding-bottom:9px}
.zapis tfoot tr.celkem .lab{font-family:var(--f-mono);font-size:10px;
  letter-spacing:.09em;text-transform:uppercase;color:var(--faint)}
.zapis tfoot tr.celkem .sum,.zapis tfoot tr.celkem .b{font-weight:700}
.zapis tfoot tr.bodrad .lab,.zapis tfoot tr.kolocelkem .lab{font-size:12.5px;color:var(--muted)}
.zapis tfoot tr.bodrad .b{font-size:14px;color:var(--muted)}
.zapis tfoot tr.kolocelkem td{border-top:1px solid var(--line-solid);padding-bottom:13px}
.zapis tfoot tr.kolocelkem .lab{color:var(--ink);font-weight:600}
.zapis tfoot tr.kolocelkem .b{font-size:18px}

/* ---- soupisky ---- */
.soupisky{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(255px,1fr))}
.soupiska{padding:15px 16px 6px}
.soupiska h3{margin-bottom:6px}
.soupiska td{padding:7px 0;font-size:16px;border-bottom:1px solid var(--line)}
.soupiska tr.nehral td{color:var(--faint)}
.soupiska .her{font-family:var(--f-mono);font-size:11.5px;color:var(--muted);width:1%;white-space:nowrap}
.soupiska tr.nehral .her{color:var(--faint)}
.zn{display:inline-block;margin-left:5px;font-size:10px;font-weight:700;
  color:var(--accent-ink);border:1px solid var(--accent-ink);border-radius:3px;
  padding:0 3px;line-height:1.4;vertical-align:1px}

/* ---- informace ---- */
.info{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.blok{padding:18px 20px 20px}
.blok p{margin:0 0 10px;font-size:16px;color:var(--muted)}
.blok p:last-child{margin-bottom:0}
.blok b{color:var(--ink)}
/* Seznam udaju v karte Informaci - tri nezavisla cisla se pod sebou
   najdou lip nez v souveti (uzivatel 24. 9. 2026). Sazi se jako
   odstavec, jen s odrazkami. */
.blok-seznam{margin:0 0 10px;padding-left:20px;font-size:16px;
  color:var(--muted)}
.blok-seznam li{margin:3px 0}
.blok-seznam b{color:var(--ink)}
.dolozeno{font-size:13px;border-left:2px solid var(--accent);padding-left:10px}

/* ---- stranka hrace ---- */
.hracview{margin:0}
.hrac{color:inherit;text-decoration:none;border-bottom:1px dotted var(--line-strong)}
.hrac:hover{color:var(--accent-ink);border-bottom-color:var(--accent-ink)}
.hd-zpet{display:inline-block;font-family:var(--f-mono);font-size:11px;
  letter-spacing:.11em;text-transform:uppercase;color:var(--muted);
  text-decoration:none;padding:7px 14px 8px;border:1px solid var(--line-solid);
  border-radius:999px;background:var(--surface);margin-bottom:20px;
  transition:color .12s,border-color .12s}
.hd-zpet:hover{color:var(--accent-ink);border-color:var(--accent-ink)}
.hd-hlava{border-bottom:3px solid var(--accent);padding-bottom:16px;margin-bottom:24px}
.hd-jm{font-family:var(--f-disp);font-weight:700;text-transform:uppercase;
  font-size:clamp(34px,7vw,62px);line-height:.95;margin:0;letter-spacing:-.01em}
/* ROZLISENI V NADPISU STRANKY HRACE - cim se od sebe lisi dva ruzni
   lide tehoz jmena ("Indra Martin" a "Indra Martin ml.").

   VLASTNI VELIKOST, ne `.roz`: ta je delana do tabulky na 10,5 px
   a vedle jmena, ktere ma az 62 px, by byla smitko. Je proto v `em`,
   takze roste s nadpisem.

   `text-transform:none` MUSI BYT - nadpis je verzalkami a "ml." by
   se vysazelo jako "ML.", coz je zkratka, kterou nikdo nepouziva. */
.hd-roz{font-family:var(--f-mono);font-size:.3em;letter-spacing:.04em;
  color:var(--faint);margin-left:.3em;vertical-align:.45em;
  text-transform:none;white-space:nowrap}
.hd-tym{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--accent-ink);margin:10px 0 0}
.hd-telo{padding:0}
.hd-soutez{font-family:var(--f-disp);font-size:17px;font-weight:600;
  text-transform:uppercase;letter-spacing:.02em;color:var(--ink);
  margin:0 0 3px;display:flex;align-items:baseline;justify-content:space-between;
  gap:12px;flex-wrap:wrap}
.hd-soutez+.hd-podtitul{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint);margin:0 0 9px;
  padding-bottom:7px;border-bottom:2px solid var(--ink)}
.hd-blok+.hd-blok{margin-top:26px}
/* Stejne jako tabulka a zebricky: sirka podle obsahu, ne podle stranky.
   Roztazena na celou sirku stranky by mezi sloupci zely stovky pixelu
   prazdna. */
.hd-blok .scroll{width:fit-content;max-width:100%}
.hd-tab{width:auto;font-size:15.5px}
.hd-tab td,.hd-tab th{padding:6px 11px}
.hd-tab .hd-den{font-family:var(--f-mono);font-size:11.5px;color:var(--muted);
  text-align:left;white-space:nowrap;width:1%}
/* Datum uvnitr datove tabulky: mono, mensi a tlumene. Je to doprovodny
   udaj, ne cislo, o ktere jde - proto ustupuje. Jedno pravidlo pro
   vsechny tabulky, at nekde nevznikne treti podoba. */
.hd-tab .hd-datum, td.datum{font-family:var(--f-mono);font-size:11px;color:var(--faint);
  width:1%;white-space:nowrap}
.hd-tab .souper{width:1%;white-space:nowrap;font-size:13px}
.hd-tab .hra{width:1%;font-variant-numeric:tabular-nums}
.hd-tab td.hra{color:var(--ink)}
.hd-tab td.prazdna{color:var(--faint)}
.hd-tab .hd-oddel{border-left:1px solid var(--line-solid);width:1%}
.hd-tab td.body{font-size:16px;font-weight:700;width:1%}
.hd-tab tfoot td{border-top:2px solid var(--line-solid);border-bottom:none;
  background:var(--surface-2);padding-top:9px;padding-bottom:9px;font-weight:600}
.hd-tab tfoot .hd-den{color:var(--ink);font-weight:700}
/* SLOVO "CELKEM" NESMI BYT MENSI NEZ RADKY NAD NIM. Stoji ve sloupci
   data, a ten je zamerne drobny mono - v souhrnu z toho byl nejmensi
   text cele tabulky (uzivatel 22. 9. 2026: "celkem je zase nesmyslně
   menší, než to nad tím"). V paticce se proto velikost vraci na
   velikost tabulky. */
.hd-tab tfoot .hd-den,
.hd-tab tfoot .datum{font-family:var(--f-disp);font-size:14px;
  letter-spacing:0;text-transform:none;color:var(--ink);font-weight:700}
.hd-pozn{font-size:12.5px;color:var(--faint);margin:12px 0 0;line-height:1.5}
.hd-pozn b{color:var(--muted)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---- extra hra o bod navic (sezony do podzimu 2021) ---- */
.kolo.extra{border-top:1px solid var(--line-solid)}
.kolo.extra .kn{color:var(--accent-ink)}
.extrapozn{margin:0;padding:0 clamp(14px,2.4vw,18px) 14px;
  font-size:12.5px;color:var(--faint)}

/* ---- bublina s vysvetlivkou u zahlavi sloupce ---- */
.napoveda{position:relative;display:inline-block;margin-left:5px;
  vertical-align:top;line-height:1}
.napovedaznak{font-family:var(--f-mono);font-size:9px;font-weight:500;
  width:13px;height:13px;padding:0;border-radius:50%;
  border:1px solid var(--faint);color:var(--faint);background:transparent;
  display:inline-flex;align-items:center;justify-content:center;
  transition:color .12s,border-color .12s}
.napovedaznak:hover{color:var(--accent-ink);border-color:var(--accent-ink)}
/* Bublina roste doleva a dolu - u pravych sloupcu by jinak vyjela ven
   z .scroll, ktery ma overflow a orizl by ji. */
.bublina{position:absolute;top:calc(100% + 7px);right:-4px;z-index:5;
  display:none;width:max-content;max-width:250px;
  padding:9px 11px;border-radius:4px;
  background:var(--surface-2);border:1px solid var(--line-solid);
  box-shadow:0 10px 24px -10px var(--stin-barva);
  font-family:var(--f-body);font-size:13px;font-weight:400;line-height:1.45;
  letter-spacing:0;text-transform:none;text-align:left;color:var(--ink);
  white-space:normal}
.napoveda.doprava .bublina{right:auto;left:-4px}
.napoveda:hover .bublina,
.napovedaznak:focus + .bublina,
.napovedaznak:focus-visible + .bublina{display:block}

/* ---- karierni souhrn hrace ---- */
/* Zadny overflow:hidden - orizl by bublinu s vysvetlivkou, ktera
   z dlazdice vyrusta. Rohy se proto zaobluji na krajnich dlazdicich. */
.dlazdice{display:grid;gap:1px;background:var(--line);
  grid-template-columns:repeat(auto-fit,minmax(126px,1fr));
  border:1px solid var(--line);border-radius:4px;
  margin:0 0 26px}
.dl:first-child{border-radius:3px 0 0 3px}
.dl:last-child{border-radius:0 3px 3px 0}
.dl{background:var(--surface);padding:13px 15px 14px;
  display:flex;flex-direction:column;gap:3px}
.dl-popis{font-family:var(--f-mono);font-size:10px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--faint);white-space:nowrap}
/* Proporcionalni cislice zamerne: tabular-nums da kazde cislici sirku nuly,
   coz u osamoceneho velkeho cisla vypada rozvolnene. Tabulkove patri
   do sloupcu pod sebou, tam je maji tabulky. */
.dl-cislo{font-family:var(--f-disp);font-weight:700;font-size:29px;
  line-height:1.05;color:var(--ink)}
.dl-nula{color:var(--faint);font-weight:600}

/* ---- MEZERA MEZI TABULKAMI - TVRDE PRAVIDLO ----------------------
   Kdyz je na strance vic tabulek, MUSI mezi nimi byt mezera. Nadpis
   dalsi sekce mel `margin:0 0 10px`, takze se lepil rovnou na spodni
   hranu predchozi karty a dve ruzne tabulky vypadaly jako jedna
   rozdelena carou. Nahlasil uzivatel 18. 9. 2026 na Vysledcich
   pulmaratonu: "druha sekce (Vyvoj poradi) je prilepeny hned na konec
   tabulky. To same dalsi sekce ... zase si poznamenej HARD RULE napric,
   ze kdyz je vice tabulek na strance, ze bude mezi nimi mezera."

   MEZERU DOSTAVA TO, CO PO KARTE NASLEDUJE, ne karta sama: karty stoji
   i uvnitr seznamu a mrizek, ktere uz maji `gap`, a tam by se odsazeni
   scitalo. Proto `.wrap > .karta`, tedy jen karty stojici primo
   v obsahu stranky.

   Je to JEDNO pravidlo na cely web - kdyby si ho kazda stranka resila
   sama, na jedne se zapomene (a presne to se stalo). */
.wrap > .karta + :is(h2, h3, h4, p, div, section, ul, table, form) {
  margin-top: 30px}

/* Kdyz pod nadpisem neni uvodni odstavec, drzel by se obsah nahore.
   Mezera se proto pridava sousedovi nadpisu - ale jen kdyz to neni
   ten odstavec, ktery si vlastni odsazeni nese sam (zustal u Informaci). */
h2 + :not(.podnadpis){margin-top:20px}

/* ---- sezona, ktera se neodehrala ---- */
.nehralo{max-width:52ch;padding:34px 30px 30px;text-align:center}
.nehralo-znak{font-family:var(--f-disp);font-size:44px;font-weight:700;
  color:var(--faint);margin:0 0 10px;line-height:1}
.nehralo-text{margin:0;color:var(--muted);font-size:17px;line-height:1.55}
.nehralo-dal{margin:22px 0 0;font-family:var(--f-mono);font-size:11px;
  letter-spacing:.11em;text-transform:uppercase}
.nehralo-dal a{color:var(--accent-ink);text-decoration:none;
  border-bottom:1px dotted var(--accent-ink)}
.nehralo-dal a:hover{color:var(--ink);border-bottom-color:var(--ink)}

/* Cas u zapasu, ktery se teprve hraje - uzky sloupec vlevo. */
.hl-vysledky td.hl-cas{width:1%;padding-right:12px;font-size:13px}

/* „Jen ročník" u data narozeni - u vetsiny hracu se zna jen rocnik
   a 1. 1. je vypln. Zaskrtavatko stoji vedle kalendare, protoze samo
   datum to nerekne (db/143). */
.nh-pozn{font-size:12px;color:var(--faint)}
.nh-jenrok{font-size:13px;color:var(--muted);display:inline-flex;
  align-items:center;gap:5px;margin-left:12px}
.datnar-jenrok{display:block;font-size:11.5px;color:var(--faint);
  margin-top:3px;white-space:nowrap}

/* CO JE VIDET NA AKTUALITACH (nabidka Vzhled). Schovava se atributem
   na <html>, ne mazanim z DOM - stav tim prezije prechod na jinou
   stranku a zpet, a nasazuje se uz v hlavicce, takze to neproblikne. */
html[data-bez-fmliga] [data-skupina="fmliga"],
html[data-bez-turnaje] [data-skupina="turnaje"],
html[data-bez-ligy] [data-skupina="ligy"]{display:none!important}
/* Zaskrtavatka v nabidce - pod sebou, at se daji trefit. */
.pas-skupiny{display:flex;flex-direction:column;gap:4px;font-size:13px}
.pas-skupiny label{display:flex;align-items:center;gap:6px;cursor:pointer;
  color:var(--muted)}
.pas-skupiny input{margin:0}

/* ---- klub 250 ---- */
.klub-odkaz{font-family:var(--f-disp);font-weight:600;font-size:15px;
  text-transform:uppercase;letter-spacing:.02em;text-decoration:none;
  padding:6px 13px;border:1px solid var(--line-solid);border-radius:4px;
  color:var(--muted);background:var(--surface);white-space:nowrap;
  transition:color .12s,border-color .12s}
.klub-odkaz:hover{color:var(--ink);border-color:var(--faint)}
.klub-odkaz[aria-current]{color:var(--zlata);border-color:var(--zlata)}
.klub-uvod{color:var(--muted);font-size:16px;margin:0 0 20px;max-width:66ch}
.klub-souhrn{max-width:420px;margin-bottom:24px}
/* rozbalovaci detail primo v radku tabulky */
.klub-rozbal{width:1%;padding-left:4px;padding-right:12px}
.klub-rozbal summary{list-style:none;cursor:pointer;width:20px;height:20px;
  display:flex;align-items:center;justify-content:center;border-radius:3px;
  border:1px solid var(--line-solid);color:var(--muted);
  font-family:var(--f-mono);font-size:13px;line-height:1}
.klub-rozbal summary::-webkit-details-marker{display:none}
.klub-rozbal summary::before{content:"+"}
.klub-rozbal details[open] summary::before{content:"−"}
.klub-rozbal summary:hover{color:var(--accent-ink);border-color:var(--accent-ink)}
/* detail se vejde pod radek pres celou sirku tabulky */
/* Karta klubu je pres celou sirku, tabulka v ni uzka podle obsahu -
   detail se tak smi roztahnout PRES pravy okraj tabulky do volneho
   mista karty. `right:auto` + `width:max-content` znamena "tak siroky,
   jak je potreba"; drive tu bylo `right:0`, tedy sirka tabulky, a
   dlouhy radek se oriznul. */
.klub-karta{width:auto}
.klub-detail{position:absolute;left:0;right:auto;width:max-content;
  min-width:100%;padding:2px 15px 14px;
  background:var(--surface-2);border-top:1px solid var(--line)}
.klub tbody tr:has(details[open]){position:relative}
.klub-hry{width:auto;font-size:14.5px}
.klub-hry td{padding:4px 14px 4px 0;border-bottom:none;white-space:nowrap}
.klub-hry .num{padding-right:16px;font-weight:700}

/* ---- nesrovnalosti v zapisech ---- */
.nesr{display:flex;flex-direction:column;gap:38px}
.nesr-blok h3{margin-bottom:6px}
.nesr-popis{color:var(--muted);font-size:15.5px;line-height:1.55;
  margin:0 0 14px;max-width:70ch}
.nesr-popis b{color:var(--ink)}

/* ---- uprava jmen ---- */
.uprava-prepinac{margin:0 0 16px;font-family:var(--f-mono);font-size:11.5px;
  letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.uprava-prepinac a{color:var(--accent-ink);text-decoration:none;
  border-bottom:1px dotted var(--accent-ink)}
.uprava-prepinac b{color:var(--ink)}
.hlaska{margin:0 0 16px;padding:11px 14px;border-radius:4px;font-size:15px;
  border:1px solid var(--line-solid);background:var(--surface-2)}
.hlaska.ok{border-color:var(--zelena);color:var(--ink)}
.hlaska.chyba{border-color:var(--accent);color:var(--ink)}
.uprava td{padding-top:5px;padding-bottom:5px}
.uprava input,.uprava select{font:inherit;font-size:15px;color:var(--ink);
  background:var(--paper);border:1px solid var(--line-solid);border-radius:3px;
  padding:4px 7px}
.uprava input:focus,.uprava select:focus{outline:none;border-color:var(--accent-ink)}
/* ---- AKCNI TLACITKA: JEDEN TVAR ----

   Do 4. 9. 2026 jich bylo pet ruznych: Ulozit hranate, Losovat mista
   pilulka (radius 99), + dalsi radek carkovane s jinym pismem, generator
   jako odkaz. Ve formulari to vedle sebe vypada jako pet ruznych veci,
   pritom je to porad totez - akce. Nahlasil uzivatel: "ve formularich
   sjednotit vzhled tlacitek".

   Zaklad je spolecny; lisi se jen VAHOU, ne tvarem:
     plne   hlavni akce (Ulozit, Nacist jmena, Zalozit a pridat)
     tise   obsluha (Losovat mista, + dalsi radek, generator) - tyz tvar,
            jen bez vyplne
   Velikost se lisi podle mista: v radku tabulky mensi nez pod formularem. */
.ulozit,.tlacitko,.runda-ulozit,.runda-losovat,.runda-stesti,.pridat,
.runda-generuj,.runda-smaz,.runda-drahy{
  font-family:var(--f-disp);font-weight:600;font-size:15px;
  letter-spacing:.02em;padding:5px 13px;line-height:1.35;
  border:1px solid var(--line-solid);border-radius:999px;
  color:var(--muted);background:var(--surface);cursor:pointer;
  font-variant-numeric:tabular-nums}
.ulozit:hover,.tlacitko:hover,.runda-ulozit:hover,.runda-losovat:hover,
.runda-stesti:hover,.pridat:hover,.runda-generuj:hover,
.runda-smaz:hover,.runda-drahy:hover{
  color:var(--ink);border-color:var(--faint)}
.uprava-oddel{color:var(--line-solid);margin:0 10px}

/* Tlacitko Ulozit se pripne k pravemu okraji, aby bylo videt i kdyz
   tabulka presahuje sirku a odjede pod vodorovny posuvnik. Bez toho
   vypada stranka, jako by se ukladala sama. */
.uprava th.akce,.uprava td.akce{position:sticky;right:0;z-index:2;
  padding-left:14px;padding-right:14px}
.uprava td.akce{background:var(--surface);
  box-shadow:-10px 0 14px -10px var(--stin-barva)}
.uprava th.akce{background:var(--surface-2);
  box-shadow:-10px 0 14px -10px var(--stin-barva)}
/* dlouhy vycet druzstev tabulku zbytecne roztahuje */
.uprava td.souper{max-width:15ch;overflow:hidden;text-overflow:ellipsis}
.uprava th.stat,.uprava td.stat{width:1%;padding-left:6px;padding-right:6px;
  text-align:center}
.uprava td.stat a,.stat-vzor{display:inline-block;width:22px;line-height:20px;
  border:1px solid var(--line-solid);border-radius:3px;
  color:var(--muted);text-decoration:none;font-size:13px}
.uprava td.stat a:hover{color:var(--accent-ink);border-color:var(--accent-ink)}
.stat-vzor{color:var(--faint);line-height:18px}

/* ---- slouceni hracu ---- */
.navrh{border:1px solid var(--accent);border-radius:4px;padding:18px 20px;
  margin:0 0 20px;background:var(--surface);max-width:64ch}
.navrh h3{margin:0 0 8px;color:var(--accent-ink)}
.navrh p{margin:0 0 10px;color:var(--muted);font-size:15.5px}
.navrh ul{margin:0 0 16px;padding-left:20px;color:var(--ink);font-size:15px;line-height:1.7}
.navrh form{display:flex;align-items:center;gap:16px}
.potvrdit{color:var(--ink);border-color:var(--accent)}
.potvrdit:hover{background:var(--accent);color:var(--na-akcentu)}
.zrusit{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);text-decoration:none;
  border-bottom:1px dotted var(--faint)}
.slouceni form{display:flex;gap:6px;align-items:center}
.slouceni select{max-width:15ch}
.sezony{max-width:34ch;white-space:normal;line-height:1.4;font-size:13px}

/* ---- galerie vitezu ---- */
.galerie-tituly{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));
  margin:0 0 40px;align-items:start}
.galerie-tituly h3{margin-bottom:10px}
.titul-sezony{font-size:13px;max-width:30ch;white-space:normal;line-height:1.4}
.galerie-nadpis{margin:0 0 16px}
.sezona-blok{padding:16px 20px 18px}
.sezona-hlava{margin:0 0 14px;display:flex;align-items:baseline;gap:12px}
.sezona-hlava a{color:var(--ink);text-decoration:none;
  border-bottom:2px solid var(--accent)}
.sezona-hlava a:hover{color:var(--accent-ink)}
.rozehrana{font-family:var(--f-mono);font-size:10px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--faint);border:1px solid var(--line-solid);
  border-radius:999px;padding:2px 8px}
.stupne{display:flex;gap:10px;flex-wrap:wrap}
.stupen{flex:1 1 190px;display:flex;align-items:baseline;gap:9px;
  padding:9px 13px;border-radius:4px;background:var(--surface-2);
  border:1px solid var(--line)}
/* prvni misto se odlisi zlatou - tataz barva jako stupnice 250 */
.stupen.s1{border-color:var(--zlata)}
.stupen.s1 .misto,.stupen.s1 .tym{color:var(--zlata)}
.misto{font-family:var(--f-mono);font-size:12px;color:var(--faint);width:1.6em}
.stupen .tym{font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  font-size:17px;color:var(--ink);flex:1}
.stupen .cislo{font-family:var(--f-disp);font-weight:700;font-size:17px;color:var(--ink)}
.stupen .cislo i{font-style:normal;font-weight:400;font-size:12px;color:var(--faint)}
.nejlepsi-hrac{margin:14px 0 0;padding-top:13px;border-top:1px solid var(--line);
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:15.5px}
.stitek{font-family:var(--f-mono);font-size:10px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--faint)}

/* Podil odehranych her vedle jejich poctu. Ztlumeny a mensi - je to
   duvod, proc nekdo v zebricku je nebo neni, ne dalsi vysledek. */
.zeb-podil{font-style:normal;font-size:11.5px;color:var(--faint);
  white-space:nowrap}

/* RAZENI KLIKNUTIM DO ZAHLAVI - zavedene gesto, takze pruh nad tabulkou
   by rikal podruhe to, co uz stoji v zahlavi (uzivatel 11. 9. 2026).

   Je to <button>, ne klikaci <th>: da se na nej tabulatorem a odecitac
   ho ohlasi jako ovladaci prvek. Vzhled dedi od zahlavi, aby tabulka
   nevypadala jako formular - pozna se az podle kurzoru, podtrhu pod
   kurzorem a SIPKY u sloupce, podle ktereho se radi. */
.th-radit{font:inherit;letter-spacing:inherit;text-transform:inherit;
  color:inherit;background:none;border:0;padding:0;cursor:pointer}
.th-radit:hover{color:var(--ink)}
th[data-radit]:hover{color:var(--muted)}
/* Ktery sloupec se radi, se kresli z `aria-sort` - tedy z teze
   hodnoty, kterou cte odecitac; nemuzou se rozejit. */
th[aria-sort]{color:var(--ink)}
/* SERAZENY SLOUPEC SE POZNA TUCNE, ne sipkou. Sipka se sem psala
   escapem pro znak U+25BE a tomu cestou vypadlo zpetne lomitko, takze
   v zahlavi stalo "BE" (nahlasil uzivatel 18. 9. 2026: "kliknu na
   druzstvo a vedle se objevi nejake BE nebo B4?"). Tucne je jednodussi
   a rozbit se neda - a pro odecitac to stejne rika `aria-sort`, ne ten
   znak. Uzivatel: "nebo to mozna staci dat tucne ... to bude asi
   lepsi." */
th[aria-sort] .th-radit{font-weight:700}

/* TURNAJ, KTERY SE JESTE HRAJE, v pasu turnaju. Stoji tam, ale ztlumeny
   a s duvodem v `title` - stejne jako soutez bez rocniku v pasu webu
   nebo nehrana sezona v archivu. Vynechat ho nejde: predehravka seniora
   se hraje o tyden driv nez zbytek, takze by jeji vysledky cely tyden
   nebyly nikde.

   `:not([aria-current])` JE TU PODSTATNE. `.den.den-hraje` ma totoznou
   specificitu jako `.den[aria-current]` a stoji niz, takze by vybranemu
   turnaji prebilo pozadi - tataz past, na ktere uz jednou stal pruh
   razeni. */
.den.den-hraje:not([aria-current]){color:var(--faint);
  border-style:dashed}
.nejlepsi-hrac .cislo{font-family:var(--f-disp);font-weight:700;font-size:18px}

/* ================= rozpis, rekordy, vecna tabulka, rejstrik =========== */

/* Odkazu napric historii uz je pet, at se tedy zalamou jako celek
   a neroztrhnou se mezi radky hlavicky. */
.napric{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
/* TOTEZ PRO PREHLEDY LIGY. Ctyri pilulky (Galerie, Vecna tabulka,
   Rekordy, Archiv) se na telefonu lamaly na dva radky, protoze
   "Vecna tabulka" je dlouha. */
@media (max-width:620px){
  .napric{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
    -webkit-overflow-scrolling:touch}
  .napric::-webkit-scrollbar{display:none}
  .napric .klub-odkaz{flex:0 0 auto}
}

/* ---- rozpis ---- */
.rozpis-den{padding:0;margin:0 0 10px;overflow:visible}
.rozpis-den summary{list-style:none;cursor:pointer;display:flex;gap:14px;
  align-items:baseline;padding:12px 16px;background:var(--surface-2);
  border-radius:3px}
.rozpis-den summary::-webkit-details-marker{display:none}
.rozpis-den summary::after{content:"+";margin-left:auto;color:var(--faint);
  font-family:var(--f-mono);font-size:14px}
.rozpis-den[open] summary::after{content:"−"}
.rozpis-den summary:hover .rd-cislo{color:var(--accent-ink)}
.rd-cislo{font-family:var(--f-disp);font-weight:700;text-transform:uppercase;
  font-size:17px;letter-spacing:.02em}
.rd-datumy{font-family:var(--f-mono);font-size:12px;color:var(--muted)}
.rd-stav{font-family:var(--f-mono);font-size:11px;color:var(--faint);
  letter-spacing:.06em;text-transform:uppercase}
/* Nejblizsi nedohrany den - jediny zvyrazneny prvek na strance, aby oko
   trefilo to, kvuli cemu clovek na rozpis chodi. */
.rozpis-den.je-nejblizsi{border-color:var(--zlata)}
.rozpis-den.je-nejblizsi summary .rd-cislo{color:var(--zlata)}

.rozpis-tab{width:100%;font-size:15.5px}
.rozpis-tab td{padding:8px 12px;border-bottom:1px solid var(--line)}
.rozpis-tab tr:last-child td{border-bottom:none}
.rz-datum,.rz-cas{width:1%;white-space:nowrap;font-size:11.5px}
/* Velikost prevzata z puvodniho prehledu hracich dnu (.prehled .jm a
   .vys) - tam se osvedcila a neni duvod ji zmensovat jen proto, ze
   pribyly dva sloupce navic. */
.rz-tym{white-space:nowrap;font-family:var(--f-disp);font-weight:600;
  text-transform:uppercase;letter-spacing:.02em;font-size:17px}
.rz-tym a{color:var(--ink);text-decoration:none}
.rz-tym a:hover{color:var(--accent-ink)}
/* MUSI BYT `td.prava`, ne `.prava`. Sloupec je `<td class="jm rz-tym
   prava">` a `td.jm{text-align:left}` ma vyssi specificitu (0,1,1) nez
   samotna trida (0,1,0) - domaci druzstvo proto zustavalo vlevo
   u okraje karty, daleko od skore (uzivatel 24. 9. 2026: „vypadá
   divně, že ten první tým je tak hodně vlevo"). */
td.prava,.prava{text-align:right}
/* Vitez se NEBARVI, stejne jako v zapisech - cislo samo rekne, kdo
   vyhral. Akcent je vyhrazeny navigaci, prvni trojce a nejlepsimu nahozu. */
.rz-skore{width:1%;white-space:nowrap;font-family:var(--f-disp);font-size:19px;
  padding-left:18px;padding-right:18px;text-align:center;color:var(--ink)}
.rz-skore b{font-weight:700;color:var(--ink)}
.rz-minule{font-size:12px;white-space:nowrap}
.rz-minuly{font-family:var(--f-mono);font-size:11.5px;margin-left:6px;
  padding:1px 5px;border:1px solid var(--line-solid);border-radius:3px;
  color:var(--muted)}
.rz-kuz{font-family:var(--f-mono);font-size:11.5px;margin-left:10px}
.rz-kuz+.rz-kuz{margin-left:14px}
.rz-h2h{width:1%;white-space:nowrap;text-align:right}
.rz-h2h a,.rz-minule a{color:var(--faint);font-size:12px;
  text-transform:uppercase;letter-spacing:.06em;text-decoration:none}
.rz-h2h a:hover,.rz-minule a:hover{color:var(--accent-ink)}
/* stitek drivejsiho skore je odkaz na zapis; .rz-minule a by mu jinak
   dalo verzalky a jinou velikost */
.rz-minule a.rz-minuly{font-size:11.5px;text-transform:none;letter-spacing:0;
  color:var(--muted)}
.rz-minule a.rz-minuly:hover{color:var(--accent-ink);border-color:var(--accent-ink)}
/* U zapasu, ktery se jeste nehral, se nazvy neztlumuji - ze se nehral,
   rekne pomlcka misto skore a rada "naposledy" vedle. */

/* ---- rekordy ---- */
/* Dve karty vedle sebe, dokud se vejdou; pod 900 px pod sebe. */
/* Dve karty vedle sebe jen tehdy, kdyz na to je misto. Prah je schvalne
   vysoky: kdyz se radek nevejde, presahne text pod sousedni kartu a
   zmizi pod ni - lepsi je poskladat karty pod sebe a mit je cele. */
.rekordy{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(520px,1fr));
  margin-bottom:26px}
.rek{padding:0 0 6px}
.rek h4{font-family:var(--f-disp);font-weight:700;text-transform:uppercase;
  font-size:15px;letter-spacing:.03em;margin:0;padding:12px 15px;
  background:var(--surface-2);border-bottom:1px solid var(--line);
  border-radius:3px 3px 0 0}
.rek table{width:100%}
.rek td{padding:5px 12px;border-bottom:1px solid var(--line);font-size:15px}
.rek tr:last-child td{border-bottom:none}
.rek-cislo{font-family:var(--f-disp);font-weight:700;font-size:19px;width:1%;
  white-space:nowrap}
/* Pojistka: kdyz uz na radek misto neni, at se radeji zalomi, nez aby
   vylezl z karty. Nic se tak neztrati. */
.rek .dim{font-size:12.5px;white-space:normal}
.rek td.jm{white-space:nowrap}
.galerie-nadpis+.rekordy{margin-top:0}

/* ---- vecna tabulka ---- */
.vecna td,.vecna th{padding-left:13px;padding-right:13px}
.zlato{color:var(--zlata);font-weight:700}
.vyhra{color:var(--ink);font-weight:700}

/* ---- rejstrik hracu ---- */
.hledani{display:flex;gap:12px;align-items:center;margin:0 0 16px}
.hledani input{font-family:var(--f-body);font-size:16px;color:var(--ink);
  background:var(--surface);border:1px solid var(--line-solid);border-radius:4px;
  padding:9px 13px;width:min(360px,100%)}
.hledani input:focus{outline:none;border-color:var(--accent-ink)}
.hledani-pocet{font-family:var(--f-mono);font-size:12px;color:var(--faint)}
.rejstrik td{padding-top:4px;padding-bottom:4px}
.rejstrik td.dim{font-size:13px}

/* ---- druzstvo a vzajemne zapasy ---- */
.proti{color:var(--faint);font-weight:400;font-size:.6em;
  text-transform:lowercase;letter-spacing:.04em}
.vz-skore{font-family:var(--f-disp);font-size:18px;white-space:nowrap;
  text-align:center;padding-left:16px;padding-right:16px}
.vz-tab .jm{white-space:nowrap;font-family:var(--f-disp);font-weight:600;
  text-transform:uppercase;letter-spacing:.02em;font-size:14px}
.vz-tab .jm a{font-family:var(--f-body);font-weight:400;text-transform:none;
  letter-spacing:0;font-size:15px;color:var(--muted);text-decoration:none}
.vz-tab .jm a:hover{color:var(--accent-ink)}
.tym-sezony a,.tym-bilance a{color:var(--ink);text-decoration:none}
.tym-sezony a:hover,.tym-bilance a:hover{color:var(--accent-ink)}
.tym-bilance td.num a{font-size:12px;text-transform:uppercase;
  letter-spacing:.06em;color:var(--faint)}

/* ---- vyvoj prumeru na strance hrace ---- */
.krivka{margin:0 0 22px;padding:14px 16px 10px;background:var(--surface);
  border:1px solid var(--line);border-radius:4px}
.krivka figcaption{font-family:var(--f-mono);font-size:10px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--muted);margin-bottom:6px}
/* Vyska v pixelech, sirka pres celou kartu - preserveAspectRatio="none"
   necha caru natahnout, coz je tady v poradku: cte se tvar, ne uhel. */
.krivka svg{display:block;width:100%;height:120px}
.kr-cara{fill:none;stroke:var(--accent-ink);stroke-width:2;
  vector-effect:non-scaling-stroke;stroke-linejoin:round}
.kr-prumer{stroke:var(--line-solid);stroke-width:1;stroke-dasharray:4 4;
  vector-effect:non-scaling-stroke}
.kr-bod{fill:var(--paper);stroke:var(--accent-ink);stroke-width:2;
  vector-effect:non-scaling-stroke}
.kr-bod.nej{fill:var(--zlata);stroke:var(--zlata)}
.kr-osa{display:flex;justify-content:space-between;gap:12px;
  font-family:var(--f-mono);font-size:11px;color:var(--muted);margin-top:4px}
.tabulka td.jm a{color:var(--ink);text-decoration:none}
.tabulka td.jm a:hover{color:var(--accent-ink)}
.rd-zapisy{margin-left:auto;font-family:var(--f-mono);font-size:11px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--faint);
  text-decoration:none}
.rd-zapisy:hover{color:var(--accent-ink)}
.rozpis-den summary::after{margin-left:12px}

/* Nadpis vede zpatky na ligu; barvu ani podtrzeni nemeni, jen se
   rozsviti pri najeti - je to nadpis, ne odkaz v textu. */
.znacka h1 a{color:inherit;text-decoration:none}
.znacka h1 a:hover{color:var(--accent-ink)}
/* Dokud neni sezona vybrana, je prepinac tissi - je to nabidka,
   ne stav stranky. */
select.sezona.bez-vyberu{color:var(--muted)}
/* Odkazy v rekordech vedou na zapis toho konkretniho utkani. */
.rek td.jm a{color:var(--ink);text-decoration:none}
.rek td.jm a:hover,.rek td.mono a:hover{color:var(--accent-ink)}
.rek td.mono a{color:inherit;text-decoration:none}
/* cislo (max, min), ktere vede na zapis, kde padlo - _odkaz_zapisu.html.
   Tise: tabulka je hlavne cislo vedle cisla, odkaz se ukaze az pod kurzorem */
a.na-zapis{color:inherit;text-decoration:none;
  border-bottom:1px dotted var(--line-solid)}
a.na-zapis:hover{color:var(--accent-ink);border-bottom-color:var(--accent-ink)}
.rz-skore a{color:inherit;text-decoration:none}
.rz-skore a:hover{color:var(--accent-ink)}

/* Zapisovy list je zrcadlo: vlevo domaci, vpravo hoste, uprostred body.
   Aby zrcadlo platilo i pro cisla, musi se nahoz hosti zarovnat DOLEVA -
   pak obe cisla navazuji na stredovy sloupec bodu stejne tesne. Zarovnani
   doprava tam delalo mezeru siroku pres tricet pixelu. */
.zapis .zrc{text-align:left}
/* Rozliseni hrace - odlisi dva stejne pojmenovane zaznamy (dva Novakove
   Miroslavove, nahradnici jednoho druzstva s ruznym handicapem).
   Tise, aby to nekonkurovalo jmenu. */
/* ROZLISENI ("ml.", zkratka druzstva) - cim se od sebe lisi dva ruzni
   lide tehoz jmena. Je to SOUCAST JMENA, ne odznak: do 1. 10. 2026 melo
   ramecek a vypadalo jako stitek pripnuty zvenci. Sundal ho uzivatel.

   KURZIVA NE, a ma to duvod: na zapisovem listu se kurzivou sazi
   "nenastoupil" (`.zapis td.nenastoupil`) - tedy v temze sloupci,
   kde rozliseni stoji. Dva ruzne vyznamy jednim jazykem by se cetly
   jako tyz. Odlisuje se proto velikosti a ztlumenim, stejne jako
   krestni jmeno vedle prijmeni. */
.roz{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.06em;
  color:var(--faint);margin-left:4px;white-space:nowrap;vertical-align:1px}

/* ---- zapis vysledku ----
   Formular vypada jako zapisovy list ve Vysledcich, protoze se z papiru
   te podoby prepisuje. Stejne sloupce, stejne poradi, stejny cerveny
   index handicapu - jen misto textu stoji vyber a policko. */

.zap-pocet{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint);margin-left:auto;font-weight:400}
.denblok h3{flex-wrap:wrap}

.znacka-stav{display:inline-block;font-family:var(--f-mono);font-size:10px;
  letter-spacing:.09em;text-transform:uppercase;padding:2px 8px 3px;
  border:1px solid var(--line-solid);border-radius:99px;color:var(--faint);
  white-space:nowrap}
.znacka-stav.hotovo{color:var(--zelena-ink);border-color:var(--zelena)}
.znacka-stav.rozepsano{color:var(--zlata);border-color:var(--zlata-hrana)}
.znacka-stav.zamceno{color:var(--accent-ink);border-color:var(--accent)}

.zap-seznam td{font-size:15px}
.zap-seznam .stav{text-align:center;width:1%}
.zap-seznam .akce{width:1%;text-align:right}
.zap-seznam tr.prazdny .jm{color:var(--ink)}
.zap-seznam tr.hotovy .jm{color:var(--muted)}

/* Odkaz "Zapsat" vypada jako tlacitko Ulozit - je to tataz akce v jinem
   kroku, at to nevypada jako dve ruzne veci. */
a.ulozit{text-decoration:none;display:inline-block}
.ulozit.velke{font-size:17px;padding:10px 22px 11px}

.zap-hlavicka{display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:14px 18px;margin:0 0 16px}
.zap-hlavicka .dim{font-size:14px;flex:1 1 240px}
.zap-datum{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint);display:flex;align-items:center;gap:9px}
.zap-celkem{font-family:var(--f-disp);font-weight:700;font-size:31px;
  line-height:1;margin-left:auto;white-space:nowrap}
.zap-celkem i{font-style:normal;color:var(--faint);font-size:.68em;margin:0 3px}
.zap-celkem i.tm{font-family:var(--f-disp);font-weight:600;font-size:.42em;
  text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 6px}

.zap-kolo{margin:0 0 16px}
.zap-kolo h4{margin:0;padding:13px clamp(14px,2.4vw,18px) 9px;display:flex;
  align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;
  border-bottom:1px solid var(--line)}

/* Sirsi nez zapis ve Vysledcich - vyber jmena potrebuje vic mista nez
   samo jmeno. Pod tim se tabulka posouva vodorovne uvnitr karty. */
.zap-list{min-width:760px}
.zap-list select{font:inherit;font-size:15px;color:var(--ink);width:100%;
  max-width:22ch;background:var(--surface-2);border:1px solid var(--line-solid);
  border-radius:3px;padding:4px 6px}
.zap-list td.jm.r select{margin-left:auto;display:block}
.zap-list select:focus,.zap-list input:focus{outline:none;border-color:var(--accent-ink)}
/* Obycejny chlivek na cislo - zadne sipky. Vedle toho, ze v zapisu
   nemaji co delat, u type=number meni kolecko mysi hodnotu a rolovani
   dlouhym listem by ticho prepisovalo nahozy. Policko je proto text
   a cislice hlida obsluha ve stránce. */
.zap-list input.nahoz{font:inherit;font-family:var(--f-mono);font-size:15px;
  color:var(--ink);width:5ch;text-align:right;background:var(--surface-2);
  border:1px solid var(--line-solid);border-radius:3px;padding:4px 6px;
  font-variant-numeric:tabular-nums}
/* Kdyby nekdy nekde zustal type=number, at aspon nema sipky. */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
input[type=number]{-moz-appearance:textfield;appearance:textfield}
/* Vybrany hrac bez nahozu je nedopsany radek, ne nenastoupil - at je to
   videt driv nez v hlasce po ulozeni. */
.zap-list input.nahoz.chybi{border-color:var(--accent);
  background:color-mix(in srgb, var(--accent) 12%, var(--surface-2))}
.zap-list input.nahoz.prilis{border-color:var(--accent);color:var(--accent-ink);
  background:color-mix(in srgb, var(--accent) 12%, var(--surface-2))}
.zap-list td.jm .hdcx{margin-left:4px}
.zap-list td.jm.r .hdcx{margin-left:0;margin-right:4px}
.zap-list tfoot td{background:var(--surface-2)}

.zap-patka{display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  justify-content:space-between;margin:18px 0 0}
.zap-patka p{margin:0;font-size:14px;max-width:60ch}
.zap-patka p.neuplne{color:var(--zlata)}
/* Tise: automaticke ulozeni rozepsaneho se hlasi jen tady, prepsanim
   casu. Bublina ani hlaska by pri prepisovani z papiru prekazela. */
.zap-drobek{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;
  color:var(--faint);flex:1 1 100%;order:3}

/* Obnoveni rozepsaneho uz videt BYT musi - jinak by clovek nevedel,
   proc ve formulari neco je a proc to nesedi s databazi. */
.zap-obnoveno{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin:0 0 16px;padding:10px 14px;border:1px solid var(--zlata-hrana);border-radius:4px;
  font-size:14.5px;color:var(--zlata)}
/* Zahozeni stoji az pod zapisem, daleko od tlacitka Ulozit, a vypada
   jako odkaz - ne jako neco, co se cestou zmackne. */
.zap-zahodit-pas{margin:26px 0 0;padding-top:14px;
  border-top:1px solid var(--line);font-size:14px;color:var(--faint)}
.zap-zahodit{font:inherit;background:none;border:none;padding:0;cursor:pointer;
  color:var(--faint);text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:var(--line-solid)}
.zap-zahodit:hover{color:var(--accent-ink);text-decoration-color:var(--accent-ink)}
.zap-jiste{display:inline-flex;align-items:center;gap:9px;flex-wrap:wrap;
  color:var(--ink)}
.zap-jiste button{font-family:var(--f-disp);font-weight:600;font-size:13px;
  background:none;border:1px solid var(--line-solid);border-radius:3px;
  padding:4px 12px 5px;cursor:pointer;color:var(--muted)}
.zap-jiste .zap-zahodit-ano{border-color:var(--accent);color:var(--accent-ink)}
.zap-jiste button:hover{color:var(--ink)}

/* ---- pridani hrace na soupisku ----
   Otevira se z posledni polozky ve vyberu hracu, jako modalni okno.
   Modalni schvalne: je videt, ze se neco deje, a nic se nestane samo. */

.zap-list optgroup{font-style:normal;font-family:var(--f-mono);font-size:10.5px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--faint);
  background:var(--surface)}
.zap-list optgroup option{font-family:var(--f-body);font-size:15px;
  letter-spacing:normal;text-transform:none;color:var(--accent-ink)}

/* OKNO SE MUSI DAT ROLOVAT. Melo `max-height` a zadny `overflow`,
   takze se obsah nad tu vysku proste uriznul a nedalo se k nemu dostat -
   hledani nabizi az dvanact hracu a na nizsim okne to nevyslo
   (uzivatel 8. 9. 2026). Hlavicka zustava stat, roluje se telo. */
.nh-okno{background:var(--surface);color:var(--ink);border:1px solid var(--line-solid);
  border-radius:4px;box-shadow:var(--shadow);padding:0;
  width:min(560px,calc(100vw - 28px));max-height:calc(100vh - 60px);
  display:flex;flex-direction:column;overflow:hidden}
.nh-okno .nh-hlava{flex:0 0 auto}
.nh-okno .nh-telo{flex:1 1 auto;min-height:0;overflow-y:auto;
  overscroll-behavior:contain}
.nh-okno::backdrop{background:var(--zaves)}
.nh-hlava{display:flex;align-items:center;gap:12px;padding:14px 16px 13px 18px;
  background:var(--surface-2);border-bottom:1px solid var(--line-solid)}
.nh-hlava h3{margin:0;font-family:var(--f-disp);font-weight:600;font-size:19px;
  text-transform:uppercase;letter-spacing:.02em}
.nh-hlava h3 b{color:var(--accent-ink)}
.nh-zavrit{margin-left:auto;background:none;border:1px solid var(--line-solid);
  border-radius:3px;color:var(--muted);font-size:19px;line-height:1;
  padding:1px 9px 4px;cursor:pointer}
.nh-zavrit:hover{color:var(--ink);border-color:var(--accent-ink)}
.nh-telo{padding:14px 18px 18px}
.nh-telo>.dim{font-size:14px;margin:0 0 12px}
.nh-hledat{font:inherit;font-size:16px;color:var(--ink);width:100%;
  background:var(--surface-2);border:1px solid var(--line-solid);
  border-radius:3px;padding:8px 11px}
.nh-hledat:focus{outline:none;border-color:var(--accent-ink)}
.nh-vysledky{margin:10px 0 0;max-height:44vh;overflow-y:auto}
.nh-vysledky>.dim{font-size:14px;margin:8px 0}
.nh-radek{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:8px 0;border-bottom:1px solid var(--line)}
.nh-radek:last-child{border-bottom:none}
.nh-jm{font-family:var(--f-disp);font-weight:600;font-size:17px}
.nh-jm i{font-style:normal;color:var(--faint);font-size:.8em}
.nh-pop{font-size:13px;color:var(--faint);flex:1 1 100%;order:3}
.nh-radek .ulozit{margin-left:auto}
.nh-radek.uzhraje{opacity:.5}
.nh-chyba{margin:12px 0 0;padding:9px 12px;border:1px solid var(--accent);
  border-radius:4px;font-size:14.5px}

.nh-novy{margin:14px 0 0;border-top:1px solid var(--line);padding-top:12px}
.nh-novy>summary{font-size:13.5px;color:var(--faint);cursor:pointer}
.nh-novy[open]>summary{color:var(--muted)}
.nh-novy-telo{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;
  margin:12px 0 0}
.nh-novy-telo label{display:flex;flex-direction:column;gap:4px;
  font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint)}
.nh-novy-telo input,.nh-novy-telo select{font:inherit;font-size:15px;
  color:var(--ink);background:var(--surface-2);border:1px solid var(--line-solid);
  border-radius:3px;padding:5px 8px;max-width:16ch}
.nh-novy-telo input:focus,.nh-novy-telo select:focus{outline:none;
  border-color:var(--accent-ink)}

/* ---- nahoz pod 100 ----
   Nezakazuje se, jen se na nej pred ulozenim zepta. Zlata je tady varovani,
   ne pochvala - cervena uz znamena "chybi nahoz". */
.zap-list input.nahoz.nizky{border-color:var(--zlata);color:var(--zlata)}
/* Bublina s dotazem na nizky nahoz. Vyskoci u policka hned po Enteru
   nebo po odchodu z nej - pri ukladani uz je na preklep pozde, clovek
   se nediva do papiru. Enter -> Enter potvrdi a skoci na dalsi nahoz. */
.nahoz-dotaz{position:absolute;z-index:50;width:260px;padding:12px 14px 13px;
  background:var(--surface);border:1px solid var(--zlata);border-radius:4px;
  box-shadow:0 18px 40px -18px var(--stin-barva)}
.nahoz-dotaz p{margin:0 0 6px}
.nahoz-dotaz .nd-cislo{font-size:15.5px}
.nahoz-dotaz .nd-cislo b{font-family:var(--f-disp);font-weight:700;font-size:24px;
  color:var(--zlata);margin-right:3px;vertical-align:-1px}
.nahoz-dotaz .dim{font-size:13px;margin-bottom:11px}
.nd-tlacitka{display:flex;gap:8px;justify-content:flex-end}
.nd-potvrdit{border-color:var(--zlata);color:var(--zlata)}
.nd-potvrdit:focus-visible,.nd-potvrdit:hover{color:var(--ink);border-color:var(--zlata)}
/* Odsouhlaseny nizky nahoz uz nekrici - zustane jen tlumene oznaceny. */
.zap-list input.nahoz.nizky[data-nizky-ok]{border-color:var(--line-solid);
  color:var(--muted)}

.kontrola-oddil{margin:0 0 18px}
.kontrola-oddil h4{margin:0 0 6px;font-family:var(--f-disp);font-weight:600;
  font-size:17px;text-transform:uppercase;letter-spacing:.02em}
.kontrola-oddil h4 b{color:var(--accent-ink)}
.kontrola-oddil .seznam{max-height:30vh;overflow-y:auto;margin:8px 0 0}
.kontrola-chybi .nizky-cislo{color:var(--accent-ink)}
.kontrola-ano{border-color:var(--zlata);color:var(--zlata)}
.kontrola-ano:hover{color:var(--ink);border-color:var(--zlata)}
.nizky-seznam{margin:0 0 14px;max-height:40vh;overflow-y:auto}
.nizky-radek{display:flex;align-items:baseline;gap:12px;padding:8px 0;
  border-bottom:1px solid var(--line)}
.nizky-radek:last-child{border-bottom:none}
.nizky-cislo{font-family:var(--f-disp);font-weight:700;font-size:23px;
  color:var(--zlata);width:2.6em;text-align:right;
  font-variant-numeric:tabular-nums}
.nizky-kdo{font-size:16px}
.nizky-kdo i{font-style:normal;color:var(--faint);font-size:.82em;
  text-transform:uppercase;letter-spacing:.05em}
.nizky-kde{margin-left:auto;font-family:var(--f-mono);font-size:11px;
  color:var(--faint);white-space:nowrap}
.nizky-tlacitka{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.nizky-ano{border-color:var(--zlata);color:var(--zlata)}
.nizky-ano:hover{color:var(--ink);border-color:var(--zlata)}

/* ---- rozcestnik spravy (/admin) ----
   Dlazdice misto seznamu odkazu: kazda nese cislo, kvuli kteremu se sem
   chodi - kolik zapasu zbyva zapsat, kolik jmen je nedodelanych. */

.adm{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  margin:22px 0 26px}
.admdlaz{display:flex;flex-direction:column;gap:7px;padding:18px 20px 20px;
  text-decoration:none;color:inherit;border-color:var(--line-solid)}
.admdlaz:hover{border-color:var(--accent-ink)}
.admdlaz.hlavni{border-left:3px solid var(--accent)}
.admjm{font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  letter-spacing:.02em;font-size:21px;line-height:1.1}
.admdlaz:hover .admjm{color:var(--accent-ink)}
.admpop{font-size:14.5px;color:var(--muted)}
.admcis{margin-top:auto;padding-top:10px;display:flex;align-items:baseline;gap:7px;
  flex-wrap:wrap}
.admcis b{font-family:var(--f-disp);font-weight:700;font-size:31px;line-height:1}
.admcis i{font-style:normal;font-family:var(--f-disp);font-weight:600;
  font-size:19px;color:var(--faint);margin-left:-4px}
.admlab{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint)}

/* ---- porusena tvrda pravidla sestavy ----
   Cervena, protoze to neni dotaz, ale zaraz: takovy zapis se neulozi. */
.zap-kolize{margin:0;padding:9px clamp(14px,2.4vw,18px) 11px;
  background:color-mix(in srgb, var(--accent) 12%, var(--surface));
  border-bottom:1px solid var(--line-solid);font-size:14.5px}
.zap-kolize span{display:block}
.zap-kolize span+span{margin-top:4px}
.zap-list select.kolize{border-color:var(--accent);color:var(--accent-ink)}

/* ---- prokliky na strance hrace ----
   Odkazy tu nesmi krest jako odkazy - tabulka je hlavne cislo vedle cisla.
   Barvu dostanou az pod kurzorem, jinak jen jemne podtrzeni. */
.hd-tym a{color:inherit;text-decoration:none;border-bottom:1px dotted var(--line-strong)}
.hd-tym a:hover{color:var(--accent-ink);border-bottom-color:var(--accent-ink)}
.hd-soutez a{color:inherit;text-decoration:none}
.hd-soutez a:hover{color:var(--accent-ink)}
.hd-podtitul a{color:inherit;text-decoration:none;
  border-bottom:1px dotted var(--line-strong)}
.hd-podtitul a:hover{color:var(--accent-ink);border-bottom-color:var(--accent-ink)}
.hd-tab td.hd-den a,.hd-tab td.souper a{color:inherit;text-decoration:none;
  border-bottom:1px dotted var(--line-strong)}
.hd-tab td.hd-den a:hover,.hd-tab td.souper a:hover{color:var(--accent-ink);
  border-bottom-color:var(--accent-ink)}

/* ---- ktere kolo se prave pise ----
   Prepinac vypada jako pas hracich dnu v hlavicce webu - tytez tridy
   .dny/.den, jen jako <button>, protoze nikam nevede. */
.zap-kola{margin:0}
.zap-kola .den{font:inherit;font-family:var(--f-disp);font-weight:600;
  font-size:15px;cursor:pointer}
.zap-kola .den[aria-current]{background:var(--accent);border-color:var(--accent);
  color:var(--na-akcentu)}

/* Aktivni kolo ma cervenou hranu vlevo, stejne jako hlavni dlazdice
   ve sprave. Neaktivni se jen ztlumi, aby nekriclo - ale zustane cele
   citelne, prepisuje se z papiru a oko skace. */
.zap-kolo{border-left:3px solid transparent}
.zap-kolo.aktivni{border-left-color:var(--accent)}
.zap-kolo:not(.aktivni) h4 .kn{color:var(--faint)}

/* Hlavicka drzi skore i prepinac kol, takze se pri dlouhem listu hodi
   mit ji porad na ocich. Jen na sirsich displejich - na uzkem se zalomi
   do tri radku a snedla by pul obrazovky. */
@media (min-width: 760px) {
  /* Pod ukotvenym pasem, ne pod horni hranou okna - jinak by se
     hlavicka zapisu schovala za nej. */
  .zap-hlavicka{position:sticky;top:var(--pas-vyska);z-index:20}
}

/* ---- skok na sousedni zapis hraciho dne ----
   Sipky stoji nad formularem, dvojice druzstev je primo v odkazu - at je
   z nej poznat, kam vede, jeste nez se na nej klikne. */
.zap-sousede{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  gap:12px;margin:0 0 16px}
.zap-soused{display:inline-flex;align-items:center;gap:8px;text-decoration:none;
  padding:7px 13px 8px;border:1px solid var(--line-solid);border-radius:4px;
  background:var(--surface);color:var(--muted);min-width:0}
.zap-soused:hover{color:var(--ink);border-color:var(--accent-ink)}
.zap-soused.vlevo{justify-self:start}
.zap-soused.vpravo{justify-self:end}
.zap-soused.prazdny{border:none;background:none;padding:0}
.zap-soused .sip{color:var(--accent-ink);font-size:19px;line-height:1;flex:0 0 auto}
.zap-soused .par{font-family:var(--f-disp);font-weight:600;font-size:15px;
  text-transform:uppercase;letter-spacing:.02em;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
/* Uz zapsany soused se ztlumi - at je videt, kam jeste chybi zajit. */
.zap-soused.hotovy .par{color:var(--faint)}
.zap-kolikaty{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint);text-align:center}
@media (max-width: 560px) {
  .zap-sousede{grid-template-columns:1fr 1fr}
  .zap-kolikaty{grid-column:1 / -1;order:-1}
}

/* ---- hraci den, na kterem se prave pracuje ----
   Prvni nedopsany. Zvyrazneny stejnou cervenou jako vybrany hraci den
   v hlavicce webu, aby to bylo poznat na prvni pohled - seznam ma
   jedenact stejne vypadajicich bloku. */
.denblok.aktualni .dc{color:var(--accent)}
.denblok.aktualni .karta{border-color:var(--line-solid);
  box-shadow:inset 3px 0 0 var(--accent), var(--shadow)}
.zap-ted{font-family:var(--f-mono);font-size:10px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--na-akcentu);background:var(--accent);
  border-radius:99px;padding:2px 9px 3px;font-weight:400}
/* "Dalsi na rade" je jen orientace, ne ukol - proto tise, obrysem. */
.zap-ted.tise{background:none;color:var(--muted);
  border:1px solid var(--line-solid)}
.denblok.priste .dc{color:var(--muted)}
/* Uz dopsany den se ztlumi, at je videt, kam uz chodit netreba. */
.denblok:not(.aktualni) .zap-pocet{color:var(--faint)}

/* ---- druzstvo v sezone ----
   Doplnkove cislo v dlazdici (z kolika, bilance) - mensi a tlumene, aby
   hlavni cislo zustalo hlavni. */
.dl-cislo .dl-ze{font-style:normal;font-size:.5em;color:var(--faint);
  font-weight:600;margin-left:5px;letter-spacing:.02em}
.tsz-dal{display:flex;gap:18px;flex-wrap:wrap;margin:0 0 24px}
.tsz-odkaz{font-family:var(--f-disp);font-weight:600;font-size:15px;
  text-transform:uppercase;letter-spacing:.02em;color:var(--accent-ink);
  text-decoration:none;border-bottom:1px solid transparent}
.tsz-odkaz:hover{border-bottom-color:var(--accent-ink)}
.tsz-odkaz .dim{font-family:var(--f-body);font-weight:400;font-size:13px;
  text-transform:none;letter-spacing:normal}

/* ---- archiv ----
   Vchod do starsich rocniku. Neni to prepinac prevleceny za stranku:
   u kazde sezony stoji vitez, pocet druzstev a nejlepsi jednotlivec,
   at je hned videt, co v tom rocniku bylo. */
/* Archiv je jina vec nez prehledy vedle nej (ty jsou napric historii,
   tenhle vede do jednotlivych rocniku) - odsazeni to nazna, ramecek uz
   ma z .klub-odkaz, druhy by byl navic. */
.archiv-odkaz{margin-left:8px}
.zpet-archiv{white-space:nowrap}

.arch{display:flex;flex-direction:column;gap:20px;margin:22px 0 0}
.arch-rok{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start}
.arch-cislo{font-family:var(--f-disp);font-weight:700;font-size:clamp(26px,4vw,36px);
  line-height:1;margin:0;color:var(--faint);letter-spacing:-.01em;
  min-width:2.6ch;padding-top:12px}
/* Vzdycky dva sloupce, i kdyz ma rok jen jednu sezonu - roztazena dlazdice
   pres celou sirku vypada jako chyba. Tyka se to 2015 (jaro chybi) a
   bezneho roku, jehoz podzim je prave rozehrany, takze v archivu neni.
   minmax(0,1fr) drzi sirku i pri dlouhem nazvu druzstva. */
.arch-sezony{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
/* POZOR: pevny sloupec funguje jen proto, ze v HTML stoji jaro PRED
   podzimem (radi to main.archiv()). Mrizka umistuje polozky v poradi,
   v jakem prijdou, a zpatky na predchozi radek uz se nevraci - pri
   opacnem poradi by se kazdy rocnik rozpadl na dva radky. */
.arch-jaro{grid-column:1}
.arch-podzim{grid-column:2}
.arch-dlaz{display:flex;flex-direction:column;gap:5px;padding:14px 16px 15px;
  text-decoration:none;color:inherit;border-color:var(--line-solid)}
.arch-dlaz:hover{border-color:var(--accent-ink)}
.arch-cast{font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  letter-spacing:.03em;font-size:17px}
.arch-dlaz:hover .arch-cast{color:var(--accent-ink)}
/* Stupne vitezu v dlazdici rocniku. Uzsi obdoba tech v Galerii - prvni
   misto zlate, tataz barva jako stupnice 250. */
.arch-stupne{display:flex;flex-direction:column;gap:2px;margin:3px 0 1px}
.arch-stupen{display:flex;align-items:baseline;gap:8px;font-size:14.5px;
  color:var(--muted)}
.arch-stupen i{font-style:normal;font-family:var(--f-mono);font-size:11px;
  color:var(--faint);flex:0 0 1.4em}
.arch-stupen b{margin-left:auto;font-family:var(--f-disp);font-weight:700;
  font-size:15px;color:var(--faint);font-variant-numeric:tabular-nums}
.arch-stupen.s1{font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  letter-spacing:.02em;font-size:16px;color:var(--zlata)}
.arch-stupen.s1 i,.arch-stupen.s1 b{color:var(--zlata)}
.arch-pocty{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;
  color:var(--faint);margin-top:3px}
/* Sezona bez vysledku (covid, necitelny zdroj) zustava v archivu
   schvalne - bez ni by tam byla mezera a vypadalo by to jako chyba. */
.arch-dlaz.bez{opacity:.62}
.arch-nic{font-size:13.5px;color:var(--faint)}
@media (max-width: 560px) {
  .arch-rok{grid-template-columns:1fr;gap:8px}
  .arch-cislo{padding-top:0}
  .arch-sezony{grid-template-columns:1fr}
  .arch-jaro,.arch-podzim{grid-column:1}
}

/* ---- hlavni strana ----
   Dve pasma: co web vede (dlazdice soutezi) a co se odehralo (proud).
   Proud je uz rozvrzeny na clanky - titulek, text a fotky prijdou nad
   vysledkovou tabulku, ta se sklada z databaze. */
.hl-dlazdice{display:grid;gap:14px;margin:22px 0 30px;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.hl-dlaz{display:flex;flex-direction:column;gap:5px;padding:16px 18px 17px;
  text-decoration:none;color:inherit;border-color:var(--line-solid)}
a.hl-dlaz:hover{border-color:var(--accent-ink)}
/* Bezici soutez uz cervenou hranu nema: bezi tri z peti, takze to nic
   nerozlisovalo a tri cervene pruhy vedle sebe byly jen hluk. Rozdil
   nese ztlumeni te souteze, ktera jeste zadny rocnik nema. */
.hl-nazev{font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  letter-spacing:.02em;font-size:18px;line-height:1.15}
a.hl-dlaz:hover .hl-nazev{color:var(--accent-ink)}
.hl-sezona{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--faint)}
.hl-stav{font-size:14px;color:var(--muted);margin-top:3px}
/* Paticka dlazdice. Zlata se tu drzi na 250+ a na rozehrany vecer -
   vedouci druzstvo neni ani jedno, proto obycejny ink.

   Na dlazdici jsou tim padem jen DVE pisma a mono zbylo na to, na co
   je: na cislo a na kicker se sezonou. Predtim se na jedne kartickce
   potkala vsechna tri. */
.hl-vede{display:flex;align-items:baseline;gap:9px;margin-top:auto;
  padding-top:10px;border-top:1px solid var(--line);
  font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  letter-spacing:.02em;font-size:16px;color:var(--ink)}
.hl-vede i{font-style:normal;font-family:var(--f-body);font-weight:400;
  font-size:13px;letter-spacing:normal;text-transform:none;color:var(--faint)}
.hl-vede b{margin-left:auto;font-family:var(--f-mono);font-weight:500;
  font-size:15px;color:var(--muted)}
/* Soutez, ktera jeste nema rocnik. Ztlumena, ale videt a proklikatelna -
   je z ni poznat, co web povede, a vede na stranku s vysvetlenim. */
.hl-ceka{opacity:.72}
.hl-ceka:hover{opacity:1}
.hl-brzy{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint);border:1px solid var(--line-solid);
  border-radius:99px;padding:2px 9px 3px;align-self:flex-start;margin-top:8px}

.hl-proud{display:flex;flex-direction:column;gap:16px}
.hl-udalost{padding:15px 18px 16px}
.hl-kdy{margin:0 0 10px;display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;
  font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  letter-spacing:.02em;font-size:17px}
.hl-kdy .dd{font-family:var(--f-body);font-weight:400;text-transform:none;
  letter-spacing:normal;font-size:14px;color:var(--faint)}
.hl-rozehrano{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.1em;
  color:var(--zlata);border:1px solid var(--zlata-hrana);border-radius:99px;
  padding:2px 9px 3px;font-weight:400}
.hl-vysledky td{font-size:15px}
.hl-zapis{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--faint);text-decoration:none;
  border-bottom:1px dotted var(--line-strong)}
.hl-zapis:hover{color:var(--accent-ink);border-bottom-color:var(--accent-ink)}
.hl-priste{opacity:.85}
.hl-priste .hl-brzy{margin-top:0}
.hl-vic{margin:0;font-size:14.5px}
.hl-vic a{color:var(--accent-ink);text-decoration:none}
.hl-vic a:hover{text-decoration:underline}

/* ---- web nad soutezemi ----
   Hlavicka stranek, ktere nepatri zadne jedne soutezi. Bez zalozek
   a bez prehledu ligy - ty patri lize, ne webu. */
.web-top .topin{padding-bottom:16px}
.web-top h1 a{color:inherit;text-decoration:none}
.web-top h1 a:hover{color:var(--accent-ink)}
/* Doplnek k hlasce "nehralo se": u souteze bez rocniku jde o to, ze data
   teprve prijdou, ne ze se nehralo. */
.prazdna-stav{margin-top:14px;color:var(--muted);font-size:15px}
.prazdna-stav b{color:var(--ink)}

/* ---- serie turnaju ---- */
.serie-rok{font-family:var(--f-disp);font-weight:600;font-size:15px;
  letter-spacing:.02em;color:var(--muted);border:1px solid var(--line-solid);
  border-radius:4px;padding:6px 11px}
.serie-hlava{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:20px 0 10px}
.serie-hlava .dim{font-family:var(--f-body);font-weight:400;text-transform:none;
  letter-spacing:normal;font-size:14px}
.zapis-serie td.hra,.zapis-serie th.hra{width:1%;padding-left:7px;padding-right:7px}
.zapis-serie .sum{font-weight:700}
/* Hvezdicka u souctu, kde zabral strop - vzacne, ale stoji za zminku. */
.strop{color:var(--accent-ink);font-weight:700;margin-left:2px;cursor:help}

/* Nevyvazeny hraci den - druzstvo hraje dvakrat, jine vubec. Neni to
   chyba, je to tak vydane; proto tise, ne cervene. */
.nerovny{margin:0 0 10px;padding:9px 13px;border-left:2px solid var(--zlata);
  background:var(--surface-2);font-size:14px;color:var(--muted)}
.nerovny b{color:var(--ink)}

/* Zalozky soutezi na strance hrace. Vypadaji jako pas hracich dnu -
   je to totez gesto: prepnout, co se ukazuje. */
.hr-souteze{margin:0 0 20px}
.hr-souteze .den{font-size:14px}

/* "v 3. rundě" u umisteni - doplnkovy udaj, at hlavni cislo zustane hlavni */
.hr-runda{font-size:11px;color:var(--faint);white-space:nowrap}

/* Prehled handicapu po turnajich na strance Informace */
.hdc-prehled{width:auto;margin:8px 0 12px;font-size:14px}
.hdc-prehled td{padding:3px 10px 3px 0;border-bottom:none;white-space:nowrap}
.hdc-prehled .num{text-align:right;font-variant-numeric:tabular-nums}

/* Fakta o soutezi, ktera jeste nema rocnik. Popisek a hodnota, ne veta -
   nazev systemu hry ("Ostatní") se do vety zasadit neda. */
.prazdna-fakta{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;
  margin:14px 0 0;font-size:14.5px;text-align:left;max-width:34em}
.prazdna-fakta dt{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint);padding-top:3px}
.prazdna-fakta dd{margin:0;color:var(--muted)}


/* ---- pas webu ----
   Nad hlavickou souteze, na kazde strance. Do te doby byla hlavni strana
   jediny rozcestnik a kliknutim do souteze cesta zpatky zmizela.

   Zamerne tisi nez hlavicka pod nim: je to orientace, ne obsah stranky.
   Proto mensi pismo, ztlumena barva a jen 2px podtrzeni u aktivni
   souteze - hlavicka souteze musi zustat to hlavni, co je videt. */
/* PAS JE UKOTVENY. Je to cesta domu a mezi souteze - a ta ma byt po
   ruce i uprostred dlouhe tabulky, ne az po vyrolovani nahoru.

   Kotvi se JEN pas, ne hlavicka soutezee pod nim: dve patra by na
   telefonu snedla treti obrazovky. Vyska je v promenne, protoze se od ni
   odpichuje ukotvena hlavicka zapisu - jinak by se prekryly.
   `--pas-vyska` stoji v hlavnim :root, ne tady - druhy blok :root by
   vypadal jako dalsi paleta. */
.pas{background:var(--pas-bg);border-bottom:1px solid var(--line)}
/* Kotvi se MENU, ne titul: pri rolovani ma zustat po ruce cesta.
   Titul odjede nahoru jako v novinach. */
.pas-menu{position:sticky;top:0;z-index:60;background:var(--pas-bg);
  border-top:1px solid var(--line)}
/* TITULNI RADEK SE NESMI ZALOMIT. `.pasin` ma `flex-wrap:wrap` kvuli
   menu pod nim, jenze tady jsou jen tri veci - znacka, podtitul a ucet -
   a kdyz se nevejdou, spadne DOLU UCET. Presne to se stalo, kdyz se
   7. 9. 2026 znacka prejmenovala na delsi "Xbowling Jadran
   Frydek-Mistek"; uzivatel to nahlasil den nato.
   Ustoupit ma PODTITUL: je to ozdoba, kdezto prihlaseni a Sprava jsou
   jedina cesta dovnitr. Proto je jediny, ktery se smi zkratit. */
.pas-hlava{padding-top:14px;padding-bottom:11px;align-items:baseline;
  flex-wrap:nowrap}
.pas-hlava>.pas-znacka,.pas-hlava>.pas-ucet{flex:0 0 auto}
.pas-podtitul{font-size:13.5px;color:var(--faint);
  flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap}
@media (max-width:700px){.pas-podtitul{display:none}}
/* Pri zapnute fotce by pruhledny pas nechal pod sebou prosvitat obsah. */
html[data-foto] .pas{background:var(--pas-bg)}
.pasin{max-width:var(--sirka-stranky);margin:0 auto;padding:0 clamp(14px,3vw,28px);
  display:flex;align-items:center;gap:clamp(8px,2vw,20px);flex-wrap:wrap}
/* Titul webu. Uz to neni radek v menu, ale nadpis stranky - proto
   vetsi a ve barve textu, ne ztlumeny. */
.pas-znacka{font-family:var(--f-disp);font-weight:700;text-transform:uppercase;
  font-size:21px;letter-spacing:.04em;color:var(--muted);text-decoration:none;
  white-space:nowrap;line-height:1.1}
/* "FM" je nahrada za "Frydek-Mistek" na uzkem displeji - tady se
   schova. POZOR na poradi: media query nize ma stejnou specificitu,
   takze kdyby tohle stalo AZ ZA ni, prebilo by ji a na telefonu by
   nebylo videt ani jedno. Tataz past jako u `.razeni .den`. */
.pz-kratky{display:none}
.pas-znacka b{color:var(--ink);font-weight:700}
.pas-znacka:hover b{color:var(--accent-ink)}
.pas-znacka:hover{color:var(--muted)}
.pas-znacka:hover b{color:var(--ink)}
.pas-souteze,.pas-web{display:flex;gap:1px;align-items:center;flex-wrap:wrap}
/* Hraci a Klub 250 patri WEBU, ne soutezi - proto az na druhem konci pasu
   a ne v rade se soutezemi. */
.pas-web{margin-left:auto}
/* TOTEZ CO `.sek` NIZE - hlavni menu nesmi byt mensi nez podmenu.
   Drzi se to na jednom cisle schvalne: kdyz se zmeni jedno, ma se zmenit
   obe, jinak se patra zase prevrati. */
.pas-s{font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  font-size:15px;letter-spacing:.02em;color:var(--muted);text-decoration:none;
  white-space:nowrap;padding:9px 12px 11px;border-bottom:3px solid transparent}
.pas-s:hover{color:var(--ink)}
.pas-s[aria-current]{color:var(--ink);border-color:var(--accent)}
/* Prvni polozka zarovnana s titulem nad ni. */
.pas-souteze .pas-s:first-child{padding-left:0}
/* Soutez, ktera jeste nema nacteny zadny rocnik. Stejne ztlumeni jako
   ma jeji dlazdice na hlavni strane. */
.pas-ceka{color:var(--faint)}
.pas-ceka:hover{color:var(--muted)}
/* ------------------------------------------- PAS NA TELEFONU

   Zmereno 29. 9. 2026 na iPhonu 15 Pro Max (430 px): pas se lamal na
   TRI radky a zabiral 177 px, tedy petinu displeje, jeste nez zacal
   obsah. Prvni radek pritom nesly NASE souteze - a kvuli tem sem lidi
   chodi - kdezto zbyle dva byly prevzate ligy a nastaveni.

   Souteze se rolovat NEDAJI (jako `.dny` nebo `.sekce`): je mezi nimi
   `.pas-nabidka`, umistena absolutne, a `overflow-x` by ji uriznul.
   Proto se na telefonu skladaji ligy pod jednu polozku - viz
   `_pas_webu.html`. */
.pas-uzke{display:none}

/* ------------------------------------------- VEDLEJSI SLOUPEC

   Na telefonu ustoupi. Zmereno 29. 9. 2026: ligova tabulka potrebuje
   604 px a z 430px displeje je videt 67 % - cislo se utne uprostred
   cislice (136...) a vypada to rozbite, ne rolovatelne.

   NEJDE O TO SCHOVAT, CO SE NEVEJDE, ale co je vedlejsi. V tabulce
   ligy zustava Druzstvo, Utkani a Body - tedy to, o co se hraje;
   Duelove body a Celkem jsou surovina pod tim a na telefonu se
   dohledaji o otoceni displeje dal. Rozhodl uzivatel 29. 9. 2026.

   Sloupec se ZNACI V SABLONE, nepocita se podle poradi: `nth-child`
   by se rozesel pri prvnim pridanem sloupci a poznalo by se to az
   tim, ze se schova neco jineho.

   Razeni tim netrpi - `display:none` bunku z DOM neodstrani, takze
   `cellIndex` sedi dal a cisla sloupcu se neposunou. */
@media (max-width:620px){
  .vedlejsi{display:none}
}

@media (max-width:620px){
  /* Ligy pod jednou polozkou misto tri vedle sebe. */
  .pas-siroke{display:none}
  .pas-uzke{display:block}

  /* NABIDKA SE MUSI VEJIT NA OBRAZOVKU.

     `.pas-nabidka` je `position:absolute; right:0; min-width:250px`,
     takze se rozviji DOLEVA od sve polozky - a u polozky blizko leveho
     okraje ujede za nej. Zmereno na 430 px: z sesti nabidek jich pet
     koncilo castecne mimo obrazovku a SBL byla videt ze ctvrtiny
     (-176 az 74 px). Tykalo se to i VZHLEDU, tedy prepinace vzhledu.

     Byla to TICHA chyba: stranka vrati 200, DOM je v poradku a pozna
     se to jen okem, k tomu jen na uzkem displeji.

     Na telefonu je proto nabidka pres celou sirku pasu. Kotvi se
     o `.pas-menu` (ten je `position:sticky`, tedy umisteny), takze
     `.pas-nastaveni` tu musi byt `static` - jinak by kotvou zustala
     sama polozka a nic by se nezmenilo. */
  .pas-nastaveni{position:static}
  .pas-nabidka{left:clamp(14px,3vw,28px);right:clamp(14px,3vw,28px);
    min-width:0}
}

@media (max-width:620px){
  .pz-dlouhy{display:none}
  /* Na uzkem displeji zbyde "Jadran FM" - jinak by se pas zalomil
     driv nez souteze pod nim. */
  .pz-kratky{display:inline}
  .pas-web{margin-left:0}
  .pas-s{padding-left:8px;padding-right:8px}
}

/* Nadpis hlavni strany. Jen tady - na ostatnich strankach nese znacku
   pas nahore a velky nadpis patri soutezi, na ktere clovek stoji. */

/* Sloupec se soutezi v detailu klubu. Ukazuje se, jen kdyz je klub vic
   nez jedne souteze - jinak by opakoval porad totez. */
.klub-kde{white-space:nowrap}
.klub-pozn{font-size:14.5px;color:var(--faint)}

/* ---- listina mixu ----
   Dvanact her, ale ctyri z nich jsou devitkove (no-tap) a jsou o desitky
   kuzelek vyssi. Bez opticke prepazky by se to cetlo jako jedna rada,
   ve ktere nekdo v pulce turnaje najednou zacal hazet o 40 vic. */
.mix-listina .sk-dev{background:var(--pruh-bg)}
.mix-listina thead .sk-des,
.mix-listina thead .sk-dev{font-size:10.5px;letter-spacing:.06em;
  text-transform:uppercase;font-family:var(--f-mono);color:var(--faint)}
.mix-listina thead .sk-dev{color:var(--zlata);opacity:.75}
.mix-listina td.sk-dev + td.sk-des,
.mix-listina td.sk-des + td.sk-dev{border-left:1px solid var(--line-solid)}
/* Dvojice: dva odkazy na jednom radku, spojka at nekrici. Jmena se smi
   zalomit - jinak by dva cele lidi v jedne bunce roztahly celou tabulku. */
.amp{color:var(--faint);padding:0 2px}
.mix-listina td.jm{white-space:normal;padding-top:7px;padding-bottom:7px}

/* Listina mixu ma sedmnact sloupcu (dvojice + 12 her + souhrny). Aby se
   vesla, stoji jmena dvojice POD SEBOU - jinak by dva cele lidi v jedne
   bunce roztahli tabulku pres celou sirku. */
.pardva{display:flex;flex-direction:column;line-height:1.3}
.pardva a{white-space:nowrap}
/* Druhy z dvojice je tise podbarveny, at je videt, ze patri k prvnimu
   a neni to dalsi radek tabulky. */
.pardva a:last-child{color:var(--muted)}
.pardva a:last-child:hover{color:var(--accent-ink)}
/* Dvanact cisel vedle sebe - uzsi bunky, at se vejdou i bez posouvani. */
.mix-listina td.hra, .mix-listina th.hra{padding-left:6px;padding-right:6px;
  font-size:14.5px}
.mix-listina thead th{padding-left:7px;padding-right:7px}

/* Upozorneni na strance hrace u souteze dvojic. Musi byt videt driv nez
   tabulka - jinak si clovek precte 207 jako svuj prumer. */
.mix-varovani{border-left:3px solid var(--zlata);padding-left:14px;
  margin-top:18px;color:var(--muted)}

/* ---- oprava handicapu ----
   Hraci, u kterych HDC nejspis chybi, maji zlatou hranu - tataz barva
   jako "pozor, jeste to neni ulozene" v zapisu. Neni to chyba, je to
   vec ke kontrole. */
.hdc-tab tr.podezrely td{background:var(--zlata-tlum)}
.hdc-tab tr.podezrely td:first-child{box-shadow:inset 3px 0 0 var(--zlata)}
.hdc-pole{width:3.4em;text-align:right;font-family:var(--f-mono);font-size:15px;
  color:var(--ink);background:var(--surface-2);border:1px solid var(--line-solid);
  border-radius:3px;padding:5px 7px}
.hdc-pole:focus{outline:none;border-color:var(--accent-ink)}
/* Nabidka podle toho, co maji ostatni v sezone. Jedno kliknuti. */
.hdc-navrh{margin-left:7px;font-family:var(--f-mono);font-size:12px;
  color:var(--zlata);background:none;border:1px solid var(--zlata-hrana);border-radius:99px;
  padding:3px 8px;cursor:pointer}
.hdc-navrh:hover{background:var(--zlata-tlum2);color:var(--ink)}
.hdc-ulozit{display:flex;align-items:center;gap:14px;margin-top:18px}

/* Napoveda u handicapu noveho hrace - kolik maji ostatni v sezone. */
.nh-hdc-napoveda{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--zlata);align-self:center}

/* ---- log zmen ----
   Snimek zapisu je dlouhy retezec, ktery se MUSI zalomit - jinak by
   tabulku roztahl pres celou obrazovku a zbytek by se nedal cist. */
.zmeny-tab td.jm{white-space:normal;vertical-align:top}
.zm-hodnota{font-family:var(--f-mono);font-size:11.5px;line-height:1.45;
  max-width:26em;word-break:break-word;color:var(--muted)}
.zm-pred{color:var(--faint)}
.zm-klic{display:block;font-family:var(--f-mono);font-size:10.5px;color:var(--faint)}
.akce{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;
  color:var(--zlata);border:1px solid var(--zlata-hrana);border-radius:99px;padding:2px 8px 3px;
  white-space:nowrap}
.zm-pozn td{padding-top:0;border-top:none;font-size:13px}

/* ---- sprava uzivatelu ---- */
.uziv{padding:16px 18px 17px;margin-bottom:14px}
.uziv-zruseny{opacity:.55}
.uziv-hlava{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}
.uziv-login{font-size:17px;color:var(--ink);font-weight:500;padding-bottom:6px}
.uziv label{display:flex;flex-direction:column;gap:3px;font-size:12.5px;
  color:var(--faint);font-family:var(--f-mono);letter-spacing:.06em;
  text-transform:uppercase}
.uziv input[type=text], .uziv input:not([type]), .uziv input[type=password]{
  font-family:var(--f-body);font-size:15px;text-transform:none;letter-spacing:normal;
  color:var(--ink);background:var(--surface-2);border:1px solid var(--line-solid);
  border-radius:3px;padding:6px 9px;min-width:12em}
.uziv input:focus, .uziv select:focus{outline:none;border-color:var(--accent-ink)}
.uziv-jmeno input{min-width:16em}
.uziv-prep, .uziv-jedno, .uziv-admin{flex-direction:row !important;align-items:center;
  gap:7px !important;text-transform:none !important;letter-spacing:normal !important;
  font-family:var(--f-body) !important;font-size:14.5px !important;color:var(--muted) !important}
.uziv-kdy{margin-left:auto;font-size:12.5px;padding-bottom:7px}
.uziv-admin{margin:14px 0 0;border-top:1px solid var(--line);padding-top:13px;display:flex}
.uziv-detail{display:flex;gap:clamp(16px,4vw,44px);flex-wrap:wrap;margin-top:12px}
.uziv-popisek{display:block;font-family:var(--f-mono);font-size:10.5px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:7px}
.uziv-role{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.uziv-role .uziv-popisek, .uziv-opr .uziv-popisek{flex-basis:100%}
.uziv-soutez select{font-family:var(--f-body);font-size:14px;color:var(--ink);
  background:var(--surface-2);border:1px solid var(--line-solid);border-radius:3px;
  padding:5px 7px}
.uziv-opr{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.uziv-paticka{display:flex;align-items:flex-end;gap:14px;margin-top:16px;
  border-top:1px solid var(--line);padding-top:14px;flex-wrap:wrap}
.uziv-paticka .tlacitko{margin-left:auto}
.uziv-novy{border-left:3px solid var(--accent)}
.uziv-pozn{margin:12px 0 0;font-size:13.5px}

/* Kdo je prihlaseny - uplne vpravo v pasu, jen ve sprave. Zamerne tise:
   je to udaj, ne ovladaci prvek. */
/* UCET STOJI U TITULU, NE V MENU - po prihlaseni se menu lamalo na dva
   radky. Titulni radek ma vpravo volno a ucet je stav, ne cesta.
   `align-self:center`, protoze `.pas-hlava` srovnava na uctarnu
   a kolecko s pismenem by z ni koukalo. */
.pas-ucet{margin-left:auto;align-self:center;
  display:inline-flex;align-items:center;gap:2px}
.pas-ucet a{font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  font-size:12px;letter-spacing:.02em;color:var(--faint);text-decoration:none;
  white-space:nowrap;padding:4px 6px}
.pas-ucet a:hover{color:var(--ink)}
.pas-ucet .pas-sprava{color:var(--muted)}
.pas-ja{display:inline-flex;align-items:center;gap:7px;margin-left:10px;
  padding:6px 9px 6px 6px;border-left:1px solid var(--line-solid);
  font-family:var(--f-mono);font-size:12px;letter-spacing:.04em;
  color:var(--muted);cursor:default}
.pas-odhlasit:hover{color:var(--accent-ink)}
.pas-ja-znak{display:inline-flex;align-items:center;justify-content:center;
  width:21px;height:21px;border-radius:50%;background:var(--surface-2);
  border:1px solid var(--line-solid);font-family:var(--f-disp);font-weight:700;
  font-size:12px;color:var(--ink)}
/* Prihlaseny pres basic auth, ale v tabulce uzivatelu jeste neni. */
.pas-ja-nezname .pas-ja-znak{border-color:var(--zlata-hrana);color:var(--zlata)}

/* Prihlasovaci stranka. Uzka, at je jasne, ze se nic jineho delat neda. */
.prihl{max-width:26em;margin:clamp(30px,8vh,80px) auto 0}
.prihl-karta{display:flex;flex-direction:column;gap:14px;padding:20px 22px 22px}
.prihl-karta label{display:flex;flex-direction:column;gap:4px;
  font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint)}
.prihl-karta input{font-family:var(--f-body);font-size:16px;color:var(--ink);
  background:var(--surface-2);border:1px solid var(--line-solid);border-radius:3px;
  padding:9px 11px}
.prihl-karta input:focus{outline:none;border-color:var(--accent-ink)}
.prihl-karta .tlacitko{margin-top:4px}
.prihl-pozn{margin-top:16px;font-size:13.5px}

/* Hraci dny, ktere se budou hrat az za tydny. Schovane, ale otevritelne -
   predehravka patri do sveho dne. */
.dalsi-dny{margin-top:8px}
.dalsi-dny > summary{cursor:pointer;list-style:none;padding:11px 0;
  font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  font-size:16px;letter-spacing:.02em;color:var(--muted);
  border-top:1px solid var(--line)}
.dalsi-dny > summary::-webkit-details-marker{display:none}
.dalsi-dny > summary::before{content:"+ ";color:var(--faint)}
.dalsi-dny[open] > summary::before{content:"− "}
.dalsi-dny > summary:hover{color:var(--ink)}
.dalsi-dny-pozn{margin:0 0 14px;font-size:13.5px;max-width:44em}

/* ---- lista o cookies ----
   Malinka, vpravo dole, neblokuje stranku. Web pouziva jednu jedinou
   cookie (prihlaseni do spravy) a nic nemeri, takze to neni branka -
   je to oznameni. */
/* POZOR: bez tohohle lista nezmizi. Atribut hidden dava display:none
   jen ve vychozim stylopisu prohlizece a autorske display:flex ho
   prebije - tlacitko pak nedela nic. */
.cookies{position:fixed;right:clamp(10px,2vw,20px);bottom:clamp(10px,2vw,20px);
  z-index:50;max-width:min(30em,calc(100vw - 24px));
  display:flex;align-items:center;gap:12px;
  background:var(--surface);border:1px solid var(--line-solid);border-radius:5px;
  box-shadow:var(--shadow);padding:10px 12px;
  font-size:12.5px;line-height:1.45;color:var(--muted)}
.cookies b{color:var(--ink);font-weight:600}
.cookies button{flex:0 0 auto;font-family:var(--f-disp);font-weight:600;
  text-transform:uppercase;font-size:12px;letter-spacing:.04em;
  color:var(--ink);background:var(--surface-2);
  border:1px solid var(--line-solid);border-radius:3px;
  padding:6px 12px;cursor:pointer}
.cookies button:hover{border-color:var(--accent-ink);color:var(--accent-ink)}
@media (max-width:560px){
  .cookies{left:clamp(10px,2vw,20px);flex-wrap:wrap}
  /* Na telefonu se lista tahne pres pul obrazovky - text je dlouhy
     a uzky displej ho rozlame na sest radku. Utahuje se proto
     odsazeni i prokladani; TEXT SE NEKRATI, to je jina vec nez
     vzhled a rozhoduje o nem ten, kdo ho psal. */
  .cookies{padding:9px 11px;gap:8px;font-size:12px;line-height:1.4}
  .cookies button{padding:5px 10px}
}

/* Nadpisek nad skupinou dlazdic na rozcestniku spravy. */
.adm-popisek{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--faint);margin:26px 0 10px}
.adm-popisek:first-of-type{margin-top:18px}

/* ---- zamky ----
   Uzavrit vysledky smi spravce, ne zapisovatel - tlacitko je proto tise,
   je to rozhodnuti, ne bezna akce. */
.zamek-form{display:inline;margin-left:10px}
.zamek-tl{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--faint);background:none;
  border:1px solid var(--line-solid);border-radius:99px;padding:3px 10px 4px;
  cursor:pointer}
.zamek-tl:hover{color:var(--ink);border-color:var(--faint)}
.zap-zamek{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--zlata);border:1px solid var(--zlata-hrana);
  border-radius:99px;padding:2px 9px 3px;margin-left:10px}
.zamek-rocnik{margin-top:20px}
.zamek-rocnik .tlacitko[disabled]{opacity:.45;cursor:not-allowed}

/* ---- zapis turnaje serie ----
   Tri rundy pod sebou, kazda vlastni tabulka. Nadpis rundy vypada stejne
   jako hraci den v ligovem seznamu - je to tataz vec: jeden blok, ktery
   se vyhodnocuje zvlast. */
.runda{margin-top:26px}
.runda h3{font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  font-size:18px;letter-spacing:.02em;margin:0 0 10px;
  display:flex;align-items:baseline;gap:10px}
.runda h3 .dd{font-family:var(--f-body);font-weight:400;text-transform:none;
  letter-spacing:normal;font-size:14px;color:var(--faint)}
/* ODSAZENI SLOUPCU. `.poradi` dava kazde bunce 15 px po stranach - to je
   delane pro prehledove tabulky o peti sloupcich. Zapis jich ma ctrnact
   (senior o jeden vic, ma Kategorii), takze samotne odsazeni delalo pres
   sto pixelu a listina se do sirky stranky uz nevesla: sloupce Celkove
   a krizek zustaly za pravym okrajem karty a bylo je videt az po odrolovani.

   Bere se tedy zakladni odsazeni tabulky (9 px). Cisla tim nesplyvaji -
   kazdy sloupec ma svislou hranu bunky a hlavne vlastni ramecek policka.

   SLOUPCU HER SE TO NETYKA (maji 1 px, viz nize) ani jmena zprava
   (26 px z `.poradi td.jm`) - misto patri jmenu, to plati dal. */
.turnaj-tab th,.turnaj-tab td{padding-left:9px;padding-right:9px}
.turnaj-tab select{max-width:12em;font-family:var(--f-body);font-size:14.5px;
  color:var(--ink);background:var(--surface-2);border:1px solid var(--line);
  border-radius:3px;padding:5px 7px}
/* NAHOZ JE VZDYCKY NEJVYS TRIMISTNY - strop je 300, vic tam nikdy
   nebude. Policko bylo delane velkoryse (3,6 em a 6px po stranach)
   a na sest her to udelalo tolik mista, ze se posledni dva sloupce -
   soucet a poradi - uz nevesly. Uzivatel to nahlasil 3. 9. 2026. */
.turnaj-tab input{width:2.9em;text-align:right;font-family:var(--f-mono);
  font-size:15px;color:var(--ink);background:var(--surface-2);
  border:1px solid var(--line);border-radius:3px;padding:5px 3px}
.turnaj-tab input.t-hdc{width:2.3em}
/* MEZERY MEZI HRAMI JSOU ZANEDBATELNE, misto patri jmenu. Sest policek
   vedle sebe nepotrebuje odsazeni - potrebuje se jen nesletet, a na to
   staci ramecek policka. Uzivatel 4. 9. 2026: "mezery mezi 1-2-3-4-5-6
   mohou byt mensi, klidne zanedbatelne." */
/* VSECH SEST SLOUPCU HER JE UPLNE STEJNYCH - tataz sirka, totez
   odsazeni, totez svisle zarovnani. Jakykoli rozdil je videt: policko
   se posune vuci sousednim a vypada to jako chyba.

   Stalo se to dvakrat. Nejdriv mezi bloky (po tolika hrach, po kolika
   se stehuje draha) byla svisla cara - uzivatel: "je pouze mezi 3.
   a 4. sloupcem, jinak nikde a vypada to divne". Nahradil jsem ji
   vetsim odsazenim a bylo to horsi: odsazeni zleva posune obsah bunky,
   takze 4. hra stala jinde nez ostatni vodorovne I svisle (uzivatel
   5. 9. 2026: "4. radek, 4. hra zase nejaky divny odskok pole").

   Predel mezi bloky tedy neni zadny. Neni to skoda: listek zapisovatele
   konci po tretí hre, ale sloupce jsou cislovane a spocitat do tri
   umi kazdy - kdezto rozhozena tabulka mate porad. */
.turnaj-tab td.hra,.turnaj-tab th.hra{padding-left:1px;padding-right:1px;
  width:3.4em;min-width:3.4em;vertical-align:middle}
/* Hranice bloku: po tolika hrach, po kolika se stehuje draha (db/78).
   Listek zapisovatele konci prave tam.

   CARA TU BYLA A JE PRYC (uzivatel 4. 9. 2026): "je pouze mezi 3. a 4.
   sloupcem, jinak nikde a vypada to divne." Ma pravdu - v tabulce, kde
   zadny jiny sloupec svisle oddeleny neni, se jedina cara necte jako
   predel, ale jako chyba. Mezera to same rekne potichu. */
/* Trida `blok-konec` zustava v sablone (rika, kde konci listek), ale nic
   nekresli - viz vyse.

   JMENUJE SE TAK SCHVALNE. Do 6. 9. 2026 se jmenovala `blok` - a to je
   zaroven KOMPONENTA (`.karta.blok` na strankach Informace), ktera ma
   `padding:18px 20px 20px`. Bunka tabulky tim schytala svisly padding
   komponenty: `.turnaj-tab td.hra` prepisuje jen `padding-left`
   a `padding-right`, takze horni a dolni prosaklo skrz.

   Projevilo se to tak, ze KAZDA CTVRTA hra (u devitky, `HER_V_BLOKU`=3)
   mela policko odsazene a radek byl vyssi. Uzivatel to hlasil opakovane:
   "4. radek, 4. hra zase nejaky divny odskok pole. proc?" a nakonec
   "uz jsem to psal aspon 3x".

   Hledalo se to spatne, protoze v HTML je vsechno v poradku - lze az
   stylopis, a to jen u kazde ctvrte bunky. Hlida to `zkouska_vzhledu.py`:
   trida pouzita na bunce tabulky nesmi byt zaroven komponenta
   s vlastnim paddingem. */

/* Cisla her v zahlavi na STRED policka pod nimi. Sloupce jsou uzke
   a policko je siroke pres celou bunku, takze cislo zarovnane doprava
   stalo nad levym okrajem sveho vlastniho sloupce. */
.turnaj-tab th.hra{text-align:center}
.turnaj-tab td.hra input{text-align:center}
/* Jmeno dostane misto, ktere se uspori jinde - je to nejdulezitejsi
   sloupec listiny a nejdriv se z nej cetlo jen prijmeni. Misto se bere
   ze SLOUPCU PORADI, ne ze jmena (uzivatel 4. 9. 2026: "jmeno muze byt
   sirsi"). */
.turnaj-tab td.jm,.turnaj-tab th.jm{min-width:13em}
.turnaj-tab .nas-vstup{min-width:12em}

/* SLOUPCE PORADI JSOU UZKE. Je v nich dvouciferne cislo s teckou, takze
   sirku urcuje nadpis, ne obsah - proto se nadpis smi zalomit. Uzivatel
   4. 9. 2026: "ten sloupec je zbytecne siroky jako krava", "celkove
   umisteni to same".

   Zadne `mono` a zadne `body` (21 px tucne): v jednom radku maji stat
   nejvys dve pisma a hierarchii dela velikost, ne dalsi rodina. V rundě
   je navic ztlumene - hlavni je celkove poradi, z nej plynou body. */
.turnaj-tab td.t-vrunde,.turnaj-tab th.t-vrunde,
.turnaj-tab td.t-poradi,.turnaj-tab th.t-poradi{width:1%;
  padding-left:4px;padding-right:4px;white-space:normal}
/* Nadpis se SMI ZALOMIT ("V rundě" stoji na dvou radcich) a sloupec je
   pak siroky prave na nejdelsi slovo - o to slo.

   `MAX-WIDTH` TU BYVAL A BYL TO OMYL: obsah neorizne, jen ho necha
   pretect pres pravy okraj bunky. Jedno slovo se navic zalomit nedá,
   takze "RUNDĚ" i "CELKOVÉ" pres nej vzdycky pretekaly a v rezimu
   Vysledky, kde sloupec Draha zmizi, dosedlo "V RUNDĚ" primo na nadpis
   "HRÁČ" - cetlo se to jako "V RUNDĚHRÁČ" (uzivatel 14. 9. 2026).
   Sirku drzi `width:1%`, tedy obsah; nic vic potreba neni.

   Otaznik napovedy dostane vlastni radek, jinak by se do teze sirky
   tlacil za slovo a pretekal misto nej. */
.turnaj-tab th.t-vrunde,.turnaj-tab th.t-poradi{line-height:1.15}
.turnaj-tab th.t-vrunde .napoveda,
.turnaj-tab th.t-poradi .napoveda{display:block;margin-left:0}
.turnaj-tab td.t-poradi{font-weight:600}
.turnaj-tab td.t-vrunde{color:var(--faint)}

/* MEZERA MEZI HANDICAPEM A PRVNI HROU. Bez ni HDC splyvalo s prvnim
   nahozem a radek vypadal, jako by mel o hru vic.

   Sedi na sloupci HDC ZPRAVA, ne na prvni hre zleva: odsazeni uvnitr
   bunky hry by posunulo policko vuci ostatnim petí a bylo by to videt. */
.turnaj-tab td.hdc-sloupec,.turnaj-tab th.hdc-sloupec{padding-right:15px}
.turnaj-tab input:focus, .turnaj-tab select:focus{outline:none;
  border-color:var(--accent-ink)}
.t-soucet{font-family:var(--f-mono);font-weight:500}
.turnaj-ulozit{display:flex;align-items:center;gap:14px;margin-top:22px}
.novy-turnaj{margin-top:18px}

/* Zahozeni rozepsane listiny - az uplne dole, daleko od Ulozit. */
.zahodit-radek{margin-top:34px;padding-top:14px;border-top:1px solid var(--line)}

/* Vyklizeni radku a pridani dalsiho. Obojí tise - je to obsluha, ne
   hlavni akce stranky. */
.pridat-radek{margin:8px 0 0}
/* Carkovany okraj zustava - rika "tady neco pribude". Tvar i pismo
   uz jsou spolecne. */
.pridat{font-size:13.5px;background:none;border-style:dashed;padding:4px 13px}

.rozepsane-pozn{margin-top:10px;font-size:13.5px}

/* Predvyplneni z prihlasek - schovane pod rozbalovacim radkem, protoze
   se pouzije jednou za turnaj a pak uz prekazi. */
.predvyplnit{margin:16px 0 0}
.predvyplnit > summary{cursor:pointer;list-style:none;padding:9px 0;
  font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  font-size:15px;letter-spacing:.02em;color:var(--muted)}
.predvyplnit > summary::-webkit-details-marker{display:none}
.predvyplnit > summary::before{content:"+ ";color:var(--faint)}
.predvyplnit[open] > summary::before{content:"− "}
.predvyplnit > summary:hover{color:var(--ink)}
.predvyplnit-telo{display:flex;flex-direction:column;gap:12px;
  background:var(--surface);border:1px solid var(--line);border-radius:4px;
  padding:16px 18px}
.predvyplnit-telo label{display:flex;flex-direction:column;gap:4px;
  font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint)}
.predvyplnit-telo input{font-family:var(--f-body);font-size:14px;color:var(--ink);
  background:var(--surface-2);border:1px solid var(--line-solid);border-radius:3px;
  padding:7px 9px}
.predvyplnit-telo input:focus{outline:none;border-color:var(--accent-ink)}
.predvyplnit-telo .tlacitko{align-self:flex-start}
.predvyplnit-pozn{margin:0;font-size:13px}

/* Draha a poradi na listku - uzka policka vlevo, at se zapisuje podle
   listku a ne podle poradi. */
.turnaj-tab input.t-draha{width:2.4em}
.turnaj-tab input.t-poz{width:2em}
.razeni{margin:18px 0 4px}
/* Filtr rund stoji hned pod razenim a patri k nemu - tesneji nez
   samostatny pruh, at se to cte jako dve otazky nad touz listinou. */
.rundy{margin:8px 0 4px}
/* PRUH RAZENI VYPADA JAKO OSTATNI PREPINACE, tedy jako pilulky.
   Do 3. 9. 2026 tu stalo `.razeni .den{background:none;border:none}`,
   a to byla ticha past: ma STEJNOU specificitu jako `.den[aria-current]`
   (dve tridy proti tride s atributem), ale stoji nize, takze mu prebilo
   pozadi - vybrana volba zustala jen bilym textem bez cerveneho podkladu.
   Na tmavem vzhledu byl bily text citelny, takze si toho nikdo nevsiml;
   jakmile se vychozim stal svetly, zmizela uplne. Nahlasil uzivatel:
   "vybrana volba neni videt, na bilem je bila."

   Navic hned pod tim stoji prepinac rund, ktery zadnou takovou vyjimku
   nema - dva pruhy vedle sebe by vypadaly ruzne bez duvodu. */
.razeni .den{cursor:pointer}

/* Dva kroky predvyplneni pod sebou - jmena a az potom handicapy. */
.predvyplnit-krok{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.predvyplnit-krok label{flex:1 1 26em}
.krok2-popis{flex:1 1 26em;margin:0;font-size:13px;color:var(--muted);align-self:center}
.nast-odkaz{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 8px}
.nast-odkaz input{flex:1 1 30em;font-family:var(--f-body);font-size:14px;
  color:var(--ink);background:var(--surface-2);border:1px solid var(--line-solid);
  border-radius:3px;padding:7px 9px}
.nast-odkaz input:focus{outline:none;border-color:var(--accent-ink)}
.nast-popis-odkaz{margin:0;font-size:13px}
/* Novy turnaj: jedno tlacitko, pak dve volby. VOLBA JE AKCE, takze
   radek vypada jako polozka nabidky, ne jako formular. */
.novy-panel{margin-top:14px;border-top:1px solid var(--line)}
.novy-volba{border-bottom:1px solid var(--line)}
.novy-volba:last-of-type{border-bottom:none}
.novy-akce{display:block;width:100%;text-align:left;cursor:pointer;
  font-family:var(--f-disp);font-weight:600;font-size:15px;color:var(--ink);
  background:none;border:none;border-left:2px solid transparent;
  padding:11px 12px 10px}
.novy-akce .dim{display:block;margin-top:2px;font-family:var(--f-body);
  font-weight:400;font-size:13px;text-transform:none;letter-spacing:0}
.novy-akce:hover,.novy-akce:focus{background:var(--surface-2);outline:none;
  border-left-color:var(--accent)}
.novy-detail{padding:0 12px 12px}
.novy-vic{font-family:var(--f-body);font-size:12.5px;color:var(--faint);
  background:none;border:none;padding:0;cursor:pointer}
.novy-vic:hover{color:var(--accent-ink)}
.novy-detail input{font-family:var(--f-body);font-size:14px;color:var(--ink);
  background:var(--surface-2);border:1px solid var(--line-solid);
  border-radius:3px;padding:7px 9px;margin-top:7px}
.novy-detail input[type=url]{width:100%;font-family:var(--f-mono);font-size:12.5px}
.novy-detail label{display:flex;flex-direction:column;gap:0;
  font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--faint)}
.novy-detail .dim{display:block;margin-top:5px;font-size:12.5px}
.novy-chybi{margin:11px 12px}

/* Rozdeleni listiny po drahach a parech. TR nema margin, takze mezera
   musi na bunky. */
/* MEZERY MEZI SKUPINAMI. Zapisovatel neprepisuje listinu, ale listky -
   jeden na drahu - a hleda v tom sloupci ocima. Puvodnich 14/20 px bylo
   na to malo; uzivatel 3. 9. 2026: "muzes udelat vetsi mezery mezi
   skupinami? klidne nejaky prazdny radek?"

   Radek tabulky je vysoky ~42 px, takze mezera mezi PARY je cely prazdny
   radek a mezi drahami uvnitr paru zhruba pulka. Ta hierarchie je
   podstatna: na par se hraje, takze par se ma oddelit vic nez draha.

   Je to padding, ne opravdovy <tr>: prazdne radky by se musely pri
   kazdem prerazeni zakladat a rusit, a razeni podle bodu je zase sunda. */
.turnaj-tab tr.prvni-drahy > td{padding-top:26px}
.turnaj-tab tr.prvni-paru > td{padding-top:44px;
  border-top:1px solid var(--line-solid)}

/* Jmeno z prihlasek, ktere v databazi neni. Radek zustava - turnaj se
   s tim clovekem odehral - jen je poznat a da se na nej kliknout. */
.turnaj-tab tr.nenalezen > td{background:var(--zlata-tlum)}
/* Uzavreni turnaje: stoji dole u smazani, ale je to jina vec - zamek
   rika "hotovo", smazani "nebylo". */
/* Uzavreni turnaje stoji v pruhu prepinacu, ale uplne vpravo - je to
   konec prace, ne dalsi volba pohledu. */
.zamek-vpravo{margin-left:auto}
.zamek-form{display:inline-block;margin-left:8px}

/* CIM SE RUNDA LISI OD ZBYTKU TURNAJE (db/104). Schovane pod jednim
   slovem: u bezneho turnaje se tu nevyplnuje nic a rozbalene by to jen
   zabiralo misto nad listinou. Otevrene je, kdyz uz neco vyplnene je. */
.runda-nastaveni{margin:.3rem 0 .6rem;font-size:.9em}
.runda-nastaveni > summary{cursor:pointer;color:var(--faint)}
.runda-nastaveni[open] > summary{color:var(--ink)}
.rn-telo{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;
  padding:.5rem .2rem 0;align-items:center}
.rn-telo label{display:inline-flex;align-items:center;gap:.4em}
.rn-telo .dim{font-size:.85em}

/* Misto na listku. Vyber, ne volne policko - drah je v herne pevny pocet. */
.t-misto{font-family:var(--f-mono);font-size:13px;color:var(--ink);
  background:var(--paper);border:1px solid var(--line);border-radius:3px;
  padding:3px 2px;text-align:center}
.t-misto:focus{outline:none;border-color:var(--accent-ink)}
/* Dva listky na jednom miste - nepta se, nepusti dal. */
/* Kolize: dva listky na jednom miste, nebo tyz hrac dvakrat v runde.
   Obojí je tvrde pravidlo, tak vypada stejne. */
.t-misto.kolize,.t-hrac.kolize,.nas-vstup.kolize{
  border-color:var(--accent);color:var(--accent-ink)}
.kolize-hlaska{margin:0 0 14px}
.t-nenalezen{display:block;font-family:var(--f-mono);font-size:11px;
  letter-spacing:.04em;color:var(--zlata);cursor:pointer;
  border-bottom:1px dotted var(--zlata-hrana);margin-bottom:4px}
.t-nenalezen:hover{color:var(--ink)}
.nh-nalezeni{display:flex;flex-direction:column;gap:4px;margin:10px 0}
.nh-nalezeny{text-align:left;font-family:var(--f-body);font-size:14.5px;
  color:var(--muted);background:var(--surface-2);border:1px solid var(--line);
  border-radius:3px;padding:7px 10px;cursor:pointer}
.nh-nalezeny:hover{border-color:var(--accent-ink);color:var(--ink)}


/* Seznam turnaju: nazev ani datum nemaji kricet, je to seznam. */
.zap-seznam td.t-nazev{font-weight:400}
.zap-seznam .t-datum{font-size:12px;margin-left:8px}

/* Nastaveni rocniku - kod, hodnota, vysvetleni. */
.nastaveni{margin-top:20px}
.nastaveni-tab .nast-kod{font-size:12.5px;letter-spacing:.06em;color:var(--muted)}
.nastaveni-tab .nast-popis{white-space:normal;font-size:13.5px;max-width:40em}
.nastaveni-tab input{width:4.5em;text-align:right;font-family:var(--f-mono);
  font-size:15px;color:var(--ink);background:var(--surface-2);
  border:1px solid var(--line-solid);border-radius:3px;padding:5px 7px}
.nastaveni-tab input:focus{outline:none;border-color:var(--accent-ink)}
.nastaveni-ulozit{display:flex;align-items:center;gap:14px;margin-top:14px}


/* =================================================================
   LOSOVACI BUBEN

   Kuzelky v bubnu jsou OZDOBA, ne data - je jich pevne osm a necislovane.
   Cislo na kuzelce v roztocenem bubnu se stejne precist neda; vysledek
   patri doprostred a velky. Presne o tohle slo v puvodnim napadu, ktery
   se v prototypu nepodarilo dodelat.
   ================================================================= */
.los{background:var(--surface);color:var(--ink);border:1px solid var(--line-solid);
  border-radius:6px;box-shadow:var(--shadow);padding:0;width:min(760px,94vw);
  max-height:92vh;overflow:auto}
.los::backdrop{background:var(--zaves)}
.los-hlava{display:flex;align-items:center;gap:12px;padding:14px 16px 13px 18px;
  border-bottom:1px solid var(--line);background:var(--surface-2)}
.los-hlava h3{margin:0;font-family:var(--f-disp);font-weight:600;font-size:19px}
.los-zbyva{font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--faint);border:1px solid var(--line-solid);border-radius:99px;
  padding:3px 9px}
.los-zavrit{margin-left:auto;background:none;border:1px solid var(--line-solid);
  border-radius:4px;color:var(--muted);font-size:17px;line-height:1;
  padding:3px 9px 5px;cursor:pointer}
.los-zavrit:hover{color:var(--ink);border-color:var(--accent-ink)}

.los-telo{display:grid;grid-template-columns:auto 1fr;gap:22px;padding:20px 18px}
@media (max-width:640px){.los-telo{grid-template-columns:1fr}}

/* ---- buben ---- */
.los-buben{position:relative;width:230px;height:230px;border-radius:50%;
  background:var(--paper);border:2px solid var(--line-solid);
  box-shadow:inset 0 0 40px -12px var(--stin-barva);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
  justify-self:center}
.los-koleso{position:absolute;inset:0}
.los-buben.tocise .los-koleso{animation:los-kolo .55s linear infinite}
@keyframes los-kolo{to{transform:rotate(360deg)}}

/* Kuzelka stoji na kruhu: posune se do stredu, otoci na svuj uhel
   a odsune ven. Zpetne otoceni ji nechá stat rovne, jinak by se pri
   toceni prevracela hlavou dolu. */
.los-kuzelka{position:absolute;left:50%;top:50%;width:19px;height:47px;
  margin:-23px 0 0 -9.5px;overflow:visible;
  transform:rotate(var(--uhel)) translateY(-70px) rotate(calc(-1 * var(--uhel)))}
.los-buben.tocise .los-kuzelka{animation:los-kutalej .55s linear infinite}
@keyframes los-kutalej{to{transform:rotate(var(--uhel)) translateY(-70px)
  rotate(calc(-1 * var(--uhel) - 360deg))}}
/* Obrys je SVG, ne obdelnik se zaoblenim - ten vypadal jako lahvicka.
   Barvy pres promenne, at kuzelka drzi ve vsech ctyrech vzhledech. */
.los-telo-kuzelky{fill:var(--muted)}
.los-pruh{fill:var(--accent);opacity:.9}

/* Buben ke konci dobiha - zpomali se, misto aby se zastavil uprostred
   behu. Delka je v JS (DELKA_TOCENI), tady jen zpomaleni. */
.los-buben.dobiha .los-koleso,
.los-buben.dobiha .los-kuzelka{animation-duration:1.7s}

/* Sklo bubnu - jemny prechod, at to nevypada jako placka. */
.los-sklo{position:absolute;inset:0;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 32% 26%,
    var(--lesk), transparent 46%)}
.los-vysledek{position:relative;font-family:var(--f-disp);font-weight:700;
  font-size:66px;line-height:1;color:var(--ink);
  text-shadow:0 4px 18px var(--stin-barva)}
.los-vysledek.padlo{animation:los-padlo .5s cubic-bezier(.2,1.5,.4,1)}
@keyframes los-padlo{
  0%{transform:scale(.4);opacity:.2;color:var(--accent-ink)}
  60%{transform:scale(1.18);color:var(--accent-ink)}
  100%{transform:scale(1)}}

/* ---- vedle bubnu ---- */
.los-vedle{display:flex;flex-direction:column;gap:9px;min-width:0}
.los-kdo{margin:0;font-size:15px;color:var(--muted)}
.los-kdo b{color:var(--ink);font-family:var(--f-disp);font-size:19px}
.los-tocit{align-self:flex-start;font-size:16px;padding:8px 20px 9px}
.los-tocit[disabled]{opacity:.45;cursor:not-allowed}
.los-napoveda{margin:0;font-size:12.5px}
.los-popisek{margin:8px 0 0;font-family:var(--f-mono);font-size:10.5px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.los-seznam{display:flex;flex-wrap:wrap;gap:5px}
.los-jmeno{font:inherit;font-size:13.5px;color:var(--muted);
  background:var(--surface-2);border:1px solid var(--line);border-radius:99px;
  padding:3px 11px 4px;cursor:pointer}
.los-jmeno:hover{color:var(--ink);border-color:var(--line-solid)}
.los-jmeno.naRade{color:var(--ink);border-color:var(--accent);
  background:var(--surface)}
.los-chipy{display:flex;flex-wrap:wrap;gap:4px}
.los-chip{font-size:11.5px;color:var(--faint);border:1px solid var(--line);
  border-radius:3px;padding:1px 6px 2px}
.los-chip.padlo{color:var(--zlata);border-color:var(--zlata-hrana)}

/* Krok zpet. Tise - je to oprava, ne hlavni akce; ale musi byt videt,
   protoze omylem vylosovat spatnemu hraci je jedina chyba, ktera se tu
   da udelat. */
.los-zpet-radek{display:flex;align-items:center;gap:10px;margin:0 0 8px;
  font-size:12.5px}
.los-zpet{font-family:var(--f-body);font-size:13px;color:var(--muted);
  background:none;border:1px solid var(--line-solid);border-radius:99px;
  padding:3px 12px 4px;cursor:pointer;white-space:nowrap}
.los-zpet:hover:not([disabled]){color:var(--ink);border-color:var(--accent-ink)}
.los-zpet[disabled]{opacity:.35;cursor:not-allowed}
.los-tvar{margin:0;font-size:12.5px}

.los-paticka{padding:0 18px 16px;border-top:1px solid var(--line);
  padding-top:12px}
.los-historie{max-height:22vh;overflow-y:auto}
.los-radek{margin:0;padding:5px 0;font-size:14px;color:var(--muted);
  border-top:1px solid var(--line)}

/* Kdo nechce animace, ma to rict systemu - a my to mame poslouchat. */
@media (prefers-reduced-motion: reduce){
  .los-buben.tocise .los-koleso,
  .los-buben.tocise .los-kuzelka,
  .los-vysledek.padlo{animation:none}
}

/* Generovani vysledku. Zamerne jinou barvou nez zbytek: je to nastroj
   na zkouseni, ne soucast zapisu, a ma byt na prvni pohled poznat, ze
   tahle stranka neni v obvyklem stavu. */
.runda-ladeni{display:inline-flex;align-items:center;gap:6px;margin-left:10px;
  vertical-align:2px;padding:2px 4px 2px 8px;border:1px dashed var(--zlata-hrana);
  border-radius:99px}
.runda-ladeni select{font-family:var(--f-body);font-size:12px;color:var(--zlata);
  background:var(--surface-2);border:1px solid var(--line);border-radius:3px;
  padding:1px 3px}
/* Generator vysledku je za vypinacem ladeni, proto zlaty - ale tvar
   ma spolecny, at neni ve formulari sesty druh tlacitka. */
.runda-generuj,.runda-smaz,.runda-drahy{font-size:13.5px;padding:3px 12px 4px;
  background:none;border-color:var(--zlata-hrana)}
.runda-drahy{color:var(--zlata)}
.runda-generuj{color:var(--zlata)}
.runda-smaz{color:var(--faint)}
.runda-smaz:hover{color:var(--accent-ink)}
.runda-smaz.pta-se{color:var(--accent);font-weight:600}
.uziv-ladeni{margin-top:6px}

/* U nadpisu rundy: tyz tvar, jen mensi - je to TATAZ akce v jinem
   miste. Losovani je obsluha, ne obsah, tak je bez vyplne. */
.runda-ulozit,.runda-losovat,.runda-stesti{font-size:13.5px;
  padding:3px 12px 4px;margin-left:10px;vertical-align:2px}
.runda-losovat,.runda-stesti{background:none;color:var(--faint)}

/* KOLO STESTI SVETLI, AZ KDYZ SE DA LOSOVAT.

   Vetsinu casu se losovat neda - runda se prave hraje - takze tlacitko
   stoji tise stranou jako ostatni obsluha. Ve chvili, kdy jsou zapsane
   vsechny hry, ZCERVENA a rekne tim, ze je na rade. Navrhl uzivatel
   4. 9. 2026.

   Neni to zamek: zmacknout ho jde porad a server odpovi vetou, co
   chybi. Barva je pozvanka, ne povoleni - zasedle tlacitko bez duvodu
   je horsi nez odmitnuti, ktere se da precist. */
.runda-stesti[data-hotovo]{color:var(--accent-ink);
  border-color:var(--accent-ink)}
.runda-stesti[data-hotovo]:hover{color:var(--na-akcentu);
  background:var(--accent)}


/* ============================================================ HLAVNI STRANA
   Aktualni zpravy, ne rozcestnik. Dlazdice soutezi sly 3. 9. 2026 pryc -
   cestu do souteze nese pas nahore, takze rikaly totez podruhe.
   ========================================================================= */
.hl-popisek{margin:26px 0 10px;font-family:var(--f-mono);font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}

/* ---- zive ---- */
.hl-zive{border-left:3px solid var(--accent);margin-bottom:18px}
.hl-tecka{display:inline-block;width:8px;height:8px;border-radius:50%;
  background:var(--accent);margin-right:8px;vertical-align:1px;
  animation:hl-tep 1.8s ease-in-out infinite}
@keyframes hl-tep{0%,100%{opacity:1}50%{opacity:.25}}
@media (prefers-reduced-motion: reduce){.hl-tecka{animation:none}}
.hl-zive-pozn{margin:2px 0 12px;font-size:13px}
.hl-zive .por{padding-right:10px}

/* ---- priste ---- */
.hl-priste-blok{padding-top:14px}
/* ---- KDO S KYM: soupis zapasu dneska a zitrka ----
   Rozpis vi dopredu, kdo hraje; jakmile se zacne zapisovat, pribude
   ke dvojici skore. Radek je proto porad stejny, meni se jen to, co
   stoji uprostred - dvojtecka, nebo vysledek. */
/* ---- pulmaraton: nahozy po hrach ----
   Tri radky na hrace (tri bloky po osmi hrach), jmeno a celkove soucty
   pres vsechny tri. Ctyryadvacet sloupcu v jedne rade se na obrazovku
   nevejde a posuvnik je spatna odpoved. */
.maraton-hry td.jm{vertical-align:top;padding-top:8px}
.maraton-hry .blok-od{font-family:var(--f-mono);font-size:12px;
  white-space:nowrap;width:1%;padding-right:8px}
/* HRY ZHUSTENE. Osm sloupcu vedle sebe nepotrebuje sirku ligove
   tabulky - jsou to trimistna cisla a nic vic. Uzivatel 7. 9. 2026:
   "ty hry dej vice zhustene."
   Soucet bloku tu SCHVALNE neni: pres osm her nic nerika (uzivatel:
   "to neni vypovidajici"), a jen zabiral misto. */
.maraton-hry td.hra,.maraton-hry th.hra{padding-left:3px;padding-right:3px;
  width:2.7em;min-width:2.7em;text-align:center}
.maraton-hry td.hra{font-variant-numeric:tabular-nums}
/* Hranice mezi celky. Radky uvnitr jednoho celku zadnou caru nemaji,
   jinak by se tri bloky cetly jako tri ruzni lide.

   `:first-of-type` JE TU PODSTATNE. Stalo tu `tr.prvni-blok:first-child`,
   jenze kazdy celek ma vlastni `<tbody>`, takze jeho prvni blok JE prvni
   dite - a pravidlo tak rusilo caru u vsech. Predel mezi hraci tedy
   nebyl videt vubec (uzivatel 11. 9. 2026: "to oddeleni tech hracu je
   tam takove pitome, spise by melo byt hlavne mezi hraci a tam chybi").
   Bez cary zustat ma jen uplne prvni radek tabulky, hned pod zahlavim. */
.maraton-hry tbody tr td{border-top:none}
.maraton-hry tbody tr.prvni-blok td{border-top:1px solid var(--line)}
.maraton-hry tbody:first-of-type tr.prvni-blok:first-child td{border-top:none}

/* ---- pulmaraton: nahozy PO DRUZSTVECH, s hraci pod nimi ----
   Dve patra v jedne tabulce, takze predel musi mit dve vahy: mezi
   druzstvy vyrazny, mezi hraci uvnitr druzstva jemny. Jinak je to jeden
   dlouhy sloupec, ve kterem neni poznat, kde jeden tym konci. */
.mh-tymy tbody tr.mh-r-tym td{font-weight:600}
.mh-tymy tbody tr.mh-r-tym.prvni-blok td{border-top:2px solid var(--line-solid);
  padding-top:13px}
.mh-tymy tbody:first-of-type tr.mh-r-tym.prvni-blok:first-child td{
  border-top:none;padding-top:8px}
/* Hrac je pod druzstvem, ne vedle nej - odsazeni to rekne drive nez
   cokoli jineho. */
.mh-tymy tbody tr.mh-r-hrac td.jm{padding-left:22px;font-weight:400}
.mh-tymy .mh-por{font-family:var(--f-mono);color:var(--faint);
  font-weight:400;margin-right:4px}

/* Nadpis jednoho vecera uvnitr hraciho dne ("pondělí 21. září").
   Hraci den ligy je dvouvecerovy a cas 16:45 se opakuje v obou, takze
   bez nej by osm zapasu splynulo do jedne rady. Je to POPISEK, ne
   nadpis: drobny a ztlumeny, at nepretahne nazev souteze nad nim. */
.hl-den{margin:14px 0 4px;font-family:var(--f-mono);font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.hl-souboje{list-style:none;margin:0;padding:0}
.hl-souboje li{display:grid;grid-template-columns:auto 1fr auto 1fr;
  align-items:baseline;gap:10px;padding:9px 0;
  border-top:1px solid var(--line);font-size:15px}
.hl-souboje li:first-child{border-top:none}
.hl-cas{font-family:var(--f-mono);font-size:13px;color:var(--faint)}
.hl-tym{font-family:var(--f-disp);font-weight:700;font-size:16px;
  color:var(--ink)}
/* Druhy tym zarovnany na svou stranu, at je dvojtecka uprostred. */
.hl-souboje li .hl-tym:last-child{text-align:left}
.hl-vs{color:var(--faint)}
.hl-vysledek{font-family:var(--f-disp);font-weight:700;font-size:16px;
  color:var(--ink);white-space:nowrap}
.hl-vysledek b{font-weight:700}
/* Dohrany zapas je klidnejsi nez ten, ktery teprve prijde - cislo uz
   nese informaci samo a nemusi k tomu jeste svitit cely radek. */
.hl-hotovo .hl-cas{opacity:.7}

.hl-terminy{list-style:none;margin:0;padding:0}
.hl-terminy li{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  padding:9px 0;border-top:1px solid var(--line);font-size:15px}
.hl-terminy li:first-child{border-top:none}
/* Nazev souteze je v obou pasmech STEJNYM pismem - "hraje se priste"
   a "co se hralo" mluvi o temze a nemaji vypadat jako dva ruzne weby.
   Nahlasil uzivatel 3. 9. 2026. Rozdil dela velikost, ne rodina. */
.hl-terminy a,.hl-cizi-nazev{font-family:var(--f-disp);font-weight:700;
  font-size:17px;color:var(--ink);text-decoration:none;
  border-bottom:1px dotted var(--line-solid)}
.hl-cizi-nazev{border-bottom:none}
.hl-terminy a:hover{color:var(--accent-ink);border-color:var(--accent-ink)}
.hl-kdy-velky{font-family:var(--f-disp);font-weight:700;font-size:17px;
  color:var(--muted);min-width:8.5em}
/* Nejblizsi termin je HLAVNI informace stranky - proto vetsi a barevny. */
.hl-nejblizsi .hl-kdy-velky{font-size:23px;color:var(--accent-ink)}
.hl-nejblizsi a{font-size:21px}

/* ---- turnaj v proudu ---- */
.hl-turnaj .hl-kdy b{font-family:var(--f-disp);font-size:17px}
/* STUPNE VITEZU v proudu. Tri radky misto jedne vety - u turnaje
   s padesati lidmi je "vyhrál X" skoro nic (uzivatel 10. 9. 2026).
   Soucet je vpravo a tabulkovymi cislicemi, aby sla porovnat pod sebou.
   Prvni misto vazi vic vahou, ne barvou: zlata je na webu vyhrazena
   nahozum 250+ a rozehranemu veceru. */
.hl-stupne{list-style:none;margin:.4rem 0 0;padding:0}
.hl-stupne li{display:grid;grid-template-columns:1.6em 1fr auto;
  gap:.5em;align-items:baseline;padding:.12rem 0;
  border-bottom:1px solid var(--line)}
.hl-stupne li:last-child{border-bottom:0}
.hl-stupne li:first-child{font-weight:600}
.hs-misto{font-family:var(--f-mono);font-size:.86em;color:var(--faint);
  text-align:right}
.hs-soucet{font-family:var(--f-mono);font-variant-numeric:tabular-nums;
  font-size:.92em}

.hl-vitez{margin:6px 0 0;font-size:15px;color:var(--ink)}
.hl-vitez i{font-style:normal;color:var(--faint);font-size:12.5px;
  text-transform:uppercase;letter-spacing:.08em;margin-right:8px}

/* ---- DNES SE HRAJE ----
   Uplne nahore a nema jit prehlednout. Uzivatel to chtel "jako kravu";
   je to jediné misto na webu, kde smi byt cely blok cerveny. */
.hl-dnes{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;
  margin:0 0 20px;padding:16px 20px 17px;border-radius:6px;
  background:var(--accent);color:var(--na-akcentu);text-decoration:none}
.hl-dnes:hover{background:var(--accent-ink)}
.hl-dnes b{font-family:var(--f-disp);font-weight:700;font-size:27px;
  line-height:1.1}
.hl-dnes-stitek{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;opacity:.85}
/* Cas zacatku hned za nazvem - tise, nazev zustava hlavni. */
.hl-dnes-cas{font-size:15px;opacity:.9;white-space:nowrap;margin-left:-6px}
.hl-dnes-vic{margin-left:auto;font-size:13.5px;opacity:.9;white-space:nowrap}

/* Cizi akce: ztlumene a bez odkazu. */
.hl-cizi .hl-kdy-velky{font-size:15px;color:var(--faint)}
.hl-cizi-nazev{color:var(--faint)}

/* CIZI AKCE DNESKA: tentyz cerveny pruh, jen NENI ODKAZ. V herne se
   hraje i ABL, SBL nebo Jelinek 1+1 - a hraje se, takze se to rekne
   stejne jako o nasi soutezi (uzivatel 19. 9. 2026). Listinu z ni
   nemame, tak radek nikam nevede; odtud i to, ze se pod kurzorem nic
   nedeje - jinak by slibil, ze se da kliknout. */
.hl-dnes-cizi{cursor:default}
.hl-dnes-cizi:hover{background:var(--accent)}

/* Rozpis zisku v celkovem poradi. Cislo vedle rika KOLIK, tohle ODKUD -
   a hlavne je z toho videt, ze se nescitaji vsechny turnaje. */
.zisky{white-space:nowrap;padding-left:18px}
.zisk{display:inline-block;font-variant-numeric:tabular-nums;font-size:13px;
  color:var(--muted);min-width:2.1em;text-align:right;margin-left:5px}
.zisk.nepocita{color:var(--faint);text-decoration:line-through;
  text-decoration-style:double;text-decoration-thickness:1px}

/* PORADI PO MESICICH. Sloupec na turnaj, misto jednoho seznamu cisel -
   z nej slo poznat, KOLIK se nescita, ale ne KTERY turnaj to byl
   (uzivatel 5. 9. 2026).

   Nepocitany zisk ma DVOJITE preskrtnuti, stejne jako skrtnuta hra
   u seniora - tak si to uzivatel vyzadal. Cislo zustava citelne, jen
   ztlumene: odehral ho, jen se nescita.

   Sloupce mesicu jsou uzke a zarovnane doprava; jmeno se nesmi zalamovat,
   jinak by se radek roztahl na dva. */
/* VSECHNY SLOUPCE MESICU STEJNE SIROKE (uzivatel 5. 9. 2026). Pevna
   sirka, ne `width:1%` - to necha kazdy sloupec siroky podle obsahu
   a "Červenec II." roztahne jen ten svuj. Nazev je proto v zahlavi
   zkraceny na "Čvc II."; plny je pod kurzorem. */
.poradi-mesice td.mesic,.poradi-mesice th.mesic{width:3.6em;min-width:3.6em;
  padding-left:4px;padding-right:4px;white-space:nowrap;text-align:center}
.poradi-mesice td.mesic{color:var(--muted);font-variant-numeric:tabular-nums}
.poradi-mesice td.mesic.nepocita{color:var(--faint);
  text-decoration:line-through;text-decoration-style:double;
  text-decoration-thickness:1px}
.poradi-mesice td.jm{white-space:nowrap}
/* SKRTNUTA HRA. Senior Cup scita pet nejlepsich ze sesti - ta sesta se
   skrta a ma to byt videt, jinak si soucet nikdo neoveri.

   Dvojita cara znamena v celem webu totez: TOHLE SE NEPOCITA. Krome
   skrtnute hry ji ma i zisk z turnaje, ktery se nevesel mezi pocitane
   (poradi po mesicich). Cislo zustava citelne, jen ztlumene: odehralo
   se to a lide si to hledaji. */
td.hra.skrtnuta{color:var(--faint);text-decoration:line-through;
  text-decoration-style:double;text-decoration-thickness:1px}
/* TOTEZ V ZAPISU, jenze tam je v bunce POLICKO - a do formularoveho
   prvku se `text-decoration` z rodice nededi, takze by se preskrtnuti
   nevykreslilo. Musi sedet na samotnem `input`.

   Kresli se i v rezimu Zapis, ne jen ve Vysledcich: je to fakt o tom
   radku, ne pohled na nej, a prave v zapisu je potreba videt, ze soucet
   neni soucet vseho. Dvojita cara znamena na celem webu totez -
   "tohle se nepocita". */
.turnaj-tab td.hra.skrtnuta input{color:var(--faint);
  text-decoration:line-through;text-decoration-style:double;
  text-decoration-thickness:1px}

/* Nazev souteze v proudu - stejne jako u turnaju, at maji obe polozky
   stejnou hlavu. Proud michá souteze dohromady, takze bez nej "2. hraci
   den" nerika, ceho. */
/* Nazev souteze v proudu. `.hl-kdy` ma verzalky, protoze je to popisek
   ("2. HRACI DEN"), jenze NAZEV popisek neni - a verzalky vedle "Hraje
   se priste", kde stoji normalne, vypadaji jako druhe pismo. Presne tak
   to uzivatel taky popsal. Rodina, tucnost i velikost jsou stejne, tak
   at je stejne i zacházeni. */
/* KAPITALKY (uzivatel 22. 9. 2026) - tyz jazyk, jakym web sazi
   prijmeni hrace a nazvy druzstev.

   MUSI BYT VETSI NEZ PREDTIM. Kapitalka je vysoka jako male pismeno,
   takze tyz stupen vypada o petinu mensi - a nazev turnaje tim spadl
   POD jmena soutezicich, ktera stoji hned pod nim (uzivatel
   22. 9. 2026: „název turnaje je proč menší, jak ti soutěžící?").
   Je to nadpis te karty, takze ma byt nejvetsi z ni. */
.hl-udalost .hl-kdy>b{font-family:var(--f-disp);font-weight:700;font-size:21px;
  font-variant-caps:small-caps;letter-spacing:.03em;
  text-transform:none;margin-right:8px}

/* Prihlaseni v pasu. Zamerne tise - je to sluzebni vchod, ne nabidka
   obsahu. Vetsina navstevniku se neprihlasuje a nema duvod si toho
   vsimat; kdo se prihlasit potrebuje, ten to hleda. */
.pas-prihlasit{font-size:12px;color:var(--faint);letter-spacing:.02em}
/* VZKAZ PRO NAS a POCITADLO NAVSTEV - tise, u uctu. Je to sluzebni
   vchod a doplnek, ne nabidka obsahu: mensi pismo a ztlumena barva,
   stejne jako prihlaseni vedle. */
.pas-vzkaz{font-size:12px;color:var(--faint);letter-spacing:.02em}
.pas-vzkaz:hover,.pas-pocitadlo:hover{color:var(--ink)}
/* Odkaz "Aplikace" v uctu. Tichy jako Vzkaz vedle nej - je to sluzebni
   vchod, ne nabidka obsahu, a titulni radek se nesmi zalomit. */
.pas-aplikace{font-size:12px;color:var(--faint);letter-spacing:.02em}
.pas-aplikace:hover{color:var(--ink)}
.pas-pocitadlo{font-family:var(--f-mono);font-size:11px;color:var(--faint);
  border:1px solid var(--line);border-radius:3px;padding:1px 5px}

/* ---- vzkaz pro nas ------------------------------------------------
   Formular pro divaka. Sirka je omezena na delku radku, ktera se jeste
   cte - siroke pole svadi psat jednu dlouhou vetu pres celou obrazovku. */
/* ODZNAK "NECO CEKA" v pasu. Cervena je na webu vyhrazena tomu, co se
   deje TED (dnes se hraje) - a nevyrizeny vzkaz je presne to: neco, co
   ceka na cloveka. Kdyz nic neceka, odznak se nevykresli vubec. */
.pas-vzkazu{font-size:11.5px;letter-spacing:.02em;font-weight:600;
  color:var(--na-akcentu);background:var(--accent);border-radius:9px;
  padding:1px 7px}
.pas-vzkazu:hover{color:var(--na-akcentu);opacity:.85}

/* Stitek s tematem v seznamu vzkazu. Neni to odkaz ani stav, jen
   zarazeni - proto tise, bez barvy. */
.vzk-stitek{display:inline-block;font-size:12px;color:var(--muted);
  background:var(--surface-2);border:1px solid var(--line);
  border-radius:3px;padding:1px 7px;white-space:nowrap}
.vzk-tema select{font:inherit;font-size:15px;color:var(--ink);
  background:var(--surface-2);border:1px solid var(--line-solid);
  border-radius:3px;padding:8px 10px;width:100%}
/* OBRAZOVKA "VZKAZ ODESEL". Nic jineho na ni neni - proto stred
   a vzduch kolem; je to konec cesty, ne dalsi krok. */
.vzk-hotovo-karta{max-width:var(--vzk-sirka);margin:6vh auto 0;
  padding:34px 30px 30px;text-align:center}
.vzk-hotovo-karta h2{margin:0 0 6px}
.vzk-hotovo-znak{margin:0 0 10px;font-size:40px;line-height:1;
  color:var(--zelena-ink)}
.vzk-hotovo-text{margin:0 0 18px;color:var(--muted);font-size:16px}
.vzk-hotovo-pozn{margin:0 0 20px;color:var(--faint);font-size:13.5px}
.vzk-hotovo-odkazy{display:flex;gap:14px;justify-content:center;
  align-items:center;flex-wrap:wrap;margin:0}
.vzk-jeste{font-size:13.5px;color:var(--faint)}
.vzk-jeste:hover{color:var(--ink)}
.vzk-karta,.vzk-uvod{max-width:var(--vzk-sirka)}
.vzk-karta{padding:24px 26px 26px}
.vzk-form{display:flex;flex-direction:column;gap:16px}
.vzk-pole{display:flex;flex-direction:column;gap:5px}
.vzk-popis{font-size:13px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--muted)}
.vzk-popis i{font-style:normal;text-transform:none;letter-spacing:0;
  color:var(--faint)}
.vzk-form textarea,.vzk-form input[type=text]{font:inherit;font-size:16px;
  color:var(--ink);background:var(--surface-2);border:1px solid var(--line-solid);
  border-radius:3px;padding:9px 11px;width:100%}
.vzk-form textarea{resize:vertical;line-height:1.5}
.vzk-dvojice{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.vzk-dvojice{grid-template-columns:1fr}}
.vzk-pozn{margin:0;font-size:13.5px;color:var(--faint);line-height:1.5}
.vzk-otazka input{max-width:7em}
/* OVERENI MA BYT VIDET. Probehne samo a trva vterinu, takze si ho
   nikdo nevsimne - a overeni, o kterem clovek nevi, vypada jako zadne
   (uzivatel 18. 9. 2026: "ted tam zadne overeni nevidim. To je
   spravne?"). Stoji proto vlevo od tlacitka, ma svuj znak a hotovy stav
   na obrazovce ZUSTANE. */
.vzk-konec{display:flex;justify-content:space-between;align-items:center;
  gap:14px;flex-wrap:wrap}
/* ZASKRTAVATKO, ne popisek. Kontrola je tataz - prohlizec pocita
   vyzvu - jen se to rika tvarem, ktery zna kazdy. Je ZAMCENE: zaskrtne
   se samo, az je hotovo, a odskrtnout nejde. */
.vzk-overeni{margin:0;font-size:14px;color:var(--muted);
  display:flex;align-items:center;gap:9px;
  background:var(--surface-2);border:1px solid var(--line-solid);
  border-radius:4px;padding:11px 14px}
.vzk-overeni input{width:18px;height:18px;flex:0 0 auto;accent-color:var(--zelena)}
.vzk-overeni-text{display:flex;align-items:center;gap:8px}
.vzk-overeni-stav{font-size:12.5px;color:var(--faint)}
/* Znak pred textem: tocici se kolecko, kdyz se pocita, a fajfka, kdyz
   je hotovo. Barva az u hotoveho - behem vypoctu nema co zdurazňovat. */
.vzk-overeni .vzk-znak{width:13px;height:13px;flex:0 0 auto;
  border:2px solid var(--line-solid);border-radius:50%;
  border-top-color:var(--muted);animation:vzk-toc 900ms linear infinite}
.vzk-overeni.hotovo{color:var(--zelena-ink);border-color:var(--zelena)}
.vzk-overeni.hotovo .vzk-znak{border:0;border-radius:0;animation:none;
  width:auto;height:auto;font-weight:700}
.vzk-overeni.hotovo .vzk-znak::before{content:"✓"}
@keyframes vzk-toc{to{transform:rotate(360deg)}}
/* Bez JavaScriptu se nic netoci - kolecko by slibovalo, ze se neco
   deje, a pritom by se nedelo nic. */
.vzk-overeni:not(.pocita):not(.hotovo) .vzk-znak{display:none}
@media(prefers-reduced-motion:reduce){.vzk-overeni .vzk-znak{animation:none}}
/* MEDOVA PAST. Nesmi to byt `hidden` ani `display:none` - cast robotu
   takova policka preskakuje. Odsune se z obrazu. */
.vzk-past{position:absolute;left:-9999px;width:1px;height:1px;
  overflow:hidden}

/* Seznam vzkazu ve sprave. Text je jedina vec, ktera se tu ma CIST,
   takze smi zalomit - ostatni bunky tabulky drzi na jednom radku. */
.vzk-text{white-space:normal;max-width:52ch;line-height:1.5}
.vzk-kontakt,.vzk-stranka{margin-left:6px;font-size:12px}
.vzk-stranka{display:block;max-width:26ch;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
tr.vzk-hotovo td{opacity:.55}
/* Dve akce vedle sebe: Hotovo a Smazat. Mazani je NEVRATNE, takze se
   pta na druhe kliknuti a az tehdy zcervena - dokud se jen nabizi,
   nema kricet. */
.vzk-akce{display:inline-block;margin-right:6px}
.vzk-smazat{color:var(--faint)}
.vzk-smazat:hover{color:var(--accent-ink);border-color:var(--accent)}
.tlacitko.vzk-jiste{color:var(--na-akcentu);background:var(--accent);
  border-color:var(--accent)}
.pas-prihlasit:hover{color:var(--ink)}

/* ------------------------------------------- NA PLOCHU TELEFONU

   Stranka /aplikace - navod, jak si web dat na plochu. Drzi TOUZ
   sirku jako vzkaz (`--vzk-sirka`), protoze je to tyz druh stranky:
   nekolik odstavcu textu, ne tabulka. Sirka je v pixelech a na jednom
   miste schvalne - `ch` se pocita z pisma toho prvku, takze "84 znaku"
   je u nadpisu a u poznamky pokazde jinak siroke. */
.apl-uvod,.apl-pozn,.apl-navod,.apl-hotovo{max-width:var(--vzk-sirka)}
.apl-navod{margin:14px 0}
.apl-nadpis{margin:0 0 9px;font-family:var(--f-disp);font-weight:600;
  font-size:17px;letter-spacing:.02em}
.apl-pred{margin:0 0 10px;color:var(--faint)}
/* Cislovany navod. Radky jsou vzdusnejsi nez bezny text - cte se to
   s telefonem v druhe ruce, takze se oko musi na dalsi krok trefit. */
.apl-kroky{margin:0;padding-left:1.45em;line-height:1.8}
.apl-kroky li{margin:0 0 3px}
.apl-tlacitko{margin:0 0 14px}
.apl-pozn{margin-top:18px}

/* Nadpis hlavni strany. Zamerne drobny - hlavni informace je cervene
   "Dnes se hraje" pod nim, ne tenhle popisek. Vetsi by soutezil
   s titulem nad menu a rikal by pritom min. */
.hl-nadpis{font-family:var(--f-disp);font-weight:600;text-transform:uppercase;
  letter-spacing:.06em;font-size:15px;color:var(--faint);
  margin:0 0 18px;line-height:1.2}

/* Hlaseni o posunutem dnesku. Carkovany zlaty ram jako u generovani
   vysledku - obojí je nastroj na zkouseni a ma byt na prvni pohled
   poznat, ze stranka neni v obvyklem stavu. */
.hl-posun{margin:0 0 16px;padding:8px 12px;font-size:13.5px;
  color:var(--zlata);border:1px dashed var(--zlata-hrana);border-radius:4px}

/* PRAZDNY SLOUPEC SI DRZI SIRKU.

   V uz odehranem turnaji drzi sloupce cisla v ostatnich radcich - proto
   vypada dobre i radek, kde hrac odehral jen tri hry z sesti. Jenze
   v ROZEHRANEM turnaji je cely sloupec prazdny u vsech, takze se sesype
   na nulu a tabulka se rozjede. Uzivatel to popsal takhle: "at to
   vypada jako 3. HD".

   Minimalni sirka je na trojmistne cislo - vic tam nikdy nebude, strop
   je 300. */
.zapis-serie td.hra,.zapis-serie th.hra,
.hd-tab td.hra,.hd-tab th.hra{min-width:2.7em}

/* "Dnes se hraje" samo o sobe - kdyz uz je co ukazovat, nazev souteze
   i datum nese hlavicka bloku pod tim. */
.hl-dnes-sam{display:block;margin:0 0 12px;padding:10px 18px 11px;
  font-family:var(--f-mono);font-size:12px;letter-spacing:.16em;
  text-transform:uppercase}

/* Rozbaleni prubezneho poradi. Vypada jako odkaz vedle nej, protoze to
   je tataz nabidka "chci videt vic". */
.hl-rozbal{font-family:var(--f-body);font-size:14px;color:var(--accent-ink);
  background:none;border:none;padding:0;margin-right:18px;cursor:pointer;
  border-bottom:1px dotted var(--accent-ink)}
.hl-rozbal:hover{color:var(--ink);border-color:var(--ink)}

/* RUCNE PREPSANY HANDICAP JE VIDET. Handicap se pocita; kdyz ho nekdo
   prepise, je to vyjimka a ma to byt poznat na prvni pohled - jinak se
   za tyden nikdo nedozvi, proc ma jeden radek jine cislo nez vypocet.
   Zamykat policko natvrdo by z vyjimky udelalo nemoznost. */
.t-hdc[data-rucne],.t-hdc[data-jiny]{color:var(--zlata);
  border-color:var(--zlata-hrana);border-style:dashed;font-weight:700}

/* Pruh o handicapech, ktere nesedi s vypoctem. Zlaty jako samotna
   policka - je to totez upozorneni, jen shrnute nahoru. */
.hdc-nesedi{display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  margin:0 0 14px;color:var(--zlata);border:1px dashed var(--zlata-hrana)}

/* Smazani celeho turnaje. Jedine misto na strance, kde se neco maze
   z DATABAZE - proto uplne dole, tise a s potvrzenim. */
.smazat-radek{margin-top:14px;display:flex;align-items:center;gap:12px;
  flex-wrap:wrap}
.smazat-turnaj{font-family:var(--f-body);font-size:13px;color:var(--faint);
  background:none;border:1px solid var(--line-solid);border-radius:99px;
  padding:3px 13px 4px;cursor:pointer}
.smazat-turnaj:hover{color:var(--accent-ink);border-color:var(--accent-ink)}
.smazat-turnaj.pta-se{color:var(--na-akcentu);background:var(--accent);
  border-color:var(--accent);font-weight:600}

/* Znacka rundy v celkovem pohledu. Kdyz se rundy slijou, musi byt
   poznat, odkud kdo je - jinak je to jen dlouhy seznam. */
.r-znacka{display:inline-block;font-family:var(--f-mono);font-size:10px;
  letter-spacing:.06em;color:var(--faint);border:1px solid var(--line);
  border-radius:3px;padding:0 4px 1px;margin-right:7px;vertical-align:2px}

/* RESTART: horsi pokus. Radek zustava citelny - jsou to platne nahozy,
   jen se nepocitaji do poradi - takze se ztlumi, nezacervena. Chyba to
   neni. Pomlcka v obou sloupcich poradi rika totez o radek dal. */
.t-restart td.t-vrunde,.t-restart td.t-poradi,td.t-neplatny{
  color:var(--faint);font-style:italic}

/* KRIZEK U PRAZDNEHO RADKU. Jedina cesta, jak radek bez hrace odstranit
   - u radku s hracem se neukazuje vubec, tam to dela volba "—" ve vyberu.
   Je zamerne TICHY: je to uklid, ne akce listiny, takze nema tahat oko
   ke kazdemu prazdnemu radku. Z poradi tabulatoru je venku (tabindex=-1),
   aby pri prochazeni polickami neprekazel. */
.turnaj-tab .t-zrus{background:none;border:none;cursor:pointer;padding:0 3px;
  color:var(--faint);font-size:15px;line-height:1;opacity:.5}
/* Sloupec krizku nesmi brat sirku, kdyz je prazdny - vetsina radku
   zadny krizek nema. */
.turnaj-tab td.t-zrus-bunka,.turnaj-tab th.t-zrus-hlava{width:1.6em;
  padding-left:2px;padding-right:2px}
.turnaj-tab .t-zrus:hover{color:var(--accent-ink);opacity:1}
.turnaj-tab .t-zrus:focus-visible{outline:2px solid var(--accent-ink);
  outline-offset:1px;opacity:1}

/* ==================== KOLO STESTI ====================

   Po dohrane runde se z hracu na 4. az poslednim miste losuje jedna mala
   cena. Okno je zamerne MENSI, nez by slo - losuje se pred lidmi a cele
   to musi byt videt najednou, vcetne vysledku pod kolem. Uzivatel
   4. 9. 2026: "muze to byt trochu mensi, at se to hlavne vejde cele na
   obrazovku." */
.stesti-okno{width:min(760px,calc(100vw - 24px))}
.stesti-telo{text-align:center}
.stesti-rozsah{font-size:14px;margin:0 0 10px}

/* Kolo je tmave v kazdem vzhledu. Losuje se na notebooku v herne, klidne
   na externi televizi - tmavy podklad je tam citelnejsi a efekt vypada
   stejne bez ohledu na to, jak ma kdo nastaveny prohlizec. */
.stesti-kolo{position:relative;display:grid;place-items:center;
  background:var(--los-podklad);border-radius:8px;padding:14px 10px 10px;
  border:1px solid var(--los-linka)}
/* DVAKRAT TAK VELKE (uzivatel 4. 9. 2026). Vejde se to porad: mez
   `62vh` drzi kolo pod vyskou okna i s vysledkem pod nim, takze se na
   nizsim displeji zmensi samo. */
.stesti-kolo canvas{display:block;width:min(600px,62vh);height:auto;
  max-width:100%}
.stesti-sipka{position:absolute;top:6px;left:50%;transform:translateX(-50%);
  width:0;height:0;border-left:11px solid transparent;
  border-right:11px solid transparent;
  border-top:18px solid var(--los-sipka);
  filter:drop-shadow(0 2px 5px var(--los-stin));z-index:1}

/* BUBLINA S VYHERCEM MA POKAZDE STEJNOU VELIKOST (uzivatel 5. 9. 2026).
   Delka jmena se meni od "Klus" po "Krusberský Ladislav" a s ni se
   drive menila i vyska okna - pri prelosovani, kdy se cislo ukaze
   dvakrat po sobe, to pod rukama poskakovalo.

   Pevna vyska a jmeno na jeden radek s tim, ze se v pripade potreby
   zmensi (`text-overflow`), ne zalomi. */
.stesti-vyhra{margin:12px 0 0;display:grid;gap:2px;
  min-height:5.6rem;align-content:center}
.stesti-vyhra .stesti-jm{white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.stesti-vyhra .stesti-l{font-family:var(--f-mono);font-size:10.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.stesti-vyhra .stesti-c{font-family:var(--f-disp);font-weight:700;
  font-size:52px;line-height:1;color:var(--zlata);
  font-variant-numeric:tabular-nums}
.stesti-vyhra .stesti-jm{font-family:var(--f-disp);font-weight:500;
  font-size:20px;color:var(--ink)}
.stesti-ooops{text-align:left;margin-top:12px}

/* Vysledek u rundy. Stoji vpravo nahore v nadpisu sekce - je to
   vyhlaseni, ne dalsi udaj listiny, takze se nesmi splest s cisly
   v tabulce. */
.stesti-vysledek{display:inline-flex;align-items:baseline;gap:7px;
  margin-left:auto;padding:2px 9px 3px;border-radius:999px;
  background:var(--zlata-tlum);border:1px solid var(--zlata)}
.stesti-vysledek .stesti-popis{font-family:var(--f-mono);font-size:10px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.stesti-vysledek .stesti-misto{font-family:var(--f-disp);font-weight:700;
  font-size:17px;color:var(--zlata);font-variant-numeric:tabular-nums}
.stesti-vysledek .stesti-hrac{font-family:var(--f-disp);font-weight:500;
  font-size:15px;color:var(--ink)}
.stesti-vysledek .stesti-zrus{background:none;border:none;cursor:pointer;
  color:var(--faint);font-size:15px;line-height:1;padding:0 0 0 3px}
.stesti-vysledek .stesti-zrus:hover{color:var(--accent-ink)}

/* NEULOZENE ZMENY. Ukotveny pruh dole, ktery se drzi, dokud se neulozi -
   je to STAV, ne hlaska, ktera problikne. Rozepsane sice lezi
   v prohlizeci a pri padu se nic neztrati, ale v databazi neni a ve
   vysledcich se neobjevi; uzivatel 4. 9. 2026 se bal, "aby nekdo napsal
   vysledky a pak zapomnel na to ulozeni".

   Dole, ne nahore: nahore uz je ukotvene menu a zapisuje se odshora
   dolu, takze na konci listiny je tlacitko po ruce. */
.neulozeno{position:sticky;bottom:0;z-index:5;
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  margin:14px 0 0;padding:9px 14px;border-radius:6px;
  background:var(--zlata-tlum);border:1px solid var(--zlata);
  font-size:15px;color:var(--ink)}
.neulozeno b{font-family:var(--f-disp);font-weight:700;font-size:18px;
  color:var(--zlata);font-variant-numeric:tabular-nums}
.neulozeno .ulozit{margin-left:auto}

/* RESTART, KTERY SE NEZAPOCITAL. Ve vysledcich vubec neni - je to zapis,
   ktery se neuznal - ale na strance hrace ano: hral ho doopravdy a jeho
   hry do statistiky patri. Znacka "Re" u data to rekne bez dalsi vety.
   Radek se jen ztlumi; cervena by z toho delala chybu, a ona to chyba
   neni. */
.znak-re{font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--faint);border:1px solid var(--line-solid);
  border-radius:3px;padding:0 3px 1px;vertical-align:1px}
tr.t-restart td{color:var(--faint)}

/* TURNAJ, KTERY SE JESTE HRAJE. Tyz jazyk jako restart, a schvalne:
   obojí rika "hral to doopravdy, ale tohle jeste neni hotove". Kurziva
   by byla treti jazyk pro druhy vyznam - web uz ma dvojite preskrtnuti
   na "tohle se nepocita" a ztlumeny radek se znackou na "hral, ale
   mimo poradi".

   Hry se pocitaji (uzivatel 11. 9. 2026: "ja bych pocital, ale oznacil
   bych, ze to neni dohrany turnaj"); co v takovem radku chybi, jsou
   UMISTENI A BODY - ty se rozdaji az podle konecneho poradi. */
.znak-hraje{font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--accent-ink);
  border:1px solid var(--accent-ink);border-radius:3px;padding:0 3px 1px;
  vertical-align:1px;white-space:nowrap}
tr.t-hraje td{color:var(--faint)}
tr.t-hraje td.datum a{color:var(--ink)}

/* KOLO STESTI POD VEREJNOU LISTINOU. Jeden radek, bez vlastni sekce -
   je to mala cena, ne vysledek, takze do poradi nezasahuje a nema mu
   brat misto. Zlata drzi souvislost s cedulkou ve sprave. */
.stesti-pozn{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;
  margin:12px 0 0;font-size:15px;color:var(--ink)}
.stesti-pozn .stesti-popis{font-family:var(--f-mono);font-size:10.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.stesti-pozn .stesti-kus{display:inline-flex;align-items:baseline;gap:6px}
.stesti-pozn .stesti-kus .dim{font-size:13px}
.stesti-pozn b{font-family:var(--f-disp);font-weight:700;font-size:17px;
  color:var(--zlata);font-variant-numeric:tabular-nums}

/* REZIM VYSLEDKU. Listina je serazena podle umisteni a JEN SE CTE -
   zapisuje se v rezimu Zápis, kde jsou rundy po sobe a v poradi listku.
   Krizit obojí byla puvodni chyba: pri razeni podle bodu se radky
   prerovnavaly pod rukama a Enter skakal jinam, nez clovek cekal
   (uzivatel 5. 9. 2026).

   Policka se tu zamykaji v obsluze (readonly / disabled); stylopis jen
   sundava jejich ramecky, aby bylo na prvni pohled videt, ze se do nich
   nepise. Tabulka tim vypada jako vysledkova listina, ne jako formular. */
.turnaj-tab.jen-cteni input,.jen-cteni .turnaj-tab input,
.turnaj-tab.jen-cteni select,.jen-cteni .turnaj-tab select{
  border-color:transparent;background:none;cursor:default;
  -webkit-appearance:none;appearance:none}
.jen-cteni .turnaj-tab select{padding-right:0}

/* DRAHA SE VE VYSLEDCICH NEUKAZUJE.

   Je to udaj PRO ZAPIS, ne pro vyhodnoceni: zapisovatel prepisuje listky
   a listek je jedna draha. Na poradi ani na body nema vliv - ty plynou
   ze souctu.

   Ve vysledcich navic pusobi jako chyba: losuje se pred kazdou rundou,
   takze v rozehranem turnaji ma drahu jen ta, ktera uz se hrala, a kdo
   pribyl pozdeji, ji nema vubec. Uzivatel 5. 9. 2026: "prekliknu na
   vysledky, nekde draha je, nekde ne, to je proc?" - a je to spravna
   otazka: ve vysledkove listine to cislo nema co delat. */
.jen-cteni .misto-sloupec{display:none}

/* JAK SE JMENO ULOZI. Prijmeni a jmeno jsou dve policka pod sebou a da
   se do nich napsat obojí obracene - stalo se to. Nahled to ukaze driv,
   nez se hrac zaklada; hadat za cloveka, co je prijmeni, by u jmen jako
   "Antonín Ondřej" nebo "Matěj Zdeněk" dopadlo spatne. */
.nh-nahled{margin:8px 0 0;font-size:14px;color:var(--muted)}
.nh-nahled b{color:var(--ink);font-family:var(--f-disp);font-weight:600}

/* ---- sprava pulmaratonu: sestavy a zapis nahozu -------------------
   MRIZKA JE OPSANA Z LISTU "tisk zapisu" v sesitu poradatele: kazda hra
   jsou DVE bunky (body / doplnkova) se spojenym zahlavim, vsechny tri
   bloky pod sebou.

   SIRKU DRZI TABULKA, ne policka. Predchozi verze mela obe policka
   v jedne bunce pod sebou a `width` v `em`: `Split` ma mensi pismo,
   takze `3.4em` u nej vyslo uzsi nez u nahozu a sloupce se rozjely.
   Proto `table-layout:fixed`, sirky na `<col>` a `width:100%` na
   policku - pak nezalezi na tom, jakym pismem je co psane. */
.maraton-tymy{display:flex;flex-direction:column;gap:14px}
.maraton-tym .mt-nazev{margin:0 0 8px}
.maraton-tym .mt-nazev input{font-family:var(--f-disp);font-size:18px;
  font-weight:600}
.maraton-tym .mt-hraci{list-style:none;margin:0 0 10px;padding:0;
  display:flex;flex-wrap:wrap;gap:6px 14px}
.maraton-tym .mt-hraci li{display:flex;align-items:center;gap:4px}
.maraton-tym .mt-souhrn{font-size:12px;font-variant-numeric:tabular-nums}
.maraton-tym .mt-blok + .mt-blok{margin-top:10px}

.zapis-mrizka{table-layout:fixed;border-collapse:collapse;width:auto}
.zapis-mrizka col.mz-jm{width:12.5em}
.zapis-mrizka col.mz-b{width:3.6em}
.zapis-mrizka col.mz-s{width:2.6em}
.zapis-mrizka th,.zapis-mrizka td{padding:1px 2px;border:none}
.zapis-mrizka td.jm,.zapis-mrizka th.jm{text-align:left;padding-left:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Cislo hry nad dvojici bunek - tak to ma papir. Cara pod nim drzi
   dvojici pohromade, jinak by se cetla jako dva samostatne sloupce. */
.zapis-mrizka .mz-cisla th{font-family:var(--f-disp);font-size:13px;
  font-weight:700;text-align:center;padding-top:4px}
.zapis-mrizka .mz-cisla th.num{border-bottom:1px solid var(--line-strong)}
.zapis-mrizka .mz-popis th{font-size:10.5px;font-weight:400;
  color:var(--faint);text-align:center;letter-spacing:.03em;
  padding-bottom:2px}
/* OBE POLICKA MUSI MIT STEJNOU VYSKU I SIRKU. Doplnkove melo mensi
   pismo a tim i nizsi ramecek, takze radek nesedel - je to tataz
   pricina jako u sirky. Odlisuje se proto jen BARVOU, ne velikosti:
   `font` na policko neni dedeny z tabulky, takze kazda odchylka meni
   rovnou rozmer krabicky. */
.zapis-mrizka input{width:100%;box-sizing:border-box;text-align:center;
  font-family:var(--f-body);font-size:14px;line-height:1.2;
  font-variant-numeric:tabular-nums;padding:2px 1px;height:1.85rem}
.zapis-mrizka input.dopl{color:var(--faint)}
/* Oddeleni dvojic patri na SLOUPEC, ne na bunku: `padding` na `td`
   by se netykal zahlavi, takze by cislo hry stalo o par pixelu jinde
   nez policko pod nim - a presne tim se mrizka rozjede. Linka na
   `<col>` plati na vsechny radky vcetne obou zahlavi. */
.zapis-mrizka col.mz-b{border-left:1px solid var(--line)}
.zapis-mrizka col.mz-jm{border-right:1px solid var(--line-strong)}
.zapis-mrizka .mt-kontrola td{border-top:1px solid var(--line);
  font-size:11px;font-family:var(--f-mono);text-align:center;
  padding-top:3px}
/* SIPKY NA PORADI. Male a tiche - je to prestavba listku, ne akce,
   kvuli ktere se sem chodi. Vedle sebe bez mezery, at je poznat, ze
   patri k sobe. */
.mt-sipky{display:inline-flex;margin-left:.4em;vertical-align:middle}
.mt-sipka{font:inherit;font-size:.8em;line-height:1;cursor:pointer;
  padding:.15em .4em;color:var(--faint);background:none;
  border:1px solid var(--line)}
.mt-sipka:first-child{border-radius:4px 0 0 4px}
.mt-sipka:last-child{border-radius:0 4px 4px 0;border-left:0}
.mt-sipka:hover{color:var(--ink);border-color:var(--faint)}
.mt-hraci li .mt-sipky{margin-left:0;margin-right:.4em}
.zapis-mrizka .mt-kontrola td.chybi{color:var(--accent);font-weight:600}
/* VIC HRACU, NEZ MA V TE HRE HAZET, je tvrde pravidlo - proto vic
   nez zvyrazneni: podbarvi se, at je to videt i koutkem oka. */
.zapis-mrizka .mt-kontrola td.prilis{color:var(--na-akcentu);font-weight:700;
  background:var(--accent);border-radius:3px}

/* ---- pulmaraton: vyvoj poradi a tymove nahozy --------------------- */
/* Zmena proti predchozimu bloku je DROBNY doplnek k cislu, ne dalsi
   sloupec - kdo si vede lip, ma zustat citelny na prvni pohled. */
.mt-vyvoj .mt-zmena{font-size:11px;font-family:var(--f-mono);
  margin-left:4px;vertical-align:super}
.mt-vyvoj .mt-zmena.nahoru{color:var(--zelena)}
.mt-vyvoj .mt-zmena.dolu{color:var(--faint)}
/* Nejlepsi tymova hra turnaje. Neni to trida nahozu jako u hracu -
   soucet dvojice se s hranicemi Klubu 250 porovnavat neda. */
.maraton-hry td.nej-tym{font-weight:700;color:var(--accent)}
/* PODIL JEDNOHO HRACE NA TYMOVE HRE - cislo hned za jeho jmenem
   (Vyhlaseni, nejvyssi nahozy druzstev). Je to cast souctu vedle,
   ne dalsi vysledek, takze drzi pri jmenu a nesviti: rozdil dela
   strojopisna cislice, ne barva. */
.mt-podil{font-family:var(--f-mono);font-size:.92em;font-weight:600}

/* Rekordy pulmaratonu: co - kolik - kdo. Ne tabulka, je jich pet a
   kazdy je o necem jinem; sloupce by predstiraly, ze se daji porovnat. */
.mt-rekordy{list-style:none;margin:0;padding:0;display:flex;
  flex-direction:column;gap:10px}
.mt-rekordy li{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.mt-rekordy .mr-co{flex:1 1 15em;color:var(--muted)}
.mt-rekordy .mr-kolik{font-family:var(--f-disp);font-size:24px;
  font-weight:700;font-variant-numeric:tabular-nums;min-width:2.8em;
  text-align:right}
.mt-rekordy .mr-kdo{flex:1 1 16em}

/* Ve "Vse" stoji jmeno jen u prvniho radku trojice - opakovat ho
   trikrat pod sebou je sum. U jednoho bloku musi byt videt vzdycky,
   takze to nejde udelat jen v sablone. `visibility` drzi sirku
   sloupce, `display:none` by ji sebral a tabulka by poskakovala. */
/* Ve "Vse" stoji jmeno a souhrny jen u prvniho radku trojice -
   opakovat je pod sebou trikrat je sum. Nejde to udelat `rowspan`em:
   pri prepnuti na jeden blok by zmizely u vsech radku, ktere nejsou
   prvni, a bunky by se posunuly o sloupec. Stoji proto v KAZDEM radku
   a schovava je az stylopis - `visibility`, ne `display`, aby tabulka
   nepreskakovala. */
.maraton-hry[data-pohled="vse"] tbody tr:not(.prvni-blok) td.jm,
.maraton-hry[data-pohled="vse"] tbody tr:not(.prvni-blok) td.souhrn{
  visibility:hidden}


/* NAHRANI PORADATELOVA SESITU. Stoji az pod zapisem, u ostatnich
   "nacist odjinud" - nahrani prepise nahozy, takze se na nej nesmi
   sahnout omylem. Ramecek to oddeluje od formulare nad tim. */
.zap-sesit{margin:22px 0 0;padding:14px 16px;border:1px solid var(--line-solid);
  border-radius:4px;background:var(--surface-2)}
.zap-sesit h3{margin:0 0 6px;font-family:var(--f-disp);font-size:16px}
.zap-sesit p{margin:0 0 10px}
.zap-sesit .zapis-ulozit{display:flex;align-items:center;gap:12px;
  flex-wrap:wrap;margin:0}
.zap-sesit input[type="file"]{font:inherit;font-size:14px;color:var(--ink)}
.sesit-seznam{margin:4px 0 10px;padding-left:20px;font-size:14px;
  color:var(--faint)}
.sesit-seznam li{margin:2px 0}
#sesit-vysledek .ok{color:var(--zelena);font-weight:600}
#sesit-vysledek .chyba{color:var(--accent-ink);font-weight:600}
.sesit-soubor{margin:8px 0 0;font-size:14px}
.sesit-soubor b{font-family:var(--f-mono);font-size:13.5px;color:var(--ink)}
.sesit-auto{margin:8px 0 0;font-size:13px;color:var(--accent-ink)}
.sesit-stari{margin:8px 0 0;font-size:13px}
.sesit-stari b{font-family:var(--f-mono);color:var(--ink)}
/* Co prave prislo ze sesitu, at je videt - bez toho clovek nepozna,
   jestli se vubec neco stalo. Znacka po chvili zmizi sama. */
.prave-nacteno{background:var(--zlata-tlum);transition:background .8s}
.sesit-sleduj{display:inline-flex;align-items:center;gap:5px;font-size:14px;
  color:var(--faint);white-space:nowrap}
.sesit-sleduj input{margin:0}
/* ZAPISUJE SE ZE SESITU: rucni zapis je zamceny, takze tlacitko na nej
   ma byt ZTLUMENE, ne pryc. Pryc by vypadalo jako porucha a clovek by
   hledal, kam zmizelo; ztlumene rekne "jde to, ale ted ne" - a duvod
   se dozvi na te strance, protoze prohlizeni zamek nebrani. */
a.ulozit.zamceno-sesitem{opacity:.45}
/* Prohlizec, ktery si soubor pamatovat neumi (Firefox) - prepinac se
   nezmizi, jen zasedne; skryty by budil dojem, ze takova moznost
   neexistuje. */
.sesit-sleduj.nejde{opacity:.5;cursor:not-allowed}
/* ZAPISUJE SE Z EXCELU, tak je formular jen ke cteni - dva zdroje teze
   veci se vzdycky rozejdou. Ztlumeni to rekne driv nez kterakoli veta;
   `opacity` na cely formular, protoze zamcenych prvku jsou stovky. */
.zamceno-excelem{opacity:.62}
.zamceno-excelem input,.zamceno-excelem select{cursor:not-allowed}

/* PROJEKTOR: skryti hracu (klavesa H). Na rozehranem zavode je dulezity
   prubeh, takze jsou vychozi videt - ale kdyz jde o poradi, je devet
   radku citelnejsi nez ctyryicet a pismo na ne vyjde skoro dvojnasobne.
   `display:none`, ne `visibility`: radky se maji z vysky opravdu
   odecist, jinak by se nemelo co zvetsit. */
body.proj-bez-hracu .proj-radek.pr-hrac{display:none}

/* Rozehrany rocnik v archivu: neni to prazdna dlazdice, jen jeste nema
   viteze. Cervena hrana ho odlisi od tech, ktere se nehraly. */
.arch-dlaz.arch-rozehrany{border-left:3px solid var(--accent)}
.arch-hraje{color:var(--accent-ink)}

/* Odkaz na projektor u zive listiny - zapisovatel ho pousti prave
   v hraci den, takze stoji tam, kde uz stoji. */
.hl-projektor{margin-left:auto;font-size:13px;color:var(--accent-ink);
  text-decoration:none;border-bottom:1px dotted var(--accent-ink)}
.hl-projektor:hover{color:var(--ink)}
.hl-maraton .hl-kdy{display:flex;align-items:baseline;gap:10px;
  flex-wrap:wrap}
.hl-projektor-radek{margin:6px 0 0;text-align:right}

/* Uzavreni turnaje pulmaratonu - jeden radek nad formularem. */
.mt-zamek{display:flex;align-items:center;gap:10px;margin:0 0 12px}
.zap-seznam form.vradku{display:inline}

/* ---- dvere webu (/test, pozdeji /) -------------------------------
   Uvodni strana: znacka, veta, jedno tlacitko. Zadny pas, zadne menu.
   Sdili paletu i pismo se zbytkem webu, takze kdo si vybral svetly
   vzhled, nedostane cerne dvere ke svetlemu domu. */
.dvere-body{min-height:100vh;display:flex;align-items:center;
  justify-content:center;padding:32px 20px}
.dvere{max-width:34rem;text-align:center}
.dv-znacka{font-family:var(--f-disp);font-weight:700;
  font-size:clamp(24px,5vw,38px);line-height:1.15;letter-spacing:.01em;
  text-transform:uppercase;margin:0;text-wrap:balance}
.dv-podtitul{font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--faint);margin:10px 0 0}
/* Vodorovna linka misto ramecku: dvere maji byt lehke, ne krabice. */
.dv-text{margin:26px 0 0;padding-top:24px;border-top:1px solid var(--line);
  font-size:15.5px;line-height:1.65;color:var(--muted);text-align:left}
.dv-text b{color:var(--ink)}
.dv-vstup{margin:26px 0 0}
.dv-tlacitko{display:inline-block;padding:11px 30px;border-radius:999px;
  background:var(--accent);color:var(--na-akcentu);text-decoration:none;
  font-family:var(--f-disp);font-weight:600;font-size:16px;
  letter-spacing:.04em;text-transform:uppercase;
  border:1px solid var(--accent)}
.dv-tlacitko:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
.dv-tlacitko:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.dv-souteze{margin:28px 0 0;font-size:13px;line-height:1.9;
  color:var(--faint)}
.dv-tecka{opacity:.55}
/* POD FOTKOU LEZI TEXT NA PAPIRE, ne primo na obrazku - stejne jako
   `.wrap` na ostatnich strankach. Bez toho by se veta na kuzelkach
   ztratila; dvere pritom fotku snesou nejlip ze vsech stranek, tak
   at je videt kolem. */
html[data-foto] .dvere{background:var(--paper);border-radius:10px;
  padding:34px 34px 38px;box-shadow:0 20px 60px -30px var(--stin-barva)}
@media (max-width:520px){
  html[data-foto] .dvere{padding:26px 20px 30px}
}

/* Dlazdice, ktera neco DELA - je to formular, ne odkaz. Vypada stejne
   jako ostatni, jen ma dole tlacitko: neco se tim deje, takze se to
   nesmi tvarit jako prochazeni. */
.admdlaz-akce{cursor:default}
.admdlaz-akce .tlacitko{align-self:flex-start;margin-top:10px}

/* ---- projektor ("letiste") ---------------------------------------
   Vysledky na televizi v herne. CELA PLOCHA, dva sloupce, cerne na
   bilem - vzhled webu se sem zamerne nepromita, cte se z dalky
   a rozhoduje kontrast. Barvy jsou `--proj-*` v hlavnim `:root`,
   stejne jako podium Kola stesti.

   `--proj-pismo` nastavuje skript podle toho, co si clovek v herne
   naladi klavesami; pocet radku na stranku se z toho DOPOCITA. */
:root{--proj-pismo:26px}
body.proj{margin:0;height:100vh;overflow:hidden;display:flex;
  flex-direction:column;background:var(--proj-bg);color:var(--proj-ink);
  font-family:"Oswald",var(--f-disp),sans-serif;
  font-variant-numeric:tabular-nums;
  /* Televize pres HDMI ukrajuji az tri procenta obrazu (overscan),
     takze se obsah nelepi na kraj - jinak zmizi prvni znak poradi. */
  padding:2.2vh 2.2vw}
.proj-hlava{display:flex;justify-content:space-between;align-items:baseline;
  gap:2vw;padding-bottom:.5vh;border-bottom:3px solid var(--proj-ink);
  flex:0 0 auto}
.proj-kdo{display:flex;align-items:baseline;gap:1.4vw;min-width:0}
.proj-soutez{font-size:calc(var(--proj-pismo)*.8);
  text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.proj-turnaj{font-size:calc(var(--proj-pismo)*1.25);font-weight:700;
  text-transform:uppercase;white-space:nowrap}
.proj-datum{font-weight:400;font-size:calc(var(--proj-pismo)*.8);
  margin-left:.6em}
.proj-stav{display:flex;align-items:baseline;gap:1.2vw;white-space:nowrap}
.proj-zive{color:var(--proj-akcent);font-weight:700;
  font-size:calc(var(--proj-pismo)*.85);text-transform:uppercase;
  letter-spacing:.05em}







/* Radek je mrizka, ne tabulka - sloupce tim drzi v obou pulkach
   obrazovky stejne siroke, aniz by se musely spojovat do jedne tabulky.
   `1fr` u jmena znamena, ze se prizpusobi ono, ne cisla. */
/* JMENO MA ZARUCENE MISTO. Napoprve melo `minmax(0,1fr)`, takze se pri
   velkem pismu sesypalo na nulu - pevne sloupce byly dohromady sirsi
   nez pulka obrazovky. Ted ma spodni mez a scvrknout se nemuze; kdyz
   se radek nevejde, zmensi se pismo. */
/* SLOUPCE V PIXELECH ODVOZENYCH Z `--proj-pismo`, ne v `em`.
   `em` se pocita z pisma TOHO PRVKU - a zahlavi ho ma na 62 %, takze
   melo sloupce o 38 % uzsi nez radky pod nim a hodnoty nesedely pod
   popisky (uzivatel 8. 9. 2026: "hlavicka neodpovida hodnotam"). */
/* SIRKY SLOUPCU SKLADA SERVER (`--proj-mrizka` na <body>), ne tenhle
   soubor. Sablona projektoru je jedna a kresli ruzne souteze - devitka
   ma sest her, pulmaraton tri bloky - takze by tu jinak musela byt
   trida na kazdou z nich. Zahlavi a radky ctou TUTEZ promennou, takze
   se nemuzou rozejit (uzivatel 8. 9. 2026). */
.proj-radek{display:grid;align-items:baseline;
  grid-template-columns:var(--proj-mrizka);
  gap:0 calc(var(--proj-pismo)*.45);
  font-size:var(--proj-pismo);line-height:1.42;
  border-bottom:1px solid var(--proj-linka)}
.proj-radek>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.proj-zahlavi{font-size:calc(var(--proj-pismo)*.62);
  text-transform:uppercase;letter-spacing:.06em;font-weight:600;
  border-bottom:2px solid var(--proj-ink)}
/* CERNE VSUDE. Ztlumena sedá je na webu spravne - odlisi vedlejsi
   udaj - jenze z dalky se cte uz jen kontrastem a kazde zesvetleni
   ubere citelnost. Rozdil dela vaha a velikost, ne barva. */
.p-por{text-align:right;font-weight:500}
.p-hrac{font-weight:500}
.p-hdc{font-style:normal;font-size:.62em;vertical-align:super;
  margin-left:.15em;font-weight:400}
.p-runda{text-align:center;font-size:.78em}
.p-hra{text-align:right}
/* SKRTNUTA HRA - ta, ktera se do souctu nepocita (Senior Cup scita pet
   ze sesti). JEN CARA, zadne zesvetleni: podle pravidla o kus vys se na
   tabuli cte kontrastem a ztlumene cislo by z dalky zmizelo uplne.
   Dvojita cara je tataz, jakou ma skrtnuta hra ve vysledkove listine -
   znamena na celem webu "tohle se nepocita". Tloustka v `em`, at roste
   s pismem; v pixelech by pri 60px pismu nebyla videt. */
.p-hra.p-skrt{text-decoration:line-through;text-decoration-style:double;
  text-decoration-thickness:.05em}
.p-soucet{text-align:right;font-weight:700}
/* LIGOVY ZAPISOVY LIST NA TABULI. Je zrcadlovy: domaci zleva, hoste
   zprava, a body obou stran uprostred vedle sebe - tak to ma papir
   i web, a kdyz se to prohodí, cte se to spatne oboje.
   Barva zadna, jen zarovnani a vaha: na tabuli se cte kontrastem. */
.p-bod{text-align:center;font-weight:600}
.p-zrc{text-align:left}
.p-hrac-z{text-align:right}
/* Souctovy radek kola (Celkem) a pod nim body za kolo. Rozdil proti
   duelum dela VAHA, ne zesvetleni - tataz uvaha jako "cerne vsude". */
.pr-soucet{font-weight:700;border-top:2px solid var(--proj-ink)}
.pr-bod{font-weight:600}
/* Dilci body (za duely, za kuzelky) jsou mensi nez radek "Kolo" -
   ten je vysledek, ony jsou jeho slozky. */
.pr-dilci{font-size:.78em}
.pr-bod .p-hrac{font-weight:400}
/* Stav zapasu v prehledu dne a sipka v tabulce - kratky text vpravo,
   ktery nesmi utrhnout misto jmenum druzstev. */
.p-stav{text-align:right;font-size:.72em}
.p-zmena{text-align:right;font-size:.78em;font-weight:600}
/* NIC SE NEZVYRAZNUJE, ANI PRVNI MISTO. Zkouselo se bile jako
   "BOARDING" na tabuli a pak aspon zlute cislo u prvniho - uzivatel
   obojí zamitl (8. 9. 2026: "ten prvni hrac ma porad 1. bilou barvou
   ... vsechny stejne"). Na projektoru se cte pohled po sloupci a jeden
   svetlejsi radek strhava oko k sobe, i kdyz clovek hleda nekoho
   jineho. Poradi rekne poradi, zvyrazneni k tomu nic nepridava. */

/* PREKRESLENI MA BYT VIDET. Sloupec zhasne, posune se a zase najede -
   bez toho by se cisla jen "teleportovala" a clovek by nepoznal, jestli
   se neco zmenilo, nebo se dival jinam. */







/* ---- projektor, druha verze: "dlouhy papir" -----------------------
   Jeden sloupec pres celou sirku, ktery pomalu roluje nahoru. Sirka je
   tu cela k dispozici, takze se do radku vejde PLNE jmeno i vsechno
   ostatni - nic se nezkracuje jako u prvni verze. */
.proj2 .proj2-razeni{font-size:calc(var(--proj-pismo)*.62);
  text-transform:uppercase;letter-spacing:.06em}
/* SLOUPCE JEN TAK SIROKE, JAK JE OBSAH POTREBUJE. Byly stavene
   s rezervou, jenze cisla jsou zarovnana doprava - takze v sirokem
   sloupci zustalo prazdno VLEVO a radek zacinal o kus dal nez hlavicka
   nad nim (uzivatel 8. 9. 2026: "na zacatku radku i na jeho konci je
   zbytecne vynechane misto"). Nejvetsi hodnoty: poradi "51.", hra
   "287", soucet "1569", prumer "261,50". */
.proj2-usek + .proj2-usek{margin-top:calc(var(--proj-pismo)*1.6)}
.proj2-zahlavi{flex:0 0 auto}
/* NADPIS A POJMENOVANI SLOUPCU JSOU VE VYCHOZIM STAVU SCHOVANE.
   Na projektoru jde o vysledky a obojí zabira misto, ktere patri
   radkum; kdo u drahy stoji, vi, na jaky turnaj se diva. Zapnout se to
   da klavesami N a S nebo parametrem v adrese. */
body.proj-bez-nadpisu .proj-hlava{display:none}
body.proj-bez-sloupcu .proj2-zahlavi{display:none}
/* Bez nadpisu nema plocha shora nic, co by ji oddelilo od okraje. */
body.proj-bez-nadpisu.proj-bez-sloupcu .proj2-okno{padding-top:.4vh}
/* Okno, ve kterem se roluje. `overflow:hidden` je to podstatne - pas je
   delsi nez obrazovka a ma z nej byt videt jen kousek. */
.proj2-okno{flex:1 1 auto;min-height:0;overflow:hidden;position:relative}
.proj2-pas{will-change:transform}
/* ZA POSLEDNIM RADKEM PRAZDNO NA PUL OBRAZOVKY. Bez nej najel prvni
   hrac hned za poslednim a vypadalo to, ze listina pokracuje; pul
   obrazovky rekne "zaciname znovu", a pritom se necka na uplne prazdny
   obraz. Je to `padding-bottom`, takze se pocita i do vysky kopie -
   a podle te se posun vraci na nulu. */
.proj2-kopie{padding-bottom:var(--proj2-mezera,50vh)}
.p-her{text-align:right}
.p-prumer{text-align:right}
.p-ztrata,.p-bedna{text-align:right}
/* NAZEV TABULE. Tabule se stridaji - po celkovem poradi jede doplnkova
   soutez, nejvyssi nahozy druzstev, nejvyrovnanejsi hrac - a nadpis je
   ve vychozim stavu schovany. U celkoveho poradi to nevadi, kdo u drahy
   stoji, vi, na co se diva; u vyhlasovane ceny uz ano: tabulka jmen
   a cisel bez popisku nerekne, ze jde o "nejvic splitu". Proto je tenhle
   radek videt VZDYCKY, nezavisle na klavese N. */
/* NAZEV NESMI PREBIT RADKY POD SEBOU. Byl na 0.78, tedy uz mensi nez
   radek - ale tucny, verzalkami a prostrkany, takze se cetl stejne
   silne jako jmena hracu (uzivatel 28. 9. 2026: "nazev tymu by podle
   me nemel byt vetsi, nez jmena hracu"). Obsah jsou vysledky; nazev je
   popisek nad nimi, tak ma byt poznat na prvni pohled, ze je to
   popisek. Snizeno na 0.62 - tedy na velikost pojmenovani sloupcu,
   ktere je take popisek. */
.proj2-nazev{flex:0 0 auto;font-size:calc(var(--proj-pismo)*.62);
  font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  padding-bottom:.4vh;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
/* Cim ta cena je - "split", "aspon 8 her". Drzi se nazvu, takze mensi
   a lehci; barvou se to nerozlisuje (na tabuli se cte kontrastem). */
.proj2-podnazev{font-weight:400;text-transform:none;letter-spacing:.01em;
  font-size:.72em;margin-left:.7em}
/* DVE PATRA V JEDNE TABULCE: druzstvo a pod nim jeho hraci. Rozdil
   dela VAHA A ODSAZENI, ne barva - na tabuli se cte z dalky a kazde
   zesvetleni ubira citelnost (tataz uvaha jako "cerne vsude"). */
.pr-tym{font-weight:700}
.pr-tym .p-hrac{text-transform:uppercase}
/* HRACI MAJI BYT TAKY VELCI - je to jejich vysledek a lidi ho u drahy
   ctou z dalky stejne jako nazev tymu (uzivatel 8. 9. 2026: "chci ty
   hrace velke"). Rozdil proti druzstvu drzi vaha, verzalky
   a odsazeni, ne velikost - proto jen o chlup. */
.pr-hrac{font-size:1em}
.pr-hrac .p-hrac{padding-left:1.2em}
/* Cara az pod poslednim hracem druzstva, ne mezi jeho radky - jinak
   se tri patra slijou do jednoho pruhovaneho pole. */
.pr-hrac{border-bottom:0}
.pr-hrac + .pr-tym{border-top:1px solid var(--proj-linka)}
/* Druha a treti cast tehoz radku patri k te prvni - odsazeni
   a zadna cara navic, aby se to necetlo jako dalsi hrac. */
.pr-dalsi .p-hrac{padding-left:2.4em}
.pr-tym.pr-dalsi + .pr-tym{border-top:0}
/* Prazdna tabule: jedna veta pres celou sirku, ne prazdna mrizka. */
.proj-prazdno{display:block;text-align:center;opacity:.75}
/* Pri zastaveni je to videt na napovede, ne na pruhu - ten tu neni. */
body.proj-stoji .proj2-razeni{color:var(--proj-akcent)}

/* STAV JE VIDET POAD, ne jen po stisku klavesy. Clovek to ladi primo
   v herne a potrebuje si zapamatovat, co si nastavil - "rychlost 3"
   musi byt na obrazovce, aby to slo priste zopakovat. Drobne a dole,
   at to necte divak, ale ten, kdo u toho stoji. */
.proj2-stav{position:fixed;right:2.2vw;bottom:1.2vh;margin:0;
  font-family:var(--f-mono);font-size:12px;letter-spacing:.04em;
  text-transform:uppercase;opacity:.55}

/* DVE PISMA NA VYZKOUSENI. Oswald je uzky, takze se vejde dlouhe jmeno;
   IBM Plex Mono ma vsechny znaky stejne siroke, takze cisla i jmena
   stoji presne pod sebou. Co se z dalky cte lip, se pozna az v herne -
   proto se to prepina, ne rozhoduje tady. */
body.proj[data-pismo="mono"]{font-family:"IBM Plex Mono",ui-monospace,monospace}
body.proj[data-pismo="roboto"]{font-family:"Roboto Condensed",var(--f-disp),sans-serif}
body.proj[data-pismo="barlow"]{font-family:"Barlow Condensed",var(--f-disp),sans-serif}
body.proj[data-pismo="inter"]{font-family:"Inter Tight",var(--f-body),sans-serif}
/* Frutiger vznikl 1968 primo pro letiste Charlese de Gaulla - kvuli
   citelnosti z dalky a za spatneho svetla. Zdarma neni; Cabin je
   humanisticky bezpatkovy nejbliz te znackovaci rodine. */
body.proj[data-pismo="cabin"]{font-family:"Cabin",var(--f-body),sans-serif}
/* Sirsi pismo (mono) uz vlastni mrizku NEPOTREBUJE: velikost se meri
   a dopocitava, takze se radek zmensi, dokud se nevejde. Jedna mrizka
   na vsechna pisma znamena, ze se pri pridani dalsiho nemusi nic
   dopisovat. */

/* BILE NA CERNEM na vyzkouseni. Prohodi se jen ty dve barvy - linky
   a akcent se dopocitaji, takze nevznika druha paleta, ktera by se
   casem rozesla s prvni. */
/* VARIANTA "LETISTE". Neni to druha stranka, jen jina paleta a jine
   vychozi pismo - prepinace funguji dal, takze se to da na miste
   porovnat s obycejnou verzi. */
body.proj.proj-fids{--proj-bg:var(--proj-fids-bg);--proj-ink:var(--proj-fids-ink);
  --proj-linka:var(--proj-fids-linka);--proj-akcent:var(--proj-fids-akcent)}
/* Na tabuli stoji nazvy verzalkami - z dalky se lip rozeznaji obrysy
   slov a je to ta podoba, kterou lidi z letiste znaji. */
body.proj-fids .p-hrac{text-transform:uppercase;letter-spacing:.02em}
/* PRVNI MISTO SE NEZVYRAZNUJE. Zkouselo se bile, jako "BOARDING" na
   tabuli, ale uzivatel 8. 9. 2026 rozhodl "vsechny stejne" - a ma
   pravdu: na projektoru se cte pohled po sloupci a jeden svetlejsi
   radek oko strhava k sobe, i kdyz zrovna hleda nekoho jineho. */
/* Inverzni prepinac se s letistni paletou bije - kdyz si ho clovek
   zapne, vyhraje on. */
body.proj.proj-fids.proj-inverzni{--proj-bg:var(--proj-inv-bg);
  --proj-ink:var(--proj-inv-ink);--proj-linka:var(--proj-inv-linka);
  --proj-akcent:var(--proj-inv-akcent)}

body.proj.proj-inverzni{--proj-bg:var(--proj-inv-bg);
  --proj-ink:var(--proj-inv-ink);--proj-linka:var(--proj-inv-linka);
  --proj-akcent:var(--proj-inv-akcent)}
@media (prefers-reduced-motion:reduce){
  .proj2-pas{transition:none}
}

/* Handicap u nalezeneho hrace - jde prepsat. Nabidka plyne ze STEJNE
   souteze, ne z cizi; kazda ho urcuje jinak (liga podle pohlavi a veku,
   senior z tabulky, devitka z vykonu). */
.nh-hdc-radek{display:inline-flex;align-items:center;gap:6px;
  font-size:12px;color:var(--muted);text-transform:uppercase;
  letter-spacing:.04em}
.nh-hdc-jeden{width:3.4em;text-align:center;font-variant-numeric:tabular-nums}

/* Odkaz na projektor v zapisu turnaje. Otevira se v novem okne, aby
   se zapisovateli nezavrel rozepsany list. */
.turnaj-projektor{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin:0 0 14px}


/* ---- ostatni ligy: zapis utkani ----

   Jeden hraci den je kazdy s kazdym, tedy pri sesti tymech patnact
   utkani - je to seznam malych zapisu, ne jedna velka tabulka. Kazdy
   ma hlavicku se skore a pod ni tri radky, v nichz stoji hrac proti
   svemu protejsku.

   Zrcadlova tabulka: vlevo domaci, vpravo hoste, uprostred dvojtecka.
   Jmena se proto zarovnavaji KAZDE JINAM - leve doleva, prave doprava -
   jinak by se stred rozjel. */
.liga-utkani { padding: 10px 0 14px; border-top: 1px solid var(--line); }
.liga-utkani:first-child { border-top: none; }

/* Hlavicka utkani je PRVNI RADEK tabulky, aby jmena tymu stala nad
   jmeny hracu a skore nad body. Jako samostatny odstavec se stredem
   nesedela na dvojtecku pod sebou a uskakovala doprava.

   Je vetsi nez radky pod ni - je to nadpis toho utkani. */
.liga-radky tr.liga-hlava td {
  font-family: var(--f-disp); font-weight: 700; font-size: 17px;
  padding-bottom: 7px;
}
.liga-radky tr.liga-hlava td.dim { font-weight: 400; }

.liga-radky { width: 100%; }
.liga-radky td { padding: 3px 6px; border: none; }
.liga-radky .jm { font-size: 14px; }
/* Leve jmeno doprava, prave doleva - obe miri ke stredu, kde je skore. */
.liga-radky tr > .jm:first-child { text-align: right; }
.liga-radky tr > .jm:last-child { text-align: left; }
.liga-radky .body { min-width: 2.2em; }
.liga-soucet td { padding-top: 6px; border-top: 1px solid var(--line); }


/* ---- nabidka "Ostatní ligy" v pasu ----

   Dve patra: soutez (ABL, SBL, Devítka družstev) a pod ni skupiny.
   Do pasu by se ty skupiny nevesly a ani tam nepatri - je jich hodne
   a meni se postupem a sestupem.

   Nabidka sama sdili vzhled s "Vzhled" (`.pas-nastaveni`), tady zbyva
   jen vnitrek: nadpis souteze a pod nim odsazeny seznam. */
.pas-ligy > summary[aria-current] { color: var(--ink); }
.pas-liga { margin: 0 0 4px; }
.pas-liga > summary {
  list-style: none; cursor: pointer;
  font-family: var(--f-disp); font-weight: 700; font-size: 14px;
  text-transform: uppercase; letter-spacing: .02em;
  color: var(--ink); padding: 4px 0;
}
.pas-liga > summary::-webkit-details-marker { display: none; }
/* SIPKA VPRAVO, ne "+/-" pred nazvem: pomlcka pred "3. liga" se
   cetla jako soucast nazvu (uzivatel 22. 9. 2026). */
.pas-liga > summary::after{content:" ▸";color:var(--faint);font-size:.8em}
.pas-liga[open] > summary::after{content:" ▾"}

.pas-skupiny { list-style: none; margin: 0 0 8px; padding: 0 0 0 14px; }
.pas-skupiny li { padding: 3px 0; }
.pas-skupiny a { font-size: 14px; color: var(--muted); text-decoration: none; }
.pas-skupiny a:hover { color: var(--ink); text-decoration: underline; }

/* Rada jednotlivych nahozu v zebricku ostatnich lig. Cisla musi stat
   pod sebou, aby se daly porovnat radky mezi sebou - proto tabulkove
   cislice a nezlomitelne mezery by rozbily zalomeni, takze radeji uzsi
   pismo a vlastni rozestup. */
.hry-rada{font-family:var(--f-mono);font-variant-numeric:tabular-nums;
  font-size:13px;color:var(--muted);white-space:nowrap;letter-spacing:.04em}

/* Nahozy po KOLECH: kazda skupina je jedno kolo a je od dalsi videt.
   Ctyri kola po peti hrach jsou dvacet cisel - v jedne rade se v nich
   neda nic najit. */
.hry-rada .hry-kolo{display:inline-block;margin-right:12px;white-space:nowrap}
.hry-rada .hry-kolo:last-child{margin-right:0}
.hry-rada .hry-cislo{font-style:normal;color:var(--faint);margin-right:4px}
/* Jedno misto v rade nahozu. Pevna sirka, aby kola stala pod sebou
   i tehdy, kdyz hrac v nekterem nehral - prazdne misto musi zustat
   prazdne, jinak to vypada, ze hral prvni kola po sobe. */
.hry-rada .hra1{display:inline-block;width:2.7em;text-align:right;font-style:normal}

/* ---- krizova tabulka ligy ----

   Matice dvanact krat dvanact. Prvni pokus mel sirokou tabulku `.poradi`
   s odsazenim 15 px na bunku, takze se jmena roztahla pres pul stranky
   a matice se zmackla u praveho okraje; k tomu bez mrizky, takze cisla
   vypadala rozsypana. Odtud pevne rozvrzeni, vlastni odsazeni a linky.

   `table-layout: fixed` je zamer: vsechny bunky maji TOTEZ sirku, at je
   v nich cokoli, takze sloupce stoji pod svym cislem v zahlavi. */
/* Celkovy nahoz pod skore v krizove tabulce - drobny a ztlumeny,
   je to doplnek ke skore, ne druhe skore. Vlastni radek, aby sloupce
   zustaly uzke. */
/* Vic zapasu v jedne bunce - ABL a SBL hraji kazdy s kazdym v kazdem
   hracim dni, takze po ctyrech dnech jsou v bunce ctyri skore pod
   sebou. Kazde si nese svou barvu vyhry/prohry. */
.kr-zapas{display:block;text-decoration:none}
.kr-zapas+.kr-zapas{margin-top:2px;padding-top:2px;
  border-top:1px solid var(--line)}
.kr-kuz{display:block;font-family:var(--f-mono);font-size:10.5px;
  color:var(--faint);letter-spacing:0;margin-top:1px}

.kriz { table-layout: fixed; width: 100%; border-collapse: collapse;
  font-variant-numeric: tabular-nums }
.kriz th, .kriz td {
  /* RADKY JSOU VYSSI, at se matice da cist po radku - zadal
     uzivatel 22. 9. 2026. */
  padding: 9px 2px; text-align: center; vertical-align: middle;
  /* MRIZKA MUSI BYT VIDET - `--line` je na bile karte tak jemna, ze
     v matici 132 bunek splyne a cisla vypadaji rozsypana (uzivatel
     22. 9. 2026). Proto `--line-solid`, tedy tataz linka, jakou maji
     ramecky karet. */
  border: 1px solid var(--line-solid);
}
/* Zahlavi a prvni dva sloupce jsou POPIS, ne data - jemne podbarveni
   je oddeli od matice, aniz by se do ni pridavala dalsi barva. */
.kriz thead th { background: var(--surface-2) }
.kriz tbody .kr-por, .kriz tbody .kr-tym { background: var(--surface-2) }
/* Prvni dva sloupce jsou popis radku, ne data - proto doleva a bez
   linek mezi sebou. */
.kriz col.kr-por { width: 2.4em }
.kriz col.kr-tym { width: 9.5em }
.kriz col.kr-bodysl { width: 3.2em }
.kriz .kr-por { text-align: right; color: var(--faint);
  font-family: var(--f-mono); font-size: 12px; border-right: none }
.kriz .kr-tym { text-align: left; white-space: nowrap; border-left: none;
  font-family: var(--f-disp); font-weight: 700; font-size: 14px;
  padding-left: 6px; padding-right: 10px }
.kriz .kr-tym a { color: inherit; text-decoration: none }
.kriz .kr-tym a:hover { color: var(--accent-ink) }

/* ZAHLAVI NESE NAZVY, a proto SVISLE: dvanact nazvu vedle sebe by
   tabulku roztahlo na trojnasobek sirky stranky. Tak to maji krizove
   tabulky i v tisku. Cisla tu byla a uzivatel je 22. 9. 2026 zamitl -
   parovat sloupec s radkem podle cisla je prace, kterou nikdo delat
   nechce. */
.kriz thead .kr-nazev { vertical-align: bottom; padding: 8px 2px 6px }
.kriz thead .kr-nazev span {
  writing-mode: vertical-rl; transform: rotate(180deg);
  font-family: var(--f-disp); font-weight: 700; font-size: 12px;
  letter-spacing: .04em; color: var(--muted); white-space: nowrap;
}

.kriz tbody td:not(.kr-por):not(.kr-tym) {
  font-family: var(--f-mono); font-size: 13px; white-space: nowrap;
}
.kriz tbody td a { color: inherit; text-decoration: none; display: block }
.kriz tbody td a:hover { text-decoration: underline }

/* Diagonala - druzstvo samo se sebou nehraje. */
.kriz .kr-sam { background: var(--line-solid) }
/* Jak to dopadlo, se pozna BARVOU: ve stene 132 cisel se jinak neda
   nic najit. */
.kriz .kr-vyhra { color: var(--zelena-ink); font-weight: 700 }
.kriz .kr-remiza { color: var(--ink) }
.kriz .kr-prohra { color: var(--faint) }

/* POSLEDNI SLOUPEC JSOU BODY a odděluje ho DVOJITA LINKA (uzivatel
   22. 9. 2026). Je to soucet toho radku, tedy jine cislo nez vysledky
   vedle nej - dvojita linka je na to zavedena znacka i v tiskovych
   tabulkach. */
.kriz .kr-body { border-left: 4px double var(--line-solid);
  font-family: var(--f-disp); font-weight: 700; font-size: 15px }
.kriz thead .kr-body span { font-size: 12px }

@media (max-width: 760px) {
  .kriz col.kr-tym { width: 6.5em }
  .kriz .kr-tym { font-size: 12px }
  .kriz tbody td:not(.kr-por):not(.kr-tym) { font-size: 11px }
}

/* NA TELEFONU SE MATICE SMACKLA TAK, AZ CISLA PRETEKLA PRES SOUSEDY.

   `table-layout:fixed` se `width:100%` deli sirku mezi vsechny
   sloupce, takze na 430px displeji vysel sloupec na 25 px - a protoze
   obsah ma `white-space:nowrap`, do bunky se nevesel a PRETEKL PRES
   SOUSEDNI. V matici pak stalo "354345029041" misto tri ruznych cisel
   a "8:08:0" misto dvou skore. Nahlasil uzivatel 1. 10. 2026.

   Neni to tedy "tesne", je to necitelne - a zadny stavovy kod ani
   prochazeni webu to nechyti, tabulka vrati 200 jako kazda jina. */
@media (max-width: 620px) {
  /* 1) NAHOZ V BUNCE USTOUPI. Je to doplnek ke skore, ne druhe skore
        (uzivatel 24. 9. 2026), a je to jedine, co bunku roztahuje:
        "3543:3029" je devet znaku proti trem u "8:0". Neztrati se -
        zustava v popisku pod prstem i na zapisovem listu, kam bunka
        vede. */
  .kriz .kr-kuz { display: none }

  /* 2) MATICE SE PRESTANE SMACKAVAT. Radsi se roluje do strany, nez
        aby se cisla prekryvala; obal `.scroll` kolem tabulky uz je
        a chova se tak kazda jina siroka tabulka na webu.

        Cislo je spocitane, ne odhadnute: dvanact sloupcu po 28 px
        (tri znaky mono na 11 px plus odsazeni a linky) a k tomu
        popisne sloupce - poradi 2,4em, druzstvo 6,5em, body 3,2em. */
  .kriz { min-width: 575px }

  /* 3) DLOUHE JMENO DRUZSTVA SE NESMI ROZLIT PRES MATICI. Sloupec je
        `white-space:nowrap`, takze "PIRÁTI Z JADRANU" z ABL pretekal
        o 17 px do prvniho sloupce vysledku. Sirka se proto zvedla
        a `overflow:hidden` je pojistka pro jmeno, ktere by bylo
        jeste delsi - radsi vypustka nez cizi bunka pres pul matice.

        Jmeno se tim neztrati: popisek je nad nim a u Frydecke ligy
        vede bunka na stranku druzstva. */
  .kriz col.kr-tym { width: 9.6em }
  .kriz .kr-tym { overflow: hidden; text-overflow: ellipsis }
}

/* Puvod skupiny prevzate ligy - mesto, odkud se prestehovala.
   Drobne a ztlumene za nazvem: je to dovetek, ne dalsi nazev. */
.sk-puvod{font-size:.72em;font-weight:400;color:var(--faint);
  margin-left:.4em;text-transform:none;letter-spacing:.02em;
  vertical-align:.25em}

/* Zkratka souteze pred nazvem skupiny ("ABL 3. liga Frýdek-Místek C").
   Bez ni nebylo v hlavicce poznat, ktera soutez to vlastne je - v pasu
   je schovana pod rozbalovaci nabidkou. */
.lg-soutez{color:var(--accent-ink);text-decoration:none}
.lg-soutez:hover{text-decoration:underline}
/* Prepinac skupin nema prerust nadpis - text v nem je zkraceny. */
.top .znacka select.sezona{max-width:15em}
/* Seznam skupin bez mezipatra (soutez ma jedinou uroven, treba SBL). */
.pas-nabidka .pas-skupiny-same{padding-left:0}

/* Odkaz na projektor v zahlavi hraciho dne (seznam zapisu ve sprave).
   Tichy jako zamek vedle nej - je to sluzebni vchod k televizi, ne
   dalsi akce zapisu. */
.zap-projektor{font-size:12.5px;color:var(--faint);text-decoration:none;
  border-bottom:1px dotted var(--line-solid);margin-left:10px}
.zap-projektor:hover{color:var(--ink)}

/* TRI ZAPASY V KOLE. Ligove kolo ma devet radku, ale hraje se po
   TROJICICH - tri drahy naraz a pak se sestava posune. Bez predelu
   splynou do jednoho sloupce (uzivatel 28. 9. 2026: "aby bylo videt,
   ze to jsou 3 zapasy").

   TYZ JAZYK JAKO ZAPISOVY LIST NA WEBU: pulradkova mezera a tenka
   linka. Tloustka i mezera v nasobcich pisma, at rostou s nim -
   v pixelech by pri 60px pismu nebyla linka videt. */
.proj-radek.pr-grp{margin-top:calc(var(--proj-pismo)*.38);
  border-top:.035em solid var(--proj-linka);
  padding-top:calc(var(--proj-pismo)*.12)}

/* Kdy se zapas hraje - datum a cas v prehledu ligoveho hraciho dne.
   Zleva, ne na stred: je to prvni sloupec a oko po nem jede dolu. */
.p-kdy{text-align:left;font-size:.78em}

/* Rozehrany hraci den prevzate ligy (_ligy_zive.html) */
.liga-zive .karta+.karta{margin-top:12px}
.liga-zive-dalsi{padding:12px 16px}
.liga-zive-dalsi p{margin:0 0 4px}
.liga-zive-dalsi ul{list-style:none;margin:0 0 10px;padding:0;
  display:flex;flex-wrap:wrap;gap:4px 22px}
.liga-zive-dalsi ul:last-child{margin-bottom:0}
.liga-zive-hraci td small{font-size:.75em;margin-left:2px}
.liga-zive-hraci tr.liga-zive-tym td{border-top:1px solid var(--line-solid)}
.liga-zive-hraci tbody tr:first-child td{border-top:none}
/* rozehrany den v prepinaci dnu - tecka, ze se prave hraje */
.dny .den-zive::after{content:"●";color:var(--accent);font-size:.7em;
  margin-left:4px;vertical-align:.15em}

/* ===== /mobil a /soukromi - aplikace v obchodech (12. 10. 2026) ===== */
.mob-uvod,.sou-text{max-width:var(--vzk-sirka)}
.sou-text,.mob-obchod{padding:16px 22px}
.mob-obchody{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:14px;max-width:var(--vzk-sirka);margin:14px 0}
.mob-obchod{text-align:center;margin:0}
.mob-tvuj{border-color:var(--accent)}
.mob-tlacitko{display:inline-block;margin:4px 0 12px}
.mob-qr{width:168px;margin:0 auto;color:var(--ink)}
.mob-qr svg{display:block;width:100%;height:auto}
.mob-pozn{margin:8px 0 0;font-size:13px;color:var(--faint)}
.mob-pripravujeme{margin:0 0 10px;color:var(--faint)}
.mob-odkaz{color:inherit;text-decoration:underline dotted}
.mob-odkaz:hover{color:var(--accent)}
.sou-text ul{padding-left:1.3em;line-height:1.6}
