/* AtomLife — palette de l'application.
 *
 * Source unique des couleurs des quatre écrans (connexion, intervenant,
 * propriétaire, admin). Avant ce fichier, chaque écran déclarait son propre
 * bloc `:root` : 14, 17, 17 et 14 variables, pour 17 distinctes.
 *
 * Extrait le 08/09/2026, au moment où c'était encore gratuit : mesuré avant
 * l'extraction, les quatre palettes n'avaient PAS divergé — sur les 13
 * variables communes, zéro valeur différente. Les seuls écarts étaient des
 * absences. Il n'y avait donc aucun arbitrage à rendre entre deux valeurs
 * concurrentes ; extraire après la première divergence aurait coûté bien plus.
 *
 * Servi par une entrée nommée de `FICHIERS_STATIQUES` (apps/api/src/server.js).
 * Cette liste blanche est une protection, pas une commodité : le serveur ne
 * sert JAMAIS le dossier `public/` en entier. Un fichier ajouté ici n'est pas
 * servi tant qu'il n'y est pas nommé — vérifié le 08/09 par une requête réelle
 * (un .css non déclaré renvoie 404, y compris s'il existe sur le disque).
 */

:root {
  /* ═══ CE QUE LE NAVIGATEUR DESSINE, ET QUE LE CSS NE TOUCHE PAS ═══
   *
   * Sans cette ligne, Chrome rend en mode CLAIR tout ce qu'il dessine lui-même
   * à l'intérieur des contrôles : l'icône du calendrier, les flèches d'un
   * input[type=number], le bouton « Choisir un fichier », les barres de
   * défilement, le calendrier natif et la liste déroulante d'un select quand
   * ils s'ouvrent, et le fond jaune de l'auto-remplissage.
   *
   * Le LOT-08091425 avait réparé la BOÎTE — le <select> restait blanc faute de
   * déclaration. Ce qui se dessine DEDANS était resté clair, et c'est le même
   * angle mort en pire : cela n'apparaît qu'à l'interaction. Ni une mesure de
   * contraste ni une capture statique ne peuvent le voir ; il faut ouvrir.
   */
  color-scheme: dark;
  --bleu-profond: #08538C;
  /* Scindee de --bleu-profond le 08/09 : elle servait a la fois de fond
     (header, badges, case selectionnee — 6 usages, avec du texte blanc
     dessus) et de couleur de TEXTE (20 usages : titres de section, grands
     nombres, onglet actif). Une variable qui porte les deux roles ne peut
     pas basculer au sombre : le fond doit rester sombre, le texte doit
     devenir clair. Meme valeur pour l'instant — ce lot ne repeint rien. */
  /* Le titre est BLANC depuis le 08/09 (LOT-08091425). Il était ambre, et
     l'argument tenait sous la contrainte d'alors : sur fond clair, --titre se
     distinguait par la couleur de marque, pas par le contraste. Le bouton
     d'action étant passé à l'ambre, l'ambre doit désigner l'ACTION et rien
     d'autre — un titre se lit à sa taille et à sa graisse. */
  --titre: #fff;
  /* Scindée de --titre : les grands nombres des compteurs (34 px) et les totaux
     (22 px) sont un ACCENT, pas un titre. Double rôle que l'inventaire du
     LOT-08091050 n'avait pas vu. */
  --chiffre: #FFB93F;
  /* Le bouton d'action. Il portait du blanc sur --bleu-electrique : 3,61, en
     échec avant comme après la bascule — le fond de page n'entre pas dans le
     contraste d'un aplat. Décision de LARY : l'ambre. */
  --bouton-principal-fond: #FFB93F;    /* texte nuit dessus : 8,53 */
  --bouton-principal-texte: #062A4A;
  --bleu-electrique: #1B8AE6;
  --bleu-texte: #FFB93F;
  --ambre: #F5A524;
  /* Renommée le 08/09/2026 (LOT-08091340). Elle s'appelait `--nuit`, un nom de
     COULEUR pour un rôle d'ÉTAT : mesuré, ses deux seuls usages sont la nuit
     RÉSERVÉE du calendrier (`.nuit.reservee` et sa légende, proprietaire.html).
     Sœur de --jour-debut-fond, qui existe déjà et suit la même logique.
     Le nom `--fond-creux`, décidé au LOT-08091031, ne décrivait pas cet usage —
     et il n'avait jamais été écrit ailleurs que dans pont/rapport.md, un fichier
     gitignoré : une décision qui ne vit que là n'existe pas. Il est réservé au
     vrai fond en creux, ci-dessous. */
  --jour-reserve-fond: #2A4A66;
  /* --ciel garde son role de charte : texte secondaire sur fond bleu
     (les 4 `header p`). Ses 3 usages en FOND en ont ete sortis : ils ne
     suivront pas la meme regle au sombre. */
  --ciel: #BFE0FA;
  --ligne-survol: #1B4568;        /* surbrillance d'une ligne survolee ou choisie (2) */
  --texte: #fff;
  --texte-secondaire: #BFE0FA;
  --bordure: rgba(191,224,250,.16);
  /* La frontiere d'un CONTROLE — champ de saisie, bouton bordé. WCAG 1.4.11
     demande 3:1 pour ce qui permet d'identifier un composant d'interface, et
     --bordure n'y suffit pas : 1,50 sur la carte, 1,51 sur le fond. Mesure du
     08/09 : ce manquement est ANTERIEUR au sombre — en clair, #D7DEE6 sur blanc
     donnait 1,36. Le sombre l'ameliore, il ne le cree pas.
     .45 donne 3,32 sur le fond, 3,08 sur la carte, 3,48 dans le creux.
     --bordure reste pour les FILETS decoratifs (separateurs, sections), que
     1.4.11 ne gouverne pas et qu'un contour a .45 alourdirait. */
  --contour-controle: rgba(191,224,250,.45);
  /* Le fond en creux — c'est ici que le nom `--fond-creux` prend son sens, et
     non sur la nuit reservee du calendrier : il decrit ce qu'il fait. Valeur du
     site deploye (--nuit-2), pour les surfaces en retrait et les champs. */
  --fond-creux: #04203A;
  --fond: #062A4A;
  /* Les surfaces, extraites des 36 `background: #fff` ecrits en dur dans
     les ecrans. Trois roles distincts, volontairement pas une seule
     variable : une carte, un champ de saisie et un bouton neutre ne
     suivront pas la meme regle au sombre. Valeurs identiques aujourd'hui. */
  --surface: #133756;         /* cartes, panneaux, bandeaux, onglets, calendrier (25) */
  --surface-champ: var(--fond-creux);   /* input, select, textarea (4) */
  --surface-bouton: #1B4568;  /* boutons a fond neutre : secondaire, danger, stepper (7) */
  /* Les etats. Trois roles par etat, et c'est deliberé :
       --X        le TEXTE de l'etat, pose sur --X-fond
       --X-fond   le fond DISCRET du bandeau, sous --X
       --X-aplat  le fond PLEIN qui porte du texte blanc (bouton, pastille)
     Les trois -aplat sont issus de la scission du 08/09 : --erreur et --succes
     servaient a la fois de texte et de fond plein. Mesure de ce que la bascule
     aurait donne sans les scinder : blanc sur --succes 5,33 -> 1,61, blanc sur
     --erreur 7,41 -> 2,03. Un fond plein doit rester sombre quand le texte
     s'eclaircit ; une seule variable ne peut pas faire les deux. */
  --erreur: #FF9B91;
  --erreur-fond: #4A1D1A;
  --erreur-aplat: #A4231A;        /* boutons de confirmation, pastille du fil (4) */
  --succes: #7BE0A0;
  --succes-fond: #124026;
  --succes-aplat: #1E7B34;        /* bouton « accepter » (1) */
  --attente: #FFC163;
  --attente-fond: #4A3A0E;
  --attente-aplat: #C98A2E;       /* pastille du fil d'etapes (1) — VIDE, aucun texte.
     Contrairement aux deux autres -aplat, celui-ci ne porte PAS de texte blanc :
     il donnerait 2,93. Aucun défaut aujourd'hui, mais le jour où l'on met un
     libellé dedans, il tombe sous le seuil sans que rien ne prévienne. */

  /* Avertissement — distinct de « attente ». Nom choisi contre --attention,
     trop proche de --attente a la lecture pour deux etats differents. */
  --avertissement: #FFD08A;
  --avertissement-fond: #523A14;
  /* Calendrier — le jour de debut de sejour. Aujourd'hui un ilot CLAIR
     (fond ciel, texte bleu profond) pose sur un fond clair. Au sombre il
     devient un fond sombre teinte avec texte clair : pas d'ilot clair sur
     fond sombre (regle etablie sur les bandeaux d'etat). Les deux variables
     sont posees pour que la bascule soit possible sans toucher aux ecrans. */
  --jour-debut-fond: #1B4568;
  --jour-debut-texte: #FFB93F;

  /* Boutons — les etats du bouton principal, jusqu'ici ecrits en dur. */
  --bouton-survol: #FFC963;          /* survol du bouton principal (1) */
  --bouton-inactif-fond: #17395A;    /* bouton principal desactive (3) */
  --bouton-inactif-texte: #8AA6C0;   /* son libelle (3) */

  /* Blocs d'information et de moderation. */
  --info-fond: #123E63;              /* puce bleue d'information (1) */
  --consignes-fond: #3A2E10;         /* bloc de consignes d'arrivee (1) */
  --consignes-texte: #FFD08A;        /* son titre (1) */
  --verification-fond: #42340F;      /* bloc KYC non verifie (1) */
  --signalement-clos-fond: #04203A;  /* signalement deja tranche (1) */
  --alerte-survol: #5A2420;          /* survol d'une ligne en alerte (1) */
  --image-fond: #0E3352;             /* fond des vignettes photo (1) */
  --trait-tableau: rgba(191,224,250,.16);          /* filet entre lignes de tableau (1) */
  --consequence-trait: #8A6A2E;      /* encadre « consequence » (1) */

  --sh: 0 10px 34px rgba(0,0,0,.34);
}

