:root {
    --bg-body-dark: #0b1329;
    --card-bg-dark: #1e293b;
    --text-dark: #f8fafc;
    --border-dark: #334155;
    
    --bg-body-light: #f1f5f9;
    --card-bg-light: #ffffff;
    --text-light: #0f172a;
    --border-light: #cbd5e1;
}

/* Theme Baseline */
[data-bs-theme="dark"] body {
    background-color: var(--bg-body-dark);
    color: var(--text-dark);
}

[data-bs-theme="light"] body {
    background-color: var(--bg-body-light);
    color: var(--text-light);
}

/* Glass & Card Styling */
.glass-card {
    border-radius: 16px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid transparent;
}

[data-bs-theme="dark"] .glass-card {
    background: var(--card-bg-dark);
    border-color: var(--border-dark);
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.4);
}

[data-bs-theme="light"] .glass-card {
    background: var(--card-bg-light);
    border-color: var(--border-light);
    box-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.08);
}

.glass-card:hover {
    transform: translateY(-3px);
}

/* Fix KPI Contrast (Light & Dark Both) */
.kpi-card {
    border-radius: 14px;
    padding: 1.25rem;
    color: #ffffff !important; /* Force white text over gradient */
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.kpi-target { background: linear-gradient(135deg, #2563eb, #1d4ed8); }
.kpi-achieved { background: linear-gradient(135deg, #059669, #047857); }
.kpi-remaining { background: linear-gradient(135deg, #e11d48, #be123c); }
.kpi-rate { background: linear-gradient(135deg, #7c3aed, #6d28d9); }

.kpi-title {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    opacity: 0.9;
}

.kpi-value {
    font-size: 1.75rem;
    font-weight: 800;
    margin: 0.2rem 0;
}

.kpi-subtext {
    font-size: 0.825rem;
    opacity: 0.85;
}

/* Tables & Themes */
[data-bs-theme="light"] .table {
    color: #0f172a !important;
}

[data-bs-theme="light"] .table-light {
    background-color: #e2e8f0 !important;
    color: #0f172a !important;
}

[data-bs-theme="dark"] .table {
    color: #f8fafc !important;
}

[data-bs-theme="dark"] .table-light {
    background-color: #334155 !important;
    color: #f8fafc !important;
}

.chart-container {
    position: relative;
    height: 380px;
    width: 100%;
}

/* Auto-play badge pulse */
.pulse-badge {
    animation: pulse 1.8s infinite;
}

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

/* Mobile Responsive Tweaks */
@media (max-width: 768px) {
    .kpi-value {
        font-size: 1.4rem;
    }
    .chart-container {
        height: 290px;
    }
    .header-controls {
        width: 100%;
    }
    .control-item {
        flex: 1 1 45%;
    }
}