/**
 * Chzzk Metrics Dashboard - Modern Design System v6.0
 * 현대적이고 사용자 친화적인 디자인
 * 
 * Features:
 * - Glass morphism 효과
 * - 부드러운 그라데이션
 * - 향상된 데이터 시각화
 * - 개선된 타이포그래피
 * - 반응형 레이아웃
 */

/* ============================================
   1. Design Tokens & CSS Variables
   ============================================ */
:root {
    color-scheme: dark light;
    
    /* 🎨 Core Colors - Dark Theme */
    --bg-primary: #0a0a0f;
    --bg-secondary: #12121a;
    --bg-card: #16161f;
    --bg-card-hover: #1e1e2a;
    --bg-elevated: #1a1a25;
    --bg-glass: rgba(22, 22, 31, 0.8);
    
    /* Borders & Dividers */
    --border: rgba(255, 255, 255, 0.08);
    --border-light: rgba(255, 255, 255, 0.05);
    --border-accent: rgba(124, 77, 255, 0.3);
    
    /* Text Colors */
    --text-primary: #ffffff;
    --text-secondary: #b4b4c8;
    --text-muted: #6b6b80;
    --text-inverse: #0a0a0f;
    
    /* Accent Colors - Primary */
    --accent-green: #00e676;
    --accent-green-soft: rgba(0, 230, 118, 0.15);
    --accent-green-glow: rgba(0, 230, 118, 0.4);
    
    --accent-purple: #8b5cf6;
    --accent-purple-soft: rgba(139, 92, 246, 0.15);
    --accent-purple-glow: rgba(139, 92, 246, 0.4);
    
    --accent-blue: #3b82f6;
    --accent-blue-soft: rgba(59, 130, 246, 0.15);
    --accent-blue-glow: rgba(59, 130, 246, 0.4);
    
    --accent-cyan: #06b6d4;
    --accent-cyan-soft: rgba(6, 182, 212, 0.15);
    --accent-cyan-glow: rgba(6, 182, 212, 0.4);
    
    --accent-orange: #f59e0b;
    --accent-orange-soft: rgba(245, 158, 11, 0.15);
    --accent-orange-glow: rgba(245, 158, 11, 0.4);
    
    --accent-pink: #ec4899;
    --accent-pink-soft: rgba(236, 72, 153, 0.15);
    --accent-pink-glow: rgba(236, 72, 153, 0.4);
    
    --accent-red: #ef4444;
    --accent-red-soft: rgba(239, 68, 68, 0.15);
    --accent-red-glow: rgba(239, 68, 68, 0.4);
    
    --accent-yellow: #eab308;
    --accent-yellow-soft: rgba(234, 179, 8, 0.15);
    
    /* Gradients */
    --gradient-primary: linear-gradient(135deg, #8b5cf6 0%, #3b82f6 100%);
    --gradient-success: linear-gradient(135deg, #00e676 0%, #06b6d4 100%);
    --gradient-warning: linear-gradient(135deg, #f59e0b 0%, #ef4444 100%);
    --gradient-info: linear-gradient(135deg, #3b82f6 0%, #06b6d4 100%);
    --gradient-llhls: linear-gradient(135deg, #f59e0b 0%, #ec4899 100%);
    --gradient-glass: linear-gradient(135deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.02) 100%);
    
    /* Spacing */
    --space-xs: 4px;
    --space-sm: 8px;
    --space-md: 16px;
    --space-lg: 24px;
    --space-xl: 32px;
    --space-2xl: 48px;
    
    /* Border Radius */
    --radius-xs: 6px;
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-xl: 20px;
    --radius-2xl: 24px;
    --radius-full: 9999px;
    
    /* Shadows */
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.2);
    --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.3);
    --shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.4);
    --shadow-glow-purple: 0 8px 32px rgba(139, 92, 246, 0.25);
    --shadow-glow-green: 0 8px 32px rgba(0, 230, 118, 0.25);
    --shadow-glow-blue: 0 8px 32px rgba(59, 130, 246, 0.25);
    
    /* Typography */
    --font-sans: 'Nanum Gothic', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-mono: 'JetBrains Mono', 'SF Mono', 'Consolas', monospace;
    
    /* Transitions */
    --transition-fast: 0.15s ease;
    --transition-normal: 0.25s ease;
    --transition-slow: 0.4s ease;
    --transition-bounce: 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
    
    /* Z-Index Scale */
    --z-base: 0;
    --z-dropdown: 100;
    --z-sticky: 200;
    --z-fixed: 300;
    --z-modal: 400;
    --z-toast: 500;
    
    /* 🆕 v5.2: 차트 테마 CSS 변수 - 다크 테마 기본값 */
    --chart-bg: linear-gradient(135deg, rgba(20, 20, 32, 0.85) 0%, rgba(28, 28, 45, 0.9) 100%);
    --chart-card-bg: linear-gradient(145deg, rgba(18, 18, 28, 0.92) 0%, rgba(25, 25, 40, 0.95) 100%);
    --chart-border: rgba(255, 255, 255, 0.08);
    --chart-shadow: rgba(0, 0, 0, 0.25);
    --chart-shadow-hover: rgba(0, 0, 0, 0.3);
    --chart-inner-glow: rgba(255, 255, 255, 0.05);
    --chart-highlight: rgba(255, 255, 255, 0.1);
    --chart-top-border: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
}

/* 🌞 Light Theme - 모든 브라우저 통일 (Safari, Chrome, Firefox, Edge) */
html[data-theme="light"],
html.theme-light,
body.theme-light,
[data-theme="light"],
.theme-light {
    color-scheme: light;
    
    --bg-primary: #f8fafc;
    --bg-secondary: #ffffff;
    --bg-card: #ffffff;
    --bg-card-hover: #f1f5f9;
    --bg-elevated: #ffffff;
    --bg-glass: rgba(255, 255, 255, 0.9);
    
    --border: rgba(0, 0, 0, 0.08);
    --border-light: rgba(0, 0, 0, 0.05);
    --border-accent: rgba(139, 92, 246, 0.2);
    
    --text-primary: #0f172a;
    --text-secondary: #475569;
    --text-muted: #94a3b8;
    --text-inverse: #ffffff;
    
    --accent-green: #10b981;
    --accent-green-soft: rgba(16, 185, 129, 0.1);
    --accent-purple: #7c3aed;
    --accent-purple-soft: rgba(124, 58, 237, 0.1);
    --accent-blue: #2563eb;
    --accent-blue-soft: rgba(37, 99, 235, 0.1);
    --accent-cyan: #0891b2;
    --accent-cyan-soft: rgba(8, 145, 178, 0.1);
    --accent-orange: #d97706;
    --accent-orange-soft: rgba(217, 119, 6, 0.1);
    --accent-pink: #db2777;
    --accent-pink-soft: rgba(219, 39, 119, 0.1);
    --accent-red: #dc2626;
    --accent-red-soft: rgba(220, 38, 38, 0.1);
    
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.12);
    
    /* 🆕 v5.2: 차트 테마 CSS 변수 - 라이트 테마 */
    --chart-bg: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(248, 250, 252, 0.98) 100%);
    --chart-card-bg: linear-gradient(145deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.95) 100%);
    --chart-border: rgba(0, 0, 0, 0.08);
    --chart-shadow: rgba(0, 0, 0, 0.04);
    --chart-shadow-hover: rgba(0, 0, 0, 0.06);
    --chart-inner-glow: rgba(0, 0, 0, 0.02);
    --chart-highlight: rgba(0, 0, 0, 0.03);
    --chart-top-border: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.08), transparent);
}

/* ============================================
   2. Base Styles
   ============================================ */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    background-color: var(--bg-primary);
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-sans);
    background: var(--bg-primary);
    color: var(--text-primary);
    min-height: 100vh;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* ============================================
   3. Layout Components
   ============================================ */
.app-container {
    max-width: 1920px;
    margin: 0 auto;
    padding: var(--space-lg);
}

.app-layout {
    display: flex;
    gap: var(--space-lg);
    min-height: calc(100vh - 48px);
}

