/* ============================================================
   Informačná tabuľa – vzhľad
   Všetky farby idú cez premenné, aby sa téma a akcent dali
   prepnúť z konfigurácie bez zásahu do kódu.
   ============================================================ */

*{box-sizing:border-box;margin:0;padding:0}
/* na tabuli sa kurzor nemá čo zjaviť – kompozitor ho kreslí aj bez myši */
html,body,*{cursor:none !important}
html,body{height:100%;overflow:hidden;background:#000}
body{font-family:"Inter","Segoe UI",system-ui,-apple-system,sans-serif}

/* ---------- téma ---------- */
.board{
  --bg:#0c141e; --panel:#16212f; --panel2:#1b2836; --line:rgba(255,255,255,.09);
  --ink:#f3f7fb; --dim:#8fa3b8;
  --good:#3ddc97; --goodBg:rgba(61,220,151,.12); --goodLine:rgba(61,220,151,.30);
  --bad:#ff6b6b; --badBg:rgba(255,107,107,.12); --badLine:rgba(255,107,107,.32);
  --off:#3a4a5c; --dotOff:#3a4a5c;
  --headGrad:linear-gradient(90deg,#16212f 0%,#16212f 62%,#132131 100%);
  --partnerGrad:linear-gradient(140deg,#1d3550,#16212f);
  --promoGrad:linear-gradient(135deg,#12303f 0%,#1c4c4a 45%,#2f6b4a 100%);
  --promoInk:#fff; --promoDim:#d7e6de;
  --accent:#f0b429; --onAccent:#241a03;
  --accentInk:var(--accent);
  --accentBg:color-mix(in srgb,var(--accent) 14%,transparent);
  --accentLine:color-mix(in srgb,var(--accent) 34%,transparent);
  --brand:#37a06d;
  --t-huge:124px; --t-xl:60px; --t-lg:42px; --t-md:31px; --t-sm:25px; --t-xs:20px;
  --pad:26px; --gap:18px; --radius:18px;
  --logo:52px; --logoR:14px; --hname:var(--t-lg);
}
.board.t-light{
  --bg:#e9eef4; --panel:#fff; --panel2:#f1f5f9; --line:rgba(16,32,48,.11);
  --ink:#0f1f2e; --dim:#5c7488;
  --good:#0f9a66; --goodBg:rgba(15,154,102,.10); --goodLine:rgba(15,154,102,.28);
  --bad:#c9403c; --badBg:rgba(201,64,60,.10); --badLine:rgba(201,64,60,.3);
  --off:#c9d5df; --dotOff:#c1cedb;
  --headGrad:linear-gradient(90deg,#fff 0%,#fff 62%,#f3f7fb 100%);
  --partnerGrad:linear-gradient(140deg,#e8f0f8,#fff);
  --promoGrad:linear-gradient(135deg,#dff0ea 0%,#eaf3ec 45%,#f7f3e4 100%);
  --promoInk:#0f2a22; --promoDim:#3f5b52;
  --accentInk:color-mix(in srgb,var(--accent) 62%,#231400);
  --accentBg:color-mix(in srgb,var(--accent) 16%,transparent);
  --accentLine:color-mix(in srgb,var(--accent) 42%,transparent);
}

/* ---------- branding ---------- */
.board.b-vyrazny{--logo:80px; --logoR:20px; --hname:var(--t-xl)}
.board.b-vyrazny .head{
  background:linear-gradient(90deg,var(--accentBg) 0%,transparent 46%),var(--headGrad);
  border-left:10px solid var(--accent);
}
.board.b-vyrazny .hsub{color:var(--accentInk);font-weight:600}
.board.b-vyrazny .th .ico{color:var(--accentInk)}
.board.b-vyrazny .foot .hotel{display:flex}

/* ---------- profil zariadenia ---------- */
.board.p-kanal{--pad:56px;--t-sm:29px;--t-xs:24px;--t-md:34px}
.board.p-tv-basic{--pad:38px;--t-sm:28px;--t-xs:23px;--t-md:33px}
.board.p-tv-android{--t-sm:27px;--t-xs:22px}
.board.p-kanal .dot,.board.p-tv-basic .dot{animation:none}

/* ---------- plátno ---------- */
.board{
  position:fixed;top:0;left:0;transform-origin:top left;
  width:1920px;height:1080px;background:var(--bg);color:var(--ink);
  padding:var(--pad);display:flex;flex-direction:column;gap:var(--gap);
  font-variant-numeric:tabular-nums;
}
.board.portrait{width:1080px;height:1920px}
/* Bloky sa ukladajú samy. Keď sa niektorý neukáže (chýbajú dáta),
   ostatné sa preskupia a tabuľa nemá dieru. */
.main{flex:1;min-height:0;display:grid;gap:var(--gap);
  grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(0,1fr)}
.board.portrait .main{grid-template-columns:repeat(6,1fr)}
.head{height:96px;flex:none}
.foot{height:78px;flex:none}
.board.portrait .head{height:112px}
.board.portrait .foot{height:86px}

/* ---------- základné prvky ---------- */
.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 24px;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.th{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}
.th h3{font-size:var(--t-sm);font-weight:600}
.th .stamp{margin-left:auto;font-size:var(--t-xs);color:var(--dim);font-weight:400}
.th .ico{font-size:var(--t-sm)}
.stale{color:var(--dim) !important;font-weight:400 !important}

/* hlavička */
.head{display:flex;align-items:center;gap:22px;background:var(--headGrad);
  border:1px solid var(--line);border-radius:var(--radius);padding:0 26px}
.logo{width:var(--logo);height:var(--logo);border-radius:var(--logoR);background:var(--accent);
  display:grid;place-items:center;font-size:calc(var(--logo)*.52);font-weight:800;
  color:var(--onAccent);flex:none;overflow:hidden}
.logo img{width:100%;height:100%;object-fit:contain}
/* skutočné logo býva na šírku – štvorcová dlaždica s farbou by ho zdusila */
/* logo dostane pevnú výšku – pri height:auto si obrázok vynútil svoju
   prirodzenú veľkosť a vytŕčal z hlavičky */
.logo.obrazok{background:none;border-radius:0;padding:0;overflow:hidden;
  width:auto;max-width:340px;height:66px;align-self:center;
  display:flex;align-items:center;justify-content:flex-start}
.logo.obrazok img{height:66px;width:auto;max-width:340px;
  object-fit:contain;object-position:left center}
.hname{font-size:var(--hname);font-weight:700;line-height:1.1}
.hsub{font-size:var(--t-xs);color:var(--dim);margin-top:3px}
.clock{margin-left:auto;text-align:right}
.clock .t{font-size:var(--t-xl);font-weight:700;line-height:1}
.clock .d{font-size:var(--t-xs);color:var(--dim);margin-top:4px}

/* kamera */
.cam{position:relative;border-radius:var(--radius);overflow:hidden;
  border:1px solid var(--line);background:#0a1119}
.cam .ph,.cam img,.cam video{position:absolute;inset:0;width:100%;height:100%;display:block}
.cam img,.cam video{object-fit:cover}
.cam .ph{background:linear-gradient(180deg,#3b5f80,#c9d7e0)}
.camlab{position:absolute;left:20px;bottom:16px;right:20px}
.camlab .n{font-size:var(--t-md);font-weight:700;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.9)}
.camlab .s{font-size:var(--t-xs);color:#e2ecf5;text-shadow:0 2px 10px rgba(0,0,0,.95)}
.badge{position:absolute;top:16px;left:20px;display:flex;align-items:center;gap:8px;
  background:rgba(8,14,20,.72);border:1px solid rgba(255,255,255,.18);color:#fff;
  padding:7px 14px;border-radius:99px;font-size:var(--t-xs);font-weight:600}
.dot{width:11px;height:11px;border-radius:50%;background:#ff5f5f;animation:pulse 2s infinite}
@keyframes pulse{50%{opacity:.3}}
.camtemp{position:absolute;top:14px;right:20px;background:rgba(8,14,20,.72);color:#fff;
  border:1px solid rgba(255,255,255,.18);padding:8px 16px;border-radius:14px;
  font-size:var(--t-md);font-weight:700}
.camoff{position:absolute;inset:0;display:grid;place-items:center;text-align:center;
  background:rgba(6,11,17,.62);color:#fff;font-size:var(--t-sm);padding:20px}

/* počasie – zmenšené oproti ostatným, lebo dlaždica nesie tri sekcie naraz */
.wx{--t-huge:100px}
/* v hotelovom kanáli je písmo väčšie a okraje širšie, takže dlaždica je nižšia
   a predpoveď sa inak oreže – tu má vlastné, tesnejšie miery */
.board.p-kanal .wx{--t-huge:64px}
.board.p-kanal .wx .th{margin-bottom:4px}
.board.p-kanal .wx .sens{margin:8px 0 4px}
/* senzory na jeden riadok namiesto dvoch – ušetrí výšku bez straty údaja */
.board.p-kanal .wx .sens div{padding:6px 10px;display:flex;align-items:baseline;gap:8px}
.board.p-kanal .wx .sens b{display:inline;font-size:var(--t-sm);white-space:nowrap}
.board.p-kanal .wx .sens span{display:inline;font-size:calc(var(--t-xs) * .78);line-height:1.1;
  min-width:0;overflow:hidden}
.board.p-kanal .wx .fc{padding-top:8px}
.board.p-kanal .wx .fc .ic{font-size:22px;margin:1px 0}
.board.p-kanal .wxnow .side{line-height:1.3}
.wx .th{margin-bottom:10px}
.wx .fc .ic{font-size:28px}
.wx .sens div{padding:8px 12px}
.wxnow{display:flex;align-items:center;gap:16px}
.wxnow .deg{font-size:var(--t-huge);font-weight:700;line-height:.9;letter-spacing:-3px}
.wxnow .side{font-size:var(--t-xs);color:var(--dim);line-height:1.55}
.sens{display:flex;gap:10px;margin:14px 0 6px}
.sens div{flex:1;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.sens b{display:block;font-size:var(--t-md);font-weight:700}
.sens span{font-size:var(--t-xs);color:var(--dim)}
.fc{margin-top:auto;display:flex;gap:10px;border-top:1px solid var(--line);padding-top:14px}
.fc>div{flex:1;text-align:center}
.fc .dd{font-size:var(--t-xs);color:var(--dim)}
.fc .ic{font-size:34px;margin:4px 0;line-height:1}
.fc .tt{font-size:var(--t-sm);font-weight:600}
.fc .tt i{color:var(--dim);font-style:normal;font-weight:400}

/* miesto senzorov – aby bolo jasné, že sa nemeria pri hoteli */
.sens-hl{font-size:calc(var(--t-xs) * .85);color:var(--dim);margin:10px 0 -4px;
  letter-spacing:.5px;text-transform:uppercase}

/* tipy na okolie */
.tipy-grid{flex:1;min-height:0;display:grid;gap:16px;
  grid-template-columns:repeat(auto-fit,minmax(0,1fr))}
.tip{display:flex;flex-direction:column;min-height:0;background:var(--panel2);
  border:1px solid var(--line);border-radius:14px;overflow:hidden}
.tip-foto{flex:1;min-height:0;background:#16212f;position:relative}
.tip-foto img{width:100%;height:100%;object-fit:cover;display:block}
.tip-foto.bez::after{content:"🏔️";position:absolute;inset:0;display:grid;place-items:center;font-size:44px;opacity:.5}
/* vzdialenosť od tabule – hosť hneď vidí, či je to za rohom alebo autom */
.tip-km{position:absolute;top:12px;right:12px;background:rgba(8,14,20,.78);color:#fff;
  border:1px solid rgba(255,255,255,.18);border-radius:99px;padding:5px 12px;
  font-size:var(--t-xs);font-weight:700;backdrop-filter:blur(3px)}
.tip{position:relative}
/* pevné výšky textu – fotka si vezme zvyšok, takže karta sa nikdy neoreže */
.tip-n{font-size:var(--t-sm);font-weight:700;padding:12px 14px 0;line-height:1.15;
  height:calc(var(--t-sm) * 2.3 + 12px);overflow:hidden;flex:none;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.tip-p{font-size:var(--t-xs);color:var(--dim);padding:4px 14px 12px;line-height:1.25;
  height:calc(var(--t-xs) * 2.5 + 16px);flex:none;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* stredisko */
.state{display:flex;align-items:center;gap:12px;background:var(--goodBg);
  border:1px solid var(--goodLine);border-radius:14px;padding:12px 16px;margin-bottom:14px}
.state.zatvorene{background:var(--badBg);border-color:var(--badLine)}
.state b{font-size:var(--t-md);font-weight:700;color:var(--good)}
.state.zatvorene b{color:var(--bad)}
.state span{font-size:var(--t-xs);color:var(--dim);margin-left:auto}
.rows{display:flex;flex-direction:column;gap:11px}
.row{display:flex;align-items:center;gap:12px;font-size:var(--t-sm)}
.row .k{color:var(--dim);flex:1}
.row .v{font-weight:700}
.lifts{display:flex;gap:6px}
.lifts i{width:26px;height:12px;border-radius:99px;background:var(--good);display:block}
.lifts i.off{background:var(--off)}
.night{margin-top:14px;background:var(--accentBg);border:1px solid var(--accentLine);
  border-radius:14px;padding:12px 16px;display:flex;align-items:center;gap:12px}
.night b{color:var(--accentInk);font-size:var(--t-sm);font-weight:700}
.night span{font-size:var(--t-xs);color:var(--dim);margin-left:auto}

/* wifi */
.wifi{flex-direction:row;align-items:center;gap:20px}
.wifi .txt{flex:1;min-width:0}
.wifi .lbl{font-size:var(--t-xs);color:var(--dim)}
/* nelámať slová uprostred („doplní hote / l") – lámať len tam, kde to nejde inak */
/* text sa nezalamuje – namiesto toho ho JS zmenší, aby sa zmestil na riadok */
.wifi .val{font-size:var(--t-md);font-weight:700;margin-bottom:12px;
  white-space:nowrap;overflow:hidden;line-height:1.2}
/* QR musí mať dosť pixelov na modul, inak ho telefón z izby nenaskenuje.
   Pri 41 moduloch a 150 px vychádzali 3 px na modul – nečitateľné. */
.qr{width:210px;height:210px;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:9px;flex:none}
/* na kanáli je dlaždica väčšia – nech kód nevisí v prázdnom priestore
   a dá sa naskenovať aj z väčšej vzdialenosti */
.board.p-kanal .qr{width:260px;height:260px}
.board.p-kanal .wifi .qr{width:220px;height:220px}
.qr canvas{width:100%;height:100%;image-rendering:pixelated;display:block}
.board.portrait .wifi{flex-direction:column;align-items:flex-start}

/* zoznam služieb – firemná vizitka */
/* dva široké stĺpce namiesto štyroch úzkych – dlhé názvy služieb si inak
   lezú do seba a text sa láme po jednom slove */
.zoz-grid{flex:1;min-height:0;display:grid;gap:14px 28px;align-content:space-evenly;
  grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}
.zoz-it{display:flex;flex-direction:column;gap:2px;min-width:0}
.zoz-it b{font-size:var(--t-sm);font-weight:700;line-height:1.15;overflow-wrap:anywhere}
.zoz-it span{font-size:var(--t-xs);color:var(--dim);line-height:1.2;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* info / dvojice – riadky sa rozložia po výške dlaždice, nech nikdy nepretečú */
.kv{display:flex;flex-direction:column;justify-content:space-evenly;gap:8px;flex:1;min-height:0}
.kv .r{display:flex;align-items:baseline;gap:10px;font-size:var(--t-sm)}
.kv .r .k{color:var(--dim);flex:1}
.kv .r .v{font-weight:700;text-align:right}

/* podujatia */
.ev .it{padding:9px 0;border-bottom:1px solid var(--line);min-width:0}
.ev .it:last-child{border:0}
/* Dátum cez celú šírku, nie v úzkom stĺpci. Sú to často rozsahy
   („24. júna – 31. októbra 2026") a v stĺpci sa lámali aj na štyri riadky. */
.ev .when{font-size:calc(var(--t-xs) * .9);color:var(--accentInk);font-weight:700;
  line-height:1.2;margin-bottom:2px}
/* Zámerne BEZ nowrap/ellipsis: na výšku sú dlaždice užšie a orezanie tromi
   bodkami by dátum ticho zmrzačilo („24. júna – 31. ok…"). Radšej nech sa
   dlhý rozsah zalomí na medzere. */
.ev .what{font-size:var(--t-sm);line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden}
.ev .where{font-size:var(--t-xs);color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev .it.vlastne .when{color:var(--good)}

/* odchody */
/* odchody sú to, na čo sa hosť pozerá z diaľky – čas veľký a výrazný */
.bus .it{display:flex;align-items:center;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}
/* v kanáli je písmo väčšie – bez tesnejších rozostupov tretí spoj pretečie */
.board.p-kanal .bus .it{padding:9px 0}
.board.p-kanal .bus .zast-hl{margin:-6px 0 2px}
.bus .it:last-child{border:0}
.bus .tm{font-size:var(--t-lg);font-weight:700;width:132px;flex:none;letter-spacing:-1px}
.bus .dr{font-size:var(--t-sm);flex:1}
.bus .in{font-size:var(--t-sm);color:var(--dim);white-space:nowrap}
.bus .prazdne{font-size:var(--t-sm);color:var(--dim);padding:8px 0}
/* názov zastávky pod nadpisom – v nadpise by zabral tri riadky */
.bus .zast-hl{font-size:var(--t-xs);color:var(--dim);margin:-8px 0 2px}
.bus .it.zajtra{opacity:.62}
/* keď sú v hre dve približne rovnako vzdialené zastávky, pri každom spoji
   sa ukáže, z ktorej ide – inak by hosť nevedel, kam má ísť */
.bus .zast{display:block;font-size:var(--t-xs);color:var(--dim)}

/* zoznam s cenou */
.lst .it{display:flex;align-items:baseline;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.lst .it:last-child{border:0}
.lst .n{font-size:var(--t-sm);flex:1}
.lst .n i{display:block;font-size:var(--t-xs);color:var(--dim);font-style:normal}
.lst .p{font-size:var(--t-lg);font-weight:700;white-space:nowrap}

/* partner */
.partner{background:var(--partnerGrad);position:relative}
.partner .pill{position:absolute;top:18px;right:20px;background:var(--accentBg);
  color:var(--accentInk);border:1px solid var(--accentLine);padding:4px 12px;
  border-radius:99px;font-size:var(--t-xs);font-weight:600}
.partner h2{font-size:var(--t-lg);font-weight:700;margin-bottom:10px}
.partner p{font-size:var(--t-sm);color:var(--dim);line-height:1.4}
.partner .feat{display:flex;gap:22px;margin-top:auto;padding-top:16px}
.partner .feat div{font-size:var(--t-xs);color:var(--dim)}
.partner .feat b{display:block;font-size:var(--t-md);color:var(--ink)}

/* promo */
.promo{position:relative;border-radius:var(--radius);overflow:hidden;
  background:var(--promoGrad);border:1px solid var(--line)}
.promo>img,.promo>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.promo .glow{position:absolute;inset:0;
  background:radial-gradient(circle at 78% 26%,var(--accentBg),transparent 58%)}
.promo .in{position:absolute;inset:0;padding:70px;display:flex;flex-direction:column;justify-content:center}
/* plagát na výšku vpravo, text vľavo */
/* left:auto je nutné – pravidlo pre obrázok na pozadí nastavuje inset:0 */
.promo .plagat{position:absolute;left:auto;right:40px;top:24px;bottom:24px;
  width:auto;max-width:46%;height:calc(100% - 48px);
  object-fit:contain;object-position:right center;border-radius:10px;
  box-shadow:0 14px 40px rgba(0,0,0,.5)}
.promo.splagatom .in{padding-right:52%}
.promo.splagatom h1{max-width:100%;font-size:86px}
.promo.splagatom p{max-width:100%}
.board.portrait .promo .plagat{right:auto;left:50%;transform:translateX(-50%);
  top:auto;bottom:40px;height:52%}
.board.portrait .promo.splagatom .in{padding-right:70px;justify-content:flex-start;padding-top:80px}
.promo.foto .in{background:linear-gradient(90deg,rgba(6,12,18,.82) 0%,rgba(6,12,18,.35) 62%,transparent 100%)}
.promo.foto .in *{color:#fff}
.promo .eyebrow{font-size:var(--t-md);color:var(--accentInk);font-weight:700;letter-spacing:3px;margin-bottom:16px}
.promo h1{font-size:112px;font-weight:800;line-height:1.02;letter-spacing:-2px;max-width:72%;color:var(--promoInk)}
.promo p{font-size:var(--t-lg);color:var(--promoDim);margin-top:22px;max-width:62%;line-height:1.35}
.promo .cta{margin-top:34px;display:inline-flex;align-items:center;gap:14px;
  background:var(--accent);color:var(--onAccent);font-size:var(--t-md);font-weight:700;
  padding:16px 30px;border-radius:99px;width:max-content}
.board.portrait .promo h1{font-size:92px;max-width:100%}
.board.portrait .promo p{max-width:94%}

/* oznam */
.oznam{background:var(--accentBg);border:1px solid var(--accentLine);
  display:flex;align-items:center;gap:16px;font-size:var(--t-md);font-weight:600}
.oznam .ic{font-size:var(--t-lg)}

/* tiesňové */
.sos .it{display:flex;align-items:baseline;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}
.sos .it:last-child{border:0}
.sos .n{font-size:var(--t-sm);flex:1;color:var(--dim)}
.sos .v{font-size:var(--t-md);font-weight:700}

/* pätka */
.foot{display:flex;align-items:center;gap:18px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);padding:0 24px;overflow:hidden}
.foot .hotel{display:none;align-items:center;gap:9px;font-size:var(--t-xs);
  color:var(--accentInk);font-weight:700;flex:none}
.foot .hotel i{width:22px;height:22px;border-radius:6px;background:var(--accent);display:block}
.foot .tick{flex:1;overflow:hidden;white-space:nowrap;font-size:var(--t-sm)}
.foot .tick{contain:paint}
/* vlastná vrstva pre animáciu – bez toho ju na slabšom Pi prekresľuje procesor
   spolu so zvyškom tabule a text sa trhá */
.foot .tick span{display:inline-block;padding-left:100%;animation:roll 52s linear infinite;
  will-change:transform;transform:translateZ(0);backface-visibility:hidden}
.board.p-kanal .foot .tick span{animation-duration:64s}
@keyframes roll{to{transform:translateX(-100%)}}
.foot .sep{color:var(--accentInk);padding:0 14px}
.foot .upd{font-size:var(--t-xs);color:var(--dim);flex:none}
.foot .by{display:flex;align-items:center;gap:9px;font-size:var(--t-xs);color:var(--dim);flex:none}
.foot .by i{width:10px;height:10px;border-radius:3px;background:var(--brand);display:block}
.dots{display:flex;gap:7px;flex:none}
.dots i{width:9px;height:9px;border-radius:50%;background:var(--dotOff);display:block}
.dots i.on{background:var(--accent);width:26px;border-radius:99px}

/* stav pripojenia – nenápadný, nikdy nie chybová stránka */
.offline .foot .upd{color:var(--bad)}

/* bezpečný okraj pre hotelový kanál */
.safe{position:fixed;inset:0;pointer-events:none;display:none;z-index:99}
.board.showsafe~.safe,.showsafe .safe{display:block}
.safe i{position:absolute;inset:5%;border:2px dashed rgba(240,180,41,.5);border-radius:8px}

/* prechody medzi obrazovkami */
.board.fade{transition:opacity .45s}
.board.fade.out{opacity:0}

/* striedavý režim lišty – žiadna animácia, len prepínanie správ.
   Na slabšom zariadení je to jediné, čo nemá čo trhať. */
.foot .tick.striedavy{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.foot .tick.striedavy span{padding-left:0;animation:none;will-change:auto;
  display:block;transform:none}

.board.portrait .logo.obrazok,.board.portrait .logo.obrazok img{height:78px}

/* zoznam s ikonami – vizitka firmy vyzerá zámerne aj bez fotiek */
.zoz-it{flex-direction:row;align-items:flex-start;gap:14px}
.zoz-ik{font-size:calc(var(--t-md) * 1.15);line-height:1;flex:none;width:1.4em;text-align:center}
.zoz-txt{display:flex;flex-direction:column;gap:2px;min-width:0}


/* vzdialenosť na zastávku – vlastný riadok, aby sa veta nezalomila v strede */
.bus .zast-d{font-size:var(--t-xs);color:var(--dim);opacity:.9;margin:0 0 8px}
