/* Dojedeme – společný základ webu (design/BRAND.md). Načítat PO tokens.css. Komponenty nepoužívají hex přímo. */
/* Písmo: Source Sans 3 (Adobe, licence OFL) – klidné, dobře čitelné i v delším textu, běžné nuly a česká diakritika.
   Atkinson Hyperlegible (přeškrtnuté nuly, výrazné tvary) jsme po zpětné vazbě opustili; zůstává jen v logu (křivky). */
@font-face { font-family: "Source Sans 3"; src: url("/static/fonts/SourceSans3-latin.woff2") format("woff2"); font-weight: 200 900; font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Source Sans 3"; src: url("/static/fonts/SourceSans3-latin-ext.woff2") format("woff2"); font-weight: 200 900; font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
:root { --font-sans: "Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
        --font-mono: var(--font-sans);   /* žádné strojové písmo – časy jsou v běžném písmu s číslicemi stejné šířky */
        --sirka: 1120px;
        /* Source Sans má menší střední výšku než Atkinson → o stupeň větší text, nadpisy 700 místo 800 */
        --text-display: 700 58px/62px var(--font-sans); --text-h1: 700 46px/52px var(--font-sans);
        --text-h2: 700 34px/40px var(--font-sans); --text-h3: 600 26px/32px var(--font-sans);
        --text-lead: 400 23px/35px var(--font-sans); --text-body: 400 21px/33px var(--font-sans);
        --text-body-s: 400 19px/29px var(--font-sans); --text-label: 600 19px/25px var(--font-sans);
        --text-time: 700 32px/36px var(--font-sans); --text-sms: 400 22px/32px var(--font-sans); }
@media (max-width: 720px) {
  :root { --text-display: 700 40px/44px var(--font-sans); --text-h1: 700 35px/41px var(--font-sans); --text-h2: 700 28px/34px var(--font-sans); }
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--color-bg); color: var(--color-ink); font: var(--text-body); font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img, svg { max-width: 100%; }
.leaflet-container img, .leaflet-container svg { max-width: none; }   /* jinak se rozpadnou vrstvy mapy */
a { color: var(--color-primary); text-underline-offset: 3px; }
a:hover { color: var(--color-primary-press); }
:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; border-radius: 4px; }
h1 { font: var(--text-h1); margin: 0 0 var(--space-4); }
h2 { font: var(--text-h2); margin: 0 0 var(--space-4); }
h3 { font: var(--text-h3); margin: 0 0 var(--space-3); }
p { margin: 0 0 var(--space-4); }
.lead { font: var(--text-lead); color: var(--color-ink-2); }
.male { font: var(--text-body-s); color: var(--color-ink-2); }
.zdroj { font: var(--text-body-s); color: var(--color-ink-3); }
.cas { font: var(--text-time); font-variant-numeric: tabular-nums; }
.obal { max-width: var(--sirka); margin: 0 auto; padding: 0 var(--space-4); }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.preskocit { position: absolute; left: -9999px; top: var(--space-3); background: var(--color-bg); color: var(--color-ink); padding: var(--space-3) var(--space-4); z-index: 100; border-radius: var(--radius-s); }
.preskocit:focus { left: var(--space-4); }

/* hlavička a patička (šablona: web/_sablona.html) */
.web-hlavicka { background: color-mix(in srgb, var(--color-bg) 92%, transparent); backdrop-filter: saturate(1.2) blur(8px);
  border-bottom: 1px solid var(--color-border); position: sticky; top: 0; z-index: 50; }