.main-content {
    flex: 1;
    min-width: 0;
}

/* ============================================
   4. Modern Card Component
   ============================================ */
.modern-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    padding: var(--space-lg);
    transition: all var(--transition-normal);
    position: relative;
    overflow: hidden;
}

.modern-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: var(--gradient-glass);
    opacity: 0.5;
}

.modern-card:hover {
    border-color: var(--border-accent);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

/* Glass Card Variant */
.glass-card {
    background: var(--bg-glass);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-xl);
    padding: var(--space-lg);
}

/* ============================================
   5. Modern Stat Cards
   ============================================ */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--space-md);
    margin-bottom: var(--space-lg);
}

.stat-card-modern {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-lg);
    position: relative;
    overflow: hidden;
    transition: all var(--transition-normal);
}

.stat-card-modern::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    opacity: 0.8;
    transition: opacity var(--transition-fast);
}

.stat-card-modern.green::after { background: var(--gradient-success); }
.stat-card-modern.purple::after { background: var(--gradient-primary); }
.stat-card-modern.blue::after { background: var(--gradient-info); }
.stat-card-modern.orange::after { background: var(--gradient-warning); }
.stat-card-modern.pink::after { background: linear-gradient(135deg, #ec4899 0%, #f43f5e 100%); }
.stat-card-modern.cyan::after { background: linear-gradient(135deg, #06b6d4 0%, #0ea5e9 100%); }

.stat-card-modern:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
    border-color: var(--border-accent);
}

.stat-card-modern:hover::after {
    opacity: 1;
}

.stat-icon-modern {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--space-md);
    font-size: 22px;
}

.stat-icon-modern.green { background: var(--accent-green-soft); color: var(--accent-green); }
.stat-icon-modern.purple { background: var(--accent-purple-soft); color: var(--accent-purple); }
.stat-icon-modern.blue { background: var(--accent-blue-soft); color: var(--accent-blue); }
.stat-icon-modern.orange { background: var(--accent-orange-soft); color: var(--accent-orange); }
.stat-icon-modern.pink { background: var(--accent-pink-soft); color: var(--accent-pink); }
.stat-icon-modern.cyan { background: var(--accent-cyan-soft); color: var(--accent-cyan); }
.stat-icon-modern.red { background: var(--accent-red-soft); color: var(--accent-red); }

.stat-label-modern {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: var(--space-xs);
}

.stat-value-modern {
    font-size: 28px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
    margin-bottom: var(--space-xs);
}

.stat-value-modern.green { color: var(--accent-green); }
.stat-value-modern.purple { color: var(--accent-purple); }
.stat-value-modern.blue { color: var(--accent-blue); }
.stat-value-modern.orange { color: var(--accent-orange); }
.stat-value-modern.pink { color: var(--accent-pink); }
.stat-value-modern.cyan { color: var(--accent-cyan); }

.stat-detail-modern {
    font-size: 12px;
    color: var(--text-secondary);
}

/* ============================================
   6. Modern Metric Cards
   ============================================ */
.metric-section {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    padding: var(--space-lg);
    margin-bottom: var(--space-lg);
}

.metric-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-lg);
    padding-bottom: var(--space-md);
    border-bottom: 1px solid var(--border-light);
}

.metric-section-title {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: 16px;
    font-weight: 700;
    color: var(--text-primary);
}

.metric-section-title i {
    width: 20px;
    height: 20px;
}

.metric-section-badge {
    padding: 4px 10px;
    border-radius: var(--radius-full);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.metric-section-badge.live {
    background: var(--accent-green-soft);
    color: var(--accent-green);
    animation: pulse-glow 2s ease-in-out infinite;
}

.metric-section-badge.llhls {
    background: var(--gradient-llhls);
    color: white;
}

@keyframes pulse-glow {
    0%, 100% { box-shadow: 0 0 0 0 var(--accent-green-glow); }
    50% { box-shadow: 0 0 12px 4px var(--accent-green-glow); }
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: var(--space-md);
}

.metric-item {
    background: var(--bg-secondary);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-md);
    padding: var(--space-md);
    text-align: center;
    transition: all var(--transition-fast);
}

.metric-item:hover {
    background: var(--bg-card-hover);
    border-color: var(--border);
}

.metric-item-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: var(--space-xs);
}

.metric-item-value {
    font-size: 20px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--text-primary);
}

.metric-item-value.green { color: var(--accent-green); }
.metric-item-value.purple { color: var(--accent-purple); }
.metric-item-value.blue { color: var(--accent-blue); }
.metric-item-value.orange { color: var(--accent-orange); }
.metric-item-value.cyan { color: var(--accent-cyan); }

.metric-item-unit {
    font-size: 12px;
    color: var(--text-muted);
    margin-left: 2px;
}

/* ============================================
   7. Modern Chart Container
   ============================================ */
.chart-section {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    padding: var(--space-lg);
    margin-bottom: var(--space-lg);
}

.chart-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-lg);
}

.chart-title {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: 16px;
    font-weight: 700;
}

.chart-controls {
    display: flex;
    gap: var(--space-sm);
}

.chart-control-btn {
    padding: 6px 12px;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--transition-fast);
}

.chart-control-btn:hover {
    background: var(--bg-card-hover);
    color: var(--text-primary);
}

.chart-control-btn.active {
    background: var(--gradient-primary);
    color: white;
    border-color: transparent;
}

.chart-wrapper {
    position: relative;
    height: 280px;
    min-height: 200px;
    padding: 10px 10px 30px 10px; /* 라벨 공간 확보 */
}

/* 차트 컨테이너 크기 조정 */
.chart-wrapper canvas {
    max-width: 100% !important;
    height: 100% !important;
}

/* 큰 차트 (레이턴시 비교 등) */
.chart-wrapper.chart-large {
    height: 350px;
}

/* 작은 차트 (레이턴시 차이, 비트레이트 등) */
.chart-wrapper.chart-small {
    height: 220px;
}

/* 히스토리 차트 */
.chart-wrapper.chart-history {
    height: 320px;
}

/* ============================================
   8. Modern Channel Cards
   ============================================ */
.channel-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: var(--space-lg);
}

.channel-card-modern {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    overflow: hidden;
    transition: all var(--transition-normal);
    cursor: pointer;
    text-decoration: none;
    color: inherit;
}

.channel-card-modern:hover {
    border-color: var(--accent-purple);
    transform: translateY(-4px);
    box-shadow: var(--shadow-glow-purple);
}

.channel-card-header {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-lg);
    border-bottom: 1px solid var(--border-light);
}

.channel-avatar {
    width: 56px;
    height: 56px;
    border-radius: var(--radius-md);
    background: var(--gradient-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    font-weight: 700;
    color: white;
    flex-shrink: 0;
    overflow: hidden;
}

.channel-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.channel-info {
    flex: 1;
    min-width: 0;
}

.channel-name {
    font-size: 16px;
    font-weight: 700;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 4px;
}

.channel-status {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.live-indicator {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: var(--accent-green-soft);
    border-radius: var(--radius-full);
    font-size: 11px;
    font-weight: 700;
    color: var(--accent-green);
    text-transform: uppercase;
}

.live-indicator::before {
    content: '';
    width: 6px;
    height: 6px;
    background: var(--accent-green);
    border-radius: 50%;
    animation: live-pulse 1.5s ease-in-out infinite;
}

@keyframes live-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(1.2); }
}

.llhls-badge {
    padding: 4px 10px;
    background: var(--gradient-llhls);
    border-radius: var(--radius-full);
    font-size: 11px;
    font-weight: 700;
    color: white;
}

.channel-card-body {
    padding: var(--space-lg);
}

.channel-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-sm);
}

.channel-metric {
    text-align: center;
    padding: var(--space-sm);
    background: var(--bg-secondary);
    border-radius: var(--radius-sm);
}

.channel-metric-value {
    font-size: 16px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    margin-bottom: 2px;
}

.channel-metric-value.green { color: var(--accent-green); }
.channel-metric-value.orange { color: var(--accent-orange); }
.channel-metric-value.blue { color: var(--accent-blue); }

