/* ===============================
   DARK MODE — Global component overrides
   Loaded after page-specific CSS.
   Uses design tokens from common.css.
================================ */

/* ── Global surfaces ─────────────────────────────────────────── */
.theme-dark ::selection {
    background: rgba(62, 207, 142, 0.28);
    color: var(--text-primary);
}

.theme-dark a {
    color: var(--link-color);
}

.theme-dark .header,
.theme-dark h1,
.theme-dark h2,
.theme-dark h3,
.theme-dark h4,
.theme-dark h5,
.theme-dark h6 {
    color: var(--text-primary);
}

/* In-content section titles keep divider styling */
.theme-dark .section-title {
    color: var(--text-primary);
    border-color: var(--border-color);
}

/* ── Standard page hero — dark mode glow ─────────────────── */
.theme-dark .dash-hero-subtitle,
.theme-dark .header #dashboard-user-name,
.theme-dark .header + .section-title,
.theme-dark #dept-page-subtitle,
.theme-dark #cs-page-subtitle,
.theme-dark .page-subtitle,
.theme-dark .ev-page-header > p,
.theme-dark .db-page-header > p:not(.db-breadcrumb),
.theme-dark .groups-main-subtitle,
.theme-dark .ethics-subtitle,
.theme-dark .consult-subtitle,
.theme-dark .ds-sub,
.theme-dark .pr-sub,
.theme-dark .gd-sub,
.theme-dark .awm-sub,
html.theme-dark .dash-hero-subtitle,
html.theme-dark .header #dashboard-user-name,
html.theme-dark .header + .section-title,
html.theme-dark #dept-page-subtitle,
html.theme-dark #cs-page-subtitle,
html.theme-dark .page-subtitle,
html.theme-dark .ev-page-header > p,
html.theme-dark .db-page-header > p:not(.db-breadcrumb),
html.theme-dark .groups-main-subtitle,
html.theme-dark .ethics-subtitle,
html.theme-dark .consult-subtitle,
html.theme-dark .ds-sub,
html.theme-dark .pr-sub,
html.theme-dark .gd-sub,
html.theme-dark .awm-sub {
    color: var(--primary-action) !important;
    text-shadow: 0 0 22px rgba(62, 207, 142, 0.42);
}

.theme-dark .dash-hero-title,
.theme-dark .header h1,
.theme-dark .page-title,
.theme-dark .ev-page-header h1,
.theme-dark .db-page-header h1,
.theme-dark .groups-main-title,
.theme-dark .ethics-title,
.theme-dark .consult-title,
.theme-dark .ds-title h1,
.theme-dark .pr-title h1,
.theme-dark .gd-header h1,
.theme-dark .awm-header h1,
html.theme-dark .dash-hero-title,
html.theme-dark .header h1,
html.theme-dark .page-title,
html.theme-dark .ev-page-header h1,
html.theme-dark .db-page-header h1,
html.theme-dark .groups-main-title,
html.theme-dark .ethics-title,
html.theme-dark .consult-title,
html.theme-dark .ds-title h1,
html.theme-dark .pr-title h1,
html.theme-dark .gd-header h1,
html.theme-dark .awm-header h1 {
    color: var(--text-primary) !important;
}

.theme-dark .ev-breadcrumb,
.theme-dark .db-breadcrumb,
html.theme-dark .ev-breadcrumb,
html.theme-dark .db-breadcrumb {
    color: var(--primary-action);
    text-shadow: 0 0 14px rgba(62, 207, 142, 0.28);
}

.theme-dark .header + .section-title,
.theme-dark #dept-page-subtitle,
.theme-dark #cs-page-subtitle,
html.theme-dark .header + .section-title,
html.theme-dark #dept-page-subtitle,
html.theme-dark #cs-page-subtitle {
    border-bottom: none;
}

/* ── Scrollbars ────────────────────────────────────────────── */
.theme-dark ::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.theme-dark ::-webkit-scrollbar-track {
    background: var(--bg-body);
}

.theme-dark ::-webkit-scrollbar-thumb {
    background: #3d4f66;
    border-radius: 8px;
}

.theme-dark ::-webkit-scrollbar-thumb:hover {
    background: #4b607a;
}

/* ── Dashboard widgets (dw-*) ──────────────────────────────── */
.theme-dark .dw-widget {
    background: var(--bg-main);
    border-color: var(--border-color);
    box-shadow: var(--shadow-soft);
}

.theme-dark .dw-widget-header {
    background: var(--bg-subtle);
    border-color: var(--border-subtle);
}

.theme-dark .dw-widget-title {
    color: var(--text-primary);
}

.theme-dark .dw-widget-action {
    color: var(--link-color);
}

.theme-dark .dw-widget-action:hover {
    color: var(--primary-hover);
}

