/**
 * Academy - Design System Tokens (Single Source of Truth)
 * Centralizes all design tokens for both Dark and Light themes:
 *   - Color Palette & Semantic Surfaces (obsidian/navy laboratory aesthetic)
 *   - Accessible High-Contrast Text (WCAG 2.1 AA verified)
 *   - Type Scale & Line Heights
 *   - 4px Spacing Grid
 *   - Border Radii & Elevation Shadows
 *   - Focus Ring & State Accents
 */

:root {
  /* ========================================================================
     1. Surface & Background Tokens (Dark Theme - AI Laboratory Default)
     ======================================================================== */
  --color-bg-base: #060913;
  --color-bg-canvas: #090e1c;
  --color-bg-surface: #0e162b;
  --color-bg-surface-elevated: #141f3d;
  --color-bg-surface-hover: #1b294e;
  --color-bg-glass: rgba(14, 22, 43, 0.78);
  --color-bg-glass-card: linear-gradient(180deg, rgba(20, 31, 61, 0.7) 0%, rgba(10, 16, 32, 0.9) 100%);
  --color-bg-glass-input: rgba(8, 13, 26, 0.85);

  /* ========================================================================
     2. Border Tokens
     ======================================================================== */
  --color-border: #1e2c4d;
  --color-border-subtle: #142038;
  --color-border-glass: rgba(255, 255, 255, 0.1);
  --color-border-glass-hover: rgba(56, 189, 248, 0.45);
  --color-border-focus: #38bdf8;
  --color-focus-ring: #38bdf8;
  --color-glass-highlight: rgba(255, 255, 255, 0.08);

  /* ========================================================================
     3. High-Contrast Text Tokens (Dark Theme: all >= 4.5:1 against surfaces)
     ======================================================================== */
  --color-text-primary: #f8fafc;       /* 19.1:1 on #060913 */
  --color-text-secondary: #94a3b8;     /* 7.8:1 on #060913, 6.9:1 on #0e162b */
  --color-text-muted: #8ba0ba;         /* 6.3:1 on #060913, 5.6:1 on #0e162b */
  --color-text-inverse: #060913;
  --color-text-glow: #ffffff;

  /* ========================================================================
     4. Track & Platform Accent Tokens
     ======================================================================== */
  /* Track A: AI (Electric Sky Blue) */
  --color-accent-ai: #38bdf8;          /* 8.3:1 on #060913, 7.4:1 on #0e162b */
  --color-accent-ai-hover: #7dd3fc;
  --color-accent-ai-surface: rgba(56, 189, 248, 0.12);
  --color-accent-ai-glow: rgba(56, 189, 248, 0.28);
  --gradient-accent-ai: linear-gradient(135deg, #38bdf8 0%, #6366f1 100%);

  /* Track B: Security & Cyber Defense (Cyber Emerald) */
  --color-accent-security: #34d399;    /* 10.8:1 on #060913, 9.6:1 on #0e162b */
  --color-accent-sec: #34d399;
  --color-accent-sec-hover: #6ee7b7;
  --color-accent-sec-surface: rgba(52, 211, 153, 0.12);
  --color-accent-sec-glow: rgba(52, 211, 153, 0.28);
  --gradient-accent-sec: linear-gradient(135deg, #34d399 0%, #06b6d4 100%);

  /* System Brand & Buttons */
  --color-accent-brand: #818cf8;
  --color-accent-brand-hover: #a5b4fc;
  --color-accent-brand-surface: rgba(129, 140, 248, 0.12);
  --gradient-brand: linear-gradient(135deg, #818cf8 0%, #c084fc 100%);

  /* ========================================================================
     5. Semantic Feedback & Callout Tokens (Dark Theme)
     ======================================================================== */
  --color-info-bg: #07192d;
  --color-info-border: #0284c7;
  --color-info-text: #7dd3fc;          /* 9.8:1 on #07192d */

  --color-warning-bg: #241604;
  --color-warning-border: #d97706;
  --color-warning-text: #fbbf24;       /* 9.6:1 on #241604 */

  --color-success-bg: #062316;
  --color-success-border: #059669;
  --color-success-text: #4ade80;       /* 10.4:1 on #062316 */

  --color-danger-bg: #260707;
  --color-danger-border: #dc2626;
  --color-danger-text: #f87171;        /* 7.6:1 on #260707 */

  /* Buttons */
  --color-btn-primary-bg: #0369a1;
  --color-btn-primary-text: #ffffff;   /* 6.0:1 on #0369a1 */
  --color-btn-danger-bg: #b91c1c;
  --color-btn-danger-text: #ffffff;    /* 5.8:1 on #b91c1c */

  /* ========================================================================
     6. Typography Scale & Line Heights
     ======================================================================== */
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-persian: 'Vazirmatn', -apple-system, BlinkMacSystemFont, "Segoe UI", Tahoma, Arial, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, "Cascadia Code", "Roboto Mono", Menlo, Consolas, monospace;

  --font-size-xs: 0.75rem;    /* 12px */
  --font-size-sm: 0.875rem;   /* 14px */
  --font-size-base: 1rem;     /* 16px */
  --font-size-lg: 1.125rem;   /* 18px */
  --font-size-xl: 1.25rem;    /* 20px */
  --font-size-2xl: 1.5rem;    /* 24px */
  --font-size-3xl: 1.875rem;  /* 30px */
  --font-size-4xl: 2.25rem;   /* 36px */

  --line-height-tight: 1.25;
  --line-height-normal: 1.5;
  --line-height-prose: 1.72;

  /* ========================================================================
     7. Spacing Scale (4px grid)
     ======================================================================== */
  --space-1: 0.25rem;   /* 4px */
  --space-2: 0.5rem;    /* 8px */
  --space-3: 0.75rem;   /* 12px */
  --space-4: 1rem;      /* 16px */
  --space-5: 1.25rem;   /* 20px */
  --space-6: 1.5rem;    /* 24px */
  --space-8: 2rem;      /* 32px */
  --space-10: 2.5rem;   /* 40px */
  --space-12: 3rem;     /* 48px */
  --space-16: 4rem;     /* 64px */

  /* ========================================================================
     8. Radii & Shadows
     ======================================================================== */
  --radius-xs: 0.25rem;
  --radius-sm: 0.375rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;
  --radius-xl: 1rem;
  --radius-full: 9999px;

  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.45);
  --shadow-md: 0 4px 12px -2px rgba(0, 0, 0, 0.55), 0 2px 6px -1px rgba(0, 0, 0, 0.45);
  --shadow-lg: 0 12px 28px -4px rgba(0, 0, 0, 0.65), 0 4px 12px -2px rgba(0, 0, 0, 0.55);
  --shadow-glass: 0 8px 32px 0 rgba(0, 0, 0, 0.45), inset 0 1px 0 0 var(--color-glass-highlight);
  --shadow-glow-ai: 0 0 32px -4px rgba(56, 189, 248, 0.3);
  --shadow-glow-sec: 0 0 32px -4px rgba(52, 211, 153, 0.3);

  /* Layout Containers */
  --container-max-width: 1240px;
  --content-max-width: 820px;
  --prose-max-width: 72ch;
}

/* ==========================================================================
   Light Theme Tokens (Clean High-Precision White / Slate Palette)
   ========================================================================== */
html[data-theme="light"] {
  --color-bg-base: #f8fafc;
  --color-bg-canvas: #f1f5f9;
  --color-bg-surface: #ffffff;
  --color-bg-surface-elevated: #ffffff;
  --color-bg-surface-hover: #f1f5f9;
  --color-bg-glass: rgba(255, 255, 255, 0.92);
  --color-bg-glass-card: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  --color-bg-glass-input: #ffffff;

  --color-border: #cbd5e1;
  --color-border-subtle: #e2e8f0;
  --color-border-glass: rgba(0, 0, 0, 0.1);
  --color-border-glass-hover: rgba(3, 105, 161, 0.4);
  --color-border-focus: #0369a1;
  --color-focus-ring: #0369a1;
  --color-glass-highlight: rgba(255, 255, 255, 0.95);

  /* High-Contrast Text Tokens (Light Theme: all >= 4.5:1 on #ffffff and #f8fafc) */
  --color-text-primary: #0f172a;       /* 16.1:1 on #ffffff */
  --color-text-secondary: #334155;     /* 9.9:1 on #ffffff */
  --color-text-muted: #475569;         /* 7.1:1 on #ffffff, 6.7:1 on #f8fafc */
  --color-text-inverse: #ffffff;
  --color-text-glow: #0f172a;

  /* Track Accents (Tuned for >= 4.5:1 on light backgrounds) */
  --color-accent-ai: #0369a1;          /* 6.7:1 on #ffffff */
  --color-accent-ai-hover: #075985;
  --color-accent-ai-surface: rgba(3, 105, 161, 0.08);
  --color-accent-ai-glow: rgba(3, 105, 161, 0.18);
  --gradient-accent-ai: linear-gradient(135deg, #0369a1 0%, #4338ca 100%);

  --color-accent-security: #047857;    /* 5.8:1 on #ffffff */
  --color-accent-sec: #047857;
  --color-accent-sec-hover: #065f46;
  --color-accent-sec-surface: rgba(4, 120, 87, 0.08);
  --color-accent-sec-glow: rgba(4, 120, 87, 0.18);
  --gradient-accent-sec: linear-gradient(135deg, #047857 0%, #0e7490 100%);

  --color-accent-brand: #4338ca;
  --color-accent-brand-hover: #3730a3;
  --color-accent-brand-surface: rgba(67, 56, 202, 0.08);
  --gradient-brand: linear-gradient(135deg, #4338ca 0%, #6d28d9 100%);

  /* Semantic Feedback & Callout Tokens (Light Theme) */
  --color-info-bg: #e0f2fe;
  --color-info-border: #38bdf8;
  --color-info-text: #075985;          /* 7.4:1 on #e0f2fe */

  --color-warning-bg: #fef3c7;
  --color-warning-border: #f59e0b;
  --color-warning-text: #854d0e;       /* 6.8:1 on #fef3c7 */

  --color-success-bg: #d1fae5;
  --color-success-border: #10b981;
  --color-success-text: #065f46;       /* 7.1:1 on #d1fae5 */

  --color-danger-bg: #fee2e2;
  --color-danger-border: #ef4444;
  --color-danger-text: #991b1b;        /* 6.9:1 on #fee2e2 */

  /* Buttons */
  --color-btn-primary-bg: #0369a1;
  --color-btn-primary-text: #ffffff;   /* 6.7:1 on #0369a1 */
  --color-btn-danger-bg: #b91c1c;
  --color-btn-danger-text: #ffffff;    /* 5.8:1 on #b91c1c */

  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.08);
  --shadow-md: 0 4px 12px -2px rgba(0, 0, 0, 0.12), 0 2px 6px -1px rgba(0, 0, 0, 0.08);
  --shadow-lg: 0 12px 28px -4px rgba(0, 0, 0, 0.16), 0 4px 12px -2px rgba(0, 0, 0, 0.1);
  --shadow-glass: 0 8px 32px 0 rgba(0, 0, 0, 0.08), inset 0 1px 0 0 var(--color-glass-highlight);
  --shadow-glow-ai: 0 0 32px -4px rgba(3, 105, 161, 0.12);
  --shadow-glow-sec: 0 0 32px -4px rgba(4, 120, 87, 0.12);
}