.channel-metric-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
}

/* ============================================
   9. Modern Navigation Sidebar
   ============================================ */
.nav-sidebar-modern {
    width: 220px;
    flex-shrink: 0;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    padding: var(--space-md);
    height: fit-content;
    position: sticky;
    top: var(--space-lg);
}

.nav-logo-modern {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    text-decoration: none;
    padding: var(--space-md);
    margin-bottom: var(--space-md);
    border-bottom: 1px solid var(--border-light);
}

.nav-logo-icon {
    width: 40px;
    height: 40px;
    background: var(--gradient-success);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-glow-green);
    transition: all var(--transition-fast);
}

.nav-logo-icon svg {
    color: white;
}

.nav-logo-modern:hover .nav-logo-icon {
    transform: scale(1.05);
}

.nav-logo-text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.nav-logo-title {
    font-size: 18px;
    font-weight: 800;
    background: var(--gradient-success);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.nav-logo-subtitle {
    font-size: 10px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.nav-menu-modern {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
}

.nav-item-modern {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: 12px 14px;
    border-radius: var(--radius-md);
    text-decoration: none;
    color: var(--text-secondary);
    font-size: 14px;
    font-weight: 600;
    transition: all var(--transition-fast);
}

.nav-item-modern:hover {
    background: var(--bg-card-hover);
    color: var(--text-primary);
}

.nav-item-modern.active {
    background: var(--gradient-primary);
    color: white;
    box-shadow: var(--shadow-glow-purple);
}

.nav-divider-modern {
    height: 1px;
    background: var(--border-light);
    margin: var(--space-md) 0;
}

/* ============================================
   10. Modern Status Badges
   ============================================ */
.status-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: var(--radius-full);
    font-size: 12px;
    font-weight: 600;
}

.status-badge.success {
    background: var(--accent-green-soft);
    color: var(--accent-green);
}

.status-badge.warning {
    background: var(--accent-orange-soft);
    color: var(--accent-orange);
}

.status-badge.error {
    background: var(--accent-red-soft);
    color: var(--accent-red);
}

.status-badge.info {
    background: var(--accent-blue-soft);
    color: var(--accent-blue);
}

.status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
}

.status-dot.animated {
    animation: status-pulse 2s ease-in-out infinite;
}

@keyframes status-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

/* ============================================
   11. Modern Buttons
   ============================================ */
.btn-modern {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    padding: 10px 20px;
    border-radius: var(--radius-md);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--transition-fast);
    border: none;
    text-decoration: none;
}

.btn-modern-primary {
    background: var(--gradient-primary);
    color: white;
}

.btn-modern-primary:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-glow-purple);
}

.btn-modern-secondary {
    background: var(--bg-secondary);
    color: var(--text-primary);
    border: 1px solid var(--border);
}

.btn-modern-secondary:hover {
    background: var(--bg-card-hover);
    border-color: var(--accent-purple);
}

.btn-modern-icon {
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: var(--radius-md);
}

/* ============================================
   12. Modern Header
   ============================================ */
.header-modern {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: var(--space-lg);
    margin-bottom: var(--space-lg);
    border-bottom: 1px solid var(--border-light);
}

.header-left {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
}

.page-title {
    font-size: 24px;
    font-weight: 800;
    color: var(--text-primary);
}

.page-title span {
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.header-right {
    display: flex;
    align-items: center;
    gap: var(--space-md);
}

.connection-status {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: 8px 16px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-full);
    font-size: 13px;
    font-weight: 500;
    color: var(--text-secondary);
}

.connection-status.connected {
    border-color: var(--accent-green);
}

.connection-status .status-dot {
    width: 8px;
    height: 8px;
}

.connection-status.connected .status-dot {
    background: var(--accent-green);
    box-shadow: 0 0 8px var(--accent-green);
    animation: status-pulse 2s ease-in-out infinite;
}

/* ============================================
   13. Modern Data Table
   ============================================ */
.data-table-modern {
    width: 100%;
    border-collapse: collapse;
}

.data-table-modern th {
    text-align: left;
    padding: var(--space-md);
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 1px solid var(--border);
}

.data-table-modern td {
    padding: var(--space-md);
    border-bottom: 1px solid var(--border-light);
    font-size: 14px;
    color: var(--text-primary);
}

.data-table-modern tr:hover td {
    background: var(--bg-secondary);
}

.data-table-modern .mono {
    font-family: var(--font-mono);
    font-size: 13px;
}

/* ============================================
   14. Empty State
   ============================================ */
.empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--space-2xl);
    text-align: center;
    color: var(--text-muted);
}

.empty-state-icon {
    width: 64px;
    height: 64px;
    margin-bottom: var(--space-lg);
    opacity: 0.5;
}

.empty-state-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: var(--space-sm);
}

.empty-state-description {
    font-size: 14px;
    max-width: 320px;
}