/* ═══ RATTACHEMENT DES CONTRÔLES À LA PALETTE (LOT-08091425) ═══════════════
 *
 * Les <button> et les champs de formulaire NE SUIVENT PAS la couleur héritée :
 * l'agent utilisateur leur impose la sienne — `buttontext` (noir) pour un
 * bouton, un fond blanc pour un select, le bleu `#0000EE` pour un lien.
 *
 * Sur fond clair, cela passait inaperçu — c'était même lisible par accident.
 * La bascule au sombre l'a révélé, mesuré le 08/09 : un <h3> dans un
 * <button class="carte"> tombait à 1,71, un <a class="principal"> à 1,31, et
 * les <select> d'intervenant.html restaient des rectangles BLANCS sur le fond
 * nuit — ceux-là avec un contraste excellent, donc invisibles à toute mesure
 * de contraste. Seul l'écran les montrait.
 *
 * Ces règles ne fixent QUE ce que le navigateur imposait d'office, et rien de
 * plus : ni police, ni bordure, ni fond de bouton. Écrites sans classe, elles
 * ont une spécificité de 0-0-1 : la moindre règle d'auteur existante les
 * emporte. C'est voulu — le remède doit couvrir la cause sans toucher ce qui
 * allait bien.
 *
 * Et il protège le prochain <select> qu'on ajoutera, ce qu'un correctif
 * ponctuel n'aurait pas fait.
 */
button, select, input, textarea { color: inherit; }
select, input, textarea { background: var(--surface-champ); }
a { color: var(--bleu-texte); }
