/* =====================================================================
   Bati'Tools — echelles.css
   Les ÉCHELLES NORMATIVES et les COULEURS MÉTIER : ce qui code une donnée,
   et non un habillage.

   POURQUOI CETTE FEUILLE N'EST PAS LA CHARTE (§160, 19/09/2026)

   La charte dit « conforme / alerte / erreur » : trois états, trois teintes.
   Les échelles ci-dessous disent autre chose. Une classe BAC va de A à D
   plus « non classé » — cinq paliers ORDONNÉS, à lire comme une étiquette
   énergie : ramener ces cinq paliers à trois états les rendrait
   indistinguables. Une famille d'habitation de l'arrêté de 1986 n'est ni
   conforme ni en erreur : elle EST la famille 3a. Un régime réglementaire
   (RE2020, RT2012, RT existant…) identifie le TEXTE qui s'applique. Une
   couleur de réseau dit si le tuyau porte de l'eau froide ou de l'ECS.
   Dans tous ces cas, la couleur est la donnée. On ne factorise pas une
   donnée dans un thème : on la déclare une fois, on la nomme pour ce
   qu'elle code, et on la laisse tranquille.

   CE QUE CETTE FEUILLE RÉPARE. Deux pages codaient le même régime
   réglementaire avec des valeurs différentes — #7c3aed ici, #8b5cf6 là,
   #b45309 contre #e0552b — sans qu'aucune ne soit la référence. Les valeurs
   retenues sont celles du dossier de référence (Réglementation/Thermique),
   qui porte l'échelle complète à neuf paliers ; l'outil RT, qui n'en portait
   que quatre, s'y aligne. Deux membres de l'échelle de 1986 (IGH et « non
   applicable ») vivaient en littéral dans la règle d'usage, séparés des cinq
   autres : ils rejoignent la déclaration.

   PAS DE BLOC SOMBRE, SAUF POUR LES RÉSEAUX, ET C'EST VOULU. Une échelle
   normative se lit par ses PALIERS, qui doivent rester distinguables entre
   eux ; les pages qui la portent l'affichaient déjà telle quelle dans les
   deux thèmes. Les couleurs de réseau, elles, sont posées en texte sur la
   carte sombre : leur rouge s'éclaircit la nuit, comme avant.

   Les préfixes rendent toute collision impossible : aucun de ces noms ne
   peut écraser un jeton de la charte ou de l'atelier.
   ===================================================================== */