/* ============================================
   15. Animations
   ============================================ */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes slideInRight {
    from { opacity: 0; transform: translateX(20px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes scaleIn {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes shimmer {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

.animate-fadeIn { animation: fadeIn var(--transition-normal) ease-out; }
.animate-fadeInUp { animation: fadeInUp var(--transition-normal) ease-out; }
.animate-slideInRight { animation: slideInRight var(--transition-normal) ease-out; }
.animate-scaleIn { animation: scaleIn var(--transition-normal) ease-out; }

/* Stagger animations */
.stagger-1 { animation-delay: 0.05s; }
.stagger-2 { animation-delay: 0.1s; }
.stagger-3 { animation-delay: 0.15s; }
.stagger-4 { animation-delay: 0.2s; }
.stagger-5 { animation-delay: 0.25s; }
.stagger-6 { animation-delay: 0.3s; }

/* Loading skeleton */
.skeleton {
    background: linear-gradient(90deg, 
        var(--bg-card) 25%, 
        var(--bg-card-hover) 50%, 
        var(--bg-card) 75%
    );
    background-size: 200% 100%;
    animation: shimmer 1.5s infinite;
    border-radius: var(--radius-sm);
}

/* Value update animations */
.value-updating {
    animation: valueUpdate 0.3s ease-out;
}

@keyframes valueUpdate {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

.value-increased {
    color: var(--accent-green) !important;
    animation: glowGreen 0.5s ease-out;
}

.value-decreased {
    color: var(--accent-red) !important;
    animation: glowRed 0.5s ease-out;
}

@keyframes glowGreen {
    0%, 100% { text-shadow: none; }
    50% { text-shadow: 0 0 10px var(--accent-green-glow); }
}

@keyframes glowRed {
    0%, 100% { text-shadow: none; }
    50% { text-shadow: 0 0 10px var(--accent-red-glow); }
}

/* ============================================
   16. Responsive Design
   ============================================ */
@media (max-width: 1280px) {
    .stats-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .channel-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 1024px) {
    .app-layout {
        flex-direction: column;
    }
    
    .nav-sidebar-modern {
        width: 100%;
        position: relative;
        top: 0;
    }
    
    .nav-menu-modern {
        flex-direction: row;
        flex-wrap: wrap;
        gap: var(--space-sm);
    }
    
    .nav-divider-modern {
        display: none;
    }
}

@media (max-width: 768px) {
    .app-container {
        padding: var(--space-md);
    }
    
    .stats-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .channel-grid {
        grid-template-columns: 1fr;
    }
    
    .metric-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .header-modern {
        flex-direction: column;
        gap: var(--space-md);
        align-items: flex-start;
    }
}

@media (max-width: 480px) {
    .stats-grid {
        grid-template-columns: 1fr;
    }
    
    .stat-value-modern {
        font-size: 24px;
    }
}

/* ============================================
   17. Utility Classes
   ============================================ */
.text-green { color: var(--accent-green); }
.text-purple { color: var(--accent-purple); }
.text-blue { color: var(--accent-blue); }
.text-orange { color: var(--accent-orange); }
.text-pink { color: var(--accent-pink); }
.text-cyan { color: var(--accent-cyan); }
.text-red { color: var(--accent-red); }
.text-muted { color: var(--text-muted); }
.text-secondary { color: var(--text-secondary); }

.bg-green { background: var(--accent-green-soft); }
.bg-purple { background: var(--accent-purple-soft); }
.bg-blue { background: var(--accent-blue-soft); }
.bg-orange { background: var(--accent-orange-soft); }
.bg-pink { background: var(--accent-pink-soft); }
.bg-cyan { background: var(--accent-cyan-soft); }

.font-mono { font-family: var(--font-mono); }
.font-tabular { font-variant-numeric: tabular-nums; }

.flex { display: flex; }
.flex-col { flex-direction: column; }
.items-center { align-items: center; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.gap-xs { gap: var(--space-xs); }
.gap-sm { gap: var(--space-sm); }
.gap-md { gap: var(--space-md); }
.gap-lg { gap: var(--space-lg); }

.rounded-full { border-radius: var(--radius-full); }
.rounded-lg { border-radius: var(--radius-lg); }
.rounded-md { border-radius: var(--radius-md); }

.hidden { display: none !important; }
.visible { visibility: visible; }
.invisible { visibility: hidden; }

/* ============================================
   18. OVERRIDE STYLES (인라인 스타일 우선 적용)
   기존 클래스에 새 디자인 강제 적용
   ============================================ */

/* 🎨 배경 및 카드 현대화 */
body {
    background: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-secondary) 100%) !important;
    background-attachment: fixed !important;
}

.container {
    max-width: 1920px !important;
}

/* 🌟 네비게이션 사이드바 현대화 */
.nav-sidebar {
    background: linear-gradient(180deg, rgba(22, 22, 31, 0.95) 0%, rgba(18, 18, 26, 0.98) 100%) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: 20px !important;
    box-shadow: 
        0 8px 32px rgba(0, 0, 0, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
}

.nav-sidebar-logo .logo-icon {
    background: linear-gradient(135deg, #00e676 0%, #00bcd4 100%) !important;
    border-radius: 12px !important;
    box-shadow: 0 6px 20px rgba(0, 230, 118, 0.35) !important;
}

.nav-menu-item {
    border-radius: 12px !important;
    font-weight: 500 !important;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.nav-menu-item:hover {
    background: rgba(139, 92, 246, 0.15) !important;
    color: var(--accent-purple) !important;
    transform: translateX(4px) !important;
}

.nav-menu-item.active {
    background: linear-gradient(135deg, #8b5cf6 0%, #3b82f6 100%) !important;
    color: white !important;
    box-shadow: 0 4px 16px rgba(139, 92, 246, 0.4) !important;
}

/* 🎯 메인 헤더 현대화 */
.header {
    background: linear-gradient(180deg, rgba(22, 22, 31, 0.9) 0%, rgba(22, 22, 31, 0.7) 100%) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    border-radius: 16px !important;
    padding: 16px 24px !important;
    margin-bottom: 28px !important;
    border: 1px solid rgba(255, 255, 255, 0.06) !important;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2) !important;
}

.logo {
    font-size: 26px !important;
    font-weight: 800 !important;
    background: linear-gradient(135deg, #00e676 0%, #00bcd4 50%, #8b5cf6 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    letter-spacing: -0.5px !important;
}

.status {
    background: rgba(22, 22, 31, 0.8) !important;
    backdrop-filter: blur(12px) !important;
    border-radius: 20px !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    padding: 10px 18px !important;
    font-weight: 500 !important;
}

.status-dot.connected {
    background: radial-gradient(circle, #00e676 40%, #00c853 100%) !important;
    box-shadow: 0 0 12px rgba(0, 230, 118, 0.6), 0 0 24px rgba(0, 230, 118, 0.3) !important;
}

/* 🔄 새로고침 버튼 현대화 */
.refresh-btn {
    width: 44px !important;
    height: 44px !important;
    background: linear-gradient(135deg, rgba(139, 92, 246, 0.15) 0%, rgba(59, 130, 246, 0.15) 100%) !important;
    border: 1px solid rgba(139, 92, 246, 0.3) !important;
    border-radius: 12px !important;
    color: var(--accent-purple) !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.refresh-btn:hover {
    background: linear-gradient(135deg, #8b5cf6 0%, #3b82f6 100%) !important;
    color: white !important;
    transform: rotate(180deg) !important;
    box-shadow: 0 6px 20px rgba(139, 92, 246, 0.4) !important;
}

/* 📊 Stats Grid 현대화 */
.stats-grid {
    gap: 20px !important;
    margin-bottom: 28px !important;
}

.stat-card {
    background: linear-gradient(135deg, rgba(22, 22, 31, 0.9) 0%, rgba(26, 26, 37, 0.95) 100%) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    border: 1px solid rgba(255, 255, 255, 0.06) !important;
    border-radius: 20px !important;
    padding: 24px !important;
    position: relative !important;
    overflow: hidden !important;
    transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15) !important;
}

.stat-card::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 3px !important;
    background: linear-gradient(90deg, var(--accent-purple), var(--accent-cyan)) !important;
    opacity: 0 !important;
    transition: opacity 0.3s ease !important;
}

.stat-card:hover::before {
    opacity: 1 !important;
}

.stat-card:hover {
    transform: translateY(-4px) !important;
    border-color: rgba(139, 92, 246, 0.3) !important;
    box-shadow: 
        0 12px 40px rgba(0, 0, 0, 0.25),
        0 0 40px rgba(139, 92, 246, 0.1) !important;
}

.stat-header {
    margin-bottom: 16px !important;
}

.stat-icon {
    width: 48px !important;
    height: 48px !important;
    border-radius: 14px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.stat-icon.purple {
    background: linear-gradient(135deg, rgba(139, 92, 246, 0.2) 0%, rgba(139, 92, 246, 0.1) 100%) !important;
    color: #a78bfa !important;
}

.stat-icon.blue {
    background: linear-gradient(135deg, rgba(59, 130, 246, 0.2) 0%, rgba(59, 130, 246, 0.1) 100%) !important;
    color: #60a5fa !important;
}

.stat-icon.green {
    background: linear-gradient(135deg, rgba(0, 230, 118, 0.2) 0%, rgba(0, 230, 118, 0.1) 100%) !important;
    color: #00e676 !important;
}

.stat-icon.orange {
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.2) 0%, rgba(245, 158, 11, 0.1) 100%) !important;
    color: #fbbf24 !important;
}

.stat-icon.cyan {
    background: linear-gradient(135deg, rgba(6, 182, 212, 0.2) 0%, rgba(6, 182, 212, 0.1) 100%) !important;
    color: #22d3ee !important;
}

.stat-icon.pink {
    background: linear-gradient(135deg, rgba(236, 72, 153, 0.2) 0%, rgba(236, 72, 153, 0.1) 100%) !important;
    color: #f472b6 !important;
}

.stat-value {
    font-size: 36px !important;
    font-weight: 800 !important;
    font-family: 'JetBrains Mono', 'SF Mono', monospace !important;
    font-variant-numeric: tabular-nums !important;
    letter-spacing: -1px !important;
    line-height: 1.1 !important;
    background: linear-gradient(180deg, var(--text-primary) 0%, rgba(255, 255, 255, 0.8) 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
}

.stat-label {
    font-size: 13px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    color: var(--text-muted) !important;
}

.stat-meta {
    margin-top: 12px !important;
    font-size: 13px !important;
    color: var(--text-secondary) !important;
    padding-top: 12px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.05) !important;
}

/* 📺 채널 카드 현대화 */
.channel-grid {
    gap: 24px !important;
}

.channel-card {
    background: linear-gradient(145deg, rgba(22, 22, 31, 0.95) 0%, rgba(26, 26, 37, 0.98) 100%) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
    border: 1px solid rgba(255, 255, 255, 0.06) !important;
    border-radius: 24px !important;
    padding: 24px !important;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
    position: relative !important;
    overflow: hidden !important;
}

.channel-card::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 4px !important;
    background: linear-gradient(90deg, #00e676 0%, #00bcd4 50%, #8b5cf6 100%) !important;
    opacity: 0 !important;
    transition: opacity 0.3s ease !important;
}

.channel-card:hover {
    transform: translateY(-6px) scale(1.01) !important;
    border-color: rgba(0, 230, 118, 0.3) !important;
    box-shadow: 
        0 20px 60px rgba(0, 0, 0, 0.3),
        0 0 60px rgba(0, 230, 118, 0.08) !important;
}

.channel-card:hover::before {
    opacity: 1 !important;
}

.channel-card-header {
    display: flex !important;
    gap: 16px !important;
    margin-bottom: 20px !important;
}

.channel-avatar {
    width: 72px !important;
    height: 72px !important;
    border-radius: 18px !important;
    object-fit: cover !important;
    border: 3px solid rgba(0, 230, 118, 0.25) !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2) !important;
    transition: all 0.3s ease !important;
}

.channel-card:hover .channel-avatar {
    transform: scale(1.05) !important;
    border-color: rgba(0, 230, 118, 0.5) !important;
    box-shadow: 0 8px 24px rgba(0, 230, 118, 0.2) !important;
}

.channel-info h3 {
    font-size: 20px !important;
    font-weight: 700 !important;
    margin-bottom: 8px !important;
    background: linear-gradient(135deg, #ffffff 0%, rgba(255, 255, 255, 0.85) 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
}

.live-badge {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 6px 14px !important;
    border-radius: 20px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}

.live-badge.live {
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.2) 0%, rgba(239, 68, 68, 0.1) 100%) !important;
    color: #f87171 !important;
    border: 1px solid rgba(239, 68, 68, 0.3) !important;
    box-shadow: 0 0 20px rgba(239, 68, 68, 0.2) !important;
}

.live-badge.live::before {
    content: '' !important;
    width: 8px !important;
    height: 8px !important;
    border-radius: 50% !important;
    background: #ef4444 !important;
    animation: livePulse 1.5s ease-in-out infinite !important;
    box-shadow: 0 0 8px #ef4444 !important;
}

@keyframes livePulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.6; transform: scale(1.2); }
}

/* 📈 메트릭 그리드 현대화 */
.metrics-grid, .metric-row {
    display: grid !important;
    gap: 16px !important;
    margin-top: 16px !important;
}

.metric-box {
    background: linear-gradient(135deg, rgba(30, 30, 42, 0.6) 0%, rgba(22, 22, 31, 0.8) 100%) !important;
    border: 1px solid rgba(255, 255, 255, 0.05) !important;
    border-radius: 16px !important;
    padding: 16px 20px !important;
    transition: all 0.3s ease !important;
}

.metric-box:hover {
    background: rgba(30, 30, 42, 0.8) !important;
    border-color: rgba(139, 92, 246, 0.2) !important;
    transform: translateY(-2px) !important;
}

.metric-label {
    font-size: 12px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    color: var(--text-muted) !important;
    margin-bottom: 8px !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.metric-value {
    font-size: 24px !important;
    font-weight: 700 !important;
    font-family: 'JetBrains Mono', 'SF Mono', monospace !important;
    font-variant-numeric: tabular-nums !important;
    color: var(--text-primary) !important;
}

/* 🎨 LL-HLS 섹션 현대화 */
.llhls-section, .llhls-data {
    background: linear-gradient(135deg, 
        rgba(245, 158, 11, 0.08) 0%, 
        rgba(236, 72, 153, 0.08) 50%,
        rgba(139, 92, 246, 0.08) 100%) !important;
    border: 1px solid rgba(245, 158, 11, 0.2) !important;
    border-radius: 20px !important;
    padding: 20px !important;
    margin-top: 20px !important;
    position: relative !important;
    overflow: hidden !important;
}

.llhls-section::before, .llhls-data::before {
    content: 'LL-HLS' !important;
    position: absolute !important;
    top: 12px !important;
    right: 16px !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 1px !important;
    padding: 4px 10px !important;
    border-radius: 6px !important;
    background: linear-gradient(135deg, #f59e0b 0%, #ec4899 100%) !important;
    color: white !important;
}

.llhls-title {
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #fbbf24 !important;
    margin-bottom: 16px !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.llhls-metrics {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)) !important;
    gap: 12px !important;
}

.llhls-metric {
    background: rgba(22, 22, 31, 0.6) !important;
    border-radius: 12px !important;
    padding: 12px 16px !important;
    border: 1px solid rgba(255, 255, 255, 0.04) !important;
}

.llhls-metric .metric-label {
    color: #fbbf24 !important;
}

/* 🔘 버튼 현대화 */
.btn, button:not(.refresh-btn):not(.theme-toggle) {
    border-radius: 12px !important;
    font-weight: 600 !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.btn-primary {
    background: linear-gradient(135deg, #8b5cf6 0%, #3b82f6 100%) !important;
    border: none !important;
    color: white !important;
    padding: 12px 24px !important;
    box-shadow: 0 4px 16px rgba(139, 92, 246, 0.3) !important;
}

.btn-primary:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(139, 92, 246, 0.4) !important;
}

.btn-secondary {
    background: rgba(22, 22, 31, 0.8) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    color: var(--text-secondary) !important;
}

.btn-secondary:hover {
    background: rgba(30, 30, 42, 0.9) !important;
    color: var(--text-primary) !important;
}

/* 🌓 테마 토글 현대화 */
.theme-toggle {
    width: 44px !important;
    height: 44px !important;
    border-radius: 12px !important;
    background: rgba(22, 22, 31, 0.8) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    color: var(--text-secondary) !important;
    transition: all 0.3s ease !important;
}

.theme-toggle:hover {
    background: rgba(245, 158, 11, 0.15) !important;
    color: #fbbf24 !important;
    border-color: rgba(245, 158, 11, 0.3) !important;
}

/* 📊 차트 컨테이너 - 히스토리 섹션과 동일한 심플 스타일 */
.chart-container, .chart-section {
    background: var(--bg-card) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius, 16px) !important;
    padding: 16px !important;
    box-shadow: var(--shadow-sm, 0 2px 8px rgba(0, 0, 0, 0.1)) !important;
    position: relative !important;
    height: 280px !important;
    min-height: 240px !important;
    width: 100% !important;
    overflow: hidden !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.chart-container::before, .chart-section::before {
    display: none !important;
}

.chart-container:hover, .chart-section:hover {
    border-color: var(--border-accent, rgba(139, 92, 246, 0.25)) !important;
    box-shadow: var(--shadow-md, 0 8px 24px rgba(0, 0, 0, 0.15)) !important;
    transform: translateY(-1px) !important;
}

/* 큰 차트 컨테이너 */
.chart-container.large {
    height: 340px !important;
    min-height: 300px !important;
}

/* 작은 차트 컨테이너 */
.chart-container.small {
    height: 220px !important;
    min-height: 180px !important;
}

/* 차트 캔버스 크기 자동 조정 */
.chart-container canvas,
.chart-section canvas {
    width: 100% !important;
    height: calc(100% - 8px) !important;
    max-height: 100% !important;
    display: block !important;
    border-radius: 12px !important;
}

/* 차트 카드 스타일 - 히스토리 섹션과 동일한 심플 스타일 */
.chart-card {
    background: var(--bg-card);
    background-color: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg, 16px);
    padding: 20px;
    box-shadow: var(--shadow-sm, 0 2px 8px rgba(0, 0, 0, 0.1));
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.chart-card::before {
    display: none;
}

.chart-card:hover {
    border-color: var(--border-accent, rgba(139, 92, 246, 0.25));
    transform: translateY(-2px);
    box-shadow: var(--shadow-md, 0 8px 24px rgba(0, 0, 0, 0.15));
}

.chart-card .chart-header {
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.chart-card .chart-header h3,
.chart-card .chart-header .chart-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary, rgba(255, 255, 255, 0.9));
    letter-spacing: -0.01em;
    display: flex;
    align-items: center;
    gap: 8px;
}

.chart-card.full-width {
    grid-column: 1 / -1;
}

/* 차트 그리드 레이아웃 - 반응형 */
.charts-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

@media (max-width: 1200px) {
    .charts-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

/* 차트 범례 모던 스타일 */
.chart-legend {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.chart-legend-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.7);
    font-weight: 500;
}

.chart-legend-color,
.chart-legend-dot {
    width: 12px;
    height: 12px;
    border-radius: 4px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
    flex-shrink: 0;
}

.chart-legend-name {
    color: rgba(255, 255, 255, 0.8);
    font-size: 12px;
    font-weight: 500;
}

.chart-legend-value {
    color: rgba(255, 255, 255, 0.6);
    font-size: 11px;
    font-family: 'JetBrains Mono', monospace;
    margin-left: auto;
}

/* 차트 값 표시 배지 */
.chart-value-badge {
    background: linear-gradient(135deg, rgba(139, 92, 246, 0.2) 0%, rgba(139, 92, 246, 0.1) 100%);
    border: 1px solid rgba(139, 92, 246, 0.3);
    border-radius: 10px;
    padding: 6px 12px;
    font-size: 13px;
    font-weight: 600;
    color: #a78bfa;
    font-family: 'JetBrains Mono', monospace;
}

/* 🎯 채널 페이지 섹션 현대화 */
.section, .card-section {
    background: linear-gradient(135deg, rgba(22, 22, 31, 0.95) 0%, rgba(26, 26, 37, 0.98) 100%);
    backdrop-filter: blur(16px) !important;
    border: 1px solid rgba(255, 255, 255, 0.06) !important;
    border-radius: 20px !important;
    padding: 24px !important;
    margin-bottom: 24px !important;
}

.section-title, .section-header h2 {
    font-size: 18px !important;
    font-weight: 700 !important;
    margin-bottom: 20px !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    color: var(--text-primary) !important;
}

/* 🔍 검색 및 입력 현대화 */
input[type="text"], input[type="search"], select {
    background: rgba(22, 22, 31, 0.8) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 12px !important;
    padding: 12px 16px !important;
    color: var(--text-primary) !important;
    font-size: 14px !important;
    transition: all 0.3s ease !important;
}

input[type="text"]:focus, input[type="search"]:focus, select:focus {
    outline: none !important;
    border-color: rgba(139, 92, 246, 0.5) !important;
    box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.15) !important;
}

/* 📋 테이블 현대화 */
table {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 8px !important;
}

th {
    font-size: 12px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8px !important;
    color: var(--text-muted) !important;
    padding: 12px 16px !important;
    text-align: left !important;
}

td {
    background: rgba(22, 22, 31, 0.6) !important;
    padding: 16px !important;
    border: none !important;
}

tr td:first-child {
    border-radius: 12px 0 0 12px !important;
}

tr td:last-child {
    border-radius: 0 12px 12px 0 !important;
}

tr:hover td {
    background: rgba(30, 30, 42, 0.8) !important;
}

/* 💫 스크롤바 현대화 */
::-webkit-scrollbar {
    width: 10px !important;
    height: 10px !important;
}

::-webkit-scrollbar-track {
    background: rgba(22, 22, 31, 0.5) !important;
    border-radius: 5px !important;
}

::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, rgba(139, 92, 246, 0.4) 0%, rgba(59, 130, 246, 0.4) 100%) !important;
    border-radius: 5px !important;
    border: 2px solid transparent !important;
    background-clip: padding-box !important;
}

::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, rgba(139, 92, 246, 0.6) 0%, rgba(59, 130, 246, 0.6) 100%) !important;
}

/* ✨ 추가 호버 효과 */
a:hover {
    color: var(--accent-purple) !important;
}

/* 🔧 유틸리티 - 모든 카드에 유리 효과 */
.glass-effect {
    background: linear-gradient(135deg, rgba(22, 22, 31, 0.8) 0%, rgba(26, 26, 37, 0.9) 100%) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
}

/* ============================================
   🎨 라이트 테마 완전 오버라이드
   모든 다크 색상을 라이트 색상으로 강제 변환
   ============================================ */

/* 기본 배경 및 텍스트 */
html[data-theme="light"],
.theme-light,
html[data-theme="light"] *,
.theme-light * {
    --bg-primary: #f5f7fa !important;
    --bg-secondary: #ffffff !important;
    --bg-card: #ffffff !important;
    --bg-card-hover: #f0f2f5 !important;
    --bg-elevated: #ffffff !important;
    --bg-glass: rgba(255, 255, 255, 0.85) !important;
    --border: rgba(0, 0, 0, 0.08) !important;
    --border-light: rgba(0, 0, 0, 0.05) !important;
    --text-primary: #1a1a2e !important;
    --text-secondary: #5a5a7a !important;
    --text-muted: #8a8aa0 !important;
}

html[data-theme="light"] body,
.theme-light body {
    background: linear-gradient(180deg, #f5f7fa 0%, #e8ecf2 100%) !important;
    color: #1a1a2e !important;
}

html[data-theme="light"] html,
.theme-light html {
    background-color: #f5f7fa !important;
}

/* 네비게이션 사이드바 */
html[data-theme="light"] .nav-sidebar,
.theme-light .nav-sidebar {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.98) 100%) !important;
    border-color: rgba(0, 0, 0, 0.08) !important;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06) !important;
}

