/* ==========================================================================
   SUPERNOVA UI KIT V1 — core/tokens.css
   Session E0-1 · Source unique de vérité visuelle (DEC-3)
   Charte Graphique V1 + Note de Cadrage §4.1 — valeurs contractuelles.
   Toute valeur visuelle du produit passe par un token de ce fichier.
   ========================================================================== */

/* --- Polices auto-hébergées (DEC-5, PF-PWA-FONT-SELFHOST-01) ---
   Fichiers variables woff2, sous-ensemble latin. Zéro requête externe au runtime. */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
  src: url('fonts/dm-sans-latin-var.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url('fonts/jetbrains-mono-latin-var.woff2') format('woff2');
}

:root {
  /* --- Fonds ---
     bg = page · surface = panneaux/cartes secondaires · separator = filets. */
  --sn-bg: #FFFFFF;
  --sn-surface: #F8F9FC;
  --sn-separator: #E8E9EF;

  /* --- Encres ---
     100 = titres · 80 = corps · 60 = contexte · 40 = placeholder · 20 = désactivé. */
  --sn-ink-100: #0A1628;
  --sn-ink-80: #2A3446;
  --sn-ink-60: #4A5568;
  --sn-ink-40: #8E92A4;
  --sn-ink-20: #C4C7D4;

  /* --- Accent principal ---
     Liens, CTA, boutons primaires, séparateurs actifs. Ratio cible : 4 % de la page. */
  --sn-accent: #6C5CE7;
  /* Encre accent AA-safe pour texte sur teinte claire (badge Simulation sur violet-10). F1 E2-QA. */
  --sn-accent-ink: color-mix(in srgb, var(--sn-accent) 80%, var(--sn-ink-100));

  /* --- Accents secondaires ---
     Usage parcimonieux (1 % cumulé) : différenciation de séries, jamais décoratif. */
  --sn-azur: #3B7DD8;
  --sn-rose: #B5708A;
  --sn-corail: #D4735F;
  --sn-ambre: #F5A623;

  /* --- Teintes claires ---
     Fonds de badges, états actifs, surlignages — texte associé en couleur pleine. */
  --sn-violet-10: #EBE8FD;
  --sn-azur-10: #E6F0FB;
  --sn-rose-10: #F6EBF0;
  --sn-corail-10: #FBEAE6;
  --sn-ambre-10: #FEF3E0;

  /* --- Statuts ---
     ok / warn / crit — sémantique performance et alerte, jamais décoratif. */
  --sn-ok: #27AE60;
  --sn-warn: #E67E22;
  --sn-crit: #C0392B;

  /* --- Statuts dérivés (badges) ---
     Dérivés par color-mix des couleurs charte : teinte claire de fond (-10)
     et encre AA-safe (-ink) pour le texte sur teinte claire. Zéro hex hors charte. */
  --sn-ok-10: color-mix(in srgb, var(--sn-ok) 10%, var(--sn-bg));
  --sn-warn-10: color-mix(in srgb, var(--sn-warn) 10%, var(--sn-bg));
  --sn-crit-10: color-mix(in srgb, var(--sn-crit) 10%, var(--sn-bg));
  --sn-ok-ink: color-mix(in srgb, var(--sn-ok) 60%, var(--sn-ink-100));
  --sn-warn-ink: color-mix(in srgb, var(--sn-warn) 60%, var(--sn-ink-100));
  --sn-crit-ink: color-mix(in srgb, var(--sn-crit) 85%, var(--sn-ink-100));

  /* --- Couleurs d'action terrain (AU-6, FIX-AUDIT) ---
     Verdicts de geste manager (valider / refuser / en attente) + encre de la pastille Équipe.
     Valeurs relevées telles quelles depuis desktop-terrain.css où elles étaient EN DUR ;
     tokenisées ici (source unique de vérité visuelle, DEC-3). */
  --sn-color-action-accept: #1E8449;
  --sn-color-action-reject: #B03A2E;
  --sn-color-action-pending: #B9770E;
  --sn-color-pastille-equipe-text: #1F2430;

  /* --- Typo familles ---
     ui = tout le produit · mono = valeurs numériques, identifiants, flux. */
  --sn-font-ui: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --sn-font-mono: 'JetBrains Mono', 'SF Mono', Menlo, monospace;

  /* --- Typo échelle ---
     base-terrain 15px (mobile, une main) · base-cockpit 14px (desktop, densité P3). */
  --sn-fs-base-terrain: 15px;
  --sn-fs-base-cockpit: 14px;
  --sn-fs-h1: 22px;
  --sn-fs-h2: 18px;
  --sn-fs-label: 11px;   /* uppercase + letter-spacing léger (--sn-ls-label) */
  --sn-fs-caption: 12px;
  --sn-ls-label: 0.06em;

  /* --- Espacement ---
     Échelle unique 4·8·12·16·24·32·48 — aucune valeur hors échelle dans le kit. */
  --sn-space-1: 4px;
  --sn-space-2: 8px;
  --sn-space-3: 12px;
  --sn-space-4: 16px;
  --sn-space-5: 24px;
  --sn-space-6: 32px;
  --sn-space-7: 48px;

  /* --- Rayons ---
     s = champs/segments · m = boutons · l = cartes · pill = badges. */
  --sn-radius-s: 8px;
  --sn-radius-m: 12px;
  --sn-radius-l: 16px;
  --sn-radius-pill: 999px;

  /* --- Ombres ---
     Deux niveaux discrets, teinte encre faible opacité — zéro effet décoratif. */
  --sn-shadow-rest: 0 1px 3px rgba(10, 22, 40, 0.06), 0 1px 2px rgba(10, 22, 40, 0.04);
  --sn-shadow-hover: 0 4px 12px rgba(10, 22, 40, 0.10), 0 2px 4px rgba(10, 22, 40, 0.06);

  /* --- Mouvement ---
     fast = micro-interactions · base = transitions d'état. Réduit à 0 si préférence système. */
  --sn-dur-fast: 150ms;
  --sn-dur-base: 250ms;
  --sn-ease: ease-out;

  /* --- Cibles interactives ---
     Minimum AA / usage une main (critère §9) — consommé par tous les composants. */
  --sn-tap-min: 44px;

  /* --- Safe area (PF-PWA-SAFEAREA-01) ---
     Standalone iOS — consommés par la tab bar (E0-1) et les écrans terrain (E3). */
  --sn-safe-top: env(safe-area-inset-top, 0px);
  --sn-safe-right: env(safe-area-inset-right, 0px);
  --sn-safe-bottom: env(safe-area-inset-bottom, 0px);
  --sn-safe-left: env(safe-area-inset-left, 0px);
}

/* Accessibilité : durées ramenées à 0 si l'utilisateur réduit le mouvement. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --sn-dur-fast: 0ms;
    --sn-dur-base: 0ms;
  }
}
