/* Projekt Adra3 — designové tokeny (provizorní v0)
 *
 * Zdrojem pravdy je TENTO soubor SPOLU s manifestem
 * src/core/design/tokens.py. Test src/core/tests/test_contrast.py hlídá,
 * že se obojí přesně shoduje a že každá používaná dvojice popředí/pozadí
 * splňuje WCAG AA. Token přidaný jen sem, nebo jen do manifestu, shodí build.
 *
 * Vizuální směr: zdrženlivý retrofuturistický noirový vyšetřovací archiv
 * („Městská registratura Tomorrowlandu"). Napřed použitelný archiv,
 * teprve potom stylizované rozhraní.
 */

:root {
  /* --- Povrchy ------------------------------------------------------------
   * Od nejtmavšího po nejsvětlejší. Závazný pro kontrast je NEJSVĚTLEJŠÍ
   * povrch (--surface-panel-alt): tam má každé popředí nejmenší rezervu.
   */
  --surface-inset: #0d1114;
  --surface-base: #12161a;
  --surface-panel: #1b2228;
  --reading-surface: #1e242a;
  --surface-panel-alt: #1c2a30;

  /* --- Plné výplně ------------------------------------------------------ */
  --state-danger-solid: #8e3524;

  /* --- Text ------------------------------------------------------------- */
  --text-primary: #e8e2d5;
  --text-secondary: #b4ae9e;
  --text-tertiary: #9a9a90;

  /* --- Akcenty a odkazy ------------------------------------------------- */
  --accent-brass: #c9962e;
  --accent-amber: #e0a94b;
  --link: #7fb6c4;
  --link-visited: #9aa8c4;

  /* --- Stavy ------------------------------------------------------------
   * Barva nikdy není jediným nositelem informace — každý stav má vedle
   * odstínu i glyf a slovní popisek.
   */
  --state-success: #82ae74;
  --state-warning: #d49a4e;
  --state-danger-fg: #df8064;
  --state-archived: #9ba0a8;

  /* --- Ovládací prvky --------------------------------------------------- */
  --focus-ring: #f0c04a;
  --border-control: #7a8b96;

  /* --- Dekorace — bez požadavku na kontrast ----------------------------- */
  --border-structural: #46545e;
  --rule-faint: #2e3841;

  /* --- Akcenty typů záznamů ---------------------------------------------
   * Používají se VÝHRADNĚ na 3px hranu karty a na ikonu typu.
   * Nikdy jako barva textu — popisky typu jsou v --text-secondary.
   */
  --type-agent: var(--accent-brass);
  --type-npc: #8fa9b8;
  --type-group: #a4785c;
  --type-location: #7d9b7a;
  --type-mission: #c07a4a;
  --type-report: var(--state-archived);

  /* --- Typografie ---------------------------------------------------------
   * Rodiny podle §11.4. IBM Plex se zatím **nepřibaluje** — otázka volby
   * písma je v §11.12 stále otevřená a externí služba nepřipadá v úvahu
   * (CSP default-src 'self'). Jmenuje se proto první a systémový fallback
   * drží stejný charakter: serif na čtení, humanistický sans na rozhraní,
   * mono na kódy. Přidání @font-face později nevyžaduje změnu šablon.
   *
   * Tyto tokeny nejsou barvy, takže je hlídač shody s manifestem
   * (test_contrast.py) záměrně nevidí — hlídá jen zápisy `--token: #hex`.
   */
  --font-read: "IBM Plex Serif", "Source Serif 4", Georgia, "Times New Roman", serif;
  --font-ui: "IBM Plex Sans", "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-condensed: "IBM Plex Sans Condensed", var(--font-ui);
  --font-mono: "IBM Plex Mono", "JetBrains Mono", ui-monospace, "Cascadia Mono", monospace;

  /* Škála s poměrem 1,2 (§11.4). */
  --text-2xs: 0.75rem;
  --text-xs: 0.875rem;
  --text-sm: 1rem;
  --text-md: 1.125rem;
  --text-lg: 1.25rem;
  --text-xl: 1.5rem;
  --text-2xl: 1.875rem;
  --text-3xl: 2.25rem;

  --leading-read: 1.65;
  --leading-ui: 1.45;
  --leading-heading: 1.3;
  --tracking-label: 0.08em;

  /* --- Rozestupy ---------------------------------------------------------- */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;

  /* --- Míry a rámy -------------------------------------------------------- */
  --measure-read: 68ch;
  --width-main: 1100px;
  --width-rail: 260px;
  --radius: 2px;
  --edge-type: 3px;

  /* --- Pohyb --------------------------------------------------------------
   * Jen barva a okraj. Nic se netočí, nenaklání, netřese ani nebliká.
   */
  --motion-fast: 120ms;
  --motion-drawer: 180ms;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --motion-fast: 0.01ms;
    --motion-drawer: 0.01ms;
  }
}
