/* FBiOL — brand tokens II Olsztyńskiego Forum Bezpieczeństwa i Ochrony Ludności (12.10.2026).
 * JEDYNE ŹRÓDŁO wartości brandu FBiOL. Namespace: --fb-*. Silniki graphics-* czytają --gfx-*
 * przez mostek ../styles/compat-fb.css (kierunek jednostronny --gfx-X: var(--fb-X)).
 *
 * PROWENIENCJA (decyzja A1, 2026-09-18 — samodzielna kopia, NIE dziedziczenie):
 *   46 wartości skopiowanych 1:1 z clients/cbomb/brand/tokens/cbomb-tokens.css
 *   (stan brandu CBOMB: commit ddfc0c2a9, 2026-09-17). Rozjazd wartości wykrywa
 *   clients/fbiol/brand/tools/kontrola-dryfu.py (mapa nazw w tools/mapa-nazw.yaml).
 *   Pominięte: --cb-logo-* (konstrukcja lockupu CBOMB — znak Forum ma własną, sekcja niżej).
 *   Wartości źródłowe granat/cyan: odczyt operatorów PDF logo CBOMB (dowód w palette.md).
 *
 * ZASADA TWARDA: hex żyje TYLKO w tym pliku. Kanwy, hub i instancje — wyłącznie var(--fb-*).
 * ŚCIEŻKI FONTÓW: względne ../fonts/<plik>.woff2 → brand/fonts/ (symlink → shared/fonts/).
 */

/* ---- Montserrat (font marki FBiOL, SIL OFL 1.1 — druk i osadzanie komercyjne OK) ----
   Wagi: 400 Regular, 700 Bold. Podzestawy latin + latin-ext (unicode-range jak u Google
   Fonts) — latin-ext niesie ł ń ś ć ę ż ź ą / Ł Ń Ś Ć Ę Ż Ź Ą, bez niego „Olsztyńskie”,
   „Bezpieczeństwa” i „Ludności” wypadłyby na fallback.
   Pliki: shared/fonts/Montserrat-{400,700}-{latin,latin-ext}.woff2 — STATYCZNE instancje
   (Google serwuje font zmienny z domyślną instancją Thin 100; szczegóły i dowód:
   shared/fonts/LICENSE-NOTE-montserrat.txt + shared/fonts/tools/fetch-montserrat.py). */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/Montserrat-400-latin-ext.woff2") format("woff2");
  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;
}
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/Montserrat-400-latin.woff2") format("woff2");
  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: "Montserrat";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/Montserrat-700-latin-ext.woff2") format("woff2");
  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;
}
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/Montserrat-700-latin.woff2") format("woff2");
  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;
}

