/* ═══════════════════════════════════════════════════════════
   NSTP-IMS · Dark theme
   Loaded after style.css / features.css. Deep NEMSU navy with gold accents.
   In light mode --primary-dark is both heading ink and a brand fill; in dark
   mode those split, so fills (sidebar, auth, hero, buttons) use --brand-*.
   ═══════════════════════════════════════════════════════════ */

[data-theme="dark"] {
    color-scheme: dark;

    --primary: #7aa7ff;
    --primary-light: #9dbcff;
    --primary-dark: #d3e0ff;          /* heading ink */
    --accent: #e4c04a;
    --accent-light: #f0d06a;
    --accent-dark: #e4c04a;

    --rotc: #a9c66e;
    --rotc-light: #bfd68c;
    --cwts: #62b3f2;
    --cwts-light: #8cc7f6;
    --lts: #98adff;
    --lts-light: #b4c3ff;
    --success: #4fc98f;
    --warning: #e4c04a;
    --danger: #f47a7a;
    --info: #74a9ff;
    --chart-1: #5b8ef0;

    --brand-deep: #0b1735;
    --brand: #13295e;
    --brand-fill: #2d5cc4;
    --brand-fill-hover: #3a6cd9;
    --on-gold: #14224a;

    --bg: #0a1020;
    --bg-elevated: #111a2d;
    --bg-raised: #16213a;
    --bg-input: #0c1426;
    --bg-glass: rgba(17, 26, 45, 0.88);
    --bg-glass-strong: rgba(17, 26, 45, 0.96);
    /* The paper-grain texture reads as static on dark surfaces. */
    --bg-grain: linear-gradient(transparent, transparent);
    --bg-gradient: radial-gradient(ellipse 80% 50% at 100% 0%, rgba(45, 92, 196, 0.10), transparent 60%),
                   linear-gradient(165deg, #0d1528 0%, #0a1020 50%, #080d1a 100%);
    --text: #e6ecf6;
    --text-muted: #a3b1c9;
    --text-soft: #7a8aa6;
    --border: rgba(148, 178, 255, 0.10);
    --border-strong: rgba(148, 178, 255, 0.18);

    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.3);
    --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.32);
    --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.4);
    --shadow-lg: 0 20px 48px rgba(0, 0, 0, 0.5);
    --shadow-glow: 0 0 0 1px rgba(228, 192, 74, 0.18), 0 8px 28px rgba(228, 192, 74, 0.10);
}

