/* ═══════════════════════════════════════════════════════════════════════════
   Manent — LA palette. Le seul endroit où une couleur est écrite.

   Décision fondateur du 2026-08-22 : la fondation est TERRACOTTA. Elle était
   à 240° de teinte — violet pur — sur TOUS les jetons de structure, texte
   compris ; rejetée deux fois. Les CLARTÉS ci-dessous sont identiques aux
   anciennes : seule la TEINTE change, donc rien ne bouge dans la mise en page.
   Contrastes vérifiés au calcul (tests/test_palette_unifiee.py les recalcule).

   Ces valeurs SONT le produit ; toute autre feuille et tout autre gabarit les
   consomment par leur JETON et n'en réécrivent AUCUNE.

   Deux façons de la recevoir, une seule définition :
     • un gabarit à <style> en ligne   → {% include '_palette.html' %} dans <head>
     • une page qui charge style.css   → style.css l'importe en première ligne

   Pourquoi c'est un fichier et pas un bloc recopié : une valeur écrite à deux
   endroits et lue à un troisième finit par diverger sans que rien ne le dise
   (motif de défaut n° 1.1 du dépôt). Le test tests/test_palette_unifiee.py
   refuse tout second `:root` qui redéfinirait un de ces jetons.
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
  /* Fonds et structure — gris CHAUDS (teintes 30-40°, saturation ~10 %) */
  --bg:        #f7f6f3;
  --surface:   #fffefc;
  --surface2:  #f6e8de;
  --border:    #e3ddd4;

  /* Contour d'une COMMANDE. --border est un trait de SÉPARATION : à 1,48:1
     sur --surface, il ne peut pas être la seule marque d'un bouton ou d'un
     champ. WCAG 1.4.11 demande 3:1 pour ça — d'où ce second cran, mesuré à
     3,08:1. Une bordure décorative garde --border. */
  --border-fort: #978d7f;

  /* Texte, du plus lisible au plus discret.
     texte/fond 16,14:1 · texte/surface 14,37:1 · atténué/fond 8,09:1 ·
     atténué/surface2 6,24:1 */
  --text:      #1a1a1a;
  --dim:       #5f5a52;
  --faint:     #767068;

  /* Identité — l'orange de marque NE BOUGE PAS.
     accent/fond 6,30:1 · fond/accent 6,30:1 (texte sombre sur bouton orange) */
  --accent:    #b4541a;
  /* L orange EXACT de manent.ca. Il ne passe pas 4,5:1 en petit texte (4,07)
     mais convient aux GROS titres, ou 3:1 suffit. La teinte est la meme (22 deg),
     seule la clarte descend de 44% a 40% pour --accent. */
  --info-bg: #e8f1f7;
  --info-bd: #a8c8de;
  --accent-titre: #c25a1c;
  --fonce:     #22262e;
  --tint:      #eccdb2;

  /* Teinte d'accent — fond des éléments qui portent l'identité.
     La vitrine n'offre pas de paire fond/bord pour --accent ; cette valeur
     existait déjà À L'IDENTIQUE dans style.css (--accent-soft), field.html et
     expert.html (--purple-bg). Elle est rassemblée ici, pas inventée. */
  --accent-soft: #fbeee4;

  /* Ton clair de l'orange — survols et textes sur fond teinté d'accent.
     Même histoire : #f09a6b existait à l'identique dans _nav.html, chat.html,
     qc.html et onboard.html, et TROIS `var(--accent-l, #f09a6b)` pointaient
     vers un jeton défini nulle part. Le repli tirait, donc la page
     s'affichait — et cette couleur-là ne pouvait suivre aucun changement de
     palette. Elle est rassemblée, pas inventée. */
  --accent-l:  #8f4214;

  /* États. --good/--warn/--crit ont chacun leur fond et leur bord ;
     --info n'en a pas dans la vitrine : ses surfaces utilisent
     --surface2 pour le fond et --border pour le bord (lacune connue). */
  --good:      #1c6b3f;
  --good-bg:   #e8f3ec;
  --good-bd:   #a8cfba;
  --warn:      #8a5d05;
  --warn-bg:   #fbf1dd;
  --warn-bd:   #dbc38a;
  --crit:      #a32b1c;
  --crit-bg:   #fceceb;
  --crit-bd:   #e0b0aa;
  --info:      #1b5c86;

  /* Élévation. Même valeur que celle que saas.html et style.css portaient
     chacun de leur côté. */
  --shadow:    0 1px 2px rgba(0,0,0,.25), 0 6px 20px rgba(0,0,0,.22);

  /* ── Largeur du conteneur de page ─────────────────────────────────────────
     ⚠ DÉCISION EN ATTENTE DU FONDATEUR — DEUX valeurs, un seul concept.

     Le chantier du 2026-08-25 devait supprimer onze largeurs inventées. Il en
     a laissé DEUX, sous deux NOMS différents, et c'est le nom qui les rendait
     invisibles : `--cm-page` (16 pages) et `--cm-conteneur` (4 pages) avaient
     chacun sa garde, chaque garde ne voyait que son nom, les deux étaient
     vertes — et passer d'un onglet à l'autre faisait sauter la colonne de
     100 px. Mesuré au navigateur, viewport 1600 : 860 px contre 960 px.

     Ce qui est corrigé ici est la STRUCTURE, pas la valeur : les deux jetons
     vivent désormais ICI, chacun en UN seul endroit, et AUCUN gabarit ne les
     redéclare — il n'y a plus qu'une ligne à changer le jour de la décision.
     La VALEUR appartient au fondateur ; la choisir en passant serait trancher
     à sa place, donc elle n'est pas choisie.

     Tant qu'elle n'est pas prise, l'écart ne se tait pas : la garde unique
     test_toutes_les_pages_ont_la_meme_largeur_de_conteneur, dans
     tests/test_charpente_affichage.py, RESTE en XFAIL nommé — elle MESURE à
     chaque exécution, énumère les pages et imprime les deux valeurs.

     Le jour où le fondateur tranche : garder UNE valeur, faire du second nom
     un alias qui lit le premier, puis retirer le marqueur xfail de la garde —
     elle passe au vert toute seule, et son strict=True la fait ÉCHOUER si le
     marqueur reste posé. Rien à retenir de tête.

     ⚠ Ne PAS écrire ici un couple « jeton deux-points valeur » : la garde n° 5
     de tests/test_palette_unifiee.py ne retire pas les commentaires avant de
     lire les déclarations, et sa lecture gloutonne avalait alors la vraie
     déclaration placée juste dessous (mesuré — --cm-page devenait invisible
     et la page rendait une largeur invalide). */
  /* Largeur de page — DÉCISION FONDATEUR 2026-08-25 : 960 px.
     Les deux jetons cohabitaient (860 sur 16 pages, 960 sur 4), aucun
     déclaré ici, chacun avec sa propre garde — donc aucune ne rougissait
     et passer d'un onglet à l'autre faisait sauter la colonne de 100 px.
     `--cm-page` reste comme ALIAS pour ne casser aucune page qui le
     consomme encore ; les deux valent désormais la même chose. */
  --cm-conteneur: 960px;
  --cm-page:      var(--cm-conteneur);
}
