/* =============================================================
   MM — La MARQUE d'une coop. Ce fichier se remplace ; `tokens.css` non.

   AD-4 : un produit par coop ne peut pas livrer le bleu de MIL. La scission
   est donc ici, et elle passe entre deux questions différentes :

     · `tokens.css`  — la STRUCTURE et la SÉMANTIQUE. Espacement, rayons,
       durées, échelle typographique, surfaces et texte, plus les états
       (succès / avertissement / danger) et leurs variantes sombre et
       daltonien. C'est l'artefact AUDITÉ, et il est le même chez tout le
       monde : un état ne change pas de sens d'une coop à l'autre.

     · `brand.css`   — l'ACCENT et les couleurs de données. Ce qui identifie
       une coop, et rien d'autre.

   Chargé APRÈS `tokens.css`. L'ordre n'a rien à réconcilier — aucune variable
   n'est déclarée des deux côtés, et `BrandTokensTest` échoue si ça arrive.

   ── LE PIÈGE QUE LA SCISSION DÉFAIT ────────────────────────────────────────
   `--c-success` valait le MÊME `#169c8e` que `--c-teal`. Un jeton de marque et
   un jeton d'état écrits sur la même valeur : la palette daltonien les
   réécrivait ensemble, et une coop qui aurait choisi son accent aurait
   emporté l'état avec lui, sans que rien ne le dise. Ils sont maintenant
   indépendants, et ils portent la même valeur chez MIL par héritage, pas par
   couplage.

   ── CHANGER CES VALEURS ────────────────────────────────────────────────────
   `BrandTokensTest` tient un PLANCHER de contraste par contexte. Une coop peut
   choisir son bleu ; elle ne peut pas choisir un bleu moins lisible que celui
   qui a été audité. Voir le fichier de test : il nomme aussi les deux paires
   où la palette de MIL est aujourd'hui SOUS la cible WCAG, avec la raison.
   ============================================================= */

:root {
  /* ---- Accent : action primaire, sélection, focus ---- */
  --c-accent:        #008ce4;   /* bleu du logo coop */
  --c-accent-soft:   #e4f2fc;
  --c-accent-dark:   #0070bd;
  --c-on-accent:     #ffffff;   /* le texte POSÉ sur l'accent — il suit l'accent */

  /* ---- La MATIÈRE du rail ---- */
  /* CE N'EST PLUS L'ACCENT, ET C'EST LA MESURE QUI L'A TRANCHÉ (2026-08-14).

     Ce jeton a valu `#008ce4` — l'accent au pixel près — de sa création
     jusqu'ici. Sur cette dalle-là, les sept mots du rail se lisaient à 2,74:1,
     et l'entrée courante à 2,71 : sous le plancher AA de 4,5 que le §5 du
     système de design pose comme non négociable, sur la navigation de TOUS
     les écrans.

     ── AUCUN RÉGLAGE D'ENCRE N'Y POUVAIT RIEN ────────────────────────────
     C'est ce qui rend ce cas différent de celui du bouton primaire, corrigé le
     2026-08-04 en fonçant `--c-on-accent`. Ici, le blanc est DÉJÀ l'encre, et
     `#008ce4` plafonne à 3,58:1 contre du blanc pur — donc la dalle serait
     restée sous AA même en retirant l'atténuation de 78 % qui donne au rail sa
     hiérarchie repos/survol. Quand la seule variable qui reste est la surface,
     c'est la surface qui bouge.

     `#0a4f7d` est le minimum qui tient : 5,95:1 au repos, 4,93 pour l'entrée
     courante (dont le voile blanc de 22 % éclaircit le fond, donc c'est elle
     la contrainte). Un cran plus clair et l'entrée courante retombe sous 4,5.
     Même teinte que le bleu de la coop, descendu en clarté — c'est le même
     geste qu'en sombre, un cran moins loin.

     Choisi par Éric le 2026-08-14, sur comparaison des trois options. Le bleu
     de la coop ne bouge nulle part ailleurs : `--c-accent` reste `#008ce4`
     pour les boutons, les liens, le focus et la marque. Le rail était le seul
     endroit où une MARQUE servait de SURFACE, et c'est là que ça coûtait.

     ── UNE SEULE DALLE PAR THÈME, ET AUCUNE PAR PALETTE ──────────────────
     `--c-rail` ne varie plus qu'avec le thème (clair ici, `#0d2438` en
     sombre). La palette daltonien ne le redéclare PAS, et c'est délibéré :
     elle existe pour séparer perceptivement l'accent des états, et une dalle
     de navigation n'est ni l'un ni l'autre — il n'y a rien à en distinguer.

     C'est aussi ce qui ferme un piège qui avait déjà mordu : tant que le bloc
     `[data-palette="cb"]` portait un `--c-rail`, il battait celui du bloc
     sombre — même specificité (0,2,0), écrit après — et le sombre daltonien
     héritait donc de la dalle CLAIRE, à 3,34:1. Le commentaire d'alors
     annonçait l'inverse, et l'écart demandait d'allumer les deux réglages à la
     fois pour se voir. Ne pas redéclarer le jeton vaut mieux que le redire
     dans un quatrième bloc : ce qui n'existe pas ne peut pas diverger. */
  --c-rail:          #0a4f7d;
  --c-on-rail:       #ffffff;

  /* ---- Données ---- */
  --c-teal:          #169c8e;   /* comités / « fait » */
  --c-orange:        #f4511e;   /* accent data secondaire / alerte */
  --c-teal-soft:     #f3fbf9;

  /* ---- Ludification (par personne, AD-8) ---- */
  --c-bling:         #27c93f;
}

