/* APP-EDU — design tokens unifiés (VALIDÉS 2026-07-04, cf. DESIGN_SYSTEM.md)
   Un seul vocabulaire --edu-* pour les 3 apps (cours/evals/depots).
   Direction : sobriété QUIZZMAKER (typo Fraunces + Space Grotesk) + convivialité claire.
   Règles dures : APLATS (aucun dégradé) ; accent = violet ; emojis réservés à la nav.
   CLAIR par défaut ; sombre réchauffé via prefers-color-scheme ou [data-theme="dark"].
   Les teintes de module (cours=violet, evals=bleu, depots=ambre) = REPÈRES de nav,
   pas des accents concurrents ; chaque app garde sa couleur native. */

:root {
  /* Surfaces (claires, tièdes — teinte violet, pas gris clinique) */
  --edu-bg: #f4f2f9;
  --edu-surface: #ffffff;
  --edu-surface-2: #f3f1f9;
  --edu-border: #e7e3f1;
  --edu-border-strong: #d7d1e8;

  /* Texte */
  --edu-text: #201c2e;
  --edu-muted: #6a6484;
  --edu-faint: #9a93af;

  /* Accent global (violet) */
  --edu-accent: #6d4bf0;
  --edu-accent-dark: #5a37e0;   /* hover / actif */
  --edu-accent-soft: #efe9ff;
  --edu-accent-ink: #4a34b6;

  /* Teintes de module (aplats : couleur pleine + fond doux) */
  --edu-cours: #7a5cff;   --edu-cours-bg: #efe9ff;   /* ex-SHARE */
  --edu-evals: #2f6df0;   --edu-evals-bg: #e7f0ff;   /* bleu QUIZZMAKER */
  --edu-depots: #e07d12;  --edu-depots-bg: #fcefdc;  /* orange DROPBOX/CTA */

  /* Sémantique (distincte de l'accent) */
  --edu-ok: #169556;      --edu-ok-bg: #e4f6ec;
  --edu-warn: #d4820f;
  --edu-danger: #db3b47;
  /* Variantes « encre » : le MÊME sémantique, assombri pour rester LISIBLE en petit texte sur
     fond clair — mesuré, pas estimé : `--edu-ok` sur blanc plafonne à 3,84:1 et `--edu-danger` à
     4,44:1, tous deux sous le 4,5:1 exigé par WCAG AA. ⛔ On ne touche PAS aux tokens d'origine
     (ils servent aux liserés, pastilles et aplats, où le contraste n'est pas en cause) : on
     ajoute une variante, exactement comme `--edu-accent-ink` le fait déjà. En thème SOMBRE ces
     couleurs contrastent déjà (8,53:1) — la variante y vaut donc le token lui-même. */
  --edu-ok-ink: #137f49;      /* = --edu-ok assombri — 5,05:1 sur blanc */
  --edu-danger-ink: #ba323c;  /* = --edu-danger assombri — 5,82:1 sur blanc */
  /* ⚑ 2026-07-28 — `--edu-warn-ink` MANQUAIT alors que ses deux frères existaient. Une surface qui
     écrivait `color: var(--edu-warn-ink)` recevait donc une chaîne VIDE (la déclaration tombe, le
     texte hérite) — et celles qui se rabattaient sur `--edu-warn` employaient une teinte de SURFACE
     comme encre : 3,00:1 sur blanc, sous le 4,5:1 AA. Trouvé sur « N copies » de l'écran
     « Épreuves ouvertes », le mot qui prévient que quelqu'un compose. */
  --edu-warn-ink: #9a5b02;    /* = --edu-warn assombri — 5,42:1 sur blanc, 4,85:1 sur --edu-surface-2 */

  /* Message du formateur (P1) — FUCHSIA vif, « la parole du prof ». Teinte RÉSERVÉE aux messages
     (distincte de cours=violet, évals=bleu, dépôts=ambre, danger=rouge). Fond plein + texte AA. */
  --edu-msg: #d10a7d;        /* la couleur vive (liseré, accent) */
  --edu-msg-bg: #d10a7d;     /* fond plein du message dominant / de la barre */
  --edu-msg-on: #ffffff;     /* texte sur le fond plein (contraste AA 5.2) */
  --edu-msg-soft: #fde4f1;   /* fond doux du conteneur / des messages repliés */
  --edu-msg-ink: #a3005f;    /* texte fuchsia foncé sur fond doux (AA 6.4) */

  /* Repère « 📍 regarde ici » du formateur (P4) — JAUNE/OR vif, façon surligneur (« regarde ici »).
     Teinte RÉSERVÉE au pointeur, distincte de cours=violet, évals=bleu, dépôts/ambre=orange,
     danger=rouge, messages=fuchsia, et des 4 marque-pages (violet/bleu/vert/ambre). ⚠ COULEUR À
     VALIDER visuellement par Gabriel (alternative possible : rouge vif). */
  --edu-pointer: #b07d00;      /* accent : 📍, pastille, liseré de la section pointée (or lisible) */
  --edu-pointer-bg: #fff2a0;   /* fond de surlignage de la section (jaune surligneur) */
  --edu-pointer-ink: #6a4e00;  /* texte doré foncé sur le fond (contraste fort) */

  /* « À l'antenne » (A3) — ROUGE « on air » : une surface est en live MAINTENANT (simulateur actif).
     Pastille + halo qui pulse doucement sur l'item de nav. Distinct de danger (erreur) par l'usage. */
  --edu-live: #d92d20;

  /* Profondeur : ombres douces (jamais de dégradé pour "faire riche") */
  --edu-shadow-sm: 0 1px 2px rgba(40,26,86,.06);
  --edu-shadow:    0 4px 14px -8px rgba(40,26,86,.20), 0 1px 2px rgba(40,26,86,.05);
  --edu-shadow-lg: 0 14px 30px -14px rgba(40,26,86,.26);

  /* Métriques */
  --edu-radius: 14px;
  --edu-radius-sm: 10px;
  --edu-pill: 999px;      /* boutons & badges = pilule (convention QUIZZMAKER) */

  /* Typographie (auto-hébergée dans core/ui/fonts/ — voir DESIGN_SYSTEM.md ; NE PAS charger de CDN) */
  --edu-font-display: 'Fraunces', Georgia, 'Times New Roman', serif;        /* titres */
  --edu-font-ui: 'Space Grotesk', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --edu-font-mono: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace; /* codes, lexique */
}

