/* PR4.15 #218 Phase 4 (Brand-Finish) — Fira self-host.
   Ersetzt die Fira-Familie aus dem Google-Fonts-<link> (index.html) durch lokale
   .woff2-Binaries unter public/fonts/ (SIL OFL, latin-Subset via @fontsource).
   Global (nicht `.crm`-gescopt): die Familien-Namen decken sowohl die Redesign-Tokens
   --f-sans/--f-cond (style-redesign.css) als auch die Legacy-Headings
   (style.css: 'Fira Sans') ab. PR1.567: Inter entfaellt, Fira Sans in beiden Shells.
   font-display:swap → kein FOIT; Legacy-Default zieht keine unnötigen Faces (kein preload).
   PR1.437 #668: Fira Mono entfernt — Zahlen/Kennungen stehen in Fira Sans (tabular-nums). */

/* PR1.567 #853 — Typografie v2: eine Skala mit Rollen fuer beide Shells.
   Jede Schriftgroesse in CSS und JS zieht eine dieser Rollen (test/type-scale.test.mjs);
   nichts unter 12 px. Hier statt in style.css, weil fonts.css in beiden Shells und auf
   der Anmeldeseite vor allen Stylesheets laedt. */
:root {
  --font-num: 'Fira Sans Condensed', 'Fira Sans', sans-serif;
  --fs-label: 12px;    /* Labels, Spaltenkoepfe, Chips (500) */
  --fs-meta: 13px;     /* Nebentext, Zeitstempel (400) */
  --fs-ui: 14px;       /* Namen, Knoepfe, Bedienelemente (500) */
  --fs-body: 15px;     /* Text, Tabellenzellen — Arbeitsgroesse (400) */
  --fs-section: 16px;  /* Kartentitel (600) */
  --fs-title: 20px;    /* Abschnitt (600) */
  --fs-display: 26px;  /* Seitentitel (600) */
  --fs-kpi: 30px;      /* Kennzahl, Fira Sans Condensed (500) */
  --fs-icon: 40px;     /* reine Symbol-Glyphen (Ablage-, Leerzustands-Icons) */
  --ls-body: -.004em;
  --ls-title: -.014em;
  --ls-display: -.02em;
  --ls-kpi: -.01em;
}

/* PR1.709 #1012 — Schriftgroesse in vier Stufen (Admin-Panel › Darstellung). Jede Stufe hebt
   die ganze Skala gleichmaessig an; Standard ist die Grundskala oben (kein Block). Nur die neue
   Ansicht — die klassische bleibt bei 15 px, bis Vasili freigibt. Dieselben Zahlen stehen in
   public/js/components/schrift-stufen.js (Test haelt beide gleich); nichts unter 12 px. */
html[data-ui="new"][data-schrift="kompakt"] {
  --fs-label: 12px; --fs-meta: 12px; --fs-ui: 13px; --fs-body: 14px;
  --fs-section: 15px; --fs-title: 19px; --fs-display: 25px; --fs-kpi: 29px;
}
html[data-ui="new"][data-schrift="groesser"] {
  --fs-label: 13px; --fs-meta: 14px; --fs-ui: 15px; --fs-body: 16px;
  --fs-section: 17px; --fs-title: 21px; --fs-display: 27px; --fs-kpi: 32px;
}
html[data-ui="new"][data-schrift="gross"] {
  --fs-label: 14px; --fs-meta: 15px; --fs-ui: 16px; --fs-body: 17px;
  --fs-section: 18px; --fs-title: 22px; --fs-display: 28px; --fs-kpi: 34px;
}

/* Typo-Rolle Abschnittstitel (#949/#951, Entscheidung 02.11.2026): kleine graue Versalien wie
   der abgenommene Entwurf (P1/C1, prototyp.html .sec). Die einzige Rolle mit Versalien —
   test/type-scale.test.mjs laesst uppercase nur hier zu. Beide Shells kennen --text-3. */
.typo-abschnitt { font-size: var(--fs-label); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--text-3); }

/* ── Fira Sans (Body/UI im Redesign; Headings im Legacy) ── */
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/fira-sans-latin-400-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/fira-sans-latin-500-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/fira-sans-latin-600-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/fira-sans-latin-700-normal.woff2') format('woff2');
}

/* ── Fira Sans Condensed (Redesign-Headings/Titel, --f-cond) ── */
@font-face {
  font-family: 'Fira Sans Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/fira-sans-condensed-latin-400-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Fira Sans Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/fira-sans-condensed-latin-500-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Fira Sans Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/fira-sans-condensed-latin-600-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'Fira Sans Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/fira-sans-condensed-latin-700-normal.woff2') format('woff2');
}
