/* ============================================================
   InsightsLab — Tokens canoniques (V2, Phase 10B.1, 03/09/2026)
   Révisés le 08/09/2026 — direction RUPTURE promue en couche partagée.
   ------------------------------------------------------------
   Couche de vérité du système visuel. La V2 (validée en 10A.4)
   REMPLACE les valeurs V1 en gardant les MÊMES noms : les écrans
   déjà migrés héritent du raffinement sans être retouchés.

   Chaque encre porteuse a été MESURÉE (WCAG 2.1) avant d'être
   retenue. Les ratios en commentaire sont sur --il-canvas ; sur
   --il-surface (blanc) ils sont toujours supérieurs.

   RÈGLES SÉMANTIQUES GELÉES :
   - MARQUE ≠ INTERACTION ≠ MAINTENANT :
       --il-brand-blue  #23A6EC → 2,4 sur clair → GRAPHIQUE SEUL,
                                  jamais du texte ni un lien ;
       --il-action      #0A6491 → 5,76 → toute action sur fond clair ;
       --il-cyan        #00C4FF → 8,12 sur --il-lj → MAINTENANT /
                                  sélectionné / vivant, SUR NAVY SEUL
                                  (et sur la carte maillée --il-mesh-*).
   - DOMAINE ≠ ÉTAT : les couleurs de domaine IDENTIFIENT (cognitif,
     physique, match), le sémaphore JUGE (ok/warn/bad). Jamais l'un
     pour l'autre. Chaque famille a trois valeurs : l'ENCRE (texte,
     AA), la VIVE (anneau, rail, pastille — jamais du texte) et le
     FOND doux (aplat tonal derrière un mot).
   - N/D reste NEUTRE (--il-nd) : ni rouge, ni zéro (contrat C1).

   RUPTURE (08/09/2026) : le Command Center avait ses propres jetons
   locaux ; ils sont désormais LES jetons globaux (canvas #EEF2F7,
   encres re-mesurées, ombres de carte, vives, fonds, mesh, bouton).
   Deux encres du CC étaient sous AA (#71859A = 3,80 ; #6B7F92 = 4,14) :
   elles passent à #566B7D (4,92 sur le canvas, 5,53 sur blanc).

   TABLE DE CORRESPONDANCE (héritée, pour les écrans non migrés) :
     --color-primary  #23A6EC → --il-brand-blue (graphique)
                                ou --il-action (texte/action, AA)
     --color-danger   #f83f3f → --il-bad
     --color-success  #41f1b6 → --il-ok            (le néon disparaît)
     --color-warning  #ffa155 → --il-warn
     --color-dark     #363949 → --il-ink-1
     --color-info-dark #7d8da1 → --il-ink-3
     --color-info-light #dce1eb → --il-border
     --color-light    rgba(132,169,200,.18) → --il-sunken
     --color-primary-variant #111e88 → aucun successeur (violet interdit)
     --color-white    #fff    → --il-surface
   ============================================================ */

