/* ═══════════════════════════════════════════════════════════
   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); }

/* Attendance session tiles */
[data-theme="dark"] .session-tile-title,
[data-theme="dark"] .session-group-title { color: var(--text); }
[data-theme="dark"] .session-group-count { background: rgba(148, 178, 255, 0.12); color: var(--text); }
[data-theme="dark"] .program-nav-item.active { color: #fff; }
[data-theme="dark"] .session-excuse-title { color: var(--text); }
[data-theme="dark"] .student-cal-title { color: var(--text); }
[data-theme="dark"] .student-cal-dayinfo-title { color: var(--text); }

/* Notifications */
[data-theme="dark"] .notif-panel-head strong,
[data-theme="dark"] .notif-item-title,
[data-theme="dark"] .notif-page-head h3 { color: var(--text); }
[data-theme="dark"] .notif-item.is-unread,
[data-theme="dark"] .notif-page-item.is-unread { background: rgba(148, 178, 255, 0.08); }
[data-theme="dark"] .notif-item:hover,
[data-theme="dark"] .notif-panel-foot:hover,
[data-theme="dark"] .notif-search-results button:hover { background: rgba(148, 178, 255, 0.06); }
[data-theme="dark"] .notif-badge { box-shadow: 0 0 0 2px var(--bg-raised); }
[data-theme="dark"] .notif-mail-status { background: rgba(245, 158, 11, 0.12); color: #fcd34d; border-color: rgba(245, 158, 11, 0.3); }

/* Notifications: delete, toast, page selection */
[data-theme="dark"] .notif-page-item.is-selected { background: rgba(148, 178, 255, 0.12); }
[data-theme="dark"] .notif-delete:hover, [data-theme="dark"] .notif-delete:focus-visible { background: rgba(244, 122, 122, 0.12); }
[data-theme="dark"] .notif-danger:hover:not(:disabled) { background: rgba(244, 122, 122, 0.1); }
[data-theme="dark"] .notif-toast { background: var(--bg-raised); color: var(--text); border: 1px solid var(--border-strong); }

/* Fingerprint check-in terminal */
[data-theme="dark"] .fp-terminal { --fp-tint: rgba(148, 178, 255, 0.07); }
[data-theme="dark"] .fp-terminal:is([data-state="offline"], [data-state="idle"]) { --fp-tint: transparent; }
[data-theme="dark"] .fp-terminal[data-state="scanning"] { --fp-tint: rgba(116, 169, 255, 0.1); }
[data-theme="dark"] .fp-terminal[data-state="success"] { --fp-tint: rgba(79, 201, 143, 0.12); }
[data-theme="dark"] .fp-terminal[data-state="error"] { --fp-tint: rgba(244, 122, 122, 0.12); }
[data-theme="dark"] .fp-terminal[data-state="already"] { --fp-color: #fbbf24; --fp-tint: rgba(251, 191, 36, 0.12); }
[data-theme="dark"] .fp-terminal:is([data-state="waiting"], [data-state="ready"]) .fp-ridges-base { stroke: var(--info); }
[data-theme="dark"] .fp-terminal[data-state="waiting"] .fp-circle { animation-name: fpPulseDark; }
@keyframes fpPulseDark { 0%, 100% { box-shadow: 0 0 0 0 rgba(116, 169, 255, 0.3); } 50% { box-shadow: 0 0 0 12px rgba(116, 169, 255, 0); } }
[data-theme="dark"] .fp-capture { mix-blend-mode: screen; filter: invert(1) contrast(1.15); } /* dark ridges → light on the dark circle */
[data-theme="dark"] .fp-badge { color: #0b1324; }
[data-theme="dark"] .fp-match-avatar { color: #0b1324; }

/* ── Trainee Profiles expandable rows ── */
[data-theme="dark"] .trainee-table .trainee-main:hover td { background: rgba(148, 178, 255, 0.04); }
[data-theme="dark"] .trainee-table .trainee-main.is-open td,
[data-theme="dark"] .trainee-table .trainee-detail.is-open > td { background: rgba(148, 178, 255, 0.07); }
[data-theme="dark"] .trainee-toggle:hover { background: rgba(148, 178, 255, 0.1); color: var(--info); }
[data-theme="dark"] .trainee-toggle[aria-expanded="true"] svg { color: var(--info); }

/* ── Grading ── */
[data-theme="dark"] .gs-table tbody tr:nth-child(even) td, [data-theme="dark"] .gs-table tbody tr:nth-child(even) th { background: #0e1626; }
[data-theme="dark"] .gs-table thead .gs-result, [data-theme="dark"] .gs-table tbody td.gs-result { background: #141f36; }
[data-theme="dark"] .gs-table tbody tr:nth-child(even) td.gs-result { background: #111b30; }
[data-theme="dark"] .gs-table tbody tr:hover td, [data-theme="dark"] .gs-table tbody tr:hover th { background: var(--bg-raised); }
[data-theme="dark"] .gs-weight, [data-theme="dark"] .gs-summary > div, [data-theme="dark"] .gs-status { background: var(--bg-raised); }
[data-theme="dark"] .gs-status-locked { background: rgba(116, 169, 255, 0.08); }
[data-theme="dark"] .gs-status-partial { background: rgba(251, 191, 36, 0.07); }
[data-theme="dark"] .gs-chip { background: var(--bg-raised); }
[data-theme="dark"] .gs-chip-add { background: transparent; color: var(--info); }
[data-theme="dark"] .gs-summary .is-incomplete dd, [data-theme="dark"] .gs-grade-incomplete, [data-theme="dark"] .gs-status-partial .gs-status-icon { color: #fbbf24; }
[data-theme="dark"] .gs-score { background: var(--bg-raised); }
[data-theme="dark"] .gs-score:disabled { background: transparent; }
[data-theme="dark"] .gs-grade, [data-theme="dark"] .mg-result-value, [data-theme="dark"] .mg-steps-total strong { color: var(--text); }
[data-theme="dark"] .gs-missing, [data-theme="dark"] .gs-dirty, [data-theme="dark"] .mg-steps em { color: #fbbf24; }
[data-theme="dark"] .mg-result-item { background: var(--bg-raised); }
[data-theme="dark"] .mg-bar { background: rgba(148, 178, 255, 0.12); }
[data-theme="dark"] .grading-term-new td { background: rgba(148, 178, 255, 0.04); }

/* ── Fingerprint Enrollment status dot ── */
[data-theme="dark"] .fp-status-dot { box-shadow: 0 0 0 3px rgba(148, 178, 255, 0.12); }
[data-theme="dark"] .fp-status-dot.is-enrolled { background: #4fc98f; box-shadow: 0 0 0 3px rgba(79, 201, 143, 0.2); }

/* ── Trainees tabs ── */
[data-theme="dark"] .tr-tab-count { background: var(--bg-raised); }
[data-theme="dark"] .tr-tab.active .tr-tab-count { background: rgba(116, 169, 255, 0.16); color: var(--info); }
[data-theme="dark"] .tr-tab-count.has-pending { background: var(--danger); color: #fff; }
[data-theme="dark"] .tr-segment { background: var(--bg-raised); }
[data-theme="dark"] .tr-segment a.active { background: var(--bg-elevated); color: var(--info); }
[data-theme="dark"] .tr-segment a.active span { color: var(--info); }
[data-theme="dark"] .tr-autoflag { color: #fbbf24; border-color: rgba(251, 191, 36, 0.4); }
[data-theme="dark"] .tr-notice { background: rgba(244, 122, 122, 0.07); border-color: rgba(244, 122, 122, 0.25); }
[data-theme="dark"] .reg-table.reg-compact .reg-main.is-open td, [data-theme="dark"] .reg-table.reg-compact .reg-detail.is-open > td { background: rgba(148, 178, 255, 0.07); }

/* ── Schedules ── */
[data-theme="dark"] .sch-item { background: var(--bg-elevated); }
[data-theme="dark"] .sch-date { background: var(--bg-raised); border-color: var(--border); }
[data-theme="dark"] .sch-date-month { color: var(--info); }
[data-theme="dark"] .sch-item.is-today .sch-date { background: rgba(251, 191, 36, 0.1); border-color: rgba(251, 191, 36, 0.35); }
[data-theme="dark"] .sch-item.is-today .sch-date-month, [data-theme="dark"] .sch-item.is-today .sch-date-weekday, [data-theme="dark"] .sch-when { color: #fbbf24; }
[data-theme="dark"] .sch-bar { background: rgba(148, 178, 255, 0.12); }

/* ── Attendance picker date tiles ── */
[data-theme="dark"] .session-tile-date { background: var(--bg-raised); border-color: var(--border); }
[data-theme="dark"] .session-tile-date span:first-child { color: var(--info); }
[data-theme="dark"] .session-browser-toggle { color: var(--info); }
[data-theme="dark"] .attendance-record tbody tr[data-status="absent"] td { background: rgba(244, 122, 122, 0.04); }

/* ── ROTC units ── */
[data-theme="dark"] .unit-company-title { color: var(--text); }
[data-theme="dark"] .unit-bar { background: rgba(148, 178, 255, 0.12); }
[data-theme="dark"] .unit-bar span { background: var(--info); }
[data-theme="dark"] .unit-card.is-full .unit-bar span { background: var(--danger); }
[data-theme="dark"] .unit-leader-note { color: #fbbf24; }

/* ── Backups ── */
[data-theme="dark"] .bk-danger { color: #f87171; border-color: rgba(248, 113, 113, 0.35); }

/* ── Users ── */
[data-theme="dark"] .us-stat { background: var(--bg-raised); }
[data-theme="dark"] .us-you { color: var(--info) !important; background: rgba(116, 169, 255, 0.14); }
[data-theme="dark"] .us-danger { color: #f87171; border-color: rgba(248, 113, 113, 0.35); }
[data-theme="dark"] .us-program-form .form-control.is-unset { color: #fbbf24; }

/* Dashboard */
[data-theme="dark"] .db-todo,
[data-theme="dark"] .db-program { background: var(--bg-elevated); border-color: var(--border); box-shadow: none; }
[data-theme="dark"] .db-program { border-top-color: var(--prog); }
[data-theme="dark"] .db-program.rotc { --prog: #9cb35a; }
[data-theme="dark"] .db-program.cwts { --prog: #5aa7ec; }
[data-theme="dark"] .db-program.lts { --prog: #8aa6e8; }
[data-theme="dark"] .db-todo-item.tone-info { --tone: #7fb0f5; }
[data-theme="dark"] .db-todo-item.tone-warn { --tone: #e4c04a; }
[data-theme="dark"] .db-todo-item.tone-danger { --tone: #f08080; }
[data-theme="dark"] .db-todo-clear,
[data-theme="dark"] .db-program-ok { color: #5fd3a0; }
[data-theme="dark"] .db-program-risk,
[data-theme="dark"] .db-program-pct.is-below { color: #f08080; }
[data-theme="dark"] .db-more { color: #8fb4f5; }
[data-theme="dark"] .db-more:hover { background: rgba(255,255,255,.04); }
[data-theme="dark"] .dashboard-page .bento-item.db-tone-ok .bento-value { color: #5fd3a0; }
[data-theme="dark"] .dashboard-page .bento-item.db-tone-risk .bento-value { color: #f08080; }
