/* ==========================================================================
   skb-ui.tokens.css — TOKENS PARTAGÉS (canon, v3.1.0). SOURCE DE VERITE : Ai-SkillBox-Offre/design/.
   v3.1.0 (2026-07-15) — ADDITIF (non-breaking) : --warn + --warn-weak (le socle n'avait que --warn-ink) ;
   --font-body (stack Geist, consommée par skb-ui.app.css → un thème peut changer la typo sans réécrire body).
   Édite ICI, puis sync-design.mjs. C'est la SEULE source de tokens de couleur/rayon/ombre/type.
   Lié en PREMIER par chaque produit, AVANT son châssis (skb-ui.core.css OU theme.css dashboard)
   et son thème local. Défaut = SOMBRE ; le mode clair est un override [data-theme=light] sur <html>.
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap');

/* ───────── Défaut = SOMBRE ───────── */
:root{
  --bg:oklch(0.208 0.042 265.8);
  --surface:oklch(0.262 0.040 261);
  --surface-2:oklch(0.171 0.041 265);
  --ink:oklch(0.972 0.006 248);
  --ink-soft:oklch(0.869 0.022 253);
  --muted:oklch(0.704 0.040 257);
  --faint:oklch(0.58 0.035 258);
  --line:oklch(1 0 0 / 0.09);
  --line-strong:oklch(1 0 0 / 0.16);
  --primary:oklch(0.48 0.158 254);
  --primary-text:oklch(0.74 0.15 262);   /* primary LISIBLE en texte/icône sur fond sombre (AA : 5.3-8:1 ; --primary brut = 2.2:1) */
  --primary-ink:oklch(0.99 0.005 254);
  --primary-weak:oklch(0.60 0.20 264 / 0.18);
  --primary-hover:oklch(0.66 0.20 263);
  --accent:oklch(0.55 0.205 27);
  --accent-weak:oklch(0.62 0.20 25 / 0.18);
  --accent-ink:oklch(0.74 0.16 25);
  --success:oklch(0.55 0.13 150);
  --success-weak:oklch(0.72 0.15 162 / 0.18);
  --success-ink:oklch(0.86 0.12 162);
  --danger:oklch(0.55 0.19 27);
  --danger-weak:oklch(0.66 0.20 22 / 0.18);
  --danger-ink:oklch(0.78 0.15 22);       /* texte « alerte » lisible sur fond sombre */
  --warn:oklch(0.55 0.13 78);
  --warn-weak:oklch(0.72 0.14 80 / 0.18);
  --warn-ink:oklch(0.82 0.13 78);
  --font-display:'Instrument Serif',Georgia,serif;
  --font-body:'Geist','Segoe UI',system-ui,-apple-system,sans-serif;
  --brandgrad:linear-gradient(135deg,var(--primary),oklch(0.55 0.19 285));
  --glow:radial-gradient(1100px 460px at 70% -22%,oklch(0.30 0.07 264),transparent);
  --r-sm:8px;
  --r-md:11px;
  --r-lg:14px;
  --r-pill:999px;
  --sh-1:0 1px 2px oklch(0 0 0 / 0.40);
  --sh-2:0 22px 60px -22px oklch(0 0 0 / 0.70);
  --ease:cubic-bezier(0.22,1,0.36,1);
  --dur:180ms;
  --mono:'SF Mono',ui-monospace,'Cascadia Code',Consolas,monospace;
}

/* ───────── Override CLAIR ───────── */
:root[data-theme=light]{
  --bg:oklch(1 0 0);
  --surface:oklch(0.985 0.003 254);
  --surface-2:oklch(0.966 0.005 254);
  --ink:oklch(0.24 0.02 256);
  --ink-soft:oklch(0.34 0.02 256);
  --muted:oklch(0.50 0.016 256);
  --faint:oklch(0.62 0.014 256);
  --line:oklch(0.918 0.004 254);
  --line-strong:oklch(0.86 0.006 254);
  --primary-weak:oklch(0.952 0.034 254);
  --primary-text:oklch(0.45 0.16 254);   /* variante claire : texte/icône primary sur fond clair (AA : 6.5-7.5:1) */
  --primary-hover:oklch(0.42 0.16 254);
  --accent-weak:oklch(0.955 0.04 27);
  --accent-ink:oklch(0.49 0.19 27);
  --success-weak:oklch(0.95 0.045 150);
  --success-ink:oklch(0.40 0.10 150);
  --danger-weak:oklch(0.955 0.04 27);
  --danger-ink:oklch(0.47 0.17 27);
  --warn-weak:oklch(0.95 0.05 80);
  --warn-ink:oklch(0.46 0.11 70);
  --glow:radial-gradient(1100px 460px at 70% -22%,oklch(0.955 0.03 262),transparent);
  --sh-1:0 1px 2px oklch(0.24 0.02 150 / 0.06);
  --sh-2:0 18px 50px -18px oklch(0.30 0.06 260 / 0.20);
}
