:root {
    --primary-color: #4F46E5;
    --primary-hover: #4338CA;
    --bg-color: #F3F4F6;
    --card-bg: #FFFFFF;
    --text-main: #111827;
    --text-muted: #6B7280;
    --border-color: #E5E7EB;
}
[data-bs-theme="dark"] {
    --bg-color: #111827;
    --card-bg: #1F2937;
    --text-main: #F9FAFB;
    --text-muted: #9CA3AF;
    --border-color: #374151;
}
body {
    background-color: var(--bg-color);
    color: var(--text-main);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    transition: background-color 0.3s, color 0.3s;
}
.card {
    background-color: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    transition: transform 0.2s, background-color 0.3s;
}
.card:hover {
    transform: translateY(-2px);
}
.progress {
    height: 12px;
    border-radius: 8px;
    background-color: var(--border-color);
}
.navbar {
    background-color: var(--card-bg) !important;
    border-bottom: 1px solid var(--border-color);
}
.text-muted { color: var(--text-muted) !important; }
.btn-primary {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
}
.btn-primary:hover {
    background-color: var(--primary-hover);
    border-color: var(--primary-hover);
}
.auth-container {
    max-width: 400px;
    margin: 40px auto;
}
.toast-container { z-index: 1060; }
.spinner-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.5); z-index: 9999;
    display: flex; justify-content: center; align-items: center;
    color: white; visibility: hidden; opacity: 0; transition: opacity 0.3s;
}
.spinner-overlay.active { visibility: visible; opacity: 1; }
.stat-card { text-align: center; padding: 20px; }
.stat-value { font-size: 2rem; font-weight: 700; color: var(--primary-color); }