/**
 * Bythium Sovereign Design Tokens & Mathematical Formulas — v12.0.0
 * Standard DTCG / W3C Design Tokens & Espace OKLCH (Display-P3)
 * Conforme : ISO 24495-1 (Lisibilité), ISO 9241-9 (Fitts), WCAG 2.2 AAA (APCA)
 * Intégration Formelle : Container Queries, Ratios Bento Déterministes, Typographie Fluide & FinOps
 */

:root {
  /* ========================================================================
   * 1. Palette Chromatique OKLCH (Gamut Étendu Display-P3 & sRGB Safe)
   * ======================================================================== */
  --bythium-bg-dark: oklch(0.12 0.02 260);
  --bythium-surface-base: oklch(0.15 0.025 260);
  --bythium-surface-card: oklch(0.18 0.035 260);
  --bythium-surface-card-hover: oklch(0.22 0.045 260);
  --bythium-surface-elevated: oklch(0.25 0.05 260);

  --bythium-border-subtle: oklch(0.28 0.04 260);
  --bythium-border-strong: oklch(0.38 0.06 260);
  --bythium-border-focus: oklch(0.68 0.18 240);

  --bythium-text-primary: oklch(0.96 0.01 260);
  --bythium-text-secondary: oklch(0.75 0.03 260);
  --bythium-text-tertiary: oklch(0.55 0.025 260);

  --bythium-brand-primary: oklch(0.65 0.20 250);
  --bythium-brand-primary-glow: oklch(0.65 0.20 250 / 0.25);
  --bythium-brand-secondary: oklch(0.70 0.15 210);

  --bythium-status-success: oklch(0.72 0.18 150);
  --bythium-status-warning: oklch(0.75 0.18 80);
  --bythium-status-danger: oklch(0.62 0.22 25);
  --bythium-status-info: oklch(0.68 0.18 230);

  /* ========================================================================
   * 2. Typographie Fluide & Échelle Harmonique Continue via clamp()
   * Formule : clamp(V_min, V_min + (V_max - V_min) * ((100cqi - W_min)/(W_max - W_min)), V_max)
   * Plage de référence : W_min = 320px (Mobile) à W_max = 1440px (Desktop Pro)
   * ======================================================================== */
  --font-family-base: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-family-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;

  /* Échelons discrets fixes de repli (Fallback) */
  --text-xs: 0.75rem;    /* 12px */
  --text-sm: 0.875rem;   /* 14px */
  --text-base: 1.00rem;  /* 16px */
  --text-md: 1.25rem;    /* 20px */
  --text-lg: 1.563rem;   /* 25px */
  --text-xl: 1.953rem;   /* 31.25px */
  --text-2xl: 2.441rem;  /* 39.06px */
  --text-3xl: 3.052rem;  /* 48.83px */

  /* Échelons fluides continus calculés par Container Queries (cqi) */
  --text-xs-fluid: clamp(0.70rem, calc(0.70rem + 0.10 * ((100cqi - 320px) / 1120)), 0.80rem);
  --text-sm-fluid: clamp(0.80rem, calc(0.80rem + 0.15 * ((100cqi - 320px) / 1120)), 0.95rem);
  --text-base-fluid: clamp(0.95rem, calc(0.95rem + 0.20 * ((100cqi - 320px) / 1120)), 1.15rem);
  --text-md-fluid: clamp(1.15rem, calc(1.15rem + 0.25 * ((100cqi - 320px) / 1120)), 1.40rem);
  --text-lg-fluid: clamp(1.35rem, calc(1.35rem + 0.45 * ((100cqi - 320px) / 1120)), 1.80rem);
  --text-xl-fluid: clamp(1.65rem, calc(1.65rem + 0.70 * ((100cqi - 320px) / 1120)), 2.35rem);
  --text-2xl-fluid: clamp(2.00rem, calc(2.00rem + 1.00 * ((100cqi - 320px) / 1120)), 3.00rem);
  --text-3xl-fluid: clamp(2.40rem, calc(2.40rem + 1.40 * ((100cqi - 320px) / 1120)), 3.80rem);

  /* Mesure de lecture ISO 24495-1 (Plain Language) */
  --measure-reading: 65ch;
  --line-height-tight: 1.15;
  --line-height-normal: 1.50;
  --line-height-relaxed: 1.618; /* Nombre d'or */

  /* ========================================================================
   * 3. Échelle d'Espacement Modulaire 8-pt & Dimensions Fluides
   * ======================================================================== */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;

  /* Espacements fluides interpolés */
  --space-fluid-sm: clamp(8px, calc(8px + 8 * ((100cqi - 320px) / 1120)), 16px);
  --space-fluid-md: clamp(16px, calc(16px + 16 * ((100cqi - 320px) / 1120)), 32px);
  --space-fluid-lg: clamp(24px, calc(24px + 24 * ((100cqi - 320px) / 1120)), 48px);
  --space-fluid-xl: clamp(32px, calc(32px + 32 * ((100cqi - 320px) / 1120)), 64px);

  /* ========================================================================
   * 4. Règle Géométrique Concentrique des Rayons de Courbure
   * Formule : r_inner = max(0px, r_outer - padding)
   * ======================================================================== */
  --radius-xs: 2px;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-card: 16px;
  --radius-modal: 24px;
  --radius-full: 9999px;

  /* Rayons internes déduits automatiquement selon le padding standard */
  --radius-inner-card-p4: max(0px, calc(var(--radius-card) - var(--space-4))); /* 16px - 16px = 0px ou affiné */
  --radius-inner-card-p3: max(2px, calc(var(--radius-card) - var(--space-3))); /* 16px - 12px = 4px */
  --radius-inner-modal: max(4px, calc(var(--radius-modal) - var(--space-4)));  /* 24px - 16px = 8px */

  /* ========================================================================
   * 5. Cibles Tactiles & Loi de Fitts (ISO 9241-9 / WCAG 2.2 AAA)
   * Formule de Fitts : MT = a + b * log2(1 + D/W)
   * Sécurité : Gap >= max(8px, 0.15 * W)
   * ======================================================================== */
  --target-touch-min: 48px;
  --target-gap-safety: max(8px, calc(var(--target-touch-min) * 0.15)); /* 8px minimum */
  --focus-ring-width: 2px;
  --focus-ring-offset: 2px;

  /* ========================================================================
   * 6. Cinématique 120 FPS & Amortissement Critique (Zeta = 0.90)
   * ======================================================================== */
  --ease-kinetic: cubic-bezier(0.16, 1, 0.3, 1);
  --duration-instant: 100ms;
  --duration-fast: 160ms;
  --duration-normal: 220ms;
  --transition-kinetic: all var(--duration-normal) var(--ease-kinetic);

  /* ========================================================================
   * 7. Seuils de Contraste Physiologique APCA (Advanced Perceptual Contrast)
   * Lc = (Y_text^0.56 - Y_bg^0.56) * 1.14 * 100
   * ======================================================================== */
  --apca-lc-target-body: 90;       /* Corps de texte fin 400 */
  --apca-lc-target-headings: 75;   /* Titres et gras 600+ */
  --apca-lc-target-borders: 60;    /* Bordures de focus et contrôles */
  --apca-lc-target-disabled: 45;   /* Éléments inactifs non critiques */

  /* ========================================================================
   * 8. Formules & Constantes FinOps Déterministes (Économie des Tokens)
   * Marge = (Revenu - C_moyen) / Revenu >= 78.4%
   * C_moyen = H_L1 * C_L1 + (1 - H_L1)*H_L2 * C_L2 + (1 - H_L1)*(1 - H_L2) * C_LLM
   * ======================================================================== */
  --finops-target-gross-margin: 78.4%;
  --finops-cache-hit-ratio-l1: 65%;   /* Hit RAM sous 0.5ms */
  --finops-cache-hit-ratio-l2: 28%;   /* Hit NVMe sous 4ms */
  --finops-combined-cache-hit: 93%;   /* Total servi localement sans appel LLM payant */
  --finops-token-pruning-ratio: 85%;  /* Réduction de contexte AST Tree-sitter */
}