/* ── Base ── */
[data-theme="dark"] ::selection { background: rgba(122, 167, 255, 0.35); color: #fff; }
[data-theme="dark"] * { scrollbar-color: #2a3858 transparent; }
[data-theme="dark"] ::-webkit-scrollbar { width: 10px; height: 10px; }
[data-theme="dark"] ::-webkit-scrollbar-thumb { background: #2a3858; border-radius: 10px; border: 2px solid transparent; background-clip: padding-box; }
[data-theme="dark"] ::-webkit-scrollbar-track { background: transparent; }
[data-theme="dark"] .bg-orb { opacity: 0.18; }

/* ── Shell: sidebar, topbar, footer ── */
[data-theme="dark"] .sidebar { background: transparent; }
[data-theme="dark"] .sidebar-inner {
    background: linear-gradient(170deg, #10214b 0%, var(--brand) 45%, var(--brand-deep) 100%);
    box-shadow: var(--shadow-lg), inset 0 1px 0 rgba(255, 255, 255, 0.06), inset 0 0 0 1px rgba(148, 178, 255, 0.08);
}
[data-theme="dark"] .nav-section-label { color: rgba(211, 224, 255, 0.45); }
[data-theme="dark"] .nav-item { color: rgba(230, 236, 246, 0.72); }
[data-theme="dark"] .nav-item.active { background: rgba(122, 167, 255, 0.14); color: #fff; }
[data-theme="dark"] .sidebar-user { border-top-color: rgba(148, 178, 255, 0.12); }
[data-theme="dark"] .user-avatar { color: var(--on-gold); }

[data-theme="dark"] .topbar,
[data-theme="dark"] .topbar.is-scrolled { background: var(--bg-glass-strong); border-color: var(--border); }
[data-theme="dark"] .topbar-heading { color: var(--text); }
[data-theme="dark"] .topbar-eyebrow { color: var(--accent); }
[data-theme="dark"] .menu-toggle { background: var(--bg-raised); border-color: var(--border-strong); }

[data-theme="dark"] .app-footer {
    background: var(--bg-elevated);
    border: 1px solid var(--border);
    color: var(--text-soft);
}
[data-theme="dark"] .footer-note { color: var(--text-muted); }

/* ── Surfaces ── */
[data-theme="dark"] .panel,
[data-theme="dark"] .card,
[data-theme="dark"] .metric-card,
[data-theme="dark"] .stat-card,
[data-theme="dark"] .bento-item {
    background: var(--bg-elevated);
    border-color: var(--border);
    box-shadow: var(--shadow-sm), inset 0 1px 0 rgba(255, 255, 255, 0.03);
}
[data-theme="dark"] .panel:hover,
[data-theme="dark"] .card:hover { box-shadow: var(--shadow-md), inset 0 1px 0 rgba(255, 255, 255, 0.03); }
[data-theme="dark"] .panel-title,
[data-theme="dark"] .card-header h2,
[data-theme="dark"] .card-header h3,
[data-theme="dark"] .modal-header h3 { color: var(--text); }
[data-theme="dark"] .panel-desc { color: var(--text-muted); }
[data-theme="dark"] .page-hero,
[data-theme="dark"] .page-banner {
    background: linear-gradient(135deg, #10214b 0%, var(--brand) 60%, #1b3a80 100%);
    border: 1px solid rgba(148, 178, 255, 0.12);
}
[data-theme="dark"] .empty-state-icon { background: var(--bg-raised); color: var(--text-muted); }
[data-theme="dark"] .data-list-date { background: var(--bg-raised); border-color: var(--border); }
[data-theme="dark"] .detail-row { border-color: var(--border); }
[data-theme="dark"] .tab:hover { background: rgba(255, 255, 255, 0.04); }
[data-theme="dark"] .tab.active { background: var(--bg-raised); }

/* ── Tables ── */
[data-theme="dark"] th { color: var(--text-soft); background: rgba(255, 255, 255, 0.015); }
[data-theme="dark"] tbody tr:hover { background: rgba(122, 167, 255, 0.05); }

/* ── Badges: tinted fills from each color, readable on navy ── */
[data-theme="dark"] .badge-rotc    { background: color-mix(in srgb, var(--rotc) 16%, transparent);    color: var(--rotc); }
[data-theme="dark"] .badge-cwts    { background: color-mix(in srgb, var(--cwts) 16%, transparent);    color: var(--cwts); }
[data-theme="dark"] .badge-lts     { background: color-mix(in srgb, var(--lts) 16%, transparent);     color: var(--lts); }
[data-theme="dark"] .badge-success,
[data-theme="dark"] .badge-completed { background: color-mix(in srgb, var(--success) 16%, transparent); color: var(--success); }
[data-theme="dark"] .badge-warning,
[data-theme="dark"] .badge-at-risk { background: color-mix(in srgb, var(--warning) 16%, transparent); color: var(--warning); }
[data-theme="dark"] .badge-danger  { background: color-mix(in srgb, var(--danger) 16%, transparent);  color: var(--danger); }
[data-theme="dark"] .badge-info    { background: color-mix(in srgb, var(--info) 16%, transparent);    color: var(--info); }
[data-theme="dark"] .badge-default { background: rgba(255, 255, 255, 0.06); color: var(--text-muted); }

/* ── Buttons ── */
[data-theme="dark"] .btn-primary {
    background: linear-gradient(135deg, var(--brand-fill), #3f73e0);
    color: #fff; box-shadow: 0 2px 10px rgba(45, 92, 196, 0.35);
}
[data-theme="dark"] .btn-primary:hover { background: linear-gradient(135deg, var(--brand-fill-hover), #4d80ea); box-shadow: 0 6px 20px rgba(45, 92, 196, 0.45); }
[data-theme="dark"] .btn-secondary { background: var(--bg-raised); color: var(--text); border-color: var(--border-strong); }
[data-theme="dark"] .btn-secondary:hover { background: #1d2a47; border-color: rgba(148, 178, 255, 0.28); }
[data-theme="dark"] .btn-ghost:hover { background: rgba(122, 167, 255, 0.08); }
[data-theme="dark"] .btn-accent,
[data-theme="dark"] .btn-warning { color: var(--on-gold); }
[data-theme="dark"] .btn-danger { background: #c93a3a; color: #fff; }
[data-theme="dark"] .theme-toggle { background: var(--bg-raised); }
[data-theme="dark"] .pagination a,
[data-theme="dark"] .pagination span { background: var(--bg-raised); border-color: var(--border); color: var(--text-muted); }
[data-theme="dark"] .pagination a:hover,
[data-theme="dark"] .pagination .active { background: var(--brand-fill); border-color: var(--brand-fill); color: #fff; }
[data-theme="dark"] .letter-jump a:hover { background: var(--bg-raised); color: var(--text); }
[data-theme="dark"] .letter-jump a.active { background: var(--brand-fill); color: #fff; }

/* ── Forms ── */
[data-theme="dark"] .form-control {
    background: var(--bg-input); color: var(--text); border-color: var(--border-strong);
}
[data-theme="dark"] .form-control::placeholder { color: #5f6f8c; }
[data-theme="dark"] .form-control:focus {
    border-color: var(--primary); box-shadow: 0 0 0 3px rgba(122, 167, 255, 0.18);
}
[data-theme="dark"] .form-control[readonly] { background: var(--bg-raised); color: var(--text-muted); }
[data-theme="dark"] .form-control.is-invalid { border-color: var(--danger); }
[data-theme="dark"] select.form-control option,
[data-theme="dark"] select.form-control optgroup { background: var(--bg-elevated); color: var(--text); }
[data-theme="dark"] .form-control:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 40px var(--bg-input) inset; -webkit-text-fill-color: var(--text);
}
[data-theme="dark"] .modal .form-label,
[data-theme="dark"] .form-label { color: var(--text); }
[data-theme="dark"] .form-section { border-color: var(--border); }

/* ── Modals ── */
[data-theme="dark"] .modal-overlay { background: rgba(3, 7, 18, 0.72); }
[data-theme="dark"] .modal { background: var(--bg-elevated); border: 1px solid var(--border-strong); box-shadow: var(--shadow-lg); }
[data-theme="dark"] .modal-header,
[data-theme="dark"] .modal-footer { border-color: var(--border); }
[data-theme="dark"] .modal-close { color: var(--text-muted); }

/* ── Feedback: alerts, scan results, toasts ── */
[data-theme="dark"] .alert-success,
[data-theme="dark"] .scan-result.success,
[data-theme="dark"] .biometric-enrolled-card { background: rgba(79, 201, 143, 0.10); color: #8fe3b9; border-color: rgba(79, 201, 143, 0.28); }
[data-theme="dark"] .alert-danger,
[data-theme="dark"] .scan-result.error { background: rgba(244, 122, 122, 0.10); color: #ffadad; border-color: rgba(244, 122, 122, 0.28); }
[data-theme="dark"] .alert-warning { background: rgba(228, 192, 74, 0.10); color: #f3d77a; border-color: rgba(228, 192, 74, 0.28); }
[data-theme="dark"] .alert-info { background: rgba(116, 169, 255, 0.10); color: #a9c8ff; border-color: rgba(116, 169, 255, 0.28); }
[data-theme="dark"] .scan-result.success { border-left-color: var(--success); }
[data-theme="dark"] .scan-result.error { border-left-color: var(--danger); }
[data-theme="dark"] .checkin-toast { background: var(--bg-raised); border-color: var(--border-strong); color: var(--text); }
[data-theme="dark"] .checkin-toast-icon { background: rgba(79, 201, 143, 0.14); color: var(--success); }
/* QR codes need a light quiet zone to stay scannable. */
[data-theme="dark"] .qr-display { background: #fff; }

/* ── Auth pages (login, sign-up) ── */
[data-theme="dark"] .auth-page { background: var(--brand-deep); }
[data-theme="dark"] .auth-page::before {
    background:
        radial-gradient(ellipse 70% 55% at 15% 85%, rgba(228, 192, 74, 0.10) 0%, transparent 55%),
        radial-gradient(ellipse 60% 50% at 85% 15%, rgba(45, 92, 196, 0.35) 0%, transparent 55%),
        linear-gradient(160deg, #081226 0%, var(--brand) 55%, #0a1733 100%);
}
[data-theme="dark"] .auth-card {
    background: rgba(17, 26, 45, 0.92);
    border: 1px solid var(--border-strong);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
[data-theme="dark"] .auth-card h2 { color: var(--text); }

/* ── Dashboard treatment ── */
[data-theme="dark"] .dashboard-page {
    --dashboard-ink: var(--text);
    --dashboard-royal: var(--primary);
    /* Replaces the light dashboard backdrop with the standard dark page gradient. */
    background-color: var(--bg);
    background-image: var(--bg-grain), var(--bg-gradient);
    background-size: 180px 180px, 100% 100%;
    background-attachment: fixed, fixed;
}
[data-theme="dark"] .dashboard-page .page-hero {
    background:
        radial-gradient(circle at 84% 12%, rgba(90, 130, 220, 0.28), transparent 34%),
        linear-gradient(120deg, #0c1a3f 0%, var(--brand) 55%, #1c3c85 100%);
    border-color: rgba(148, 178, 255, 0.14);
    box-shadow: var(--shadow-lg), inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
[data-theme="dark"] .dashboard-page .bento-item,
[data-theme="dark"] .dashboard-page .panel {
    background: linear-gradient(150deg, #142038 0%, var(--bg-elevated) 100%);
    border-color: var(--border);
    box-shadow: var(--shadow-sm), inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
[data-theme="dark"] .dashboard-page .bento-item:hover {
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.06);
    border-color: var(--border-strong);
}
[data-theme="dark"] .bento-item::after { background: color-mix(in srgb, var(--bento-accent) 55%, transparent); }
[data-theme="dark"] .bento-icon { background: color-mix(in srgb, var(--primary) 16%, transparent); color: var(--primary); }
[data-theme="dark"] .bento-item.rotc .bento-icon { background: color-mix(in srgb, var(--rotc) 16%, transparent); color: var(--rotc); }
[data-theme="dark"] .bento-item.cwts .bento-icon { background: color-mix(in srgb, var(--cwts) 16%, transparent); color: var(--cwts); }
[data-theme="dark"] .bento-item.lts .bento-icon  { background: color-mix(in srgb, var(--lts) 16%, transparent);  color: var(--lts); }
[data-theme="dark"] .bento-item .bento-meta,
[data-theme="dark"] .dashboard-page .bento-meta { color: var(--text-muted); }
[data-theme="dark"] .bento-item.bento-featured .bento-label,
[data-theme="dark"] .bento-item.bento-featured .bento-meta { color: var(--primary); }
[data-theme="dark"] .dashboard-page .bento-item.rotc .bento-value { color: var(--rotc); }
[data-theme="dark"] .dashboard-page .bento-item.cwts .bento-value { color: var(--cwts); }
[data-theme="dark"] .dashboard-page .bento-item.lts .bento-value  { color: var(--lts); }
[data-theme="dark"] .dashboard-page .bento-progress,
[data-theme="dark"] .bento-progress { background: #1e2a44; }
[data-theme="dark"] .dashboard-page .panel-desc,
[data-theme="dark"] .dashboard-page .data-list-sub { color: var(--text-muted); }
[data-theme="dark"] .dashboard-page .data-list-title { color: var(--text); }
[data-theme="dark"] .dashboard-page .data-list-item { border-color: var(--border); }
[data-theme="dark"] .dashboard-page .data-list-item:hover { background: rgba(122, 167, 255, 0.05); }
[data-theme="dark"] .dashboard-page .data-list-date { background: var(--bg-raised); border-color: var(--border); }
[data-theme="dark"] .dashboard-stat-seal { opacity: 0.55; }
[data-theme="dark"] .dash-fact {
    background: rgba(122, 167, 255, 0.05);
    border-color: var(--border);
}
[data-theme="dark"] a.dash-fact:hover { background: rgba(122, 167, 255, 0.1); }
[data-theme="dark"] .dash-fact.has-alert {
    background: rgba(196, 43, 43, 0.12);
    border-color: color-mix(in srgb, var(--danger) 40%, var(--border));
}
[data-theme="dark"] .dash-fact strong { color: var(--text); }
[data-theme="dark"] .dash-range { background: var(--bg-raised); }
[data-theme="dark"] .dash-range a.active { color: #0b1224; }
[data-theme="dark"] .dash-session-list a:hover { background: rgba(122, 167, 255, 0.05); }
[data-theme="dark"] .dash-snap-bar { background: #1e2a44; }
[data-theme="dark"] .dash-snap-legend strong { color: var(--text); }

/* ── Messages widget ── */
[data-theme="dark"] .msg-toggle { background: linear-gradient(135deg, var(--brand-fill), var(--brand)); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5); }
[data-theme="dark"] .msg-panel { background: rgba(17, 26, 45, 0.97); border: 1px solid var(--border-strong); box-shadow: var(--shadow-lg); }
[data-theme="dark"] .msg-panel-header { background: linear-gradient(135deg, var(--brand), #1c3c85); }
[data-theme="dark"] .msg-search-wrap { background: var(--bg-input); border-color: var(--border-strong); }
[data-theme="dark"] .msg-tab-bar,
[data-theme="dark"] .msg-compose { background: var(--bg-elevated); border-color: var(--border); }
[data-theme="dark"] .msg-conv-item { border-color: var(--border); }
[data-theme="dark"] .msg-conv-item:hover { background: rgba(122, 167, 255, 0.05); }
[data-theme="dark"] .msg-conv-item.unread { background: rgba(122, 167, 255, 0.08); }
[data-theme="dark"] .msg-conv-name { color: var(--text); }
[data-theme="dark"] .msg-bubble-text { background: var(--bg-raised); border-color: var(--border); color: var(--text); }
[data-theme="dark"] .msg-bubble-time { color: var(--text-soft); }
[data-theme="dark"] .msg-input { background: var(--bg-input); border-color: var(--border-strong); color: var(--text); }
[data-theme="dark"] .msg-retry-btn { background: var(--bg-raised); border-color: var(--border-strong); color: var(--text); }
[data-theme="dark"] .msg-skeleton-avatar,
[data-theme="dark"] .msg-skeleton-lines span {
    background: linear-gradient(90deg, rgba(148, 178, 255, 0.06) 25%, rgba(148, 178, 255, 0.12) 50%, rgba(148, 178, 255, 0.06) 75%);
    background-size: 200% 100%;
}

/* ── Completion tracker, audit log, import ── */
[data-theme="dark"] .completion-stat-card,
[data-theme="dark"] .audit-stats,
[data-theme="dark"] .flag-loading-box { background: var(--bg-elevated); border-color: var(--border); color: var(--text); }
[data-theme="dark"] .csc-blue { background: color-mix(in srgb, var(--primary) 16%, transparent); color: var(--primary); }
[data-theme="dark"] .csc-amber { background: color-mix(in srgb, var(--warning) 16%, transparent); color: var(--warning); }
[data-theme="dark"] .csc-green { background: color-mix(in srgb, var(--success) 16%, transparent); color: var(--success); }
[data-theme="dark"] .csc-purple { background: rgba(176, 140, 255, 0.16); color: #b99cff; }
[data-theme="dark"] .csc-value { color: var(--text); }
[data-theme="dark"] .csc-label { color: var(--text-muted); }
[data-theme="dark"] .csc-ring-bg { stroke: rgba(148, 178, 255, 0.16); }
[data-theme="dark"] .csc-ring-fill { stroke: #b99cff; }
[data-theme="dark"] .completion-pills { border-color: var(--border); }
[data-theme="dark"] .completion-pill { border-color: var(--border-strong); color: var(--text-muted); }
[data-theme="dark"] .completion-pill:hover { border-color: var(--primary); color: var(--text); background: rgba(122, 167, 255, 0.06); }
[data-theme="dark"] .completion-pill.active { border-color: var(--primary); color: var(--primary); background: rgba(122, 167, 255, 0.12); }
[data-theme="dark"] .pill-green.active { border-color: var(--success); color: var(--success); background: rgba(79, 201, 143, 0.12); }
[data-theme="dark"] .pill-amber.active { border-color: var(--warning); color: var(--warning); background: rgba(228, 192, 74, 0.12); }
[data-theme="dark"] .pill-red.active { border-color: var(--danger); color: var(--danger); background: rgba(244, 122, 122, 0.12); }
[data-theme="dark"] .completion-bar { background: rgba(148, 178, 255, 0.12); }
[data-theme="dark"] .audit-stat-sep,
[data-theme="dark"] .audit-date-marker::after { background: var(--border); }
[data-theme="dark"] .audit-entry { background: var(--bg-raised); border-left-color: rgba(148, 178, 255, 0.2); }
[data-theme="dark"] .audit-cat-update { border-left-color: var(--warning); background: rgba(228, 192, 74, 0.05); }
[data-theme="dark"] .audit-icon { background: var(--bg-elevated); border-color: var(--border); color: var(--text-muted); }
[data-theme="dark"] .audit-cat-update .audit-icon { background: rgba(228, 192, 74, 0.12); color: var(--warning); }
[data-theme="dark"] .import-dropzone { background: rgba(122, 167, 255, 0.03); border-color: rgba(148, 178, 255, 0.25); }
[data-theme="dark"] .import-dropzone:hover,
[data-theme="dark"] .import-dropzone.drag-over { background: rgba(122, 167, 255, 0.07); border-color: var(--primary); }
[data-theme="dark"] .import-rules { background: var(--bg-raised); border-color: var(--border); }
[data-theme="dark"] .import-rules code,
[data-theme="dark"] code { background: rgba(148, 178, 255, 0.10); color: var(--primary-light); }
[data-theme="dark"] .flag-result-panel,
[data-theme="dark"] .flag-result-item { border-color: var(--border); }

/* ── Remaining hard-coded ink in features.css / style.css ── */
[data-theme="dark"] .msg-search,
[data-theme="dark"] .msg-conv-name,
[data-theme="dark"] .msg-bubble-text,
[data-theme="dark"] .msg-input,
[data-theme="dark"] .csc-value,
[data-theme="dark"] .audit-stat-val,
[data-theme="dark"] .audit-action,
[data-theme="dark"] .import-dropzone h3,
[data-theme="dark"] .import-rules h4,
[data-theme="dark"] .flag-name,
[data-theme="dark"] .flag-loading-box h4 { color: var(--text); }
[data-theme="dark"] .msg-tab,
[data-theme="dark"] .msg-conv-preview,
[data-theme="dark"] .msg-loading,
[data-theme="dark"] .msg-empty,
[data-theme="dark"] .audit-stat-label,
[data-theme="dark"] .audit-date-marker,
[data-theme="dark"] .audit-user,
[data-theme="dark"] .audit-details,
[data-theme="dark"] .import-dropzone p,
[data-theme="dark"] .import-rules li,
[data-theme="dark"] .irc-label,
[data-theme="dark"] .import-errors li,
[data-theme="dark"] .col-ref-desc,
[data-theme="dark"] .flag-reason,
[data-theme="dark"] .flag-loading-box p,
[data-theme="dark"] .text-muted { color: var(--text-muted); }
[data-theme="dark"] .msg-tab.active,
[data-theme="dark"] .msg-retry-btn { color: var(--primary); }
[data-theme="dark"] .dropzone-selected,
[data-theme="dark"] .import-rules li::before,
[data-theme="dark"] .irc-green .irc-icon { color: var(--success); }
[data-theme="dark"] .audit-cat-create .audit-icon,
[data-theme="dark"] .badge-completed-custom { background: color-mix(in srgb, var(--success) 16%, transparent); color: var(--success); }
[data-theme="dark"] .audit-cat-auth .audit-icon { background: color-mix(in srgb, var(--info) 16%, transparent); color: var(--info); }
[data-theme="dark"] .session-live-badge { background: rgba(79, 201, 143, 0.12); color: #8fe3b9; }
[data-theme="dark"] .bento-item.rotc .bento-meta,
[data-theme="dark"] .bento-item.cwts .bento-meta,
[data-theme="dark"] .bento-item.lts .bento-meta,
[data-theme="dark"] .bento-item.accent .bento-meta { color: var(--text-muted); }

[data-theme="dark"] .record-pill-late.active { color: var(--warning); }
[data-theme="dark"] .attendance-record tr[data-status="absent"] td { background: rgba(196, 43, 43, 0.07); }
/* The banner gradient used --primary, which is a light blue in dark mode; keep it deep navy. */
[data-theme="dark"] .session-banner {
    background: radial-gradient(circle at 84% 12%, rgba(90, 130, 220, 0.28), transparent 34%),
                linear-gradient(120deg, #0c1a3f 0%, var(--brand) 55%, #1c3c85 100%);
    border-color: rgba(148, 178, 255, 0.14);
}
[data-theme="dark"] .session-banner .badge-default { background: rgba(255, 255, 255, 0.12); color: #e6ecfa; }
[data-theme="dark"] .session-banner-icon { color: var(--accent-light, #e8c65a); }
[data-theme="dark"] .record-pill-attended.active { border-color: var(--success); color: var(--success); background: rgba(46, 160, 110, 0.14); }
[data-theme="dark"] .record-pill-late.active { border-color: var(--warning); color: var(--warning); background: rgba(212, 175, 55, 0.14); }
[data-theme="dark"] .record-pill-absent.active { border-color: var(--danger); color: var(--danger); background: rgba(196, 43, 43, 0.16); }
