/* Krkonoše dnes v2 — tmavý, kontrastní app-design, mobil na prvním místě. */
:root {
  --noc: #0a1210;
  --noc-2: #0f1b18;
  --plocha: #14231f;
  --plocha-2: #1b2e29;
  --sklo: rgba(255, 255, 255, .07);
  --sklo-2: rgba(255, 255, 255, .12);
  --hrana: rgba(255, 255, 255, .12);
  --text: #f2f6f4;
  --text-2: #b6c7c0;
  --text-3: #85988f;
  --akcent: #ff7a3d;
  --akcent-2: #ffb15c;
  --led: #8fe3ff;
  --zelena: #5fd39a;
  --cervena: #ff6b6b;
  --zluta: #ffd166;
  --r: 22px;
  --r-s: 14px;
  --stin: 0 18px 50px rgba(0, 0, 0, .45);
  --font: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  --display: "Bricolage Grotesque", "Figtree", system-ui, sans-serif;
  --spodek: calc(74px + env(safe-area-inset-bottom));
  color-scheme: dark;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }
body {
  margin: 0; background: var(--noc); color: var(--text); font: 16px/1.5 var(--font);
  overflow-x: hidden; padding-bottom: var(--spodek);
  background-image: radial-gradient(1200px 600px at 80% -10%, rgba(95, 211, 154, .10), transparent 60%), radial-gradient(900px 500px at -10% 30%, rgba(143, 227, 255, .06), transparent 60%);
  background-attachment: fixed;
}
img { max-width: 100%; display: block; }
a { color: var(--led); text-decoration: none; }
a:hover { text-decoration: underline; }
button, input, select { font: inherit; color: inherit; }
h1, h2, h3 { font-family: var(--display); line-height: 1.08; margin: 0; letter-spacing: -.02em; }
h1 { font-size: clamp(30px, 7vw, 54px); font-weight: 800; }
h2 { font-size: clamp(22px, 4.6vw, 30px); font-weight: 700; }
h3 { font-size: 18px; font-weight: 700; letter-spacing: -.01em; }
p { margin: 0; }
.male { font-size: 14px; color: var(--text-2); }
.mini { font-size: 12px; color: var(--text-3); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- Horní lišta ---------- */
.lista {
  position: sticky; top: 0; z-index: 40; display: flex; align-items: center; gap: 10px;
  padding: calc(10px + env(safe-area-inset-top)) 16px 10px; background: rgba(10, 18, 16, .72);
  backdrop-filter: blur(18px) saturate(1.4); -webkit-backdrop-filter: blur(18px) saturate(1.4); border-bottom: 1px solid var(--hrana);
}
.logo { display: flex; align-items: center; gap: 9px; color: var(--text); font: 800 18px/1 var(--display); letter-spacing: -.02em; white-space: nowrap; }
.logo:hover { text-decoration: none; }
.logo svg { width: 30px; height: 30px; flex: none; }
.logo span { color: var(--akcent); }
.hor-nav { display: none; gap: 4px; margin-left: 18px; }
.hor-nav a { color: var(--text-2); padding: 8px 14px; border-radius: 99px; font-weight: 600; font-size: 15px; white-space: nowrap; }
.hor-nav a:hover { text-decoration: none; background: var(--sklo); color: var(--text); }
.hor-nav a.aktivni { background: var(--text); color: var(--noc); }
.cip-zakladna {
  margin-left: auto; display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: 99px;
  background: var(--sklo); border: 1px solid var(--hrana); cursor: pointer; font-size: 14px; font-weight: 600; max-width: 52vw;
}
.cip-zakladna b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cip-zakladna .ik { color: var(--akcent); }
@media (min-width: 900px) { .hor-nav { display: flex; } }

/* ---------- Spodní navigace ---------- */
.spodni {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; display: grid; grid-template-columns: repeat(6, 1fr);
  padding: 8px 8px calc(8px + env(safe-area-inset-bottom)); background: rgba(10, 18, 16, .86);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); border-top: 1px solid var(--hrana);
}
.spodni a { display: flex; flex-direction: column; align-items: center; gap: 3px; color: var(--text-3); font-size: 11.5px; font-weight: 600; padding: 4px 0; border-radius: 14px; }
.spodni a:hover { text-decoration: none; color: var(--text); }
.spodni svg { width: 24px; height: 24px; }
.spodni a.aktivni { color: var(--text); }
.spodni a.aktivni svg { color: var(--akcent); }
@media (min-width: 900px) { .spodni { display: none; } body { padding-bottom: 0; } :root { --spodek: 0px; } }
/* Bezpečnost (SOS): vždy vidět nad spodní lištou, na počítači v rohu (Richard 31. 10. 2026) */
.sos-tlacitko {
  position: fixed; right: 12px; bottom: calc(var(--spodek) + 18px); z-index: 46; display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px 8px 9px; border: 2px solid #fff; border-radius: 99px; background: #d3262f; color: #fff; cursor: pointer;
  font: 800 15px/1 var(--display); letter-spacing: .05em; box-shadow: 0 6px 18px rgba(0, 0, 0, .35);
}
.sos-tlacitko svg { width: 20px; height: 20px; }
body.na-mape .sos-tlacitko { bottom: calc(var(--spodek) + 12px); }
@media (min-width: 900px) { .sos-tlacitko, body.na-mape .sos-tlacitko { right: 20px; bottom: 20px; } }
.btn.sos-hlavni { background: #d3262f; color: #fff; }
.sos-cisla { margin-bottom: 12px; }
.sos-gps { display: block; font-size: 26px; margin: 2px 0 4px; user-select: all; -webkit-user-select: all; }
.sos-bod { margin-top: 12px; }
.sos-bod .mini { display: block; margin-top: 2px; }
.sos-nadpis { font-size: 17px; margin: 18px 0 4px; }

/* ---------- Lavinové nebezpečí: stupeň v barvě evropské stupnice EAWS (1 zelenožlutá … 5 černočervená šachovnice) ---------- */
.lav-stitek { display: flex; align-items: center; gap: 12px; margin-top: 12px; padding: 10px 12px; border-radius: 16px;
  background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); }
