/* ============================================================
   Self-hosted fonts — NO external calls (DSGVO-friendly).
   Geist & Geist Mono by Vercel, SIL Open Font License 1.1.
   License: /fonts/geist/LICENSE.txt
   Variable fonts: a single file each covers all weights (100–900).
   Paths are relative to this file (/css/ -> /fonts/geist/) so they
   stay correct regardless of the app's hosting base path.

   Load this BEFORE the page CSS in every layout. The :root block
   rebinds Bootstrap's own font variables, so Geist applies app-wide
   — including the guest/auth layouts that don't load design-system.css.
   ============================================================ */

@font-face {
  font-family: "Geist";
  src: url("../fonts/geist/Geist-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Geist Mono";
  src: url("../fonts/geist/GeistMono-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  /* Single source of truth for the app's font stacks. */
  --ds-font-sans: "Geist", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --ds-font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* Rebind Bootstrap so body + utilities pick up Geist everywhere. */
  --bs-font-sans-serif: var(--ds-font-sans);
  --bs-font-monospace: var(--ds-font-mono);
  --bs-body-font-family: var(--ds-font-sans);
}
