/* Copie de css/tokens.css du thème aduneo (projet Aduneo Web), 23/10/2026 : mêmes couleurs que le site, clair et sombre. À resynchroniser si la charte change. */
/* ==========================================================================
   Aduneo — design tokens (maquette Z, Claude/recherche/03-design-system.md)
   Thèmes : chaque couleur est déclarée une fois avec light-dark(clair, sombre).
   - Par défaut : color-scheme « light dark » → suit le système (D6).
   - Choix du visiteur : html[data-theme="light|dark"] force color-scheme.
   Corrections de contraste par rapport à la maquette : marquées « AA ».
   ========================================================================== */
:root {
  color-scheme: light dark;

  /* Rôles */
  --bg:            light-dark(#FBFCFE, #07111E);
  --surface:       light-dark(#FFFFFF, #0E1B2C);
  --tint:          light-dark(#EEF4FA, #132840);
  --line:          light-dark(#D6E1EE, #25405F);
  --ink:           light-dark(#0B1F3A, #E8EEF7);
  --ink2:          light-dark(#3A4D66, #BFCCDC);
  --accent:        light-dark(#004C97, #7DB8F7);
  --accent-hover:  light-dark(#00366D, #A8D0FA);   /* AA : la maquette gardait #00366D en sombre (1,58:1) */
  --on-accent:     light-dark(#FFFFFF, #07111E);
  --night:         light-dark(#0B1F3A, #132840);
  --night-line:    #25405F;
  --night-ink:     #FFFFFF;
  --night-ink2:    #BFCCDC;
  --glass:         light-dark(rgba(255,255,255,.94), rgba(14,27,44,.92));
  --input-line:    #6B7F99;
  --muted-ui:      #6B7F99;                         /* AA 3:1 pour les éléments d'interface (points de navigation) */
  --overlay:       rgba(8,18,33,.5);

  /* Action : un seul bouton orange par écran ; texte toujours nuit sur orange */
  --action:        #FFA300;
  --action-hover:  #E69300;
  --action-active: #CC8200;
  --on-action:     #0B1F3A;

  /* Statuts : encre / fond */
  --ok-ink:   light-dark(#1B5E3B, #7DDBA8);  --ok-bg:   light-dark(#E6F4EC, #12383C);
  --warn-ink: light-dark(#7A4B00, #FFC861);  --warn-bg: light-dark(#FFF4DE, #2E2A1E);  --warn-line: #E69300;
  --crit-ink: light-dark(#C62828, #FF6B5A);  --crit-bg: light-dark(#FDECEA, #3A1F25);

  /* Relations (D120, application de D-RELATION ; retours du porteur du 18/10 : couleurs Aduneo, aucune teinte nouvelle) : anneau des
     icônes rondes et étoile du partenaire. Open source = bleu Aduneo (--accent : 8,3:1 sur le fond clair, 9,1:1 sur le fond sombre) ;
     éditeur (partenaire compris) = orange Aduneo (--action en sombre, 9,5:1) ; en clair --action (#FFA300) ne fait que 1,95:1 sur le
     fond : --action-active (#CC8200, 3,0:1 sur le fond, 3,1:1 sur les cartes blanches) pour l'anneau et l'étoile, en clair seulement.
     -bg / -ink : étiquettes (« Open source », « Éditeur », « Partenaire »), jetons existants */
  --rel-os: var(--accent);  --rel-os-bg: var(--t-annuaires);  --rel-os-ink: var(--accent);
  --rel-editeur: light-dark(var(--action-active), var(--action));  --rel-editeur-bg: var(--warn-bg);  --rel-editeur-ink: var(--warn-ink);

  /* Domaines : couleur pleine (identique dans les deux thèmes) et texte posé dessus */
  --d-annuaires: #004C97;  --on-d-annuaires: #FFFFFF;
  --d-sso:       #FFD23F;  --on-d-sso:       #0B1F3A;
  --d-iga:       #1F9D74;  --on-d-iga:       #0B1F3A;  /* AA : la charte prévoyait du blanc (3,42:1) */
  --d-ad:        #3D4752;  --on-d-ad:        #FFFFFF;
  /* 19/10 (porteur) : couleurs de CIAM et de PAM inversées : CIAM violet, PAM corail (D194 amendée) */
  --d-ciam:       #A040B8;  --on-d-ciam:       #FFFFFF;
  --d-neoid:     #80CFEF;  --on-d-neoid:     #0B1F3A;
  /* Campus (D195, 18/10, porteur : « le fond un peu verdâtre […] s'éloigne de la DA ») : bleu nuit Aduneo en clair, bleu accent en
     sombre (avant : pétrole #00566E) ; texte posé dessus 16,5:1 (blanc) et 9,1:1 (nuit) ; plein 16,1:1 et 9,1:1 sur la page */
  --d-campus:    light-dark(#0B1F3A, #7DB8F7);  --on-d-campus: light-dark(#FFFFFF, #07111E);
  --d-labo:      #6B4FCF;  --on-d-labo:      #FFFFFF;
  /* PAM (D194, 18/10) : violet propre, distinct de l'ardoise de l'AD et du gris du socle (D123) et décalé du violet du Labo (teinte 288° contre 253°) ;
     plein ≥ 3:1 sur tous les fonds (5,2:1 page claire ; 3,5:1 page sombre, 3,2:1 surface sombre), texte blanc posé dessus 5,4:1 */
  --d-pam:      #EF6A5A;  --on-d-pam:      #0B1F3A;
  /* Socle (D123) : gris des jetons neutres (Conseil et audit IAM, Exploitation IAM) ; texte nuit sur la pastille pleine */
  --d-socle:     var(--muted-ui);  --on-d-socle: #07111E;

  /* Domaines : fond teinté (t) et encre de domaine lisible sur fond de page (i) */
  --t-annuaires: light-dark(#E6EFF8, #0B2644);  --i-annuaires: light-dark(#004C97, #7DB8F7);
  --t-sso:       light-dark(#FFF8DB, #434330);  --i-sso:       light-dark(#946A00, #FFD23F);   /* 19/10 (porteur : « jaune/orange foncé, pas du marron ») : or foncé, 4,9:1 sur blanc, 4,6:1 sur --t-sso (avant #7A4B00, perçu marron) */
  --t-iga:       light-dark(#E4F5EE, #12383C);  --i-iga:       light-dark(#1B5E3B, #5FD3B0);
  --t-ad:        light-dark(#ECEEF1, #182534);  --i-ad:        light-dark(#3D4752, #8FA0B3);
  --t-ciam:       light-dark(#F6EAF9, #371F44);  --i-ciam:       light-dark(#74248C, #DDA4EE);
  --t-neoid:     light-dark(#E6F6FC, #274357);  --i-neoid:     light-dark(#004C97, #80CFEF);   /* D195 : encre bleu Aduneo en clair (avant : pétrole #00566E) */
  --t-campus:    light-dark(#EEF4FA, #132840);  --i-campus:    light-dark(#00366D, #A8D0FA);   /* D195 : teinte du site (--tint) et encre bleue (--accent-hover) : 10,8:1 et 9,3:1 sur la teinte (avant : #E2F0F3 / #0F3340, encre pétrole) */
  --t-labo:      light-dark(#EFEBFB, #222650);  --i-labo:      light-dark(#6B4FCF, #A996F2);
  /* PAM (D194) : encre 8,6:1 page claire, 7,6:1 sur sa teinte ; 9,6:1 page sombre, 7,4:1 sur sa teinte (≥ 7:1 comme les traits des figures, D145) */
  --t-pam:      light-dark(#FDECEA, #402C36);  --i-pam:      light-dark(#C62828, #FF8A7A);
  /* Teinte de trait par domaine (19/10, porteur : « un marron dégueulasse et plusieurs verts dans Du projet au run ») : UNE couleur
     par domaine pour les traits et pastilles des schémas (≥ 3:1 sur la page en clair ; couleur vive en sombre) ; les noms restent en --ink */
  --l-annuaires: light-dark(#004C97, #7DB8F7); --l-iga: light-dark(#1F9D74, var(--d-iga)); --l-sso: light-dark(#B88400, var(--d-sso));
  --l-ciam: light-dark(#A040B8, #C77DDB); --l-pam: light-dark(#E2533F, var(--d-pam)); --l-socle: light-dark(#5B6B7F, var(--d-socle));
  --t-socle:     light-dark(#ECEEF1, #182534);  --i-socle:     var(--ink2);   /* D195 : teinte grise (comme l'ardoise), distincte des bandes --tint ; texte --ink2 7,5:1 et 10:1 dessus */

  /* Terminal, démos et blocs de code : clairs en thème clair, sombres en thème sombre (12/10 ; avant : sombres dans les deux).
     ok/err/info/prompt/done : couleurs de texte (AA sur fond clair en thème clair) ; *-bg : pastilles pleines qui portent un texte nuit */
  --term-bg: light-dark(#FFFFFF, #07111E); --term-bar: light-dark(#EEF4FA, #0E1B2C); --term-line: light-dark(#D6E1EE, #25405F);
  --term-ink: light-dark(#0B1F3A, #E8EEF7); --term-dim: light-dark(#3A4D66, #BFCCDC); --term-mute: light-dark(#5E6F86, #6B7F99);
  --term-ok: light-dark(#1A7A48, #7DDBA8); --term-err: light-dark(#C62828, #FF6B5A); --term-info: light-dark(#00668A, #80CFEF);
  --term-prompt: light-dark(#A35200, #FFA300); --term-done: light-dark(#004C97, #7DB8F7);
  --term-ok-bg: #7DDBA8; --term-err-bg: #FF6B5A; --term-info-bg: #80CFEF; --term-prompt-bg: #FFA300;
  --term-dim-bg: light-dark(#D6E1EE, #BFCCDC);   /* pastille neutre (statut « en attente ») : texte bleu nuit lisible dans les deux thèmes */
  /* Coloration syntaxique des blocs de code (coloration.php) : palettes VS Code clair (Light+) et sombre (Dark+) */
  --tk-kw: light-dark(#0000FF, #569CD6); --tk-str: light-dark(#A31515, #CE9178); --tk-com: light-dark(#008000, #6A9955);
  --tk-num: light-dark(#098658, #B5CEA8); --tk-fn: light-dark(#795E26, #DCDCAA); --tk-type: light-dark(#267F99, #4EC9B0);
  --tk-key: light-dark(#0451A5, #9CDCFE); --tk-var: light-dark(#001080, #9CDCFE); --tk-const: light-dark(#0070C1, #4FC1FF);
  --tk-tag: light-dark(#800000, #569CD6); --tk-attr: light-dark(#E50000, #9CDCFE); --tk-meta: light-dark(#795E26, #DCDCAA);
  --tk-flag: light-dark(#AF00DB, #C586C0); --tk-op: light-dark(#3A4D66, #BFCCDC);

  /* Icônes (masques SVG : la couleur vient de background-color, centrage exact quelle que soit la police) */
  --icon-coche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3.25 3.25L13 4.75' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --icon-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2.5 8h10M8.5 3.5 13 8l-4.5 4.5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --icon-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3.6 14.2 9.7 20.7 9.9 15.6 13.9 17.4 20.1 12 16.5 6.6 20.1 8.4 13.9 3.3 9.9 9.8 9.7Z' stroke='%23000' stroke-width='2.4' stroke-linejoin='round'/%3E%3C/svg%3E");

  /* Typographie */
  --font-sans: 'Rubik', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-display: 'Red Hat Display', system-ui, -apple-system, 'Segoe UI', sans-serif;   /* titres et grands chiffres */
  --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  /* Échelle typographique unique (16/10, demande du porteur ; D63) : 8 pas, par palier (bureau ≥ 1 250 px, tablette 768-1 249, mobile < 768).
     Bureau 14 · 16 · 17 · 20 · 24 · 32 · 44 · 64 px (charte DA, rapport ≈ 1,2 à 1,45 au-dessus du corps) ; au-delà de 1 280 px, la taille de base
     grandit (D34) et toute l'échelle avec elle. Aucune autre taille de texte dans le thème : une taille = un de ces jetons.
     xs : méta, étiquettes, pastilles, code ; small : interface (boutons, menus, champs, puces, textes de carte) ; body : corps ;
     lead : chapô, titres de carte, h4 ; h3, h2, h1 : titres ; display : grands chiffres (statistique vedette, guillemet). */
  --fs-xs: 0.875rem; --fs-small: 1rem; --fs-body: 1.0625rem; --fs-lead: 1.25rem;
  --fs-h3: 1.5rem; --fs-h2: 2rem; --fs-h1: 2.75rem; --fs-display: 4rem;
  /* Interlignes associés : display/h1 1,04 · h2 1,1 · h3 et titres de carte 1,25 · interface 1,35 · chapô 1,5 · corps 1,6 · code 1,8 */
  --lh-display: 1.04; --lh-title: 1.1; --lh-tight: 1.25; --lh-ui: 1.35; --lh-lead: 1.5; --lh-body: 1.6;
  --ls-display: -0.03em; --ls-title: -0.02em; --ls-card: -0.01em; --ls-caps: .06em;

  /* Formes */
  --r-pill: 62.4375rem; --r-xl: 1.75rem; --r-lg: 1.5rem; --r-md: 1rem; --r-sm: 0.75rem; --r-xs: 0.25rem;

  /* Ombres */
  --sh-nav: 0 0.625rem 1.875rem rgba(0,76,151,.10);          --sh-nav-scrolled: 0 0.625rem 1.875rem rgba(0,76,151,.16);
  --sh-submenu: 0 0.75rem 1.875rem -0.625rem rgba(0,76,151,.25); --sh-menu-mobile: 0 1rem 2.5rem rgba(0,76,151,.16);
  --sh-card-hover: 0 1.125rem 2.5rem rgba(0,76,151,.18);    --sh-card-hover-s: 0 0.875rem 1.875rem -1.125rem rgba(11,31,58,.45);
  --sh-terminal: 0 1.875rem 4.375rem rgba(0,76,151,.25);      --sh-float: 0 0.75rem 1.875rem rgba(0,76,151,.22);
  --sh-cookie: 0 1.25rem 3.125rem rgba(0,76,151,.22);        --sh-cta-bar: 0 0.5rem 1.5rem rgba(11,31,58,.25);
  --sh-modal: 0 1.875rem 4.375rem rgba(0,0,0,.3);

  /* Largeurs */
  --gutter: clamp(1.25rem, 4vw, 2.5rem); --container: min(92vw, 90rem); --container-wide: min(97vw, 100rem);   /* D34 : le contenu suit la largeur de l'écran */
  --nav-max: min(96vw, 95rem); --nav-max-scrolled: min(90vw, 85rem); --nav-offset: calc(5.125rem + env(safe-area-inset-top, 0px));   /* 22/10 (porteur, iPhone) : zone réservée du haut comprise */
  --section-gap: clamp(2.5rem, 5vw, 4.5rem); --page-top: clamp(1.5rem, 6.5vw, 6.5rem);   /* D37 : haut du contenu identique sur toutes les pages, accueil compris ; réduit le 12/10 (porteur) pour gagner de la place sur le premier écran */
  /* Rythme commun (D37 : valeurs de l'accueil, mêmes sur toutes les pages) */
  --head-gap: 1.25rem; --stack-gap: 1.5rem; --grid-gap: 0.875rem; --lead-max: 38.75rem;
  --pad-block: clamp(1.5rem, 3.5vw, 2.5rem); --pad-card: 1.5rem;
  --tap: 2.75rem; --tap-p: 2px 0; --mbar-pad: 0px;

  /* Couches */
  --z-term: 1; --z-dots: 20; --z-header: 30; --z-cta-bar: 40; --z-term-overlay: 58; --z-term-float: 60; --z-submenu: 60; --z-cookie: 65; --z-modal: 80;

  /* Mouvement */
  --ease-out: cubic-bezier(.2,.7,.2,1); --ease-snap: cubic-bezier(.3,.7,.2,1); --ease-pop: cubic-bezier(.2,.8,.2,1);
  --dur-1: 150ms; --dur-2: 250ms; --dur-3: 300ms; --dur-4: 400ms; --dur-reveal: 600ms;
}

/* Choix explicite du visiteur (bouton de thème, mémorisé) */
:root[data-theme="light"] { color-scheme: light; }
:root[data-theme="dark"]  { color-scheme: dark; }

/* Responsive : remplace applyBp() de la maquette */
/* 22/10 (audit apple-design, porteur) : « réduire la transparence » et « contraste élevé » du système : surfaces de verre pleines,
   voile plus opaque (le flou est retiré dans components.css) */
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) { :root { --glass: var(--surface); --overlay: rgba(8,18,33,.8); } }
@media (max-width: 1249.98px) { :root { --tap-p: 0.5rem 0; } }
@media (max-width: 767.98px)  { :root { --tap-p: 0.6875rem 0; --mbar-pad: calc(4.75rem + env(safe-area-inset-bottom, 0px)); } }   /* 22/10 (porteur, iPhone) : la barre d'appel est posée au-dessus de la zone réservée du bas : la réserve sous les écrans aussi
/* Hors bureau (audits responsive 15/10) : pas de 32 px entre sections en mobile ; --fixe-bas : bas des éléments fixes secondaires
   (au-dessus de la barre d'appel en mobile). Harmonie (16/10) : même marge interne pour toutes les cartes. */
@media (max-width: 1279.98px) { :root { --fixe-bas: calc(1rem + env(safe-area-inset-bottom)); } }
@media (max-width: 1249.98px) { :root { --pad-card: 1.5rem; } }
@media (max-width: 767.98px)  { :root { --section-gap: 2rem; --fixe-bas: calc(5rem + env(safe-area-inset-bottom)); --pad-card: 1.25rem; } }
/* Échelle typographique, paliers (D63) : tablette 14 · 16 · 17 · 19 · 22 · 26 · 36 · 48 px ; mobile 14 · 16 · 17 · 18 · 20 · 24 · 28 · 40 px
   (h1 à 26 px sous 380 px : 4 lignes au plus). Champs de formulaire en --fs-small (16 px) : pas de zoom iOS. */
@media (max-width: 1249.98px) { :root { --fs-lead: 1.1875rem; --fs-h3: 1.375rem; --fs-h2: 1.625rem; --fs-h1: 2.25rem; --fs-display: 3rem; } }
@media (max-width: 767.98px)  { :root { --fs-lead: 1.125rem; --fs-h3: 1.25rem; --fs-h2: 1.5rem; --fs-h1: 1.75rem; --fs-display: 2.5rem; } }
@media (max-width: 379.98px)  { :root { --fs-h1: 1.625rem; } }