:root {
  /* ---------- Classes d'efficacité BAC (NF EN ISO 52120-1, Tableau 6) ----------
     Cinq paliers, par PAIRES encre + fond, du vert au rouge. */
  --classe-bac-a:        #0a5c2e;  --classe-bac-a-fond:   #d6f5e0;
  --classe-bac-b:        #3f6b0c;  --classe-bac-b-fond:   #e8f6cf;
  --classe-bac-c:        #8a5106;  --classe-bac-c-fond:   #fdeecf;
  --classe-bac-d:        #9b1c14;  --classe-bac-d-fond:   #fbdcd9;
  --classe-bac-nc:       #4b5563;  --classe-bac-nc-fond:  #ffffff;

  /* ---------- Familles de bâtiments d'habitation (arrêté du 31 janvier 1986) ----------
     Ordonnées du vert au rouge selon la hauteur et le risque. IGH et « non
     applicable » sont hors échelle, d'où deux teintes qui n'y appartiennent pas. */
  --famille-hab-1:       #4a8f5b;
  --famille-hab-2:       #3d7ea6;
  --famille-hab-3a:      #b8860b;
  --famille-hab-3b:      #c05621;
  --famille-hab-4:       #a03030;
  --famille-hab-igh:     #6b21a8;
  --famille-hab-na:      #555555;

  /* ---------- Régimes réglementaires thermiques ----------
     Chaque teinte identifie le TEXTE applicable. Les trois régimes les plus
     courants ont aussi un fond, pour les pastilles « existant / neuf /
     tertiaire » du dossier de référence. */
  --regime-re2020:                  #b45309;  --regime-re2020-fond:               #fef3e2;
  --regime-re2020-alternatif:       #d97706;
  --regime-rt2012:                  #1d4ed8;  --regime-rt2012-fond:               #e8effd;
  --regime-rt-existant-element:     #0d7a5f;  --regime-rt-existant-element-fond:  #e7f6f1;
  --regime-rt-existant-global:      #7c3aed;
  --regime-deet:                    #b45309;  /* même teinte que la RE2020 : même famille de texte */
  --regime-travaux-embarques:       #0891b2;
  --regime-hors-champ:              #6b7280;
  --regime-information:             #94a3b8;

  /* ---------- Familles de réseau (plomberie) ----------
     Bleu pour le froid, rouge pour le chaud : la convention du métier. Le
     rouge frôle une couleur d'erreur, et ce serait un contresens de l'y
     fondre — une canalisation d'ECS n'est pas une erreur. */
  --reseau-ef:           #90caf9;
  --reseau-ecs:          #b71c1c;
  /* Les mêmes familles écrites EN TEXTE sur une page claire (diametreEFECS) :
     le bleu clair des plans est illisible sur une carte claire (1,2:1), on
     prend un bleu profond de la même famille ; le rouge d'ECS tient déjà. */
  --reseau-ef-encre:     #1565c0;
  --reseau-ecs-encre:    #b71c1c;

  /* ---------- Nature d'une prescription ----------
     D'où vient l'exigence, et à quel titre elle s'impose. Deux outils
     codaient cet axe avec des conventions inverses — l'arrêté du 23 juin 1978
     disait « opposable » en bleu et « complémentaire » en ambre, la colonne
     sèche disait « réglementaire » en rouge, « normatif » en bleu et
     « opposable par renvoi » en ambre. Même mécanique qu'au §160 pour les
     régimes : on retient l'échelle la plus complète (trois membres, celle de
     la colonne sèche) et l'autre outil s'y aligne. Le blanc du badge du
     1978 fait partie de la teinte. */
  --source-reglementaire:       #b42318;  /* texte réglementaire, opposable de plein droit */
  --source-reglementaire-fond:  #fff1f2;
  --source-reglementaire-filet: #fecdd3;
  --source-normative:           #35507a;  /* norme, DTU, règle de l'art, hypothèse de l'outil */
  --source-normative-fond:      #e8eef8;
  --source-normative-filet:     #c2d5fb;
  --source-renvoi:              #b45f06;  /* norme rendue opposable par renvoi d'un texte */
  --source-renvoi-fond:         #fef3e2;
  --source-renvoi-filet:        #f0d5a8;
  --source-encre:               #ffffff;  /* texte du badge, quand la teinte est en fond */

  /* ---------- Désenfumage : familles de conduits (IT 246) ----------
     Évacuation des fumées et amenée d'air neuf : deux réseaux distincts d'une
     même installation, comme EF et ECS en plomberie. */
  --dsf-evacuation:        #5fe1dc;
  --dsf-amenee-air:        #f0ae4e;
  /* Les mêmes familles écrites EN TEXTE sur une page claire : le cyan et
     l'ambre ci-dessus sont des teintes de trait, prévues pour un fond sombre
     (1,1:1 sur une carte claire). Même mécanique que --reseau-ef-encre. */
  --dsf-evacuation-encre:  #0b5c58;
  --dsf-amenee-air-encre:  #8a5200;

  /* ---------- Diagramme de Glaser (condensation, canvas) ----------
     Même parti pris que le diagramme de l'air humide : chaque teinte identifie
     une COURBE ou une zone du tracé, elle porte l'information. Lues par le JS
     à chaque tracé : la page doit charger cette feuille. */
  --cnd-grid:              #c9ced8;  /* réseau de fond */
  --cnd-psat:              #1b7f3b;  /* pression de vapeur saturante */
  --cnd-pv:                #2f6fb5;  /* pression de vapeur réelle */
  --cnd-libre:             #8b95a5;  /* pression de vapeur sans condensation */
  --cnd-temp:              #e08a1e;  /* profil de température */
  --cnd-danger:            #c0392b;  /* zone et plans de condensation */
  --cnd-band-a:            #e9edf3;  /* bandes de matériaux, alternées */
  --cnd-band-b:            #dfe5ee;

  /* ---------- Courbes d'un graphique d'échangeur (echangeurCTA, canvas) ----------
     Trois températures tracées ensemble : elles doivent rester distinctes les
     unes des autres, c'est ce que la couleur code ici. */
  --courbe-rejet:          #0b84ff;
  --courbe-soufflage:      #e07b00;
  --courbe-exterieure:     #8b949e;

  /* ---------- Planche de schéma de principe (dessinée par le JS) ----------
     dimReseauGaz et colonneSeche dessinaient le MÊME schéma avec la même
     palette recopiée dans chaque page ; conceptionIT246 en dessinait une
     variante. Les valeurs sont reprises telles quelles pour ne rien changer au
     rendu. ATTENTION : --sch-organe-filet et --sch-tube valent #79031d, qui
     était la couleur d'action du site AVANT la palette orange — une teinte
     morte, à trancher lors de la passe « figures » (§5.2). */
  --sch-planche:           #f7f6f2;  /* fond de planche */
  --sch-encre:             #1a1d21;
  --sch-encre-attenuee:    #6b6660;
  --sch-filet:             #9a958c;
  --sch-organe-fond:       #ffffff;  /* cadre d'un organe (vanne, compteur) */
  --sch-organe-filet:      #79031d;
  --sch-tube:              #79031d;
  --sch-appareil-fond:     #efece4;
  --sch-appareil-filet:    #b9b1a2;
  --sch-trait:             #8fa8c0;  /* traits d'une coupe (IT 246) */
  --sch-trait-fin:         #93a3b5;
  --sch-conforme:          #2e7d32;  /* verdicts portés SUR la planche */
  --sch-alerte:            #b45f06;
  --sch-erreur:            #b42318;

  /* ---------- Sujet PFAS (outil F-gas / PFAS) ----------
     Le violet distingue ce qui relève de la restriction PFAS de ce qui relève
     du règlement F-gas (états information / alerte / erreur de la charte). */
  --sujet-pfas:             #7c3aed;
  --sujet-pfas-fond:        #f3ecff;
  --sujet-pfas-filet:       #ddd0fb;

  /* ---------- Diagramme de l'air humide (diagrammeAirHumide, canvas) ----------
     Chaque teinte identifie une FAMILLE DE COURBES du diagramme psychrométrique,
     comme sur les abaques imprimés : saturation en vert, isenthalpes en rouge,
     humidité spécifique en bleu, points de l'utilisateur en orange. Le froid
     (bleu) et le chaud (rouge) reprennent la convention des réseaux. Lues par
     le JS à chaque tracé (getPropertyValue) : la page doit charger cette feuille. */
  --psy-grid:   #c9ced8;   /* réseau des isotitres */
  --psy-sat:    #1b7f3b;   /* courbe de saturation HR = 100 % */
  --psy-enth:   #c0392b;   /* isenthalpes */
  --psy-dots:   #2f6fb5;   /* semis des points d'humidité spécifique */
  --psy-point:  #e08a1e;   /* points placés par l'utilisateur */
  --psy-froid:  #2f6fb5;   /* évolution en refroidissement (segment, libellé du mode) */
  --psy-chaud:  #d1651a;   /* évolution en chauffage */
}

/* Le rouge d'ECS s'éclaircit sur la carte sombre. Même mécanique que la
   charte : le réglage du système décide tant qu'aucun data-theme n'est posé,
   et data-theme l'emporte dès qu'il l'est. */
@media (prefers-color-scheme: dark) {
  :root { --reseau-ecs: #ef9a9a; }
}
html[data-theme="light"] { --reseau-ecs: #b71c1c; }
html[data-theme="dark"]  { --reseau-ecs: #ef9a9a; }
