/* tokens.css - Design Primitives
 * Source of truth for all design values
 * Use var(--token-name) instead of raw values
 */

:root {
    /* ===== COLORS ===== */

    /* Brand */
    --color-primary: #007bff;
    --color-primary-hover: #0056b3;
    --color-primary-light: rgba(0, 123, 255, 0.1);

    /* Semantic */
    --color-success: #28a745;
    --color-success-hover: #218838;
    --color-danger: #dc3545;
    --color-danger-hover: #c82333;
    --color-warning: #ffc107;
    --color-info: #17a2b8;

    /* Neutrals */
    --color-white: #ffffff;
    --color-black: #000000;
    --color-gray-50: #f8f9fa;
    --color-gray-100: #f1f3f4;
    --color-gray-200: #e8eaed;
    --color-gray-300: #dadce0;
    --color-gray-400: #bdc1c6;
    --color-gray-500: #9aa0a6;
    --color-gray-600: #80868b;
    --color-gray-700: #5f6368;
    --color-gray-800: #3c4043;
    --color-gray-900: #202124;

    /* Backgrounds */
    --color-bg: var(--color-gray-50);
    --color-bg-elevated: var(--color-white);
    --color-bg-hover: var(--color-gray-100);

    /* Text */
    --color-text: var(--color-gray-900);
    --color-text-secondary: var(--color-gray-700);
    --color-text-muted: var(--color-gray-500);

    /* Borders */
    --color-border: var(--color-gray-300);
    --color-border-light: var(--color-gray-200);


    /* ===== SPACING ===== */
    --spacing-0: 0;
    --spacing-1: 0.25rem;
    /* 4px */
    --spacing-2: 0.5rem;
    /* 8px */
    --spacing-3: 0.75rem;
    /* 12px */
    --spacing-4: 1rem;
    /* 16px */
    --spacing-5: 1.25rem;
    /* 20px */
    --spacing-6: 1.5rem;
    /* 24px */
    --spacing-8: 2rem;
    /* 32px */
    --spacing-10: 2.5rem;
    /* 40px */
    --spacing-12: 3rem;
    /* 48px */
    --spacing-16: 4rem;
    /* 64px */


    /* ===== TYPOGRAPHY ===== */
    --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-family-mono: 'Fira Code', '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-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;

    --line-height-tight: 1.25;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.75;


    /* ===== BORDERS ===== */
    --border-radius-sm: 4px;
    --border-radius: 8px;
    --border-radius-lg: 12px;
    --border-radius-xl: 16px;
    --border-radius-full: 9999px;

    --border-width: 1px;
    --border-width-2: 2px;


    /* ===== SHADOWS ===== */
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.12);
    --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.15);
    --shadow-xl: 0 16px 48px rgba(0, 0, 0, 0.2);


    /* ===== TRANSITIONS ===== */
    --transition-fast: 150ms ease;
    --transition-normal: 250ms ease;
    --transition-slow: 350ms ease;


    /* ===== Z-INDEX ===== */
    --z-dropdown: 100;
    --z-sticky: 200;
    --z-modal-backdrop: 500;
    --z-modal: 600;
    --z-tooltip: 700;
    --z-toast: 800;
}

/* ===== DARK THEME ===== */
[data-theme="dark"] {
    --color-bg: var(--color-gray-900);
    --color-bg-elevated: var(--color-gray-800);
    --color-bg-hover: var(--color-gray-700);

    --color-text: var(--color-gray-100);
    --color-text-secondary: var(--color-gray-400);
    --color-text-muted: var(--color-gray-500);

    --color-border: var(--color-gray-700);
    --color-border-light: var(--color-gray-800);

    --color-primary: #8ab4f8;
    --color-primary-hover: #aecbfa;
}