html[data-theme="light"] .nav-menu-item,
html.theme-light .nav-menu-item,
body.theme-light .nav-menu-item,
[data-theme="light"] .nav-menu-item,
.theme-light .nav-menu-item {
    color: #5a5a7a !important;
}

html[data-theme="light"] .nav-menu-item:hover,
html.theme-light .nav-menu-item:hover,
body.theme-light .nav-menu-item:hover,
[data-theme="light"] .nav-menu-item:hover,
.theme-light .nav-menu-item:hover {
    background: rgba(139, 92, 246, 0.1) !important;
    color: #7c3aed !important;
}

html[data-theme="light"] .nav-menu-item.active,
html.theme-light .nav-menu-item.active,
body.theme-light .nav-menu-item.active,
[data-theme="light"] .nav-menu-item.active,
.theme-light .nav-menu-item.active {
    background: linear-gradient(135deg, #8b5cf6 0%, #3b82f6 100%) !important;
    color: white !important;
}

html[data-theme="light"] .nav-sidebar-logo .logo-title,
html.theme-light .nav-sidebar-logo .logo-title,
body.theme-light .nav-sidebar-logo .logo-title,
[data-theme="light"] .nav-sidebar-logo .logo-title,
.theme-light .nav-sidebar-logo .logo-title {
    background: linear-gradient(135deg, #00c853, #00838f) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
}

/* 헤더 - 모든 브라우저 통일 */
html[data-theme="light"] .header,
html.theme-light .header,
body.theme-light .header,
[data-theme="light"] .header,
.theme-light .header {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.85) 100%) !important;
    border-color: rgba(0, 0, 0, 0.06) !important;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04) !important;
}