.web-hlavicka .obal { display: flex; align-items: center; gap: var(--space-5); min-height: 72px; flex-wrap: wrap; }
.znacka { display: inline-flex; align-items: center; gap: var(--space-3); text-decoration: none; color: var(--color-ink); font: 800 26px/1 var(--font-sans); }
/* značka D-smyčka (design/logo) – span.tecka v šabloně se vykreslí jako logo */
.znacka .tecka { width: 34px; height: 34px; background: url("/static/img/dojedeme-mark-light.svg") center / contain no-repeat; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .znacka .tecka { background-image: url("/static/img/dojedeme-mark-dark.svg"); } }
:root[data-theme="dark"] .znacka .tecka { background-image: url("/static/img/dojedeme-mark-dark.svg"); }
.web-nav { display: flex; gap: var(--space-2); flex-wrap: wrap; margin-left: auto; }
.web-nav a { font: var(--text-label); color: var(--color-ink-2); text-decoration: none; padding: var(--space-3) var(--space-3); min-height: var(--touch-web);
  display: inline-flex; align-items: center; border-bottom: 3px solid transparent; }
.web-nav a:hover { color: var(--color-ink); border-bottom-color: var(--color-border-strong); }
.web-nav a[aria-current="page"] { color: var(--color-ink); border-bottom-color: var(--color-primary); }
/* přepínač světlý/tmavý vzhled (vkládá ho dojedeme.js) */
.prepinac-vzhledu { display: inline-flex; align-items: center; justify-content: center; flex: none; width: var(--touch-web); height: var(--touch-web); padding: 0;
  color: var(--color-ink-2); background: transparent; border: 1px solid var(--color-border-strong); border-radius: var(--radius-m); cursor: pointer; }
.prepinac-vzhledu:hover { color: var(--color-ink); border-color: var(--color-ink-2); }
.prepinac-vzhledu i { font-size: 22px; }
/* výrazné tlačítko do systému pro blízké (vkládá ho dojedeme.js) */
.tlacitko-system { display: inline-flex; align-items: center; gap: var(--space-2); flex: none; min-height: var(--touch-web); padding: 0 var(--space-4);
  font: var(--text-label); font-family: var(--font-sans); white-space: nowrap; text-decoration: none;
  color: var(--color-on-primary); background: var(--color-primary); border: 2px solid var(--color-primary); border-radius: var(--radius-m); }
.tlacitko-system:hover { background: var(--color-primary-press); border-color: var(--color-primary-press); color: var(--color-on-primary); }
.tlacitko-system i { font-size: 22px; }
.tlacitko-system[aria-current="page"] { background: var(--color-primary-tint); color: var(--color-primary); border-color: var(--color-primary); }
.tlacitko-system .kratky { display: none; }
.web-paticka { background: var(--color-bg-subtle); border-top: 1px solid var(--color-border); margin-top: var(--space-8); padding: var(--space-7) 0; font: var(--text-body-s); color: var(--color-ink-2); }
.web-paticka .obal { display: grid; gap: var(--space-5); grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.web-paticka h2 { font: var(--text-label); color: var(--color-ink); margin-bottom: var(--space-3); }
.web-paticka ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }

/* ---------- kostra stránky: stejná na všech stránkách (orientace) ----------
   <header class="stranka-hlava"><div class="obal"> h1 (= název v menu) + p.lead + volitelně nav.stranka-menu / .akce-hlavy </div></header>
   <section class="oddil"><div class="obal"> <div class="oddil-hlava"> h2 + p </div> … </div></section>  (oddíly dělí tenká čára)
   .obal-uzky = šířka pro formuláře a postupy, zarovnaná k levé hraně jako nadpis */
.stranka-hlava { background: var(--color-bg-subtle); border-bottom: 1px solid var(--color-border); padding: var(--space-7) 0 var(--space-6); }
.stranka-hlava h1 { font: var(--text-h1); margin: 0 0 var(--space-3); text-wrap: balance; }
.stranka-hlava .lead { max-width: 60ch; margin: 0; color: var(--color-ink-2); }
.akce-hlavy { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-5); margin-top: var(--space-5); }
.stranka-menu { margin-top: var(--space-5); }
.stranka-menu ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); }
.stranka-menu a { display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--touch-web); font: var(--text-label);
  color: var(--color-primary); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.stranka-menu a::before { content: "↓"; text-decoration: none; display: inline-block; }
