/* Společná hlavička webu podle vizuálního stylu ČZU: oficiální značka ČZU | Rozvrhový plánovač (stejně jako „ČZU | Knihovna“),
   název v systémovém písmu tučně (varianta, kterou autor vybral), pod značkou řádek stránky. Fotka fakulty v pozadí je jemně rozmazaná jako na úvodu.
   Načítá se až po stylech stránky, takže platí všude stejně. Barvy mají zálohu pro stránky bez vlastních proměnných. */

header.top{
  position:relative; overflow:hidden; isolation:isolate;
  background:var(--bg,#171512); border-bottom:3px solid var(--red,#d80000);      /* barva pozadí stránky: Safari v iOS 26 podle ní barví pruh pod stavovým řádkem (theme-color nebere) */
}
header.top::before{
  content:""; position:absolute; inset:-6px; z-index:-2;
  background:url("/img/hub-hero.jpg") 50% 45%/cover no-repeat;
  filter:blur(var(--hero-blur,1px)) saturate(.9);
}
header.top::after{   /* ztmavení: nahoře fotka plynule vystoupí z pruhu stavového řádku (stejná barva jako pozadí stránky), dole splývá s pozadím */
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, var(--bg,#171512) 0, transparent 30px),
    linear-gradient(180deg, rgba(23,21,18,.78) 0%, rgba(23,21,18,1) 100%);
}
header.top .top-inner{
  max-width:1180px; margin:0 auto; padding:16px 16px 14px;
  display:flex; align-items:center; flex-wrap:wrap; gap:10px 12px;
}

/* ---------- značka: ČZU | Rozvrhový plánovač ---------- */
header.top .brand{
  display:flex; align-items:center; gap:14px; margin-right:auto; min-width:0;
  text-decoration:none; color:var(--red,#d80000); border-radius:8px;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.85));      /* červená se jinak ztrácí na fasádě */
}
header.top .brand:hover{opacity:.9;}
header.top .brand:focus-visible{outline:2px solid #fff; outline-offset:4px;}
header.top .brand-mark{position:relative; display:block; flex-shrink:0;}
header.top .brand-mark img{display:block; height:44px; width:auto;}
header.top .brand-bar{display:block; width:2px; height:44px; background:currentColor; border-radius:1px; flex-shrink:0;}
header.top .brand-name{
  margin:0; font:800 1.6rem/1.05 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  letter-spacing:-.01em; color:inherit; white-space:nowrap;
}
/* sezónní ozdoba loga: emoji vlevo nahoře a vpravo dole (jako má PEF na Instagramu). Která sezóna, určuje js/season.js podle volby v adminu */
header.top .season{display:none; position:absolute; line-height:1; filter:none; pointer-events:none;}
header.top .season-a{left:-9px; top:-9px; font-size:22px;}
header.top .season-b{right:-10px; bottom:-8px; font-size:24px;}
html[data-season="podzim"] header.top .season, html[data-season="zima"] header.top .season, html[data-season="vanoce"] header.top .season, html[data-season="jaro"] header.top .season, html[data-season="leto"] header.top .season{display:block;}
html[data-season="podzim"] header.top .season-a::before{content:"🕸️";} html[data-season="podzim"] header.top .season-b::before{content:"🎃";}
html[data-season="zima"] header.top .season-a::before{content:"❄️";} html[data-season="zima"] header.top .season-b::before{content:"⛄";}
html[data-season="vanoce"] header.top .season-a::before{content:"⭐";} html[data-season="vanoce"] header.top .season-b::before{content:"🎄";}      /* Vánoce 20.–31. 12.: zimní logo + hvězda a stromeček */
html[data-season="jaro"] header.top .season-a::before{content:"🌸";} html[data-season="jaro"] header.top .season-b::before{content:"🐣";}
html[data-season="leto"] header.top .season-a::before{content:"☀️";} html[data-season="leto"] header.top .season-b::before{content:"🍉";}
/* zima: logo „zamrzá“: na písmenech jemná ledová námraza (jen na jejich tvaru, maska logem), pod spodní hranou C, Z a U rampouchy */
html:is([data-season="zima"],[data-season="vanoce"]) header.top .brand-mark img{filter:drop-shadow(0 0 3px rgba(150,210,245,.55));}
html:is([data-season="zima"],[data-season="vanoce"]) header.top .brand-mark::before{content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,rgba(236,249,255,.6) 0%,rgba(236,249,255,0) 20%),linear-gradient(0deg,rgba(214,241,255,.75) 0%,rgba(214,241,255,0) 28%);
  -webkit-mask:url(/img/logo-czu.png) center/100% 100% no-repeat; mask:url(/img/logo-czu.png) center/100% 100% no-repeat;}
html:is([data-season="zima"],[data-season="vanoce"]) header.top .brand-mark::after{content:""; position:absolute; left:0; width:100%; top:calc(100% - 4%); height:34%; pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 568 100%22%3E%3Cdefs%3E%3ClinearGradient id=%22g%22 x1=%220%22 y1=%220%22 x2=%220%22 y2=%221%22%3E%3Cstop offset=%220%22 stop-color=%22%23ffffff%22/%3E%3Cstop offset=%22.35%22 stop-color=%22%23e2f5ff%22/%3E%3Cstop offset=%221%22 stop-color=%22%237fc8f2%22 stop-opacity=%22.8%22/%3E%3C/linearGradient%3E%3ClinearGradient id=%22b%22 x1=%220%22 y1=%220%22 x2=%220%22 y2=%221%22%3E%3Cstop offset=%220%22 stop-color=%22%23ffffff%22/%3E%3Cstop offset=%221%22 stop-color=%22%23d4f0ff%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d=%22M34 0 H174 Q178 0 178 6 Q170 13 163 8 Q157 16 151 11 Q143 13 135 9 Q130 13 125 11 Q120 13 114 8 Q105 14 96 8 Q90 17 85 11 Q78 13 70 9 Q65 13 60 9 Q51 15 42 11 Q36 14 30 8 Q30 6 34 0Z%22 fill=%22url(%23b)%22/%3E%3Cpath d=%22M29 8 C32.3 18.4 38.2 36.8 40.2 46 C42.2 36.8 47.7 18.4 51 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M36.1 12 Q38.4 25.3 39.7 39.1%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M62 8 C64.4 12.0 68.3 24.0 70.3 30 C72.3 24.0 75.6 12.0 78 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M67.2 12 Q68.8 16.5 69.8 25.5%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M89 8 C91.4 18.4 93.4 36.8 95.4 46 C97.4 36.8 102.6 18.4 105 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M94.2 12 Q95.8 25.3 94.9 39.1%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M118 8 C120.1 28.0 121.2 56.0 123.2 70 C125.2 56.0 129.9 28.0 132 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M122.5 12 Q124.0 38.5 122.7 59.5%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M134 8 C137.0 33.6 142.1 67.2 144.1 84 C146.1 67.2 151.0 33.6 154 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M140.5 12 Q142.5 46.2 143.6 71.4%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M158 8 C161.0 28.0 167.7 56.0 169.7 70 C171.7 56.0 175.0 28.0 178 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M164.5 12 Q166.5 38.5 169.2 59.5%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M169 0 H331 Q335 0 335 6 Q328 17 321 11 Q314 14 308 10 Q302 14 296 11 Q290 16 283 8 Q278 18 272 8 Q265 17 258 10 Q249 15 240 10 Q232 17 223 11 Q216 17 208 11 Q200 13 191 8 Q184 15 177 11 Q172 18 166 8 Q166 13 165 10 Q165 6 169 0Z%22 fill=%22url(%23b)%22/%3E%3Cpath d=%22M163 8 C166.6 28.0 175.0 56.0 177.0 70 C179.0 56.0 183.4 28.0 187 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M170.8 12 Q173.2 38.5 176.5 59.5%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M194 8 C196.7 33.6 200.5 67.2 202.5 84 C204.5 67.2 209.3 33.6 212 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M199.8 12 Q201.7 46.2 202.0 71.4%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M222 8 C224.7 12.0 230.8 24.0 232.8 30 C234.8 24.0 237.3 12.0 240 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M227.8 12 Q229.7 16.5 232.3 25.5%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M246 8 C248.4 28.0 250.5 56.0 252.5 70 C254.5 56.0 259.6 28.0 262 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M251.2 12 Q252.8 38.5 252.0 59.5%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M263 8 C265.4 38.4 268.1 76.8 270.1 96 C272.1 76.8 276.6 38.4 279 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M268.2 12 Q269.8 52.8 269.6 81.6%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M291 8 C293.4 23.2 296.6 46.4 298.6 58 C300.6 46.4 304.6 23.2 307 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M296.2 12 Q297.8 31.9 298.1 49.3%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M316 8 C318.1 15.2 320.8 30.4 322.8 38 C324.8 30.4 327.9 15.2 330 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M320.6 12 Q321.9 20.9 322.3 32.3%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M414 0 H558 Q562 0 562 6 Q555 14 548 9 Q542 14 536 9 Q528 13 520 11 Q511 17 502 9 Q495 15 488 10 Q480 13 472 9 Q464 16 457 10 Q449 17 441 10 Q434 14 428 8 Q422 16 416 11 Q413 16 410 11 Q410 6 414 0Z%22 fill=%22url(%23b)%22/%3E%3Cpath d=%22M410 8 C413.0 12.0 417.9 24.0 419.9 30 C421.9 24.0 427.0 12.0 430 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M416.5 12 Q418.5 16.5 419.4 25.5%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M438 8 C440.1 15.2 441.3 30.4 443.3 38 C445.3 30.4 449.9 15.2 452 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M442.6 12 Q443.9 20.9 442.8 32.3%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M454 8 C457.0 15.2 460.4 30.4 462.4 38 C464.4 30.4 471.0 15.2 474 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M460.5 12 Q462.5 20.9 461.9 32.3%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M485 8 C487.1 12.0 488.0 24.0 490.0 30 C492.0 24.0 496.9 12.0 499 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M489.6 12 Q490.9 16.5 489.5 25.5%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M499 8 C502.3 12.0 509.8 24.0 511.8 30 C513.8 24.0 517.7 12.0 521 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M506.1 12 Q508.4 16.5 511.3 25.5%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3Cpath d=%22M532 8 C534.1 12.0 538.5 24.0 540.5 30 C542.5 24.0 543.9 12.0 546 8Z%22 fill=%22url(%23g)%22/%3E%3Cpath d=%22M536.5 12 Q538.0 16.5 540.0 25.5%22 stroke=%22%23fff%22 stroke-width=%222%22 stroke-linecap=%22round%22 fill=%22none%22 opacity=%22.9%22/%3E%3C/svg%3E") 0 0/100% 100% no-repeat; filter:drop-shadow(0 1px 1px rgba(60,120,170,.35));}

/* ---------- řádek stránky pod značkou ---------- */
header.top .top-text{flex:1 1 100%; display:flex; align-items:center; gap:10px 12px; flex-wrap:wrap; min-width:0;}
header.top .top-title{min-width:0;}
header.top .top-text h1{margin:0; font-size:1.15rem; line-height:1.25; font-weight:800; letter-spacing:-.01em; color:#fff;}
header.top .top-text p{margin:2px 0 0; color:#d9d0c4; font-size:.85rem;}
header.top .top-text p.obor{font-weight:600; color:#ff7a6e;}      /* světlejší červená: malý text na fotce musí mít kontrast aspoň 4,5 : 1 */
header.top .top-text p[hidden]{display:none;}
header.top .gen-stamp{margin-left:auto;}
header.top .help-reopen{flex-shrink:0;}
/* 🏠 Úvod: na podstránkách jasná cesta zpět na výběr oboru (logo jako odkaz nikdo nehledá) */
header.top .home-btn{display:inline-flex; align-items:center; gap:6px; flex-shrink:0; height:38px; padding:0 14px; border-radius:999px; border:1px solid rgba(255,255,255,.28); background:rgba(23,21,18,.65); color:#fff; font:700 .86rem/1 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; text-decoration:none;}
header.top .home-btn:hover{border-color:var(--red,#d80000);}
header.top .home-btn:focus-visible{outline:2px solid #fff; outline-offset:2px;}

/* appky oborů: 🏠 Úvod v řádku s názvem oboru vpravo (vedle značky by se s 📲 a ? mačkal) */
header.top .top-text .home-btn{margin-left:auto;}
header.top .top-text:has(.home-btn) .gen-stamp{margin-left:0;}
/* telefon: značka menší, 📲 a ? zůstávají vedle ní, řádek stránky pod tím */
@media (max-width:600px){
  header.top .top-inner{padding:12px 14px 12px; gap:8px;}
  header.top .brand{gap:8px;}
  header.top .help-reopen{width:38px; height:38px;}      /* ať se 📲 a ? vejdou vedle značky */
  header.top .home-btn{padding:0 11px;}
  header.top .brand-mark img{height:34px;}
  header.top .brand-bar{height:34px;}
  header.top .brand-name{font-size:1.15rem;}
  header.top .season-a{left:-7px; top:-7px; font-size:17px;}
  header.top .season-b{right:-8px; bottom:-6px; font-size:18px;}
  header.top .top-text h1{font-size:1.05rem;}
}
@media (max-width:360px){ header.top .brand-name{font-size:1.08rem;} }

/* obrázek rozvrhu (Stáhnout PNG) fotku nepotřebuje: knihovna pro snímek rozostření neumí */
.export-shot header.top::before, .export-shot header.top::after{display:none;}
.export-shot header.top .brand{filter:none;}

/* ---------- společná patička (stejná pravidla mají i starší stránky ve vlastním stylu) ---------- */
.site-footer{margin:44px auto 0; padding:26px 16px 34px; border-top:1px solid var(--border,#3a352d); text-align:center; max-width:560px;}
.sf-brand{font-size:1.02rem; font-weight:800; letter-spacing:.01em; color:var(--ink,#f2ede6);}
.sf-brand b{color:#d80000;}      /* sytá červená jako logo ČZU, i v tmavém vzhledu */
.sf-tag{font-size:.82rem; color:var(--ink-soft,#c2b9ac); margin-top:2px;}
.sf-links{display:grid; grid-template-columns:1fr 1fr; gap:10px; max-width:420px; margin:16px auto 14px;}
.sf-links > :last-child:nth-child(odd){grid-column:1 / -1;}
.sf-pill{display:flex; justify-content:center; align-items:center; gap:6px; min-height:44px; padding:9px 15px; border-radius:999px; border:1px solid var(--border,#3a352d); background:var(--surface-2,#2a2621); color:var(--ink,#f2ede6); font:700 .84rem/1.2 inherit; font-family:inherit; text-decoration:none; cursor:pointer;}
.sf-pill:hover{border-color:var(--red,#d80000); color:var(--red-text,#ff7a6e);}
.sf-note{font-size:.72rem; line-height:1.55; color:var(--ink-soft,#c2b9ac); opacity:.85; max-width:420px; margin:0 auto;}
.sf-note a{color:inherit; text-decoration:underline; text-underline-offset:2px;}
/* telefon: vedle značky se vejde jen domeček bez textu (jinak spadne na další řádek) */
@media (max-width:420px){ header.top .home-btn:not(.top-text .home-btn) .home-tx{display:none;} header.top .home-btn:not(.top-text .home-btn){width:38px; padding:0; justify-content:center; font-size:1rem;} }
/* appky oborů (📲 a ?) a admin (🌐 a 🚪) mají vedle značky víc tlačítek: značka a tlačítka o kousek menší, ať jsou všechna tři v jednom řádku */
@media (max-width:420px){ header.top .top-inner:is(:has(.help-reopen), :has(.home-btn ~ .home-btn)){gap:8px 6px; padding-left:12px; padding-right:12px;} header.top .top-inner:is(:has(.help-reopen), :has(.home-btn ~ .home-btn)) .brand{gap:6px;} header.top .top-inner:is(:has(.help-reopen), :has(.home-btn ~ .home-btn)) .brand-name{font-size:.92rem;} header.top .top-inner:is(:has(.help-reopen), :has(.home-btn ~ .home-btn)) .brand-mark img, header.top .top-inner:is(:has(.help-reopen), :has(.home-btn ~ .home-btn)) .brand-bar{height:28px;} header.top .top-inner:is(:has(.help-reopen), :has(.home-btn ~ .home-btn)) .help-reopen, header.top .top-inner:is(:has(.help-reopen), :has(.home-btn ~ .home-btn)) .home-btn{width:34px; height:34px;} }
/* 🏠 Úvod v řádku s názvem oboru má místo i na telefonu: s textem, ne jen domeček */
@media (max-width:420px){ header.top .top-inner .top-text a.home-btn.home-btn{width:auto; height:34px; padding:0 11px; font-size:.82rem;} }
