/* nav-shared.css — spoločné pravidlá pre sticky hlavičku, plávajúci pás a rozbaľovacie menu
   naprieč všetkými verziami slovanista.sk. Iba mechanika (position/z-index/display) —
   farby, fonty a rozmery si dopĺňa štýl každej verzie zvlášť, nižšie v cascade.
   Načítať PRED vlastným style.css danej verzie. */

/* Hlavička je vycentrovaná (max-width;margin:0 auto) — bez tohto by sa na krátkych
   podstránkach bez zvislého scrollu (Kader/Klub/...) posunula o šírku scrollbaru
   doprava oproti dlhým podstránkam (Domov/Články/Zápasy), ktoré scroll majú.
   overflow-y:scroll vynúti rovnaký scrollbar-gutter vždy, nech je obsah akokoľvek dlhý. */
html{overflow-y:scroll}

.lepive{position:sticky;top:0;z-index:40}

/* #pas (úzky pás "najbližší zápas") je na Domove predtým bol position:fixed (mimo toku),
   aby jeho objavením neposkočil obsah pod ním o jeho výšku — lenže to znamenalo, že
   ako "plávajúce" zostával navrchu TRVALO, po zvyšok rolovania, a prekrýval čokoľvek sa
   práve nachádzalo pod ním pri hlbšom scrolle (napr. riadky "Nadchádzajúce zápasy" sa
   vizuálne "presekli" — hore skryté pod pásom, dole vyčnievajúce spod neho, čo vyzeralo
   ako presvitajúci text). #pas teraz namiesto toho ostáva VŽDY súčasťou toku vnútri
   sticky .lepive (app.js ho už neprepína cez position:fixed) — jeho objavenie tak
   natrvalo odsunie všetok obsah pod ním nadol, nech je scrollY akékoľvek. "Žiadny skok
   pri objavení" (pôvodný zámer position:fixed) rieši namiesto toho plynulá výšková
   animácia: .zbalitelny (len na Domove, app.js) drží #pas zbalený na nulovú výšku,
   kým ho sledujPas() (app.js, podľa IntersectionObserver na hero paneli) plynulo
   neroztiahne. Cieľová výška NIE je pevné číslo tu v CSS — obsah pásu sa môže
   zalomiť na 1 aj 2-3 riadky podľa témy/šírky obrazovky (napr. Modern na mobile),
   pevná hodnota by ho buď orezala, alebo zbytočne naťahovala animáciu — sledujPas()
   preto pred odhalením zmeria skutočnú pas.scrollHeight a nastaví max-height inline,
   presne na mieru aktuálneho (aj zalomeného) obsahu. */
.pas.zbalitelny{overflow:hidden;max-height:0;transition:max-height .22s ease}

/* #pas má na Domove DVE nezávislé, vždy obe vykreslené štruktúry (rovnaký vzor ako
   #mobDomov vs. <nav> vyššie): pôvodný jednoriadkový .obal/.obal-p (erb/súťaž/tímy/
   dátum/odpočet v jednom rade — na mobile sa 4-5 kusov obsahu do 1 riadku nezmestí
   rovnako naprieč piatimi témami rôzne štýlovaným obsahom) a nový .pas-mob, len pre
   mobil: riadok 1 = erb+názov domáceho tímu vľavo, súťaž/kolo vpravo; riadok 2 =
   erb+názov hosťujúceho tímu vľavo, dátum+čas vpravo. Bez odpočtu (ten ostáva len
   v desktop .obal/.obal-p verzii). Mechanika (rozloženie/veľkosti) je tu spoločná,
   farby dopĺňa style.css každej témy — .pas samo osebe už má nastavenú farbu textu,
   .pas-mob-sut/.pas-mob-kedy len mierne stlmené oproti nej (opacity). */
/* .pas-mob je (na rozdiel od .obal/.obal-p) priamym dieťaťom #pas bez centrovacieho
   obalu — vlastný padding tu je preto nutný, inak obsah lepí na samý okraj obrazovky. */
.pas-mob{display:none;padding:8px 20px}
.pas-mob-riadok{display:flex;align-items:center;gap:8px;min-width:0}
.pas-mob-riadok+.pas-mob-riadok{margin-top:4px}
.pas-mob-tim{display:flex;align-items:center;gap:7px;min-width:0;overflow:hidden}
.pas-mob-tim b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
.pas-mob-erb{width:22px;height:22px;object-fit:contain;flex:none}
.pas-mob-sut,.pas-mob-kedy{margin-left:auto;flex:none;white-space:nowrap;opacity:.75}
@media (max-width:900px){
  /* #pas ID selektor (nie .pas trieda) — root_style.css má NEPODMIENENÉ (mimo media query)
     .pas .obal{display:flex}, ktoré by pri rovnakej špecifickosti a neskoršom poradí v
     cascade prebilo toto pravidlo (rovnaký jav ako pri nav{display:none} vyššie). ID
     selektor má vyššiu špecifickosť než dve triedy, vyhrá bez ohľadu na poradie. */
  #pas .obal,#pas .obal-p{display:none}
  .pas-mob{display:block}
}

.verzie-menu{position:relative}
.verzie-list{position:absolute;z-index:50}
.verzie-list[hidden]{display:none}