html[data-theme="light"] .logo,
html.theme-light .logo,
body.theme-light .logo,
[data-theme="light"] .logo,
.theme-light .logo {
    background: linear-gradient(135deg, #00c853 0%, #00838f 50%, #7c3aed 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
}

html[data-theme="light"] .status,
html.theme-light .status,
body.theme-light .status,
[data-theme="light"] .status,
.theme-light .status {
    background: rgba(255, 255, 255, 0.9) !important;
    border-color: rgba(0, 0, 0, 0.08) !important;
    color: #5a5a7a !important;
}

/* Stat 카드 - 모든 브라우저 통일 */
html[data-theme="light"] .stat-card,
html.theme-light .stat-card,
body.theme-light .stat-card,
[data-theme="light"] .stat-card,
.theme-light .stat-card {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(248, 250, 252, 0.98) 100%) !important;
    border-color: rgba(0, 0, 0, 0.06) !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04) !important;
}

html[data-theme="light"] .stat-card:hover,
html.theme-light .stat-card:hover,
body.theme-light .stat-card:hover,
[data-theme="light"] .stat-card:hover,
.theme-light .stat-card:hover {
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08) !important;
    border-color: rgba(139, 92, 246, 0.2) !important;
}

html[data-theme="light"] .stat-value,
html.theme-light .stat-value,
body.theme-light .stat-value,
[data-theme="light"] .stat-value,
.theme-light .stat-value {
    background: linear-gradient(180deg, #1a1a2e 0%, #3a3a5e 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
}

html[data-theme="light"] .stat-label,
html.theme-light .stat-label,
body.theme-light .stat-label,
[data-theme="light"] .stat-label,
.theme-light .stat-label {
    color: #6b6b80 !important;
}

html[data-theme="light"] .stat-meta,
html.theme-light .stat-meta,
body.theme-light .stat-meta,
[data-theme="light"] .stat-meta,
.theme-light .stat-meta {
    color: #8a8aa0 !important;
    border-top-color: rgba(0, 0, 0, 0.05) !important;
}

/* 채널 카드 - 모든 브라우저 통일 */
html[data-theme="light"] .channel-card,
html.theme-light .channel-card,
body.theme-light .channel-card,
[data-theme="light"] .channel-card,
.theme-light .channel-card {
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.98) 100%) !important;
    border-color: rgba(0, 0, 0, 0.06) !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04) !important;
}