:root {
  /* === Kanon kolorów (D-CB-02) — jedyne miejsce z wartościami === */
  --fb-granat: #0B2945;  /* PRIMARY — apla, tekst, kontur tarczy w znaku */
  --fb-cyan:   #00B4D8;  /* AKCENT MARKI — siatka i fala w sygnecie, elementy KV */
  --fb-akcent: #FF6B35;  /* CTA — strona, materiały promocyjne (NIE występuje w znaku) */
  --fb-biel:   #FFFFFF;  /* kontra na aplach, tło materiałów */

  /* RGB do rgba() — warianty ZAWSZE parami z bazowym tokenem */
  --fb-granat-rgb: 11, 41, 69;
  --fb-cyan-rgb:   0, 180, 216;
  --fb-akcent-rgb: 255, 107, 53;

  /* === Neutralne pochodne (wywiedzione z granatu, nie z zewnętrznej palety) === */
  --fb-ink:      #0B2945;  /* nagłówki = granat (marka nie ma osobnej czerni) */
  --fb-text:     #3A4A5C;  /* tekst ciągły — granat rozjaśniony; 9.08:1 na bieli (AAA) */
  --fb-muted:    #67768A;  /* mikrotekst/dane drugorzędne; 4.63:1 na bieli (AA ≥4.5) */
  --fb-border:   #D9E1E8;  /* linie/ramki na jasnym tle */
  --fb-bg-soft:  #F2F6F9;  /* delikatne tło sekcji (chłodne, spójne z granatem) */

  /* === Role semantyczne (silniki mapują TE nazwy przez mostek) === */
  --fb-color-primary:   var(--fb-granat);
  --fb-color-secondary: var(--fb-cyan);
  --fb-color-accent:    var(--fb-akcent);
  --fb-color-bg:        var(--fb-biel);
  --fb-color-surface:   var(--fb-bg-soft);
  --fb-color-text:      var(--fb-text);
  --fb-color-heading:   var(--fb-ink);
  --fb-color-border:    var(--fb-border);

  /* === Typografia (D-CB-03: Montserrat, DWIE wagi) === */
  --fb-font-body:    "Montserrat", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --fb-font-display: "Montserrat", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --fb-fw-regular: 400;
  --fb-fw-bold:    700;
  /* ⚠️ Marka ma osadzone TYLKO 400 i 700. Rola „black" celowo degraduje do 700 —
     wpisanie tu 900 kazałoby przeglądarce SYNTEZOWAĆ pogrubienie z pliku 700
     (rozjazd druku vs ekranu). Potrzebna realna waga 900 = decyzja + dopisanie
     plików przez shared/fonts/tools/fetch-montserrat.py. */
  --fb-fw-black:   700;
  --fb-line-body:    1.45;
  --fb-line-tight:   1.15;  /* nagłówki, wersaliki */
  --fb-tracking-caps: 0.04em;  /* wersaliki (logotyp jest na krzywych — to dotyczy składu) */

  /* Skala stopni pisma — punkty typograficzne (druk; 1pt = 1/72 cala).
     Skala 1.25 zaokrąglona do wartości drukarskich. */
  --fb-fs-micro: 6pt;   /* nota prawna, mikrodane */
  --fb-fs-xs:    7pt;   /* dane kontaktowe (rola w CBOMB: wizytówka) */
  --fb-fs-sm:    8pt;
  --fb-fs-base: 10pt;   /* tekst ciągły druku */
  --fb-fs-md:   12pt;
  --fb-fs-lg:   15pt;   /* imię i nazwisko (rola w CBOMB: wizytówka) */
  --fb-fs-xl:   19pt;
  --fb-fs-2xl:  24pt;

  /* === Odstępy — milimetry (rodzina graphics-* składa druk w mm) === */
  --fb-space-1: 1mm;
  --fb-space-2: 2mm;
  --fb-space-3: 3mm;
  --fb-space-4: 5mm;
  --fb-space-5: 8mm;
  --fb-space-6: 13mm;

  /* === Kształt === */
  --fb-radius-sm:   0.5mm;
  --fb-radius:      1mm;
  --fb-radius-lg:   2mm;
  --fb-radius-pill: 50rem;

  /* === Wartości WŁASNE FBiOL — bez odpowiednika w CBOMB (kontrola dryfu je pomija) === */
  /* Linia podziału na kadrach (na tle granatowym) — decyzja właściciela 2026-09-18 (K2);
     użycie także na K1 · organizatorzy — stan kanwy stwierdzony w FDS-10. */
  --fb-granat-linia: #1C4E7A;

  /* Konstrukcja znaku Forum (kanwa claude-design/FBiOL - znak.dc.html §Konstrukcja; C1).
     Pełny opis i dowód: ../logo/konstrukcja.md (FDS-05). */
  --fb-znak-sygnet-ratio:   3.00;   /* wys. sygnetu ÷ wys. wersalika akronimu (z falą znaku) */
  --fb-znak-gap-ratio:      0.176;  /* odstęp sygnet↔tekst ÷ SZEROKOŚĆ sygnetu */
  --fb-znak-clear-ratio:    0.50;   /* pole ochronne ÷ wys. wersalika, ze wszystkich stron */
  --fb-znak-kapitalik-ratio: 0.800; /* kapitalik „I” ÷ wersalik, na wspólnej linii wersalika */
}