/* Všetky tri zoznamy (#verzieList/Téma, #jazykList/Jazyk, #mobDomovList/Domov) zdieľajú
   .verzie-list z farebného style.css danej témy — vrátane jeho min-width:170px, čo bolo
   odmerané pre Témine najdlhšie položky ("Official"). Jazyk (SK/EN/...) aj Domov
   majú kratší vlastný obsah, ale zdedia rovnakú pevnú šírku. ID selektor tu má vyššiu
   špecifickosť než trieda .verzie-list bez ohľadu na poradie v cascade, takže prebije
   min-width zo všetkých 5 style.css naraz.
   width:max-content (nie len min-width:0/auto) — zoznam je position:absolute, jeho
   "shrink-to-fit" auto-šírka sa počíta z DOSTUPNEJ šírky pozičného predka (.verzie-menu,
   čiže šírky samotného tlačidla "Téma ▾"/"SK ▾", po zúžení tlačidiel len ~65px), NIE
   z vlastného obsahu zoznamu — pri auto/min-width:0 by sa tak "Official"
   nezmestilo do šírky tlačidla a zalomilo by sa na viac riadkov. max-content obchádza
   tento výpočet a berie šírku čisto z najdlhšieho vlastného riadku (right:0 drží pravý
   okraj pri tlačidle, mení sa iba ľavý). */
#verzieList,#jazykList,#mobDomovList{width:max-content;min-width:0}

/* Spojené tlačidlá Téma+Jazyk (a na mobile aj Domov, pozri nižšie) sa prekrývajú o 1px,
   aby mali spoločnú hranicu bez medzery — to ale znamená, že hranica na dotykovej strane
   patrí vizuálne tomu, čo je na nej NAVRCHU v poradí v DOM-e, takže pri hoveri na tlačidlo,
   ktoré je "pod" susedom, jeho zvýraznená farba na tej strane nie je vidno (prekrytá
   susedovou predvolenou hranicou). position:relative + z-index pri hoveri vytiahne
   práve hoverované tlačidlo navrch, nech je v DOM poradí kdekoľvek — vtedy je jeho
   zvýraznená hranica vidno kompletne dookola. */
#bverzie,#blang,#mobDomov{position:relative}
#bverzie:hover,#blang:hover,#mobDomov:hover{z-index:2}

/* Téma aj Jazyk (SK) vpravo hore sú bez šípky — na rozdiel od #mobDomov (mobilné zbalené
   menu stránok), kde šípka signalizuje rozbaľovací zoznam, tieto dva sú prepínače a čisto
   vizuálne fungujú aj bez nej. Skrýva sa cez CSS (nie vynechaním v JS) — .menu-sipka sa
   pridáva rovnako pre všetky tri tlačidlá zdieľaným kódom v i18n.js/nav-shared.js. */
#bverzie .menu-sipka,#blang .menu-sipka{display:none}

/* #mobDomov (samostatné mobilné tlačidlo "Domov", i18n.js) je nad 900px vždy skryté —
   desktop má plnohodnotný vodorovný <nav> namiesto neho. */
.mob-domov-menu{display:none}

.chips{display:none;flex-wrap:wrap}
.chips.open{display:flex}

/* Pri prechode z veľkého panelu na malú listu na Domove sa panel jemne stmaví. */
#matchday{transition:opacity .22s ease}
#matchday.mizne{opacity:0;pointer-events:none}

/* Mobilné menu (pod 900px): namiesto naťahovania JEDNÉHO zdieľaného <nav> cez dva úplne
   odlišné vzhľady (vodorovný bar vs. zbalené tlačidlo) — čo sa v praxi ukázalo krehké
   naprieč piatimi témami (rôzne vnorenie, rôzne CSS vlastnosti dedené/nededené na
   <button> vs. iné elementy) — má mobil VLASTNÉ, úplne samostatné tlačidlo #mobDomov
   s vlastným zoznamom #mobDomovList (i18n.js), nezávislé od <nav>. <nav> (plnohodnotný
   vodorovný bar) sa na mobile jednoducho skryje, nič iné sa s ním nedeje — a #mobDomov
   je od začiatku obyčajné tlačidlo s rovnakou triedou ako #bverzie/#blang, takže má ich
   vzhľad/veľkosť prirodzene, bez JS synchronizovania výšky/šírky. */
@media (max-width:900px){
  header{position:relative}
  /* !important — niektoré témy stylujú nav cez .nav (triedu), ktorá má vyššiu
     špecifickosť než holý tag selektor nav, a vyhrala by nad týmto pravidlom bez ohľadu
     na poradie v cascade. */
  nav{display:none!important}
  .mob-domov-menu{display:block}
  /* #mobDomov (tretí segment spojeného pásu) žije v .verzie-menu-group vedľa Témy/Jazyka
     (i18n.js) — tá skupina potrebuje na mobile margin-left:auto namiesto pôvodného
     nav-ovho (nav je teraz display:none, takže jeho vlastný margin-left:auto stratil
     efekt aj pre svojich pôvodných súrodencov, ktorí sa naň spoliehali). */
  .verzie-menu-group{margin-left:auto}
}

/* Na najužších telefónoch (~360px a menej) sa spojený pás Domov▾+Téma▾+Jazyk▾ vedľa loga
   nezmestí v pôvodnej veľkosti — zmenšíme písmo/odsadenie len tomuto pásu (nie zvyšku
   mobilnej navigácie). Id-selektory majú dosť špecifickosti, aby prebili font-size/padding
   z farebného style.css danej témy. Rozbalený zoznam stránok necháva pôvodnú veľkosť
   pre lepšiu čitateľnosť/klikateľnosť. */
@media (max-width:400px){
  #mobDomov,#bverzie,#blang{font-size:12px;padding:5px 7px}
}
