/* ============================================================================
   Chantegral — DESIGN TOKENS CENTRAUX (charte UX approuvée)
   Source charte : docs/reference/RAPPORT-CHARTE-UX-CHANTEGRAL.md
   Marque : navy #10243B + gold #C9A24B  (gold = ACCENT uniquement).

   RÈGLES DURES (non négociables) :
     - texte sur gold = NOIR #0A0A0A (8,25:1, AAA) ou navy #10243B (6,54:1, AA)
     - JAMAIS de texte gold sur fond clair (2,40:1, FAIL) -> aucun token ici
     - JAMAIS de blanc sur gold -> aucun token ici
     - #1677ff proscrit comme couleur de texte (4,10:1, FAIL) -> absent

   Tous les ratios ci-dessous sont CALCULÉS (WCAG 2.x, formule sRGB, luminance
   relative L = 0.2126R + 0.7152G + 0.0722B après linéarisation gamma).
   Le test NOYAU/tests/test-design-tokens.js RECALCULE et ASSERTE ces seuils.

   Consommé par les 3 surfaces : Gestion, Terrain, Vitrine.
   Défaut de thème par surface (cf. handoff) :
     - Gestion  -> data-theme="clair"
     - Vitrine  -> data-theme="clair"
     - Terrain  -> data-theme="plein-soleil"
============================================================================ */

:root{
  /* ---- MARQUE (invariants, identiques dans tous les thèmes) ---------------- */
  --c-navy:#10243B;        /* navy vendu. blanc/navy = 15,70:1 (AAA) */
  --c-navy-700:#0B1A2C;    /* navy assombri (entêtes, barres). blanc dessus > 15:1 */
  --c-gold:#C9A24B;        /* ACCENT uniquement. noir/gold = 8,25:1 (AAA) ; navy/gold = 6,54:1 (AA) */
  --c-ink:#0A0A0A;         /* encre/texte max. noir/blanc = 19,80:1 (AAA) */
  --c-white:#FFFFFF;

  /* ---- SÉMANTIQUES de référence (sur fond CLAIR / blanc) ------------------- */
  /* Valeurs "vendues" par la charte, toutes AA sur blanc. */
  --c-success:#157347;     /* succès/blanc = 5,87:1 (AA) */
  --c-warning:#B25E00;     /* attention/blanc = 4,67:1 (AA) */
  --c-danger:#C5221F;      /* danger/blanc = 5,80:1 (AA) */
  --c-info:#0B5ED7;        /* info/blanc = 5,84:1 (AA) */

  /* ---- TEXTE-SUR-GOLD autorisés (les 2 seuls couples légaux) --------------- */
  --on-gold:#0A0A0A;       /* noir sur gold = 8,25:1 (AAA) — défaut recommandé */
  --on-gold-alt:#10243B;   /* navy sur gold = 6,54:1 (AA) */

  /* ---- CIBLES TACTILES ----------------------------------------------------- */
  --touch-min:48px;        /* minimum WCAG 2.5.5 (Gestion/Vitrine) */
  --touch-terrain:56px;    /* terrain gantée/plein-soleil */
  --tap-gap:8px;           /* espace minimal entre cibles tactiles */

  /* ---- TYPOGRAPHIE (échelle, indépendante du thème) ----------------------- */
  --text-xs:12px;
  --text-sm:14px;
  --text-base:16px;        /* corps mobile mini lisible */
  --text-lg:18px;
  --text-xl:22px;
  --text-2xl:28px;
  --text-3xl:36px;
  --line-tight:1.2;
  --line-base:1.5;
  --font-display:"Segoe UI",-apple-system,Helvetica,Arial,sans-serif;
  --font-body:-apple-system,"Segoe UI",Roboto,Arial,sans-serif;

  /* ---- RAYONS / OMBRES ----------------------------------------------------- */
  --radius-sm:6px;
  --radius-md:10px;
  --radius-lg:16px;

  /* ---- MOUVEMENT / SURVOL (règle NON NÉGO Davide 2026-07-23) ---------------
     Durées et courbes CENTRALISÉES, consommées par Gestion + Vitrine pour les
     états de survol standardisés. Entrée/sortie asymétriques : durée de SORTIE
     au repos, durée d'ENTRÉE sur :hover. */
  --motion-fast:100ms;   /* table rows, icônes (sortie) */
  --motion-quick:150ms;  /* liens, inputs, sortie boutons */
  --motion-base:200ms;   /* entrée boutons, nav */
  --motion-slow:250ms;   /* entrée cartes */
  --ease-standard:ease-in-out;             /* boutons, inputs */
  --ease-link:ease;                        /* liens, nav */
  --ease-card:cubic-bezier(.25,.8,.25,1);  /* cartes (premium) */
}