:root[data-theme="dark"] {
  --c-accent:        #2a9ff0;
  --c-accent-soft:   #15324a;
  --c-accent-dark:   #5cb6f5;

  /* ── POURQUOI LE TEXTE FONCE QUAND L'ACCENT S'ÉCLAIRCIT ────────────────────
     Blanc ici valait 2.87:1 sur l'accent du mode sombre, et 2.22:1 sur son
     survol (`--c-accent-dark`, qui s'ÉCLAIRCIT en sombre) : sous la cible AA,
     et sous le plancher non textuel lui-même. Ça portait le libellé du bouton
     primaire, `.btn-primary` et `.auth-cta`.

     Le correctif n'est pas un bleu de plus — c'est le texte POSÉ dessus qui
     doit foncer quand l'accent s'éclaircit. Le bleu de la coop ne bouge pas.

     Le contexte sombre+daltonien hérite de cette valeur : il ne déclare pas
     `--c-on-accent`, donc une seule ligne corrige les deux.

     Cette ligne s'est longtemps appelée « le SEUL jeton qui diverge de
     `mil-membres` », parce qu'elle l'était : la source portait encore le
     défaut, une contrainte de la phase 6 interdisait d'y toucher, et l'écart
     était surveillé des deux côtés. Ce dépôt est fermé depuis le 2026-08-10 ;
     il n'y a plus de quoi diverger, et le titre nommait une comparaison morte.
     La raison, elle, n'a pas bougé d'un chiffre — c'est un correctif de
     CONTRASTE, et `BrandTokensTest` le mesure sans avoir besoin d'ailleurs. */
  --c-on-accent:     #16181d;

  /* ── LE RAIL NE PEUT PAS SUIVRE L'ACCENT EN SOMBRE ────────────────────────
     Constat d'Eric le 2026-08-12 : « le bleu de la colonne de gauche est faux
     en sombre — il devrait être beaucoup plus foncé ». Il l'était : `#2a9ff0`
     sur 84 px de haut en haut, une dalle bleu clair contre une page à
     `#16181d`.

     Ce n'est pas un mauvais bleu, c'est un bleu au mauvais ENDROIT. L'accent
     s'éclaircit en sombre pour rester lisible EN TANT QUE MARQUE POSÉE SUR du
     foncé — un libellé de lien, une bordure de focus, un petit bouton. Le
     raisonnement s'inverse dès qu'il devient la matière d'une grande surface :
     là, c'est la surface qui doit foncer avec la page, et la marque qui se
     porte en encre dessus. Le rail était le seul endroit de l'app à faire
     l'inverse, et le seul assez grand pour que ça se voie.

     D'où deux jetons plutôt qu'un détournement de plus : `--c-rail` est une
     SURFACE, `--c-accent` une marque. Ils ont d'abord porté la même valeur en
     clair par héritage et non par couplage — exactement le piège que la
     scission `tokens`/`brand` a défait entre `--c-success` et `--c-teal`. Ce
     découplage a fini par se payer comptant : le 2026-08-14 la dalle claire a
     dû foncer pour atteindre AA, et l'accent n'a pas bougé d'un chiffre. Deux
     jetons, deux destins — c'était l'idée, et c'est arrivé.

     `#0d2438` est le bleu de la coop à la nuit : même famille que la dalle
     claire `#0a4f7d`, descendue en clarté jusqu'à passer sous la page. L'encre
     claire y rend 8,20:1 au repos et 6,81 pour l'entrée courante.

     ── CE QU'IL REMPLACE, ET POURQUOI CE N'EST PAS UN RÉGLAGE DE CONTRASTE ──
     C'était `#102837`, un navy désaturé à 14 % de clarté — et il n'avait aucun
     problème de mesure : 7,94:1, largement AA. Éric l'a simplement trouvé
     mauvais à l'œil le 2026-08-14, sur comparaison de six dalles rendues
     contre la vraie page sombre. Le désaturé tirait au gris-vert sur 84 px de
     large ; celui-ci reste franchement BLEU, ce qui est la moitié du sens
     d'une dalle de marque.

     Il est plus SOMBRE que `--c-bg` (#16181d) là où l'ancien était plus clair.
     La colonne se détache donc de la page en s'enfonçant plutôt qu'en
     ressortant — c'est ce qui la fait lire comme le fond sur lequel l'app est
     posée, et non comme une carte de plus à côté des vraies cartes. Le bord
     droit en `--c-on-rail` à 20 % continue de tracer la limite dans les deux
     cas ; elle ne dépend pas du sens de l'écart.

     Le contexte sombre+daltonien en hérite pour de bon depuis que la palette
     ne redéclare plus la dalle : elle n'a rien à distinguer d'un vert, et le
     bloc `cb` la lui reprenait en silence. */
  --c-rail:          #0d2438;
  --c-on-rail:       #e4e6ea;

  --c-teal:          #2cb5a5;
  --c-teal-soft:     #12302c;
  --c-orange:        #ff6b3d;
  --c-bling:         #2cd14a;
}

/* Palette daltonien (Okabe-Ito). La moitié état vit dans `tokens.css` ; ici,
   seulement ce qui identifie la coop. */
:root[data-palette="cb"] {
  --c-accent:        #0067c2;
  --c-accent-soft:   #d8ebfb;
  --c-accent-dark:   #00529c;
  /* PAS de `--c-rail` ici, et c'est une décision — voir le bloc `:root`. La
     dalle ne suit plus l'accent, donc elle n'a pas de version daltonien ; et
     ce bloc-ci battait celui du sombre à specificité égale, ce qui donnait au
     sombre daltonien une dalle claire que personne ne pouvait voir venir. */
  --c-teal:          #008060;
  --c-teal-soft:     #e0f3ed;
  --c-orange:        #d55e00;
}

:root[data-theme="dark"][data-palette="cb"] {
  --c-accent:        #4ea0e8;
  --c-accent-soft:   #112c44;
  --c-accent-dark:   #82c0f0;
  /* Pas de `--c-rail` non plus : la dalle de nuit vient du bloc sombre, et
     plus rien ne la lui reprend. Voir le bloc `:root`. */
  --c-teal:          #19b58e;
  --c-teal-soft:     #0c2b24;
  --c-orange:        #f08a3d;
}
