/* IBD Dashboard — Dark Mode */
/* ═══════════════════════════════════════════════════════════════
   DARK MODE
   Class-based rules rely on [data-theme="dark"] selector
   specificity — no !important needed there.
   !important is used ONLY on [style*=...] attribute selectors
   to override inline styles injected by JS render functions.
   ═══════════════════════════════════════════════════════════════ */

[data-theme="dark"] {
  --bg:      #161622;
  --surface: #1e1e2e;
  --surface2:#252538;
  --text:    #e2e2f0;
  --text2:   #9090b0;
  --border:  #2e2e48;
  --border2: #3a3a58;
}

/* Base */
[data-theme="dark"] body              { background: var(--bg); color: var(--text); }
[data-theme="dark"] .main             { background: var(--bg); }
[data-theme="dark"] .page-content     { background: var(--bg); }

/* Sidebar — stays dark gradient */
[data-theme="dark"] .sidebar          { background: linear-gradient(180deg, #0e7490 0%, #075985 100%); box-shadow: 0 8px 32px rgba(6,182,212,0.2), 0 2px 8px rgba(0,0,0,0.3); }

/* Page headers */
[data-theme="dark"] .page-topbar,
[data-theme="dark"] .ph-wrap          { background: var(--surface); border-color: var(--border); border-radius: 16px; box-shadow: 0 2px 12px rgba(0,0,0,0.2); }
[data-theme="dark"] .page-header h1,
[data-theme="dark"] .ph-wrap h1       { color: var(--text); }
[data-theme="dark"] .page-header p,
[data-theme="dark"] .ph-wrap p        { color: var(--text2); }

/* Stat cards */
[data-theme="dark"] .stat             { background: var(--surface); border-color: var(--border); box-shadow: 0 4px 16px rgba(0,0,0,0.3); }
[data-theme="dark"] .stat-total       { background: rgba(24,95,165,0.12); border-top-color: var(--info); border-left-color: transparent; }
[data-theme="dark"] .stat-total  .sl,
[data-theme="dark"] .stat-total  .sv  { color: #60a5fa; }
[data-theme="dark"] .stat-drop        { background: rgba(226,75,74,0.10); border-top-color: var(--danger); border-left-color: transparent; }
[data-theme="dark"] .stat-drop   .sl,
[data-theme="dark"] .stat-drop   .sv  { color: #f87171; }
[data-theme="dark"] .stat-final       { background: rgba(216,90,48,0.10); border-top-color: #D85A30; border-left-color: transparent; }
[data-theme="dark"] .stat-final  .sl,
[data-theme="dark"] .stat-final  .sv  { color: #fbbf24; }
[data-theme="dark"] .stat-warn        { background: rgba(45,122,45,0.10); border-top-color: var(--success); border-left-color: transparent; }
[data-theme="dark"] .stat-warn   .sl,
[data-theme="dark"] .stat-warn   .sv  { color: #34d399; }
[data-theme="dark"] .sl               { color: var(--text2); }
[data-theme="dark"] .sv               { color: var(--text); }
[data-theme="dark"] .stat-icon        { background: rgba(255,255,255,0.08); color: rgba(255,255,255,0.7); }
[data-theme="dark"] .stat-total  .stat-icon  { background: rgba(24,95,165,0.25);   color: #60a5fa; }
[data-theme="dark"] .stat-drop   .stat-icon  { background: rgba(226,75,74,0.25);   color: #f87171; }
[data-theme="dark"] .stat-final  .stat-icon  { background: rgba(216,90,48,0.25);   color: #fbbf24; }
[data-theme="dark"] .stat-warn   .stat-icon  { background: rgba(45,122,45,0.25);   color: #34d399; }
/* Override inline-styled stat icons (JS sets style="background:…" directly) */
[data-theme="dark"] .stat-icon[style]              { background: rgba(255,255,255,0.08) !important; }
[data-theme="dark"] .stat-total  .stat-icon[style] { background: rgba(24,95,165,0.25) !important; }
[data-theme="dark"] .stat-drop   .stat-icon[style] { background: rgba(226,75,74,0.25) !important; }
[data-theme="dark"] .stat-final  .stat-icon[style] { background: rgba(216,90,48,0.25) !important; }
[data-theme="dark"] .stat-warn   .stat-icon[style] { background: rgba(45,122,45,0.25) !important; }

/* Class cards */
[data-theme="dark"] .cc               { background: var(--surface); border-color: var(--border); box-shadow: 0 2px 8px rgba(0,0,0,0.3); }
[data-theme="dark"] .cc:hover         { background: var(--surface2); border-color: var(--border2); }
[data-theme="dark"] .cc.sel           { background: rgba(24,95,165,0.15); border: 2px solid rgba(24,95,165,0.5); }
[data-theme="dark"] .cn               { color: var(--text); }
[data-theme="dark"] .cc-meta          { color: var(--text2); }
[data-theme="dark"] .cc-stu-info      { color: var(--text2); }
[data-theme="dark"] .cc-foot          { border-top-color: var(--border); }
[data-theme="dark"] .cp.ok  { background: rgba(255,255,255,0.06); color: var(--text2); }
[data-theme="dark"] .cp.wd  { background: rgba(226,75,74,0.15);   color: #f87171; }
[data-theme="dark"] .cp.ww  { background: rgba(239,159,39,0.15);  color: #fbbf24; }
[data-theme="dark"] .cp.na  { background: rgba(255,255,255,0.04); color: var(--text2); }
[data-theme="dark"] .cm.am  { background: rgba(24,95,165,0.2);    color: #60a5fa; }
[data-theme="dark"] .cm.pm  { background: rgba(45,122,45,0.2);    color: #34d399; }
[data-theme="dark"] .noc    { color: var(--text2); }
[data-theme="dark"] .adc    { color: #60a5fa; }

/* Detail panel */
[data-theme="dark"] .det              { background: var(--surface); border-color: var(--border); }
[data-theme="dark"] .dh               { background: var(--surface2); border-color: var(--border); }
[data-theme="dark"] .lb               { background: var(--surface2); border-color: var(--border); }
[data-theme="dark"] .dt               { color: var(--text); }
[data-theme="dark"] .ds               { color: var(--text2); }
[data-theme="dark"] .lg               { color: var(--text2); }
[data-theme="dark"] .ctabs            { border-color: var(--border); }
[data-theme="dark"] .ctab             { color: var(--text2); }
[data-theme="dark"] .ctab.active      { color: #60a5fa; border-bottom-color: #60a5fa; }
[data-theme="dark"] .ia               { background: rgba(24,95,165,0.10); border-color: rgba(24,95,165,0.20); }
[data-theme="dark"] .il               { color: #60a5fa; }
[data-theme="dark"] .stg { background: rgba(45,122,45,0.15);  color: #34d399; }
[data-theme="dark"] .wtg { background: rgba(239,159,39,0.15); color: #fbbf24; }
[data-theme="dark"] .ns               { color: var(--text2); }
[data-theme="dark"] .ht               { color: var(--text2); border-color: var(--border); }

/* Tables */
[data-theme="dark"] table             { background: transparent; }
[data-theme="dark"] th                { background: var(--surface2); color: var(--text2); border-color: var(--border); }
[data-theme="dark"] td                { color: var(--text); border-color: rgba(255,255,255,0.04); }
[data-theme="dark"] tr:hover td       { background: rgba(255,255,255,0.03); }

/* Badges */
[data-theme="dark"] .br { background: rgba(226,75,74,0.15);    color: #f87171; }
[data-theme="dark"] .bo { background: rgba(239,159,39,0.12);   color: #fbbf24; }
[data-theme="dark"] .ba { background: rgba(239,159,39,0.12);   color: #fbbf24; }
[data-theme="dark"] .bg { background: rgba(45,122,45,0.15);    color: #34d399; }
[data-theme="dark"] .bn { background: rgba(255,255,255,0.06);  color: var(--text2); }
[data-theme="dark"] .bb { background: rgba(24,95,165,0.15);    color: #60a5fa; }

/* Tabs */
[data-theme="dark"] .ytab              { color: var(--text2); }
[data-theme="dark"] .ytab.active       { background: transparent; color: var(--text); }
[data-theme="dark"] .ytab:hover:not(.active) { color: var(--text); }
[data-theme="dark"] #yt-glider         { background: var(--surface2) !important; }
[data-theme="dark"] .stab              { color: var(--text2); }
[data-theme="dark"] .stab.active       { color: #60a5fa; border-bottom-color: #60a5fa; }
[data-theme="dark"] .rt-tab            { color: var(--text2); border-color: var(--border); }
[data-theme="dark"] .rt-tab.active     { color: var(--text); border-bottom-color: var(--text); }
[data-theme="dark"] .mp-tab            { color: var(--text2); }
[data-theme="dark"] .mp-tab.active     { color: #38bdf8; border-bottom-color: #38bdf8; }
[data-theme="dark"] .mp-tabbar         { background: var(--surface); border-bottom-color: var(--border); }
[data-theme="dark"] .mp-table-card     { background: var(--surface); border-color: var(--border); }
[data-theme="dark"] .mp-table-card thead tr { background: rgba(255,255,255,.04); border-bottom-color: var(--border); }
[data-theme="dark"] .mp-table-card td  { border-bottom-color: var(--border); color: var(--text); }
[data-theme="dark"] .mp-mode-card      { background: var(--surface); border-color: var(--border); }
[data-theme="dark"] .mp-chip           { background: rgba(255,255,255,.07); border-color: var(--border); color: var(--text2); }
[data-theme="dark"] .mp-past-item      { background: var(--surface); border-color: var(--border); }

/* Inputs & selects */
[data-theme="dark"] input:not([type="file"]),
[data-theme="dark"] select,
[data-theme="dark"] textarea,
[data-theme="dark"] .field input,
[data-theme="dark"] .fld select,
[data-theme="dark"] .mf input,
[data-theme="dark"] .mf select,
[data-theme="dark"] .modal-field input,
[data-theme="dark"] .modal-field select,
[data-theme="dark"] .wiz-field input,
[data-theme="dark"] .wiz-field select,
[data-theme="dark"] .rt-filters select,
[data-theme="dark"] .ml-toolbar input,
[data-theme="dark"] .ml-toolbar select { background: var(--surface2); border-color: var(--border2); color: var(--text); }
[data-theme="dark"] input::placeholder  { color: var(--text2); }

/* Modals */
[data-theme="dark"] .modal-overlay,
[data-theme="dark"] .rm-modal-bg        { background: rgba(0,0,0,0.6); backdrop-filter: blur(4px); }
[data-theme="dark"] .modal,
[data-theme="dark"] .rm-modal           { background: var(--surface); border: 0.5px solid var(--border2); }
[data-theme="dark"] .modal h3,
[data-theme="dark"] .rm-modal h3        { color: var(--text); }
[data-theme="dark"] .modal p,
[data-theme="dark"] .rm-modal p         { color: var(--text2); }
[data-theme="dark"] .modal-field label,
[data-theme="dark"] .mf label           { color: var(--text2); }
[data-theme="dark"] .modal-cancel,
[data-theme="dark"] .mcancel,
[data-theme="dark"] .wiz-btn-back       { background: var(--surface2); border-color: var(--border2); color: var(--text2); }

/* Room tracker */
[data-theme="dark"] .rt-tbl,
[data-theme="dark"] .sched-wrap,
[data-theme="dark"] .class-table,
[data-theme="dark"] .stu-panel         { background: var(--surface); border-color: var(--border); }
[data-theme="dark"] .sched-head,
[data-theme="dark"] .stu-head          { background: var(--surface2); border-color: var(--border); }
[data-theme="dark"] .sched-title,
[data-theme="dark"] .stu-title         { color: var(--text); }
[data-theme="dark"] .sched-sub         { color: var(--text2); }
[data-theme="dark"] .gcell             { background: var(--surface); }
[data-theme="dark"] .gcell.ghead,
[data-theme="dark"] .gcell.glabel      { background: var(--surface2); color: var(--text2); }
[data-theme="dark"] .room-lname        { color: var(--text); }
[data-theme="dark"] .room-lcap         { color: var(--text2); }
[data-theme="dark"] .occ-bar           { background: rgba(255,255,255,0.08); }
[data-theme="dark"] .sched-grid        { background: var(--border); }
[data-theme="dark"] .rt-conflict       { background: rgba(226,75,74,0.10); border-color: rgba(226,75,74,0.30); color: #f87171; }
[data-theme="dark"] .sem-warn-banner   { background: rgba(24,95,165,0.10); border-color: rgba(24,95,165,0.30); color: #60a5fa; }
[data-theme="dark"] .rt-warn-banner    { background: rgba(239,159,39,0.10); border-color: rgba(239,159,39,0.30); color: #fbbf24; }

/* Wizard */
[data-theme="dark"] .wiz-overlay       { background: rgba(0,0,0,0.7); }
[data-theme="dark"] .wiz-box           { background: var(--surface); border: 0.5px solid var(--border2); }
[data-theme="dark"] .wiz-steps         { background: var(--surface2); border-color: var(--border); }
[data-theme="dark"] .wiz-step          { color: var(--text2); }
[data-theme="dark"] .wiz-step.active   { color: var(--text); border-bottom-color: #60a5fa; }
[data-theme="dark"] .wiz-step.done     { color: #34d399; }
[data-theme="dark"] .wiz-step-num      { background: var(--surface2); color: var(--text2); }
[data-theme="dark"] .wiz-step.active .wiz-step-num { background: #185fa5; color: #fff; }
[data-theme="dark"] .wiz-step.done  .wiz-step-num  { background: var(--success); color: #fff; }
[data-theme="dark"] .wiz-body,
[data-theme="dark"] .wiz-footer        { background: var(--surface); border-color: var(--border); }
[data-theme="dark"] .wiz-info    { background: rgba(24,95,165,0.10);  border-color: rgba(24,95,165,0.25);  color: #60a5fa; }
[data-theme="dark"] .wiz-warn    { background: rgba(239,159,39,0.10); border-color: rgba(239,159,39,0.25); color: #fbbf24; }
[data-theme="dark"] .wiz-success { background: rgba(45,122,45,0.10);  border-color: rgba(45,122,45,0.25);  color: #34d399; }
[data-theme="dark"] .wiz-toggle-btn        { background: var(--surface2); border-color: var(--border2); color: var(--text2); }
[data-theme="dark"] .wiz-toggle-btn.active { background: #185fa5; border-color: #185fa5; color: #fff; }
[data-theme="dark"] .wiz-field label   { color: var(--text2); }

/* Semester page */
[data-theme="dark"] .sem-card          { background: var(--surface); border-color: var(--border); }
[data-theme="dark"] .sem-card h3       { color: var(--text); }
[data-theme="dark"] .sem-card p        { color: var(--text2); }
[data-theme="dark"] .sem-status.open   { background: rgba(45,122,45,0.15); color: #34d399; }
[data-theme="dark"] .sem-status.closed { background: rgba(255,255,255,0.06); color: var(--text2); }
[data-theme="dark"] .sem-status.none   { background: rgba(239,159,39,0.15); color: #fbbf24; }
[data-theme="dark"] .sem-archive-table { background: var(--surface); border-color: var(--border); }

/* Monitor log */
[data-theme="dark"] .ml-scard          { background: var(--surface); border-color: var(--border); }
[data-theme="dark"] .ml-scard-num      { color: var(--text); }
[data-theme="dark"] .ml-scard-lbl      { color: var(--text2); }
[data-theme="dark"] .ml-tbl-wrap       { background: var(--surface); border-color: var(--border); }
[data-theme="dark"] .ml-tbl thead th   { background: var(--surface2); color: var(--text2); border-color: var(--border); }
[data-theme="dark"] .ml-tbl td         { color: var(--text); border-color: rgba(255,255,255,0.04); }
[data-theme="dark"] .ml-tbl tbody tr:hover td { background: rgba