.oddil { padding: var(--space-8) 0; scroll-margin-top: 80px; }
.oddil + .oddil { border-top: 1px solid var(--color-border); }
.oddil-hlava { max-width: 62ch; margin-bottom: var(--space-6); }
.oddil-hlava h2 { margin-bottom: var(--space-3); }
.oddil-hlava p { color: var(--color-ink-2); margin: 0; }
.obal-uzky { max-width: 760px; }
@media (max-width: 720px) {
  .stranka-hlava { padding: var(--space-6) 0 var(--space-5); }
  .oddil { padding: var(--space-7) 0; }
}

/* tlačítka – jedno hlavní na obrazovku, text = sloveso + cíl */
.tlacitko { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: var(--touch-web); padding: var(--space-2) var(--space-5); text-align: center;
  border-radius: var(--radius-m); font: var(--text-label); text-decoration: none; cursor: pointer; border: 2px solid transparent;
  background: var(--color-primary); color: var(--color-on-primary); }
.tlacitko:hover { background: var(--color-primary-press); color: var(--color-on-primary); }
.tlacitko.vedlejsi { background: transparent; color: var(--color-primary); border-color: var(--color-border-strong); }
.tlacitko.vedlejsi:hover { background: var(--color-primary-tint); color: var(--color-primary); }
.tlacitko.signal { background: var(--color-signal); color: var(--color-on-signal); }
.tlacitko.signal:hover { filter: brightness(.95); color: var(--color-on-signal); }
.tlacitko[disabled], .tlacitko[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
.tlacitko.velke { min-height: var(--touch-simple); padding: 0 var(--space-6); font-size: 20px; }

/* karty a stavové bloky */
.karta { background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius-m); padding: var(--space-5); }
.karta.tint { background: var(--color-primary-tint); border-color: transparent; box-shadow: none; }
.blok { display: flex; gap: var(--space-3); align-items: flex-start; border-radius: var(--radius-m); padding: var(--space-4); font: var(--text-body-s); }
.blok .ikona { flex: none; font-size: 26px; line-height: 1; margin-top: 1px; }
.blok.upozorneni { background: var(--color-warning-bg); color: var(--color-warning); }
.blok.upozorneni .ikona { color: var(--color-warning-icon); }
.blok.info { background: var(--color-info-bg); color: var(--color-info); }
.blok.chyba { background: var(--color-error-bg); color: var(--color-error); }
.blok.uspech { background: var(--color-success-bg); color: var(--color-success); }
.blok strong { display: block; }
.odznak { display: inline-flex; align-items: center; gap: var(--space-1); font: var(--text-label); padding: 2px var(--space-3); border-radius: var(--radius-s); }
.odznak.nabira { background: var(--color-success-bg); color: var(--color-success); }
.odznak.neutralni { background: var(--color-bg-sunken); color: var(--color-ink-2); }

/* formuláře */
label { font: var(--text-label); display: block; margin-bottom: var(--space-2); }
input[type="text"], input[type="tel"], input[type="search"], input[type="password"], input[type="date"], input[type="time"], select {
  width: 100%; min-height: var(--touch-web); font: var(--text-body); font-family: var(--font-sans); color: var(--color-ink);
  background: var(--color-bg); border: 2px solid var(--color-border-strong); border-radius: var(--radius-m); padding: 0 var(--space-4); }
input:focus-visible, select:focus-visible { border-color: var(--color-focus); }
.napoveda-pole { font: var(--text-body-s); color: var(--color-ink-2); margin-top: var(--space-2); }
.zaskrtavatko { display: flex; gap: var(--space-3); align-items: flex-start; font: var(--text-body-s); }
.zaskrtavatko input { width: 28px; height: 28px; flex: none; accent-color: var(--color-primary); margin: 0; }

/* našeptávač */
.naseptavac { position: relative; }
.naseptavac ul { list-style: none; margin: var(--space-2) 0 0; padding: var(--space-2); background: var(--color-bg); border: 1px solid var(--color-border);
  border-radius: var(--radius-m); box-shadow: var(--shadow-2); position: absolute; left: 0; right: 0; z-index: 20; max-height: 360px; overflow: auto; }