html[data-theme="light"] .channel-card:hover,
html.theme-light .channel-card:hover,
body.theme-light .channel-card:hover,
[data-theme="light"] .channel-card:hover,
.theme-light .channel-card:hover {
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08) !important;
    border-color: rgba(0, 200, 83, 0.3) !important;
}

html[data-theme="light"] .channel-info h3,
html.theme-light .channel-info h3,
body.theme-light .channel-info h3,
[data-theme="light"] .channel-info h3,
.theme-light .channel-info h3 {
    background: linear-gradient(135deg, #1a1a2e 0%, #3a3a5e 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
}

html[data-theme="light"] .channel-avatar,
html.theme-light .channel-avatar,
body.theme-light .channel-avatar,
[data-theme="light"] .channel-avatar,
.theme-light .channel-avatar {
    border-color: rgba(0, 200, 83, 0.3) !important;
}

/* 메트릭 박스 - 모든 브라우저 통일 */
html[data-theme="light"] .metric-box,
html.theme-light .metric-box,
body.theme-light .metric-box,
[data-theme="light"] .metric-box,
.theme-light .metric-box {
    background: rgba(248, 250, 252, 0.9) !important;
    border-color: rgba(0, 0, 0, 0.04) !important;
}

html[data-theme="light"] .metric-box:hover,
html.theme-light .metric-box:hover,
body.theme-light .metric-box:hover,
[data-theme="light"] .metric-box:hover,
.theme-light .metric-box:hover {
    background: rgba(255, 255, 255, 1) !important;
    border-color: rgba(139, 92, 246, 0.15) !important;
}

html[data-theme="light"] .metric-label,
html.theme-light .metric-label,
body.theme-light .metric-label,
[data-theme="light"] .metric-label,
.theme-light .metric-label {
    color: #6b6b80 !important;
}

html[data-theme="light"] .metric-value,
html.theme-light .metric-value,
body.theme-light .metric-value,
[data-theme="light"] .metric-value,
.theme-light .metric-value {
    color: #1a1a2e !important;
}

/* LL-HLS 섹션 - 모든 브라우저 통일 */
html[data-theme="light"] .llhls-section,
html[data-theme="light"] .llhls-data,
html.theme-light .llhls-section,
html.theme-light .llhls-data,
body.theme-light .llhls-section,
body.theme-light .llhls-data,
[data-theme="light"] .llhls-section,
[data-theme="light"] .llhls-data,
.theme-light .llhls-section,
.theme-light .llhls-data {
    background: linear-gradient(135deg, 
        rgba(245, 158, 11, 0.08) 0%, 
        rgba(236, 72, 153, 0.06) 50%,
        rgba(139, 92, 246, 0.06) 100%) !important;
    border-color: rgba(245, 158, 11, 0.15) !important;
}

html[data-theme="light"] .llhls-metric,
html.theme-light .llhls-metric,
body.theme-light .llhls-metric,
[data-theme="light"] .llhls-metric,
.theme-light .llhls-metric {
    background: rgba(255, 255, 255, 0.8) !important;
}

/* 섹션 및 카드 - 모든 브라우저 통일 */
html[data-theme="light"] .section,
html[data-theme="light"] .card-section,
html.theme-light .section,
html.theme-light .card-section,
body.theme-light .section,
body.theme-light .card-section,
[data-theme="light"] .section,
[data-theme="light"] .card-section,
.theme-light .section,
.theme-light .card-section {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.98) 100%) !important;
    border-color: rgba(0, 0, 0, 0.06) !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04) !important;
}

html[data-theme="light"] .section-title,
html[data-theme="light"] .section-header h2,
html.theme-light .section-title,
html.theme-light .section-header h2,
body.theme-light .section-title,
body.theme-light .section-header h2,
[data-theme="light"] .section-title,
[data-theme="light"] .section-header h2,
.theme-light .section-title,
.theme-light .section-header h2 {
    color: #1a1a2e !important;
}

/* 차트 컨테이너 - 라이트 테마 (모든 브라우저 통일) */
html[data-theme="light"] .chart-container,
html[data-theme="light"] .chart-section,
html[data-theme="light"] .chart-card,
html.theme-light .chart-container,
html.theme-light .chart-section,
html.theme-light .chart-card,
body.theme-light .chart-container,
body.theme-light .chart-section,
body.theme-light .chart-card,
[data-theme="light"] .chart-container,
[data-theme="light"] .chart-section,
[data-theme="light"] .chart-card {
    background: #ffffff !important;
    border-color: rgba(0, 0, 0, 0.1) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
}

/* 차트 헤더 타이틀 - 라이트 테마 (모든 브라우저 통일) */
html[data-theme="light"] .chart-card .chart-header h3,
html[data-theme="light"] .chart-card .chart-header .chart-title,
html[data-theme="light"] .chart-header h3,
html[data-theme="light"] .chart-header .chart-title,
html.theme-light .chart-card .chart-header h3,
html.theme-light .chart-card .chart-header .chart-title,
html.theme-light .chart-header h3,
html.theme-light .chart-header .chart-title,
body.theme-light .chart-card .chart-header h3,
body.theme-light .chart-card .chart-header .chart-title,
body.theme-light .chart-header h3,
body.theme-light .chart-header .chart-title,
[data-theme="light"] .chart-header h3,
[data-theme="light"] .chart-header .chart-title {
    color: #1a1a2e !important;
}

/* 입력 필드 - 모든 브라우저 통일 */
html[data-theme="light"] input[type="text"],
html[data-theme="light"] input[type="search"],
html[data-theme="light"] select,
html.theme-light input[type="text"],
html.theme-light input[type="search"],
html.theme-light select,
body.theme-light input[type="text"],
body.theme-light input[type="search"],
body.theme-light select,
[data-theme="light"] input[type="text"],
[data-theme="light"] input[type="search"],
[data-theme="light"] select,
.theme-light input[type="text"],
.theme-light input[type="search"],
.theme-light select {
    background: rgba(255, 255, 255, 0.95) !important;
    border-color: rgba(0, 0, 0, 0.1) !important;
    color: #1a1a2e !important;
}

html[data-theme="light"] input[type="text"]::placeholder,
html[data-theme="light"] input[type="search"]::placeholder,
html.theme-light input[type="text"]::placeholder,
html.theme-light input[type="search"]::placeholder,
body.theme-light input[type="text"]::placeholder,
body.theme-light input[type="search"]::placeholder,
[data-theme="light"] input[type="text"]::placeholder,
[data-theme="light"] input[type="search"]::placeholder,
.theme-light input[type="text"]::placeholder,
.theme-light input[type="search"]::placeholder {
    color: #8a8aa0 !important;
}

/* 버튼 - 모든 브라우저 통일 */
html[data-theme="light"] .refresh-btn,
html.theme-light .refresh-btn,
body.theme-light .refresh-btn,
[data-theme="light"] .refresh-btn,
.theme-light .refresh-btn {
    background: linear-gradient(135deg, rgba(139, 92, 246, 0.1) 0%, rgba(59, 130, 246, 0.1) 100%) !important;
    border-color: rgba(139, 92, 246, 0.2) !important;
    color: #7c3aed !important;
}

