/* CPlayer 5 - Design System Variables */
/* Epic Refactor Edition - Unified Token System */

:root {
    /* ==================== Color System ==================== */

    /* Primary Theme (Dynamic from Cover) */
    --primary-color: #ffffff;
    --on-primary-color: #000000;

    /* Neutral Dark Palette */
    --bg-base: #0A0A0F;
    --bg-elevated: #14141A;
    --bg-hover: #1E1E26;
    --bg-color: var(--bg-base);
    --on-bg-color: #ffffff;

    /* Surface with Glassmorphism */
    --surface-color: rgba(255, 255, 255, 0.08);
    --surface-container-color: rgba(255, 255, 255, 0.05);
    --surface-container-high-color: rgba(255, 255, 255, 0.12);
    --on-surface-color: #ffffff;

    /* Text Hierarchy */
    --text-primary: #FFFFFF;
    --text-secondary: rgba(255, 255, 255, 0.75);
    --text-tertiary: rgba(255, 255, 255, 0.45);

    /* Borders & Outlines */
    --outline-color: rgba(255, 255, 255, 0.08);
    --outline-hover: rgba(255, 255, 255, 0.16);

    /* Shadows */
    --shadow-color: rgba(0, 0, 0, 0.5);
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.15);
    --shadow-md: 0 8px 32px rgba(0, 0, 0, 0.2);
    --shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.3);

    /* Cover & Progress */
    --cover-shadow-color: rgba(0, 0, 0, 0.6);
    --progress-bar-bg: rgba(255, 255, 255, 0.2);

    /* ==================== Spacing System (8px base) ==================== */
    --space-xs: 4px;
    --space-sm: 8px;
    --space-md: 16px;
    --space-lg: 24px;
    --space-xl: 32px;
    --space-2xl: 48px;

    /* ==================== Border Radius ==================== */
    --radius-sm: 12px;
    --radius-md: 16px;
    --radius-lg: 20px;
    --radius-xl: 28px;
    --radius-2xl: 32px;
    --radius-full: 9999px;

    /* Legacy aliases for compatibility */
    --m3-radius-l: var(--radius-xl);
    --m3-radius-xl: var(--radius-2xl);
    --m3-radius-full: var(--radius-full);

    /* ==================== Typography ==================== */
    --font-primary: 'Noto Sans SC', 'PingFang SC', -apple-system, BlinkMacSystemFont, sans-serif;

    /* Font Sizes (Fluid Typography) */
    --text-xs: 0.75rem;      /* 12px */
    --text-sm: 0.875rem;     /* 14px */
    --text-base: 1rem;       /* 16px */
    --text-lg: 1.125rem;     /* 18px */
    --text-xl: 1.25rem;      /* 20px */
    --text-2xl: 1.5rem;      /* 24px */
    --text-3xl: 1.875rem;    /* 30px */
    --text-4xl: 2.25rem;     /* 36px */

    /* Font Weights */
    --font-light: 300;
    --font-normal: 400;
    --font-medium: 500;
    --font-semibold: 600;
    --font-bold: 700;
    --font-extrabold: 800;
    --font-black: 900;

    /* Line Heights */
    --leading-tight: 1.25;
    --leading-normal: 1.5;
    --leading-relaxed: 1.75;

    /* ==================== Transitions ==================== */
    --transition-fast: 150ms cubic-bezier(0.25, 0.1, 0.25, 1);
    --transition-base: 250ms cubic-bezier(0.25, 0.1, 0.25, 1);
    --transition-slow: 400ms cubic-bezier(0.25, 0.1, 0.25, 1);

    --ease-in: cubic-bezier(0.4, 0.0, 1, 1);
    --ease-out: cubic-bezier(0.0, 0.0, 0.2, 1);
    --ease-in-out: cubic-bezier(0.4, 0.0, 0.2, 1);

    /* ==================== Layout ==================== */
    --cover-size: clamp(260px, min(45vh, 30vw), 380px);
    --sidebar-width: 400px;
    --mobile-header-height: 56px;
    --mobile-controls-height: 120px;

    /* ==================== Glassmorphism ==================== */
    --glass-blur: 32px;
    --glass-border: 1px solid var(--outline-color);
    --glass-shadow: var(--shadow-md);
    --glass-bg: var(--surface-color);

    /* ==================== Z-Index Layers ==================== */
    --z-base: 0;
    --z-dropdown: 10;
    --z-sticky: 20;
    --z-overlay: 30;
    --z-modal: 40;
    --z-toast: 50;
    --z-tooltip: 60;

    /* ==================== Breakpoints (for reference) ==================== */
    /* Use in media queries:
       --breakpoint-sm: 640px;
       --breakpoint-md: 768px;
       --breakpoint-lg: 1024px;
       --breakpoint-xl: 1280px;
    */
}

