/* ═══════════════════════════════════════════
   WheelHouse Theme System
   ═══════════════════════════════════════════ */

/* ─── Light (default) ─── */
:root, [data-scheme="light"] {
    --bg-body: #f8f9fb;
    --bg-card: #ffffff;
    --bg-secondary: #f3f4f6;
    --bg-hover: #f9fafb;
    --bg-input: #ffffff;
    --text-primary: #111827;
    --text-secondary: #4b5563;
    --text-muted: #9ca3af;
    --text-on-accent: #ffffff;
    --border-color: #e5e7eb;
    --border-light: #f3f4f6;
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
    --shadow-md: 0 4px 12px rgba(0,0,0,0.08);
    --shadow-lg: 0 20px 60px rgba(0,0,0,0.12);
    --table-header-bg: #f9fafb;
    --table-stripe-bg: #fafbfc;
    --modal-overlay: rgba(0,0,0,0.4);
}

/* ─── Dark ─── */
[data-scheme="dark"] {
    --bg-body: #0f1117;
    --bg-card: #1a1b26;
    --bg-secondary: #1e1f2e;
    --bg-hover: #252636;
    --bg-input: #1e1f2e;
    --text-primary: #e5e7eb;
    --text-secondary: #9ca3af;
    --text-muted: #6b7280;
    --text-on-accent: #ffffff;
    --border-color: #2d2e3a;
    --border-light: #232430;
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.2);
    --shadow-md: 0 4px 12px rgba(0,0,0,0.3);
    --shadow-lg: 0 20px 60px rgba(0,0,0,0.4);
    --table-header-bg: #1e1f2e;
    --table-stripe-bg: #1a1b26;
    --modal-overlay: rgba(0,0,0,0.6);
}