/* Sombre réchauffé (prune, pas noir). Suit l'OS, sauf override [data-theme="light"]. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --edu-bg: #16121f; --edu-surface: #1e1830; --edu-surface-2: #262034;
    --edu-border: #322a45; --edu-border-strong: #42385a;
    --edu-text: #ece9f7; --edu-muted: #b1a9c8; --edu-faint: #7d7597;
    --edu-accent: #a08bff; --edu-accent-dark: #b3a2ff; --edu-accent-soft: #2a2144; --edu-accent-ink: #cbbfff;
    --edu-cours: #a08bff; --edu-cours-bg: #2a2144;
    --edu-evals: #6fa2ff; --edu-evals-bg: #1c2740;
    --edu-depots: #e2a24a; --edu-depots-bg: #362815;
    --edu-ok: #4fca86; --edu-ok-bg: #16311e;
    --edu-ok-ink: #4fca86; --edu-danger-ink: #ff8a8a;
  /* `--edu-warn` n'est PAS redéfini en sombre : #d4820f y vaut déjà 5,70:1 sur --edu-surface,
     l'encre vaut donc le token lui-même (même raisonnement que --edu-ok-ink ici). */
  --edu-warn-ink: #d4820f;
    --edu-msg: #ff5fb0; --edu-msg-bg: #c81e7e; --edu-msg-on: #ffffff;
    --edu-msg-soft: #3a1229; --edu-msg-ink: #ff9dcf;
    --edu-pointer: #ffd23f; --edu-pointer-bg: #43380f; --edu-pointer-ink: #ffe27a;
    --edu-live: #ff6b6b;
    --edu-shadow-sm: 0 1px 2px rgba(0,0,0,.3);
    --edu-shadow:    0 6px 18px -10px rgba(0,0,0,.6), 0 1px 2px rgba(0,0,0,.3);
    --edu-shadow-lg: 0 16px 34px -16px rgba(0,0,0,.7);
  }
}

/* Toggle explicite (le bouton du portail pose data-theme sur <html>) */
:root[data-theme="dark"] {
  --edu-bg: #16121f; --edu-surface: #1e1830; --edu-surface-2: #262034;
  --edu-border: #322a45; --edu-border-strong: #42385a;
  --edu-text: #ece9f7; --edu-muted: #b1a9c8; --edu-faint: #7d7597;
  --edu-accent: #a08bff; --edu-accent-dark: #b3a2ff; --edu-accent-soft: #2a2144; --edu-accent-ink: #cbbfff;
  --edu-cours: #a08bff; --edu-cours-bg: #2a2144;
  --edu-evals: #6fa2ff; --edu-evals-bg: #1c2740;
  --edu-depots: #e2a24a; --edu-depots-bg: #362815;
  --edu-ok: #4fca86; --edu-ok-bg: #16311e;
  --edu-ok-ink: #4fca86; --edu-danger-ink: #ff8a8a;
  /* `--edu-warn` n'est PAS redéfini en sombre : #d4820f y vaut déjà 5,70:1 sur --edu-surface,
     l'encre vaut donc le token lui-même (même raisonnement que --edu-ok-ink ici). */
  --edu-warn-ink: #d4820f;
  --edu-msg: #ff5fb0; --edu-msg-bg: #c81e7e; --edu-msg-on: #ffffff;
  --edu-msg-soft: #3a1229; --edu-msg-ink: #ff9dcf;
  --edu-pointer: #ffd23f; --edu-pointer-bg: #43380f; --edu-pointer-ink: #ffe27a;
  --edu-shadow-sm: 0 1px 2px rgba(0,0,0,.3);
  --edu-shadow:    0 6px 18px -10px rgba(0,0,0,.6), 0 1px 2px rgba(0,0,0,.3);
  --edu-shadow-lg: 0 16px 34px -16px rgba(0,0,0,.7);
}