html[data-theme="light"] .refresh-btn:hover,
html.theme-light .refresh-btn:hover,
body.theme-light .refresh-btn:hover,
[data-theme="light"] .refresh-btn:hover,
.theme-light .refresh-btn:hover {
    background: linear-gradient(135deg, #8b5cf6 0%, #3b82f6 100%) !important;
    color: white !important;
}

html[data-theme="light"] .theme-toggle,
html.theme-light .theme-toggle,
body.theme-light .theme-toggle,
[data-theme="light"] .theme-toggle,
.theme-light .theme-toggle {
    background: rgba(255, 255, 255, 0.9) !important;
    border-color: rgba(0, 0, 0, 0.08) !important;
    color: #5a5a7a !important;
}

html[data-theme="light"] .btn-secondary,
html.theme-light .btn-secondary,
body.theme-light .btn-secondary,
[data-theme="light"] .btn-secondary,
.theme-light .btn-secondary {
    background: rgba(255, 255, 255, 0.9) !important;
    border-color: rgba(0, 0, 0, 0.1) !important;
    color: #5a5a7a !important;
}

/* 테이블 - 모든 브라우저 통일 */
html[data-theme="light"] th,
html.theme-light th,
body.theme-light th,
[data-theme="light"] th,
.theme-light th {
    color: #6b6b80 !important;
}

html[data-theme="light"] td,
html.theme-light td,
body.theme-light td,
[data-theme="light"] td,
.theme-light td {
    background: rgba(248, 250, 252, 0.8) !important;
    color: #1a1a2e !important;
}

html[data-theme="light"] tr:hover td,
html.theme-light tr:hover td,
body.theme-light tr:hover td,
[data-theme="light"] tr:hover td,
.theme-light tr:hover td {
    background: rgba(255, 255, 255, 1) !important;
}

/* 로그인 버튼 - 모든 브라우저 통일 */
html[data-theme="light"] .login-btn-primary,
html.theme-light .login-btn-primary,
body.theme-light .login-btn-primary,
[data-theme="light"] .login-btn-primary,
.theme-light .login-btn-primary {
    color: #ffffff !important;
}

/* 스크롤바 - 모든 브라우저 통일 */
html[data-theme="light"] ::-webkit-scrollbar-track,
html.theme-light ::-webkit-scrollbar-track,
body.theme-light ::-webkit-scrollbar-track,
[data-theme="light"] ::-webkit-scrollbar-track,
.theme-light ::-webkit-scrollbar-track {
    background: rgba(248, 250, 252, 0.8) !important;
}

html[data-theme="light"] ::-webkit-scrollbar-thumb,
html.theme-light ::-webkit-scrollbar-thumb,
body.theme-light ::-webkit-scrollbar-thumb,
[data-theme="light"] ::-webkit-scrollbar-thumb,
.theme-light ::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, rgba(139, 92, 246, 0.3) 0%, rgba(59, 130, 246, 0.3) 100%) !important;
}

/* 아이콘 색상 - 모든 브라우저 통일 */
html[data-theme="light"] .stat-icon,
html.theme-light .stat-icon,
body.theme-light .stat-icon,
[data-theme="light"] .stat-icon,
.theme-light .stat-icon {
    opacity: 0.9 !important;
}

/* Nav Divider - 모든 브라우저 통일 */
html[data-theme="light"] .nav-divider,
html.theme-light .nav-divider,
body.theme-light .nav-divider,
[data-theme="light"] .nav-divider,
.theme-light .nav-divider {
    background: rgba(0, 0, 0, 0.06) !important;
}

/* 링크 - 모든 브라우저 통일 */
html[data-theme="light"] a,
html.theme-light a,
body.theme-light a,
[data-theme="light"] a,
.theme-light a {
    color: inherit !important;
}

html[data-theme="light"] a:hover,
.theme-light a:hover {
    color: #7c3aed !important;
}

/* 텍스트 기본값 강제 */
html[data-theme="light"] p,
html[data-theme="light"] span,
html[data-theme="light"] div,
html[data-theme="light"] label,
.theme-light p,
.theme-light span,
.theme-light div,
.theme-light label {
    color: inherit;
}

/* 모달 및 오버레이 */
html[data-theme="light"] .modal,
html[data-theme="light"] .overlay,
html[data-theme="light"] .popup,
.theme-light .modal,
.theme-light .overlay,
.theme-light .popup {
    background: rgba(255, 255, 255, 0.98) !important;
    border-color: rgba(0, 0, 0, 0.08) !important;
}

/* ============================================
   🎨 Light Theme Chart Styles v31.12
   모든 브라우저 통일 (Safari, Chrome, Firefox, Edge)
   ============================================ */

/* 차트 헤더/타이틀 - 라이트 테마에서 텍스트 색상만 조정 */
html[data-theme="light"] .chart-header,
html[data-theme="light"] .chart-title,
html.theme-light .chart-header,
html.theme-light .chart-title,
body.theme-light .chart-header,
body.theme-light .chart-title,
[data-theme="light"] .chart-header,
[data-theme="light"] .chart-title {
    color: var(--text-primary) !important;
}

/* 차트 범례 - 라이트 테마 */
html[data-theme="light"] .chart-legend,
html[data-theme="light"] .legend-item,
html.theme-light .chart-legend,
html.theme-light .legend-item,
body.theme-light .chart-legend,
body.theme-light .legend-item,
[data-theme="light"] .chart-legend,
[data-theme="light"] .legend-item {
    color: var(--text-secondary) !important;
}

/* ================================================================
   🌞 FINAL LIGHT THEME OVERRIDE - 최고 우선순위 (v31.13)
   모든 브라우저 통일: Safari, Chrome, Firefox, Edge
   ================================================================ */

/* 차트 카드 최종 라이트 테마 */
html[data-theme="light"] .chart-card,
html[data-theme="light"] .chart-card.full-width,
html.theme-light .chart-card,
html.theme-light .chart-card.full-width,
body.theme-light .chart-card,
body.theme-light .chart-card.full-width,
.theme-light .chart-card,
.theme-light .chart-card.full-width,
[data-theme="light"] .chart-card,
[data-theme="light"] .chart-card.full-width {
    background: #ffffff !important;
    background-color: #ffffff !important;
    border-color: rgba(0, 0, 0, 0.1) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
}

/* 대시보드 섹션 그룹 최종 라이트 테마 */
html[data-theme="light"] .dashboard-section-group,
html.theme-light .dashboard-section-group,
body.theme-light .dashboard-section-group,
.theme-light .dashboard-section-group,
[data-theme="light"] .dashboard-section-group {
    background: #ffffff !important;
    background-color: #ffffff !important;
    border-color: rgba(0, 0, 0, 0.1) !important;
}

/* 섹션 헤더 최종 라이트 테마 */
html[data-theme="light"] .section-group-header,
html.theme-light .section-group-header,
body.theme-light .section-group-header,
.theme-light .section-group-header,
[data-theme="light"] .section-group-header {
    background: #f8fafc !important;
    background-color: #f8fafc !important;
}

/* 섹션 콘텐츠 최종 라이트 테마 */
html[data-theme="light"] .section-group-content,
html.theme-light .section-group-content,
body.theme-light .section-group-content,
.theme-light .section-group-content,
[data-theme="light"] .section-group-content {
    background: #ffffff !important;
    background-color: #ffffff !important;
}

/* 차트 헤더 텍스트 최종 라이트 테마 */
html[data-theme="light"] .chart-header,
html[data-theme="light"] .chart-title,
html[data-theme="light"] .chart-header h3,
html.theme-light .chart-header,
html.theme-light .chart-title,
html.theme-light .chart-header h3,
body.theme-light .chart-header,
body.theme-light .chart-title,
body.theme-light .chart-header h3,
.theme-light .chart-header,
.theme-light .chart-title,
.theme-light .chart-header h3,
[data-theme="light"] .chart-header,
[data-theme="light"] .chart-title,
[data-theme="light"] .chart-header h3 {
    color: #1a1a2e !important;
}