/* ===========================================================================
   THÈME CLAIR  (défaut Gestion + Vitrine)
   Surface blanche, encre noire. Tout texte de rôle >= 4,5:1.
=========================================================================== */
[data-theme="clair"]{
  --surface:#FFFFFF;
  --surface-2:#F6F4EF;          /* cream — panneaux secondaires */
  --on-surface:#0A0A0A;         /* noir/blanc = 19,80:1 (AAA) */
  --on-surface-muted:#3A4554;   /* muted/blanc = 9,73:1 (AAA) */
  --line:#E2E8EF;               /* bordure (non-texte, pas de seuil contraste) */
  --field-bg:#FFFFFF;
  --on-field:#0A0A0A;           /* texte saisi = 19,80:1 (AAA) */
  --field-border:#B7C2CE;       /* bordure champ (non-texte) */

  --accent:#C9A24B;             /* gold accent */
  --accent-on:#0A0A0A;          /* texte SUR accent gold = 8,25:1 (AAA) */
  --brand:#10243B;              /* navy — entêtes/CTA pleins */
  --on-brand:#FFFFFF;           /* blanc sur navy = 15,70:1 (AAA) */

  --success:#157347;            /* /blanc = 5,87:1 (AA) */
  --warning:#B25E00;            /* /blanc = 4,67:1 (AA) */
  --danger:#C5221F;             /* /blanc = 5,80:1 (AA) */
  --info:#0B5ED7;               /* /blanc = 5,84:1 (AA) */
}

/* ===========================================================================
   THÈME SOMBRE
   Surface charbon, texte clair. Sémantiques ÉCLAIRCIES pour rester >= 4,5:1.
   (les valeurs "blanc" #157347 = 3,37:1 sur noir -> FAIL, donc remplacées)
=========================================================================== */
[data-theme="sombre"]{
  --surface:#14181D;
  --surface-2:#1C2128;
  --on-surface:#F2F4F7;         /* on-surface/surface = 16,18:1 (AAA) */
  --on-surface-muted:#9AA4B2;   /* muted/surface = 7,07:1 (AAA) */
  --line:#2A323C;               /* bordure (non-texte) */
  --field-bg:#1C2128;
  --on-field:#F2F4F7;           /* on-field/field-bg = 14,69:1 (AAA) */
  --field-border:#3A434F;       /* bordure champ (non-texte) */

  --accent:#C9A24B;             /* gold accent (inchangé) */
  --accent-on:#0A0A0A;          /* noir sur gold = 8,25:1 (AAA) */
  --brand:#C9A24B;              /* en sombre, l'accent de marque = gold */
  --on-brand:#0A0A0A;           /* noir sur gold = 8,25:1 (AAA) */

  --success:#3FB37A;            /* /surface = 6,74:1 (AA, proche AAA) */
  --warning:#F5A524;            /* /surface = 8,73:1 (AAA) */
  --danger:#E5484D;             /* /surface = 4,55:1 (AA) */
  --info:#4CC2FF;               /* /surface = 8,89:1 (AAA) */
}

/* ===========================================================================
   THÈME PLEIN-SOLEIL  (défaut Terrain) — contraste maximal extérieur
   Charte : #0A0A0A sur #FFFFFF. Toutes les sémantiques visent AAA (>= 7:1)
   pour rester lisibles sous forte luminosité.
=========================================================================== */
[data-theme="plein-soleil"]{
  --surface:#FFFFFF;
  --surface-2:#FFFFFF;          /* pas de gris : contraste max */
  --on-surface:#0A0A0A;         /* on/surface = 19,80:1 (AAA) */
  --on-surface-muted:#3A4554;   /* muted/surface = 9,73:1 (AAA) */
  --line:#0A0A0A;               /* bordures NOIRES (lisibilité plein jour) */
  --field-bg:#FFFFFF;
  --on-field:#0A0A0A;           /* saisie = 19,80:1 (AAA) */
  --field-border:#0A0A0A;       /* bordure champ noire */

  --accent:#C9A24B;             /* gold accent */
  --accent-on:#0A0A0A;          /* noir sur gold = 8,25:1 (AAA) */
  --brand:#10243B;              /* navy/surface = 15,70:1 (AAA) */
  --on-brand:#FFFFFF;           /* blanc sur navy = 15,70:1 (AAA) */

  --success:#0F5C34;            /* /surface = 8,07:1 (AAA) */
  --warning:#8A4400;            /* /surface = 7,22:1 (AAA) */
  --danger:#A01210;             /* /surface = 8,11:1 (AAA) */
  --info:#0A3FA8;               /* /surface = 9,17:1 (AAA) */

  --touch-min:var(--touch-terrain); /* 56px en plein-soleil */
}

/* ===========================================================================
   THÈME CONTRASTE-ÉLEVÉ  (accessibilité renforcée, toutes surfaces)
   Noir pur sur blanc pur, accents les plus contrastés possibles.
=========================================================================== */
[data-theme="contraste-eleve"]{
  --surface:#FFFFFF;
  --surface-2:#FFFFFF;
  --on-surface:#0A0A0A;         /* 19,80:1 (AAA) */
  --on-surface-muted:#0A0A0A;   /* pas de "muted" en contraste élevé : tout = noir */
  --line:#0A0A0A;
  --field-bg:#FFFFFF;
  --on-field:#0A0A0A;
  --field-border:#0A0A0A;

  --accent:#FFE873;             /* gold clairci pour le couple noir/accent */
  --accent-on:#0A0A0A;          /* noir sur gold-clair = 16,07:1 (AAA) */
  --brand:#10243B;              /* navy/blanc = 15,70:1 (AAA) */
  --on-brand:#FFFFFF;           /* 15,70:1 (AAA) */

  --success:#0F5C34;            /* 8,07:1 (AAA) */
  --warning:#8A4400;            /* 7,22:1 (AAA) */
  --danger:#A01210;             /* 8,11:1 (AAA) */
  --info:#0A3FA8;               /* 9,17:1 (AAA) */
}