:root {
  /* ---- Marque / shell (navy DataMatchLab) ---- */
  --il-navy-900: #00436C;
  --il-navy-800: #01557F;
  --il-navy-700: #076C93;
  --il-navy-600: #0C77AD;
  --il-navy-500: #1B85BD;
  --il-brand-blue: #23A6EC; /* accent GRAPHIQUE de marque — 2,4 : jamais du texte */
  --il-cyan: #00C4FF;       /* MAINTENANT / sélectionné / vivant — SUR NAVY uniquement */
  --il-action: #0A6491;     /* 5,76 — couleur d'action sur fond clair */
  --il-now: #0F7A44;        /* point « maintenant » sur clair (= --il-ok) ; devient cyan sur le canvas sombre */

  /* ---- Surfaces (clair) ----
     L0 plan de travail · L1 carte · L1 sourde · L1 sourde 2 (survol, avatar). */
  --il-canvas: #EEF2F7;         /* L0 — le plan de travail Rupture */
  --il-surface: #FFFFFF;        /* L1 */
  --il-sunken: #F3F6FB;         /* L1 sourde (pas de bordure) */
  --il-sunken-2: #E9EFF6;       /* L1 sourde, un cran plus bas */
  --il-border: #DDE5EC;         /* contour de contrôle (héritage V2 ; la Rupture ne cerne pas) */
  --il-border-strong: #C7D5E0;
  --il-hair: #EDF2F7;           /* filet de ligne de tableau — jamais un contour */
  --il-track: #E1E7EF;          /* piste vide d'un anneau, d'un rail, d'une jauge */

  /* ---- Surface d'intelligence (LJ) et carte maillée ---- */
  --il-lj: #082132;             /* surface de jugement (navy plat) */
  --il-lj-2: #0B3048;           /* châssis / rail */
  --il-lj-line: rgba(255, 255, 255, 0.10);
  --il-lj-veil: rgba(255, 255, 255, 0.05);
  --il-mesh-a: #0B4F80;         /* dégradé maillé de la carte d'intelligence Rupture */
  --il-mesh-b: #06304A;
  --il-mesh-c: #041F33;
  --il-mesh-glow: rgba(0, 196, 255, 0.35);

  /* ---- Encres sur clair (mesurées sur --il-canvas #EEF2F7) ---- */
  --il-ink-1: #0A1A26;   /* 15,7 — titres, valeurs */
  --il-ink-2: #47606F;   /*  5,9 — texte courant secondaire */
  --il-ink-3: #566B7D;   /*  4,92 — méta, intitulés, unités (5,53 sur blanc) */

  /* ---- Encres sur navy (mesurées sur --il-lj) ---- */
  --il-on-lj-1: #FFFFFF; /* 16,48 */
  --il-on-lj-2: #DCE9F2; /* 13,33 */
  --il-on-lj-3: #A8C2D4; /*  8,90 */
  --il-on-lj-4: #7E9DB4; /*  5,78 — plancher : rien de plus pâle ne porte du texte */

  /* ---- Domaines (IDENTIFIENT) : encre · vive · fond ---- */
  --il-dom-cog: #A54B08;        /* cognitif — 5,17 */
  --il-dom-cog-viv: #F59E0B;
  --il-dom-cog-fill: #EA580C;   /* aplat cognitif (barres, points) — jamais du texte (11/10/2026) */
  --il-dom-cog-bg: rgba(245, 158, 11, 0.14);
  --il-dom-phys: #0E7490;       /* physique — 4,77 */
  --il-dom-phys-viv: #22D3EE;
  --il-dom-phys-bg: rgba(34, 211, 238, 0.14);
  --il-dom-match: #457010;      /* match — 5,22 */
  --il-dom-match-viv: #84CC16;
  --il-dom-match-bg: rgba(132, 204, 22, 0.14);

  /* ---- Sémaphore (JUGE) : encre · vive · fond ---- */
  --il-ok: #0F7A44;             /* 4,80 */
  --il-ok-viv: #10B981;
  --il-ok-bg: rgba(16, 185, 129, 0.13);
  --il-ok-soft: #8FE3C4;        /* sur navy : 10,95 */
  --il-warn: #8A5A0C;           /* 5,2 */
  --il-warn-bg: #F7EFDF;
  --il-warn-soft: #F2C77A;      /* sur navy : 10,38 */
  --il-bad: #C81E30;            /* 5,07 */
  --il-bad-viv: #E11D48;
  --il-bad-bg: rgba(225, 29, 72, 0.12);
  --il-bad-soft: #FFB3A6;       /* sur navy :  9,62 */
  --il-stable: #475569;         /* l'état calme : ni bon ni mauvais, une encre neutre — 7,0 */
  --il-stable-bg: rgba(71, 85, 105, 0.10);

  /* ---- Absence de donnée (neutre — C1) ---- */
  --il-nd: #566B7D;             /* même encre que --il-ink-3 : l'inconnu ne juge pas */
  --il-nd-bg: rgba(107, 127, 146, 0.10);
  --il-nd-sunk: var(--il-nd);   /* héritage : l'encre tient désormais AA sur la surface sourde */

  /* ---- Élévation : l'ombre DÉTACHE, elle ne décore pas ---- */
  --il-el-1: 0 1px 2px rgba(10, 26, 38, 0.06), 0 4px 12px rgba(10, 26, 38, 0.05);
  --il-el-2: 0 2px 4px rgba(10, 26, 38, 0.07), 0 12px 28px rgba(10, 26, 38, 0.10);
  --il-shadow-card: 0 1px 2px rgba(6, 58, 81, 0.04), 0 24px 48px -28px rgba(6, 58, 81, 0.38);
  --il-shadow-card-hi: 0 2px 4px rgba(6, 58, 81, 0.05), 0 36px 70px -30px rgba(6, 58, 81, 0.45);
  --il-glow: rgba(12, 119, 173, 0.10);   /* halo ambiant d'une page */
  --il-hl: rgba(12, 119, 173, 0.10);     /* impulsion de surbrillance / focus dans une liste */

  /* ---- Bouton primaire (pilule à halo) ---- */
  --il-btn-a: #0C77AD;
  --il-btn-b: #0A5F8E;
  --il-btn-glow: rgba(12, 119, 173, 0.35);

  /* ---- Géométrie : rythme strict, deux grammaires de rayons ----
     Primitives partagées : 2 / 6 / 10. Compositions Rupture : 14 / 18 / 24
     (la profondeur vient de l'ombre et de l'espace, plus d'un filet). */
  --il-s-1: 4px;
  --il-s-2: 8px;
  --il-s-3: 12px;
  --il-s-4: 16px;
  --il-s-5: 24px;
  --il-s-6: 32px;
  --il-s-7: 48px;
  --il-s-8: 64px;
  --il-r-1: 2px;   /* pastille, jauge, marqueur */
  --il-r-2: 6px;   /* évidence, contrôle */
  --il-r-3: 10px;  /* surface d'intelligence — le plus grand rayon des PRIMITIVES */
  --il-r-4: 14px;  /* ligne-carte, sous-carte (Rupture) */
  --il-r-5: 18px;  /* entrée de tête, état creux (Rupture) */
  --il-r-6: 24px;  /* carte de composition (Rupture) */
  --il-r-card: 14px;
  --il-r-ctl: 10px;
  --il-r-pill: 999px;
  --il-sticky-top: 0px;   /* hauteur du bandeau fixe au-dessus d'une barre collante — posée par le châssis */

  /* ---- Typographie ---- */
  --il-font-ui: "Montserrat", "Segoe UI", system-ui, sans-serif;
  --il-font-display: "Baropus", "Montserrat", sans-serif; /* usage restreint (voir il-fonts.css) */

  /* ---- Mouvement (§ motion.css) ---- */
  --il-dur-1: 120ms;
  --il-dur-2: 220ms;
  --il-ease: cubic-bezier(0.4, 0, 0.2, 1);

  /* ---- Focus visible (accessibilité, §14) ---- */
  --il-focus-ring: 0 0 0 3px rgba(12, 119, 173, 0.35);
}

