/* ─────────────────────────────────────────────────────────────────────────────
   fonts.css — les polices du dashboard, SERVIES PAR NOUS.
   Chargé par les 71 pages, en remplacement du <link> vers fonts.googleapis.com.

   POURQUOI (audit sécurité du 24/08/2026, checklist `security` point 14)
   Le front est ENTIÈREMENT derrière authentification, et les 71 pages appelaient
   fonts.googleapis.com + fonts.gstatic.com. À chaque page consultée, l'IP d'un
   utilisateur NOMMÉ partait chez un tiers — sans aucune trace côté serveur, donc
   sans moyen de savoir qui avait été exposé ni quand. C'est le seul finding
   « Important » que l'audit ait laissé ouvert.

   CE QUI PART ICI, ET RIEN DE PLUS
   Le corps de texte est en pile SYSTÈME (`--sys` dans main.css) : il n'a jamais
   rien demandé à personne. Seuls deux usages tiraient une police tierce —
   les TITRES (Merriweather 900, `--ser`) et les CHIFFRES (Montserrat 500,
   `--num`). D'où deux fichiers, deux graisses, et rien d'autre.

   ⚠️ SUBSET `latin` SEUL — arbitrage du 24/08/2026, réversible en 2 lignes.
   `latin-ext` doublerait le poids (64,5 → 136,6 Ko) pour des glyphes que ces
   deux familles n'affichent jamais : elles ne servent qu'à des titres français
   écrits par nous et à des nombres. Un nom de client étranger s'affiche dans la
   pile SYSTÈME, qui a tous les glyphes — il n'est jamais rendu en Merriweather.
   Si un caractère manquait malgré tout, le navigateur retombe sur le fallback
   déclaré (`serif` / `var(--sys)`) : dégradation visuelle, jamais de casse.

   🔴 NE PAS METTRE CES @font-face DANS main.css — 5 pages sont STANDALONE
   (`index`, `references`, `set-password`, `setup-2fa`, `setup`) et ne le
   chargent pas ; elles resteraient sans police. Et les recopier dans leur
   <style> ferait rougir `css-coverage.sh`, qui est à 3 187/3 187 sans marge.
   Un fichier partagé coûte 0 ligne de CSS de page et donne UN domicile.

   ⚠️ RIEN À FAIRE CÔTÉ ALLOWLIST : `*.css` et `*.woff2` y passent déjà par
   extension, dans `deploy-pages.sh` ET `.github/workflows/deploy-pages.yml`.
   Les .woff2 sont à la RACINE parce que le .yml travaille en `-maxdepth 1` :
   dans un sous-dossier ils exigeraient une recopie explicite, comme `lib/ca.mjs`.

   📜 LICENCES — les deux familles sont sous SIL Open Font License 1.1, ce qui
   autorise l'auto-hébergement à condition que la licence accompagne les
   fichiers. Texte intégral versionné dans `fonts/OFL-merriweather.txt` et
   `fonts/OFL-montserrat.txt`. Ne pas retirer ces fichiers du dépôt.

   🧪 Cliquet : `scripts/fonts-check.sh` (smoke) — il vérifie notamment que les
   71 pages chargent la MÊME déclaration. Il visait l'URL Google, il vise ce
   fichier depuis le 24/08/2026.
   ───────────────────────────────────────────────────────────────────────────── */

/* Merriweather — Copyright 2020 The Merriweather Project Authors
   (https://github.com/EbenSorkin/Merriweather) · SIL OFL 1.1 */
@font-face {
  font-family: 'Merriweather';
  font-style: normal;
  font-weight: 900;
  /* `swap` était déjà dans l'URL Google (`&display=swap`) : le texte s'affiche
     immédiatement dans la police de repli, puis bascule. Sans lui, un titre
     resterait INVISIBLE le temps du téléchargement. */
  font-display: swap;
  src: url('merriweather-900.woff2') format('woff2');
  /* Plage `latin` de Google, reprise telle quelle : hors de ces points de code,
     le navigateur n'essaie même pas ce fichier et va droit au fallback. */
  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;
}

/* Montserrat — Copyright 2024 The Montserrat.Git Project Authors
   (https://github.com/JulietaUla/Montserrat) · SIL OFL 1.1 */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('montserrat-500.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;
}
