/**
 * Design Tokens
 * OKLCH-based color system with semantic naming
 * 4px base grid system
 * Typography scale and font definitions
 */

:root {
  /* ========================================
     COLOR SYSTEM - OKLCH
     ======================================== */
  
  /* Primary Colors */
  --color-primary-50: oklch(0.97 0.01 250);
  --color-primary-100: oklch(0.94 0.03 250);
  --color-primary-200: oklch(0.88 0.06 250);
  --color-primary-300: oklch(0.78 0.12 250);
  --color-primary-400: oklch(0.68 0.18 250);
  --color-primary-500: oklch(0.58 0.22 250);
  --color-primary-600: oklch(0.48 0.20 250);
  --color-primary-700: oklch(0.38 0.16 250);
  --color-primary-800: oklch(0.28 0.12 250);
  --color-primary-900: oklch(0.18 0.08 250);

  /* Neutral Colors */
  --color-neutral-50: oklch(0.98 0 0);
  --color-neutral-100: oklch(0.96 0 0);
  --color-neutral-200: oklch(0.92 0 0);
  --color-neutral-300: oklch(0.84 0 0);
  --color-neutral-400: oklch(0.68 0 0);
  --color-neutral-500: oklch(0.52 0 0);
  --color-neutral-600: oklch(0.42 0 0);
  --color-neutral-700: oklch(0.32 0 0);
  --color-neutral-800: oklch(0.22 0 0);
  --color-neutral-900: oklch(0.12 0 0);

  /* Semantic Colors */
  --color-success: oklch(0.65 0.18 145);
  --color-warning: oklch(0.75 0.15 85);
  --color-error: oklch(0.60 0.22 25);
  --color-info: oklch(0.65 0.18 230);

  /* Surface Colors */
  --color-background: var(--color-neutral-50);
  --color-surface: var(--color-neutral-100);
  --color-surface-elevated: var(--color-neutral-50);
  --color-border: var(--color-neutral-200);
  --color-divider: var(--color-neutral-200);

  /* Text Colors */
  --color-text-primary: var(--color-neutral-900);
  --color-text-secondary: var(--color-neutral-600);
  --color-text-tertiary: var(--color-neutral-500);
  --color-text-inverse: var(--color-neutral-50);

  /* ========================================
     SPACING - 4px BASE GRID
     ======================================== */
  
  --space-0: 0;
  --space-1: 4px;   /* 1 unit */
  --space-2: 8px;   /* 2 units */
  --space-3: 12px;  /* 3 units */
  --space-4: 16px;  /* 4 units */
  --space-5: 20px;  /* 5 units */
  --space-6: 24px;  /* 6 units */
  --space-8: 32px;  /* 8 units */
  --space-10: 40px; /* 10 units */
  --space-12: 48px; /* 12 units */
  --space-16: 64px; /* 16 units */
  --space-20: 80px; /* 20 units */
  --space-24: 96px; /* 24 units */

  /* ========================================
     TYPOGRAPHY
     ======================================== */
  
  /* Font Families */
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', 'Fira Code', 'Consolas', monospace;

  /* Font Sizes */
  --font-size-xs: 12px;
  --font-size-sm: 14px;
  --font-size-base: 16px;
  --font-size-lg: 18px;
  --font-size-xl: 20px;
  --font-size-2xl: 24px;
  --font-size-3xl: 30px;
  --font-size-4xl: 36px;
  --font-size-5xl: 48px;
  --font-size-6xl: 60px;

  /* Line Heights */
  --line-height-tight: 1.25;
  --line-height-snug: 1.375;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.625;
  --line-height-loose: 2;

  /* Font Weights */
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* ========================================
     BORDERS & RADIUS
     ======================================== */
  
  --border-width-thin: 1px;
  --border-width-medium: 2px;
  --border-width-thick: 4px;

  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-2xl: 24px;
  --radius-full: 9999px;

  /* ========================================
     SHADOWS
     ======================================== */
  
  --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);

  /* ========================================
     TRANSITIONS
     ======================================== */
  
  --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: 350ms cubic-bezier(0.4, 0, 0.2, 1);

  /* ========================================
     Z-INDEX SCALE
     ======================================== */
  
  --z-base: 0;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-fixed: 300;
  --z-modal-backdrop: 400;
  --z-modal: 500;
  --z-popover: 600;
  --z-tooltip: 700;

  /* ========================================
     BREAKPOINTS (for reference in JS)
     ======================================== */
  
  --breakpoint-sm: 640px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 1024px;
  --breakpoint-xl: 1280px;
  --breakpoint-2xl: 1536px;
}

/* Dark mode overrides - customize as needed */
@media (prefers-color-scheme: dark) {
  :root {
    --color-background: var(--color-neutral-900);
    --color-surface: var(--color-neutral-800);
    --color-surface-elevated: var(--color-neutral-700);
    --color-border: var(--color-neutral-700);
    --color-divider: var(--color-neutral-700);
    
    --color-text-primary: var(--color-neutral-50);
    --color-text-secondary: var(--color-neutral-300);
    --color-text-tertiary: var(--color-neutral-400);
    --color-text-inverse: var(--color-neutral-900);
  }
}