/* Chiffres alignés partout où l'application est comparée colonne par colonne.
   Montserrat sert les figures tabulaires via `tnum` — aucune police
   supplémentaire n'est chargée pour cela. */
.il-newshell #dashboardContainer,
.il-newshell .ils-main {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* ══════════ THÈME SOMBRE — jetons GLOBAUX, trois états (refonte 2026, 07/09) ══════════
   Deux portes, un seul jeu de valeurs :
     · la préférence système, quand <html> ne porte AUCUN data-theme ;
     · le choix explicite data-theme="dark".
   data-theme="light" gagne toujours sur le système. Le châssis stampe le
   choix AVANT la première peinture (main.php) ; le défaut reste « clair »
   tant que chaque surface n'a pas été vérifiée en sombre. Toutes les
   encres sont MESURÉES sur le canvas (#06101A), la carte (#0E1A27), la
   surface sourde (#13212F) et l'ancre (#1A2F42) : voir
   tests/v2_system_test.php. Les encres sur navy (--il-on-lj-*) et le
   sémaphore doux (--il-*-soft) tiennent déjà sur l'ancre et ne changent pas.
   Les DEUX blocs ci-dessous sont identiques : tests/il_rupture_test.php
   le vérifie. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
  color-scheme: dark;
  --il-canvas: #06101A;          /* navy proche du noir, jamais le noir pur */
  --il-surface: #0E1A27;
  --il-sunken: #13212F;
  --il-sunken-2: #182838;
  --il-border: #22303E;
  --il-border-strong: #33455A;
  --il-hair: #182634;
  --il-track: rgba(255, 255, 255, 0.10);
  --il-lj: #1A2F42;              /* l'intelligence est RELEVÉE au-dessus du canvas, pas enfoncée */
  --il-lj-line: rgba(255, 255, 255, 0.10);
  --il-lj-veil: rgba(255, 255, 255, 0.05);
  --il-mesh-a: #125D93;
  --il-mesh-b: #0A3E63;
  --il-mesh-c: #072A45;
  --il-mesh-glow: rgba(0, 196, 255, 0.45);
  --il-ink-1: #F1F5F9;   /* 17,3 canvas · 15,6 carte · 12,5 ancre */
  --il-ink-2: #B4C3D0;   /* 10,6 · 9,5 · 7,6 */
  --il-ink-3: #94A6B6;   /*  7,6 · 6,9 · 5,5 */
  --il-action: #63C2F8;  /*  9,7 sur le canvas */
  --il-now: #00C4FF;     /* le cyan retrouve son sens : MAINTENANT, sur navy */
  --il-dom-cog: #FDA75A;
  --il-dom-cog-viv: #FB923C;
  --il-dom-cog-fill: #FB923C;
  --il-dom-cog-bg: rgba(251, 146, 60, 0.14);
  --il-dom-phys: #22D3EE;
  --il-dom-phys-viv: #22D3EE;
  --il-dom-phys-bg: rgba(34, 211, 238, 0.14);
  --il-dom-match: #B8EC5C;
  --il-dom-match-viv: #A3E635;
  --il-dom-match-bg: rgba(163, 230, 53, 0.14);
  --il-ok: #5EE39A;
  --il-ok-viv: #34D399;
  --il-ok-bg: rgba(52, 211, 153, 0.14);
  --il-warn: #F2C77A;
  --il-warn-bg: rgba(242, 199, 122, 0.12);
  --il-bad: #FF8A80;
  --il-bad-viv: #FB7185;
  --il-bad-bg: rgba(251, 113, 133, 0.14);
  --il-stable: #A9B8C6;
  --il-stable-bg: rgba(169, 184, 198, 0.12);
  --il-nd: #93A4B4;
  --il-nd-bg: rgba(147, 164, 180, 0.12);
  --il-nd-sunk: var(--il-nd);
  --il-focus-ring: 0 0 0 3px rgba(0, 196, 255, 0.40);
  --il-el-1: 0 1px 2px rgba(0, 0, 0, 0.35), 0 4px 12px rgba(0, 0, 0, 0.30);
  --il-el-2: 0 2px 4px rgba(0, 0, 0, 0.40), 0 12px 28px rgba(0, 0, 0, 0.45);
  --il-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.4), 0 24px 48px -24px rgba(0, 0, 0, 0.7);
  --il-shadow-card-hi: 0 2px 4px rgba(0, 0, 0, 0.5), 0 36px 70px -26px rgba(0, 0, 0, 0.8);
  --il-glow: rgba(0, 196, 255, 0.10);
  --il-hl: rgba(0, 196, 255, 0.12);
  --il-btn-a: #1B86C8;
  --il-btn-b: #146FA9;
  --il-btn-glow: rgba(27, 134, 200, 0.4);
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --il-canvas: #06101A;          /* navy proche du noir, jamais le noir pur */
  --il-surface: #0E1A27;
  --il-sunken: #13212F;
  --il-sunken-2: #182838;
  --il-border: #22303E;
  --il-border-strong: #33455A;
  --il-hair: #182634;
  --il-track: rgba(255, 255, 255, 0.10);
  --il-lj: #1A2F42;              /* l'intelligence est RELEVÉE au-dessus du canvas, pas enfoncée */
  --il-lj-line: rgba(255, 255, 255, 0.10);
  --il-lj-veil: rgba(255, 255, 255, 0.05);
  --il-mesh-a: #125D93;
  --il-mesh-b: #0A3E63;
  --il-mesh-c: #072A45;
  --il-mesh-glow: rgba(0, 196, 255, 0.45);
  --il-ink-1: #F1F5F9;   /* 17,3 canvas · 15,6 carte · 12,5 ancre */
  --il-ink-2: #B4C3D0;   /* 10,6 · 9,5 · 7,6 */
  --il-ink-3: #94A6B6;   /*  7,6 · 6,9 · 5,5 */
  --il-action: #63C2F8;  /*  9,7 sur le canvas */
  --il-now: #00C4FF;     /* le cyan retrouve son sens : MAINTENANT, sur navy */
  --il-dom-cog: #FDA75A;
  --il-dom-cog-viv: #FB923C;
  --il-dom-cog-fill: #FB923C;
  --il-dom-cog-bg: rgba(251, 146, 60, 0.14);
  --il-dom-phys: #22D3EE;
  --il-dom-phys-viv: #22D3EE;
  --il-dom-phys-bg: rgba(34, 211, 238, 0.14);
  --il-dom-match: #B8EC5C;
  --il-dom-match-viv: #A3E635;
  --il-dom-match-bg: rgba(163, 230, 53, 0.14);
  --il-ok: #5EE39A;
  --il-ok-viv: #34D399;
  --il-ok-bg: rgba(52, 211, 153, 0.14);
  --il-warn: #F2C77A;
  --il-warn-bg: rgba(242, 199, 122, 0.12);
  --il-bad: #FF8A80;
  --il-bad-viv: #FB7185;
  --il-bad-bg: rgba(251, 113, 133, 0.14);
  --il-stable: #A9B8C6;
  --il-stable-bg: rgba(169, 184, 198, 0.12);
  --il-nd: #93A4B4;
  --il-nd-bg: rgba(147, 164, 180, 0.12);
  --il-nd-sunk: var(--il-nd);
  --il-focus-ring: 0 0 0 3px rgba(0, 196, 255, 0.40);
  --il-el-1: 0 1px 2px rgba(0, 0, 0, 0.35), 0 4px 12px rgba(0, 0, 0, 0.30);
  --il-el-2: 0 2px 4px rgba(0, 0, 0, 0.40), 0 12px 28px rgba(0, 0, 0, 0.45);
  --il-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.4), 0 24px 48px -24px rgba(0, 0, 0, 0.7);
  --il-shadow-card-hi: 0 2px 4px rgba(0, 0, 0, 0.5), 0 36px 70px -26px rgba(0, 0, 0, 0.8);
  --il-glow: rgba(0, 196, 255, 0.10);
  --il-hl: rgba(0, 196, 255, 0.12);
  --il-btn-a: #1B86C8;
  --il-btn-b: #146FA9;
  --il-btn-glow: rgba(27, 134, 200, 0.4);
}