.naseptavac li button { width: 100%; text-align: left; font: var(--text-body-s); font-family: var(--font-sans); padding: var(--space-3); min-height: var(--touch-web);
  background: none; border: 0; border-radius: var(--radius-s); color: var(--color-ink); cursor: pointer; }
.naseptavac li button:hover, .naseptavac li button:focus-visible { background: var(--color-primary-tint); }

/* SMS bublina (ukázky SMS) */
.sms { font: var(--text-sms); background: var(--color-bg-sunken); color: var(--color-ink); border-radius: var(--radius-l) var(--radius-l) var(--radius-l) var(--radius-s);
  padding: var(--space-4) var(--space-5); max-width: 560px; overflow-wrap: anywhere; }
.sms.odeslana { background: var(--color-primary); color: var(--color-on-primary); border-radius: var(--radius-l) var(--radius-l) var(--radius-s) var(--radius-l); margin-left: auto; width: fit-content; }

/* mapa – legenda dostupnosti (barvy Map1…Map6, šrafování = bez spojení) */
.legenda { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); font: var(--text-body-s); align-items: center; }
.legenda i { display: inline-block; width: 22px; height: 22px; border-radius: 4px; vertical-align: -5px; margin-right: var(--space-2); border: 1px solid var(--color-border); }
.legenda .m1 { background: var(--color-map-1); } .legenda .m2 { background: var(--color-map-2); } .legenda .m3 { background: var(--color-map-3); }
.legenda .m4 { background: var(--color-map-4); } .legenda .m5 { background: var(--color-map-5); } .legenda .m6 { background: var(--color-map-6); }
.legenda .m0 { background: repeating-linear-gradient(45deg, var(--color-map-none) 0 3px, transparent 3px 7px); }

.skeleton { background: linear-gradient(90deg, var(--color-bg-subtle), var(--color-bg-sunken), var(--color-bg-subtle)); background-size: 200% 100%; border-radius: var(--radius-m); min-height: 24px; }
@media (prefers-reduced-motion: no-preference) { .skeleton { animation: tepot 1.4s ease-in-out infinite; } }
@keyframes tepot { 0% { background-position: 200% 0 } 100% { background-position: -200% 0 } }
/* tablet (např. iPad na výšku, 820 px): víc vzduchu u okraje, hlavička v jednom řádku (přepínač vzhledu jen jako ikona) */
@media (max-width: 1200px) { .obal { padding: 0 var(--space-6); } }
/* tablet: nahoře značka, vzhled a tlačítko do systému, menu na druhém řádku */
@media (max-width: 1100px) {
  .web-hlavicka .obal { gap: var(--space-3) var(--space-4); padding-top: var(--space-3); min-height: 0; }
  .web-nav { order: 2; width: 100%; margin-left: calc(-1 * var(--space-2)); flex-wrap: nowrap; gap: 0; }
  .web-nav a { padding: var(--space-2) var(--space-2) var(--space-3); white-space: nowrap; }
  .prepinac-vzhledu { order: 1; margin-left: auto; }
  .tlacitko-system { order: 1; }
}

/* mobil: hlavička nelepí (navigace se zalomí a zabrala by třetinu obrazovky) a je neprůhledná */
@media (max-width: 720px) {
  .obal { padding-left: var(--space-4); padding-right: var(--space-4); }
  .web-hlavicka { position: static; background: var(--color-bg); backdrop-filter: none; }
  .web-hlavicka .obal { padding-top: var(--space-3); padding-bottom: var(--space-2); gap: var(--space-2); min-height: 0; }
  .web-nav { margin-left: calc(-1 * var(--space-3)); width: calc(100% + var(--space-3)); gap: 0; order: 2; flex-wrap: wrap; }
  .prepinac-vzhledu { order: 1; margin-left: auto; }
  .znacka { font-size: 24px; }
  .tlacitko-system { padding: 0 var(--space-3); }
  .tlacitko-system i { display: none; }
  .tlacitko-system .dlouhy { display: none; }
  .tlacitko-system .kratky { display: inline; }
}