/* ==================== Gradient Mode (Dynamic Theme) ==================== */
html.gradient-mode {
    --anim-speed: 12s;
}

html.gradient-mode body {
    background-color: hsl(var(--gradient-base-h), var(--gradient-base-s), 10%);
    background-image:
        radial-gradient(at 10% 10%, hsla(var(--gradient-base-h), var(--gradient-base-s), 45%, 0.5) 0px, transparent 55%),
        radial-gradient(at 90% 90%, hsla(var(--gradient-second-h), var(--gradient-base-s), 40%, 0.5) 0px, transparent 55%),
        radial-gradient(at 50% 100%, hsla(var(--gradient-base-h), var(--gradient-base-s), 25%, 0.6) 0px, transparent 65%);
    background-size: 200% 200%;
    background-attachment: fixed;
    animation: flowingGradient var(--anim-speed) ease infinite;
}

@keyframes flowingGradient {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* Light Mode Optimization */
html.gradient-mode:not(.dark) body {
    background-color: hsl(var(--gradient-base-h), var(--gradient-base-s), 85%);
    background-image:
        radial-gradient(at 0% 0%, hsla(var(--gradient-base-h), var(--gradient-base-s), 65%, 0.6) 0px, transparent 60%),
        radial-gradient(at 100% 100%, hsla(var(--gradient-second-h), var(--gradient-base-s), 60%, 0.6) 0px, transparent 60%),
        radial-gradient(at 50% 50%, hsla(var(--gradient-base-h), var(--gradient-base-s), 80%, 0.4) 0px, transparent 50%);
}

html.gradient-mode:not(.dark) {
    --on-surface-color: #001e0a;
    --primary-color: hsl(var(--gradient-base-h), 100%, 35%);
    --surface-color: rgba(255, 255, 255, 0.65);
    --surface-container-color: rgba(255, 255, 255, 0.4);
    --surface-container-high-color: rgba(255, 255, 255, 0.7);
}

html.gradient-mode.dark {
    --primary-color: hsl(var(--gradient-base-h), 100%, 70%);
    --on-primary-color: hsl(var(--gradient-base-h), 100%, 15%);
    --surface-color: rgba(20, 20, 20, 0.6);
    --surface-container-color: rgba(0, 0, 0, 0.3);
    --surface-container-high-color: rgba(255, 255, 255, 0.1);
}

html.gradient-mode .bg-surface-color {
    backdrop-filter: blur(var(--glass-blur));
    -webkit-backdrop-filter: blur(var(--glass-blur));
    border: var(--glass-border);
    box-shadow: var(--glass-shadow);
}

/* ==================== Responsive Adjustments ==================== */

/* Mobile Devices */
@media (max-width: 768px) {
    :root {
        --cover-size: clamp(260px, 75vw, 380px);
        --space-xl: 20px;
        --space-2xl: 32px;
    }
}

/* Small Screens */
@media (max-width: 480px) {
    :root {
        --text-2xl: 1.25rem;
        --text-3xl: 1.5rem;
        --text-4xl: 1.875rem;
    }
}

/* Landscape Mode */
@media (max-height: 750px) {
    :root {
        --cover-size: clamp(200px, 40vh, 280px);
    }
}

@media (max-height: 650px) {
    :root {
        --cover-size: clamp(180px, 35vh, 240px);
    }
}

/* Strict Landscape */
@media (max-height: 500px) and (orientation: landscape) {
    :root {
        --cover-size: clamp(140px, 30vh, 200px);
    }
}
