/**
 * Design Tokens - Dark Theme
 * 
 * This file contains all design tokens (CSS custom properties) for the application.
 * These tokens provide a single source of truth for colors, typography, spacing, and other design values.
 * 
 * To change a color throughout the entire app, simply update the value here.
 * All components that use var(--token-name) will automatically update.
 */

:root {
  /* ==================== BACKGROUND COLORS ==================== */
  /* Main backgrounds for different elevation levels */
  --bg-primary: #121212;           /* Main app background, lowest elevation */
  --bg-secondary: #1e1e1e;         /* Cards, panels, elevated surfaces */
  --bg-tertiary: #2a2a2a;          /* Inputs, buttons, highest elevation */
  --bg-hover: #333333;             /* Hover state for interactive elements */
  --bg-active: #3a3a3a;            /* Active/selected state */
  
  /* ==================== TEXT COLORS ==================== */
  /* Text colors for different hierarchy levels */
  --text-primary: #ffffff;         /* Primary text, headings, high emphasis */
  --text-secondary: #b3b3b3;       /* Secondary text, medium emphasis */
  --text-tertiary: #808080;        /* Tertiary text, hints, low emphasis */
  --text-disabled: #4d4d4d;        /* Disabled text */
  --text-inverse: #121212;         /* Text on light backgrounds (e.g., on accent colors) */
  
  /* ==================== BRAND & ACCENT COLORS ==================== */
  /* Primary accent - Spotify green for main actions */
  --accent-primary: #1DB954;       /* Primary brand color, main CTAs */
  --accent-primary-hover: #1ed760; /* Hover state */
  --accent-primary-active: #169c46;/* Active/pressed state */
  
  /* Secondary accent - Purple for secondary actions */
  --accent-secondary: #8B5CF6;     /* Secondary actions, special features */
  --accent-secondary-hover: #7C3AED; /* Hover state */
  --accent-secondary-active: #6D28D9; /* Active state */
  
  /* ==================== SEMANTIC COLORS ==================== */
  /* Success states */
  --color-success: #10b981;        /* Success text, icons, borders */
  --color-success-bg: #064e3b;     /* Success background */
  --color-success-hover: #059669;  /* Success hover state */
  
  /* Error states */
  --color-error: #ef4444;          /* Error text, icons, borders */
  --color-error-bg: #7f1d1d;       /* Error background */
  --color-error-hover: #dc2626;    /* Error hover state */
  
  /* Warning states */
  --color-warning: #f59e0b;        /* Warning text, icons, borders */
  --color-warning-bg: #78350f;     /* Warning background */
  --color-warning-hover: #d97706;  /* Warning hover state */
  
  /* Info states */
  --color-info: #3b82f6;           /* Info text, icons, borders */
  --color-info-bg: #1e3a8a;        /* Info background */
  --color-info-hover: #2563eb;     /* Info hover state */
  
  /* ==================== BORDER COLORS ==================== */
  --border-primary: #333333;       /* Default borders, dividers */
  --border-secondary: #404040;     /* Subtle borders, less emphasis */
  --border-focus: #1DB954;         /* Focus state borders */
  --border-error: #ef4444;         /* Error state borders */
  --border-hover: #4d4d4d;         /* Hover state borders */
  
  /* ==================== SHADOW VALUES ==================== */
  /* Shadows for elevation and depth */
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.5), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.5), 0 4px 6px -2px rgba(0, 0, 0, 0.3);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.5), 0 10px 10px -5px rgba(0, 0, 0, 0.3);
  --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.6);
  
  /* ==================== TYPOGRAPHY ==================== */
  /* Font sizes - using rem for scalability */
  --text-xs: 0.75rem;      /* 12px - Very small text, captions */
  --text-sm: 0.875rem;     /* 14px - Small text, secondary info */
  --text-base: 1rem;       /* 16px - Base body text */
  --text-lg: 1.125rem;     /* 18px - Large body text, small headings */
  --text-xl: 1.25rem;      /* 20px - Headings */
  --text-2xl: 1.5rem;      /* 24px - Large headings */
  --text-3xl: 1.875rem;    /* 30px - Extra large headings */
  --text-4xl: 2.25rem;     /* 36px - Hero text */
  
  /* Font weights */
  --font-normal: 400;      /* Regular text */
  --font-medium: 500;      /* Medium emphasis */
  --font-semibold: 600;    /* Semibold, headings */
  --font-bold: 700;        /* Bold, strong emphasis */
  
  /* Line heights */
  --leading-tight: 1.25;   /* Tight line height for headings */
  --leading-normal: 1.5;   /* Normal line height for body text */
  --leading-relaxed: 1.75; /* Relaxed line height for readability */
  
  /* ==================== SPACING SCALE ==================== */
  /* Consistent spacing scale based on 4px base unit */
  --space-0: 0;            /* 0px */
  --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 */
  --space-20: 5rem;        /* 80px */
  --space-24: 6rem;        /* 96px */
  
  /* ==================== BORDER RADIUS ==================== */
  /* Border radius values for consistent rounded corners */
  --radius-none: 0;        /* No rounding */
  --radius-sm: 4px;        /* Small rounding */
  --radius-md: 6px;        /* Medium rounding (default) */
  --radius-lg: 8px;        /* Large rounding */
  --radius-xl: 12px;       /* Extra large rounding */
  --radius-2xl: 16px;      /* 2X large rounding */
  --radius-full: 9999px;   /* Fully rounded (pills, circles) */
  
  /* ==================== TRANSITIONS ==================== */
  /* Standard transition durations and easings */
  --transition-fast: 150ms;
  --transition-base: 200ms;
  --transition-slow: 300ms;
  --transition-ease: cubic-bezier(0.4, 0, 0.2, 1);
  
  /* ==================== Z-INDEX SCALE ==================== */
  /* Consistent z-index values for layering */
  --z-base: 1;
  --z-dropdown: 1000;
  --z-sticky: 1020;
  --z-fixed: 1030;
  --z-modal-backdrop: 1040;
  --z-modal: 1050;
  --z-popover: 1060;
  --z-tooltip: 1070;
  
  /* ==================== COMPONENT-SPECIFIC TOKENS ==================== */
  /* Player dimensions */
  --player-spotify-height: 152px;  /* Standard Spotify embed height */
  
  /* Playlist specific colors */
  --playlist-show-header-gradient-start: #4A3366;
  --playlist-show-header-gradient-end: #6B5294;
  --playlist-show-header-no-show-start: #4A3366;
  --playlist-show-header-no-show-end: #6B5294;
  
  /* Create tab gradient */
  --create-tab-gradient-start: #667eea;
  --create-tab-gradient-end: #764ba2;
  --create-tab-gradient-hover-start: #5568d3;
  --create-tab-gradient-hover-end: #663a8e;
  
  /* Accent color with opacity variations */
  --accent-primary-bg-10: rgba(29, 185, 84, 0.1);   /* 10% opacity for subtle backgrounds */
  --accent-primary-bg-15: rgba(29, 185, 84, 0.15);  /* 15% opacity for active states */
  --accent-primary-bg-20: rgba(29, 185, 84, 0.2);   /* 20% opacity for borders */
  --accent-primary-border-30: rgba(29, 185, 84, 0.3); /* 30% opacity for borders */
  
  /* Secondary accent with opacity */
  --accent-secondary-bg-20: rgba(139, 92, 246, 0.2); /* 20% opacity for badges */
  
  /* Overlay colors */
  --overlay-dark: rgba(0, 0, 0, 0.85);              /* Dark overlay for modals */
  --overlay-darker: rgba(0, 0, 0, 0.95);            /* Darker overlay for tooltips */
  --overlay-medium: rgba(0, 0, 0, 0.7);             /* Medium overlay for icons */
  --overlay-light: rgba(0, 0, 0, 0.6);              /* Light overlay */
  
  /* White with opacity */
  --white-border-20: rgba(255, 255, 255, 0.2);      /* White border with 20% opacity */
  --white-text-90: rgba(255, 255, 255, 0.9);        /* White text with 90% opacity */
  
  /* Shadow for sticky elements */
  --shadow-sticky: 0 -2px 8px rgba(0, 0, 0, 0.3);   /* Shadow for sticky footers */
  
  /* Gradient button shadows */
  --shadow-gradient-sm: 0 2px 4px rgba(102, 126, 234, 0.3);  /* Small shadow for gradient buttons */
  --shadow-gradient-md: 0 4px 12px rgba(102, 126, 234, 0.4); /* Medium shadow for gradient buttons */
  
  /* Mobile/responsive shadows */
  --shadow-mobile-panel: 0 -4px 20px rgba(0, 0, 0, 0.5);     /* Shadow for mobile panels */
  --shadow-mobile-drawer: -2px 0 8px rgba(0, 0, 0, 0.5);     /* Shadow for mobile drawers */
  --shadow-mobile-filter: 0 -4px 12px rgba(0, 0, 0, 0.3);    /* Shadow for mobile filters */
  
  /* Backdrop overlays */
  --backdrop-light: rgba(0, 0, 0, 0.5);                      /* Light backdrop overlay */
  --backdrop-medium: rgba(0, 0, 0, 0.7);                     /* Medium backdrop overlay */
  
  /* Scrollbar colors */
  --scrollbar-track: var(--bg-primary);                      /* Scrollbar track background */
  --scrollbar-thumb: var(--bg-hover);                        /* Scrollbar thumb (draggable part) */
  --scrollbar-thumb-hover: var(--bg-active);                 /* Scrollbar thumb on hover */
  --scrollbar-width: 6px;                                    /* Standard scrollbar width */
  
  /* Badge variants */
  --badge-muted-bg: var(--bg-tertiary);                      /* Muted badge background - low emphasis */
  --badge-muted-text: var(--text-secondary);                 /* Muted badge text color */
}

/* ==================== UTILITY: DARK MODE OVERRIDES ==================== */
/* 
 * Future enhancement: Light theme support
 * Uncomment and customize these values to enable light theme switching
 */
/*
[data-theme="light"] {
  --bg-primary: #ffffff;
  --bg-secondary: #f5f5f5;
  --bg-tertiary: #e5e5e5;
  --bg-hover: #d4d4d4;
  --bg-active: #c4c4c4;
  
  --text-primary: #121212;
  --text-secondary: #666666;
  --text-tertiary: #999999;
  --text-disabled: #cccccc;
  --text-inverse: #ffffff;
  
  --border-primary: #e0e0e0;
  --border-secondary: #d0d0d0;
  
  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
}
*/