html[data-vzhled="den"] .lav-stitek { background: rgba(255, 255, 255, .55); border-color: rgba(20, 40, 50, .12); }
.lav-cislo { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; font-weight: 800; font-size: 20px; color: #111; }
.lav-1 .lav-cislo { background: #ccff66; } .lav-2 .lav-cislo { background: #ffff00; } .lav-3 .lav-cislo { background: #ff9900; }
.lav-4 .lav-cislo { background: #ff0000; color: #fff; }
.lav-5 .lav-cislo { color: #fff; background: repeating-conic-gradient(#000 0 25%, #c00 0 50%) 0 0 / 20px 20px; text-shadow: 0 0 3px #000; }
.lav-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.lav-text b { font-size: 15px; }
.lav-stitek .btn { flex: 0 0 auto; }
@media (max-width: 420px) { .lav-stitek { flex-wrap: wrap; } .lav-stitek .btn { width: 100%; } }
.lav-varovani { border-left: 4px solid #ff9900; padding-left: 12px; }
.park-pravidla { border-left: 4px solid #1d5a47; padding-left: 12px; }
.park-pravidla ul { margin: 6px 0 0; padding-left: 18px; }
#sosLaviny .lav-stitek { margin: 0 0 12px; }

/* ---------- Turista s batohem nad spodní lištou: jde po hřebeni (Rýchory) podle toho, kolik je stránky přečteno ---------- */
:root { --turista: #c9d3dd; --turista-batoh: #ff8a4c; --linka-hrebene: rgba(200, 215, 230, .22); }
html[data-vzhled="den"] { --turista: #2f4351; --turista-batoh: #b8430f; --linka-hrebene: rgba(20, 40, 55, .24); }
.turista-pas { position: fixed; left: 0; right: 0; bottom: var(--spodek); height: 24px; z-index: 44; pointer-events: none; }
.turista-pas svg.linie { position: absolute; left: 12px; top: 4px; width: calc(100% - 24px); height: 18px; overflow: visible; }
.turista-pas .zbyva { fill: none; stroke: var(--linka-hrebene); stroke-width: 1.2; vector-effect: non-scaling-stroke; stroke-dasharray: 3 4; }
.turista-pas .usla { fill: none; stroke: var(--turista-batoh); stroke-width: 1.4; vector-effect: non-scaling-stroke; opacity: .6; }
.turista { position: absolute; left: 0; top: 0; width: 13px; height: 18px; color: var(--turista); will-change: transform; }
/* na počítači o kousek větší, ať v širokém okně nezanikne (Richard 31. 10. 2026) */
@media (min-width: 900px) { .turista { width: 17px; height: 23px; } .turista-pas .usla { opacity: .75; } }
.turista svg { width: 100%; height: 100%; display: block; overflow: visible; }
.turista.zpet svg { transform: scaleX(-1); }
.turista .noha-l, .turista .noha-p { transform-box: fill-box; transform-origin: 50% 0; }
.turista.jde .noha-l { animation: turista-krok .5s ease-in-out infinite alternate; }
.turista.jde .noha-p { animation: turista-krok .5s ease-in-out infinite alternate-reverse; }
@keyframes turista-krok { from { transform: rotate(-22deg); } to { transform: rotate(22deg); } }
body.s-turistou { padding-bottom: calc(var(--spodek) + 24px); }
body.na-mape .turista-pas, html[data-plastika="e"] .turista-pas { display: none; }
body.s-turistou.na-mape { padding-bottom: var(--spodek); }

/* ---------- Hřeben z Rýchor nad karuselem (rozhodnuto 31. 10. 2026: silueta z náhledu E, barvy C) ----------
   Obrázky jsou v css/hreben-uvod.css (generuje navrh-krkonose-nastroje/hreben-uvod.mjs). Úvod se na každé obrazovce
   vejde i s hřebenem, kartou s názvem místa a tečkami; při posunu hřeben klesá a plynule mizí za karuselem (js/app.js). */
#o-dnes { --uvod-h: clamp(140px, 12.5vw, 240px); --uvod-prekryv: 34px; --lista-v: 92px; }   /* lišta + pruh náčrtu nahoře */
.uvod-hreben { position: relative; z-index: 0; pointer-events: none; height: var(--uvod-h); margin: 0 0 calc(-1 * var(--uvod-prekryv)); background: var(--uvod-pas, none) center bottom / cover no-repeat; will-change: opacity, background-position; }
#o-dnes .karusel { z-index: 1; margin-top: 0; }
#o-dnes .k-karta, #o-dnes .karusel-pas:empty::before { min-height: 0; height: clamp(360px, calc(100svh - var(--lista-v) - var(--uvod-h) + var(--uvod-prekryv) - 46px - var(--spodek)), 560px); }
@media (max-width: 760px) {
  #o-dnes { --uvod-h: calc(100vw * 260 / 620); --uvod-prekryv: 22px; --lista-v: 90px; }
  .uvod-hreben { background-image: var(--uvod-pas-m, none); }
  #o-dnes .k-karta, #o-dnes .karusel-pas:empty::before { height: clamp(300px, calc(100svh - var(--lista-v) - var(--uvod-h) + var(--uvod-prekryv) - 46px - var(--spodek)), 560px); }
}
html[data-plastika] .uvod-hreben { display: none; }
html[data-plastika] #o-dnes .k-karta, html[data-plastika] #o-dnes .karusel-pas:empty::before { height: min(68vh, 560px); min-height: 420px; }
html[data-plastika] #o-dnes .karusel { margin-top: 14px; }
@media (prefers-reduced-motion: reduce) { .turista.jde .noha-l, .turista.jde .noha-p { animation: none; } }
@media print { .turista-pas { display: none; } }

/* ---------- Obrazovky ---------- */
.obrazovka { display: none; animation: najezd .35s cubic-bezier(.2, .8, .2, 1); }
.obrazovka.aktivni { display: block; }
@keyframes najezd { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.obsah { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 16px; }
.sekce { margin: 34px auto 0; }
.sekce-hlava { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.sekce-hlava .male { margin-top: 6px; }
.odkaz-vic { font-weight: 700; font-size: 14px; white-space: nowrap; color: var(--akcent-2); }
.stitek { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 99px; font-size: 11.5px; font-weight: 700; letter-spacing: .02em; background: var(--sklo-2); color: var(--text-2); white-space: nowrap; }
.stitek.ukazka { background: rgba(255, 209, 102, .16); color: var(--zluta); }
.stitek.partner { background: var(--akcent); color: #1b0d05; letter-spacing: .08em; }
.stitek.zive { background: rgba(255, 107, 107, .18); color: #ff9b9b; }
.stitek.zive::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--cervena); animation: pulz 1.6s infinite; }
.stitek.ok { background: rgba(95, 211, 154, .16); color: var(--zelena); }
@keyframes pulz { 50% { opacity: .3; } }

.sklo { background: var(--sklo); border: 1px solid var(--hrana); border-radius: var(--r); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.karta { background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.035)); border: 1px solid var(--hrana); border-radius: var(--r); padding: 18px; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 18px; border-radius: 99px; border: 0;
  background: var(--text); color: var(--noc); font-weight: 700; font-size: 15px; cursor: pointer; transition: transform .15s, background .15s; text-decoration: none !important; white-space: nowrap;
}
.btn:active { transform: scale(.97); }
.btn.oranz { background: var(--akcent); color: #1b0d05; }
.btn.sklo-btn { background: var(--sklo-2); color: var(--text); border: 1px solid var(--hrana); }
.btn.male-btn { min-height: 38px; padding: 0 14px; font-size: 14px; }
.btn[disabled] { opacity: .5; pointer-events: none; }
.tlacitka { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
/* dlouhý popisek (hlavně PL/DE) se na mobilu zalomí, místo aby roztáhl stránku do šířky */
.tlacitka .btn { max-width: 100%; white-space: normal; text-align: center; padding-top: 6px; padding-bottom: 6px; }

/* Čipy / filtry */
.cipy { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 2px 16px 4px; margin: 0 -16px; scroll-snap-type: x proximity; }
.cipy::-webkit-scrollbar { display: none; }
.cip { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px; border-radius: 99px; background: var(--sklo); border: 1px solid var(--hrana); color: var(--text-2); font-weight: 600; font-size: 14px; cursor: pointer; scroll-snap-align: start; transition: background .15s, color .15s; }
.cip:hover { color: var(--text); }
.cip[aria-pressed="true"], .cip.aktivni { background: var(--text); color: var(--noc); border-color: var(--text); }
.cip .pocet { font-size: 12px; opacity: .7; }

/* ---------- KARUSEL ---------- */
.karusel { position: relative; margin: 14px auto 0; }
.karusel-pas { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 0 16px; scroll-padding: 0 16px; overscroll-behavior-x: contain; }
.karusel-pas::-webkit-scrollbar { display: none; }
/* než appka vykreslí karty: kostra stejné výšky jako karta (a místo pro tečky) → obsah pod karuselem neposkočí (CLS) */
.karusel-pas:empty::before { content: ""; flex: 0 0 calc(100% - 4px); height: min(68vh, 560px); min-height: 420px; border-radius: 28px; background: var(--plocha-2); border: 1px solid var(--hrana); }
@media (min-width: 760px) { .karusel-pas:empty::before { flex-basis: calc(70% - 6px); } }
.tecky:empty { min-height: 8px; }
.k-karta {
  position: relative; flex: 0 0 calc(100% - 4px); scroll-snap-align: center; height: min(68vh, 560px); min-height: 420px; border-radius: 28px; overflow: hidden; cursor: pointer;
  background: var(--plocha-2); color: #fff; box-shadow: var(--stin); isolation: isolate; border: 1px solid var(--hrana);
}
@media (min-width: 760px) { .k-karta { flex-basis: calc(70% - 6px); } }
@media (min-width: 1180px) { .karusel-pas { padding: 0 max(16px, calc((100vw - 1180px) / 2 + 16px)); scroll-padding: 0 max(16px, calc((100vw - 1180px) / 2 + 16px)); } .k-karta { flex-basis: 860px; } }
.k-karta img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transform: scale(1.04); transition: transform 6s ease-out; }
.k-karta.je-videt img { transform: scale(1.0); }
.k-karta::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,.15) 50%, rgba(5,10,9,.92) 100%); }
.k-hore { position: absolute; top: 16px; left: 16px; right: 16px; display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; }
.k-dole { position: absolute; left: 20px; right: 20px; bottom: 22px; }
.k-dole .kde { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.75); }
.k-dole h2 { font-size: clamp(36px, 9vw, 64px); font-weight: 800; margin: 4px 0 10px; text-shadow: 0 2px 20px rgba(0,0,0,.4); }
.k-pocasi { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.k-teplota { font: 800 clamp(44px, 11vw, 72px)/0.9 var(--display); letter-spacing: -.04em; }
.k-info { display: flex; flex-direction: column; gap: 2px; font-size: 15px; }
.k-info b { font-size: 17px; }
.k-veta { margin-top: 12px; font-size: 16px; max-width: 520px; color: rgba(255,255,255,.92); }
.k-zdroj { position: absolute; right: 16px; bottom: 8px; font-size: 10.5px; color: rgba(255,255,255,.55); }
.k-bez-kamery { position: absolute; inset: 0; z-index: -2; background: radial-gradient(circle at 70% 20%, #2c5a4c, #0f1b18 70%); }
.tecky { display: flex; justify-content: center; gap: 6px; margin-top: 14px; }
.tecky button { width: 8px; height: 8px; border-radius: 99px; border: 0; padding: 0; background: rgba(255,255,255,.25); cursor: pointer; transition: width .3s, background .3s; }
.tecky button[aria-current="true"] { width: 26px; background: var(--akcent); }
.k-sipka { display: none; position: absolute; top: 50%; transform: translateY(-50%); width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--hrana); background: rgba(10,18,16,.6); backdrop-filter: blur(10px); color: #fff; font-size: 22px; cursor: pointer; z-index: 3; }
.k-sipka.l { left: 16px; } .k-sipka.p { right: 16px; }
@media (min-width: 900px) and (hover: hover) { .k-sipka { display: grid; place-items: center; } }

/* ---------- Počasí ---------- */
.poc-dvojice { display: grid; gap: 12px; }
@media (min-width: 760px) { .poc-dvojice { grid-template-columns: 1fr 1fr; } }
.poc { position: relative; overflow: hidden; }
.poc .nadpis { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.poc .teplo { font: 800 56px/1 var(--display); letter-spacing: -.04em; margin: 12px 0 6px; display: flex; align-items: center; gap: 14px; }
.poc .teplo .ikona { font-size: 40px; }
.poc-radky { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 14px; color: var(--text-2); margin-top: 8px; }
.poc-radky b { color: var(--text); }
.poc.nahore { background: linear-gradient(160deg, rgba(143,227,255,.14), rgba(255,255,255,.03)); }
.dny { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-top: 14px; }
.den { text-align: center; padding: 8px 4px; border-radius: 14px; background: rgba(255,255,255,.05); font-size: 13px; color: var(--text-2); }
.den .i { font-size: 22px; margin: 2px 0; }
.den b { color: var(--text); }
.poc-misto { font: 700 18px/1.25 var(--display); color: var(--text); margin-top: 10px; }
.poc-misto span { font: 600 14px var(--font); color: var(--text-2); white-space: nowrap; }
.den-max, .den-min { display: block; line-height: 1.3; }
.den-min { font-size: 12px; color: var(--text-3); }
.chyba { color: #ffb4a8; font-size: 14px; }

/* ---------- Pásy karet ---------- */
.pas { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(240px, 1fr); gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 0 16px 6px; margin: 0 -16px; }
.pas::-webkit-scrollbar { display: none; }
.pas > * { scroll-snap-align: start; }
@media (min-width: 900px) { .pas { grid-auto-columns: calc((100% - 36px) / 4); } }
.kamera { position: relative; border-radius: var(--r-s); overflow: hidden; aspect-ratio: 16/9; background: var(--plocha-2); border: 1px solid var(--hrana); cursor: pointer; padding: 0; text-align: left; color: #fff; }
.kamera img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.kamera:hover img { transform: scale(1.05); }
.kamera .popis { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 10px 8px; background: linear-gradient(transparent, rgba(0,0,0,.85)); font-size: 13px; font-weight: 600; }
.kamera .popis span { display: block; font-weight: 500; font-size: 11.5px; opacity: .75; }

.mrizka { display: grid; gap: 12px; grid-template-columns: 1fr; }
@media (min-width: 600px) { .mrizka { grid-template-columns: 1fr 1fr; } }
@media (min-width: 980px) { .mrizka.tri { grid-template-columns: repeat(3, 1fr); } }

.misto-karta { position: relative; border-radius: var(--r); overflow: hidden; min-height: 210px; display: flex; flex-direction: column; justify-content: flex-end; padding: 16px; color: #fff; cursor: pointer; border: 1px solid var(--hrana); isolation: isolate; text-decoration: none !important; }
.misto-karta img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .5s; }
.misto-karta:hover img { transform: scale(1.05); }
.misto-karta::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0,0,0,.05) 30%, rgba(5,10,9,.9)); }
.misto-karta h3 { font-size: 24px; }
.misto-karta .rad { display: flex; justify-content: space-between; align-items: flex-end; gap: 8px; }
.misto-karta .tep { font: 800 30px/1 var(--display); }

/* Kam dnes */
.kam { display: grid; gap: 12px; }
@media (min-width: 900px) { .kam { grid-template-columns: repeat(3, 1fr); } }
.kam-karta { display: flex; flex-direction: column; gap: 8px; }
.kam-karta .ik { font-size: 30px; }
.kam-karta .fakta { display: flex; gap: 12px; font-size: 13px; color: var(--text-2); flex-wrap: wrap; }

/* ---------- Mapa ---------- */
.mapa-obrazovka { position: relative; height: calc(100dvh - 58px - var(--spodek)); min-height: 480px; }
@media (min-width: 900px) { .mapa-obrazovka { height: calc(100dvh - 58px); } }
#mapa { position: absolute; inset: 0; background: #1b2e29; }
.mapa-horni { position: absolute; top: 12px; left: 12px; right: 12px; z-index: 500; display: flex; flex-direction: column; gap: 8px; pointer-events: none; }
.mapa-horni > * { pointer-events: auto; }
.hledani { position: relative; display: flex; align-items: center; gap: 8px; background: rgba(10,18,16,.85); border: 1px solid var(--hrana); border-radius: 99px; padding: 4px 4px 4px 16px; backdrop-filter: blur(14px); box-shadow: var(--stin); max-width: 560px; }
.hledani input { flex: 1; min-width: 0; background: transparent; border: 0; outline: 0; padding: 10px 0; font-size: 16px; }
.nasept { position: absolute; top: calc(100% + 6px); left: 0; right: 0; background: var(--noc-2); border: 1px solid var(--hrana); border-radius: 18px; overflow: hidden; box-shadow: var(--stin); z-index: 10; }
.nasept button { display: block; width: 100%; text-align: left; padding: 11px 16px; background: none; border: 0; border-bottom: 1px solid var(--hrana); cursor: pointer; }
.nasept button:hover, .nasept button:focus { background: var(--sklo); outline: 0; }
.nasept small { display: block; color: var(--text-3); font-size: 12.5px; }
.mapa-cipy .cip { background: rgba(10,18,16,.85); backdrop-filter: blur(10px); }
.mapa-cipy .cip[aria-pressed="true"] { background: var(--text); }
.mapa-cipy { margin: 0; padding: 2px 0 4px; }
.trasa-pruh { display: flex; align-items: center; gap: 4px; max-width: 560px; background: rgba(10,18,16,.9); border: 1px solid var(--hrana); border-radius: 99px; padding: 4px; backdrop-filter: blur(14px); box-shadow: var(--stin); }
.trasa-pruh[hidden] { display: none; }
.trasa-pruh button { border: 0; background: none; color: var(--text); cursor: pointer; font-weight: 700; }
#trasaPruhOtevrit { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 6px 8px 12px; font-size: 14px; text-align: left; }
#trasaPruhText { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#trasaPruhOtevrit b { flex: none; background: var(--akcent); color: #1b0d05; border-radius: 99px; padding: 6px 12px; font-size: 13px; }
.trasa-pruh-x { flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--sklo-2) !important; }
.mapa-tl { position: absolute; right: 12px; bottom: 28px; z-index: 500; display: flex; flex-direction: column; gap: 8px; }
.kul-btn { width: 50px; height: 50px; border-radius: 50%; border: 1px solid var(--hrana); background: rgba(10,18,16,.9); color: #fff; display: grid; place-items: center; cursor: pointer; box-shadow: var(--stin); font-size: 20px; }
.kul-btn.oranz { background: var(--akcent); color: #1b0d05; border: 0; }
.kul-btn svg { width: 22px; height: 22px; }
.mapy-logo { display: block; width: 94px; margin: 0 0 4px 4px; }
.leaflet-container { font-family: var(--font); }
.leaflet-control-attribution { background: rgba(10,18,16,.75) !important; color: var(--text-2) !important; font-size: 10.5px; }
.leaflet-control-attribution a { color: var(--led) !important; }
.leaflet-bar a { background: rgba(10,18,16,.9) !important; color: #fff !important; border-color: var(--hrana) !important; }
.znacka { width: 34px; height: 34px; border-radius: 50% 50% 50% 6px; transform: rotate(-45deg); display: grid; place-items: center; border: 2px solid #fff; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.znacka span { transform: rotate(45deg); font-size: 16px; line-height: 1; }
.znacka.mala { width: 26px; height: 26px; border-width: 1.5px; } .znacka.mala span { font-size: 12px; }
.ja-tecka { width: 18px; height: 18px; border-radius: 50%; background: #3b9cff; border: 3px solid #fff; box-shadow: 0 0 0 6px rgba(59,156,255,.3); }
.leaflet-popup-content-wrapper { background: var(--noc-2); color: var(--text); border-radius: 14px; }
.leaflet-popup-tip { background: var(--noc-2); }

/* ---------- Bottom sheet ---------- */
.zaclona { position: fixed; inset: 0; z-index: 80; background: rgba(0,0,0,.5); opacity: 0; pointer-events: none; transition: opacity .3s; }
.zaclona.otevreno { opacity: 1; pointer-events: auto; }
.sheet {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; max-height: 88dvh; display: flex; flex-direction: column;
  background: var(--noc-2); border: 1px solid var(--hrana); border-bottom: 0; border-radius: 28px 28px 0 0; box-shadow: 0 -20px 60px rgba(0,0,0,.5);
  transform: translateY(105%); transition: transform .38s cubic-bezier(.2, .9, .2, 1); will-change: transform;
}
.sheet.otevreno { transform: translateY(0); }
.sheet.tahne { transition: none; }
@media (min-width: 900px) { .sheet { left: auto; right: 20px; bottom: 20px; top: 78px; width: 440px; max-height: none; border-radius: 28px; border-bottom: 1px solid var(--hrana); transform: translateX(120%); } .sheet.otevreno { transform: none; } .zaclona { background: rgba(0,0,0,.25); } }
.sheet-uchyt { flex: none; padding: 10px 0 4px; display: grid; place-items: center; cursor: grab; touch-action: none; }
.sheet-uchyt::before { content: ""; width: 44px; height: 5px; border-radius: 9px; background: rgba(255,255,255,.28); }
.sheet-hlava { flex: none; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 4px 20px 12px; touch-action: none; }
.sheet-hlava h2 { font-size: 24px; }
.sheet-zavrit { flex: none; width: 38px; height: 38px; border-radius: 50%; border: 0; background: var(--sklo-2); color: var(--text); font-size: 18px; cursor: pointer; }
.sheet-telo { overflow-y: auto; padding: 0 20px calc(24px + env(safe-area-inset-bottom)); overscroll-behavior: contain; }
.sheet-telo .blok { margin-top: 16px; }
.sheet-mapka { height: 190px; border-radius: 16px; overflow: hidden; border: 1px solid var(--hrana); }
.fakty { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; }
.fakt { background: var(--sklo); border: 1px solid var(--hrana); border-radius: 14px; padding: 10px 12px; }
.fakt small { display: block; font-size: 11.5px; color: var(--text-3); text-transform: uppercase; letter-spacing: .06em; font-weight: 700; }
.fakt b { font: 800 22px/1.15 var(--display); }
.fakt.varovani { border-color: rgba(255,107,107,.5); background: rgba(255,107,107,.1); }
.seznam-faktu { margin: 8px 0 0; padding-left: 18px; color: var(--text-2); font-size: 14.5px; }
.seznam-faktu li { margin: 4px 0; }
.zdroj-radek { margin-top: 10px; font-size: 12px; color: var(--text-3); }

/* ---------- Lightbox kamery ---------- */
.lightbox { position: fixed; inset: 0; z-index: 100; background: #000; display: none; flex-direction: column; color: #fff; }
.lightbox.otevreno { display: flex; animation: fade .25s; }
@keyframes fade { from { opacity: 0; } }
.lb-hlava { display: flex; align-items: center; gap: 10px; padding: calc(10px + env(safe-area-inset-top)) 14px 10px; }
.lb-hlava h2 { font-size: 18px; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lb-obraz { position: relative; flex: 1; min-height: 0; display: grid; place-items: center; touch-action: pan-y; overflow: hidden; }
.lb-obraz img { max-width: 100%; max-height: 100%; object-fit: contain; transition: opacity .25s; }
.lb-obraz img.nacita { opacity: .35; }
.lb-sipka { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255,255,255,.2); background: rgba(0,0,0,.45); color: #fff; font-size: 24px; cursor: pointer; }
.lb-sipka.l { left: 10px; } .lb-sipka.p { right: 10px; }
.lb-pata { padding: 12px 16px calc(14px + env(safe-area-inset-bottom)); display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; justify-content: space-between; background: linear-gradient(transparent, rgba(255,255,255,.04)); font-size: 14px; }
.lb-pocasi { display: flex; gap: 14px; flex-wrap: wrap; color: rgba(255,255,255,.85); }
.lb-pocasi b { color: #fff; }
.lb-zdroj { font-size: 11.5px; color: rgba(255,255,255,.55); }
.lb-zdroj a { color: rgba(255,255,255,.7); }
.lb-pocitadlo { font-size: 13px; color: rgba(255,255,255,.6); }

/* ---------- Plánovač ---------- */
.segment { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; padding: 4px; border-radius: 16px; background: var(--sklo); border: 1px solid var(--hrana); }
.segment button { border: 0; background: none; padding: 10px 4px; line-height: 1.2; border-radius: 12px; cursor: pointer; font-weight: 700; font-size: 14px; color: var(--text-2); }
.segment button[aria-pressed="true"] { background: var(--text); color: var(--noc); }
.segment.lepi { position: sticky; top: 0; z-index: 5; background: var(--noc-2); box-shadow: 0 8px 14px var(--noc-2); }
.pole { display: flex; flex-direction: column; gap: 6px; margin-top: 14px; }
.pole > span { font-size: 12.5px; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; color: var(--text-3); }
.vstup { width: 100%; min-height: 48px; padding: 0 14px; border-radius: 14px; border: 1px solid var(--hrana); background: var(--sklo); outline: 0; font-size: 16px; }
.vstup:focus { border-color: var(--led); }
select.vstup { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--text-2) 50%), linear-gradient(135deg, var(--text-2) 50%, transparent 50%); background-position: calc(100% - 20px) 21px, calc(100% - 15px) 21px; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 36px; }
select.vstup option { background: var(--noc-2); }
.start-volby { display: flex; gap: 6px; flex-wrap: wrap; }
.vysledek-trasy .fakty { margin-top: 12px; }
.profil { width: 100%; height: 70px; margin-top: 12px; }
.predpoved-dne { display: flex; align-items: center; gap: 12px; margin-top: 12px; padding: 12px 14px; border-radius: 14px; background: rgba(143,227,255,.08); border: 1px solid rgba(143,227,255,.2); font-size: 14.5px; }
.predpoved-dne .i { font-size: 30px; }

/* ---------- Stránka města ---------- */
.mesto-hero { position: relative; min-height: min(74vh, 620px); display: flex; align-items: flex-end; color: #fff; isolation: isolate; overflow: hidden; }
.mesto-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.mesto-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,0) 35%, rgba(10,18,16,.96) 100%); }
.mesto-hero .obsah { padding-bottom: 26px; }
.mesto-hero h1 { font-size: clamp(42px, 11vw, 88px); }
.mesto-hero .zpet { position: absolute; top: 14px; left: 16px; }
.hero-stav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.hero-stav .sklo { padding: 10px 14px; border-radius: 16px; font-size: 14px; background: rgba(10,18,16,.5); }
.hero-stav b { font: 800 22px/1 var(--display); margin-right: 4px; }
.hero-zdroj { position: absolute; right: 12px; top: 14px; font-size: 11px; color: rgba(255,255,255,.7); text-align: right; max-width: 60%; }
.foto-mesta { border-radius: var(--r); overflow: hidden; border: 1px solid var(--hrana); }
.foto-mesta img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.foto-mesta figcaption { padding: 8px 12px; font-size: 12px; color: var(--text-3); background: var(--noc-2); }
.dvojice { display: grid; gap: 16px; }
@media (min-width: 900px) { .dvojice { grid-template-columns: 1.1fr .9fr; align-items: start; } }
.povidani { font-size: 17.5px; line-height: 1.6; color: var(--text); }
.kotvy { position: sticky; top: 58px; z-index: 30; background: rgba(10,18,16,.85); backdrop-filter: blur(14px); padding: 10px 16px; margin: 0 -16px; border-bottom: 1px solid var(--hrana); }

.sluzby-seznam { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.radek {
  display: grid; grid-template-columns: 44px 1fr auto; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 16px;
  background: var(--sklo); border: 1px solid var(--hrana); cursor: pointer; text-align: left; width: 100%; color: inherit;
}
.radek:hover { background: var(--sklo-2); }
.radek .ik { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; font-size: 22px; background: rgba(255,255,255,.08); }
.radek .jm { font-weight: 700; line-height: 1.25; }
.radek .pod { font-size: 13px; color: var(--text-2); margin-top: 2px; }
.radek .vzd { text-align: right; font-size: 13px; color: var(--text-2); white-space: nowrap; }
.radek .vzd b { display: block; color: var(--text); font-size: 15px; }
.ot-ano { color: var(--zelena); font-weight: 700; }
.ot-ne { color: #ff9b9b; font-weight: 700; }
.mapka-mesta { height: 340px; border-radius: var(--r); overflow: hidden; border: 1px solid var(--hrana); margin-top: 12px; }

.podnik { display: grid; grid-template-columns: 52px 1fr; gap: 12px; align-items: start; }
.podnik .ik { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; font-size: 26px; background: rgba(255,255,255,.08); }
.hvezdy { color: var(--zluta); font-weight: 800; }
.poradi { font: 800 13px/1 var(--display); color: var(--text-3); }

.partner-karta { position: relative; border-radius: var(--r); padding: 18px; background: linear-gradient(145deg, rgba(255,122,61,.18), rgba(255,255,255,.04)); border: 1px solid rgba(255,122,61,.45); }
.partner-karta .foto { height: 120px; border-radius: 14px; margin: -4px -4px 12px; background: repeating-linear-gradient(135deg, rgba(255,255,255,.06) 0 12px, rgba(255,255,255,.02) 12px 24px); display: grid; place-items: center; color: var(--text-3); font-size: 13px; }
.partner-karta .akce { display: inline-block; margin-top: 8px; padding: 5px 10px; border-radius: 10px; background: rgba(255,209,102,.15); color: var(--zluta); font-size: 13px; font-weight: 700; }
.booking-box { border: 2px dashed rgba(255,255,255,.2); border-radius: var(--r); padding: 26px 18px; text-align: center; color: var(--text-2); min-height: 200px; display: grid; place-items: center; }

.cenik { display: grid; gap: 12px; }
@media (min-width: 800px) { .cenik { grid-template-columns: repeat(3, 1fr); } }
.cenik .karta.hl { border-color: var(--akcent); background: linear-gradient(160deg, rgba(255,122,61,.16), rgba(255,255,255,.03)); }
.cena { font: 800 40px/1 var(--display); margin: 10px 0; }
.cena small { font: 600 14px var(--font); color: var(--text-2); }
.cenik ul { padding-left: 18px; margin: 10px 0 0; color: var(--text-2); font-size: 14.5px; }

.tip { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; padding: 12px 14px; border-radius: 16px; background: rgba(255,177,92,.08); border: 1px solid rgba(255,177,92,.22); font-size: 14.5px; color: var(--text-2); }
.tip b { color: var(--text); }
.prazdne { padding: 18px; text-align: center; color: var(--text-3); font-size: 14px; border: 1px dashed var(--hrana); border-radius: 16px; }

.paticka { margin: 50px auto 20px; padding: 20px 16px; max-width: 1180px; font-size: 13px; color: var(--text-3); border-top: 1px solid var(--hrana); }
.paticka p { margin: 6px 0; }

.toast { position: fixed; left: 50%; bottom: calc(var(--spodek) + 14px); transform: translate(-50%, 30px); opacity: 0; z-index: 120; background: var(--text); color: var(--noc); padding: 12px 18px; border-radius: 99px; font-weight: 700; font-size: 14px; transition: .3s; pointer-events: none; max-width: calc(100vw - 32px); text-align: center; }
.toast.ukaz { opacity: 1; transform: translate(-50%, 0); }
.nacrt-pruh { font-size: 12px; text-align: center; padding: 6px 12px; background: #2a1a0f; color: var(--akcent-2); }
.skeleton { background: linear-gradient(90deg, rgba(255,255,255,.05), rgba(255,255,255,.1), rgba(255,255,255,.05)); background-size: 200% 100%; animation: sken 1.4s infinite; border-radius: 12px; }
@keyframes sken { to { background-position: -200% 0; } }
.k-hore .stitek, .hero-zdroj .stitek { background: rgba(0,0,0,.5); color: #fff; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.k-hore .stitek.zive { color: #ffb3b3; }
body.na-mape .paticka, body.na-mape .nacrt-pruh { display: none; }
.sekce, .kotvy + .sekce { scroll-margin-top: 120px; }
.mapa-obrazovka, .mapka-mesta, .sheet-mapka { isolation: isolate; z-index: 0; }
.mapa-obrazovka { position: relative; }
.hledani { z-index: 3; } .nasept { max-height: 55vh; overflow-y: auto; }
.mesto-hero .stitek { background: rgba(0,0,0,.5); color: #fff; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.hledani-stranka { box-shadow: none; background: var(--sklo); max-width: 640px; }
.hledani-stranka input { padding: 12px 0; }
.kamera.neaktivni { cursor: default; filter: grayscale(1); opacity: .55; }
.kamera-nic { position: absolute; inset: 0; display: grid; place-items: center; font-size: 34px; background: repeating-linear-gradient(135deg, rgba(255,255,255,.05) 0 10px, transparent 10px 20px); }
.k-stitek { position: absolute; top: 8px; left: 8px; padding: 3px 8px; border-radius: 99px; font-size: 11px; font-weight: 700; background: rgba(0,0,0,.6); color: #fff; backdrop-filter: blur(6px); max-width: calc(100% - 16px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.k-stitek.v-obci { background: rgba(95,211,154,.85); color: #062014; }
.kamera.skeleton { border: 0; }
.foto-podniku .foto-ram { position: relative; aspect-ratio: 4/1; border-radius: 16px; overflow: hidden; background: repeating-linear-gradient(135deg, rgba(255,255,255,.06) 0 12px, rgba(255,255,255,.02) 12px 24px); border: 1px solid var(--hrana); }
.foto-podniku .foto-ik { position: absolute; inset: 0; display: grid; place-items: center; font-size: 34px; opacity: .7; }
.foto-podniku img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .3s; }
.foto-podniku img.nacteno { opacity: 1; }
.foto-podniku figcaption { margin-top: 6px; }
.mapa-podniky-btn { position: absolute; left: 50%; bottom: 28px; transform: translateX(-50%); z-index: 500; box-shadow: var(--stin); }
.podnik-karta { display: block; padding: 0; cursor: default; }
.podnik-karta:hover { background: var(--sklo); }
.radek-hlavni { display: grid; grid-template-columns: 44px 1fr auto; gap: 12px; align-items: center; width: 100%; padding: 12px 14px 8px; background: none; border: 0; color: inherit; text-align: left; cursor: pointer; border-radius: 16px; }
.radek-hlavni .ik { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; font-size: 22px; background: rgba(255,255,255,.08); }
.radek-hlavni .jm { font-weight: 700; line-height: 1.25; }
.radek-hlavni .pod { font-size: 13px; color: var(--text-2); margin-top: 2px; }
.radek-hlavni .vzd { text-align: right; font-size: 13px; color: var(--text-2); white-space: nowrap; }
.radek-hlavni .vzd b { display: block; color: var(--text); font-size: 15px; }
.podnik-akce { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 0 14px 12px 70px; }
.podnik-akce .mini { color: var(--text-3); text-decoration: underline; }
@media (max-width: 420px) { .podnik-akce { padding-left: 14px; } }
.booking-radek { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 12px; }
/* Plánovač: zastávky a Po cestě */
.zastavky { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 10px; }
.zastavka-cip { display: inline-flex; align-items: center; gap: 6px; cursor: default; }
.zastavka-cip button { border: 0; background: var(--sklo-2); color: var(--text); width: 22px; height: 22px; border-radius: 50%; font-size: 11px; cursor: pointer; }
.po-ceste h3 { font-size: 18px; }
.po-ceste-filtry { margin: 10px 0 8px; }
.po-ceste-radek { cursor: default; margin-top: 8px; padding: 10px 12px; grid-template-columns: 38px 1fr auto; gap: 10px; }
.po-ceste-radek .ik { width: 38px; height: 38px; font-size: 19px; }
.po-ceste-radek .pod { display: block; }
.po-ceste-radek .btn[disabled] { opacity: .4; cursor: not-allowed; }
/* Místa: témata a seznam všech obcí */
.mista-tema-seznam { display: grid; gap: 8px; margin-top: 12px; }
.mista-tema-seznam:empty { display: none; }
.mista-tema-seznam .radek { margin: 0; }
.obce-skupina { margin-top: 14px; }
.obce-skupina summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 16px; background: var(--sklo); border: 1px solid var(--hrana); font-weight: 700; }
.obce-skupina summary::-webkit-details-marker { display: none; }
.obce-skupina summary::after { content: "▾"; margin-left: auto; color: var(--text-2); }
.obce-skupina[open] summary::after { content: "▴"; }
.obce-skupina .pismeno { font-size: 12px; font-weight: 700; color: var(--text-3); letter-spacing: .08em; margin: 14px 0 6px 4px; }
.obce-skupina .radek { margin-top: 6px; }
.wiki-vic summary { cursor: pointer; color: var(--akcent); font-weight: 700; margin-top: 10px; list-style: none; }
.wiki-vic summary::-webkit-details-marker { display: none; }
.wiki-vic[open] summary { display: none; }
.partner-karta.skutecny .foto { padding: 0; overflow: hidden; }
.partner-karta.skutecny .foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.idos-ram { width: 100%; height: min(70dvh, 640px); border: 0; border-radius: 16px; background: #fff; margin-top: 10px; }
/* VIP partner na Dnes a v ceníku */
.vip-karta .partner-karta { display: grid; grid-template-columns: 1fr; }
@media (min-width: 700px) { .vip-karta .partner-karta { grid-template-columns: 240px 1fr; column-gap: 18px; align-items: start; } .vip-karta .partner-karta .foto { grid-row: 1 / span 5; height: 100%; min-height: 180px; margin: 0; } }
.vip-karta .partner-karta.skutecny .foto { height: 180px; }
.cenik .karta.vip { border-color: var(--zluta); background: linear-gradient(160deg, rgba(255,209,102,.16), rgba(255,255,255,.03)); }
@media (min-width: 800px) { .cenik { grid-template-columns: repeat(4, 1fr); } }
/* Srovnávací tabulka ceníku */
.srovnani-obal { overflow-x: auto; margin: 0 -16px; padding: 0 16px; }
.srovnani { width: 100%; min-width: 640px; border-collapse: separate; border-spacing: 0; font-size: 14px; }
.srovnani th, .srovnani td { padding: 10px 10px; border-bottom: 1px solid var(--hrana); text-align: center; vertical-align: top; }
.srovnani th:first-child, .srovnani td:first-child { text-align: left; }
.srovnani th { font-size: 15px; position: sticky; top: 0; background: var(--noc); }
.srovnani th small { display: block; font-weight: 600; color: var(--text-2); font-size: 12px; margin-top: 2px; }
.srovnani th.hl { color: var(--akcent); }
.srovnani th.vip { color: var(--zluta); }
.srovnani .ano { color: var(--led); font-weight: 800; font-size: 16px; }
.srovnani .ne { color: var(--text-3); }
.srovnani th:first-child, .srovnani td:first-child { position: sticky; left: 0; background: var(--noc); z-index: 1; min-width: 150px; max-width: 190px; }
/* Karty s náhledem (fotka, nebo kousek mapy se špendlíkem) — seznamy míst, témata, obce, Po cestě, blog */
.nahledy { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
@media (min-width: 700px) { .nahledy { grid-template-columns: repeat(3, 1fr); } }
.nahled-karta { display: flex; flex-direction: column; border-radius: var(--r); overflow: hidden; background: var(--sklo); border: 1px solid var(--hrana); color: inherit; text-decoration: none; text-align: left; padding: 0; cursor: pointer; font: inherit; }
.nahled-karta:hover { background: var(--sklo-2); }
.nahled-karta .nahled { position: relative; aspect-ratio: 16 / 10; background: var(--plocha); }
.nahled-karta .nahled img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nahled-karta .nahled .ik { position: absolute; left: 10px; top: 10px; width: 36px; height: 36px; border-radius: 12px; background: rgba(10,18,16,.85); display: grid; place-items: center; font-size: 19px; }
.nahled-karta .nahled .vzd { position: absolute; right: 10px; bottom: 10px; padding: 4px 9px; border-radius: 99px; background: rgba(10,18,16,.85); font-size: 12.5px; font-weight: 700; }
.nahled-karta .telo { padding: 10px 12px 12px; }
.nahled-karta .jm { font-weight: 700; line-height: 1.25; display: block; }
.nahled-karta .pod { display: block; font-size: 13px; color: var(--text-2); margin-top: 5px; line-height: 1.35; }
.nahled-karta .tlacitka { margin-top: 8px; }
.nahled-karta.siroka { grid-column: 1 / -1; }

/* ---------- Navigace (celá obrazovka) ---------- */
.nav { position: fixed; inset: 0; z-index: 5000; background: var(--noc); color: var(--text); }
body.navigace-bezi { overflow: hidden; }
.nav-mapa { position: absolute; inset: 0; }
.nav-mapa.otaci { inset: auto; left: 50%; top: 50%; transform: translate(-50%, -50%) rotate(var(--rot, 0deg)); will-change: transform; } /* otáčení po směru: čtverec o úhlopříčce obrazovky */
.nav-mapa.otaci .znacka span { transform: rotate(calc(45deg - var(--rot, 0deg))); } /* ikony zastávek a cíle zůstanou rovně */
.nav > .leaflet-control-container { font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; } /* ovládací prvky mapy vyjmuté z otáčeného kontejneru */
.nav > .leaflet-control-container .leaflet-control-attribution { margin: 0; }
.nav-otaceni { position: relative; font: 800 13px/1 var(--display); }
.nav-otaceni span { display: inline-block; color: var(--text-2); }
.nav-otaceni[aria-pressed="true"] span { color: var(--akcent); }
.nav-otaceni[aria-pressed="true"] span::before { content: "▲"; display: block; font-size: 9px; margin-bottom: 1px; }
.nav-horni { position: absolute; top: calc(10px + env(safe-area-inset-top)); left: 10px; right: 10px; z-index: 1000; display: grid; gap: 8px; pointer-events: none; }
.nav-horni > * { pointer-events: auto; }
.nav-pokyn { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: var(--r); background: linear-gradient(160deg, #1d5a47, #14231f); border: 1px solid var(--hrana); box-shadow: var(--stin); }
.nav-sipka { flex: 0 0 auto; width: 58px; height: 58px; display: grid; place-items: center; font-size: 40px; line-height: 1; font-weight: 800; border-radius: 16px; background: var(--akcent); color: #1b0d05; }
.nav-pokyn-text { min-width: 0; }
.nav-vzd { font-family: var(--display); font-size: 30px; font-weight: 800; line-height: 1.05; }
.nav-text { font-size: 17px; font-weight: 600; margin-top: 3px; overflow-wrap: anywhere; }
.nav-pak { justify-self: start; padding: 7px 12px; border-radius: 99px; font-size: 14px; font-weight: 600; background: rgba(10, 18, 16, .85); border: 1px solid var(--hrana); }
.nav-displej { margin: 0; padding: 8px 12px; border-radius: var(--r-s); font-size: 12.5px; line-height: 1.35; background: rgba(10, 18, 16, .82); border: 1px solid var(--hrana); color: var(--text-2); }
.nav-displej.varovani { color: var(--zluta); border-color: rgba(255, 209, 102, .4); }
.nav-stred { position: absolute; right: 12px; bottom: calc(96px + env(safe-area-inset-bottom)); z-index: 1000; width: 48px; height: 48px; border-radius: 99px; border: 1px solid var(--hrana); background: rgba(10, 18, 16, .9); color: var(--text); font-size: 24px; cursor: pointer; }
.nav-spodni { position: absolute; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); z-index: 1000; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-radius: var(--r); background: rgba(10, 18, 16, .92); border: 1px solid var(--hrana); box-shadow: var(--stin); }
.nav-zbyva { display: grid; min-width: 0; }
.nav-zbyva b { font-family: var(--display); font-size: 22px; font-weight: 800; }
.nav-zbyva span { font-size: 13px; color: var(--text-2); }
.nav-tlacitka { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.nav-ikona { width: 42px; height: 42px; border-radius: 99px; border: 1px solid var(--hrana); background: var(--sklo-2); color: var(--text); font-size: 19px; cursor: pointer; }
.nav-konec { background: var(--cervena); color: #1b0505; }
.nav-menu { position: absolute; left: 10px; right: 10px; bottom: calc(86px + env(safe-area-inset-bottom)); z-index: 1001; display: grid; gap: 8px; padding: 14px; border-radius: var(--r); background: var(--plocha); border: 1px solid var(--hrana); box-shadow: var(--stin); }
.nav-menu p { margin: 0; }
.nav-ja { width: 30px; height: 30px; border-radius: 50%; background: #2f8cff; border: 3px solid #fff; box-shadow: 0 0 0 6px rgba(47, 140, 255, .25); position: relative; }
.nav-ja::after { content: ""; position: absolute; left: 50%; top: -11px; transform: translateX(-50%); border: 7px solid transparent; border-bottom: 10px solid #2f8cff; border-top: 0; }
.nav-ja.nepresna { background: #8fb9ee; box-shadow: none; animation: pulz 1.6s infinite; } /* ještě bez přesné polohy */
.nav-ja.nepresna::after { display: none; }
.nav .leaflet-control-attribution { margin-bottom: calc(84px + env(safe-area-inset-bottom)) !important; }
.nav .leaflet-bottom.leaflet-left { bottom: calc(80px + env(safe-area-inset-bottom)); }
.nav-menu[hidden], .nav-pak[hidden], .nav-stred[hidden] { display: none; }
/* Plánovač (polovina obrazovky nad mapou) na mobilu nezakrývá spodní lištu — Můj plán i ostatní obrazovky jdou otevřít hned */
@media (max-width: 899px) {
  .sheet.polo { bottom: var(--spodek); transform: translateY(calc(100% + var(--spodek) + 20px)); }
  .sheet.polo.otevreno { transform: translateY(0); }
  .sheet.polo { transition: transform .38s cubic-bezier(.2, .9, .2, 1), max-height .32s cubic-bezier(.2, .9, .2, 1); }
  .sheet.polo.tahne { transition: max-height .32s cubic-bezier(.2, .9, .2, 1); }
}
/* počasí v karuselu: kostra stejné výšky jako teplota → karta při načtení neposkočí */
.k-pocasi { min-height: clamp(44px, 11vw, 72px); }
.k-kostra { display: block; width: min(230px, 70%); height: clamp(44px, 11vw, 72px); border-radius: 14px; }
/* Partneři na trase (úrovně v KD.partnerUrovne) */
.partner-pin { display: grid; justify-items: center; gap: 2px; }
.partner-pin img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 3px solid var(--akcent); background: var(--plocha); box-shadow: var(--stin); }
.partner-pin span { padding: 1px 6px; border-radius: 99px; background: var(--akcent); color: #1b0d05; font-size: 9px; font-weight: 800; letter-spacing: .08em; }
/* partner z dálky: zlatý špendlík o třetinu větší než běžné body, logo a hvězdička v rohu; víc partnerů blízko sebe = zlatá bublina s počtem */
.partner-spendlik { position: relative; width: 44px; height: 44px; }
.partner-spendlik i { position: absolute; inset: 0; display: grid; place-items: center; border-radius: 50% 50% 50% 6px; transform: rotate(-45deg); background: #ffd166; border: 2px solid #fff; box-shadow: 0 4px 12px rgba(0,0,0,.45); }
.partner-spendlik img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; transform: rotate(45deg); background: #fff; }
.partner-spendlik b { position: absolute; top: -6px; right: -7px; width: 19px; height: 19px; display: grid; place-items: center; border-radius: 50%; background: #1b0d05; color: #ffd166; border: 1.5px solid #ffd166; font-size: 11px; line-height: 1; }
.partner-shluk { width: 56px; height: 36px; display: grid; place-items: center; grid-auto-flow: column; justify-content: center; gap: 4px; border-radius: 99px; background: #ffd166; color: #1b0d05; border: 2px solid #fff; box-shadow: 0 4px 12px rgba(0,0,0,.45); font-size: 15px; font-weight: 800; cursor: pointer; }
.partner-shluk b { font-size: 14px; }
.partner-nabidka { margin-top: 10px; padding: 12px 14px; border-radius: var(--r-s); border: 1px solid var(--akcent); background: rgba(255, 122, 61, .08); }
.partner-nabidka p { margin: 6px 0 0; font-size: 14px; }
.nahled-karta.partner-po-ceste { border-color: var(--akcent); }
.nav-partner { position: absolute; left: 10px; right: 10px; bottom: calc(86px + env(safe-area-inset-bottom)); z-index: 1001; padding: 12px 14px; border-radius: var(--r); background: var(--plocha); border: 1px solid var(--akcent); box-shadow: var(--stin); }
.nav-partner p { margin: 6px 0 0; font-size: 15px; }
.nav-partner[hidden] { display: none; }
/* konec navigace: v cíli / ukončit — souhrn jízdy a uložení */
.nav-cil { position: absolute; left: 10px; right: 10px; bottom: calc(86px + env(safe-area-inset-bottom)); z-index: 1002; padding: 14px 16px; border-radius: var(--r); background: var(--plocha); border: 1px solid var(--akcent); box-shadow: var(--stin); max-width: 520px; margin: 0 auto; }
.nav-cil h2 { margin: 0; }
.nav-cil .fakty { margin: 10px 0; }
.nav-cil .tlacitka { margin-top: 10px; }
.nav-cil[hidden] { display: none; }
.akce-datum { font-size: 13px !important; font-weight: 800; line-height: 1.1; text-align: center; background: rgba(255, 122, 61, .16) !important; color: var(--akcent); }
/* Obsah od lidí: pozdravy, trasy, profil, schvalování */
.souhlasy { display: grid; gap: 8px; margin: 14px 0 0; padding: 12px 14px; border: 1px solid var(--hrana); border-radius: var(--r-s); font-size: 14px; }
.souhlasy legend { padding: 0 6px; }
.souhlasy label { display: flex; gap: 10px; align-items: flex-start; line-height: 1.35; }
.souhlasy input { margin-top: 3px; flex: 0 0 auto; width: 18px; height: 18px; accent-color: var(--akcent); }
.nahled-fotky { display: block; width: 100%; height: 240px; background: #1b2420; object-fit: contain; border-radius: var(--r-s); margin-top: 10px; }
.stav-ok { color: var(--zelena); font-weight: 600; }
.koruna { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.koruna-vrchol { padding: 6px 10px; border-radius: 99px; border: 1px solid var(--hrana); background: var(--sklo); font-size: 13px; color: var(--text-2); }
.koruna-vrchol small { color: var(--text-3); }
.koruna-vrchol.mam { background: rgba(255, 122, 61, .16); border-color: var(--akcent); color: var(--text); font-weight: 700; }
.sprava-karta { margin-top: 12px; }
.sprava-karta h3 { margin-top: 10px; }
.nabidka-pozdravu { border-color: var(--akcent); }
label.btn input[type=file] { display: none; }
/* Přihlášení v hlavičce: na mobilu jen ikonka postavy, od 900 px i text (Přihlásit / přezdívka) */
.prihlaseni-btn { margin-left: auto; display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 38px; height: 38px; padding: 0 10px; border-radius: 99px; background: var(--sklo); border: 1px solid var(--hrana); color: var(--text); font-size: 14px; font-weight: 600; white-space: nowrap; }
.prihlaseni-btn:hover { text-decoration: none; }
.prihlaseni-btn span { display: none; max-width: 120px; overflow: hidden; text-overflow: ellipsis; }
.prihlaseni-btn + .cip-zakladna { margin-left: 0; min-width: 0; max-width: calc(100vw - 264px); }
@media (min-width: 900px) { .prihlaseni-btn span { display: inline; } .prihlaseni-btn + .cip-zakladna { max-width: 52vw; } }
.kamera-mista { margin: 0 0 10px; } .kamera-mista img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--r-s); background: var(--sklo); } .kamera-mista figcaption { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.souhlas-radek { display: flex; gap: 10px; align-items: flex-start; margin-top: 12px; font-size: 14px; line-height: 1.4; } .souhlas-radek input { margin-top: 3px; width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--akcent); } .bezpecne { margin-top: 10px; }
/* Příspěvky od lidí: fotka vždy celá (contain) v boxu pevné výšky s neutrálním pozadím, klepnutím ve velkém */
.prispevky-mrizka { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; margin-top: 10px; }
.prispevek-karta { display: grid; gap: 6px; align-content: start; }
.prispevek-karta h3 { margin: 4px 0 0; font-size: 16px; }
.prispevek-karta .stitek { justify-self: start; white-space: normal; }
.foto-box { display: block; width: 100%; height: 220px; padding: 0; border: 1px solid var(--hrana); border-radius: var(--r-s); background: #1b2420; cursor: zoom-in; overflow: hidden; }
.foto-box img { display: block; width: 100%; height: 100%; object-fit: contain; }
.mapka-box { cursor: default; isolation: isolate; z-index: 0; } /* vrstvy Leafletu (z 400) nesmí přes spodní lištu */
.stitek.ne { background: rgba(255, 107, 107, .16); color: #ff9b9b; }
.ai-poznamka { color: var(--text-2); }
.sprava-pruh { margin-bottom: 14px; padding: 12px 14px; border-radius: var(--r-s); background: rgba(255, 209, 102, .14); border: 1px solid rgba(255, 209, 102, .45); color: var(--zluta); font-size: 14px; }
.sprava-zalozky { margin-bottom: 4px; }
.lightbox-prispevek { position: fixed; inset: 0; z-index: 3000; display: grid; place-items: center; padding: 16px; background: rgba(0, 0, 0, .92); }
.lightbox-prispevek img { max-width: 100%; max-height: calc(100dvh - 32px); object-fit: contain; border-radius: 6px; }
.lightbox-prispevek .lb-zavrit { position: absolute; top: calc(12px + env(safe-area-inset-top)); right: 12px; width: 44px; height: 44px; border-radius: 99px; border: 1px solid rgba(255,255,255,.3); background: rgba(0,0,0,.6); color: #fff; font-size: 20px; cursor: pointer; }
.navstevnik-pruh { position: sticky; top: 58px; z-index: 39; padding: 6px 16px; background: rgba(255, 209, 102, .92); color: #1b1405; font-size: 13px; font-weight: 600; text-align: center; }
.navstevnik-pruh button, .odkaz-btn { background: none; border: 0; padding: 0; color: inherit; font: inherit; text-decoration: underline; cursor: pointer; }
.odkaz-btn { color: var(--akcent); }
/* Kolečko profilu v hlavičce + nabídka */
.profil-menu { position: relative; margin-left: auto; }
.avatar-btn { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 10px 0 4px; border-radius: 99px; background: var(--sklo); border: 1px solid var(--hrana); color: var(--text); font: 600 14px/1 inherit; cursor: pointer; }
.avatar-btn:hover { border-color: var(--akcent); }
.avatar { width: 32px; height: 32px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--sklo-2); font-size: 16px; }
.avatar.s-pismenem { background: var(--akcent); color: #1b0d05; font-weight: 800; font-size: 15px; }
.avatar-jmeno { display: none; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.avatar-sipka { font-size: 11px; color: var(--text-2); }
.profil-menu + .cip-zakladna { margin-left: 0; min-width: 0; max-width: calc(100vw - 280px); }
@media (min-width: 900px) { .avatar-jmeno { display: inline; } .profil-menu + .cip-zakladna { max-width: 52vw; } }
.profil-nabidka { position: absolute; right: 0; top: calc(100% + 8px); z-index: 60; min-width: 230px; display: grid; padding: 6px; border-radius: var(--r-s); background: var(--plocha); border: 1px solid var(--hrana); box-shadow: var(--stin); }
.profil-nabidka a, .profil-nabidka button { display: block; padding: 11px 12px; border-radius: 10px; color: var(--text); background: none; border: 0; text-align: left; font: 600 14.5px/1.2 inherit; cursor: pointer; }
.profil-nabidka a:hover, .profil-nabidka button:hover { background: var(--sklo-2); text-decoration: none; }
.profil-nabidka[hidden] { display: none; }
.odkaz-zpet { display: inline-block; margin-bottom: 8px; font-size: 14px; font-weight: 600; }
/* Zeď „Pozdravy z hor“ */
.zed { display: grid; gap: 14px; max-width: 640px; margin: 0 auto; }
.zed-karta { display: grid; gap: 10px; }
.zed-karta h3 { margin: 0; }
.zed-hlava { display: flex; align-items: center; gap: 10px; }
.zed-hlava b { font-size: 15px; }
.zed-reakce { display: flex; flex-wrap: wrap; gap: 8px; }
.reakce { padding: 7px 12px; border-radius: 99px; border: 1px solid var(--hrana); background: var(--sklo); color: var(--text); font: 600 13.5px/1 inherit; cursor: pointer; }
.reakce.moje { border-color: var(--akcent); background: rgba(255, 122, 61, .16); }
.reakce.nahlasit { margin-left: auto; color: var(--text-3); background: none; border-color: transparent; }
.zed-konec { height: 1px; }
.zed-prvni { text-align: center; }
.redakce { border-style: dashed; }
.redakce-stitek { justify-self: start; background: rgba(95, 211, 154, .14); color: var(--zelena); }
/* pohlednice: rámeček s mapkou místa, špendlíkem, výškou, počasím a razítkem */
.pohlednice-ram { position: relative; display: grid; grid-template-columns: 120px 1fr; gap: 12px; align-items: center; padding: 10px; border-radius: var(--r-s); background: #f4efe6; color: #14231f; }
.pohlednice-ram .pohlednice-mapa { width: 120px; height: 90px; object-fit: cover; border-radius: 6px; border: 3px solid #1d5a47; }
.pohlednice-ram .spendlik { position: absolute; left: 66px; top: 36px; font-size: 22px; transform: translate(-50%, -50%); }
.pohlednice-ram div { display: grid; gap: 3px; font-size: 13.5px; }
.pohlednice-ram b { font-size: 15.5px; }
.pohlednice-ram .logo-mini { font-weight: 800; font-size: 12px; color: #14231f; }
.pohlednice-ram .logo-mini i { font-style: normal; color: #b34210; } /* 5,7 : 1 na béžové pohlednici */
.pohlednice-ram .razitko { position: absolute; right: 10px; top: -16px; padding: 5px 10px; border: 3px solid #ff7a3d; border-radius: 6px; background: rgba(255, 255, 255, .9); color: #b34210; font: 800 13px/1 inherit; transform: rotate(-8deg); }

/* ========== VZHLED (31. 10. 2026) — obě varianty, přepíná je skript VZHLED_SKRIPT v <head> (api/_sablona.js, index.html):
   Automaticky = přes den „den“, po setmění „noc“ podle slunce nad Krkonošemi; volba v patičce (localStorage „kd-vzhled“).
   Bez JavaScriptu zůstává původní tmavý vzhled (bez data-vzhled).
   html[data-vzhled="noc"]  „Horská noc“  — hluboká modrozelená noc, karty se stínem, oranžové svítání, smrk, žula
   html[data-vzhled="den"]  „Den na horách“ — mlhově bílá a nebe, stejné karty a vodoznak; čitelné venku na slunci
   Pozadí: obloha (--nebe) + tři vrstvy hor (--hory, inline SVG), fixně pod obsahem; karty jako matné sklo. */

/* ---------- společné pro obě varianty ---------- */
html[data-vzhled] body { position: relative; }
/* pozadí „Sklo nad horami“ (varianta C, vybraná 31. 10. 2026): obloha + vrstvené hory dole, karty jako matné sklo */
html[data-vzhled] body::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background: var(--hory) bottom center / 100% min(58vh, 520px) no-repeat, var(--nebe);
}
html[data-vzhled] { --r: 16px; }
html[data-vzhled] .karta,
html[data-vzhled] .nahled-karta,
html[data-vzhled] .partner-karta {
  border-radius: 16px; background: var(--karta); border: 1px solid var(--karta-okraj); box-shadow: var(--karta-stin);
  -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4);
}
html[data-vzhled] .btn.oranz { background: linear-gradient(135deg, var(--svitani-1), var(--svitani-2)); }

/* ---------- A: Horská noc ---------- */
html[data-vzhled="noc"] {
  --noc: #0f1d1a; --noc-2: #13262a; --plocha: #18302c; --plocha-2: #1f3b36;
  --sklo: rgba(255, 255, 255, .06); --sklo-2: rgba(255, 255, 255, .11); --hrana: rgba(255, 255, 255, .13);
  --text: #f1f6f3; --text-2: #bccbc5; --text-3: #93a69e;            /* na #18302c: 13,9 / 8,8 / 5,6 : 1 — AA */
  --akcent: #ff8a4c; --led: #9fdcf0; --zelena: #6fd3a0;
  --karta: linear-gradient(180deg, rgba(44,78,72,.55), rgba(24,46,42,.45)); --karta-okraj: rgba(220, 245, 235, .22);
  --karta-stin: inset 0 1px 0 rgba(255,255,255,.16), 0 20px 46px -10px rgba(0,0,0,.6);
  --nebe: radial-gradient(70% 40% at 85% 5%, rgba(255,138,76,.30), transparent 65%), radial-gradient(80% 45% at 5% 30%, rgba(95,211,154,.24), transparent 65%), radial-gradient(70% 40% at 60% 55%, rgba(110,170,220,.20), transparent 65%), linear-gradient(180deg, #0a1616 0%, #12262c 55%, #234a4c 100%);
  --hory: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 400' preserveAspectRatio='xMidYMax slice'%3E%3Cpath d='M0 400 L0 223 L15 228 L30 232 L45 235 L60 238 L75 242 L90 243 L105 241 L120 237 L135 234 L150 235 L165 237 L180 239 L195 239 L210 240 L225 242 L240 244 L255 244 L270 242 L285 240 L300 241 L315 246 L330 253 L345 259 L360 264 L375 270 L390 277 L405 283 L420 285 L435 284 L450 282 L465 282 L480 284 L495 285 L510 285 L525 283 L540 282 L555 281 L570 277 L585 270 L600 260 L615 251 L630 245 L645 241 L660 236 L675 230 L690 224 L705 220 L720 216 L735 210 L750 201 L765 191 L780 183 L795 180 L810 179 L825 179 L840 181 L855 185 L870 192 L885 198 L900 202 L915 202 L930 202 L945 203 L960 205 L975 208 L990 209 L1005 210 L1020 214 L1035 219 L1050 224 L1065 225 L1080 224 L1095 224 L1110 228 L1125 233 L1140 238 L1155 243 L1170 250 L1185 258 L1200 267 L1200 400 Z' fill='%236aa3ab' fill-opacity='.5'/%3E%3Cpath d='M0 400 L0 274 L15 274 L30 275 L45 277 L60 277 L75 276 L90 276 L105 280 L120 286 L135 294 L150 299 L165 304 L180 309 L195 313 L210 316 L225 315 L240 310 L255 305 L270 301 L285 297 L300 290 L315 280 L330 269 L345 261 L360 254 L375 249 L390 245 L405 245 L420 250 L435 260 L450 272 L465 283 L480 293 L495 301 L510 309 L525 315 L540 317 L555 315 L570 312 L585 311 L600 311 L615 312 L630 310 L645 308 L660 306 L675 305 L690 301 L705 295 L720 286 L735 278 L750 273 L765 270 L780 267 L795 263 L810 260 L825 259 L840 259 L855 257 L870 253 L885 247 L900 244 L915 244 L930 245 L945 247 L960 248 L975 252 L990 257 L1005 263 L1020 266 L1035 267 L1050 268 L1065 270 L1080 274 L1095 278 L1110 282 L1125 285 L1140 290 L1155 296 L1170 301 L1185 302 L1200 302 L1200 400 Z' fill='%232f5f5a' fill-opacity='.85'/%3E%3Cpath d='M0 400 L0 334 L15 335 L30 334 L45 332 L60 331 L75 331 L90 333 L105 335 L120 335 L135 335 L150 334 L165 334 L180 334 L195 333 L210 331 L225 331 L240 334 L255 339 L270 343 L285 346 L300 349 L315 352 L330 355 L345 356 L360 357 L375 356 L390 357 L405 360 L420 364 L435 365 L450 365 L465 365 L480 364 L495 362 L510 358 L525 353 L540 348 L555 344 L570 343 L585 342 L600 339 L615 337 L630 335 L645 334 L660 333 L675 330 L690 327 L705 326 L720 327 L735 330 L750 333 L765 335 L780 337 L795 340 L810 343 L825 345 L840 344 L855 342 L870 342 L885 344 L900 346 L915 347 L930 347 L945 348 L960 349 L975 350 L990 349 L1005 347 L1020 345 L1035 345 L1050 347 L1065 350 L1080 353 L1095 355 L1110 359 L1125 363 L1140 367 L1155 368 L1170 367 L1185 367 L1200 368 L1200 400 Z' fill='%230d1d1b' fill-opacity='1'/%3E%3C/svg%3E");
  --svitani-1: #ff9a5a; --svitani-2: #f26b3a;                       /* oranžové svítání */
}
html[data-vzhled="noc"] body { background: #0b1615; }
html[data-vzhled="noc"] .hledani { background: rgba(14, 28, 26, .82); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
html[data-vzhled="noc"] .lista { background: rgba(15, 29, 26, .82); }
html[data-vzhled="noc"] .nacrt-pruh { background: #2b1c12; }
html[data-vzhled="noc"] .spodni { background: rgba(15, 29, 26, .92); }

/* ---------- B: Den na horách ---------- */
html[data-vzhled="den"] {
  color-scheme: light;
  --noc: #eef3f2; --noc-2: #e4eef0; --plocha: #ffffff; --plocha-2: #f4f8f7;
  --sklo: rgba(16, 50, 42, .05); --sklo-2: rgba(16, 50, 42, .09); --hrana: rgba(16, 50, 42, .14);
  --text: #12241f; --text-2: #3f534c; --text-3: #586b64;            /* na bílé: 16,2 / 8,0 / 5,6 : 1 — AA */
  --akcent: #b34210; --akcent-2: #a83d0c;                          /* oranž na bílé 5,7 : 1, na pozadí 5,1 : 1 */ --led: #0b6b88; --zelena: #1d7a50; --cervena: #c0392b; --zluta: #765300;
  --karta: linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,.58)); --karta-okraj: rgba(255, 255, 255, .9);
  --karta-stin: inset 0 1px 0 #fff, 0 22px 46px -12px rgba(16,50,42,.28);
  --nebe: radial-gradient(70% 40% at 85% 5%, rgba(255,190,120,.55), transparent 65%), radial-gradient(80% 45% at 0% 30%, rgba(120,200,170,.40), transparent 65%), radial-gradient(70% 40% at 60% 55%, rgba(140,190,235,.40), transparent 65%), linear-gradient(180deg, #c6e2f0 0%, #e4f0ee 55%, #eef2e8 100%);
  --hory: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 400' preserveAspectRatio='xMidYMax slice'%3E%3Cpath d='M0 400 L0 223 L15 228 L30 232 L45 235 L60 238 L75 242 L90 243 L105 241 L120 237 L135 234 L150 235 L165 237 L180 239 L195 239 L210 240 L225 242 L240 244 L255 244 L270 242 L285 240 L300 241 L315 246 L330 253 L345 259 L360 264 L375 270 L390 277 L405 283 L420 285 L435 284 L450 282 L465 282 L480 284 L495 285 L510 285 L525 283 L540 282 L555 281 L570 277 L585 270 L600 260 L615 251 L630 245 L645 241 L660 236 L675 230 L690 224 L705 220 L720 216 L735 210 L750 201 L765 191 L780 183 L795 180 L810 179 L825 179 L840 181 L855 185 L870 192 L885 198 L900 202 L915 202 L930 202 L945 203 L960 205 L975 208 L990 209 L1005 210 L1020 214 L1035 219 L1050 224 L1065 225 L1080 224 L1095 224 L1110 228 L1125 233 L1140 238 L1155 243 L1170 250 L1185 258 L1200 267 L1200 400 Z' fill='%23a9cbdc' fill-opacity='.7'/%3E%3Cpath d='M0 400 L0 274 L15 274 L30 275 L45 277 L60 277 L75 276 L90 276 L105 280 L120 286 L135 294 L150 299 L165 304 L180 309 L195 313 L210 316 L225 315 L240 310 L255 305 L270 301 L285 297 L300 290 L315 280 L330 269 L345 261 L360 254 L375 249 L390 245 L405 245 L420 250 L435 260 L450 272 L465 283 L480 293 L495 301 L510 309 L525 315 L540 317 L555 315 L570 312 L585 311 L600 311 L615 312 L630 310 L645 308 L660 306 L675 305 L690 301 L705 295 L720 286 L735 278 L750 273 L765 270 L780 267 L795 263 L810 260 L825 259 L840 259 L855 257 L870 253 L885 247 L900 244 L915 244 L930 245 L945 247 L960 248 L975 252 L990 257 L1005 263 L1020 266 L1035 267 L1050 268 L1065 270 L1080 274 L1095 278 L1110 282 L1125 285 L1140 290 L1155 296 L1170 301 L1185 302 L1200 302 L1200 400 Z' fill='%237fae9f' fill-opacity='.8'/%3E%3Cpath d='M0 400 L0 334 L15 335 L30 334 L45 332 L60 331 L75 331 L90 333 L105 335 L120 335 L135 335 L150 334 L165 334 L180 334 L195 333 L210 331 L225 331 L240 334 L255 339 L270 343 L285 346 L300 349 L315 352 L330 355 L345 356 L360 357 L375 356 L390 357 L405 360 L420 364 L435 365 L450 365 L465 365 L480 364 L495 362 L510 358 L525 353 L540 348 L555 344 L570 343 L585 342 L600 339 L615 337 L630 335 L645 334 L660 333 L675 330 L690 327 L705 326 L720 327 L735 330 L750 333 L765 335 L780 337 L795 340 L810 343 L825 345 L840 344 L855 342 L870 342 L885 344 L900 346 L915 347 L930 347 L945 348 L960 349 L975 350 L990 349 L1005 347 L1020 345 L1035 345 L1050 347 L1065 350 L1080 353 L1095 355 L1110 359 L1125 363 L1140 367 L1155 368 L1170 367 L1185 367 L1200 368 L1200 400 Z' fill='%234f7f6e' fill-opacity='.9'/%3E%3C/svg%3E");
  --stin: 0 14px 40px rgba(16, 50, 42, .16);
  --svitani-1: #b8430f; --svitani-2: #a83d0c;                      /* bílý text tlačítka 5,5–6,3 : 1 */
}
html[data-vzhled="den"] body { background: #eef2ec; }
html[data-vzhled="den"] .lista { background: rgba(246, 250, 249, .86); }
html[data-vzhled="den"] .spodni { background: rgba(250, 252, 251, .94); }
html[data-vzhled="den"] .logo svg rect { fill: #1d5a47; }
html[data-vzhled="den"] .btn.oranz { color: #fff; }
html[data-vzhled="den"] .hor-nav a.aktivni { background: #12241f; color: #fff; }
html[data-vzhled="den"] .hledani, html[data-vzhled="den"] .mapa-cipy .cip, html[data-vzhled="den"] .trasa-pruh,
html[data-vzhled="den"] .kotvy, html[data-vzhled="den"] .kul-btn { background: rgba(255, 255, 255, .92); }
html[data-vzhled="den"] .hledani { background: rgba(255, 255, 255, .94); }
html[data-vzhled="den"] .stitek.partner { color: #fff; }
html[data-vzhled="den"] .mapa-cipy .cip[aria-pressed="true"] { background: var(--text); color: #fff; }
html[data-vzhled="den"] .nacrt-pruh { background: #fff1d6; color: #5a3d00; }            /* 9,8 : 1 */
/* přes fotku nebo kameru zůstává bílý text a tmavé sklo (čitelné na každé fotce) */
html[data-vzhled="den"] .mesto-hero, html[data-vzhled="den"] .mesto-hero .povidani { color: #fff; }
html[data-vzhled="den"] .mesto-hero .btn.sklo-btn, html[data-vzhled="den"] .mesto-hero .sklo { background: rgba(10, 18, 16, .55); color: #fff; border-color: rgba(255, 255, 255, .25); }
html[data-vzhled="den"] .hero-zdroj { color: rgba(255, 255, 255, .85); }
html[data-vzhled="den"] .avatar.s-pismenem { color: #fff; }
/* fotky a kamery mají vlastní tmavý přechod pro čitelnost bílého textu — necháváme */

/* B: prvky, které měly natvrdo tmavé sklo a bílý text mimo fotky */
html[data-vzhled="den"] .kul-btn, html[data-vzhled="den"] .leaflet-bar a { color: var(--text) !important; }
html[data-vzhled="den"] .leaflet-bar a { background: rgba(255, 255, 255, .94) !important; }
html[data-vzhled="den"] .leaflet-control-attribution { background: rgba(255, 255, 255, .85) !important; }
html[data-vzhled="den"] .nav-pak, html[data-vzhled="den"] .nav-displej, html[data-vzhled="den"] .nav-stred, html[data-vzhled="den"] .nav-spodni { background: rgba(255, 255, 255, .94); color: var(--text); }
html[data-vzhled="den"] .nav-pokyn { color: #fff; }
html[data-vzhled="den"] .nav-pokyn * { color: inherit; }
html[data-vzhled="den"] .nahled-karta .nahled .ik, html[data-vzhled="den"] .nahled-karta .nahled .vzd, html[data-vzhled="den"] .k-sipka { color: #fff; }
html[data-vzhled="den"] .nahled-fotky, html[data-vzhled="den"] .foto-box { background: #e4ecea; }
html[data-vzhled="den"] #mapa { background: #e8efe9; }
html[data-vzhled="den"] .stitek.zive, html[data-vzhled="den"] .stitek.ne, html[data-vzhled="den"] .ot-ne, html[data-vzhled="den"] .chyba { color: #a8261c; }   /* 6 : 1 na světlé */
html[data-vzhled="den"] .k-hore .stitek.zive { color: #ffb3b3; }
html[data-vzhled="den"] .akce-datum { background: rgba(179, 66, 16, .08) !important; color: #9a380c; }
html[data-vzhled="den"] #trasaPruhOtevrit b, html[data-vzhled="den"] .kul-btn.oranz, html[data-vzhled="den"] .partner-pin span, html[data-vzhled="den"] .nav-konec, html[data-vzhled="den"] .nav-sipka { color: #fff; }
html[data-vzhled="den"] .statik .hlava { background: rgba(246, 250, 249, .9); }
html[data-vzhled="noc"] .statik .hlava { background: rgba(15, 29, 26, .9); }

/* ---------- přepínač vzhledu v patičce ---------- */
.vzhled-volba { display: inline-flex; gap: 2px; padding: 3px; border-radius: 99px; border: 1px solid var(--hrana); background: var(--sklo); }
.vzhled-volba button { border: 0; border-radius: 99px; padding: 6px 11px; background: none; color: var(--text-2); font: 600 12.5px/1 var(--font, inherit); cursor: pointer; }
.vzhled-volba button[aria-pressed="true"] { background: var(--plocha); color: var(--text); box-shadow: 0 1px 3px rgba(0, 0, 0, .18); }
html:not([data-vzhled]) .vzhled-volba { display: none; }
/* přepínač jazyka (CZ · PL · DE) — stejný vzhled jako přepínač vzhledu */
.jazyk-volba { display: inline-flex; gap: 2px; padding: 3px; border-radius: 99px; border: 1px solid var(--hrana); background: var(--sklo); vertical-align: middle; }
.jazyk-volba a { border-radius: 99px; padding: 6px 10px; color: var(--text-2); font: 600 12.5px/1 var(--font, inherit); text-decoration: none; }
.jazyk-volba a[aria-current="true"] { background: var(--plocha); color: var(--text); box-shadow: 0 1px 3px rgba(0, 0, 0, .18); }
.hlava-vpravo { display: inline-flex; align-items: center; gap: 10px; }
@media (max-width: 520px) { .hlava-vpravo .jazyk-volba a { padding: 6px 7px; } }
/* Malá nabídka jazyka v hlavičce („CZ ▾“); plný přepínač zůstává v patičce */
.jazyk-menu { position: relative; flex: none; }
.jazyk-menu summary { list-style: none; display: inline-flex; align-items: center; gap: 5px; height: 38px; padding: 0 10px; border-radius: 99px; background: var(--sklo); border: 1px solid var(--hrana); color: var(--text); font: 600 13px/1 var(--font, inherit); cursor: pointer; user-select: none; -webkit-user-select: none; }
.jazyk-menu summary::-webkit-details-marker { display: none; }
.jazyk-menu summary span { font-size: 10px; color: var(--text-2); }
.jazyk-menu summary:hover, .jazyk-menu[open] summary { border-color: var(--akcent); }
.jazyk-nabidka { position: absolute; right: 0; top: calc(100% + 8px); z-index: 60; min-width: 150px; display: grid; padding: 6px; border-radius: var(--r-s); background: var(--plocha); border: 1px solid var(--hrana); box-shadow: var(--stin); }
.jazyk-nabidka a { display: flex; align-items: center; gap: 10px; padding: 11px 12px; border-radius: 10px; color: var(--text); font: 500 14.5px/1.2 var(--font, inherit); text-decoration: none; }
.jazyk-nabidka a b { width: 24px; font-weight: 700; }
.jazyk-nabidka a:hover { background: var(--sklo); text-decoration: none; }
.jazyk-nabidka a[aria-current="true"] { background: var(--sklo-2); }
.lista .jazyk-menu { margin-left: auto; }
.lista .jazyk-menu + .profil-menu { margin-left: 0; }
.lista .jazyk-menu summary { height: 40px; }
@media (max-width: 400px) { .lista { gap: 6px; } .lista .logo { font-size: 16px; gap: 7px; } .lista .logo svg { width: 26px; height: 26px; } .lista .avatar-sipka { display: none; } .lista .avatar-btn { padding-right: 4px; } .lista .jazyk-menu summary { padding: 0 8px; } }

/* Bublina partnera na mapě (zastávka, cíl, partner u trasy) */
.partner-popup .leaflet-popup-content { margin: 12px; }
.partner-bublina .pb-foto { display: block; width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 10px; margin-bottom: 8px; }
.partner-bublina p { margin: 0; }
.partner-bublina .pb-jm { margin: 6px 0 2px; font-size: 15px; }
.partner-bublina .pb-text { margin-top: 6px; color: var(--text-2); }
.partner-bublina .akce { display: inline-block; margin-top: 6px; }
.partner-bublina .tlacitka { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
@media (max-width: 899px) { .partner-bublina .pb-foto { aspect-ratio: 2.4/1; } }
.partner-bublina.kratka .pb-jm { margin-top: 8px; }

/* Obsah jen pro polskou verzi (např. aplikace Ratunek od GOPR v článku Bezpečně na horách) */
html:not([lang="pl"]) .jen-pl { display: none !important; }
html:not([lang="cs"]) .jen-cs { display: none !important; }
