/* ====================================================================
   style.css — paleta, reset, kontejner. Nic víc.

   Vzhled dlaždic bydlí v inline stylech v src/ (h() bere `style` objekt) —
   tady je jen to, co TypeScript neumí nebo co nesmí být na dvou místech:

     1. PALETA jako custom properties. Jediný zdroj pravdy; TS na ni sahá
        přes var(--…) (src/weather/theme.ts). Dřív byla zkopírovaná
        v main.ts i widgets.ts.
     2. DVOJICE HODNOT (min-height: 100vh; min-height: 100dvh) — inline styl
        přes Object.assign(el.style, …) fallback dvojici neumí, druhý zápis
        první přepíše i tam, kde prohlížeč dvh nezná.
     3. Globální reset a písma.
==================================================================== */

:root {
  --bg: #121211;
  --tile: #1c1c1a;
  --tile2: #232320;
  --text: #f2f1ea;
  --muted: #7d7b72;
  --line: rgba(255, 255, 255, 0.08);

  /* Barva nese informaci, ne náladu: jantarová = teplota, modrá = voda.
     Nic jiného barevného na obrazovce není. */
  --warm: #EF9F27;      /* teplota vysoká */
  --warm-dim: #BA7517;  /* teplota střední */
  --warm-deep: #854F0B; /* teplota nízká */
  --water: #85B7EB;     /* srážky, vlhkost */
  --danger: #E24B4A;    /* odebrat */

  /* Čísla monospace, popisky sans — číslice mají konstantní šířku, takže
     při přechodu z 8,4° na 12,1° neposkakuje layout. */
  --mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --sans: "Inter", system-ui, -apple-system, sans-serif;
}

/* ---------- barevná témata ----------
   Mění se JEN neutrální tóny (pozadí, dlaždice, text, linky). Jantarová
   a modrá zůstávají napříč tématy stejné, protože nesou informaci — kdyby
   „modré téma" přebarvilo teplotu na modro, splynula by teplota s vodou
   a celé pravidlo „barva nese informaci" by padlo.

   Výchozí (bez atributu) je teplá tmavá, `data-tema` na <html> přepíná. */

:root[data-tema="modra"] {
  --bg: #0b1220;
  --tile: #141d2e;
  --tile2: #1c2839;
  --text: #e6edf7;
  --muted: #7383a0;
  --line: rgba(150, 190, 255, 0.13);
}

:root[data-tema="zelena"] {
  --bg: #0a1410;
  --tile: #12211a;
  --tile2: #1a2d23;
  --text: #e6f3ea;
  --muted: #74907f;
  --line: rgba(150, 255, 195, 0.12);
}

* { box-sizing: border-box; }

html, body { margin: 0; }

body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
}

input, button { font-family: inherit; }

/* Klávesnice musí být vidět (dlaždice odebírá <button>, města jsou klikací). */
:focus-visible { outline: 2px solid var(--warm); outline-offset: 2px; }

::selection { background: var(--warm); color: var(--bg); }

/* Kontejner appky — jedna stránka, jeden layout, mřížka se přeteče sama.
   min-height dvojmo: 100vh fallback, 100dvh počítá s odscrollovanou URL
   lištou na mobilu (jinak obsah přeteče přesně o její výšku). */
.screen {
  max-width: min(100%, 900px);
  margin: 0 auto;
  padding: 18px 16px calc(16px + env(safe-area-inset-bottom));
  min-height: 100vh;
  min-height: 100dvh;
}

/* Dlaždice se dají táhnout dlouhým podržením prstu. Bez tohohle by dlouhý
   stisk na dotyku vybral text uvnitř dlaždice a přesun by se zvrhl v označování.
   Prefix kvůli iOS Safari před verzí 16.4; dvojici hodnot inline styl neumí,
   proto to bydlí tady a ne v main.ts. */
[data-widget] {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

/* AŽ PŘIBUDOU HOVER STAVY na dlaždicích a tlačítkách, patří sem — a povinně
   do @media (hover: hover). Bez toho zůstane hover na dotyku zaseknutý po
   kliknutí, dokud uživatel neklikne jinam.
   @media (hover: hover) { … } */
