:root {
  /* ---------- Couleurs : jour (clair, défaut) ---------- */
  --lab-paper:          #F5F2EA; /* fond général, teinte papier (jamais blanc pur) */
  --lab-surface:        #FBF9F4; /* feuilles, cartes, panneaux */
  --lab-surface-sunk:   #ECE7DC; /* table de lecture autour de la page du draft */
  --lab-ink:            #16222C; /* encre bleu nuit, texte principal (14,5:1 sur paper) */
  --lab-ink-2:          #4B5965; /* texte secondaire (6,4:1) */
  --lab-ink-3:          #5A6671; /* légendes, métadonnées (5,3:1 sur paper, 4,8:1 sur surface-sunk) */
  --lab-line:           #DDD6C8; /* filets décoratifs uniquement */
  --lab-line-strong:    #8E8A80; /* bordures de champs et de cases (3,1:1) */
  --lab-gold:           #B08D4A; /* or Coreod : filets, ailes, état actif ; jamais du texte */
  --lab-gold-ink:       #7D6128; /* or lisible : liens, numéros de section (5,2:1) */
  --lab-focus:          #8A6A2C; /* anneau de focus clavier (4,5:1) */
  --lab-on-ink:         #F5F2EA; /* texte sur bouton encre */

  /* Le seuil (invitation, passkey, attente) : la nuit Coreod, un vrai bleu nuit (D-2026-10-04-22 et -25).
     Historique : #0D1823 trop foncé ; #263D53 perçu vert pétrole ; #1E2E52 retenu (teinte 222°, plus bleue, luminosité entre les deux). */
  --lab-night:          #1E2E52;
  --lab-night-2:        #24365F; /* lueur haute du dégradé, carte de connexion */
  --lab-night-line:     #3B4F7C;
  --lab-on-night:       #F2EEE4; /* 11,6:1 */
  --lab-on-night-2:     #B8C2D6; /* 7,5:1 sur night, 6,6:1 sur night-2 */
  --lab-gold-on-night:  #C9A961; /* l'or Coreod d'origine revient : 6,0:1 sur night, 5,3:1 sur night-2 ; texte du bouton or en --lab-night, 6,0:1 */

  /* Réservées à L4 (données cliniques pseudonymisées), toujours doublées d'un mot ou d'une icône */
  --lab-data-steady:    #3F6B5A; /* sauge (5,4:1) */
  --lab-data-attention: #8A5A12; /* ocre (5,3:1) ; le Lab n'a pas de rouge */

  /* Page du draft (spécification pour l'atelier de rendu, pas pour le navigateur) */
  --draft-paper:        #F7F4EC; /* + grain monochrome très léger, amplitude mesurée en L1 */
  --draft-ink:          #1A242D;
  --draft-rule:         #B08D4A; /* un seul filet d'or sous les titres de chapitre */

  /* ---------- Typographie ---------- */
  --lab-font-ui:     "Source Sans 3", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  --lab-font-serif:  "Source Serif 4", "Iowan Old Style", "Palatino", Georgia, serif;
  --lab-font-ar:     "Noto Naskh Arabic", "Geeza Pro", serif;
  --lab-font-ar-ui:  "IBM Plex Sans Arabic", "SF Arabic", "Geeza Pro", sans-serif;
  --lab-ar-leading:  1.8;   /* arabe : interlignage plus ample ; jamais d'espacement de lettres */
  --lab-font-mono:   "Source Code Pro", "SF Mono", Menlo, monospace; /* identifiants pseudonymes L4 */

  --lab-text-xs:   12px;  /* mentions, numéro de version */
  --lab-text-sm:   14px;  /* métadonnées */
  --lab-text-md:   16px;  /* base interface (jamais en dessous pour une action) */
  --lab-text-lg:   18px;  /* texte du badge */
  --lab-text-xl:   22px;  /* titres d'écran (serif) */
  --lab-text-2xl:  30px;  /* titre du seuil (serif) */
  --lab-text-3xl:  40px;  /* « Welcome to Coreod Lab » (serif) */
  --lab-leading-ui:    1.45;
  --lab-leading-read:  1.6;
  --lab-tracking-caps: 0.18em; /* COREOD LAB en capitales, écho du logotype */
  --lab-weight-regular: 400;
  --lab-weight-medium:  600;

  /* ---------- Espacements (base 4) ---------- */
  --lab-space-1: 4px;
  --lab-space-2: 8px;
  --lab-space-3: 12px;
  --lab-space-4: 16px;
  --lab-space-5: 24px;
  --lab-space-6: 32px;
  --lab-space-7: 48px;
  --lab-space-8: 64px;
  --lab-space-9: 96px;
  --lab-measure: 66ch;     /* largeur de lecture du badge */
  --lab-bar-height: 56px;  /* barre de la liseuse */
  --lab-target: 44px;      /* cible tactile minimale */

  /* ---------- Rayons : clinique, presque droits ---------- */
  --lab-radius-1: 2px;  /* champs, cases */
  --lab-radius-2: 4px;  /* boutons */
  --lab-radius-3: 8px;  /* cartes, panneaux */

  /* ---------- Ombres : une feuille posée, jamais flottante ---------- */
  --lab-shadow-page:  0 1px 2px rgba(22, 34, 44, .08), 0 8px 28px rgba(22, 34, 44, .10);
  --lab-shadow-panel: 0 1px 2px rgba(22, 34, 44, .06), 0 4px 16px rgba(22, 34, 44, .08);

  /* ---------- Mouvement : lent, rare, coupé si l'utilisateur le demande ---------- */
  --lab-ease:        cubic-bezier(.2, 0, 0, 1);
  --lab-dur-fast:    160ms; /* survol, focus */
  --lab-dur-base:    240ms; /* panneaux */
  --lab-dur-slow:    480ms; /* passage du seuil à la bibliothèque */
  --lab-dur-breathe: 4000ms; /* point d'or de l'attente */
}
/* Coreod Lab : habillage du seuil Keycloak (passkey), jetons d'Iris, rien d'externe. */
.pf-v5-c-login, .pf-v5-c-login__container, body { background: radial-gradient(120% 80% at 50% 0%, var(--lab-night-2), var(--lab-night)) !important; }
.pf-v5-c-login__header, #kc-header, #kc-header-wrapper { color: var(--lab-gold-on-night) !important; letter-spacing: var(--lab-tracking-caps); font-family: var(--lab-font-ui); }
.pf-v5-c-login__main { background: var(--lab-night-2) !important; color: var(--lab-on-night) !important; border-radius: var(--lab-radius-3); box-shadow: none; border: 1px solid var(--lab-night-line); }
.pf-v5-c-login__main *, .pf-v5-c-title { color: var(--lab-on-night) !important; font-family: var(--lab-font-ui); }
.pf-v5-c-title { font-family: var(--lab-font-serif) !important; font-weight: 400 !important; }
.pf-v5-c-button.pf-m-primary { background: var(--lab-gold-on-night) !important; color: var(--lab-night) !important; border-radius: var(--lab-radius-2); min-height: var(--lab-target); }
.pf-v5-c-button.pf-m-primary * { color: var(--lab-night) !important; }
a { color: var(--lab-gold-on-night) !important; }
html[lang="ar"] body, html[lang="ar"] .pf-v5-c-login__main * { font-family: var(--lab-font-ar-ui) !important; }
.pf-v5-c-login__main { border-top: 3px solid var(--lab-gold-on-night) !important; }
.pf-v5-c-login__main::before, .pf-v5-c-login__main-header::before { display: none !important; }
select, .pf-v5-c-form-control, .pf-v5-c-form-control > select { background: var(--lab-night) !important; color: var(--lab-on-night) !important; border: 1px solid var(--lab-night-line) !important; }
.pf-v5-c-form-control::before, .pf-v5-c-form-control::after { border-color: var(--lab-night-line) !important; }
/* Écran 2 bis d'Iris : aucun filet coloré en haut de la carte, l'or est réservé au bouton. */
.pf-v5-c-login__main { --keycloak-card-top-color: transparent; border-top: 1px solid var(--lab-night-line) !important; }
.coreod-langues { font-size: var(--lab-text-sm); color: var(--lab-on-night-2); }
.coreod-langues a { color: var(--lab-on-night-2) !important; text-decoration: none; }
.coreod-langues a[aria-current] { color: var(--lab-on-night) !important; text-decoration: underline; text-underline-offset: 4px; }
/* Messages d'erreur ou d'information sur la nuit (relevé de Gabrielle, 2026-10-05) :
   le cadre clair de PatternFly portait un texte clair, donc illisible ; et le Lab
   n'a pas de rouge (Iris). Cadre nuit, filet or à gauche, texte clair. */
.pf-v5-c-login__main .pf-v5-c-alert {
  background: var(--lab-night) !important;
  border: 1px solid var(--lab-night-line) !important;
  border-inline-start: 3px solid var(--lab-gold-on-night) !important;
  box-shadow: none !important;
  --pf-v5-c-alert--BorderTopColor: transparent;
  --pf-v5-c-alert--m-danger--BorderTopColor: transparent;
  --pf-v5-c-alert--m-warning--BorderTopColor: transparent;
  --pf-v5-c-alert--m-info--BorderTopColor: transparent;
  --pf-v5-c-alert--m-success--BorderTopColor: transparent;
}
.pf-v5-c-login__main .pf-v5-c-alert::before { display: none !important; border: 0 !important; }
.pf-v5-c-login__main .pf-v5-c-alert, .pf-v5-c-login__main .pf-v5-c-alert * { color: var(--lab-on-night) !important; }
.pf-v5-c-login__main .pf-v5-c-alert__icon, .pf-v5-c-login__main .pf-v5-c-alert__icon * { color: var(--lab-gold-on-night) !important; }
.coreod-premiere-visite { margin-top: var(--lab-space-4); font-size: var(--lab-text-sm); color: var(--lab-on-night-2) !important; }
