/* Tokeny stron publicznych (Sprint 145): strona główna, /o-stronie/ i — od etapu 3 — Monitoring Regulacyjny AI.
   Jedno źródło kolorów, krojów, narożników, cieni i skali tekstu dla tych stron; aplikacja (pozostałe moduły) ma
   własny komplet w app.css. Literał koloru i rozmiaru tylko w deklaracji tokenu — strażnik
   config/test_style_literals.py pilnuje tego pliku. Strona, która nadpisuje token o tej samej nazwie (landing.html),
   robi to po tym pliku i z tą samą siłą selektora — wtedy wygrywa jej wartość.

   Ciemny motyw według plakatu (Sprint 149, decyzja właściciela 2026-10-31): ciepły grafit, złoto, stalowe odnośniki,
   ta sama paleta co aplikacja. */

/* Kroje — sześć ról, element dostaje rolę, nigdy nazwę kroju (decyzje właściciela 2026-10-26):
   --font-display  tytuły, nagłówki sekcji, duże liczby i daty      oba motywy Newsreader
   --font-read     tekst: wstępy, podtytuły, akapity, opisy, listy  oba motywy Newsreader
   --font-label    etykiety: pigułki, nadtytuły, podpisy, przyciski oba motywy Public Sans
   --nav-font      tylko menu górne                                 oba motywy Jost
   --brand-font    logo                                             jasny Newsreader   · ciemny Space Grotesk
   --font-mono     podpis znaku, kody, numery                       oba motywy Fira Code */