/* Dark mode overrides for Bootstrap components */
[data-scheme="dark"] .card { background: var(--bg-card); border-color: var(--border-color); }
[data-scheme="dark"] .table { color: var(--text-primary); }
[data-scheme="dark"] .table-light, [data-scheme="dark"] .table thead { background: var(--table-header-bg) !important; color: var(--text-secondary); }
[data-scheme="dark"] .table tbody tr { border-color: var(--border-color); }
[data-scheme="dark"] .table-hover tbody tr:hover { background: var(--bg-hover); }
[data-scheme="dark"] .form-control, [data-scheme="dark"] .form-select { background: var(--bg-input); color: var(--text-primary); border-color: var(--border-color); }
[data-scheme="dark"] .form-control::placeholder { color: var(--text-muted); }
[data-scheme="dark"] .form-control:disabled, [data-scheme="dark"] .form-select:disabled { background: var(--bg-secondary); }
[data-scheme="dark"] .modal-content { background: var(--bg-card); }
[data-scheme="dark"] .modal-header, [data-scheme="dark"] .modal-footer { border-color: var(--border-color); }
[data-scheme="dark"] .alert { background: var(--bg-secondary); }
[data-scheme="dark"] .alert-danger { background: #3b1212; color: #fca5a5; }
[data-scheme="dark"] .alert-success { background: #0a2f1a; color: #86efac; }
[data-scheme="dark"] .alert-warning { background: #2f2008; color: #fde68a; }
[data-scheme="dark"] .alert-info { background: #0c1f3f; color: #93c5fd; }
[data-scheme="dark"] .dropdown-menu { background: var(--bg-card); border-color: var(--border-color); }
[data-scheme="dark"] .dropdown-item { color: var(--text-primary); }
[data-scheme="dark"] .dropdown-item:hover { background: var(--bg-hover); }
[data-scheme="dark"] .badge.bg-light { background: var(--bg-secondary) !important; color: var(--text-primary) !important; }
[data-scheme="dark"] .badge.bg-info { background: rgba(var(--accent-rgb), 0.2) !important; color: var(--accent) !important; }
[data-scheme="dark"] .text-muted { color: var(--text-muted) !important; }
[data-scheme="dark"] .border-bottom { border-color: var(--border-color) !important; }
[data-scheme="dark"] .bg-white { background: var(--bg-card) !important; }
[data-scheme="dark"] .bg-light { background: var(--bg-secondary) !important; }
[data-scheme="dark"] .input-group-text { background: var(--bg-secondary); color: var(--text-secondary); border-color: var(--border-color); }
[data-scheme="dark"] .list-group-item { background: var(--bg-card); border-color: var(--border-color); color: var(--text-primary); }
[data-scheme="dark"] .nav-tabs .nav-link { background: var(--bg-secondary); color: var(--text-secondary); }
[data-scheme="dark"] .nav-tabs .nav-link:hover { background: var(--bg-hover); }
[data-scheme="dark"] .page-breadcrumb a { color: var(--text-muted); }
[data-scheme="dark"] hr { border-color: var(--border-color); }

/* Dark mode: table headers, footers, striped rows */
[data-scheme="dark"] .table-light th,
[data-scheme="dark"] .table-light td,
[data-scheme="dark"] thead.table-light,
[data-scheme="dark"] tfoot.table-light { background-color: var(--bg-secondary) !important; color: var(--text-secondary) !important; }
[data-scheme="dark"] .table tfoot { background: var(--bg-secondary); color: var(--text-primary); }
[data-scheme="dark"] .table tfoot tr { background: var(--bg-secondary) !important; }
[data-scheme="dark"] .table thead th { background: var(--table-header-bg); color: var(--text-secondary); border-color: var(--border-color); }
[data-scheme="dark"] .table-hover > tbody > tr:hover > * { background-color: #2a2d3a !important; color: var(--text-primary) !important; }
[data-scheme="dark"] .table-hover > tbody > tr:hover { background-color: #2a2d3a !important; }
[data-scheme="dark"] .table > :not(caption) > * > * { border-color: var(--border-color); }
[data-scheme="dark"] .table-primary { background-color: rgba(var(--accent-rgb), 0.15) !important; color: var(--text-primary) !important; }
[data-scheme="dark"] .table-primary > * { color: var(--text-primary) !important; }
[data-scheme="dark"] .table-active { background-color: #2a2d3a !important; color: var(--text-primary) !important; }
[data-scheme="dark"] .table-secondary { background-color: var(--bg-secondary) !important; color: var(--text-primary) !important; }
[data-scheme="dark"] .table > tbody > tr[style*="cursor"] { color: var(--text-primary); }

/* Dark mode: icon/avatar backgrounds */
[data-scheme="dark"] .rounded-circle[style*="background"],
[data-scheme="dark"] .rounded-3[style*="background"],
[data-scheme="dark"] .rounded[style*="background"],
[data-scheme="dark"] .p-2.rounded[style*="background"] { opacity: 0.85; }
[data-scheme="dark"] [style*="background-color: #eff6ff"],
[data-scheme="dark"] [style*="background-color: #ecfdf5"],
[data-scheme="dark"] [style*="background-color: #fef2f2"],
[data-scheme="dark"] [style*="background-color: #fffbeb"],
[data-scheme="dark"] [style*="background-color: #f0fdf4"],
[data-scheme="dark"] [style*="background-color: #fff7ed"] { background-color: var(--bg-secondary) !important; }
[data-scheme="dark"] .bg-success.bg-opacity-10,
[data-scheme="dark"] .bg-danger.bg-opacity-10,
[data-scheme="dark"] .bg-warning.bg-opacity-10,
[data-scheme="dark"] .bg-info.bg-opacity-10,
[data-scheme="dark"] .bg-primary.bg-opacity-10 { background-color: var(--bg-secondary) !important; }

/* Dark mode: card header/footer backgrounds */
[data-scheme="dark"] .card-header.bg-light,
[data-scheme="dark"] .card-footer.bg-white,
[data-scheme="dark"] .card-header.bg-white { background: var(--bg-secondary) !important; color: var(--text-primary); }
[data-scheme="dark"] .card-header.bg-primary { background: var(--accent) !important; }

/* Dark mode: KPI card tints */
[data-scheme="dark"] .kpi-blue,
[data-scheme="dark"] .kpi-cyan,
[data-scheme="dark"] .kpi-amber,
[data-scheme="dark"] .kpi-indigo,
[data-scheme="dark"] .kpi-purple,
[data-scheme="dark"] .kpi-green { background: var(--bg-card) !important; }

/* ─── Accent Colors ─── */
:root, [data-accent="blue"] {
    --accent: #2563eb;
    --accent-hover: #1d4ed8;
    --accent-light: #eff6ff;
    --accent-lighter: #dbeafe;
    --accent-rgb: 37, 99, 235;
    --accent-gradient: linear-gradient(135deg, #1e40af 0%, #2563eb 100%);
}
[data-accent="indigo"] {
    --accent: #4f46e5; --accent-hover: #4338ca; --accent-light: #eef2ff; --accent-lighter: #e0e7ff; --accent-rgb: 79, 70, 229;
    --accent-gradient: linear-gradient(135deg, #3730a3 0%, #4f46e5 100%);
}
[data-accent="teal"] {
    --accent: #0d9488; --accent-hover: #0f766e; --accent-light: #f0fdfa; --accent-lighter: #ccfbf1; --accent-rgb: 13, 148, 136;
    --accent-gradient: linear-gradient(135deg, #115e59 0%, #0d9488 100%);
}
[data-accent="green"] {
    --accent: #16a34a; --accent-hover: #15803d; --accent-light: #f0fdf4; --accent-lighter: #dcfce7; --accent-rgb: 22, 163, 74;
    --accent-gradient: linear-gradient(135deg, #166534 0%, #16a34a 100%);
}
[data-accent="red"] {
    --accent: #dc2626; --accent-hover: #b91c1c; --accent-light: #fef2f2; --accent-lighter: #fee2e2; --accent-rgb: 220, 38, 38;
    --accent-gradient: linear-gradient(135deg, #991b1b 0%, #dc2626 100%);
}
[data-accent="orange"] {
    --accent: #ea580c; --accent-hover: #c2410c; --accent-light: #fff7ed; --accent-lighter: #ffedd5; --accent-rgb: 234, 88, 12;
    --accent-gradient: linear-gradient(135deg, #9a3412 0%, #ea580c 100%);
}
[data-accent="slate"] {
    --accent: #475569; --accent-hover: #334155; --accent-light: #f8fafc; --accent-lighter: #f1f5f9; --accent-rgb: 71, 85, 105;
    --accent-gradient: linear-gradient(135deg, #1e293b 0%, #475569 100%);
}

/* ─── Font Families ─── */
[data-font="inter-tight"] { --font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif; }
[data-font="system"] { --font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
[data-font="roboto"] { --font-family: 'Roboto', sans-serif; }
[data-font="poppins"] { --font-family: 'Poppins', sans-serif; }
[data-font="dm-sans"] { --font-family: 'DM Sans', sans-serif; }
:root { --font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, sans-serif; }

/* ─── Sidebar variants ─── */
[data-sidebar="dark"] {
    --sidebar-bg: #111318;
    --sidebar-text: #b8b9bd;
    --sidebar-hover-bg: #2a2b30;
    --sidebar-active-bg: rgba(var(--accent-rgb), 0.15);
    --sidebar-active-text: #93c5fd;
    --sidebar-active-border: #3b82f6;
    --sidebar-section-label: #6b7280;
    --sidebar-header-bg: var(--accent-gradient);
}
[data-sidebar="light"] {
    --sidebar-bg: #ffffff;
    --sidebar-text: #4b5563;
    --sidebar-hover-bg: #f3f4f6;
    --sidebar-active-bg: var(--accent-light);
    --sidebar-active-text: var(--accent);
    --sidebar-active-border: var(--accent);
    --sidebar-section-label: #9ca3af;
    --sidebar-header-bg: var(--accent-gradient);
}

/* ─── Content Density ─── */
[data-density="compact"] {
    --density-padding: 0.5rem;
    --density-gap: 0.25rem;
    --density-font: 13px;
}
[data-density="comfortable"] {
    --density-padding: 1.25rem;
    --density-gap: 0.5rem;
    --density-font: 14px;
}
:root { --density-padding: 1.25rem; --density-gap: 0.5rem; --density-font: 14px; }

/* Density applied to components */
[data-density="compact"] .card-body { padding: 0.65rem; }
[data-density="compact"] .card-header { padding: 0.5rem 0.65rem; }
[data-density="compact"] .table td, [data-density="compact"] .table th { padding: 0.3rem 0.5rem; }
[data-density="compact"] .mb-3 { margin-bottom: 0.5rem !important; }
[data-density="compact"] .mb-4 { margin-bottom: 0.75rem !important; }
[data-density="compact"] .p-3 { padding: 0.65rem !important; }
[data-density="compact"] .p-4 { padding: 0.85rem !important; }
[data-density="compact"] .modal-body { padding: 0.75rem; }
[data-density="compact"] .row.g-3 { --bs-gutter-y: 0.5rem; --bs-gutter-x: 0.5rem; }
[data-density="compact"] .btn { padding: 0.25rem 0.6rem; font-size: 0.8rem; }
[data-density="compact"] .btn-sm { padding: 0.15rem 0.4rem; font-size: 0.75rem; }
[data-density="compact"] .form-control, [data-density="compact"] .form-select { padding: 0.3rem 0.6rem; }
[data-density="compact"] h3 { font-size: 1.15rem; }
[data-density="compact"] h4 { font-size: 1rem; }
[data-density="compact"] h5 { font-size: 0.9rem; }

/* ─── Border Radius ─── */
[data-radius="rounded"] { --radius-sm: 6px; --radius-md: 8px; --radius-lg: 12px; }
[data-radius="sharp"] { --radius-sm: 2px; --radius-md: 3px; --radius-lg: 4px; }
:root { --radius-sm: 6px; --radius-md: 8px; --radius-lg: 12px; }

/* Force radius on Bootstrap — override BS5 variables */
:root { --bs-border-radius: var(--radius-md); --bs-border-radius-sm: var(--radius-sm); --bs-border-radius-lg: var(--radius-lg); --bs-border-radius-xl: var(--radius-lg); --bs-border-radius-pill: 50rem; }

/* Force radius on Bootstrap components */
.card { border-radius: var(--radius-lg) !important; }
.card-header:first-child { border-top-left-radius: var(--radius-lg) !important; border-top-right-radius: var(--radius-lg) !important; }
.card-footer:last-child { border-bottom-left-radius: var(--radius-lg) !important; border-bottom-right-radius: var(--radius-lg) !important; }
.btn { border-radius: var(--radius-md) !important; }
.btn-sm { border-radius: var(--radius-sm) !important; }
.form-control, .form-select, .input-group-text { border-radius: var(--radius-md) !important; }
.modal-content { border-radius: var(--radius-lg) !important; }
.alert { border-radius: var(--radius-md) !important; }
.badge { border-radius: var(--radius-sm) !important; }
.dropdown-menu { border-radius: var(--radius-md) !important; }
.nav-tabs .nav-link { border-radius: var(--radius-md) !important; }
