/* Dark Theme - Applied via .theme-dark on body */
body.theme-dark {
    --bg-color: #0f1724;
    --glass-bg: #1a2332;
    --glass-border: #2d3a4a;

    --primary: #3b82f6;
    --primary-hover: #2563eb;
    --primary-light: #1e2d42;
    --primary-rgb: 59, 130, 246;

    --text-primary: #e2e8f0;
    --text-secondary: #94a3b8;
    --text-muted: #64748b;

    --success: #22c55e;
    --success-light: #14532d;
    --danger: #ef4444;
    --danger-light: #7f1d1d;
    --warning: #f59e0b;
    --warning-light: #78350f;
    --info: #38bdf8;
    --info-light: #0c4a6e;

    --border: #2d3a4a;
    --border-hover: #475569;
    --surface: #1e293b;

    --shadow-sm: 0 1px 2px rgba(0,0,0,0.2);
    --shadow: 0 4px 12px rgba(0,0,0,0.3);
    --shadow-lg: 0 10px 40px rgba(0,0,0,0.4);
}

body.theme-dark .bg-white { background: var(--glass-bg); }

body.theme-dark .sidebar {
    background: #1a2332;
    border-right-color: var(--border);
}

body.theme-dark .logo-icon {
    background: linear-gradient(135deg, #3b82f6, #60a5fa);
}

body.theme-dark .nav-links li:hover,
body.theme-dark .nav-links li.active {
    background: var(--primary-light);
}

body.theme-dark .user-profile,
body.theme-dark .sidebar-user {
    border-top-color: var(--border);
}

body.theme-dark .sidebar-action-logout:hover {
    background: rgba(239, 68, 68, 0.15);
    color: #ef4444;
}

body.theme-dark .sidebar-toggle {
    border-color: var(--border);
    background: var(--surface);
    color: var(--text-muted);
}

body.theme-dark .sidebar-toggle:hover {
    background: var(--primary-light);
    color: var(--primary);
    border-color: var(--primary);
}

.theme-dark .sidebar-tooltip {
    background: #f1f5f9;
    color: #0f172a;
    box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

body.theme-dark .avatar-img {
    border-color: var(--border);
}

body.theme-dark .main-content {
    background: var(--bg-color);
}

body.theme-dark .dash-card {
    background: var(--glass-bg);
    border-color: var(--border);
}

body.theme-dark .qb-card {
    background: var(--surface);
    border-color: var(--border);
}
body.theme-dark .qb-card:hover {
    background: var(--glass-bg);
    border-color: var(--primary);
}
body.theme-dark .qb-icon {
    background: var(--surface);
    border-color: var(--border);
}

body.theme-dark .res-card {
    background: var(--glass-bg);
    border-color: var(--border);
}
body.theme-dark .res-card:hover {
    background: var(--surface);
}
body.theme-dark .res-card.active-now {
    background: #0c2a1a;
    border-color: var(--success);
}
body.theme-dark .res-date {
    background: var(--surface);
    border-color: var(--border);
}

body.theme-dark .status-toggle {
    background: var(--glass-bg);
    border-color: var(--border);
}
body.theme-dark .status-btn:hover:not(.active) {
    background: var(--surface);
}

body.theme-dark .btn-icon-soft {
    background: var(--surface);
    border-color: var(--border);
}
body.theme-dark .btn-icon-soft:hover {
    background: var(--glass-bg);
}

body.theme-dark .colleague-card {
    background: var(--glass-bg);
    border-color: var(--border);
}

body.theme-dark .day-card {
    background: var(--glass-bg);
    border-color: var(--border);
}
body.theme-dark .day-header {
    background: var(--surface);
    border-bottom-color: var(--border);
}
body.theme-dark .status-radio:hover {
    background: var(--surface);
}
body.theme-dark .status-radio:has(input:checked) {
    background: var(--primary-light);
    border-color: #1e3a5f;
}

body.theme-dark .progress-bar {
    background: var(--surface);
    border-color: var(--border);
}

body.theme-dark .status-dot {
    border-color: var(--glass-bg);
}

body.theme-dark .admin-table {
    background: var(--glass-bg);
    border-color: var(--border);
}
body.theme-dark .admin-table thead {
    background: var(--surface);
}
body.theme-dark .admin-table th {
    border-bottom-color: var(--border);
}
body.theme-dark .admin-table td {
    border-bottom-color: var(--border);
    color: var(--text-primary);
}
body.theme-dark .admin-table tbody tr:hover {
    background: var(--surface);
}

body.theme-dark .admin-card {
    background: var(--glass-bg);
    border-color: var(--border);
}
body.theme-dark .admin-tabs {
    background: none;
    border-color: var(--border);
}
body.theme-dark .admin-tab.active {
    background: none;
}
body.theme-dark .admin-stat-item {
    background: var(--surface);
    border-color: var(--border);
}

body.theme-dark .form-group input,
body.theme-dark .form-group select,
body.theme-dark .form-group textarea {
    background: var(--surface);
    border-color: var(--border);
    color: var(--text-primary);
}

body.theme-dark .btn-outline {
    border-color: var(--border);
    color: var(--text-primary);
}
body.theme-dark .btn-outline:hover {
    background: var(--surface);
    border-color: var(--text-secondary);
}

body.theme-dark .filter-group select {
    background: var(--surface);
    border-color: var(--border);
    color: var(--text-primary);
}

body.theme-dark .search-bar input {
    background: var(--surface);
    border-color: var(--border);
    color: var(--text-primary);
}

body.theme-dark .filters select,
body.theme-dark .filters input[type="date"] {
    background: var(--surface);
    border-color: var(--border);
    color: var(--text-primary);
}

body.theme-dark .role-card,
body.theme-dark .group-card {
    background: var(--glass-bg);
    border-color: var(--border);
}

body.theme-dark .group-member-item:hover {
    background: rgba(255,255,255,0.05);
}

/* Recurrence v2 - dark overrides */
body.theme-dark .recurrence-summary {
    background: var(--primary-light);
    color: #93c5fd;
    border-left-color: var(--primary);
}
body.theme-dark .recurrence-date-item.date-available {
    background: #14532d; color: #86efac;
}
body.theme-dark .recurrence-date-item.date-conflict {
    background: #7f1d1d; color: #fca5a5;
}
body.theme-dark .recurrence-date-item.date-pending {
    background: var(--surface); color: var(--text-secondary);
}

body.theme-dark .group-member-avatar {
    background: rgba(59,130,246,0.15);
}

body.theme-dark .confirm-box {
    background: var(--glass-bg);
    border-color: var(--border);
}

body.theme-dark .modal-box {
    background: var(--glass-bg);
    border-color: var(--border);
}
body.theme-dark .modal-header {
    border-bottom-color: var(--border);
}
body.theme-dark .modal-footer {
    border-top-color: var(--border);
}

body.theme-dark .map-container {
    background: var(--surface);
    border-color: var(--border);
}
body.theme-dark .map-img-container {
    background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
    border-color: var(--border);
}
body.theme-dark .booking-panel {
    background: var(--glass-bg);
    border-color: var(--border);
}

/* Booking search bar dark */
body.theme-dark .booking-search-bar {
    background: var(--glass-bg);
    border-color: var(--border);
}
body.theme-dark .input-icon-group {
    background: var(--surface);
    border-color: var(--border);
}
body.theme-dark .input-icon-group select,
body.theme-dark .input-icon-group input[type="date"] {
    color: var(--text-primary);
    color-scheme: dark;
}
body.theme-dark .booking-view-toggle {
    background: var(--surface);
    border-color: var(--border);
}
body.theme-dark .view-toggle-btn.active {
    background: var(--glass-bg);
}
body.theme-dark .booking-card {
    background: var(--glass-bg);
    border-color: var(--border);
}
body.theme-dark .booking-card:hover {
    border-color: var(--border-hover);
}
body.theme-dark .booking-group-icon {
    background: var(--primary-light);
}
body.theme-dark .map-zoom-controls,
body.theme-dark .map-marker-controls {
    background: rgba(30,35,50,0.95);
}
body.theme-dark .map-legend {
    background: rgba(30,35,50,0.95);
}
body.theme-dark .zoom-btn {
    background: var(--surface);
    color: var(--text-primary);
    border-color: var(--border);
}
body.theme-dark .input-icon-group select {
    background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%2394a3b8'/%3E%3C/svg%3E") no-repeat right center;
}

/* Icon picker dark */
body.theme-dark .icon-picker-btn:hover { background: var(--primary-light); }
body.theme-dark .icon-picker-item:hover { background: var(--primary-light); }
body.theme-dark .icon-picker-item.active { background: var(--primary-light); }
body.theme-dark .icon-picker-search { background: var(--glass-bg); color: var(--text-primary); border-color: var(--border); }

/* Notification panel dark */
body.theme-dark .notif-panel { background: var(--glass-bg, #1e293b); border-color: var(--border); }
body.theme-dark .notif-panel-header { border-color: var(--border); }
body.theme-dark .notif-panel-close { color: var(--text-secondary); }
body.theme-dark .notif-panel-close:hover { background: var(--glass-bg); }
body.theme-dark .notif-item { border-color: var(--border); }
body.theme-dark .notif-item:hover { background: rgba(255,255,255,0.04); }
body.theme-dark .notif-item-unread { background: rgba(59,130,246,0.1); }
body.theme-dark .notif-item-unread:hover { background: rgba(59,130,246,0.15); }
body.theme-dark .notif-item-icon { background: rgba(255,255,255,0.06); }
body.theme-dark .notif-item-title { color: var(--text-primary); }
body.theme-dark .notif-panel-overlay { background: rgba(0,0,0,0.5); }

/* Webhook items dark */
body.theme-dark .webhook-item { background: var(--glass-bg); border-color: var(--border); }
body.theme-dark .btn-outline-small { color: var(--text-primary); border-color: var(--border); }

/* Profile page dark */
body.theme-dark .profile-card { background: var(--glass-bg); border-color: var(--border); }
body.theme-dark .profile-avatar-wrapper { border-color: var(--border); }
body.theme-dark .profile-avatar-wrapper:hover,
body.theme-dark .profile-avatar-wrapper:focus-visible { border-color: var(--primary); }
body.theme-dark .user-profile-link:hover,
body.theme-dark .user-profile-link:focus-visible { background: var(--surface); }
body.theme-dark .btn-action-profile { background: var(--primary-light); color: var(--primary); border-color: var(--primary); }
body.theme-dark .btn-action-profile:hover { background: var(--primary); color: #fff; }

/* Audit toolbar dark */
body.theme-dark .audit-toolbar {
    background: var(--surface);
    border-color: var(--border);
}
body.theme-dark .audit-toolbar-search input,
body.theme-dark .audit-toolbar-select,
body.theme-dark .audit-toolbar-date {
    background: var(--glass-bg);
    border-color: var(--border);
    color: var(--text-primary);
    color-scheme: dark;
}
body.theme-dark .audit-toolbar-btn-export {
    background: var(--glass-bg);
    border-color: var(--border);
    color: var(--text-primary);
}

/* Profile form dark */
body.theme-dark .profile-form .form-group input {
    background: var(--surface);
    border-color: var(--border);
    color: var(--text-primary);
}
body.theme-dark .profile-toggle-row {
    border-color: var(--border);
}
body.theme-dark .profile-toggle-row:hover {
    background: var(--surface);
}
body.theme-dark .toggle-slider {
    background: var(--border);
}

/* Color hex input dark */
body.theme-dark .color-hex-input {
    background: var(--surface);
    border-color: var(--border);
    color: var(--text-primary);
}

/* Auth method items dark */
body.theme-dark .auth-method-item {
    border-color: var(--border);
}
body.theme-dark .auth-method-config {
    background: var(--surface);
    border-color: var(--border);
}

/* Date inputs color scheme */
body.theme-dark input[type="date"] {
    color-scheme: dark;
}

/* Select dropdown dark */
body.theme-dark select {
    color-scheme: dark;
}

/* ---- Badges (style.css) ---- */
body.theme-dark .badge-success { background: #14532d; color: #86efac; }
body.theme-dark .badge-warning { background: #78350f; color: #fcd34d; }
body.theme-dark .badge-danger { background: #7f1d1d; color: #fca5a5; }
body.theme-dark .badge-muted { background: var(--surface); color: var(--text-muted); }
body.theme-dark .badge-visitor-expected { background: #78350f; color: #fcd34d; }
body.theme-dark .badge-visitor-present { background: #14532d; color: #86efac; border-color: #22c55e; }
body.theme-dark .badge-visitor-cancelled { background: #7f1d1d; color: #fca5a5; }
body.theme-dark .badge-visitor-no-show { background: #7f1d1d; color: #fca5a5; }
body.theme-dark .badge-outline { border-color: #1e3a5f; color: #93c5fd; background: var(--primary-light); }

/* ---- Form messages ---- */
body.theme-dark .form-error { background: #7f1d1d; border-color: #991b1b; color: #fca5a5; }
body.theme-dark .form-info { background: #1e3a5f; border-color: #1d4ed8; color: #93c5fd; }

/* ---- Btn icon hover ---- */
body.theme-dark .btn-icon:hover { background: rgba(239,68,68,0.15); }

/* ---- Res card status variants ---- */
body.theme-dark .res-card.active-now { background: #0c2a1a; }
body.theme-dark .res-card.status-expected { background: #451a03; border-color: #f59e0b; }
body.theme-dark .res-card.status-cancelled { background: #450a0a; border-color: var(--danger); }

/* ---- Desk markers on map ---- */
body.theme-dark .desk-available { background: #14532d; border-color: #22c55e; }
body.theme-dark .desk-occupied { background: #7f1d1d; border-color: #ef4444; }
body.theme-dark .desk-inactive { background: var(--surface); border-color: #64748b; }
body.theme-dark .desk-hot { background: #713f12; border-color: #eab308; }
body.theme-dark .desk-mine { background: #1e3a5f; border-color: var(--primary); }

/* ---- Map legend dots ---- */
body.theme-dark .map-legend-dot.dot-available { background: #14532d; border-color: #22c55e; }
body.theme-dark .map-legend-dot.dot-occupied { background: #7f1d1d; border-color: #ef4444; }
body.theme-dark .map-legend-dot.dot-mine { background: #1e3a5f; border-color: var(--primary); }
body.theme-dark .map-legend-dot.dot-hot { background: #713f12; border-color: #eab308; }

/* ---- Map background ---- */
body.theme-dark .map-img-placeholder {
    background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
}

/* ---- Slider / Switch ---- */
body.theme-dark .slider { background-color: #475569; }
body.theme-dark .slider:before,
body.theme-dark .slider::before { background-color: #e2e8f0; }
body.theme-dark .toggle-slider::before { background: #e2e8f0; }

/* ---- Recurrence summary ---- */
body.theme-dark .recurrence-card-header { background: var(--primary-light); }

/* ---- Recurrence date items (already partially done but ensure complete) ---- */
body.theme-dark .recurrence-date-item.date-substituted { background: #1e3a5f; color: #93c5fd; }

/* ---- Agenda calendar status badges ---- */
body.theme-dark .agenda-cal-status--office { background: #1e3a5f; color: #93c5fd; }
body.theme-dark .agenda-cal-status--remote { background: #2e1065; color: #c4b5fd; }
body.theme-dark .agenda-cal-status--absent { background: #7f1d1d; color: #fca5a5; }

/* ---- Agenda visitor card ---- */
body.theme-dark .agenda-visitor-card { background: #1e1b4b; border-color: #4338ca; }
body.theme-dark .agenda-time-dot--visitor { background: #7c3aed; border-color: #2e1065; }
body.theme-dark .agenda-badge--visitor { background: #1e3a5f; color: #93c5fd; }
body.theme-dark .agenda-badge--cancelled { background: #7f1d1d; color: #fca5a5; }
body.theme-dark .agenda-badge--confirmed { background: #14532d; color: #86efac; }
body.theme-dark .agenda-badge--ongoing { background: #78350f; color: #fcd34d; }

/* ---- Status indicators (team page) ---- */
body.theme-dark .status-indicator.status-office { background: #14532d; color: #86efac; }
body.theme-dark .status-indicator.status-remote { background: #1e3a5f; color: #93c5fd; }
body.theme-dark .status-indicator.status-absent { background: #7f1d1d; color: #fca5a5; }

/* ---- Team avatar ---- */
body.theme-dark .team-avatar { background: #1e1b4b; color: #a5b4fc; }

/* ---- Colleague card status-dot border ---- */
body.theme-dark .status-dot { border-color: var(--glass-bg); }

/* ---- Popover / dropdown ---- */
body.theme-dark .popover { background: var(--glass-bg); border-color: var(--border); }

/* ---- Week day button dot ---- */
body.theme-dark .week-day-btn[aria-pressed="true"].is-today .day-num::after { background: #fff; }

/* ---- Danger action hover ---- */
body.theme-dark .danger-action:hover { background: rgba(239,68,68,0.15); }

/* ---- Admin badges (admin.css) ---- */
body.theme-dark .webhook-badge-slack { background: #2e1065; color: #d8b4fe; }
body.theme-dark .webhook-badge-teams { background: #1e3a5f; color: #93c5fd; }
body.theme-dark .webhook-badge-discord { background: #1e1b4b; color: #a5b4fc; }
body.theme-dark .webhook-badge-custom { background: var(--surface); color: var(--text-secondary); }

/* ---- Admin btn-action-groups ---- */
body.theme-dark .btn-action-groups { background: var(--primary-light); color: #93c5fd; }
body.theme-dark .btn-action-groups:hover { background: #1e3a5f; }

/* ---- Admin danger hover ---- */
body.theme-dark .btn-outline-small.danger-action:hover { background: rgba(239,68,68,0.15); }

/* ---- Provider info box ---- */
body.theme-dark .provider-info-box { background: #0c4a6e; border-color: #0369a1; }
body.theme-dark .provider-info-header { color: #7dd3fc; }

/* ---- Auth status badges ---- */
body.theme-dark .auth-status-badge.status-incomplete { background: #78350f; color: #fcd34d; }
body.theme-dark .auth-status-badge.status-configured { background: #1e3a5f; color: #93c5fd; }
body.theme-dark .auth-status-badge.status-active { background: #14532d; color: #86efac; }
body.theme-dark .auth-missing-fields { color: #fcd34d; }

/* ---- Admin switch slider ---- */
body.theme-dark .switch .slider { background-color: #475569; }
body.theme-dark .switch .slider:before { background-color: #e2e8f0; }

/* ---- Icon picker ---- */
body.theme-dark .icon-picker-btn:hover { background: var(--primary-light); }
body.theme-dark .icon-picker-item:hover { background: var(--primary-light); }
body.theme-dark .icon-picker-item.active { background: #1e3a5f; }

/* ---- Admin badge-info / badge-warning / badge-muted (via body.theme-dark) ---- */
body.theme-dark .badge-info { background: #1e3a5f; color: #93c5fd; }

/* ---- Notification info box ---- */
body.theme-dark .notif-info-box { background: #0c4a6e; border-color: #0369a1; }

/* ---- Admin btn-action-profile ---- */
body.theme-dark .btn-action-profile { background: var(--primary-light); color: var(--primary); }
body.theme-dark .btn-action-profile:hover { background: var(--primary); color: #fff; }

/* ---- Mobile overlay ---- */
body.theme-dark .sidebar-overlay { background: rgba(0,0,0,0.6); }

/* Theme toggle icon change */
body.theme-dark .theme-toggle::before {
    content: "\f185"; /* sun icon */
}
