/**
 * HMS dark theme.
 *
 * How it works:
 *  - partials/theme-init sets <html data-theme="dark|light"> before first paint (public/js/theme.js runs the toggle).
 *  - Page styles reference colours as var(--dm-*, <original>). The --dm-* tokens are defined ONLY here, ONLY in
 *    dark mode and ONLY on screen, so light mode and printing always fall back to the original colours.
 *  - Below the tokens are overrides for the shell, Bootstrap / Material Dashboard components and plugins.
 *
 * When adding page styles, write neutral colours as var(--dm-surface, #fff), var(--dm-text, #344767), etc.
 */

@media screen {

    /* ==========================================================================
       Tokens
       ========================================================================== */

    :root[data-theme="dark"] {
        color-scheme: dark;
        background-color: #0b1120;

        /* Surfaces: original #fff → surface, #f8fafc → surface-2, #f1f5f9 → surface-3, #e2e8f0 → surface-4 */
        --dm-surface: #131a2b;
        --dm-surface-rgb: 19, 26, 43;
        --dm-surface-2: #172034;
        --dm-surface-2-rgb: 23, 32, 52;
        --dm-surface-3: #1d2740;
        --dm-surface-3-rgb: 29, 39, 64;
        --dm-surface-4: #253049;
        --dm-surface-4-rgb: 37, 48, 73;

        /* Text */
        --dm-text-strong: #f1f5f9;
        --dm-text-strong-rgb: 241, 245, 249;
        --dm-text: #e2e8f0;
        --dm-text-rgb: 226, 232, 240;
        --dm-text-muted: #94a3b8;
        --dm-text-muted-rgb: 148, 163, 184;

        /* Lines */
        --dm-border: #2a3550;
        --dm-border-rgb: 42, 53, 80;
        --dm-border-strong: #475569;
        --dm-border-strong-rgb: 71, 85, 105;

        /* Bootstrap 5.3 variables used by Material Dashboard */
        --bs-body-bg: #0b1120;
        --bs-body-color: #cbd5e1;
        --bs-emphasis-color: #f1f5f9;
        --bs-heading-color: #f1f5f9;
        --bs-secondary-bg: #1d2740;
        --bs-tertiary-bg: #172034;
        --bs-border-color: #2a3550;
        --bs-secondary-color: #94a3b8;

        /* Generated per-colour tokens: tinted chip backgrounds (bg-*) and lifted saturated text (fg-*) */
        /* @generated-tokens:start */
        --dm-bg-c8e5ff: #132d4e;
        --dm-bg-c8e5ff-rgb: 19, 45, 78;
        --dm-bg-d1ecf1: #1a3546;
        --dm-bg-d1ecf1-rgb: 26, 53, 70;
        --dm-bg-d1fae5: #143f3a;
        --dm-bg-d1fae5-rgb: 20, 63, 58;
        --dm-bg-d3f0ff: #13324e;
        --dm-bg-d3f0ff-rgb: 19, 50, 78;
        --dm-bg-dbeafe: #13294e;
        --dm-bg-dbeafe-rgb: 19, 41, 78;
        --dm-bg-dcfce7: #134034;
        --dm-bg-dcfce7-rgb: 19, 64, 52;
        --dm-bg-e0e7ff: #13224e;
        --dm-bg-e0e7ff-rgb: 19, 34, 78;
        --dm-bg-e2e8f0: #1c2b45;
        --dm-bg-e2e8f0-rgb: 28, 43, 69;
        --dm-bg-e3f2fd: #132f4e;
        --dm-bg-e3f2fd-rgb: 19, 47, 78;
        --dm-bg-e6f9f0: #183a3b;
        --dm-bg-e6f9f0-rgb: 24, 58, 59;
        --dm-bg-e8f4fd: #132f4d;
        --dm-bg-e8f4fd-rgb: 19, 47, 77;
        --dm-bg-e8f5e9: #1c3731;
        --dm-bg-e8f5e9-rgb: 28, 55, 49;
        --dm-bg-ecf5ff: #132b4e;
        --dm-bg-ecf5ff-rgb: 19, 43, 78;
        --dm-bg-eef1ff: #13204e;
        --dm-bg-eef1ff-rgb: 19, 32, 78;
        --dm-bg-eef4ff: #13274e;
        --dm-bg-eef4ff-rgb: 19, 39, 78;
        --dm-bg-eff6ff: #132a4e;
        --dm-bg-eff6ff-rgb: 19, 42, 78;
        --dm-bg-f0f9ff: #13304e;
        --dm-bg-f0f9ff-rgb: 19, 48, 78;
        --dm-bg-f0fdf4: #153e33;
        --dm-bg-f0fdf4-rgb: 21, 62, 51;
        --dm-bg-f3e5f5: #2e2245;
        --dm-bg-f3e5f5-rgb: 46, 34, 69;
        --dm-bg-f3e8ff: #26194e;
        --dm-bg-f3e8ff-rgb: 38, 25, 78;
        --dm-bg-fce7f3: #381a3d;
        --dm-bg-fce7f3-rgb: 56, 26, 61;
        --dm-bg-fee2e2: #3a1927;
        --dm-bg-fee2e2-rgb: 58, 25, 39;
        --dm-bg-fef0f0: #3a1927;
        --dm-bg-fef0f0-rgb: 58, 25, 39;
        --dm-bg-fef2f2: #3a1927;
        --dm-bg-fef2f2-rgb: 58, 25, 39;
        --dm-bg-fef3c7: #3a3827;
        --dm-bg-fef3c7-rgb: 58, 56, 39;
        --dm-bg-fef3e2: #3a3027;
        --dm-bg-fef3e2-rgb: 58, 48, 39;
        --dm-bg-ffe6e6: #3a1927;
        --dm-bg-ffe6e6-rgb: 58, 25, 39;
        --dm-bg-ffebee: #3a192d;
        --dm-bg-ffebee-rgb: 58, 25, 45;
        --dm-bg-fff3cd: #3a3627;
        --dm-bg-fff3cd-rgb: 58, 54, 39;
        --dm-bg-fff3e0: #3a3127;
        --dm-bg-fff3e0-rgb: 58, 49, 39;
        --dm-bg-fff7ed: #3a2e27;
        --dm-bg-fff7ed-rgb: 58, 46, 39;
        --dm-bg-fff8e1: #3a3727;
        --dm-bg-fff8e1-rgb: 58, 55, 39;
        --dm-bg-fffbeb: #3a3827;
        --dm-bg-fffbeb-rgb: 58, 56, 39;
        --dm-fg-007bff: #52a5ff;
        --dm-fg-007bff-rgb: 82, 165, 255;
        --dm-fg-0366d6: #57a5fd;
        --dm-fg-0366d6-rgb: 87, 165, 253;
        --dm-fg-059669: #06b981;
        --dm-fg-059669-rgb: 6, 185, 129;
        --dm-fg-065f46: #0cba89;
        --dm-fg-065f46-rgb: 12, 186, 137;
        --dm-fg-0c5460: #1ab3cd;
        --dm-fg-0c5460-rgb: 26, 179, 205;
        --dm-fg-0f766e: #17b5a9;
        --dm-fg-0f766e-rgb: 23, 181, 169;
        --dm-fg-15803d: #1fbd5a;
        --dm-fg-15803d-rgb: 31, 189, 90;
        --dm-fg-166534: #28b95f;
        --dm-fg-166534-rgb: 40, 185, 95;
        --dm-fg-16a34a: #1abe56;
        --dm-fg-16a34a-rgb: 26, 190, 86;
        --dm-fg-17a2b8: #19b2ca;
        --dm-fg-17a2b8-rgb: 25, 178, 202;
        --dm-fg-1a73e8: #6da6f0;
        --dm-fg-1a73e8-rgb: 109, 166, 240;
        --dm-fg-1d4ed8: #86a1ef;
        --dm-fg-1d4ed8-rgb: 134, 161, 239;
        --dm-fg-1e40af: #8aa1eb;
        --dm-fg-1e40af-rgb: 138, 161, 235;
        --dm-fg-2563eb: #7ea3f3;
        --dm-fg-2563eb-rgb: 126, 163, 243;
        --dm-fg-28a745: #2dbc4e;
        --dm-fg-28a745-rgb: 45, 188, 78;
        --dm-fg-3730a3: #9e9ae1;
        --dm-fg-3730a3-rgb: 158, 154, 225;
        --dm-fg-667eea: #8ea0f0;
        --dm-fg-667eea-rgb: 142, 160, 240;
        --dm-fg-78350f: #ea8b55;
        --dm-fg-78350f-rgb: 234, 139, 85;
        --dm-fg-7c3aed: #b793f5;
        --dm-fg-7c3aed-rgb: 183, 147, 245;
        --dm-fg-856404: #cf9c06;
        --dm-fg-856404-rgb: 207, 156, 6;
        --dm-fg-92400e: #ee894b;
        --dm-fg-92400e-rgb: 238, 137, 75;
        --dm-fg-991b1b: #ea8787;
        --dm-fg-991b1b-rgb: 234, 135, 135;
        --dm-fg-9a3412: #ed8967;
        --dm-fg-9a3412-rgb: 237, 137, 103;
        --dm-fg-9c27b0: #d787e4;
        --dm-fg-9c27b0-rgb: 215, 135, 228;
        --dm-fg-b45309: #f5842e;
        --dm-fg-b45309-rgb: 245, 132, 46;
        --dm-fg-b91c1c: #ed8686;
        --dm-fg-b91c1c-rgb: 237, 134, 134;
        --dm-fg-be185d: #ef80ae;
        --dm-fg-be185d-rgb: 239, 128, 174;
        --dm-fg-ca8a04: #d99404;
        --dm-fg-ca8a04-rgb: 217, 148, 4;
        --dm-fg-d97706: #f78707;
        --dm-fg-d97706-rgb: 247, 135, 7;
        --dm-fg-dc2626: #ec8787;
        --dm-fg-dc2626-rgb: 236, 135, 135;
        --dm-fg-dc3545: #ea8891;
        --dm-fg-dc3545-rgb: 234, 136, 145;
        --dm-fg-ef4444: #f48181;
        --dm-fg-ef4444-rgb: 244, 129, 129;
        /* @generated-tokens:end */
    }

    /* App shell tokens (declared on .hms-app in app-shell.css) */
    :root[data-theme="dark"] .hms-app {
        --hms-bg: #0b1120;
        --hms-surface: #131a2b;
        --hms-border: rgba(148, 163, 184, 0.14);
        --hms-border-strong: rgba(148, 163, 184, 0.22);
        --hms-text: #e2e8f0;
        --hms-text-muted: #94a3b8;
        --hms-primary: #cbd5e1;
        --hms-primary-deep: #f1f5f9;
        --hms-primary-soft: rgba(148, 163, 184, 0.12);
        --hms-accent: #8b9bff;
        --hms-accent-soft: rgba(139, 155, 255, 0.16);
        --hms-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
        --hms-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
        --hms-shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.45);
    }

    /* Auth pages */
    :root[data-theme="dark"] {
        --auth-border: rgba(148, 163, 184, 0.16);
    }

    /* Admin dashboard tones (dashboard.css): lifted so text and bars stay ≥ 4.5:1 on dark cards */
    :root[data-theme="dark"] .hms-app .dash {
        --dash-arrival: #60a5fa;
    }

    :root[data-theme="dark"] .tone-ready { --tone: #34d399; }
    :root[data-theme="dark"] .tone-dirty { --tone: #fbbf24; }
    :root[data-theme="dark"] .tone-ooo { --tone: #f87171; }

    /* ==========================================================================
       Base typography
       ========================================================================== */

    :root[data-theme="dark"] body {
        background-color: #0b1120;
        color: #a9b4c7;
    }

    :root[data-theme="dark"] :is(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6) {
        color: var(--dm-text-strong);
    }

    :root[data-theme="dark"] :is(label, .form-label, .col-form-label) {
        color: #a9b4c7;
    }

    :root[data-theme="dark"] a:not([class]) {
        color: #a5b4fc;
    }

    :root[data-theme="dark"] hr.horizontal.dark,
    :root[data-theme="dark"] hr.dark {
        background-image: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0));
    }

    :root[data-theme="dark"] hr:not(.horizontal) {
        border-color: var(--dm-border);
        opacity: 1;
    }

    /* Material Dashboard text utilities (all !important upstream). Keep dark text on bright fills. */
    :root[data-theme="dark"] .text-dark:not(:is(.bg-warning, .bg-info, .bg-gradient-warning, .text-bg-warning, .text-bg-info, .btn-warning, .alert-warning, .bg-white-fixed)),
    :root[data-theme="dark"] .text-black:not(:is(.bg-warning, .bg-info, .bg-gradient-warning, .text-bg-warning, .text-bg-info, .btn-warning, .alert-warning)) {
        color: var(--dm-text-strong) !important;
    }

    :root[data-theme="dark"] :is(.bg-warning, .bg-info, .bg-gradient-warning, .text-bg-warning, .text-bg-info, .btn-warning, .alert-warning) :is(.text-dark, .text-black) {
        color: #1e293b !important;
    }

    :root[data-theme="dark"] .text-body {
        color: #a9b4c7 !important;
    }

    :root[data-theme="dark"] :is(.text-secondary, .text-muted) {
        color: var(--dm-text-muted) !important;
    }

    /* Material's primary pink and info blue fall under 4.5:1 on dark cards */
    :root[data-theme="dark"] .text-primary:not(.btn) {
        color: #f472b6 !important;
    }

    :root[data-theme="dark"] .text-info:not(.btn) {
        color: #60a5fa !important;
    }

    /* Black-outline logo on dark panels (sidebar, login form on phones) */
    :root[data-theme="dark"] :is(.navbar-brand-img, .auth-panel__mobile-brand img) {
        filter: invert(1);
    }

    /* ==========================================================================
       Backgrounds & borders
       ========================================================================== */

    :root[data-theme="dark"] .bg-white {
        background-color: var(--dm-surface) !important;
    }

    :root[data-theme="dark"] :is(.bg-light, .bg-gray-100) {
        background-color: var(--dm-surface-2) !important;
    }

    :root[data-theme="dark"] .bg-gray-200 {
        background-color: var(--dm-surface-3) !important;
    }

    :root[data-theme="dark"] .bg-gradient-light {
        background-image: linear-gradient(195deg, #334155 0%, #1e293b 100%) !important;
        color: var(--dm-text) !important;
    }

    /* Neutral utility borders only; coloured border utilities keep their colour */
    :root[data-theme="dark"] :is(.border, .border-top, .border-bottom, .border-start, .border-end, .border-left, .border-right):not(:is(.border-primary, .border-secondary, .border-success, .border-danger, .border-warning, .border-info, .border-white, [class*="border-gradient"])) {
        border-color: var(--dm-border) !important;
    }

    /* ==========================================================================
       Cards
       ========================================================================== */

    :root[data-theme="dark"] .card {
        background-color: var(--dm-surface);
        color: #a9b4c7;
    }

    :root[data-theme="dark"] .card .card-footer {
        background: rgba(255, 255, 255, 0.02);
    }

    /* ==========================================================================
       Tables
       ========================================================================== */

    :root[data-theme="dark"] .table {
        --bs-table-color: #cbd5e1;
        --bs-table-striped-color: #cbd5e1;
        --bs-table-striped-bg: rgba(255, 255, 255, 0.025);
        --bs-table-hover-color: #e2e8f0;
        --bs-table-hover-bg: rgba(255, 255, 255, 0.04);
        --bs-table-active-bg: rgba(255, 255, 255, 0.06);
        --bs-table-border-color: var(--dm-border);
        color: #cbd5e1;
        border-color: var(--dm-border);
    }

    :root[data-theme="dark"] .table > :not(caption) > * > * {
        border-bottom-color: var(--dm-border);
    }

    :root[data-theme="dark"] .table-light,
    :root[data-theme="dark"] .table .table-light {
        --bs-table-bg: var(--dm-surface-2);
        --bs-table-color: #cbd5e1;
        --bs-table-border-color: var(--dm-border);
    }

    :root[data-theme="dark"] .table :is(th, td).text-dark,
    :root[data-theme="dark"] .table thead th {
        color: var(--dm-text-muted);
    }

    /* ==========================================================================
       Forms
       ========================================================================== */

    :root[data-theme="dark"] :is(.form-control, .form-select, .input-group-text) {
        color: var(--dm-text);
        border-color: #334155;
    }

    :root[data-theme="dark"] :is(.form-control, .form-select):not(.input-group-outline .form-control):not(.input-group-static .form-control) {
        background-color: var(--dm-surface-2);
    }

    :root[data-theme="dark"] .input-group.input-group-outline .form-control {
        border-color: #334155 !important;
        background-color: transparent;
    }

    :root[data-theme="dark"] .input-group.input-group-outline.is-focused .form-control,
    :root[data-theme="dark"] .input-group.input-group-outline.is-filled .form-control {
        border-color: var(--hms-accent, #8b9bff) !important;
        border-top-color: transparent !important;
        box-shadow: inset 1px 0 var(--hms-accent, #8b9bff), inset -1px 0 var(--hms-accent, #8b9bff), inset 0 -1px var(--hms-accent, #8b9bff);
    }

    :root[data-theme="dark"] .input-group.input-group-outline.is-focused .form-label + .form-control,
    :root[data-theme="dark"] .input-group.input-group-outline.is-filled .form-label + .form-control {
        border-top-color: transparent !important;
    }

    :root[data-theme="dark"] .input-group.input-group-outline .form-label,
    :root[data-theme="dark"] .input-group.input-group-static label {
        color: var(--dm-text-muted);
    }

    :root[data-theme="dark"] .input-group.input-group-outline .form-label::before,
    :root[data-theme="dark"] .input-group.input-group-outline .form-label::after {
        border-top-color: #334155;
    }

    :root[data-theme="dark"] .input-group.input-group-outline.is-focused .form-label::before,
    :root[data-theme="dark"] .input-group.input-group-outline.is-focused .form-label::after,
    :root[data-theme="dark"] .input-group.input-group-outline.is-filled .form-label::before,
    :root[data-theme="dark"] .input-group.input-group-outline.is-filled .form-label::after {
        border-top-color: var(--hms-accent, #8b9bff);
        box-shadow: inset 0 1px var(--hms-accent, #8b9bff);
    }

    :root[data-theme="dark"] .input-group.input-group-static .form-control {
        background-image: linear-gradient(0deg, #8b9bff 2px, rgba(139, 155, 255, 0) 0), linear-gradient(0deg, #334155 1px, rgba(51, 65, 85, 0) 0);
    }

    :root[data-theme="dark"] :is(.form-control, .form-select)::placeholder {
        color: #64748b;
    }

    :root[data-theme="dark"] :is(.form-control, .form-select):is(:disabled, [readonly]) {
        background-color: var(--dm-surface-3) !important;
        color: var(--dm-text-muted);
    }

    :root[data-theme="dark"] .form-select {
        --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2394a3b8' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    }

    :root[data-theme="dark"] :is(input, select, textarea):-webkit-autofill {
        -webkit-text-fill-color: var(--dm-text);
        box-shadow: 0 0 0 1000px var(--dm-surface-2) inset;
        caret-color: var(--dm-text);
    }

    :root[data-theme="dark"] .form-check:not(.form-switch) .form-check-input:not(:checked) {
        background-color: var(--dm-surface-2);
        border-color: #475569;
    }

    :root[data-theme="dark"] .form-switch .form-check-input:not(:checked) {
        background-color: #334155;
        border-color: #334155;
    }

    :root[data-theme="dark"] .form-check-label {
        color: #cbd5e1;
    }

    /* ==========================================================================
       Buttons
       ========================================================================== */

    /* Near-black "dark" buttons would vanish into dark cards: lift them to slate */
    :root[data-theme="dark"] .hms-app :is(.btn-dark, .btn.bg-gradient-dark) {
        background-image: linear-gradient(195deg, #475569 0%, #334155 100%) !important;
        color: #fff;
    }

    :root[data-theme="dark"] :is(.btn-light, .btn-white, .btn.bg-white, .btn.bg-light) {
        background-color: var(--dm-surface-3) !important;
        border-color: var(--dm-border) !important;
        color: var(--dm-text) !important;
    }

    :root[data-theme="dark"] :is(.btn-light, .btn-white):hover {
        background-color: var(--dm-surface-4) !important;
    }

    :root[data-theme="dark"] :is(.btn-outline-dark, .btn-outline-secondary) {
        border-color: #64748b;
        color: #cbd5e1;
    }

    :root[data-theme="dark"] :is(.btn-outline-dark, .btn-outline-secondary):hover {
        background-color: rgba(148, 163, 184, 0.12);
        color: #f1f5f9;
    }

    /* Material's info/primary outlines are too dark on dark cards */
    :root[data-theme="dark"] .btn-outline-info {
        color: #60a5fa;
        border-color: #60a5fa;
    }

    :root[data-theme="dark"] .btn-outline-primary {
        color: #f472b6;
        border-color: #f472b6;
    }

    :root[data-theme="dark"] :is(.btn-outline-info, .btn-outline-primary):hover {
        color: #fff;
    }

    :root[data-theme="dark"] .btn-link:not([class*="text-"]) {
        color: #a5b4fc;
    }

    :root[data-theme="dark"] .btn-close {
        filter: invert(1) grayscale(100%) brightness(200%);
    }

    /* ==========================================================================
       Dropdowns, modals, popovers
       ========================================================================== */

    :root[data-theme="dark"] .dropdown-menu {
        background-color: var(--dm-surface-2);
        border-color: rgba(148, 163, 184, 0.16);
        color: #cbd5e1;
    }

    :root[data-theme="dark"] .dropdown-menu::before {
        color: var(--dm-surface-2) !important;
    }

    :root[data-theme="dark"] .dropdown-item {
        color: #cbd5e1;
    }

    :root[data-theme="dark"] .dropdown-item:is(:hover, :focus) {
        background-color: rgba(148, 163, 184, 0.1);
        color: #f1f5f9;
    }

    :root[data-theme="dark"] .dropdown-divider {
        border-color: var(--dm-border);
    }

    :root[data-theme="dark"] .modal-content {
        background-color: var(--dm-surface);
        color: #cbd5e1;
    }

    :root[data-theme="dark"] :is(.modal-header, .modal-footer) {
        border-color: var(--dm-border);
    }

    :root[data-theme="dark"] .modal-backdrop.show {
        opacity: 0.7;
    }

    :root[data-theme="dark"] .popover {
        --bs-popover-bg: var(--dm-surface-2);
        --bs-popover-border-color: var(--dm-border);
        --bs-popover-header-bg: var(--dm-surface-3);
        --bs-popover-body-color: #cbd5e1;
    }

    /* ==========================================================================
       Navigation, lists, pagination, misc
       ========================================================================== */

    :root[data-theme="dark"] .nav.nav-pills {
        background: var(--dm-surface-3);
    }

    :root[data-theme="dark"] .nav.nav-pills .nav-link {
        color: #cbd5e1;
    }

    :root[data-theme="dark"] .nav.nav-pills :is(.nav-link.active, .moving-tab .nav-link) {
        background: var(--dm-surface-4) !important;
        color: #f1f5f9;
    }

    :root[data-theme="dark"] .nav-tabs {
        border-color: var(--dm-border);
    }

    :root[data-theme="dark"] .nav-tabs .nav-link.active {
        background-color: var(--dm-surface);
        border-color: var(--dm-border) var(--dm-border) var(--dm-surface);
        color: #f1f5f9;
    }

    :root[data-theme="dark"] .list-group-item {
        background-color: var(--dm-surface);
        border-color: var(--dm-border);
        color: #cbd5e1;
    }

    :root[data-theme="dark"] .page-link {
        background-color: transparent;
        border-color: var(--dm-border);
        color: #cbd5e1;
    }

    :root[data-theme="dark"] .page-item.disabled .page-link {
        color: #8391a7;
        border-color: var(--dm-border);
        background-color: transparent;
    }

    :root[data-theme="dark"] .progress {
        background-color: var(--dm-surface-4);
    }

    :root[data-theme="dark"] .breadcrumb-item + .breadcrumb-item::before {
        color: #64748b;
    }

    :root[data-theme="dark"] .accordion-button,
    :root[data-theme="dark"] .accordion-item {
        background-color: var(--dm-surface);
        color: #cbd5e1;
        border-color: var(--dm-border);
    }

    :root[data-theme="dark"] .accordion-button::after {
        filter: invert(1);
    }

    :root[data-theme="dark"] .footer .copyright {
        color: var(--dm-text-muted) !important;
    }

    /* Theme menu */
    .hms-theme-menu .dropdown-item {
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }

    .hms-theme-menu .dropdown-item .material-symbols-rounded {
        font-size: 1.1rem;
    }

    .hms-theme-menu .dropdown-item.active {
        background: var(--hms-accent-soft, rgba(94, 114, 228, 0.12));
        color: var(--hms-primary-deep, #1a2035);
        font-weight: 600;
    }

    /* ==========================================================================
       Plugins
       ========================================================================== */

    /* DataTables 2 (its own CSS already handles :root[data-theme=dark] rows) */
    :root[data-theme="dark"] div.dt-container :is(.dt-search input, .dt-length select, .dt-input) {
        background-color: var(--dm-surface-2);
        color: var(--dm-text);
        border-color: #334155;
    }

    :root[data-theme="dark"] div.dt-container :is(.dt-info, .dt-length, .dt-search, .dt-paging) {
        color: var(--dm-text-muted);
    }

    :root[data-theme="dark"] div.dt-container .dt-paging .dt-paging-button:not(.current):not(.disabled) {
        color: #cbd5e1 !important;
    }

    /* SweetAlert2 */
    :root[data-theme="dark"] .swal2-popup {
        background: var(--dm-surface);
        color: #cbd5e1;
    }

    :root[data-theme="dark"] .swal2-title {
        color: var(--dm-text-strong);
    }

    :root[data-theme="dark"] :is(.swal2-html-container, .swal2-content) {
        color: #cbd5e1;
    }

    :root[data-theme="dark"] :is(.swal2-input, .swal2-textarea, .swal2-select, .swal2-file) {
        background: var(--dm-surface-2);
        color: var(--dm-text);
        border-color: #334155;
    }

    :root[data-theme="dark"] .swal2-validation-message {
        background: var(--dm-surface-3);
        color: #cbd5e1;
    }

    :root[data-theme="dark"] .swal2-footer {
        border-top-color: var(--dm-border);
        color: var(--dm-text-muted);
    }

    :root[data-theme="dark"] .swal2-icon.swal2-success [class^="swal2-success-circular-line"],
    :root[data-theme="dark"] .swal2-icon.swal2-success .swal2-success-fix {
        background-color: transparent !important;
    }

    :root[data-theme="dark"] .swal2-timer-progress-bar {
        background: rgba(255, 255, 255, 0.3);
    }

    /* Select2 */
    :root[data-theme="dark"] .select2-container--default :is(.select2-selection--single, .select2-selection--multiple) {
        background-color: var(--dm-surface-2);
        border-color: #334155;
    }

    :root[data-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__rendered {
        color: var(--dm-text);
    }

    :root[data-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__placeholder {
        color: #64748b;
    }

    :root[data-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__arrow b {
        border-top-color: #94a3b8;
    }

    :root[data-theme="dark"] .select2-dropdown {
        background-color: var(--dm-surface-2);
        border-color: #334155;
        color: #cbd5e1;
    }

    :root[data-theme="dark"] .select2-container--default .select2-search--dropdown .select2-search__field,
    :root[data-theme="dark"] .select2-container--default .select2-search--inline .select2-search__field {
        background-color: var(--dm-surface);
        border-color: #334155;
        color: var(--dm-text);
    }

    :root[data-theme="dark"] .select2-container--default .select2-results__option[aria-selected="true"],
    :root[data-theme="dark"] .select2-container--default .select2-results__option--selected {
        background-color: var(--dm-surface-4);
    }

    :root[data-theme="dark"] .select2-container--default .select2-selection--multiple .select2-selection__choice {
        background-color: var(--dm-surface-4);
        border-color: #475569;
        color: var(--dm-text);
    }

    :root[data-theme="dark"] .select2-container--default.select2-container--disabled :is(.select2-selection--single, .select2-selection--multiple) {
        background-color: var(--dm-surface-3);
    }

    /* Flatpickr */
    :root[data-theme="dark"] .flatpickr-calendar {
        background: var(--dm-surface-2);
        box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(148, 163, 184, 0.14);
    }

    :root[data-theme="dark"] .flatpickr-calendar.arrowTop::after {
        border-bottom-color: var(--dm-surface-2);
    }

    :root[data-theme="dark"] .flatpickr-calendar.arrowBottom::after {
        border-top-color: var(--dm-surface-2);
    }

    :root[data-theme="dark"] .flatpickr-calendar :is(.flatpickr-months .flatpickr-month, .flatpickr-current-month, .flatpickr-current-month input.cur-year, span.flatpickr-weekday, .flatpickr-time input, .flatpickr-time .flatpickr-am-pm, .flatpickr-time .flatpickr-time-separator) {
        color: var(--dm-text);
        fill: var(--dm-text);
        background: transparent;
    }

    :root[data-theme="dark"] .flatpickr-current-month .flatpickr-monthDropdown-months {
        background: var(--dm-surface-2);
        color: var(--dm-text);
    }

    :root[data-theme="dark"] .flatpickr-months :is(.flatpickr-prev-month, .flatpickr-next-month) {
        color: var(--dm-text);
        fill: var(--dm-text);
    }

    :root[data-theme="dark"] .flatpickr-months :is(.flatpickr-prev-month, .flatpickr-next-month) svg {
        fill: var(--dm-text);
    }

    :root[data-theme="dark"] .flatpickr-day {
        color: var(--dm-text);
    }

    :root[data-theme="dark"] .flatpickr-day:is(.prevMonthDay, .nextMonthDay, .flatpickr-disabled, .flatpickr-disabled:hover, .notAllowed) {
        color: rgba(226, 232, 240, 0.3);
    }

    :root[data-theme="dark"] .flatpickr-day:not(.selected):not(.startRange):not(.endRange):is(:hover, :focus, .inRange) {
        background: var(--dm-surface-4);
        border-color: var(--dm-surface-4);
        box-shadow: -5px 0 0 var(--dm-surface-4), 5px 0 0 var(--dm-surface-4);
    }

    :root[data-theme="dark"] .flatpickr-day:not(.selected):not(.startRange):not(.endRange):is(:hover, :focus) {
        box-shadow: none;
    }

    :root[data-theme="dark"] .flatpickr-day.today:not(.selected) {
        border-color: #8b9bff;
    }

    :root[data-theme="dark"] .flatpickr-time {
        border-top-color: var(--dm-border) !important;
    }

    :root[data-theme="dark"] .flatpickr-time :is(input, .flatpickr-am-pm):hover {
        background: var(--dm-surface-3);
    }

    /* Choices.js */
    :root[data-theme="dark"] .choices__inner,
    :root[data-theme="dark"] .choices__input {
        background-color: var(--dm-surface-2);
        color: var(--dm-text);
    }

    :root[data-theme="dark"] .choices__inner {
        border-color: #334155;
    }

    :root[data-theme="dark"] .choices.is-disabled .choices__inner,
    :root[data-theme="dark"] .choices.is-disabled .choices__input {
        background-color: var(--dm-surface-3);
    }

    :root[data-theme="dark"] :is(.choices__list--dropdown, .choices__list[aria-expanded]) {
        background-color: var(--dm-surface-2);
        border-color: #334155;
        color: #cbd5e1;
    }

    :root[data-theme="dark"] :is(.choices__list--dropdown, .choices__list[aria-expanded]) .choices__item--selectable.is-highlighted {
        background-color: var(--dm-surface-4);
    }

    :root[data-theme="dark"] .choices__list--single .choices__item,
    :root[data-theme="dark"] .choices__item--choice {
        color: var(--dm-text);
    }

    :root[data-theme="dark"] .choices__placeholder {
        color: #94a3b8;
        opacity: 1;
    }

    :root[data-theme="dark"] .choices[data-type*="select-one"]::after {
        border-color: #94a3b8 transparent transparent;
    }

    :root[data-theme="dark"] .choices[data-type*="select-one"].is-open::after {
        border-color: transparent transparent #94a3b8;
    }

    :root[data-theme="dark"] .choices[data-type*="select-one"] .choices__input {
        border-bottom-color: #334155;
    }
}
