/* Dark theme. Applied when <html data-theme="dark">, which assets/js/theme.js (and a tiny script in <head>) sets
   from the device's display setting (prefers-color-scheme) or from the user's Auto / Light / Dark choice.
   Screen only: printing and receipts always stay light. */
@media screen {
:root { color-scheme: light; }
:root[data-theme="dark"] {
    color-scheme: dark;
    --dm-bg: #0e1621; --dm-surface: #162130; --dm-surface-2: #1d2b3c; --dm-input: #0f1a27; --dm-border: #2f4256; --dm-border-strong: #4a6178;
    --dm-text: #e4ecf4; --dm-muted: #a6b7c8; --dm-heading: #f2f7fc; --dm-link: #6fb8f2; --dm-link-hover: #a3d2f7;
    --dm-ok: #5fd08d; --dm-bad: #ff8d97; --dm-warn: #ffcf66; --dm-info: #6fd3e6;
    --bs-body-bg: var(--dm-bg); --bs-body-color: var(--dm-text); --bs-secondary-color: var(--dm-muted); --bs-tertiary-bg: var(--dm-surface-2);
    --bs-border-color: var(--dm-border); --bs-heading-color: var(--dm-heading); --bs-emphasis-color: #fff; --bs-link-color: var(--dm-link); --bs-link-hover-color: var(--dm-link-hover);
    --wb-bg: var(--dm-bg); --wb-surface: var(--dm-surface); --wb-text: var(--dm-text); --wb-muted: var(--dm-muted); --wb-border: var(--dm-border);
    --cp-ink: var(--dm-text); --cp-mute: var(--dm-muted); --cp-line: var(--dm-border);
}

/* ---- page, text, links ---- */
[data-theme="dark"] body { background: var(--dm-bg); color: var(--dm-text); }
[data-theme="dark"] h1, [data-theme="dark"] h2, [data-theme="dark"] h3, [data-theme="dark"] h4, [data-theme="dark"] h5, [data-theme="dark"] h6,
[data-theme="dark"] .h1, [data-theme="dark"] .h2, [data-theme="dark"] .h3, [data-theme="dark"] .h4, [data-theme="dark"] .h5, [data-theme="dark"] .h6,
[data-theme="dark"] .form-header h1, [data-theme="dark"] .form-header h2, [data-theme="dark"] .form-header h3, [data-theme="dark"] .form-divider h5 { color: var(--dm-heading); }
[data-theme="dark"] p, [data-theme="dark"] li, [data-theme="dark"] td, [data-theme="dark"] th, [data-theme="dark"] dt, [data-theme="dark"] dd, [data-theme="dark"] strong, [data-theme="dark"] b,
[data-theme="dark"] label, [data-theme="dark"] legend, [data-theme="dark"] .form-label, [data-theme="dark"] .form-check-label, [data-theme="dark"] .card-title, [data-theme="dark"] .card-text { color: var(--dm-text); }
[data-theme="dark"] .text-muted, [data-theme="dark"] .text-secondary, [data-theme="dark"] .text-body-secondary, [data-theme="dark"] small, [data-theme="dark"] .small,
[data-theme="dark"] .helper-text, [data-theme="dark"] .form-text, [data-theme="dark"] .table-responsive::after { color: var(--dm-muted) !important; }
[data-theme="dark"] .text-dark, [data-theme="dark"] .text-body, [data-theme="dark"] .text-black, [data-theme="dark"] .text-reset { color: var(--dm-text) !important; }
[data-theme="dark"] .text-primary { color: var(--dm-link) !important; }
[data-theme="dark"] .text-success { color: var(--dm-ok) !important; }
[data-theme="dark"] .text-danger { color: var(--dm-bad) !important; }
[data-theme="dark"] .text-warning { color: var(--dm-warn) !important; }
[data-theme="dark"] .text-info { color: var(--dm-info) !important; }
[data-theme="dark"] a:not(.btn):not(.nav-link):not(.navbar-brand):not(.dropdown-item):not(.page-link):not(.list-group-item):not(.cp-btn):not(.badge):not([class*="btn-"]) { color: var(--dm-link); }
[data-theme="dark"] a:not(.btn):not(.nav-link):not(.navbar-brand):not(.dropdown-item):not(.page-link):not(.list-group-item):not(.cp-btn):not(.badge):not([class*="btn-"]):hover { color: var(--dm-link-hover); }
[data-theme="dark"] hr { border-color: var(--dm-border); opacity: 1; }
[data-theme="dark"] code { color: #ffa8c9; }
[data-theme="dark"] .bg-white, [data-theme="dark"] .bg-light, [data-theme="dark"] .bg-body, [data-theme="dark"] .table-light { background-color: var(--dm-surface) !important; color: var(--dm-text); }
[data-theme="dark"] .border, [data-theme="dark"] .border-top, [data-theme="dark"] .border-bottom, [data-theme="dark"] .border-start, [data-theme="dark"] .border-end { border-color: var(--dm-border) !important; }

/* ---- cards, panels, modals, dropdowns ---- */
[data-theme="dark"] .card, [data-theme="dark"] .form-section, [data-theme="dark"] .list-group-item, [data-theme="dark"] .modal-content, [data-theme="dark"] .dropdown-menu, [data-theme="dark"] .accordion-item {
    background-color: var(--dm-surface); color: var(--dm-text); border-color: var(--dm-border); }
[data-theme="dark"] .card-header, [data-theme="dark"] .card-footer, [data-theme="dark"] .modal-header, [data-theme="dark"] .modal-footer, [data-theme="dark"] .accordion-button {
    background-color: var(--dm-surface-2) !important; color: var(--dm-text); border-color: var(--dm-border); }
[data-theme="dark"] .modal-content { box-shadow: 0 16px 40px rgba(0, 0, 0, .55); }
[data-theme="dark"] .dropdown-item { color: var(--dm-text); }
[data-theme="dark"] .dropdown-item:hover, [data-theme="dark"] .dropdown-item:focus { background: var(--dm-surface-2); color: #fff; }
[data-theme="dark"] .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }

/* ---- tables ---- */
[data-theme="dark"] .table { --bs-table-color: var(--dm-text); --bs-table-bg: transparent; --bs-table-border-color: var(--dm-border);
    --bs-table-striped-bg: rgba(255, 255, 255, .035); --bs-table-striped-color: var(--dm-text); --bs-table-hover-bg: rgba(111, 184, 242, .09); --bs-table-hover-color: #fff; color: var(--dm-text); border-color: var(--dm-border); }
[data-theme="dark"] .table > :not(caption) > * > * { color: var(--dm-text); border-color: var(--dm-border); }
[data-theme="dark"] .table thead th, [data-theme="dark"] .table th, [data-theme="dark"] .table thead:not([class*="table-"]) > tr > th { background-color: #1d2b3c !important; color: var(--dm-muted) !important; box-shadow: inset 0 -2px 0 var(--dm-border-strong); }
[data-theme="dark"] .table thead[class*="table-dark"] > tr > th { background-color: #0b3a63 !important; color: #fff !important; }
[data-theme="dark"] .table-hover > tbody > tr:hover > * { background-color: rgba(111, 184, 242, .09); color: #fff; }
[data-theme="dark"] .table-stack tr { background: var(--dm-surface); border-color: var(--dm-border) !important; }
[data-theme="dark"] .table-stack td::before { color: var(--dm-muted); }
[data-theme="dark"] .table-scroll, [data-theme="dark"] .table-responsive { scrollbar-color: #3a4f66 transparent; }

/* ---- forms ---- */
[data-theme="dark"] .form-control, [data-theme="dark"] .form-select, [data-theme="dark"] .input-group-text, [data-theme="dark"] textarea, [data-theme="dark"] select,
[data-theme="dark"] input[type="text"], [data-theme="dark"] input[type="number"], [data-theme="dark"] input[type="date"], [data-theme="dark"] input[type="datetime-local"],
[data-theme="dark"] input[type="password"], [data-theme="dark"] input[type="email"], [data-theme="dark"] input[type="search"], [data-theme="dark"] input[type="tel"], [data-theme="dark"] input[type="month"] {
    background-color: var(--dm-input); color: var(--dm-text); border-color: var(--dm-border-strong); }
[data-theme="dark"] .form-control:focus, [data-theme="dark"] .form-select:focus { background-color: var(--dm-input); color: #fff; border-color: #4aa3e6; box-shadow: 0 0 0 .22rem rgba(74, 163, 230, .3); }
[data-theme="dark"] .form-control::placeholder, [data-theme="dark"] textarea::placeholder { color: #8195a9; opacity: 1; }
[data-theme="dark"] .form-control:disabled, [data-theme="dark"] .form-select:disabled, [data-theme="dark"] .form-control[readonly] { background-color: #121d2a; color: #9aabbc; }
[data-theme="dark"] .form-check-input { background-color: var(--dm-input); border-color: var(--dm-border-strong); }
[data-theme="dark"] .form-check-input:checked { background-color: #0b6fb8; border-color: #0b6fb8; }
[data-theme="dark"] input[type="date"]::-webkit-calendar-picker-indicator, [data-theme="dark"] input[type="datetime-local"]::-webkit-calendar-picker-indicator { filter: invert(.85); }

/* ---- buttons ---- */
[data-theme="dark"] .btn-outline-secondary { color: #c3d0dc; border-color: #52677d; }
[data-theme="dark"] .btn-outline-secondary:hover, [data-theme="dark"] .btn-outline-secondary:focus { background-color: #52677d; color: #fff; border-color: #52677d; }
[data-theme="dark"] .btn-outline-primary { color: var(--dm-link); border-color: #3f78a8; }
[data-theme="dark"] .btn-outline-primary:hover { background-color: #0b6fb8; color: #fff; border-color: #0b6fb8; }
[data-theme="dark"] .btn-outline-success { color: var(--dm-ok); border-color: #2f7a4d; }
[data-theme="dark"] .btn-outline-success:hover { background-color: #1f8a52; color: #fff; }
[data-theme="dark"] .btn-outline-danger { color: var(--dm-bad); border-color: #8e3a43; }
[data-theme="dark"] .btn-outline-danger:hover { background-color: #b3261e; color: #fff; }
[data-theme="dark"] .btn-outline-warning { color: var(--dm-warn); border-color: #8a6d1f; }
[data-theme="dark"] .btn-outline-warning:hover { background-color: #c99a14; color: #1b1400; }
[data-theme="dark"] .btn-outline-info { color: var(--dm-info); border-color: #2a7f90; }
[data-theme="dark"] .btn-outline-dark, [data-theme="dark"] .btn-light, [data-theme="dark"] .btn-link { color: var(--dm-text); border-color: var(--dm-border-strong); }
[data-theme="dark"] .btn-light { background-color: var(--dm-surface-2); }
[data-theme="dark"] .btn-link { color: var(--dm-link); }
[data-theme="dark"] .page-link { background-color: var(--dm-surface); border-color: var(--dm-border); color: var(--dm-link); }
[data-theme="dark"] .page-item.active .page-link { background-color: #0b6fb8; border-color: #0b6fb8; color: #fff; }
[data-theme="dark"] .page-item.disabled .page-link { background-color: var(--dm-surface); color: #6f8296; }

/* ---- alerts and highlighted rows ---- */
[data-theme="dark"] .alert-success { background-color: #12331f; color: #bdeccf; border-color: #235c3a; }
[data-theme="dark"] .alert-danger { background-color: #3a1519; color: #f6c3c8; border-color: #6e2c33; }
[data-theme="dark"] .alert-warning { background-color: #3a2f0d; color: #ffe08a; border-color: #6e5a1c; }
[data-theme="dark"] .alert-info { background-color: #0d3340; color: #a8e3f0; border-color: #1c5a6e; }
[data-theme="dark"] .alert-secondary, [data-theme="dark"] .alert-light { background-color: var(--dm-surface-2); color: var(--dm-text); border-color: var(--dm-border); }
[data-theme="dark"] .alert a { color: inherit; text-decoration: underline; }
[data-theme="dark"] .bg-warning { color: #1b1400 !important; }

/* ---- inline colours set directly in page markup ---- */
[data-theme="dark"] [style*="color:#333"]:not([style*="background"]), [data-theme="dark"] [style*="color: #333"]:not([style*="background"]), [data-theme="dark"] [style*="color:#000"]:not([style*="background"]), [data-theme="dark"] [style*="color: #000"]:not([style*="background"]),
[data-theme="dark"] [style*="color:black"]:not([style*="background"]), [data-theme="dark"] [style*="color: black"]:not([style*="background"]), [data-theme="dark"] [style*="color:#212529"]:not([style*="background"]), [data-theme="dark"] [style*="color: #212529"]:not([style*="background"]),
[data-theme="dark"] [style*="color:#111"]:not([style*="background"]), [data-theme="dark"] [style*="color: #111"]:not([style*="background"]), [data-theme="dark"] [style*="color:#444"]:not([style*="background"]), [data-theme="dark"] [style*="color: #444"]:not([style*="background"]) { color: var(--dm-text) !important; }
[data-theme="dark"] [style*="color:#666"]:not([style*="background"]), [data-theme="dark"] [style*="color: #666"]:not([style*="background"]), [data-theme="dark"] [style*="color:#555"]:not([style*="background"]), [data-theme="dark"] [style*="color: #555"]:not([style*="background"]),
[data-theme="dark"] [style*="color:#6c757d"]:not([style*="background"]), [data-theme="dark"] [style*="color: #6c757d"]:not([style*="background"]), [data-theme="dark"] [style*="color:#777"]:not([style*="background"]), [data-theme="dark"] [style*="color: #777"]:not([style*="background"]),
[data-theme="dark"] [style*="color:#999"]:not([style*="background"]), [data-theme="dark"] [style*="color: #999"]:not([style*="background"]) { color: var(--dm-muted) !important; }
[data-theme="dark"] [style*="color:red"]:not([style*="background"]), [data-theme="dark"] [style*="color: red"]:not([style*="background"]), [data-theme="dark"] [style*="color:#dc3545"]:not([style*="background"]), [data-theme="dark"] [style*="color: #dc3545"]:not([style*="background"]) { color: var(--dm-bad) !important; }
[data-theme="dark"] [style*="color:green"]:not([style*="background"]), [data-theme="dark"] [style*="color: green"]:not([style*="background"]) { color: var(--dm-ok) !important; }
[data-theme="dark"] [style*="color:#0066aa"]:not([style*="background"]), [data-theme="dark"] [style*="color: #0066aa"]:not([style*="background"]), [data-theme="dark"] [style*="color:#007bff"]:not([style*="background"]), [data-theme="dark"] [style*="color:#0d6efd"]:not([style*="background"]) { color: var(--dm-link) !important; }
[data-theme="dark"] [style*="background:#fff"], [data-theme="dark"] [style*="background: #fff"], [data-theme="dark"] [style*="background:white"], [data-theme="dark"] [style*="background: white"],
[data-theme="dark"] [style*="background-color:#fff"], [data-theme="dark"] [style*="background-color: #fff"], [data-theme="dark"] [style*="background:#f8f9fa"], [data-theme="dark"] [style*="background: #f8f9fa"],
[data-theme="dark"] [style*="background-color:#f8f9fa"], [data-theme="dark"] [style*="background-color:#f0f8ff"] { background: var(--dm-surface) !important; color: var(--dm-text); }
[data-theme="dark"] [style*="background: #fff3cd"], [data-theme="dark"] [style*="background:#fff3cd"] { background: #3a2f0d !important; color: #ffe08a !important; }
[data-theme="dark"] [style*="background: #f8d7da"], [data-theme="dark"] [style*="background:#f8d7da"] { background: #3a1519 !important; color: #f6c3c8 !important; }

/* ---- this system's own components ---- */
[data-theme="dark"] .kpi .kpi-label, [data-theme="dark"] .card .text-uppercase { color: var(--dm-muted) !important; }
[data-theme="dark"] .kpi .kpi-value { color: var(--dm-text); }
[data-theme="dark"] .status-paid { background: #12331f; color: #8fe0ae; } [data-theme="dark"] .status-partial { background: #3a2f0d; color: #ffd978; }
[data-theme="dark"] .status-unpaid { background: #10304a; color: #8cc8f5; } [data-theme="dark"] .status-overdue { background: #3a1519; color: #ffa3ab; }
[data-theme="dark"] .collapsible-toggle { color: var(--dm-text); border-color: var(--dm-border-strong); background: var(--dm-surface); }
[data-theme="dark"] .collapsible-toggle:hover { background: var(--dm-surface-2); color: #fff; }
/* correction forms */
[data-theme="dark"] .cp-title { color: var(--dm-heading); }
[data-theme="dark"] .cp-card, [data-theme="dark"] .cp-chip { background: var(--dm-surface); border-color: var(--dm-border); box-shadow: none; }
[data-theme="dark"] .cp-card-head { background: var(--dm-surface-2); color: var(--dm-text); border-color: var(--dm-border); }
[data-theme="dark"] .cp-card-head.cp-head-blue { background: linear-gradient(90deg, #084f86, #0b6fb8); color: #fff; }
[data-theme="dark"] .cp-chip strong, [data-theme="dark"] .cp-label, [data-theme="dark"] .cp-option strong { color: var(--dm-text); }
[data-theme="dark"] .cp-input { background: var(--dm-input); color: var(--dm-text); border-color: var(--dm-border-strong); }
[data-theme="dark"] .cp-input:focus { border-color: #4aa3e6; box-shadow: 0 0 0 4px rgba(74, 163, 230, .28); }
[data-theme="dark"] .cp-input::placeholder { color: #8195a9; }
[data-theme="dark"] .cp-option { background: var(--dm-surface-2); border-color: var(--dm-border); }
[data-theme="dark"] .cp-option:hover { background: #22344a; border-color: #4a6a8c; }
[data-theme="dark"] .cp-btn-ghost { background: var(--dm-surface); color: var(--dm-link); border-color: var(--dm-border-strong); }
[data-theme="dark"] .cp-btn-ghost:hover { background: var(--dm-surface-2); color: #fff; }
[data-theme="dark"] .cp-table th { background: #1d2b3c; color: var(--dm-muted); border-color: var(--dm-border); }
[data-theme="dark"] .cp-table td { border-color: var(--dm-border); color: var(--dm-text); }
[data-theme="dark"] .cp-table tr.cp-key td { background: #182b3f; color: #fff; }
[data-theme="dark"] .cp-table td.cp-changed { background: #3a3210; color: #ffe08a; }
[data-theme="dark"] .cp-up { color: var(--dm-bad) !important; } [data-theme="dark"] .cp-down { color: var(--dm-ok) !important; }
[data-theme="dark"] .cp-alert-error { background: #3a1519; border-color: #6e2c33; color: #f6c3c8; }
[data-theme="dark"] .cp-alert-warn { background: #3a2f0d; border-color: #6e5a1c; color: #ffe08a; }
[data-theme="dark"] .cp-badge-paid { background: #12331f; color: #8fe0ae; } [data-theme="dark"] .cp-badge-partially { background: #3a2f0d; color: #ffd978; } [data-theme="dark"] .cp-badge-unpaid { background: #10304a; color: #8cc8f5; }
[data-theme="dark"] .cp-list, [data-theme="dark"] .cp-note, [data-theme="dark"] .cp-sub, [data-theme="dark"] .cp-hint { color: var(--dm-muted); }
/* sign-in page */
[data-theme="dark"] body.login-bg .login-card, [data-theme="dark"] body.login-bg .login-card .card-body { background: var(--dm-surface); color: var(--dm-text); }
[data-theme="dark"] body.login-bg .login-heading, [data-theme="dark"] body.login-bg .login-label { color: var(--dm-heading); }
[data-theme="dark"] body.login-bg .login-subheading, [data-theme="dark"] body.login-bg .login-help { color: var(--dm-muted); }
[data-theme="dark"] body.login-bg .login-eyebrow { color: #4fd1d6; }
[data-theme="dark"] body.login-bg .login-card .login-input { background: var(--dm-input); color: #fff; border-color: #5a7188; }
[data-theme="dark"] body.login-bg .login-card .login-input::placeholder { color: #8195a9; }
[data-theme="dark"] body.login-bg .login-card .login-input:focus { border-color: #4aa3e6; box-shadow: 0 0 0 4px rgba(74, 163, 230, .3); }
[data-theme="dark"] body.login-bg .password-toggle { background: #223448; color: #b9dcf6; }
[data-theme="dark"] body.login-bg .password-toggle:hover, [data-theme="dark"] body.login-bg .password-toggle:focus { background: #2b4560; color: #fff; }
[data-theme="dark"] body.login-bg .login-card .form-check-label, [data-theme="dark"] body.login-bg .login-card a { color: var(--dm-link); }
[data-theme="dark"] body.login-bg .login-card .alert-danger { background: #3a1519; color: #f6c3c8; border-color: #6e2c33; }
[data-theme="dark"] body.login-bg .login-card .form-check-input { background: var(--dm-input); border-color: #5a7188; }

/* ---- theme switch button in the menu bar ---- */
.theme-toggle { display: inline-flex; align-items: center; gap: .35rem; background: transparent; border: 0; color: inherit; cursor: pointer; font: inherit; }
.navbar .theme-toggle { color: rgba(255, 255, 255, .92); padding: .3rem .6rem; border-radius: 6px; white-space: nowrap; }
.navbar .theme-toggle:hover, .navbar .theme-toggle:focus-visible { background: rgba(255, 255, 255, .14); outline: 0; }
}

/* ---- page-level panels that carry their own light colours ---- */
@media screen {
[data-theme="dark"] .confirmation-dialog, [data-theme="dark"] .aq-section, [data-theme="dark"] .customer-dropdown-menu, [data-theme="dark"] .customer-option,
[data-theme="dark"] .table-responsive, [data-theme="dark"] .table-scroll { background: var(--dm-surface); color: var(--dm-text); border-color: var(--dm-border); }
[data-theme="dark"] .table-responsive, [data-theme="dark"] .table-scroll { background: transparent; }
[data-theme="dark"] #customersTable { background: transparent; }
[data-theme="dark"] .aq-section-header, [data-theme="dark"] .customer-item:hover, [data-theme="dark"] .customer-option:hover, [data-theme="dark"] .customer-option:focus { background: var(--dm-surface-2); color: var(--dm-text); border-color: var(--dm-border); }
[data-theme="dark"] .aq-section .form-label { color: var(--dm-text); }
[data-theme="dark"] .notice-preview { background: var(--dm-surface-2); border-color: var(--dm-border); color: var(--dm-text); }
[data-theme="dark"] .collection-chart-track { background: #233347; }
[data-theme="dark"] .stat-card, [data-theme="dark"] .health-card { background: var(--dm-surface-2); color: var(--dm-text); }
[data-theme="dark"] .stat-value, [data-theme="dark"] .metric-value { color: #fff; }
[data-theme="dark"] .utilization-low, [data-theme="dark"] .overdue-medium { background-color: #0f3744; color: #bdeaf4; }
[data-theme="dark"] .utilization-medium, [data-theme="dark"] .overdue-high, [data-theme="dark"] .status-warning { background-color: #3a2f0d; color: #ffe08a; }
[data-theme="dark"] .utilization-high, [data-theme="dark"] .overdue-critical, [data-theme="dark"] .status-error { background-color: #3a1519; color: #f6c3c8; }
[data-theme="dark"] .overdue-low, [data-theme="dark"] .status-healthy { background-color: #12351f; color: #c4f1d4; }
[data-theme="dark"] .progress-warning { background-color: #d9a21a; }
[data-theme="dark"] table.table-compact tbody tr:hover { background-color: rgba(111, 184, 242, .09); }
[data-theme="dark"] .system-footer { background: linear-gradient(135deg, #111c29 0%, #0e1621 100%); border-top-color: var(--dm-border); color: var(--dm-muted); }
[data-theme="dark"] .system-footer a { color: var(--dm-link); }
[data-theme="dark"] .system-footer a:hover { color: var(--dm-link-hover); }
[data-theme="dark"] .system-footer-divider { color: #5d7389; }
}

@media screen {
[data-theme="dark"] .stat-label, [data-theme="dark"] .metric-label { color: var(--dm-muted) !important; }
[data-theme="dark"] .stat-value, [data-theme="dark"] .metric-value { color: var(--dm-heading); }
[data-theme="dark"] .bg-warning .metric-value, [data-theme="dark"] .bg-warning .stat-value, [data-theme="dark"] .bg-warning .metric-label, [data-theme="dark"] .bg-warning .stat-label { color: #1b1400 !important; }
[data-theme="dark"] .table-light, [data-theme="dark"] .table-light > *, [data-theme="dark"] .table-light > * > * { --bs-table-bg: var(--dm-surface-2); --bs-table-color: var(--dm-text); background-color: var(--dm-surface-2) !important; color: var(--dm-text) !important; }
[data-theme="dark"] .table-light .text-muted, [data-theme="dark"] .table-light small { color: var(--dm-muted) !important; }
}

@media screen {
[data-theme="dark"] .form-section { background: var(--dm-surface); border-color: var(--dm-border); box-shadow: none; }
[data-theme="dark"] .form-header { border-bottom-color: var(--dm-border); }
[data-theme="dark"] .form-header h1, [data-theme="dark"] .form-header h2, [data-theme="dark"] .form-header h3 { color: var(--dm-heading); }
[data-theme="dark"] .form-divider, [data-theme="dark"] .form-actions { border-color: var(--dm-border); }
[data-theme="dark"] .form-label, [data-theme="dark"] .form-check-label, [data-theme="dark"] .form-divider h5 { color: var(--dm-text); }
[data-theme="dark"] .input-group > .input-group-text { background: #1d2b3c; border-color: var(--dm-border-strong); color: var(--dm-muted); }
[data-theme="dark"] .btn-cancel, [data-theme="dark"] .btn-secondary, [data-theme="dark"] .btn-light { background: var(--dm-surface); border-color: var(--dm-border-strong); color: var(--dm-link); }
[data-theme="dark"] .btn-cancel:hover, [data-theme="dark"] .btn-secondary:hover, [data-theme="dark"] .btn-light:hover { background: var(--dm-surface-2); color: #fff; }
[data-theme="dark"] .btn-save, [data-theme="dark"] .btn-success, [data-theme="dark"] .btn-primary, [data-theme="dark"] .btn-danger, [data-theme="dark"] .btn-info { color: #fff; }
[data-theme="dark"] .btn-warning { color: #1b1400; }
[data-theme="dark"] .form-check-input { border-color: var(--dm-border-strong); }
}

/* ---- coloured table rows: full dark palette, including striped / hover / active shading ---- */
@media screen {
[data-theme="dark"] .table-success { --bs-table-bg: #12351f; --bs-table-color: #c4f1d4; --bs-table-striped-bg: #17422a; --bs-table-striped-color: #c4f1d4; --bs-table-active-bg: #1d4f33; --bs-table-active-color: #fff; --bs-table-hover-bg: #1d4f33; --bs-table-hover-color: #fff; --bs-table-border-color: #235c3a; color: #c4f1d4; border-color: #235c3a; }
[data-theme="dark"] .table-info { --bs-table-bg: #0f3744; --bs-table-color: #c9eef7; --bs-table-striped-bg: #134655; --bs-table-striped-color: #c9eef7; --bs-table-active-bg: #1a5668; --bs-table-active-color: #fff; --bs-table-hover-bg: #1a5668; --bs-table-hover-color: #fff; --bs-table-border-color: #1f6075; color: #c9eef7; border-color: #1f6075; }
[data-theme="dark"] .table-warning { --bs-table-bg: #3a2f0d; --bs-table-color: #ffe9ad; --bs-table-striped-bg: #473a10; --bs-table-striped-color: #ffe9ad; --bs-table-active-bg: #564614; --bs-table-active-color: #fff; --bs-table-hover-bg: #564614; --bs-table-hover-color: #fff; --bs-table-border-color: #6e5a1c; color: #ffe9ad; border-color: #6e5a1c; }
[data-theme="dark"] .table-danger { --bs-table-bg: #3d1a1f; --bs-table-color: #ffd0d4; --bs-table-striped-bg: #4b2026; --bs-table-striped-color: #ffd0d4; --bs-table-active-bg: #5a2830; --bs-table-active-color: #fff; --bs-table-hover-bg: #5a2830; --bs-table-hover-color: #fff; --bs-table-border-color: #6e2c33; color: #ffd0d4; border-color: #6e2c33; }
[data-theme="dark"] .table-primary { --bs-table-bg: #0e2f4d; --bs-table-color: #cfe6fb; --bs-table-striped-bg: #123a5e; --bs-table-striped-color: #cfe6fb; --bs-table-active-bg: #184870; --bs-table-active-color: #fff; --bs-table-hover-bg: #184870; --bs-table-hover-color: #fff; --bs-table-border-color: #1f5a8e; color: #cfe6fb; border-color: #1f5a8e; }
[data-theme="dark"] .table-secondary { --bs-table-bg: #1f2a36; --bs-table-color: #d0dae4; --bs-table-striped-bg: #263341; --bs-table-striped-color: #d0dae4; --bs-table-active-bg: #2e3d4e; --bs-table-active-color: #fff; --bs-table-hover-bg: #2e3d4e; --bs-table-hover-color: #fff; --bs-table-border-color: #3a4b5e; color: #d0dae4; border-color: #3a4b5e; }
[data-theme="dark"] .table-light { --bs-table-bg: #1d2b3c; --bs-table-color: #e4ecf4; --bs-table-striped-bg: #223347; --bs-table-striped-color: #e4ecf4; --bs-table-active-bg: #29405a; --bs-table-active-color: #fff; --bs-table-hover-bg: #29405a; --bs-table-hover-color: #fff; --bs-table-border-color: #2f4256; color: #e4ecf4; border-color: #2f4256; }
[data-theme="dark"] .table-dark { --bs-table-bg: #0b1118; --bs-table-color: #e4ecf4; --bs-table-striped-bg: #101923; --bs-table-striped-color: #e4ecf4; --bs-table-active-bg: #16222f; --bs-table-active-color: #fff; --bs-table-hover-bg: #16222f; --bs-table-hover-color: #fff; --bs-table-border-color: #223244; color: #e4ecf4; border-color: #223244; }
[data-theme="dark"] .table-active { --bs-table-bg: #1f3650; --bs-table-color: #fff; --bs-table-striped-bg: #24405e; --bs-table-hover-bg: #2a4a6c; --bs-table-hover-color: #fff; color: #fff; }
[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > *, [data-theme="dark"] .table-hover > tbody > tr:hover > * { color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color))); }
/* a utility class that forces dark text must not fight a dark row */
[data-theme="dark"] tr.text-dark > *, [data-theme="dark"] tr.text-dark small { color: inherit; }
}

/* ---- hover / focus states: always a readable text + background pair ---- */
@media screen {
[data-theme="dark"] .btn-outline-primary:hover, [data-theme="dark"] .btn-outline-primary:focus { background-color: #0b6fb8; border-color: #0b6fb8; color: #fff; }
[data-theme="dark"] .btn-outline-secondary:hover, [data-theme="dark"] .btn-outline-secondary:focus { background-color: #52677d; border-color: #52677d; color: #fff; }
[data-theme="dark"] .btn-outline-success:hover, [data-theme="dark"] .btn-outline-success:focus { background-color: #1f8a52; border-color: #1f8a52; color: #fff; }
[data-theme="dark"] .btn-outline-danger:hover, [data-theme="dark"] .btn-outline-danger:focus { background-color: #b3261e; border-color: #b3261e; color: #fff; }
[data-theme="dark"] .btn-outline-warning:hover, [data-theme="dark"] .btn-outline-warning:focus { background-color: #f6b93b; border-color: #f6b93b; color: #1b1400; }
[data-theme="dark"] .btn-outline-info:hover, [data-theme="dark"] .btn-outline-info:focus { background-color: #5fd0d4; border-color: #5fd0d4; color: #04282b; }
[data-theme="dark"] .btn-outline-dark:hover, [data-theme="dark"] .btn-outline-dark:focus { background-color: #e4ecf4; border-color: #e4ecf4; color: #0e1621; }
[data-theme="dark"] .btn-light:hover, [data-theme="dark"] .btn-light:focus { background-color: #2a3d52; border-color: #4a6178; color: #fff; }
[data-theme="dark"] .btn-link:hover, [data-theme="dark"] .btn-link:focus { color: var(--dm-link-hover); background: rgba(111, 184, 242, .1); }
[data-theme="dark"] .btn-info, [data-theme="dark"] .btn-info:hover { color: #04282b; }
[data-theme="dark"] .list-group-item-action:hover, [data-theme="dark"] .list-group-item-action:focus { background-color: var(--dm-surface-2); color: #fff; }
[data-theme="dark"] .nav-pills .nav-link:hover, [data-theme="dark"] .nav-tabs .nav-link:hover { color: #fff; background: var(--dm-surface-2); }
[data-theme="dark"] .page-link:hover { background-color: var(--dm-surface-2); color: #fff; border-color: var(--dm-border-strong); }
[data-theme="dark"] .card:hover { border-color: var(--dm-border-strong); }
/* coloured badges and labels that also carry .text-dark keep dark text on their bright background */
[data-theme="dark"] .bg-info, [data-theme="dark"] .bg-warning, [data-theme="dark"] .bg-success.text-dark, [data-theme="dark"] .bg-primary.text-dark,
[data-theme="dark"] .bg-info.text-dark, [data-theme="dark"] .bg-warning.text-dark, [data-theme="dark"] .badge.bg-light.text-dark { color: #0b1118 !important; }
[data-theme="dark"] .badge.bg-light.text-dark { background-color: #c9d6e3 !important; }
}

/* ---- row hover in plain tables (upgrade.css paints it pale blue) ---- */
@media screen {
[data-theme="dark"] .table-hover tbody tr:hover { background: rgba(111, 184, 242, .12); }
[data-theme="dark"] .table-hover tbody tr:hover > *, [data-theme="dark"] .table-hover tbody tr:hover small { color: #fff; }
[data-theme="dark"] .table-hover tbody tr:hover .text-muted { color: #c3d2e0 !important; }
}