:root, :root[data-bs-theme="light"] {
  --page: #f4f2ec; --surface: #faf8f3; --section: #faf8f3; --border: #d8d3c4;
  --text: #3d3a33; --heading: #16181c; --muted: #676256;
  --accent: #1f6b6b; --accent-dim: rgba(31,107,107,.08); --accent-edge: rgba(31,107,107,.35); --on-accent: #ffffff;
  --sh1: #14595a; --sh2: #2a64b0; --sh3: #9a6a22; --sh4: #a8394f;
  --i-green: #2f7a4f; --i-red: #a8463c; --i-gold: #a8742a; --i-blue: #2f6fb8; --i-teal: #1f6b6b; --i-violet: #6b4fa0;
  --i-green-bg: #e3f0e6; --i-red-bg: #f6e1dd; --i-gold-bg: #f6ead6; --i-blue-bg: #e0ebf7; --i-teal-bg: #dcefee; --i-violet-bg: #ece6f6;
  --shadow: 0 18px 48px rgba(90,80,60,.12);
  --font-display: 'Newsreader', Georgia, serif; --font-label: 'Public Sans', system-ui, sans-serif;
  --font-read: 'Newsreader', Georgia, serif;
  --radius: 6px; --radius-sharp: 2px;
  /* Znak AI RiCo — jak na plakacie strony głównej, na wszystkich stronach publicznych (decyzja właściciela 2026-10-26). */
  --mark-shadow: drop-shadow(0 0 10px rgba(244,242,236,.85));
  --brand-stripes: none;
  --brand-fill: currentColor;
  --brand-shadow: drop-shadow(0 0 10px rgba(244,242,236,.85));
  --brand-font: 'Newsreader', Georgia, serif;
  --brand-weight: 600;
  --brand-ls: -.02em;
  --brand-a: #16181c;
  --brand-b: #1f6b6b;
  --brand-hover: drop-shadow(0 0 14px rgba(31,107,107,.35));
  --sub-font: 'Fira Code', ui-monospace, monospace;
  --sub-weight: 400;
  --sub-size: .72rem;
  --sub-ls: .3em;
  --sub-case: uppercase;
  --sub-color: var(--gold-ink);
  /* Złote akcenty (decyzja właściciela 2026-10-26): linie, pierścienie, podkreślenia (--gold-line) i drobny tekst (--gold-ink). */
  --gold-line: var(--gold-2); --gold-ink: var(--gold-1);
  /* Sekcje redakcyjne (strona główna, Monitoring): złoty nadtytuł, linie, tekst drugiego planu, „dziś”, punktor. */
  --eyebrow-ink: #8a6a2c; --rule: #e3dccb; --soft: #6b6152; --ink-strong: #1d1b17; --now: #a8394f; --bullet: #b08a4a;
  /* Menu górne jak na stronie głównej (decyzja właściciela 2026-10-26): krój, rozmiar, rozstaw, poświata po najechaniu. */
  --nav-font: 'Jost', 'Century Gothic', Futura, sans-serif; --nav-size: .85rem; --nav-ls: .12em; --nav-ink: var(--brand-a);
  --nav-glow: drop-shadow(0 0 6px rgba(31,107,107,.4));
}
:root[data-bs-theme="dark"] {
  --page: #15181a; --surface: #212629; --section: #1a1e20; --border: #363c3f;
  --text: #ddd9cf; --heading: #f6f1e6; --muted: #a8a396;
  --accent: #d1aa6d; --accent-dim: rgba(209,170,109,.12); --accent-edge: rgba(209,170,109,.4); --on-accent: #1a1712;
  --sh1: #b07d2a; --sh2: #d4a843; --sh3: #fff1c2; --sh4: #d4a843;
  --i-green: #93bf93; --i-red: #e08a80; --i-gold: #dba466; --i-blue: #9db4d6; --i-teal: #8fb9c0; --i-violet: #b9a6d0;
  --i-green-bg: rgba(147,191,147,.12); --i-red-bg: rgba(224,138,128,.12); --i-gold-bg: rgba(219,164,102,.12);
  --i-blue-bg: rgba(157,180,214,.12); --i-teal-bg: rgba(143,185,192,.12); --i-violet-bg: rgba(185,166,208,.12);
  --shadow: 0 24px 64px rgba(0,0,0,.5);
  --font-display: 'Newsreader', Georgia, serif; --font-label: 'Public Sans', system-ui, sans-serif; --font-read: 'Newsreader', Georgia, serif;
  --radius: 6px; --radius-sharp: 2px;
  /* Znak AI RiCo — jak na plakacie strony głównej, na wszystkich stronach publicznych (decyzja właściciela 2026-10-26). */
  --mark-shadow: drop-shadow(0 0 6px rgba(0,0,0,.8));
  /* Znak w ciemnym motywie złoty (decyzja właściciela 2026-10-29: plakat to ten sam android w graficie i złocie;
     dawny czerwony neon pasował do plakatu cyberpunk). Prążki zostają — rozpoznawalność znaku. */
  --brand-stripes: repeating-linear-gradient(180deg, #e2b75a 0 3px, rgba(226,183,90,.45) 3px 4px);
  --brand-fill: transparent;
  --brand-shadow: drop-shadow(0 0 6px rgba(0,0,0,.85)) drop-shadow(0 0 18px rgba(212,168,67,.45));
  --brand-font: 'Space Grotesk', sans-serif;
  --brand-weight: 700;
  --brand-ls: -.055em;
  --brand-a: #dce4ef;
  --brand-b: #6eb5d2;
  --brand-hover: drop-shadow(0 0 12px rgba(226,183,90,.9)) drop-shadow(0 0 28px rgba(212,168,67,.45));
  --sub-font: 'Space Grotesk', sans-serif;
  --sub-weight: 500;
  --sub-size: .82rem;
  --sub-ls: .13em;
  --sub-case: none;
  --sub-color: var(--gold-ink);
  --gold-line: var(--gold-2); --gold-ink: var(--gold-2);
  --eyebrow-ink: #d1aa6d; --rule: #363c3f; --soft: #a8a396; --ink-strong: #f6f1e6; --now: #e08a80; --bullet: #d1aa6d;
  --nav-font: 'Jost', 'Century Gothic', Futura, sans-serif; --nav-size: .85rem; --nav-ls: .12em; --nav-ink: #f6f1e6;
  --nav-glow: drop-shadow(0 0 6px rgba(226,183,90,.7));
}

/* Skala tekstu — wspólna dla obu motywów. Nazwy od roli tam, gdzie rola jest jedna (--fs-nav, --fs-hero),
   stopnie skali dla reszty. Wartości z makiet Sprintu 144 i strony głównej; połówki pikseli tylko jako role
   (--fs-kicker, --fs-caption, --fs-list) — zaokrąglenie przełamywało wiersze w kartach. */
:root {
  /* Złoto mieniące się (mózg na plakacie): brąz → złoto → jasny blask → stare złoto. */
  --gold-1: #8a6424; --gold-2: #d4a843; --gold-3: #fff1c2; --gold-4: #b07d2a;
  /* Plakat strony głównej i znak na pasku: szerokość plakatu (pasek wszystkich stron publicznych wyrównany do niej),
     rozmiar znaku i przełącznika motywu. */
  --poster-max: 2160px; --fs-poster-enter: 4.8rem; --fs-poster-enter-tel: 4rem; --fs-poster-theme: 1.2125rem; --fs-poster-theme-tel: 1rem;
  --font-mono: 'Fira Code', ui-monospace, monospace;
  --fs-2xs: 11px; --fs-xs: 12px; --fs-nav: 12.5px; --fs-sm: 13px; --fs-md: 14px; --fs-ui: 15px; --fs-base: 16px;
  --fs-body: 17px; --fs-lg: 18px; --fs-lead: 19px; --fs-xl: 21px; --fs-h3: 22px; --fs-closing: 24px;
  --fs-detail-h: 28px; --fs-h2: 30px; --fs-logo: 32px; --fs-2xl: 34px; --fs-3xl: 36px; --fs-why-h: 38px;
  --fs-4xl: 44px; --fs-hero: 56px; --fs-cover-day: 140px; --fs-cover-day-tel: 96px; --fs-logo-sm: 26px; --fs-detail-h-tel: 23px;
  --fs-kicker: 11.5px; --fs-caption: 13.5px; --fs-list: 15.5px;
  /* Aliasy ról z /o-stronie/ (Sprint 144) — ta sama skala. */
  --fs-eyebrow: var(--fs-xs); --fs-chip: var(--fs-md); --fs-mod: var(--fs-ui); --fs-card-h: var(--fs-xl);
}

/* Wspólna podstawa dokumentu stron publicznych — jedyne reguły poza tokenami w tym pliku, bo ładują go wszystkie strony
   publiczne (strona główna, /o-stronie/, Przegląd regulacyjny). Miejsce na pasek przewijania zarezerwowane zawsze
   i pasek tej samej szerokości co w aplikacji (app.css): krótka strona bez paska i długa z paskiem mają tę samą
   szerokość, więc menu, logo i przełącznik motywu nie przesuwają się między stronami (2026-10-26). */
html { scrollbar-gutter: stable; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track, ::-webkit-scrollbar-corner { background: transparent; }
::-webkit-scrollbar-thumb { background-color: color-mix(in srgb, var(--muted) 28%, transparent); border: 2px solid transparent; border-radius: 999px; background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background-color: color-mix(in srgb, var(--muted) 80%, transparent); }
