:root {
    color-scheme: light;

    /* Brand */
    --color-primary-50: #f0f9ff;
    --color-primary-100: #e0f2fe;
    --color-primary-200: #bae6fd;
    --color-primary-300: #7dd3fc;
    --color-primary-400: #38bdf8;
    --color-primary-500: #0ea5e9;
    --color-primary-600: #0284c7;
    --color-primary-700: #0369a1;
    --color-primary-800: #075985;
    --color-primary-900: #0c4a6e;

    --color-secondary-50: #fff7ed;
    --color-secondary-100: #ffedd5;
    --color-secondary-200: #fed7aa;
    --color-secondary-300: #fdba74;
    --color-secondary-400: #fb923c;
    --color-secondary-500: #f97316;
    --color-secondary-600: #ea580c;
    --color-secondary-700: #c2410c;
    --color-secondary-800: #9a3412;
    --color-secondary-900: #7c2d12;

    /* Semantic */
    --color-success-50: #ecfdf5;
    --color-success-100: #d1fae5;
    --color-success-500: #059669;
    --color-success-600: #047857;
    --color-success-700: #065f46;

    --color-warning-50: #fffbeb;
    --color-warning-100: #fef3c7;
    --color-warning-500: #d97706;
    --color-warning-600: #b45309;
    --color-warning-700: #92400e;

    --color-error-50: #fef2f2;
    --color-error-100: #fee2e2;
    --color-error-500: #dc2626;
    --color-error-600: #b91c1c;
    --color-error-700: #991b1b;

    --color-info-50: #f0f9ff;
    --color-info-100: #e0f2fe;
    --color-info-500: #0891b2;
    --color-info-600: #0e7490;
    --color-info-700: #155e75;

    /* Neutrals */
    --color-gray-50: #f8fbff;
    --color-gray-100: #eef5fb;
    --color-gray-200: #d9e6f1;
    --color-gray-300: #b9cbdb;
    --color-gray-400: #7d93aa;
    --color-gray-500: #5e7287;
    --color-gray-600: #45586d;
    --color-gray-700: #314255;
    --color-gray-800: #1f2b3b;
    --color-gray-900: #0f172a;

    /* Theme aliases */
    --bg: #f5fbff;
    --bg-soft: rgba(255, 255, 255, 0.72);
    --surface: rgba(255, 255, 255, 0.82);
    --surface-strong: rgba(255, 255, 255, 0.94);
    --surface-alt: rgba(240, 249, 255, 0.82);
    --surface-dark: #0f172a;
    --line: rgba(12, 74, 110, 0.12);
    --line-strong: rgba(12, 74, 110, 0.18);
    --text: #0f172a;
    --muted: #4b5d73;
    --primary: #0ea5e9;
    --primary-strong: #0c4a6e;
    --primary-soft: rgba(14, 165, 233, 0.12);
    --accent: #c2410c;
    --accent-bright: #ea580c;
    --accent-soft: rgba(194, 65, 12, 0.12);
    --success-soft: rgba(5, 150, 105, 0.14);
    --warning-soft: rgba(217, 119, 6, 0.14);
    --error-soft: rgba(220, 38, 38, 0.12);
    --info-soft: rgba(8, 145, 178, 0.12);

    /* Typography */
    --font-family-base: "DM Sans", sans-serif;
    --font-family-display: "Space Grotesk", sans-serif;
    --font-family-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;

    --font-size-xs: 0.75rem;
    --font-size-sm: 0.875rem;
    --font-size-base: 1rem;
    --font-size-lg: 1.125rem;
    --font-size-xl: 1.25rem;
    --font-size-2xl: 1.5rem;
    --font-size-3xl: 1.875rem;
    --font-size-4xl: 2.25rem;
    --font-size-5xl: 3rem;

    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-black: 800;

    --line-height-tight: 1.12;
    --line-height-snug: 1.35;
    --line-height-normal: 1.6;
    --line-height-relaxed: 1.8;

    /* Spacing */
    --spacing-0: 0;
    --spacing-1: 0.25rem;
    --spacing-2: 0.5rem;
    --spacing-3: 0.75rem;
    --spacing-4: 1rem;
    --spacing-5: 1.25rem;
    --spacing-6: 1.5rem;
    --spacing-8: 2rem;
    --spacing-10: 2.5rem;
    --spacing-12: 3rem;
    --spacing-16: 4rem;
    --spacing-20: 5rem;

    /* Radius */
    --radius-xs: 10px;
    --radius-sm: 14px;
    --radius-md: 20px;
    --radius-lg: 28px;
    --radius-xl: 38px;
    --radius-pill: 999px;

    /* Shadows */
    --shadow-sm: 0 10px 24px rgba(14, 39, 73, 0.08);
    --shadow-base: 0 18px 40px rgba(14, 39, 73, 0.08);
    --shadow-md: 0 24px 56px rgba(14, 39, 73, 0.1);
    --shadow-lg: 0 30px 80px rgba(14, 39, 73, 0.12);
    --shadow-xl: 0 34px 88px rgba(14, 39, 73, 0.16);

    /* Motion */
    --ease: cubic-bezier(0.22, 1, 0.36, 1);
    --transition-fast: 180ms var(--ease);
    --transition-base: 220ms var(--ease);
    --transition-normal: 320ms var(--ease);
    --transition-slow: 520ms var(--ease);

    /* Layout */
    --max-width: 1180px;
    --z-index-dropdown: 1000;
    --z-index-sticky: 1020;
    --z-index-fixed: 1030;
    --z-index-modal-backdrop: 1040;
    --z-index-modal: 1050;
    --breakpoint-sm: 640px;
    --breakpoint-md: 768px;
    --breakpoint-lg: 1024px;
    --breakpoint-xl: 1280px;
}

@media (prefers-reduced-motion: reduce) {
    :root {
        --transition-fast: 0ms;
        --transition-base: 0ms;
        --transition-normal: 0ms;
        --transition-slow: 0ms;
    }
}

@media (prefers-contrast: high) {
    :root {
        --primary: #0369a1;
        --primary-strong: #082f49;
        --accent: #9a3412;
        --text: #020617;
        --muted: #334155;
        --line: rgba(2, 6, 23, 0.28);
    }
}

@media print {
    :root {
        --bg: #ffffff;
        --surface: #ffffff;
        --surface-strong: #ffffff;
        --text: #000000;
        --muted: #334155;
        --shadow-sm: none;
        --shadow-base: none;
        --shadow-md: none;
        --shadow-lg: none;
        --shadow-xl: none;
    }
}

.text-primary { color: var(--primary); }
.text-accent { color: var(--accent); }
.text-success { color: var(--color-success-600); }
.text-warning { color: var(--color-warning-600); }
.text-error { color: var(--color-error-600); }

.bg-primary { background: linear-gradient(135deg, var(--primary-strong), var(--primary)); }
.bg-accent { background: linear-gradient(135deg, var(--accent-bright), var(--accent)); }
.bg-success { background-color: var(--color-success-500); }
.bg-warning { background-color: var(--color-warning-500); }
.bg-error { background-color: var(--color-error-500); }

.border-primary { border-color: var(--primary); }
.border-accent { border-color: var(--accent); }
.rounded-custom { border-radius: var(--radius-md); }
.shadow-custom { box-shadow: var(--shadow-base); }
.transition-custom { transition: all var(--transition-base); }