.theme-dark .dw-deadline-item {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

.theme-dark .dw-deadline-item:hover {
    background: var(--bg-hover);
}

.theme-dark .dw-deadline-item--overdue {
    background: var(--status-danger-bg);
}

.theme-dark .dw-deadline-title {
    color: var(--text-primary);
}

.theme-dark .dw-deadline-subtitle,
.theme-dark .dw-deadline-date,
.theme-dark .dw-deadline-remaining {
    color: var(--text-muted);
}

.theme-dark .dw-empty-state,
.theme-dark .dw-loading {
    color: var(--text-muted);
}

.theme-dark .dw-deadlines-modal-overlay {
    background: var(--overlay-bg);
}

.theme-dark .dw-deadlines-modal {
    background: var(--bg-elevated);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .dw-deadlines-modal-header {
    border-color: var(--border-color);
}

.theme-dark .dw-deadlines-modal-close {
    color: var(--text-muted);
}

.theme-dark .dw-deadlines-modal-close:hover {
    background: var(--bg-hover);
    color: var(--text-primary);
}

.theme-dark .dw-cal-header,
.theme-dark .dw-popover-header,
.theme-dark .dw-popover-item {
    color: var(--text-primary);
}

.theme-dark .dw-cal-dow,
.theme-dark .dw-cal-legend-item,
.theme-dark .dw-popover-empty {
    color: var(--text-muted);
}

.theme-dark .dw-cal-month-select,
.theme-dark .dw-cal-year-input,
.theme-dark .dw-cal-nav-btn {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .dw-cal-nav-btn:hover {
    background: var(--bg-hover);
    border-color: var(--border-color);
}

.theme-dark .dw-cal-day {
    background: transparent;
    border-color: transparent;
    color: var(--text-primary);
}

.theme-dark .dw-cal-day:hover:not(:disabled):not(.dw-cal-day--empty) {
    background: var(--bg-hover);
    border-color: var(--border-color);
}

.theme-dark .dw-cal-day--today {
    border-color: var(--primary-action);
    background: rgba(62, 207, 142, 0.14);
    color: var(--primary-action);
}

.theme-dark .dw-cal-day--selected {
    background: var(--bg-elevated);
    border-color: var(--primary-action);
    box-shadow: 0 0 0 2px rgba(62, 207, 142, 0.22);
    color: var(--text-primary);
}

.theme-dark .dw-cal-legend {
    border-color: var(--border-subtle);
}

.theme-dark .dw-popover {
    background: var(--bg-elevated);
    border-color: var(--border-color);
    box-shadow: var(--shadow-card);
}

/* ── Department Classes (dc-*) ───────────────────────────── */
.theme-dark .dc-toolbar,
.theme-dark .dc-code-card,
.theme-dark .dc-class-card,
.theme-dark .dc-tab-panel,
.theme-dark .dc-info-bar,
.theme-dark .dc-ann-item,
.theme-dark .dc-ann-card,
.theme-dark .dc-student-row,
.theme-dark .dc-assignment-card,
.theme-dark .dc-group-card,
.theme-dark .dc-group-detail,
.theme-dark .dc-inline-manage-panel,
.theme-dark .dc-modal,
.theme-dark .dc-modal-content,
.theme-dark .dc-upload-result,
.theme-dark .dc-import-summary-item,
.theme-dark .dc-fs-faculty-summary,
.theme-dark .dc-om-action-banner,
.theme-dark .dc-filter-pill,
.theme-dark .dc-view-btn,
.theme-dark .dc-tab,
.theme-dark .dc-form-panel,
.theme-dark .dc-picker-card,
.theme-dark .dc-detail-card,
.theme-dark .dc-schedule-card,
.theme-dark .dc-file-row,
.theme-dark .dc-archive-banner {
    background: var(--bg-main);
    border-color: var(--border-color);
    color: var(--text-primary);
}

html.theme-dark .dc-archive-banner--archived {
    background: rgba(62, 207, 142, 0.1);
    border-color: rgba(62, 207, 142, 0.28);
    color: var(--text-primary);
}

html.theme-dark .dc-archive-banner--archived strong {
    color: var(--primary-action);
}

html.theme-dark .dc-tab[data-tab="archive"]:hover {
    background: var(--bg-hover);
    color: var(--primary-action);
}

html.theme-dark .dc-tab[data-tab="archive"].active {
    background: var(--bg-elevated);
    color: var(--primary-action);
    border-color: rgba(62, 207, 142, 0.35);
    box-shadow: none;
}

.theme-dark .dc-search-box,
.theme-dark .dc-select,
.theme-dark .dc-input,
.theme-dark .dc-textarea,
.theme-dark .dc-filter-search {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

/* Announcement cards */
.theme-dark .dc-ann-card:hover {
    border-color: var(--primary-action);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.28);
}
.theme-dark .dc-ann-card-icon {
    background: rgba(62, 207, 142, 0.16);
}
.theme-dark .dc-ann-card-icon i {
    color: var(--primary-action);
}
.theme-dark .dc-ann-card-info h5,
.theme-dark .dc-ann-card-body {
    color: var(--text-primary);
}
.theme-dark .dc-ann-meta {
    color: var(--text-muted);
}

.theme-dark .dc-tab-bar {
    background: var(--bg-main);
    border-color: var(--border-color);
}

.theme-dark .dc-assignment-list .dc-assignment-card:hover,
.theme-dark .dc-code-card-clickable:hover,
.theme-dark .dc-class-card:hover {
    background: var(--bg-subtle);
}

.theme-dark .dc-assignment-icon {
    background: var(--status-warning-bg);
    border-color: rgba(251, 191, 36, 0.28);
}

.theme-dark .dc-assignment-icon i {
    color: var(--status-warning-fg);
}

.theme-dark .dc-assignment-due {
    color: var(--status-warning-fg);
}

.theme-dark .dc-assignment-actions .dc-btn-icon {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .dc-assignment-actions .dc-btn-icon:hover {
    background: var(--bg-hover);
    border-color: var(--primary-action);
    color: var(--primary-action);
}

.theme-dark .dc-badge-success,
html.theme-dark .dc-badge-success {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
    border-color: rgba(62, 207, 142, 0.35);
}

.theme-dark .dc-badge-danger,
html.theme-dark .dc-badge-danger {
    background: var(--status-danger-bg);
    color: var(--status-danger-fg);
    border-color: rgba(248, 113, 113, 0.35);
}

.theme-dark .dc-badge-info,
html.theme-dark .dc-badge-info {
    background: var(--status-info-bg);
    color: var(--status-info-fg);
    border-color: rgba(96, 165, 250, 0.35);
}

.theme-dark .dc-badge-secondary,
html.theme-dark .dc-badge-secondary {
    background: var(--bg-secondary);
    color: var(--text-muted);
    border-color: var(--border-color);
}

.theme-dark .dc-badge-warning,
html.theme-dark .dc-badge-warning {
    background: var(--status-warning-bg);
    color: var(--status-warning-fg);
    border-color: rgba(251, 191, 36, 0.35);
}

.theme-dark .dc-tab-toolbar,
.theme-dark .dc-course-group-header,
.theme-dark .dc-group-list-item,
.theme-dark .dc-student-list .dc-student-row:hover,
.theme-dark .dc-assignment-list .dc-assignment-card:hover,
.theme-dark .dc-code-card-clickable:hover,
.theme-dark .dc-class-card:hover {
    background: var(--bg-subtle);
}

.theme-dark .dc-tab.active,
.theme-dark .dc-filter-pill.active,
.theme-dark .dc-view-btn.active {
    background: var(--bg-elevated);
    color: var(--primary-action);
    border-color: rgba(62, 207, 142, 0.35);
}

/* Department classes — filter pills (Active / Archived / All) */
.theme-dark .dc-filter-pills,
html.theme-dark .dc-filter-pills {
    background: var(--bg-secondary) !important;
    border: 1px solid var(--border-color);
}

.theme-dark .dc-filter-pill:not(.active),
html.theme-dark .dc-filter-pill:not(.active) {
    background: transparent !important;
    color: var(--text-muted) !important;
}

.theme-dark .dc-filter-pill.active,
html.theme-dark .dc-filter-pill.active {
    background: var(--bg-elevated) !important;
    color: var(--primary-action) !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.28);
}

.theme-dark .dc-filter-count,
html.theme-dark .dc-filter-count {
    color: inherit;
    opacity: 0.9;
}

.theme-dark .dc-btn-secondary,
.theme-dark .dc-btn-outline-green,
.theme-dark .dc-btn-outline-red,
.theme-dark .dc-back-btn {
    background: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

.theme-dark .dc-btn-secondary:hover,
.theme-dark .dc-back-btn:hover {
    background: var(--bg-hover);
}

.theme-dark .dc-btn-outline-green:hover {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
}

.theme-dark .dc-btn-outline-red:hover {
    background: var(--status-danger-bg);
    color: var(--status-danger-fg);
}

.theme-dark .dc-btn-primary,
.theme-dark .dc-btn-success {
    background: var(--primary-action);
    color: var(--text-inverse);
    border-color: var(--primary-action);
}

.theme-dark .dc-btn-primary:hover,
.theme-dark .dc-btn-success:hover {
    background: var(--primary-hover);
    border-color: var(--primary-hover);
}

.theme-dark .dc-empty,
.theme-dark .dc-loading,
.theme-dark .dc-class-count,
.theme-dark .dc-code-label,
.theme-dark .dc-stat-label,
.theme-dark .dc-section-heading {
    color: var(--text-muted);
}

.theme-dark .dc-code-heading,
.theme-dark .dc-course-group-code,
.theme-dark .dc-stat-value {
    color: var(--text-primary);
}

.theme-dark .dc-modal-overlay,
.theme-dark .dc-overlay {
    background: var(--overlay-bg);
}

.theme-dark .dc-modal-header,
.theme-dark .dc-modal-footer {
    border-color: var(--border-color);
    background: var(--bg-elevated);
}

.theme-dark .dc-table th,
.theme-dark .dc-fs-faculty-table th,
.theme-dark .dc-stu-upload-table th {
    background: var(--bg-subtle);
    color: var(--text-muted);
    border-color: var(--border-color);
}

.theme-dark .dc-table td,
.theme-dark .dc-fs-faculty-table td,
.theme-dark .dc-stu-upload-table td {
    border-color: var(--border-subtle);
    color: var(--text-primary);
}

.theme-dark .dc-table tbody tr:hover,
.theme-dark .dc-fs-faculty-table tbody tr:hover {
    background: var(--bg-hover);
}

.theme-dark .dc-upload-result-success,
.theme-dark .dc-stu-upload-status-success,
.theme-dark .dc-phase-pill--active {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
}

.theme-dark .dc-upload-result-error,
.theme-dark .dc-stu-upload-status-error,
.theme-dark .dc-end-term-warning {
    background: var(--status-danger-bg);
    color: var(--status-danger-fg);
}

.theme-dark .dc-end-term-eligibility-stat {
    background: var(--surface-secondary);
    border-color: var(--border-color);
}

.theme-dark .dc-end-term-eligibility-stat--ok {
    background: rgba(22, 101, 52, 0.18);
    border-color: rgba(34, 197, 94, 0.35);
    color: #86efac;
}

.theme-dark .dc-end-term-eligibility-stat--warn {
    background: rgba(146, 64, 14, 0.18);
    border-color: rgba(251, 191, 36, 0.35);
    color: #fcd34d;
}

.theme-dark .dc-end-term-eligibility-table tbody tr.dc-eligibility-row-gap {
    background: rgba(245, 158, 11, 0.12);
}

.theme-dark .dc-eligibility-type-badge--group {
    background: rgba(37, 99, 235, 0.18);
    color: #93c5fd;
}

.theme-dark .dc-eligibility-type-badge--individual {
    background: rgba(109, 40, 217, 0.18);
    color: #c4b5fd;
}

.theme-dark .dc-eligibility-type-badge--panelist {
    background: rgba(15, 118, 110, 0.18);
    color: #5eead4;
}

.theme-dark .dc-eligibility-status-pill--complete {
    background: rgba(22, 101, 52, 0.22);
    color: #86efac;
}

.theme-dark .dc-eligibility-status-pill--missing {
    background: rgba(153, 27, 27, 0.22);
    color: #fca5a5;
}

.theme-dark .dc-eligibility-status-pill--pending {
    background: rgba(146, 64, 14, 0.22);
    color: #fcd34d;
}

.theme-dark .dc-eligibility-details--warn {
    color: #fbbf24;
}

.theme-dark .dc-end-term-eligibility-table tbody tr.dc-eligibility-group-header td {
    background: var(--surface-secondary);
}

.theme-dark .dc-end-term-eligibility-table tbody tr.dc-eligibility-group-header--incomplete td {
    background: rgba(245, 158, 11, 0.12);
}

.theme-dark .dc-end-term-eligibility-table tbody tr.dc-eligibility-group-header--complete td {
    background: rgba(22, 101, 52, 0.12);
}

.theme-dark .dc-eligibility-group-badge--complete {
    background: rgba(22, 101, 52, 0.22);
    color: #86efac;
}

.theme-dark .dc-eligibility-group-badge--attention {
    background: rgba(146, 64, 14, 0.22);
    color: #fcd34d;
}

.theme-dark .dc-eligibility-group-badge--incomplete {
    background: rgba(153, 27, 27, 0.22);
    color: #fca5a5;
}

.theme-dark .dc-eligibility-verdict-badge--pass {
    background: rgba(22, 101, 52, 0.18);
    border-color: rgba(34, 197, 94, 0.35);
    color: #86efac;
}

.theme-dark .dc-eligibility-verdict-badge--fail {
    background: rgba(127, 29, 29, 0.22);
    border-color: rgba(248, 113, 113, 0.35);
    color: #fca5a5;
}

.theme-dark .dc-eligibility-verdict-badge--warn {
    background: rgba(146, 64, 14, 0.18);
    border-color: rgba(251, 191, 36, 0.35);
    color: #fcd34d;
}

.theme-dark .dc-eligibility-verdict-badge--neutral {
    background: var(--surface-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .dc-eligibility-tally-item--submitted {
    background: rgba(22, 101, 52, 0.18);
    border-color: rgba(34, 197, 94, 0.35);
    color: #86efac;
}

.theme-dark .dc-eligibility-tally-item--missing {
    background: rgba(153, 27, 27, 0.18);
    border-color: rgba(248, 113, 113, 0.35);
    color: #fca5a5;
}

.theme-dark .dc-eligibility-tally-item--pending {
    background: rgba(146, 64, 14, 0.18);
    border-color: rgba(251, 191, 36, 0.35);
    color: #fcd34d;
}

.theme-dark .dc-eligibility-outstanding {
    color: #fbbf24;
}

.theme-dark .dc-eligibility-outstanding--ok {
    color: #86efac;
}

.theme-dark .dc-eligibility-compact-ok {
    background: rgba(22, 101, 52, 0.18);
    border-color: rgba(34, 197, 94, 0.35);
    color: #86efac;
}

.theme-dark .dc-eligibility-compact-wrap {
    background: var(--surface-secondary);
    border-color: var(--border-color);
}

.theme-dark .dc-eligibility-compact-table tbody tr.dc-eligibility-compact-row-warn {
    background: rgba(245, 158, 11, 0.12);
}

.theme-dark .dc-stu-upload-status-blocked,
.theme-dark .dc-btn-warning,
.theme-dark .dc-phase-pill--warning {
    background: var(--status-warning-bg);
    color: var(--status-warning-fg);
}

.theme-dark .dc-pending-invite-status,
.theme-dark .dc-mini-badge,
.theme-dark .dc-badge {
    border-color: var(--border-color);
}

/* Department classes — course code cards (landing grid) */
.theme-dark .dc-code-card--archived,
html.theme-dark .dc-code-card--archived {
    background: var(--bg-main) !important;
    border-color: var(--border-color) !important;
    opacity: 1;
}

.theme-dark .dc-code-card-icon,
html.theme-dark .dc-code-card-icon {
    background: rgba(62, 207, 142, 0.14) !important;
}

.theme-dark .dc-code-card--archived .dc-code-card-icon,
html.theme-dark .dc-code-card--archived .dc-code-card-icon {
    background: var(--bg-subtle) !important;
}

.theme-dark .dc-code-card-stats,
html.theme-dark .dc-code-card-stats {
    border-color: var(--border-subtle) !important;
}

.theme-dark .dc-badge-active,
html.theme-dark .dc-badge-active {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
}

.theme-dark .dc-badge-completed,
html.theme-dark .dc-badge-completed {
    background: var(--status-info-bg);
    color: var(--status-info-fg);
}

.theme-dark .dc-badge-archived,
html.theme-dark .dc-badge-archived {
    background: var(--bg-secondary);
    color: var(--text-muted);
}

.theme-dark .dc-badge-locked,
html.theme-dark .dc-badge-locked {
    background: var(--status-warning-bg);
    color: var(--status-warning-fg);
}

/* People tab — student table */
.theme-dark .dc-student-table {
    background: var(--bg-main);
    border-color: var(--border-color);
}

.theme-dark .dc-st-header {
    background: var(--bg-subtle);
    color: var(--text-muted);
}

.theme-dark .dc-st-row:not(.dc-st-header) {
    border-color: var(--border-subtle);
}

.theme-dark .dc-st-row:not(.dc-st-header):hover {
    background: var(--bg-hover);
}

.theme-dark .dc-st-email,
.theme-dark .dc-st-num,
.theme-dark .dc-student-page-label,
.theme-dark .dc-student-count {
    color: var(--text-muted);
}

.theme-dark .dc-student-list-footer {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .dc-student-page-btn {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .dc-student-page-btn:hover:not(:disabled) {
    background: var(--bg-hover);
    border-color: var(--primary-action);
    color: var(--primary-action);
}

.theme-dark .dc-card-btn {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-muted);
}

.theme-dark .dc-card-btn:hover {
    background: var(--bg-hover);
    border-color: var(--primary-action);
    color: var(--primary-action);
}

/* People tab — groups sidebar & detail */
.theme-dark .dc-group-detail-panel,
html.theme-dark .dc-group-detail-panel {
    background: var(--bg-main);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .dc-group-detail-header,
.theme-dark .dc-detail-section-hdr {
    border-color: var(--border-subtle);
}

.theme-dark .dc-group-code-hero,
.theme-dark .dc-group-detail-title i,
.theme-dark .dc-group-card-title i,
.theme-dark .dc-group-card-title h5 {
    color: var(--primary-action);
}

.theme-dark .dc-group-title-subtle,
.theme-dark .dc-group-member-name,
.theme-dark .dc-st-cell {
    color: var(--text-primary);
}

.theme-dark .dc-group-member-email,
.theme-dark .dc-group-no-members,
.theme-dark .dc-group-capacity-label,
.theme-dark .dc-group-card-subtitle,
.theme-dark .dc-detail-section-hdr span,
.theme-dark .dc-group-nav-label,
.theme-dark .dc-group-sidebar-count,
.theme-dark .dc-group-topic-empty,
.theme-dark .dc-group-topic-tag-more {
    color: var(--text-muted);
}

.theme-dark .dc-group-card:hover {
    background: var(--bg-hover);
}

.theme-dark .dc-group-card.selected {
    background: var(--bg-subtle);
    border-color: var(--primary-action);
}

.theme-dark .dc-group-card--current {
    background: var(--bg-subtle);
    border-color: var(--primary-action);
}

.theme-dark .dc-group-current-section {
    border-bottom-color: var(--border-color);
}

.theme-dark .dc-group-section-label {
    color: var(--text-muted);
}

.theme-dark .dc-group-user-flag {
    background: var(--status-success-bg);
    border-color: rgba(62, 207, 142, 0.35);
    color: var(--status-success-fg);
}

.theme-dark .dc-group-search {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .dc-group-search::placeholder {
    color: var(--text-muted);
}

.theme-dark .dc-group-detail-nav {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

.theme-dark .dc-group-nav-btn {
    background: var(--bg-main);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .dc-group-nav-btn:hover:not(:disabled) {
    background: var(--bg-hover);
    border-color: var(--primary-action);
    color: var(--primary-action);
}

.theme-dark .dc-group-code-pending-badge {
    background: var(--status-warning-bg);
    border-color: rgba(251, 191, 36, 0.45);
    color: var(--status-warning-fg);
}

.theme-dark .dc-group-topic-tag {
    background: var(--status-success-bg);
    border-color: rgba(62, 207, 142, 0.35);
    color: var(--status-success-fg);
}

.theme-dark .dc-group-faculty-expertise-tag {
    background: var(--status-success-bg);
    border-color: rgba(62, 207, 142, 0.28);
    color: var(--status-success-fg);
}

.theme-dark .dc-group-capacity-full,
.theme-dark .dc-group-capacity-label.full {
    color: var(--danger);
}

.theme-dark .dc-group-full-badge {
    background: var(--status-danger-bg);
    color: var(--status-danger-fg);
}

.theme-dark .dc-group-inline-invite-btn {
    color: var(--primary-action);
    border-color: var(--primary-action);
}

.theme-dark .dc-group-inline-invite-btn:hover {
    background: rgba(62, 207, 142, 0.12);
}

.theme-dark .dc-detail-remove-btn {
    color: var(--danger);
    border-color: var(--danger);
}

.theme-dark .dc-detail-remove-btn:hover {
    background: rgba(248, 113, 113, 0.12);
}

.theme-dark .dc-group-sidebar-empty {
    border-color: var(--border-color);
    color: var(--text-muted);
}

.theme-dark .dc-me-icon {
    color: var(--primary-action);
}

html.theme-dark .dc-code-card .dc-mini-badge[style*="background:#f3f4f6"],
html.theme-dark .dc-code-card .dc-mini-badge[style*="background: #f3f4f6"],
html.theme-dark .dc-code-card .dc-mini-badge[style*="background:#f5f6f7"],
html.theme-dark .dc-code-card .dc-mini-badge[style*="background: #f5f6f7"] {
    background: var(--bg-secondary) !important;
    color: var(--text-muted) !important;
    border-color: var(--border-color) !important;
}

html.theme-dark .dc-code-card .dc-mini-badge[style*="background:#fff7ed"],
html.theme-dark .dc-code-card .dc-mini-badge[style*="background: #fff7ed"] {
    background: var(--status-warning-bg) !important;
    color: var(--status-warning-fg) !important;
    border-color: rgba(251, 191, 36, 0.35) !important;
}

/* ── Student dashboard extras ────────────────────────────── */
.theme-dark .sd-class-card:hover,
.theme-dark .sd-thesis-item:hover {
    background: var(--bg-hover);
}

.theme-dark .sd-term-badge {
    background: rgba(62, 207, 142, 0.12);
    color: var(--primary-action);
    border-color: rgba(62, 207, 142, 0.28);
}

.theme-dark .sd-filter-pill {
    background: var(--bg-secondary);
    color: var(--text-muted);
    border-color: var(--border-color);
}

.theme-dark .sd-schedule-item,
.theme-dark .sd-deadline-item {
    background: var(--bg-main);
    border-color: var(--border-color);
}

.theme-dark .sd-right-panel::-webkit-scrollbar-thumb {
    background: #3d4f66;
}

/* ── Scheduling page (My Schedule) ─────────────────────────── */
.theme-dark .page-container,
.theme-dark .page-title {
    color: var(--text-primary);
}

/* page-subtitle handled by standard page hero block above */

.theme-dark .sched-page,
.theme-dark .sched-card,
.theme-dark .sched-panel,
.theme-dark .sched-grid-wrap,
.theme-dark .sched-event,
.theme-dark .sched-block,
.theme-dark .sched-sidebar-card,
.theme-dark .sched-date-entry,
.theme-dark .sched-calendar-card .event-item {
    background: var(--bg-main);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .sched-card-header {
    background: var(--bg-subtle);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .sched-tab-bar {
    background: var(--bg-main);
    border-color: var(--border-color);
}

.theme-dark .sched-tab {
    color: var(--text-muted);
}

.theme-dark .sched-tab:hover {
    background: var(--bg-hover);
    color: var(--primary-action);
}

.theme-dark .sched-tab.active {
    background: var(--primary-action);
    color: #fff;
}

.theme-dark .sched-card-hint,
.theme-dark .sched-legend,
.theme-dark .sched-entries-count,
.theme-dark .sched-gcal-help,
.theme-dark .sched-gcal-last-sync,
.theme-dark .sched-empty-state,
.theme-dark .sched-loading,
.theme-dark .sched-entry-note,
.theme-dark .sched-gcal-unavailable-hint {
    color: var(--text-muted);
}

.theme-dark .sched-info-banner {
    border-color: rgba(96, 165, 250, 0.35);
    background: var(--status-info-bg);
}

.theme-dark .sched-info-banner .sched-card-body {
    color: var(--status-info-fg);
}

.theme-dark .sched-form-group label,
.theme-dark .sched-entries-header,
.theme-dark .sched-entry-info {
    color: var(--text-primary);
}

.theme-dark .sched-input,
.theme-dark .sched-select,
.theme-dark .sched-note-textarea {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .sched-window-range {
    background: var(--status-info-bg);
    border-color: rgba(96, 165, 250, 0.35);
    color: var(--status-info-fg);
}

.theme-dark .sched-grid-wrapper {
    border-color: var(--border-color);
}

.theme-dark .sched-grid th,
.theme-dark .sched-grid td,
.theme-dark .sched-cell {
    border-color: var(--border-subtle);
    color: var(--text-primary);
}

.theme-dark .sched-grid thead th {
    background: var(--bg-subtle);
    color: var(--text-muted);
}

.theme-dark .sched-time-label {
    background: var(--bg-subtle);
    color: var(--text-muted);
    border-color: var(--border-subtle);
}

.theme-dark .sched-cell:hover {
    background: var(--bg-hover);
}

.theme-dark .sched-cell.sched-cell-busy {
    background: rgba(248, 113, 113, 0.18);
    border-color: rgba(248, 113, 113, 0.4);
}

.theme-dark .sched-cell.sched-cell-busy:hover {
    background: rgba(248, 113, 113, 0.26);
}

.theme-dark .sched-cell-demo {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

.theme-dark .sched-cell-demo.sched-cell-busy {
    background: rgba(248, 113, 113, 0.18);
    border-color: rgba(248, 113, 113, 0.4);
}

.theme-dark .sched-note-panel {
    background: var(--status-warning-bg);
    border-color: rgba(251, 191, 36, 0.35);
}

.theme-dark .sched-note-panel-header,
.theme-dark .sched-note-close {
    color: var(--status-warning-fg);
}

.theme-dark .sched-note-textarea {
    border-color: rgba(251, 191, 36, 0.35);
}

.theme-dark .sched-gcal-badge--connected {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
}

.theme-dark .sched-gcal-badge--disconnected {
    background: var(--bg-secondary);
    color: var(--text-muted);
}

.theme-dark .sched-gcal-badge--error {
    background: var(--status-danger-bg);
    color: var(--status-danger-fg);
}

.theme-dark .sched-entry-delete:hover {
    background: var(--status-danger-bg);
    color: var(--status-danger-fg);
}

.theme-dark .sched-entry-edit:hover {
    background: var(--status-info-bg);
    color: var(--status-info-fg);
}

.theme-dark .sched-btn-primary {
    background: var(--primary-action);
    color: var(--text-inverse);
}

.theme-dark .sched-btn-primary:hover:not(:disabled) {
    background: var(--primary-hover);
}

.theme-dark .sched-spinner {
    border-color: var(--border-color);
    border-top-color: var(--primary-action);
}

.theme-dark .sched-toolbar,
.theme-dark .sched-filters {
    background: var(--bg-subtle);
    border-color: var(--border-color);
}

/* ── Admin / course management ─────────────────────────────── */
.theme-dark .everyone-table-wrapper,
.theme-dark .everyone-table,
.theme-dark .cm-table-tools,
.theme-dark .groups-card,
.theme-dark .groups-panel,
.theme-dark .groups-modal,
.theme-dark .awm-table-wrap,
.theme-dark .ds-table-wrap {
    background: var(--bg-main);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .everyone-table th,
.theme-dark .awm-table th,
.theme-dark .ds-table th,
.theme-dark .groups-table th {
    background: var(--bg-subtle);
    color: var(--text-muted);
}

.theme-dark .everyone-table td,
.theme-dark .awm-table td,
.theme-dark .ds-table td,
.theme-dark .groups-table td {
    border-color: var(--border-subtle);
    color: var(--text-primary);
}

.theme-dark .groups-btn-secondary,
.theme-dark .groups-btn-outline {
    background: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

.theme-dark .groups-btn-primary {
    background: var(--primary-action);
    color: var(--text-inverse);
}

/* ── Defense booking — full page dark blend ───────────────── */
.theme-dark .db-page {
    background: transparent;
    color: var(--text-primary);
}

.theme-dark .db-page-header h1,
.theme-dark .db-page-header h1 i,
.theme-dark .db-side-card-header i,
.theme-dark .db-card-header i,
.theme-dark .db-meta-item i {
    color: var(--text-primary);
}

.theme-dark .db-page-header h1 i,
.theme-dark .db-breadcrumb {
    color: var(--primary-action);
}

.theme-dark .db-field-hint,
.theme-dark .db-card-hint,
.theme-dark .db-optional,
.theme-dark .db-meta-row,
.theme-dark .db-meta-item,
.theme-dark .db-empty-state,
.theme-dark .db-conflict-item i,
.theme-dark .db-confirm-label,
.theme-dark .db-confirm-notes,
.theme-dark .db-modal p {
    color: var(--text-muted);
}

.theme-dark .db-side-card,
.theme-dark .db-card,
.theme-dark .db-card-header,
.theme-dark .db-form-card,
.theme-dark .db-sched-card,
.theme-dark .db-schedule-card,
.theme-dark .db-modal,
.theme-dark .db-summary-table-wrap,
.theme-dark .db-tab-panel,
.theme-dark .db-side-card .event-item {
    background: var(--bg-main);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .db-schedule-card-header,
.theme-dark .db-as-table th {
    background: var(--bg-subtle);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .db-side-card-header,
.theme-dark .db-card-header,
.theme-dark .db-form-group label,
.theme-dark .db-sched-card-title,
.theme-dark .db-schedule-card-header-left,
.theme-dark .db-my-approval-row,
.theme-dark .db-confirm-value,
.theme-dark .db-confirm-participants,
.theme-dark .db-checkbox-label,
.theme-dark .db-modal-title,
.theme-dark .db-conflict-panel .db-conflict-title {
    color: var(--text-primary);
}

.theme-dark .db-input,
.theme-dark .db-select,
.theme-dark .db-textarea {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .db-input::placeholder {
    color: var(--text-muted);
}

.theme-dark .db-btn-secondary,
.theme-dark .db-btn-warning {
    background: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

.theme-dark .db-btn-secondary:hover:not(:disabled):not(.db-btn-soft-disabled),
.theme-dark .db-btn-warning:hover:not(:disabled):not(.db-btn-soft-disabled) {
    background: var(--bg-hover);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .db-btn-primary,
.theme-dark .db-btn-accent,
.theme-dark .db-btn-eval {
    background: var(--primary-action);
    color: var(--text-inverse);
    border-color: var(--primary-action);
}

.theme-dark .db-btn-primary:hover:not(:disabled):not(.db-btn-soft-disabled),
.theme-dark .db-btn-accent:hover:not(:disabled),
.theme-dark .db-btn-eval:hover:not(:disabled) {
    background: var(--primary-hover);
    border-color: var(--primary-hover);
}

.theme-dark .db-status-text--success {
    color: var(--status-success-fg);
}

.theme-dark .db-status-text--error {
    color: var(--status-danger-fg);
}

.theme-dark .db-tab-bar {
    background: var(--bg-subtle);
    border-color: var(--border-color);
}

.theme-dark .db-tab {
    color: var(--text-muted);
}

.theme-dark .db-tab:hover {
    background: rgba(62, 207, 142, 0.1);
    color: var(--primary-action);
}

.theme-dark .db-tab.active {
    background: var(--primary-action);
    color: var(--text-inverse);
    box-shadow: none;
}

.theme-dark .db-approval-table th,
.theme-dark .db-approval-table td,
.theme-dark .db-as-table td,
.theme-dark .db-summary-table th,
.theme-dark .db-summary-table td {
    background: var(--bg-main);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .db-summary-table th:hover {
    background: var(--bg-hover);
}

.theme-dark .db-summary-table th.db-sort-active {
    color: var(--primary-action);
}

.theme-dark .db-summary-table tr:hover td {
    background: var(--bg-hover);
}

.theme-dark .db-badge-tentative,
.theme-dark .db-as-badge--preview,
.theme-dark .db-gcal-badge--warn,
.theme-dark .db-confirm-gcal-status--warn {
    background: var(--status-warning-bg);
    color: var(--status-warning-fg);
    border-color: rgba(251, 191, 36, 0.35);
}

.theme-dark .db-badge-confirmed,
.theme-dark .db-appr-approved,
.theme-dark .db-as-badge--ok,
.theme-dark .db-gcal-badge--ok,
.theme-dark .db-confirm-gcal-status--ok {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
    border-color: rgba(62, 207, 142, 0.35);
}

.theme-dark .db-badge-cancelled,
.theme-dark .db-appr-rejected,
.theme-dark .db-as-badge--fail,
.theme-dark .db-gcal-badge--fail {
    background: var(--status-danger-bg);
    color: var(--status-danger-fg);
    border-color: rgba(248, 113, 113, 0.35);
}

.theme-dark .db-appr-pending,
.theme-dark .db-gcal-badge--pending {
    background: var(--bg-secondary);
    color: var(--text-muted);
    border-color: var(--border-color);
}

.theme-dark .db-as-badge--info {
    background: var(--status-info-bg);
    color: var(--status-info-fg);
    border-color: rgba(96, 165, 250, 0.35);
}

.theme-dark .db-conflict-panel {
    background: var(--status-warning-bg);
    border-color: rgba(251, 191, 36, 0.35);
    color: var(--text-primary);
}

.theme-dark .db-conflict-panel.critical {
    background: var(--status-danger-bg);
    border-color: rgba(248, 113, 113, 0.35);
}

.theme-dark .db-conflict-item,
.theme-dark .event-item {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .db-side-card .event-item.placeholder-event {
    background: transparent;
    color: var(--text-muted);
}

.theme-dark .db-confirm-gcal-notice {
    background: var(--status-info-bg);
    border-color: rgba(96, 165, 250, 0.35);
    color: var(--text-primary);
}

.theme-dark .db-confirm-gcal-notice i {
    color: var(--status-info-fg);
}

.theme-dark .db-confirm-gcal-notice a {
    color: var(--primary-action);
}

.theme-dark .db-empty-state i {
    color: var(--border-color);
}

.theme-dark .db-modal-backdrop {
    background: var(--overlay-bg);
}

.theme-dark .db-modal-divider,
.theme-dark .db-my-approval-row {
    border-color: var(--border-color);
}

/* ── Defense booking — Group Schedule Matrix (db-matrix-*) ─── */
.theme-dark .db-matrix-legend,
.theme-dark .db-matrix-legend-hint,
.theme-dark .db-matrix-empty-msg,
.theme-dark .db-matrix-detail-placeholder,
.theme-dark .db-matrix-detail-empty {
    color: var(--text-muted);
}

.theme-dark .db-matrix-wrap {
    background: var(--bg-main);
    border-color: var(--border-color);
}

.theme-dark .db-matrix-table th,
.theme-dark .db-matrix-table td {
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .db-matrix-table thead th {
    background: var(--bg-secondary);
    color: var(--text-primary);
}

.theme-dark .db-matrix-table th.db-matrix-sticky-col,
.theme-dark .db-matrix-table td.db-matrix-sticky-col {
    background: var(--bg-main);
    color: var(--text-primary);
}

.theme-dark .db-matrix-table thead th.db-matrix-sticky-col {
    background: var(--bg-secondary);
}

.theme-dark .db-matrix-swatch {
    border-color: var(--border-color);
}

.theme-dark .db-matrix-swatch--avail {
    background: var(--bg-main);
}

.theme-dark .db-matrix-swatch--booked-pending {
    background: var(--status-warning-bg);
    border-color: var(--status-warning-fg);
}

.theme-dark .db-matrix-swatch--confirmed {
    background: var(--status-success-bg);
    border-color: var(--status-success-fg);
}

.theme-dark .db-matrix-swatch--busy {
    background: rgba(255, 96, 96, 0.38);
    border-color: #ff6b6b;
}

.theme-dark .db-matrix-swatch--busy-deep {
    background: rgba(255, 72, 72, 0.58);
    border-color: #ff5252;
}

.theme-dark .db-matrix-data-cell--available {
    background: transparent;
}

.theme-dark .db-matrix-data-cell--booked-pending {
    background: var(--status-warning-bg);
}

.theme-dark .db-matrix-data-cell--confirmed {
    background: var(--status-success-bg);
}

.theme-dark .db-matrix-data-cell--unavailable,
.theme-dark .db-matrix-data-cell--unavailable-1 {
    background: rgba(255, 82, 82, 0.14);
}

.theme-dark .db-matrix-data-cell--unavailable-2 {
    background: rgba(255, 82, 82, 0.24);
}

.theme-dark .db-matrix-data-cell--unavailable-3 {
    background: rgba(255, 82, 82, 0.34);
}

.theme-dark .db-matrix-data-cell--unavailable-4 {
    background: rgba(255, 82, 82, 0.46);
}

.theme-dark .db-matrix-data-cell--unavailable-5,
.theme-dark .db-matrix-data-cell--unavailable-6,
.theme-dark .db-matrix-data-cell--unavailable-7,
.theme-dark .db-matrix-data-cell--unavailable-8 {
    background: rgba(255, 72, 72, 0.58);
}

.theme-dark .db-matrix-data-cell:hover,
.theme-dark .db-matrix-data-cell.is-active {
    outline-color: var(--primary-action);
}

.theme-dark .db-matrix-data-cell--unavailable:hover,
.theme-dark .db-matrix-data-cell--unavailable.is-active,
.theme-dark .db-matrix-data-cell[class*="db-matrix-data-cell--unavailable-"]:hover,
.theme-dark .db-matrix-data-cell[class*="db-matrix-data-cell--unavailable-"].is-active {
    outline-color: #ff6b6b;
}

.theme-dark .db-matrix-detail {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

.theme-dark .db-matrix-detail-heading,
.theme-dark .db-matrix-detail-col h4,
.theme-dark .db-matrix-detail-list li,
.theme-dark .db-matrix-detail-list .db-matrix-detail-reason,
.theme-dark .db-matrix-detail-booking-note {
    color: var(--text-primary);
}

.theme-dark .db-matrix-detail-col--available h4 {
    color: var(--status-success-fg);
}

.theme-dark .db-matrix-detail-col--unavailable h4 {
    color: #ff8a8a;
}

.theme-dark .db-matrix-detail-list .db-matrix-detail-role {
    color: var(--text-muted);
}

.theme-dark .db-matrix-detail-list li {
    border-bottom-color: var(--border-color);
}

.theme-dark .db-matrix-detail-booking-note {
    background: var(--bg-main);
    border-color: var(--border-color);
}

.theme-dark .db-matrix-detail-booking-note--pending {
    background: var(--status-warning-bg);
    border-color: var(--status-warning-fg);
    color: var(--status-warning-fg);
}

.theme-dark .db-matrix-detail-booking-note--confirmed {
    background: var(--status-success-bg);
    border-color: var(--status-success-fg);
    color: var(--status-success-fg);
}

.theme-dark .db-matrix-participant--available {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
}

.theme-dark .db-matrix-empty-msg--error {
    color: #ff8a8a;
}

.theme-dark .db-matrix-participant--busy {
    background: rgba(255, 82, 82, 0.22);
    color: #ff9a9a;
}

/* ── Defense booking — Scheduled Defenses tab (db-sched-*) ─── */
.theme-dark .db-sched-list-panel,
.theme-dark .db-sched-detail-wrap,
.theme-dark .db-sched-approval-table-wrap {
    background: var(--bg-main);
    border-color: var(--border-color);
}

.theme-dark .db-sched-detail-loading-overlay {
    background: rgba(18, 26, 40, 0.72);
}

.theme-dark .db-sched-count-badge {
    background: var(--status-success-bg);
    border-color: rgba(62, 207, 142, 0.35);
    color: var(--status-success-fg);
}

.theme-dark .db-sched-sort-chip {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-muted);
}

.theme-dark .db-sched-sort-chip:hover {
    background: var(--bg-hover);
    border-color: var(--primary-action);
    color: var(--primary-action);
}

.theme-dark .db-sched-sort-chip.is-active {
    background: var(--status-success-bg);
    border-color: var(--primary-action);
    color: var(--primary-action);
}

.theme-dark .db-sched-card:hover {
    background: var(--bg-hover);
    border-color: var(--primary-action);
}

.theme-dark .db-sched-card.is-selected {
    background: rgba(62, 207, 142, 0.12);
    border-color: var(--primary-action);
    box-shadow: inset 3px 0 0 var(--primary-action);
}

.theme-dark .db-sched-card-group,
.theme-dark .db-sched-detail-title,
.theme-dark .db-sched-my-response-label,
.theme-dark .db-approvals-member-name {
    color: var(--text-primary);
}

.theme-dark .db-sched-card-week,
.theme-dark .db-sched-card-meta,
.theme-dark .db-sched-card-chevron,
.theme-dark .db-sched-detail-subtitle,
.theme-dark .db-sched-info-chip-label,
.theme-dark .db-sched-section-title,
.theme-dark .db-approvals-section-hdr span,
.theme-dark .db-approvals-member-meta,
.theme-dark .db-approvals-empty,
.theme-dark .db-sched-empty,
.theme-dark .db-sched-filter-empty,
.theme-dark .db-sched-loading {
    color: var(--text-muted);
}

.theme-dark .db-sched-card-meta i,
.theme-dark .db-sched-info-chip > i {
    color: var(--primary-action);
}

.theme-dark .db-sched-empty i,
.theme-dark .db-sched-filter-empty i,
.theme-dark .db-sched-loading i,
.theme-dark .db-sched-detail-placeholder i {
    color: var(--border-color);
}

.theme-dark .db-sched-empty h3,
.theme-dark .db-sched-filter-empty h3,
.theme-dark .db-sched-detail-placeholder h3 {
    color: var(--text-primary);
}

.theme-dark .db-sched-detail-placeholder {
    background: var(--bg-subtle);
    color: var(--text-muted);
}

.theme-dark .db-sched-detail-topbar {
    background: var(--bg-subtle);
    border-color: var(--border-color);
}

.theme-dark .db-sched-mobile-back {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .db-sched-detail-header {
    border-color: var(--border-color);
}

.theme-dark .db-sched-info-chip {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

.theme-dark .db-sched-info-chip-value {
    color: var(--text-primary);
}

.theme-dark .db-sched-info-chip-value a {
    color: var(--primary-action);
}

.theme-dark .db-sched-section {
    border-color: var(--border-color);
}

.theme-dark .db-approvals-panel {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

.theme-dark .db-approvals-section-hdr {
    border-color: var(--border-subtle);
}

.theme-dark .db-sched-my-response {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

.theme-dark .db-completion-badge--complete {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
    border-color: rgba(62, 207, 142, 0.35);
}

.theme-dark .db-completion-badge--partial {
    background: var(--status-warning-bg);
    color: var(--status-warning-fg);
    border-color: rgba(251, 191, 36, 0.35);
}

.theme-dark .db-completion-badge--incomplete {
    background: var(--status-danger-bg);
    color: var(--status-danger-fg);
    border-color: rgba(248, 113, 113, 0.35);
}

.theme-dark .db-completion-badge--no_participants {
    background: var(--bg-secondary);
    color: var(--text-muted);
    border-color: var(--border-color);
}

.theme-dark .db-avail-badge--critical,
.theme-dark .db-priority-badge--highest {
    background: var(--status-danger-bg);
    color: var(--status-danger-fg);
    border-color: rgba(248, 113, 113, 0.35);
}

.theme-dark .db-avail-badge--limited,
.theme-dark .db-priority-badge--high {
    background: rgba(251, 146, 60, 0.16);
    color: #fdba74;
    border-color: rgba(251, 146, 60, 0.35);
}

.theme-dark .db-avail-badge--moderate,
.theme-dark .db-priority-badge--medium {
    background: var(--status-warning-bg);
    color: var(--status-warning-fg);
    border-color: rgba(251, 191, 36, 0.35);
}

.theme-dark .db-avail-badge--flexible {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
    border-color: rgba(62, 207, 142, 0.35);
}

.theme-dark .db-priority-badge,
.theme-dark .db-priority-badge--low {
    background: var(--bg-secondary);
    color: var(--text-muted);
    border-color: var(--border-color);
}

.theme-dark .rg-add-student-search-wrap {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

.theme-dark .rg-add-student-search-wrap .bi-search {
    color: var(--text-muted);
}

.theme-dark .sched-date-form,
.theme-dark .sched-gcal-events {
    border-color: var(--border-subtle);
}

.theme-dark .dcv-month-select,
.theme-dark .dcv-year-input,
.theme-dark .dcv-nav,
.theme-dark .dcv-toggle-btn,
.theme-dark .dcv-filter-btn,
.theme-dark .dcv-list-only li {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .dcv-day-label,
.theme-dark .dcv-legend-item,
.theme-dark .dcv-list-empty {
    color: var(--text-muted);
}

.theme-dark .dcv-day {
    background: transparent;
    border-color: transparent;
    color: var(--text-primary);
}

.theme-dark .dcv-day:hover:not(.dcv-day--empty) {
    background: var(--bg-hover);
    border-color: var(--border-color);
}

.theme-dark .dcv-day.is-today {
    border-color: var(--primary-action);
    background: rgba(62, 207, 142, 0.14);
    color: var(--primary-action);
}

.theme-dark .dcv-day.is-selected {
    background: var(--bg-elevated);
    border-color: var(--primary-action);
    box-shadow: 0 0 0 2px rgba(62, 207, 142, 0.22);
    color: var(--text-primary);
}

.theme-dark .dcv-day-badge {
    background: var(--primary-action);
    color: var(--text-inverse);
}

.theme-dark .dcv-legend {
    border-color: var(--border-subtle);
}

.theme-dark .dcv-toggle {
    background: var(--bg-subtle);
    border-color: var(--border-color);
}

.theme-dark .dcv-toggle-btn.is-active {
    background: var(--primary-action);
    color: var(--text-inverse);
}

.theme-dark .dcv-filter-btn.is-active {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
    border-color: rgba(62, 207, 142, 0.35);
}

.theme-dark .dcv-list-only li strong {
    color: var(--text-primary);
}

.theme-dark .dcv-list-only li span {
    color: var(--text-muted);
}

.theme-dark .dcv-agenda-body strong {
    color: var(--text-primary);
}

.theme-dark .dcv-agenda-body small {
    color: var(--text-muted);
}

.theme-dark .dcv-agenda-link {
    color: var(--primary-action);
}

/* ── Dashboard panels & overlays ─────────────────────────── */
.theme-dark .profile-overlay,
.theme-dark .notif-overlay,
.theme-dark .files-overlay,
.theme-dark .help-overlay,
.theme-dark .sidebar-mobile-overlay {
    background: var(--overlay-bg);
}

.theme-dark .profile-input,
.theme-dark .profile-textarea,
.theme-dark .files-search-input,
.theme-dark .notif-type-filter {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .profile-panel-close,
.theme-dark .notif-panel-close,
.theme-dark .files-panel-close,
.theme-dark .help-panel-close {
    color: var(--text-muted);
}

.theme-dark .profile-panel-close:hover,
.theme-dark .notif-panel-close:hover,
.theme-dark .files-panel-close:hover,
.theme-dark .help-panel-close:hover {
    background: var(--bg-hover);
    color: var(--text-primary);
}

.theme-dark .notif-item,
.theme-dark .profile-notif-item,
.theme-dark .files-panel-body .event-item,
.theme-dark .notification-item {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

.theme-dark .notif-item:hover,
.theme-dark .profile-notif-item:hover,
.theme-dark .notification-item:hover {
    background: var(--bg-hover);
}

.theme-dark .notif-title,
.theme-dark .profile-info-row .info-value {
    color: var(--text-primary);
}

.theme-dark .notif-desc,
.theme-dark .notif-due,
.theme-dark .profile-info-row .info-label {
    color: var(--text-muted);
}

.theme-dark .sidebar-mobile-toggle {
    background: var(--bg-elevated);
    border-color: var(--border-color);
    color: var(--text-primary);
}

/* ── Auth pages ────────────────────────────────────────────── */
.theme-dark body.auth-page {
    background: linear-gradient(rgba(10, 46, 31, 0.92), rgba(18, 26, 40, 0.95)),
                url('../images/campus_background.png') no-repeat center center fixed;
    background-size: cover;
    background-color: var(--bg-body);
}

.theme-dark .login-card,
.theme-dark .register-card {
    background: var(--bg-elevated);
    border-color: var(--border-color);
    box-shadow: var(--shadow-card);
    color: var(--text-primary);
}

.theme-dark .login-card label,
.theme-dark .register-card label,
.theme-dark .input-group label {
    color: var(--text-primary);
}

.theme-dark .login-card input,
.theme-dark .register-card input,
.theme-dark .register-card select {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .btn-google {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .register-link,
.theme-dark .help-links a {
    color: var(--link-color);
}

.theme-dark .login-card h2,
.theme-dark .register-card h2 {
    border-bottom-color: var(--border-color);
}

.theme-dark .input-group small,
.theme-dark #expertise-group small {
    color: var(--text-muted);
}

/* ── Expertise tag picker ──────────────────────────────────── */
.theme-dark .expertise-picker-search {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .expertise-picker-search:focus {
    border-color: var(--primary-action);
    box-shadow: 0 0 0 2px rgba(62, 207, 142, 0.2);
}

.theme-dark .expertise-picker-search::placeholder {
    color: var(--text-muted);
}

.theme-dark .expertise-picker {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

.theme-dark .expertise-chip {
    background: var(--bg-subtle);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .expertise-chip:hover:not(.disabled):not(.selected) {
    border-color: var(--primary-action);
    background: var(--bg-hover);
}

.theme-dark .expertise-chip.selected {
    background: var(--primary-action);
    border-color: var(--primary-action);
    color: #fff;
}

.theme-dark .expertise-chip.disabled:not(.selected) {
    opacity: 0.5;
}

.theme-dark .expertise-picker-page-info {
    color: var(--text-muted);
}

.theme-dark .expertise-picker-page-btn {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .expertise-picker-page-btn:hover:not(:disabled) {
    background: var(--bg-hover);
    border-color: var(--primary-action);
}

.theme-dark .expertise-picker-empty {
    color: var(--text-muted);
}

/* ── Toasts & tooltips ─────────────────────────────────────── */
.theme-dark [data-tooltip]::after {
    background: var(--bg-elevated);
    color: var(--text-primary);
    border: 1px solid var(--border-color);
}

.theme-dark [data-tooltip]::before {
    border-top-color: var(--bg-elevated);
}

.theme-dark .toast.info {
    background-color: var(--accent-info);
}

/* ── Modals (global) ───────────────────────────────────────── */
.theme-dark .modal-overlay,
.theme-dark .cm-modal-overlay,
.theme-dark .sched-modal-overlay {
    background: var(--overlay-bg);
}

.theme-dark .modal-box,
.theme-dark .user-modal-box,
.theme-dark .bulk-upload-modal-box,
.theme-dark .confirm-box,
.theme-dark .rg-view-modal-box,
.theme-dark .rg-add-student-modal-box,
.theme-dark .cm-modal-box,
.theme-dark .sched-modal,
.theme-dark .groups-modal {
    background: var(--bg-elevated);
    border-color: var(--border-color);
    color: var(--text-primary);
    box-shadow: var(--shadow-card);
}

.theme-dark .modal-header,
.theme-dark .cm-modal-header,
.theme-dark .sched-modal-header,
.theme-dark .sched-modal-actions {
    background: var(--bg-subtle);
    border-color: var(--border-color);
}

.theme-dark .modal-header h3,
.theme-dark .cm-modal-header h3,
.theme-dark .sched-modal-header h3,
.theme-dark .confirm-box h3,
.theme-dark .modal-box h3 {
    color: var(--primary-action);
}

.theme-dark .modal-footer,
.theme-dark .cm-modal-footer,
.theme-dark .confirm-box p,
.theme-dark .modal-enroll .modal-intro,
.theme-dark .sched-modal-context {
    border-color: var(--border-color);
    color: var(--text-muted);
}

.theme-dark .modal-close-icon,
.theme-dark .cm-modal-close,
.theme-dark .sched-modal-close,
.theme-dark .modal-box .modal-close {
    color: var(--text-muted);
}

.theme-dark .modal-close-icon:hover,
.theme-dark .cm-modal-close:hover,
.theme-dark .sched-modal-close:hover {
    color: var(--text-primary);
}

.theme-dark .modal-box input:not([type="checkbox"]):not([type="radio"]),
.theme-dark .modal-box select,
.theme-dark .modal-box textarea,
.theme-dark .form-group input,
.theme-dark .form-group select,
.theme-dark .cm-modal-body input,
.theme-dark .cm-modal-body select,
.theme-dark .cm-modal-body textarea,
.theme-dark .cm-form-group input,
.theme-dark .cm-form-group select,
.theme-dark .cm-form-group textarea,
.theme-dark .sched-modal-body input,
.theme-dark .sched-modal-body select,
.theme-dark .sched-modal-body textarea {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .form-group label,
.theme-dark .cm-form-group label {
    color: var(--text-primary);
}

.theme-dark .modal-enroll .drop-zone,
.theme-dark .bulk-upload-zone {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .modal-enroll .drop-zone:hover,
.theme-dark .bulk-upload-zone:hover {
    background: var(--bg-hover);
    border-color: var(--primary-action);
}

.theme-dark .bulk-upload-hint,
.theme-dark .bulk-upload-meta,
.theme-dark .bulk-upload-zone p {
    color: var(--text-muted);
}

.theme-dark .bulk-upload-zone i,
.theme-dark .bulk-upload-browse {
    color: var(--primary-action);
}

.theme-dark .bulk-upload-selected,
.theme-dark .bulk-upload-summary-item {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .bulk-upload-table th {
    background: var(--bg-subtle);
    color: var(--text-muted);
    border-color: var(--border-color);
}

.theme-dark .bulk-upload-table td {
    border-color: var(--border-subtle);
    color: var(--text-primary);
}

.theme-dark .bulk-upload-summary-item strong {
    color: var(--text-primary);
}

.theme-dark .confirm-icon-wrapper {
    background: var(--status-danger-bg);
    color: var(--status-danger-fg);
}

/* ── Department Classes modals & pickers ───────────────────── */
.theme-dark .dc-picker-overlay,
.theme-dark .dc-picker-modal,
.theme-dark .dc-picker-modal-header,
.theme-dark .dc-picker-modal-search,
.theme-dark .dc-picker-controls,
.theme-dark .dc-picker-policy-hint,
.theme-dark .dc-picker-topic-tags-row {
    background: var(--bg-elevated);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .dc-picker-modal-title,
.theme-dark .dc-picker-capacity-value {
    color: var(--text-primary);
}

.theme-dark .dc-picker-modal-subtitle,
.theme-dark .dc-picker-topic-label,
.theme-dark .dc-capacity-label {
    color: var(--text-muted);
}

.theme-dark .dc-picker-modal-close {
    background: var(--bg-secondary);
    color: var(--text-muted);
}

.theme-dark .dc-picker-modal-close:hover,
.theme-dark .dc-modal-close:hover {
    background: var(--status-danger-bg);
    color: var(--status-danger-fg);
}

.theme-dark .dc-picker-match-toggle {
    background: var(--bg-secondary);
    color: var(--text-muted);
    border-color: var(--border-color);
}

.theme-dark .dc-picker-match-toggle.active {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
    border-color: rgba(62, 207, 142, 0.35);
}

.theme-dark .dc-picker-modal-table thead th {
    background: var(--bg-subtle);
    color: var(--text-muted);
    border-color: var(--border-color);
}

.theme-dark .dc-picker-modal-table tbody tr {
    border-color: var(--border-subtle);
}

.theme-dark .dc-picker-row-recommended {
    background: var(--status-info-bg);
}

.theme-dark .dc-picker-modal-table tbody tr:hover {
    background: var(--bg-hover);
}

.theme-dark .dc-picker-modal-icon.student {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
}

.theme-dark .dc-picker-modal-icon.panelist {
    background: var(--status-info-bg);
    color: var(--status-info-fg);
}

.theme-dark .dc-picker-modal-icon.adviser {
    background: rgba(167, 139, 250, 0.16);
    color: #c4b5fd;
}

.theme-dark .dc-picker-topic-tag {
    background: var(--status-success-bg);
    border-color: rgba(62, 207, 142, 0.28);
    color: var(--status-success-fg);
}

.theme-dark .dc-picker-role-badge--panelist {
    background: rgba(56, 189, 248, 0.14);
    border-color: rgba(56, 189, 248, 0.32);
    color: #7dd3fc;
}
.theme-dark .dc-picker-role-badge--adviser {
    background: rgba(129, 140, 248, 0.16);
    border-color: rgba(129, 140, 248, 0.34);
    color: #c7d2fe;
}
.theme-dark .dc-picker-role-badge--coordinator {
    background: var(--status-success-bg);
    border-color: rgba(62, 207, 142, 0.32);
    color: var(--status-success-fg);
}
.theme-dark .dc-picker-role-badge--chairperson {
    background: rgba(167, 139, 250, 0.16);
    border-color: rgba(167, 139, 250, 0.34);
    color: #ddd6fe;
}
.theme-dark .dc-picker-role-badge--faculty,
.theme-dark .dc-picker-role-badge--default {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}
.theme-dark .dc-picker-role-badge--dean,
.theme-dark .dc-picker-role-badge--admin {
    background: rgba(251, 191, 36, 0.14);
    border-color: rgba(251, 191, 36, 0.32);
    color: #fcd34d;
}

.theme-dark .dc-picker-expertise-chip {
    background: var(--status-success-bg);
    border-color: rgba(62, 207, 142, 0.28);
    color: var(--status-success-fg);
}
.theme-dark .dc-picker-expertise-chip--count {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-muted);
}
.theme-dark .dc-picker-expertise-empty,
.theme-dark .dc-picker-match-tags {
    color: var(--text-muted);
}
.theme-dark .dc-picker-match-badge--yes {
    background: var(--status-success-bg);
    border-color: rgba(62, 207, 142, 0.32);
    color: var(--status-success-fg);
}
.theme-dark .dc-picker-match-badge--no,
.theme-dark .dc-picker-match-badge--neutral {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-muted);
}
.theme-dark .dc-expertise-view-btn {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-muted);
}
.theme-dark .dc-expertise-view-btn:hover {
    background: var(--status-success-bg);
    border-color: rgba(62, 207, 142, 0.35);
    color: var(--status-success-fg);
}
.theme-dark .dc-expertise-popover {
    background: var(--bg-elevated);
    border-color: var(--border-color);
    box-shadow: 0 18px 36px rgba(0, 0, 0, 0.45);
}
.theme-dark .dc-expertise-popover-title {
    color: var(--text-muted);
}

/* ── Buttons (global secondary / outline) ──────────────────── */
.theme-dark .groups-btn-secondary,
.theme-dark .groups-btn-outline,
.theme-dark .groups-btn-icon,
.theme-dark .btn-cancel,
.theme-dark .btn-secondary,
.theme-dark .report-btn-secondary,
.theme-dark .cm-btn-secondary,
.theme-dark .rg-btn,
.theme-dark .ds-btn-outline {
    background: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

.theme-dark .groups-btn-secondary:hover,
.theme-dark .groups-btn-outline:hover,
.theme-dark .groups-btn-icon:hover,
.theme-dark .btn-cancel:hover,
.theme-dark .btn-secondary:hover,
.theme-dark .report-btn-secondary:hover,
.theme-dark .cm-btn-secondary:hover,
.theme-dark .rg-btn:hover,
.theme-dark .ds-btn-outline:hover {
    background: var(--bg-hover);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .groups-btn-primary,
.theme-dark .btn-primary,
.theme-dark .upload-btn,
.theme-dark .groups-save-btn,
.theme-dark .cm-btn-primary,
.theme-dark .rg-btn-primary {
    background: var(--primary-action);
    color: var(--text-inverse);
    border-color: var(--primary-action);
}

.theme-dark .groups-btn-primary:hover,
.theme-dark .btn-primary:hover,
.theme-dark .upload-btn:hover,
.theme-dark .groups-save-btn:hover,
.theme-dark .cm-btn-primary:hover,
.theme-dark .rg-btn-primary:hover {
    background: var(--primary-hover);
    border-color: var(--primary-hover);
}

.theme-dark .admin-crud-btn-secondary {
    background: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

.theme-dark .admin-crud-btn-secondary:hover:not(:disabled) {
    background: var(--bg-hover);
}

.theme-dark .btn-icon:hover {
    background: var(--bg-hover);
}

.theme-dark .btn-danger,
.theme-dark .cm-btn-danger,
.theme-dark .groups-btn-danger {
    background: var(--danger);
    color: #fff;
}

/* ── Defense booking buttons & modals ──────────────────────── */
.theme-dark .db-modal {
    background: var(--bg-elevated);
    border-color: var(--border-color);
}

.theme-dark .db-modal-title {
    color: var(--text-primary);
}

.theme-dark .db-modal p {
    color: var(--text-muted);
}

.theme-dark .db-modal-divider {
    border-color: var(--border-color);
}

.theme-dark .db-btn-secondary,
.theme-dark .db-btn-warning {
    background: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

.theme-dark .db-btn-secondary:hover:not(:disabled):not(.db-btn-soft-disabled),
.theme-dark .db-btn-warning:hover:not(:disabled):not(.db-btn-soft-disabled) {
    background: var(--bg-hover);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .db-btn-primary {
    background: var(--primary-action);
    color: var(--text-inverse);
    border-color: var(--primary-action);
}

.theme-dark .db-btn-primary:hover:not(:disabled):not(.db-btn-soft-disabled) {
    background: var(--primary-hover);
    border-color: var(--primary-hover);
}

/* ── Reports & admin inline panels ─────────────────────────── */
.theme-dark .report-file-input {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark #report-export-format-inline,
.theme-dark #report-start-date,
.theme-dark #report-end-date,
.theme-dark .panel input[type="date"],
.theme-dark .panel input[type="time"],
.theme-dark .panel input[type="text"],
.theme-dark .panel input[type="search"],
.theme-dark .panel input[type="number"],
.theme-dark .panel select,
.theme-dark .panel textarea {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

.theme-dark .report-auto-grid,
.theme-dark .report-auto-item,
.theme-dark .report-auto-empty,
.theme-dark .report-auto-run,
.theme-dark .report-auto-toggle,
.theme-dark .report-auto-delete,
.theme-dark .ds-panel {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .report-auto-field input,
.theme-dark .report-auto-field select,
.theme-dark .report-auto-field textarea {
    background: var(--bg-main);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .report-auto-field label,
.theme-dark .report-auto-item-title,
.theme-dark .ds-sub,
.theme-dark .ds-section-title,
.theme-dark .panel strong,
.theme-dark .panel label {
    color: var(--text-primary);
}

.theme-dark .report-lock-note,
.theme-dark .report-auto-item-meta,
.theme-dark .report-auto-item-status,
.theme-dark .report-auto-empty,
.theme-dark .panel p,
.theme-dark .panel small {
    color: var(--text-muted);
}

.theme-dark .report-auto-status {
    color: var(--primary-action);
}

.theme-dark .report-auto-error {
    background: var(--status-danger-bg);
    color: var(--status-danger-fg);
}

.theme-dark .report-auto-badge {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
}

.theme-dark .report-auto-badge-paused {
    background: var(--status-warning-bg);
    color: var(--status-warning-fg);
}

.theme-dark .report-auto-run {
    border-color: var(--primary-action);
    color: var(--primary-action);
}

.theme-dark .report-auto-delete {
    border-color: rgba(248, 113, 113, 0.45);
    color: var(--status-danger-fg);
}

.theme-dark .report-file-input::file-selector-button {
    background: var(--bg-main);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.theme-dark .report-file-input::file-selector-button:hover {
    background: var(--bg-hover);
    border-color: var(--primary-action);
    color: var(--primary-action);
}

/* Inline-styled report rows inside panels */
.theme-dark .panels .panel div[style*="padding:15px"],
.theme-dark .panels .panel div[style*="background:#f9f9f9"],
.theme-dark .panels .panel div[style*="background: #f9f9f9"] {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
}

/* ── Roles / groups view modals ────────────────────────────── */
.theme-dark .rg-view-row,
.theme-dark .rg-view-section {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

.theme-dark .rg-view-row span,
.theme-dark .rg-view-loading {
    color: var(--text-muted);
}

.theme-dark .rg-view-row strong,
.theme-dark .rg-view-section h4 {
    color: var(--text-primary);
}

/* ── Course management status badges in modals ─────────────── */
.theme-dark .cm-status-badge--active {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
}

.theme-dark .cm-status-badge--closed,
.theme-dark .cm-status-badge--completed {
    background: var(--status-warning-bg);
    color: var(--status-warning-fg);
}

.theme-dark .cm-status-badge--archived {
    background: var(--bg-secondary);
    color: var(--text-muted);
}

/* ── Scheduling buttons ────────────────────────────────────── */
.theme-dark .sched-btn-secondary,
.theme-dark .sched-btn-danger-outline {
    background: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

.theme-dark .sched-btn-secondary:hover:not(:disabled),
.theme-dark .sched-btn-danger-outline:hover:not(:disabled) {
    background: var(--bg-hover);
}

.theme-dark .sched-btn-danger-outline {
    color: var(--status-danger-fg);
    border-color: rgba(248, 113, 113, 0.35);
}

.theme-dark .sched-btn-danger-outline:hover:not(:disabled) {
    background: var(--status-danger-bg);
}

/* ── My Groups (rg-*) ──────────────────────────────────────── */
.theme-dark .groups-page {
    background: transparent;
    border: none;
    box-shadow: none;
    color: var(--text-primary);
}

.theme-dark .groups-main-title {
    color: var(--text-primary);
}

/* groups-main-subtitle handled by standard page hero block */

.theme-dark .groups-breadcrumb {
    color: var(--text-muted);
}

.theme-dark .groups-tabs-row {
    border-color: var(--border-color);
}

.theme-dark .groups-tab {
    color: var(--text-muted);
}

.theme-dark .groups-tab.is-active {
    color: var(--primary-action);
    border-bottom-color: var(--primary-action);
}

.theme-dark .rg-user-chip {
    background: var(--status-info-bg);
    color: var(--status-info-fg);
    border-color: rgba(96, 165, 250, 0.35);
}

.theme-dark .rg-search-wrap,
.theme-dark .rg-select {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
}

html.theme-dark .groups-page .rg-search-wrap {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
}

html.theme-dark .groups-page .rg-search-wrap:focus-within {
    border-color: var(--primary-action) !important;
    box-shadow: 0 0 0 2px rgba(62, 207, 142, 0.22);
}

html.theme-dark .groups-page .rg-search-wrap i {
    color: var(--text-muted) !important;
}

html.theme-dark .groups-page .rg-search-input {
    background: transparent !important;
    color: var(--text-primary) !important;
    -webkit-text-fill-color: var(--text-primary);
}

html.theme-dark .groups-page .rg-select {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

.theme-dark .rg-search-wrap i,
.theme-dark .rg-search-input {
    color: var(--text-primary);
}

.theme-dark .rg-search-input::placeholder {
    color: var(--text-muted);
}

.theme-dark .rg-filter-btn {
    background: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

.theme-dark .rg-filter-btn:hover {
    background: var(--bg-hover);
}

.theme-dark .rg-results-meta,
.theme-dark .rg-loading,
.theme-dark .rg-checkbox-row,
.theme-dark .rg-group-class,
.theme-dark .rg-add-student-subtitle,
.theme-dark .rg-add-student-meta span,
.theme-dark .rg-view-section-hdr span {
    color: var(--text-muted);
}

.theme-dark .rg-stat-card {
    background: var(--bg-main);
    border-color: var(--border-color);
}

.theme-dark .rg-stat-card strong,
.theme-dark .rg-group-title,
.theme-dark .rg-add-student-meta strong {
    color: var(--text-primary);
}

.theme-dark .rg-stat-label {
    color: var(--text-muted);
}

.theme-dark .rg-empty {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

.theme-dark .rg-empty i,
.theme-dark .rg-empty p {
    color: var(--text-muted);
}

.theme-dark .rg-empty h3 {
    color: var(--text-primary);
}

.theme-dark .rg-card {
    background: var(--bg-main);
    border-color: var(--border-color);
}

.theme-dark .rg-group-code {
    background: var(--status-info-bg);
    color: var(--status-info-fg);
    border-color: rgba(96, 165, 250, 0.35);
}

.theme-dark .rg-status.is-active {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
    border-color: rgba(62, 207, 142, 0.35);
}

.theme-dark .rg-status.is-pending,
.theme-dark .rg-pending-chip.has-pending {
    background: var(--status-warning-bg);
    color: var(--status-warning-fg);
    border-color: rgba(251, 191, 36, 0.35);
}

.theme-dark .rg-status.is-muted,
.theme-dark .rg-pending-chip {
    background: var(--bg-secondary);
    color: var(--text-muted);
    border-color: var(--border-color);
}

.theme-dark .rg-role-chip {
    background: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

.theme-dark .rg-role-chip.role-managing {
    background: var(--status-info-bg);
    color: var(--status-info-fg);
    border-color: rgba(96, 165, 250, 0.35);
}

.theme-dark .rg-role-chip.role-panelist {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
    border-color: rgba(62, 207, 142, 0.35);
}

.theme-dark .rg-role-chip.role-advising {
    background: var(--status-warning-bg);
    color: var(--status-warning-fg);
    border-color: rgba(251, 191, 36, 0.35);
}

.theme-dark .rg-inline-invite-btn:hover {
    background: rgba(62, 207, 142, 0.12);
}

.theme-dark .rg-add-student-row {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

.theme-dark .rg-add-student-row.is-grouped {
    opacity: 0.72;
}

.theme-dark .rg-student-status-tag.available {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
    border-color: rgba(62, 207, 142, 0.35);
}

.theme-dark .rg-student-status-tag.grouped {
    background: var(--status-warning-bg);
    color: var(--status-warning-fg);
    border-color: rgba(251, 191, 36, 0.35);
}

.theme-dark .rg-student-status-tag.in-group {
    background: var(--status-info-bg);
    color: var(--status-info-fg);
    border-color: rgba(96, 165, 250, 0.35);
}

.theme-dark .rg-add-student-empty,
.theme-dark .rg-view-list li {
    color: var(--text-muted);
}

.theme-dark .rg-view-section-hdr {
    border-color: var(--border-subtle);
}

/* ══════════════════════════════════════════════════════════════
   GLOBAL — blend remaining white surfaces sitewide
   Page shells → transparent; cards/panels/tables → dark tokens
══════════════════════════════════════════════════════════════ */

html.theme-dark table {
    background: var(--bg-main);
    border-color: var(--border-color);
}

html.theme-dark thead {
    background: var(--bg-subtle);
}

html.theme-dark th,
html.theme-dark td {
    color: var(--text-primary);
    border-color: var(--border-color);
}

html.theme-dark .panel ul li {
    border-color: var(--border-subtle);
}

html.theme-dark .page-container,
html.theme-dark .controls-container,
html.theme-dark .everyone-view {
    color: var(--text-primary);
}

/* Evaluation dashboards — Defense Evaluation Form */
html.theme-dark .ev-page {
    background: transparent;
    color: var(--text-primary);
}

html.theme-dark .ev-card-header i,
html.theme-dark .ev-back-link,
html.theme-dark .ev-activity-icon,
html.theme-dark .ev-feedback-header i,
html.theme-dark .ev-template-meta a {
    color: var(--primary-action);
}

html.theme-dark .ev-page-header h1 {
    color: var(--text-primary) !important;
}

html.theme-dark .ev-breadcrumb {
    color: var(--primary-action);
    text-shadow: 0 0 14px rgba(62, 207, 142, 0.28);
}

html.theme-dark .ev-card-hint,
html.theme-dark .ev-empty-state,
html.theme-dark .ev-hint,
html.theme-dark .ev-activity-time,
html.theme-dark .ev-feedback-item-meta,
html.theme-dark .ev-feedback-empty,
html.theme-dark .ev-template-meta,
html.theme-dark .ev-tab-btn {
    color: var(--text-muted);
}

html.theme-dark .ev-card,
html.theme-dark .ev-card-header,
html.theme-dark .ev-form-section,
html.theme-dark .ev-panel,
html.theme-dark .ev-table-wrap,
html.theme-dark .ev-evaluation-item,
html.theme-dark .ev-template-editor,
html.theme-dark .ev-feedback-item {
    background: var(--bg-main) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary);
}

html.theme-dark .ev-form-section-title,
html.theme-dark .ev-card-header,
html.theme-dark .ev-form-group label,
html.theme-dark .ev-evaluation-title,
html.theme-dark .ev-activity-title,
html.theme-dark .ev-feedback-header,
html.theme-dark .ev-feedback-item-content,
html.theme-dark .ev-template-meta strong {
    color: var(--text-primary);
}

html.theme-dark .ev-input,
html.theme-dark .ev-select,
html.theme-dark .ev-textarea {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

html.theme-dark .ev-btn-primary {
    background: var(--primary-action);
    color: var(--text-inverse);
    border-color: var(--primary-action);
}

html.theme-dark .ev-btn-secondary {
    background: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

html.theme-dark .ev-btn-secondary:hover:not(:disabled) {
    background: var(--bg-hover);
}

html.theme-dark .ev-tabs {
    border-color: var(--border-color);
}

html.theme-dark .ev-tab-btn:hover {
    color: var(--text-primary);
}

html.theme-dark .ev-tab-btn.active {
    color: var(--primary-action);
    border-bottom-color: var(--primary-action);
}

html.theme-dark .ev-activity-item,
html.theme-dark .ev-feedback-comments {
    border-color: var(--border-subtle);
}

html.theme-dark .ev-empty-state i {
    color: var(--border-color);
}

html.theme-dark .ev-status-text--success {
    color: var(--status-success-fg);
}

html.theme-dark .ev-status-text--error {
    color: var(--status-danger-fg);
}

html.theme-dark .ev-badge-pass {
    background: var(--status-success-bg);
    color: var(--status-success-fg);
    border-color: rgba(62, 207, 142, 0.35);
}

html.theme-dark .ev-badge-fail {
    background: var(--status-danger-bg);
    color: var(--status-danger-fg);
    border-color: rgba(248, 113, 113, 0.35);
}

html.theme-dark .ev-badge-pending {
    background: var(--bg-secondary);
    color: var(--text-muted);
    border-color: var(--border-color);
}

html.theme-dark .ev-badge-revision {
    background: var(--status-warning-bg);
    color: var(--status-warning-fg);
    border-color: rgba(251, 191, 36, 0.35);
}

/* Evaluation form modal (inline-styled db-modal) */
html.theme-dark #eval-form-modal .db-modal,
html.theme-dark #eval-form-modal .db-modal[style*="background"] {
    background: var(--bg-elevated) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary);
}

html.theme-dark #eval-form-modal h2,
html.theme-dark #eval-form-modal .ev-form-section-title {
    color: var(--text-primary) !important;
}

html.theme-dark #eval-form-modal h2 i {
    color: var(--primary-action) !important;
}

html.theme-dark #eval-form-modal p,
html.theme-dark #eval-form-modal small,
html.theme-dark #eval-form-modal div[style*="color:#677682"],
html.theme-dark #eval-form-modal div[style*="color: #677682"] {
    color: var(--text-muted) !important;
}

html.theme-dark #ev-first-verdict-block,
html.theme-dark #ev-second-verdict-block,
html.theme-dark #ev-panelist-score-section,
html.theme-dark #ev-panelist-award-section,
html.theme-dark #form-award-description,
html.theme-dark #form-award-nomination-criteria,
html.theme-dark #ev-saved-verdict1-card,
html.theme-dark #ev-saved-verdict2-card,
html.theme-dark .ev-form-section[style*="background:#fff"],
html.theme-dark .ev-form-section[style*="background: #fff"] {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
}

html.theme-dark .ev-form-section[style*="border:1px solid #ddd"],
html.theme-dark .ev-form-section[style*="border: 1px solid #ddd"] {
    border-color: var(--border-color) !important;
}

html.theme-dark #form-award-description,
html.theme-dark #form-award-nomination-criteria {
    color: var(--text-primary) !important;
}

html.theme-dark .ev-input[readonly] {
    background: var(--bg-subtle) !important;
    color: var(--text-muted) !important;
}

html.theme-dark .ev-upload-box {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
}

html.theme-dark .ev-upload-meta,
html.theme-dark .ev-status {
    color: var(--text-muted);
}

html.theme-dark .ev-status-success {
    color: var(--status-success-fg);
}

html.theme-dark .ev-status-error {
    color: var(--status-danger-fg);
}

html.theme-dark .ev-form-group div {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

/* Evaluation Management — thesis coordinator dashboard */
html.theme-dark .ev-page-header h1,
html.theme-dark .ev-card-header,
html.theme-dark .ev-field label,
html.theme-dark .ev-checkbox-wrap,
html.theme-dark .ev-activity-title {
    color: var(--text-primary);
}

html.theme-dark .ev-table th {
    background: var(--bg-subtle) !important;
    color: var(--text-primary) !important;
    border-bottom-color: var(--border-color) !important;
}

html.theme-dark .ev-table td {
    color: var(--text-primary) !important;
    border-bottom-color: var(--border-subtle) !important;
}

html.theme-dark .ev-table tr:hover {
    background: var(--bg-hover) !important;
}

html.theme-dark .ev-field input,
html.theme-dark .ev-field select {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

html.theme-dark .ev-field input:focus,
html.theme-dark .ev-field select:focus {
    border-color: var(--primary-action);
    box-shadow: 0 0 0 2px rgba(62, 207, 142, 0.2);
}

html.theme-dark .ev-dropzone {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-muted);
}

html.theme-dark .ev-dropzone:hover,
html.theme-dark .ev-dropzone.is-dragover {
    background: var(--bg-hover) !important;
    border-color: var(--primary-action);
}

html.theme-dark .ev-helper,
html.theme-dark .ev-upload-meta,
html.theme-dark .ev-muted {
    color: var(--text-muted);
}

html.theme-dark .ev-status-inline.success {
    color: var(--status-success-fg);
}

html.theme-dark .ev-status-inline.error {
    color: var(--status-danger-fg);
}

html.theme-dark .ev-page [style*="color:#677682"],
html.theme-dark .ev-page [style*="color: #677682"] {
    color: var(--text-muted) !important;
}

/* Ethics / consultation pages */
html.theme-dark .ethics-page,
html.theme-dark .ethics-card,
html.theme-dark .consult-page,
html.theme-dark .consult-card {
    background: transparent;
    color: var(--text-primary);
}

html.theme-dark .ethics-card,
html.theme-dark .consult-card {
    background: var(--bg-main);
    border-color: var(--border-color);
}

html.theme-dark .consult-btn-secondary,
html.theme-dark .ethics-btn-secondary {
    background: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

/* Admin pages with inline panels */
html.theme-dark .ds-panel,
html.theme-dark .ds-form-types,
html.theme-dark .ds-form-mappings,
html.theme-dark .pr-panel,
html.theme-dark .awm-card,
html.theme-dark .gd-panel,
html.theme-dark .log-panel {
    background: var(--bg-main);
    border-color: var(--border-color);
    color: var(--text-primary);
}

html.theme-dark .ds-panel h2,
html.theme-dark .ds-title h1,
html.theme-dark .ds-form label {
    color: var(--text-primary);
}

html.theme-dark .ds-input,
html.theme-dark .ds-select {
    background: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

html.theme-dark .ds-status,
html.theme-dark .ds-empty {
    color: var(--text-muted);
}

/* Course settings */
html.theme-dark .cs-page,
html.theme-dark .cs-card,
html.theme-dark .cs-panel {
    background: var(--bg-main);
    border-color: var(--border-color);
    color: var(--text-primary);
}

/* Student dashboard remaining surfaces */
html.theme-dark .sd-class-card,
html.theme-dark .sd-thesis-item,
html.theme-dark .sd-announcement-item,
html.theme-dark .sd-deadline-card {
    background: var(--bg-main);
    border-color: var(--border-color);
}

/* Dashboard widgets — remaining light patches */
html.theme-dark .dw-widget-body,
html.theme-dark .dw-deadlines-modal,
html.theme-dark .dw-deadline-item--overdue {
    background: var(--bg-main);
}

html.theme-dark .dw-loading {
    color: var(--text-muted);
}

/* Department classes — cards using --card-bg fallback */
html.theme-dark .dc-code-card,
html.theme-dark .dc-class-card,
html.theme-dark .dc-picker-card,
html.theme-dark .dc-dept-card {
    background: var(--bg-main);
    border-color: var(--border-color);
    color: var(--text-primary);
}

html.theme-dark .dc-dept-card-icon {
    background: rgba(62, 207, 142, 0.14);
}

html.theme-dark .dc-dept-card h4 {
    color: var(--text-primary);
}

html.theme-dark .dc-dept-card-codes {
    color: var(--text-muted);
}

/* Generic white-surface sweep for page content children */
html.theme-dark main.content [class*="card"],
html.theme-dark main.content [class*="panel"]:not(.profile-panel):not(.notif-panel):not(.files-panel):not(.help-panel) {
    border-color: var(--border-color);
}

/* Override inline light text colors in panels */
html.theme-dark .panel [style*="color:#2D3B45"],
html.theme-dark .panel [style*="color: #2D3B45"],
html.theme-dark .panels [style*="color:#2D3B45"],
html.theme-dark .panels [style*="color: #2D3B45"] {
    color: var(--text-primary) !important;
}

html.theme-dark .panel [style*="color:#677682"],
html.theme-dark .panel [style*="color: #677682"],
html.theme-dark .panels [style*="color:#677682"],
html.theme-dark .panels [style*="color: #677682"] {
    color: var(--text-muted) !important;
}

html.theme-dark .panel [style*="background:white"],
html.theme-dark .panel [style*="background: white"],
html.theme-dark .panel [style*="background:#fff"],
html.theme-dark .panel [style*="background: #fff"],
html.theme-dark .panel [style*="background:#ffffff"],
html.theme-dark .panel [style*="background: #ffffff"],
html.theme-dark .panel [style*="background:#f9f9f9"],
html.theme-dark .panel [style*="background: #f9f9f9"],
html.theme-dark .panel [style*="background:#f9fafb"],
html.theme-dark .panel [style*="background: #f9fafb"] {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
}

/* ═══════════════════════════════════════════════════════════════
   System Admin pages — dark mode surfaces
   ═══════════════════════════════════════════════════════════════ */

/* Shared admin panels & cards */
html.theme-dark .ds-panel,
html.theme-dark .ds-form-types,
html.theme-dark .ds-form-mappings,
html.theme-dark .pr-panel,
html.theme-dark .gd-panel,
html.theme-dark .awm-card,
html.theme-dark .panel,
html.theme-dark .everyone-table-wrapper {
    background: var(--bg-main) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary);
}

html.theme-dark .ds-panel h2,
html.theme-dark .pr-panel h2,
html.theme-dark .gd-panel h2,
html.theme-dark .awm-card-head h2,
html.theme-dark .panel-header,
html.theme-dark .ds-section-title {
    color: var(--text-primary) !important;
}

html.theme-dark .ds-sub,
html.theme-dark .pr-sub,
html.theme-dark .gd-sub,
html.theme-dark .awm-sub,
html.theme-dark .ds-status,
html.theme-dark .pr-status,
html.theme-dark .gd-status,
html.theme-dark .ds-empty,
html.theme-dark .pr-help,
html.theme-dark .gd-meta,
html.theme-dark .awm-help,
html.theme-dark .page-info {
    color: var(--text-muted) !important;
}

/* Admin form controls */
html.theme-dark .ds-input,
html.theme-dark .ds-select,
html.theme-dark .pr-input,
html.theme-dark .gd-input,
html.theme-dark .awm-input,
html.theme-dark .awm-select,
html.theme-dark .filter-select,
html.theme-dark .search-box input,
html.theme-dark .controls-container input,
html.theme-dark .controls-container select,
html.theme-dark .form-group input,
html.theme-dark .form-group select,
html.theme-dark .form-group textarea {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

html.theme-dark .ds-form label,
html.theme-dark .pr-form label,
html.theme-dark .gd-field label,
html.theme-dark .form-group label {
    color: var(--text-primary) !important;
}

/* Admin tables */
html.theme-dark .ds-table th,
html.theme-dark .awm-table th,
html.theme-dark .everyone-table th {
    background: var(--bg-secondary) !important;
    color: var(--text-muted) !important;
    border-color: var(--border-subtle) !important;
}

html.theme-dark .ds-table td,
html.theme-dark .awm-table td,
html.theme-dark .everyone-table td {
    border-color: var(--border-subtle) !important;
    color: var(--text-primary);
}

html.theme-dark .awm-row-disabled {
    background: var(--bg-subtle) !important;
    opacity: 0.7;
}

/* Admin buttons (keep primary actions visible) */
html.theme-dark .ds-btn-outline,
html.theme-dark .pagination-btn,
html.theme-dark .btn-cancel {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

html.theme-dark .ds-btn-outline:hover,
html.theme-dark .pagination-btn:hover:not(:disabled) {
    background: var(--bg-hover) !important;
}

html.theme-dark .pagination-btn:disabled {
    background: var(--bg-subtle) !important;
    opacity: 0.5;
}

html.theme-dark .pagination-container {
    border-color: var(--border-subtle) !important;
}

/* Admin modals */
html.theme-dark .modal-header,
html.theme-dark .modal-footer {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
}

html.theme-dark .modal-header h3 {
    color: var(--primary-action) !important;
}

html.theme-dark .modal-box,
html.theme-dark .user-modal-box,
html.theme-dark .confirm-box {
    background: var(--bg-main) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary);
}

html.theme-dark #user-form {
    background: var(--bg-main);
}

/* Admin banners & alerts */
html.theme-dark .pr-confirm-banner,
html.theme-dark .awm-banner {
    background: rgba(62, 207, 142, 0.12) !important;
    border-color: rgba(62, 207, 142, 0.35) !important;
    color: var(--text-primary) !important;
}

html.theme-dark .awm-status.ok {
    color: var(--primary-action) !important;
}

html.theme-dark .awm-status.err {
    color: var(--status-danger-fg, #f87171) !important;
}

/* Admin status badges — dark variants */
html.theme-dark .cm-status-badge--active {
    background: rgba(62, 207, 142, 0.18);
    color: var(--primary-action);
}

html.theme-dark .cm-status-badge--inactive,
html.theme-dark .cm-status-badge--deactivated,
html.theme-dark .cm-status-badge--archived {
    background: var(--bg-subtle);
    color: var(--text-muted);
}

html.theme-dark .cm-status-badge--suspended,
html.theme-dark .cm-status-badge--closed,
html.theme-dark .cm-status-badge--completed {
    background: rgba(251, 191, 36, 0.18);
    color: #fbbf24;
}

html.theme-dark .cm-badge {
    background: rgba(62, 207, 142, 0.18);
    color: var(--primary-action);
}

/* Admin icon buttons */
html.theme-dark .cm-icon-btn {
    color: var(--text-muted);
}

html.theme-dark .cm-icon-btn--edit:hover {
    background: rgba(62, 207, 142, 0.18);
    color: var(--primary-action);
}

html.theme-dark .cm-icon-btn--delete:hover {
    background: rgba(248, 113, 113, 0.18);
    color: #f87171;
}

/* Google Drive badges */
html.theme-dark .gd-badge.valid {
    background: rgba(62, 207, 142, 0.18);
    color: var(--primary-action);
}

html.theme-dark .gd-badge.invalid {
    background: rgba(248, 113, 113, 0.18);
    color: #f87171;
}

html.theme-dark .gd-badge.unvalidated {
    background: rgba(251, 191, 36, 0.18);
    color: #fbbf24;
}

html.theme-dark .gd-btn.secondary {
    background: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
}

/* Expertise tags page */
html.theme-dark .tag-chip-preview {
    background: rgba(62, 207, 142, 0.18);
    color: var(--primary-action);
}

html.theme-dark .tag-chip-preview.inactive {
    background: var(--bg-subtle);
    color: var(--text-muted);
}

/* Roles permissions container */
html.theme-dark #permissions-container > div {
    background: var(--bg-main) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary);
}

/* Course management remaining surfaces */
html.theme-dark .cm-panel,
html.theme-dark .cm-modal-box,
html.theme-dark .cm-table-tools {
    background: var(--bg-main) !important;
    border-color: var(--border-color) !important;
}

html.theme-dark .cm-search-control input,
html.theme-dark .cm-tool-select {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

html.theme-dark .cm-modal-header {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
}

/* Notifications legend & type indicators */
html.theme-dark .notif-legend {
    background: var(--bg-main) !important;
    border-color: var(--border-subtle) !important;
}

html.theme-dark .notif-legend-item {
    color: var(--text-muted) !important;
    font-size: 0.82rem;
}

html.theme-dark .notif-panel-header,
html.theme-dark .notif-panel-body {
    background: var(--bg-main);
    color: var(--text-primary);
}

html.theme-dark .notif-type-filter-wrap {
    color: var(--text-muted);
}

html.theme-dark .notif-agree-btn,
html.theme-dark .notif-decline-btn {
    border-color: var(--border-color);
}

/* Defense calendar — improved contrast */
html.theme-dark .dcv-day-num {
    color: var(--text-primary) !important;
    font-size: 0.82rem;
}

html.theme-dark .dcv-day-label {
    color: var(--text-muted) !important;
}

html.theme-dark .dcv-legend-item {
    color: var(--text-primary) !important;
    font-size: 0.92rem;
}

html.theme-dark .dcv-legend {
    border-color: var(--border-subtle);
}

/* Department classes evaluation tab */
html.theme-dark .dc-tab-actions #dc-btn-evaluation-form {
    color: var(--text-muted) !important;
    background: transparent !important;
}

html.theme-dark .dc-tab-actions #dc-btn-evaluation-form:hover {
    background: var(--bg-hover) !important;
    color: var(--primary-action) !important;
}

html.theme-dark .dc-tab-actions #dc-btn-evaluation-form.active {
    background: var(--primary-action) !important;
    color: var(--text-inverse) !important;
    box-shadow: 0 2px 8px rgba(62, 207, 142, 0.2);
}

/* Notifications — invite & document type chips */
html.theme-dark .notif-panel-actions {
    background: var(--bg-main) !important;
    border-color: var(--border-subtle) !important;
}

html.theme-dark .notif-type-chip--invite {
    background: rgba(124, 58, 237, 0.18) !important;
    border-color: rgba(124, 58, 237, 0.35) !important;
    color: #c4b5fd !important;
}

html.theme-dark .notif-type-chip--document {
    background: rgba(37, 99, 235, 0.18) !important;
    border-color: rgba(37, 99, 235, 0.35) !important;
    color: #93c5fd !important;
}

html.theme-dark .notif-type-chip--action {
    background: rgba(245, 158, 11, 0.18) !important;
    border-color: rgba(245, 158, 11, 0.35) !important;
    color: #fbbf24 !important;
}

html.theme-dark .notif-type-chip--system {
    background: var(--bg-subtle) !important;
    border-color: var(--border-color) !important;
    color: var(--text-muted) !important;
}

html.theme-dark .notif-decline-btn {
    background: var(--bg-secondary) !important;
    color: #f87171 !important;
    border-color: #f87171 !important;
}

html.theme-dark .notif-decline-btn:hover {
    background: rgba(248, 113, 113, 0.12) !important;
}

html.theme-dark .notif-mark-all-btn {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

html.theme-dark .notif-mark-all-btn:hover {
    background: var(--bg-hover) !important;
}

html.theme-dark .notif-time {
    color: var(--text-muted) !important;
}

/* Defense booking / widget calendars — align with dcv contrast */
html.theme-dark .cal-day,
html.theme-dark .cal-day-num {
    color: var(--text-primary) !important;
}

html.theme-dark .cal-day-label {
    color: var(--text-muted) !important;
}

html.theme-dark .cal-day:hover:not(.cal-day--empty) {
    background: var(--bg-hover) !important;
    border-color: var(--border-color) !important;
}

html.theme-dark .cal-day.today {
    border-color: var(--primary-action) !important;
    background: rgba(62, 207, 142, 0.14) !important;
    color: var(--primary-action) !important;
}

/* Courses sidebar calendar widget (cal-*) */
html.theme-dark .cal-month-select,
html.theme-dark .cal-year-input,
html.theme-dark .cal-year-input[type="number"] {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

html.theme-dark .cal-month-select:focus,
html.theme-dark .cal-year-input:focus {
    border-color: var(--primary-action) !important;
    box-shadow: 0 0 0 2px rgba(62, 207, 142, 0.2) !important;
}

html.theme-dark .cal-nav {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

html.theme-dark .cal-nav:hover {
    background: var(--bg-hover) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

html.theme-dark .cal-legend {
    border-top-color: var(--border-color) !important;
}

html.theme-dark .cal-legend-item {
    color: var(--text-muted) !important;
}

html.theme-dark .calendar-events h4 {
    color: var(--text-muted) !important;
    border-top-color: var(--border-color) !important;
}

html.theme-dark .dash-card.calendar-card .event-item,
html.theme-dark .calendar-events .event-item {
    border-bottom-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

html.theme-dark .dash-card.calendar-card .event-item strong,
html.theme-dark .calendar-events .event-item strong {
    color: var(--text-primary) !important;
}

html.theme-dark .dash-card.calendar-card .event-item small,
html.theme-dark .calendar-events .event-item small {
    color: var(--text-muted) !important;
}

html.theme-dark .dash-card.calendar-card .placeholder-event,
html.theme-dark .calendar-events .placeholder-event {
    color: var(--text-muted) !important;
}

html.theme-dark .dw-cal-legend-item {
    color: var(--text-primary) !important;
    font-size: 0.92rem;
}

html.theme-dark .dw-cal-day {
    font-size: 0.82rem;
}

/* ═══════════════════════════════════════════════════════════════
   Admin tables — Roles, Course Mgmt, Logs, Expertise Tags
   ═══════════════════════════════════════════════════════════════ */

/* Shared admin tables */
html.theme-dark .everyone-table thead {
    background: var(--bg-secondary) !important;
}

html.theme-dark .everyone-table tbody tr:nth-child(even) {
    background: var(--bg-subtle) !important;
}

html.theme-dark .everyone-table tbody tr:hover {
    background: var(--bg-hover) !important;
}

html.theme-dark .everyone-table th,
html.theme-dark .everyone-table td {
    border-color: var(--border-subtle) !important;
}

html.theme-dark .everyone-table td strong {
    color: var(--text-primary);
}

html.theme-dark .everyone-table td[style*="color:#666"],
html.theme-dark .everyone-table td[style*="color: #666"],
html.theme-dark .everyone-table td[style*="font-family:monospace"] {
    color: var(--text-muted) !important;
}

html.theme-dark .panel h3,
html.theme-dark .panels h3 {
    color: var(--text-primary) !important;
    border-color: var(--border-subtle) !important;
}

html.theme-dark .panel ul li {
    border-color: var(--border-subtle) !important;
    color: var(--text-primary) !important;
}

/* Roles & permissions */
html.theme-dark #permissions-container h4,
html.theme-dark #permissions-editor h4 {
    color: var(--text-primary) !important;
}

html.theme-dark #permissions-editor label {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

html.theme-dark #permissions-editor label span {
    color: var(--text-muted) !important;
}

html.theme-dark .permission-pills .cm-badge {
    background: var(--status-success-bg) !important;
    color: var(--status-success-fg) !important;
}

/* Course management lists */
html.theme-dark .cm-panel-header {
    border-color: var(--border-subtle) !important;
}

html.theme-dark .cm-panel-header h2 {
    color: var(--text-primary) !important;
}

html.theme-dark .cm-table-tools {
    background: var(--bg-subtle) !important;
    border-color: var(--border-subtle) !important;
}

html.theme-dark .cm-list-item:hover {
    background: var(--bg-hover) !important;
}

html.theme-dark .cm-list-item--active {
    background: var(--status-success-bg) !important;
    border-color: rgba(62, 207, 142, 0.35) !important;
}

html.theme-dark .cm-list-item-icon {
    background: var(--status-success-bg) !important;
    color: var(--primary-action) !important;
}

html.theme-dark .cm-list-item-icon--course {
    background: var(--status-info-bg) !important;
    color: var(--status-info-fg) !important;
}

html.theme-dark .cm-list-item-title {
    color: var(--text-primary) !important;
}

html.theme-dark .cm-list-item-sub {
    color: var(--text-muted) !important;
}

html.theme-dark .cm-search-bar input {
    background: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

html.theme-dark .cm-search-bar input:focus {
    background: var(--bg-main) !important;
}

html.theme-dark .cm-empty-state {
    color: var(--text-muted) !important;
}

html.theme-dark .cm-badge {
    background: var(--status-success-bg) !important;
    color: var(--status-success-fg) !important;
}

@keyframes cm-row-highlight-dark {
    0% { background: var(--status-warning-bg); box-shadow: inset 4px 0 0 var(--status-warning-fg); }
    70% { background: var(--status-warning-bg); box-shadow: inset 4px 0 0 var(--status-warning-fg); }
    100% { background: transparent; box-shadow: inset 0 0 0 transparent; }
}

html.theme-dark .cm-row-highlight {
    animation-name: cm-row-highlight-dark;
}

/* System logs */
html.theme-dark .log-tabs {
    border-color: var(--border-color) !important;
}

html.theme-dark .log-tab {
    color: var(--text-muted) !important;
}

html.theme-dark .log-tab:hover {
    color: var(--text-primary) !important;
}

html.theme-dark .log-tab.active {
    color: var(--primary-action) !important;
    border-bottom-color: var(--primary-action) !important;
}

html.theme-dark .log-table-wrapper {
    background: var(--bg-main) !important;
    border-color: var(--border-color) !important;
}

html.theme-dark .log-table thead th {
    background: var(--bg-secondary) !important;
    color: var(--text-muted) !important;
    border-color: var(--border-subtle) !important;
}

html.theme-dark .log-table tbody td {
    color: var(--text-primary) !important;
    border-color: var(--border-subtle) !important;
}

html.theme-dark .log-table tbody tr:hover {
    background: var(--bg-hover) !important;
}

html.theme-dark .ts-cell .ts-date {
    color: var(--text-primary) !important;
}

html.theme-dark .ts-cell,
html.theme-dark .ts-cell .ts-time {
    color: var(--text-muted) !important;
}

html.theme-dark .status-badge.success {
    background: var(--status-success-bg) !important;
    color: var(--status-success-fg) !important;
}

html.theme-dark .status-badge.error {
    background: var(--status-danger-bg) !important;
    color: var(--status-danger-fg) !important;
}

html.theme-dark .status-badge.warning {
    background: var(--status-warning-bg) !important;
    color: var(--status-warning-fg) !important;
}

html.theme-dark .status-badge.info {
    background: var(--status-info-bg) !important;
    color: var(--status-info-fg) !important;
}

html.theme-dark .status-badge.active {
    background: var(--status-success-bg) !important;
    color: var(--status-success-fg) !important;
    border-color: rgba(62, 207, 142, 0.35) !important;
}

html.theme-dark .status-badge.inactive {
    background: var(--status-danger-bg) !important;
    color: var(--status-danger-fg) !important;
    border-color: rgba(248, 113, 113, 0.35) !important;
}

html.theme-dark .action-tag {
    background: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
}

html.theme-dark .value-cell {
    color: var(--text-muted) !important;
}

html.theme-dark .user-cell .user-name {
    color: var(--text-primary) !important;
}

html.theme-dark .user-cell .user-email,
html.theme-dark .user-cell .user-id-only {
    color: var(--text-muted) !important;
}

html.theme-dark .user-cell .user-role,
html.theme-dark .cm-role-badge {
    background: var(--status-info-bg) !important;
    color: var(--status-info-fg) !important;
}

html.theme-dark .audit-actor-dropdown {
    background: var(--bg-elevated) !important;
    border-color: var(--border-color) !important;
    box-shadow: var(--shadow-card) !important;
}

html.theme-dark .audit-actor-dropdown li {
    border-color: var(--border-subtle) !important;
    color: var(--text-primary) !important;
}

html.theme-dark .audit-actor-dropdown li:hover,
html.theme-dark .audit-actor-dropdown li.active {
    background: var(--bg-hover) !important;
}

html.theme-dark .audit-actor-clear:hover {
    color: var(--text-primary) !important;
    background: var(--bg-hover) !important;
}

html.theme-dark .empty-state {
    color: var(--text-muted) !important;
}

html.theme-dark .log-pagination,
html.theme-dark .log-pagination .page-btns {
    color: var(--text-muted) !important;
}

html.theme-dark .log-pagination .pagination-btn {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

html.theme-dark .log-pagination .pagination-btn:hover:not(:disabled) {
    background: var(--bg-hover) !important;
    border-color: var(--border-color) !important;
}

html.theme-dark .log-pagination .pagination-btn:disabled {
    background: var(--bg-subtle) !important;
}

html.theme-dark .stat-range-note {
    color: var(--text-muted) !important;
}

/* Expertise tags admin table */
html.theme-dark .tag-chip-preview {
    background: var(--status-success-bg) !important;
    color: var(--status-success-fg) !important;
    border: 1px solid rgba(62, 207, 142, 0.28);
}

html.theme-dark .tag-chip-preview.inactive {
    background: var(--bg-secondary) !important;
    color: var(--text-muted) !important;
    border-color: var(--border-color);
}

html.theme-dark .controls-container,
html.theme-dark .search-filter-group {
    color: var(--text-primary);
}

html.theme-dark .search-box i {
    color: var(--text-muted) !important;
}

html.theme-dark .page-info {
    color: var(--text-muted) !important;
}

html.theme-dark .cm-icon-btn {
    color: var(--text-muted) !important;
}

html.theme-dark .cm-icon-btn--edit:hover {
    background: var(--status-success-bg) !important;
    color: var(--primary-action) !important;
}

html.theme-dark .cm-icon-btn--delete:hover {
    background: var(--status-danger-bg) !important;
    color: var(--danger) !important;
}

/* E-signature participant role picker (department-classes) */
html.theme-dark .dc-signature-role-option {
    background: var(--surface-primary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

html.theme-dark .dc-signature-role-option:hover:not(.dc-signature-role-option--locked) {
    background: var(--bg-secondary) !important;
    border-color: var(--primary-action) !important;
}

html.theme-dark .dc-signature-role-option:has(input:checked) {
    background: var(--status-success-bg) !important;
    border-color: var(--primary-action) !important;
    color: var(--primary-action) !important;
}

html.theme-dark .dc-signature-role-option--locked {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-muted) !important;
}

/* Admin user management — role filter and modal selects */
html.theme-dark #roleFilter,
html.theme-dark #role,
html.theme-dark #status {
    background: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

html.theme-dark #roleFilter option,
html.theme-dark #role option,
html.theme-dark #status option,
html.theme-dark select.filter-select option,
html.theme-dark .form-group select option {
    background: var(--surface-primary) !important;
    color: var(--text-primary) !important;
}

/* Panelist assignment modal */
html.theme-dark .dc-panelist-assignment-group-card {
    background: color-mix(in srgb, var(--primary-action) 12%, var(--surface-primary)) !important;
    border-color: var(--primary-action) !important;
}
html.theme-dark .dc-panelist-assignment-group-card-eyebrow {
    color: var(--primary-action) !important;
}
html.theme-dark .dc-panelist-assignment-group-card-code {
    color: var(--text-primary) !important;
}
html.theme-dark .dc-panelist-assignment-group-card-title,
html.theme-dark .dc-panelist-assignment-group-card-meta {
    color: var(--text-muted) !important;
}
html.theme-dark .dc-panelist-revision-completion {
    background: color-mix(in srgb, var(--success) 10%, var(--surface-primary)) !important;
    border-color: color-mix(in srgb, var(--success) 35%, var(--border-color)) !important;
}
html.theme-dark .dc-panelist-revision-completion-icon {
    color: var(--success) !important;
}
html.theme-dark .dc-panelist-revision-completion-copy strong {
    color: var(--text-primary) !important;
}
html.theme-dark .dc-panelist-revision-completion-copy p {
    color: var(--text-muted) !important;
}
