/**
 * Radon Safety CRM — theme tokens and dark-mode overrides.
 * Loaded last so tokens cascade into shared CSS that references var(--rs-*).
 */

:root {
    color-scheme: light;

    --rs-bg: #ebf7e9;
    --rs-surface-1: #ffffff;
    --rs-surface-2: #fafbfc;
    --rs-surface-3: #e8f0f9;
    --rs-surface-hover: #dce6ef;
    --rs-surface-input: #ffffff;
    --rs-surface-muted: #f4f6f9;
    --rs-table-stripe: #f2f8ff;
    --rs-table-base: var(--rs-surface-1);
    --rs-overlay: rgba(0, 0, 0, 0.5);

    --rs-text: #212529;
    --rs-text-secondary: #333333;
    --rs-text-muted: #6c757d;
    --rs-text-subtle: #7a8796;
    --rs-text-on-brand: #ffffff;

    --rs-border: #e0e0e0;
    --rs-border-light: #f0f0f0;
    --rs-border-subtle: #e4e8ed;
    --rs-border-strong: #4a6a8a;
    --rs-focus-ring: rgba(93, 123, 157, 0.35);

    --rs-brand: #5d7b9d;
    --rs-brand-dark: #4a6a8a;
    --rs-brand-header: #5d7b9d;
    --rs-link: #5d7b9d;
    --rs-link-hover: #4a6a8a;

    --rs-success-bg: #d1e7dd;
    --rs-success-text: #0a3622;
    --rs-warning-bg: #fff3cd;
    --rs-warning-text: #856404;
    --rs-danger-bg: #f8d7da;
    --rs-danger-text: #842029;
    --rs-info-bg: #cfe2ff;
    --rs-info-text: #084298;
    --rs-neutral-bg: #e9ecef;
    --rs-neutral-text: #495057;

    --rs-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);
    --rs-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.15);
    --rs-nav-hover: #f5f8ff;
    --rs-nav-current-bg: #e0e7ff;
    --rs-nav-current-text: #1e3a8a;
    --rs-input-border: #ced4da;
    --rs-input-bg-alpha: rgba(255, 255, 255, 0.78);
    --rs-modal-border: #0da9d0;
    --rs-spinner-track: #dddddd;
    --rs-docs-creating-overlay: rgba(255, 255, 255, 0.75);
    --rs-orange-bg: #fff3e0;
    --rs-orange-text: #e65100;
    --rs-green-tint-bg: #e8f5e9;
    --rs-green-tint-text: #2e7d32;
    --rs-green-tint-border: #81c784;
    --rs-summary-badge-bg: #e3f2fd;
    --rs-summary-badge-text: #1565c0;
    --rs-surface-overlay-light: rgba(255, 255, 255, 0.72);
}
:root[data-theme="light"] {
    color-scheme: light;

    --rs-bg: #ebf7e9;
    --rs-surface-1: #ffffff;
    --rs-surface-2: #fafbfc;
    --rs-surface-3: #e8f0f9;
    --rs-surface-hover: #dce6ef;
    --rs-surface-input: #ffffff;
    --rs-surface-muted: #f4f6f9;
    --rs-table-stripe: #f2f8ff;
    --rs-table-base: var(--rs-surface-1);
    --rs-overlay: rgba(0, 0, 0, 0.5);

    --rs-text: #212529;
    --rs-text-secondary: #333333;
    --rs-text-muted: #6c757d;
    --rs-text-subtle: #7a8796;
    --rs-text-on-brand: #ffffff;

    --rs-border: #e0e0e0;
    --rs-border-light: #f0f0f0;
    --rs-border-subtle: #e4e8ed;
    --rs-border-strong: #4a6a8a;
    --rs-focus-ring: rgba(93, 123, 157, 0.35);

    --rs-brand: #5d7b9d;
    --rs-brand-dark: #4a6a8a;
    --rs-brand-header: #5d7b9d;
    --rs-link: #5d7b9d;
    --rs-link-hover: #4a6a8a;

    --rs-success-bg: #d1e7dd;
    --rs-success-text: #0a3622;
    --rs-warning-bg: #fff3cd;
    --rs-warning-text: #856404;
    --rs-danger-bg: #f8d7da;
    --rs-danger-text: #842029;
    --rs-info-bg: #cfe2ff;
    --rs-info-text: #084298;
    --rs-neutral-bg: #e9ecef;
    --rs-neutral-text: #495057;

    --rs-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);
    --rs-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.15);
    --rs-nav-hover: #f5f8ff;
    --rs-nav-current-bg: #e0e7ff;
    --rs-nav-current-text: #1e3a8a;
    --rs-input-border: #ced4da;
    --rs-input-bg-alpha: rgba(255, 255, 255, 0.78);
    --rs-modal-border: #0da9d0;
    --rs-spinner-track: #dddddd;
    --rs-docs-creating-overlay: rgba(255, 255, 255, 0.75);
    --rs-orange-bg: #fff3e0;
    --rs-orange-text: #e65100;
    --rs-green-tint-bg: #e8f5e9;
    --rs-green-tint-text: #2e7d32;
    --rs-green-tint-border: #81c784;
    --rs-summary-badge-bg: #e3f2fd;
    --rs-summary-badge-text: #1565c0;
    --rs-surface-overlay-light: rgba(255, 255, 255, 0.72);
}


@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]):not([data-theme="dark"]) {
        color-scheme: dark;

        --rs-bg: #1a1d21;
        --rs-surface-1: #242830;
        --rs-surface-2: #2d323c;
        --rs-surface-3: #363d4a;
        --rs-surface-hover: #3f4756;
        --rs-surface-input: #2d323c;
        --rs-surface-muted: #2a2f38;
        --rs-table-stripe: var(--rs-surface-2);
        --rs-table-base: var(--rs-surface-1);
        --rs-overlay: rgba(0, 0, 0, 0.65);

        --rs-text: #e8eaed;
        --rs-text-secondary: #d1d5db;
        --rs-text-muted: #a8b0bd;
        --rs-text-subtle: #8b95a5;
        --rs-text-on-brand: #ffffff;

        --rs-border: #454d5a;
        --rs-border-light: #3a4150;
        --rs-border-subtle: #404856;
        --rs-border-strong: #5d7b9d;
        --rs-focus-ring: rgba(125, 160, 200, 0.45);

        --rs-brand: #7da0c8;
        --rs-brand-dark: #5d7b9d;
        --rs-brand-header: #4a6a8a;
        --rs-link: #8eb4e0;
        --rs-link-hover: #a8c8eb;

        --rs-success-bg: #1a3d2e;
        --rs-success-text: #8fd4a8;
        --rs-warning-bg: #3d3418;
        --rs-warning-text: #e8c96a;
        --rs-danger-bg: #3d1f24;
        --rs-danger-text: #f0a0a8;
        --rs-info-bg: #1e3a5f;
        --rs-info-text: #9ec5eb;
        --rs-neutral-bg: #353b46;
        --rs-neutral-text: #b8c0cc;

        --rs-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.35);
        --rs-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.45);
        --rs-nav-hover: #363d4a;
        --rs-nav-current-bg: #2e3a5c;
        --rs-nav-current-text: #a8c8eb;
        --rs-input-border: #545d6b;
        --rs-input-bg-alpha: rgba(45, 50, 60, 0.92);
        --rs-modal-border: #4a8fad;
        --rs-spinner-track: #454d5a;
        --rs-docs-creating-overlay: rgba(26, 29, 33, 0.82);
        --rs-orange-bg: #3d2e18;
        --rs-orange-text: #f0b060;
        --rs-green-tint-bg: #1a3d24;
        --rs-green-tint-text: #8fd4a8;
        --rs-green-tint-border: #3d6b47;
        --rs-summary-badge-bg: #1e3a5f;
        --rs-summary-badge-text: #9ec5eb;
        --rs-surface-overlay-light: rgba(26, 29, 33, 0.82);

        /* FullCalendar (scheduler) */
        --fc-page-bg-color: #242830;
        --fc-neutral-bg-color: rgba(69, 77, 90, 0.35);
        --fc-border-color: #454d5a;
        --fc-list-event-hover-bg-color: #3f4756;
        --fc-today-bg-color: rgba(125, 160, 200, 0.18);
    }
}
:root[data-theme="dark"] {
    color-scheme: dark;

    --rs-bg: #1a1d21;
    --rs-surface-1: #242830;
    --rs-surface-2: #2d323c;
    --rs-surface-3: #363d4a;
    --rs-surface-hover: #3f4756;
    --rs-surface-input: #2d323c;
    --rs-surface-muted: #2a2f38;
    --rs-table-stripe: var(--rs-surface-2);
    --rs-table-base: var(--rs-surface-1);
    --rs-overlay: rgba(0, 0, 0, 0.65);

    --rs-text: #e8eaed;
    --rs-text-secondary: #d1d5db;
    --rs-text-muted: #a8b0bd;
    --rs-text-subtle: #8b95a5;
    --rs-text-on-brand: #ffffff;

    --rs-border: #454d5a;
    --rs-border-light: #3a4150;
    --rs-border-subtle: #404856;
    --rs-border-strong: #5d7b9d;
    --rs-focus-ring: rgba(125, 160, 200, 0.45);

    --rs-brand: #7da0c8;
    --rs-brand-dark: #5d7b9d;
    --rs-brand-header: #4a6a8a;
    --rs-link: #8eb4e0;
    --rs-link-hover: #a8c8eb;

    --rs-success-bg: #1a3d2e;
    --rs-success-text: #8fd4a8;
    --rs-warning-bg: #3d3418;
    --rs-warning-text: #e8c96a;
    --rs-danger-bg: #3d1f24;
    --rs-danger-text: #f0a0a8;
    --rs-info-bg: #1e3a5f;
    --rs-info-text: #9ec5eb;
    --rs-neutral-bg: #353b46;
    --rs-neutral-text: #b8c0cc;

    --rs-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.35);
    --rs-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.45);
    --rs-nav-hover: #363d4a;
    --rs-nav-current-bg: #2e3a5c;
    --rs-nav-current-text: #a8c8eb;
    --rs-input-border: #545d6b;
    --rs-input-bg-alpha: rgba(45, 50, 60, 0.92);
    --rs-modal-border: #4a8fad;
    --rs-spinner-track: #454d5a;
    --rs-docs-creating-overlay: rgba(26, 29, 33, 0.82);
    --rs-orange-bg: #3d2e18;
    --rs-orange-text: #f0b060;
    --rs-green-tint-bg: #1a3d24;
    --rs-green-tint-text: #8fd4a8;
    --rs-green-tint-border: #3d6b47;
    --rs-summary-badge-bg: #1e3a5f;
    --rs-summary-badge-text: #9ec5eb;
    --rs-surface-overlay-light: rgba(26, 29, 33, 0.82);

    --fc-page-bg-color: #242830;
    --fc-neutral-bg-color: rgba(69, 77, 90, 0.35);
    --fc-border-color: #454d5a;
    --fc-list-event-hover-bg-color: #3f4756;
    --fc-today-bg-color: rgba(125, 160, 200, 0.18);
}


/* ── Base ─────────────────────────────────────────────────────────────── */
html {
    background-color: var(--rs-bg);
}

body {
    background-color: var(--rs-bg);
    color: var(--rs-text);
}

hr {
    border-color: var(--rs-border);
}

footer,
footer p {
    color: var(--rs-text-muted);
}

a {
    color: var(--rs-link);
}

a:hover,
a:focus {
    color: var(--rs-link-hover);
}

::placeholder {
    color: var(--rs-text-muted);
    opacity: 1;
}

:focus-visible {
    outline: 2px solid var(--rs-brand);
    outline-offset: 2px;
}

/* ── Bootstrap overrides ──────────────────────────────────────────────── */
.navbar-inverse {
    background-color: var(--rs-brand-header) !important;
    border-color: var(--rs-brand-dark) !important;
}

.table {
    color: var(--rs-text);
}

.table td,
.table th {
    border-color: var(--rs-border-light);
}

.table-striped tbody tr:nth-of-type(odd) {
    background-color: var(--rs-table-stripe);
}

.table-hover tbody tr:hover {
    background-color: var(--rs-surface-3);
}

.card,
.list-group-item,
.dropdown-menu,
.modal-content,
.popover {
    background-color: var(--rs-surface-1);
    color: var(--rs-text);
    border-color: var(--rs-border);
}

.dropdown-item {
    color: var(--rs-text);
}

.dropdown-item:hover,
.dropdown-item:focus {
    background-color: var(--rs-surface-3);
    color: var(--rs-text);
}

.form-control,
.custom-select {
    background-color: var(--rs-surface-input);
    color: var(--rs-text);
    border-color: var(--rs-input-border);
}

.form-control:focus,
.custom-select:focus {
    background-color: var(--rs-surface-input);
    color: var(--rs-text);
    border-color: var(--rs-brand);
    box-shadow: 0 0 0 0.2rem var(--rs-focus-ring);
}

.form-control:disabled,
.form-control[readonly] {
    background-color: var(--rs-surface-2);
    color: var(--rs-text-muted);
}

.btn-outline-secondary {
    color: var(--rs-text);
    border-color: var(--rs-input-border);
    background-color: var(--rs-surface-1);
}

.btn-outline-secondary:hover {
    background-color: var(--rs-surface-3);
    color: var(--rs-text);
    border-color: var(--rs-border-strong);
}

.btn-link {
    color: var(--rs-link);
}

.alert-success {
    background-color: var(--rs-success-bg);
    color: var(--rs-success-text);
    border-color: var(--rs-success-text);
}

.alert-warning {
    background-color: var(--rs-warning-bg);
    color: var(--rs-warning-text);
    border-color: var(--rs-warning-text);
}

.alert-danger {
    background-color: var(--rs-danger-bg);
    color: var(--rs-danger-text);
    border-color: var(--rs-danger-text);
}

.alert-info {
    background-color: var(--rs-info-bg);
    color: var(--rs-info-text);
    border-color: var(--rs-info-text);
}

.badge-secondary {
    background-color: var(--rs-neutral-bg);
    color: var(--rs-neutral-text);
}

/* ── Legacy 2017Styles catch-all ──────────────────────────────────────── */
.rs_user_name,
.dual_lbx,
.msg_box,
.msg_box_title,
.msg_box_txt,
.msg_box_btn,
.msg_box_cbtn,
.msg_box_lb,
.intake_form,
.rs_intake_form,
.rbtn_lst,
.qst,
.qst2,
.qst_short,
.qst1,
.rs_dd,
.grid_title,
.rdo_opt_pnl,
.rdo_opt1,
.assess_title,
.assess_instruct_txt,
.assess_table,
.assess_table2,
.edit_table,
.assess_q_td,
.assess_ans_td,
.rs_ans_td,
.rs_ans_txt,
.rs_ans_txt2,
.rs_ans_txtlg,
.rs_note_txtlg,
.edit_lbl,
.edit_lbl_mast,
.edit_lbl_mast2,
.lbl_sm,
.lbl_msg2,
.edit_tbx,
.rs_panel,
.sum_txt,
.race_dd,
.input_txt,
.input_txt_hl,
.assess_txt,
.msg_txt,
.access_link,
.client_key,
.rs_intake_table,
.instruct2,
.menu1,
.menu2 {
    color: var(--rs-text);
}

.edit_bk,
.dual_lbx,
.msg_box,
.ddl,
.txt_in,
.rbtn_lst_control,
.assess_btn_panel,
.rs_btn_panel,
.rs_btn,
.rs_btn_sm,
.input_txt_hl,
.client_key {
    background-color: var(--rs-surface-input);
}

.modalPopup {
    background-color: var(--rs-surface-1) !important;
    border-color: var(--rs-border) !important;
    color: var(--rs-text);
}

.modalBackground {
    background-color: var(--rs-overlay) !important;
}

.assess_table {
    border-color: var(--rs-border) !important;
}

.menu1,
.menu2 {
    color: var(--rs-link);
}

.banner_title {
    color: var(--rs-link);
}

.lbl_msg {
    color: #dc3545;
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]):not([data-theme="dark"]) {

    & .lbl_msg {
        color: #f0a0a8;
    }

    & .assess_txt {
        background-color: #3d3418;
        color: var(--rs-warning-text);
    }

    & .assess_pnl_td {
        background-color: #3d1f24;
    }

    }
}

html[data-theme="dark"] {

    & .lbl_msg {
        color: #f0a0a8;
    }

    & .assess_txt {
        background-color: #3d3418;
        color: var(--rs-warning-text);
    }

    & .assess_pnl_td {
        background-color: #3d1f24;
    }

}

/* RSWeb6 menu selected state */
.menu2 a[style],
.menu2 td[style],
.menu2 .menuitem-selected,
.menu2 a.menuitem-selected {
    background-color: var(--rs-surface-3) !important;
    border-color: var(--rs-border) !important;
    color: var(--rs-text) !important;
}

/* ── Semantic badges (shared) ─────────────────────────────────────────── */
.esign-badge,
.appt-doc-footnote--muted {
    background-color: var(--rs-neutral-bg);
    color: var(--rs-neutral-text);
}

.esign-badge--sent,
.documents-grid-appt-badge,
.appt-doc-footnote--partial-signed {
    background-color: var(--rs-info-bg);
    color: var(--rs-info-text);
}

.esign-badge--viewed,
.appt-doc-footnote-test-banner,
.apvd-esign-sent {
    background-color: var(--rs-warning-bg);
    color: var(--rs-warning-text);
}

.esign-badge--completed,
.appt-doc-footnote--all-signed {
    background-color: var(--rs-success-bg);
    color: var(--rs-success-text);
}

.esign-badge--cancelled {
    background-color: var(--rs-neutral-bg);
    color: var(--rs-neutral-text);
}

.esign-badge--expired,
.appt-doc-footnote--none-signed,
.apvd-esign-cancelled {
    background-color: var(--rs-danger-bg);
    color: var(--rs-danger-text);
}

.apvd-esign-viewed {
    background-color: var(--rs-info-bg);
    color: var(--rs-info-text);
}

/* ── jQuery UI (base + profile datepicker) ────────────────────────────── */
.ui-widget-content {
    background: var(--rs-surface-1);
    color: var(--rs-text);
    border-color: var(--rs-border);
}

.ui-widget-header {
    background: var(--rs-surface-3);
    color: var(--rs-brand);
    border-color: var(--rs-border);
}

.ui-state-default,
.ui-widget-content .ui-state-default {
    background: transparent;
    color: var(--rs-text);
    border-color: transparent;
}

.ui-state-hover,
.ui-widget-content .ui-state-hover {
    background: var(--rs-surface-3);
    color: var(--rs-text);
    border-color: transparent;
}

.ui-state-active,
.ui-widget-content .ui-state-active {
    background: var(--rs-brand-header);
    color: var(--rs-text-on-brand);
    border-color: transparent;
}

.ui-datepicker {
    background: var(--rs-surface-1);
    box-shadow: var(--rs-shadow-md);
}

#ui-datepicker-div.profile-datepicker.ui-datepicker {
    border: 1px solid var(--rs-border-subtle);
    border-radius: 8px;
    box-shadow: var(--rs-shadow-md);
    padding: 0;
    overflow: hidden;
    z-index: 2147483000 !important;
    transform: scale(0.75);
    transform-origin: top left;
    background: var(--rs-surface-1);
}

#ui-datepicker-div.profile-datepicker.ui-datepicker .ui-datepicker-header {
    background: var(--rs-surface-3);
    border: none;
    border-bottom: 1px solid var(--rs-border);
    color: var(--rs-brand);
    font-weight: 700;
    border-radius: 0;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

#ui-datepicker-div.profile-datepicker.ui-datepicker .ui-datepicker-title {
    font-size: 0.85rem;
    letter-spacing: 0.03em;
}

#ui-datepicker-div.profile-datepicker.ui-datepicker .ui-datepicker-prev,
#ui-datepicker-div.profile-datepicker.ui-datepicker .ui-datepicker-next {
    top: 6px;
}

#ui-datepicker-div.profile-datepicker.ui-datepicker .ui-datepicker-calendar th {
    font-size: 0.72rem;
    color: var(--rs-text-subtle);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

#ui-datepicker-div.profile-datepicker.ui-datepicker .ui-state-default {
    border: none;
    background: transparent;
    color: var(--rs-text);
    text-align: center;
    border-radius: 6px;
    padding: 0.35rem 0.45rem;
}

#ui-datepicker-div.profile-datepicker.ui-datepicker .ui-state-hover {
    background: var(--rs-surface-3);
    border: none;
}

#ui-datepicker-div.profile-datepicker.ui-datepicker .ui-state-active {
    background: var(--rs-brand-header);
    color: var(--rs-text-on-brand);
}

/* Weekly summary picker: highlight entire Sun&ndash;Sat row on hover */
#ui-datepicker-div.summary-week-datepicker.profile-datepicker.ui-datepicker .ui-datepicker-calendar tr:not(.summary-week-row-hover) td a.ui-state-hover:not(.ui-state-active) {
    background: transparent !important;
    color: var(--rs-text);
}

#ui-datepicker-div.summary-week-datepicker.profile-datepicker.ui-datepicker tr.summary-week-row-hover td a.ui-state-default:not(.ui-state-active) {
    background: var(--rs-surface-3) !important;
    border: none;
}

/* ── FullCalendar ─────────────────────────────────────────────────────── */
.fc {
    color: var(--rs-text);
}

.fc-theme-standard td,
.fc-theme-standard th {
    border-color: var(--rs-border);
}

.fc-theme-standard .fc-scrollgrid {
    border-color: var(--rs-border);
}

.fc .fc-col-header-cell,
.fc .fc-daygrid-day-number {
    color: var(--rs-text);
}

.fc .fc-daygrid-day.fc-day-today {
    background-color: var(--rs-surface-3);
}

.fc .fc-button-primary {
    background-color: var(--rs-brand-header);
    border-color: var(--rs-brand-dark);
    color: var(--rs-text-on-brand);
}

.fc .fc-button-primary:hover,
.fc .fc-button-primary:focus {
    background-color: var(--rs-brand-dark);
    border-color: var(--rs-brand-dark);
}

.fc .fc-button-primary:disabled {
    background-color: var(--rs-surface-3);
    border-color: var(--rs-border);
    color: var(--rs-text-muted);
}

.fc .fc-daygrid-day-frame {
    background-color: var(--rs-surface-1);
}

.fc .fc-list-event:hover td {
    background-color: var(--rs-surface-3);
}

.fc .fc-popover {
    background: var(--rs-surface-1);
    border-color: var(--rs-border);
}

/* ── Mobile header search (from mobile1.Master) ───────────────────────── */
.mobile-nav-header__title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    min-width: 0;
}

.mobile-nav-header__search-wrap {
    flex: 0 0 auto;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
}

.mobile-nav-header__add-customer-btn {
    background-color: var(--rs-surface-1);
    color: var(--rs-text);
    line-height: 1;
    font-size: 0.7rem;
    padding: 0.18rem 0.55rem;
    min-height: 1.63rem;
    border-width: 2px;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}

.mobile-nav-header__search {
    width: 30ch;
    max-width: 92vw;
    background: var(--rs-input-bg-alpha);
    border: 2px solid var(--rs-input-border);
    border-radius: 4px;
    padding: 0.18rem 0.40rem;
    min-height: 1.8em;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
    font-size: 0.7rem;
    color: var(--rs-text);
    box-sizing: border-box;
}

.mobile-nav-header__search:focus {
    border-color: var(--rs-brand);
    box-shadow: 0 0 0 2px var(--rs-focus-ring);
}

@media (max-width: 480px) {
    .mobile-nav-header__search {
        width: 26ch;
    }
}

/* ── JS-driven dropdowns / popovers ───────────────────────────────────── */
.rs-combobox-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--rs-surface-1);
    border: 1px solid var(--rs-border);
    border-top: none;
    max-height: 200px;
    overflow-y: auto;
    z-index: 1000;
    display: none;
    box-shadow: var(--rs-shadow-sm);
    color: var(--rs-text);
}

.add-fix-duration-popover {
    display: block;
    position: fixed;
    left: 0;
    top: 0;
    margin-top: 0;
    background: var(--rs-surface-1);
    border: 1px solid var(--rs-border);
    border-radius: 4px;
    box-shadow: var(--rs-shadow-md);
    padding: 4px 0;
    margin-left: 0;
    max-height: min(70vh, 320px);
    overflow-y: auto;
    min-width: 120px;
    z-index: 10050;
    color: var(--rs-text);
}

.add-fix-duration-popover__option {
    display: block;
    width: 100%;
    text-align: left;
    border: none;
    background: transparent;
    padding: 8px 14px;
    font-size: 14px;
    cursor: pointer;
    color: var(--rs-text);
}

.add-fix-duration-popover__option:hover,
.rs-combobox-dropdown-item:hover {
    background: var(--rs-surface-3);
}

/* ── Appointment type badges (shared) ─────────────────────────────────── */
.appt-type-badge.install {
    background: var(--rs-green-tint-bg);
    color: var(--rs-green-tint-text);
    border-color: var(--rs-green-tint-border);
}

.appt-type-badge.fix {
    background: var(--rs-orange-bg);
    color: var(--rs-orange-text);
    border-color: var(--rs-orange-text);
}

/* ── Dashboard (Default.aspx) ─────────────────────────────────────────── */
.dashboard-section {
    background: var(--rs-surface-1);
    color: var(--rs-text);
}

.dashboard-section h4 {
    color: var(--rs-text);
    border-bottom-color: var(--rs-border);
}

.dashboard-loading {
    color: var(--rs-text-muted);
}

.appointments-today-table td {
    border-bottom-color: var(--rs-border-light);
}

.appt-time-cell {
    color: var(--rs-text);
}

.appt-type-installer-inline {
    color: var(--rs-text-muted);
}

.appt-doc-footnote-test-banner {
    border-color: var(--rs-warning-text);
}

/* ── Settings badges (Admin/Dev) ──────────────────────────────────────── */
.rs-badge-connected {
    background: #28a745;
    color: #fff;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 0.9em;
}

.rs-badge-disconnected {
    background: #dc3545;
    color: #fff;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 0.9em;
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]):not([data-theme="dark"]) {

    & .rs-badge-connected {
        background: #1a4d2e;
        color: #8fd4a8;
    }

    & .rs-badge-disconnected {
        background: #3d1f24;
        color: #f0a0a8;
    }

    }
}

html[data-theme="dark"] {

    & .rs-badge-connected {
        background: #1a4d2e;
        color: #8fd4a8;
    }

    & .rs-badge-disconnected {
        background: #3d1f24;
        color: #f0a0a8;
    }

}

/* ── Appt dialog creating overlay ─────────────────────────────────────── */
.apvd-docs-creating-overlay {
    background: var(--rs-docs-creating-overlay);
}

.apvd-docs-creating-inner {
    color: var(--rs-text);
}

.apvd-docs-spinner {
    border-color: var(--rs-spinner-track);
    border-top-color: var(--rs-brand);
}

/* ── PDF.js viewer surround ───────────────────────────────────────────── */
.pdf-viewer-toolbar,
#docViewerToolbar {
    background-color: var(--rs-surface-2) !important;
    color: var(--rs-text) !important;
    border-color: var(--rs-border) !important;
}

/* ── Dark-mode catch-all for common inline light patterns ─────────────── */
.add-fix-duration-popover__option:hover,
.rs-combobox-dropdown-item:hover,
.rs-combobox-dropdown-item.rs-combobox-dropdown-item--hover {
    background: var(--rs-surface-3);
}

.rs-combobox-dropdown-item {
    border-bottom: 1px solid var(--rs-border-light);
    color: var(--rs-text);
}

.custom-select-dropdown.rs-combobox-dropdown {
    border: 1px solid var(--rs-border);
    box-shadow: var(--rs-shadow-sm);
}

/* ── Page inline style overrides (load last) ──────────────────────────── */
.profile-card,
.profile-card-editing,
.dashboard-section,
.settings-panel,
.admin-settings-card,
.dev-settings-panel {
    background: var(--rs-surface-1) !important;
    border-color: var(--rs-border-subtle) !important;
    color: var(--rs-text);
}

.profile-card-header,
.profile-card-editing .profile-card-header {
    background: var(--rs-surface-muted) !important;
    border-bottom-color: var(--rs-border) !important;
    color: var(--rs-brand) !important;
}

.profile-card-editing {
    border-color: var(--rs-border-strong) !important;
}

.profile-card-editing .profile-card-header {
    background: var(--rs-surface-3) !important;
}

.profile-field-value-editing,
.profile-field-row,
.profile-field-label,
.profile-field-value {
    color: var(--rs-text);
}

.profile-field-value-editing {
    background: var(--rs-surface-input) !important;
    border-color: var(--rs-border-strong) !important;
}

.profile-appt-note-entry {
    color: var(--rs-text);
}

.profile-appt-note-entry + .profile-appt-note-entry {
    border-top-color: var(--rs-border-subtle) !important;
}

.profile-appt-note-meta {
    color: var(--rs-text-secondary) !important;
}

.profile-appt-note-meta-sep {
    color: var(--rs-text-subtle) !important;
}

.profile-appt-note-link {
    color: var(--rs-link) !important;
    font-weight: 600;
}

.profile-appt-note-link:hover,
.profile-appt-note-link:focus {
    color: var(--rs-link-hover) !important;
}

.profile-appt-note-installer-bar {
    background-color: #808080;
}

.profile-appt-note-installer-bar:focus {
    outline-color: var(--rs-focus-ring) !important;
}

.profile-appt-note-body {
    color: var(--rs-text) !important;
}

.profile-appt-notes-empty {
    color: var(--rs-text-muted) !important;
}

.profile-field-value-editing .profile-edit-select,
.profile-field-value-editing .profile-edit-combobox,
.profile-field-value-editing .profile-edit-date,
.profile-field-value-editing .profile-edit-special-select,
.profile-field-value-editing .profile-edit-special-text {
    color: var(--rs-text) !important;
}

.create-doc-modal,
.create-doc-modal-content,
.doc-viewer-panel,
.doc-viewer-toolbar,
.profile-notes-panel,
.filter-panel,
.search-filter-card {
    background: var(--rs-surface-1) !important;
    color: var(--rs-text);
    border-color: var(--rs-border) !important;
}

.create-doc-appt-row-selected {
    background-color: var(--rs-surface-3) !important;
}

.profile-status-badge,
.status-pill {
    border-color: transparent;
}

#dashboardPanelsList li,
#repairTypesList li {
    background: var(--rs-surface-2) !important;
    border-color: var(--rs-border) !important;
    color: var(--rs-text);
}

.panel-order-btn,
.repair-type-input {
    border-color: var(--rs-input-border) !important;
    color: var(--rs-text);
    background: var(--rs-surface-input);
}

.panel-order-btn:hover:not(:disabled) {
    background: var(--rs-surface-3) !important;
}

.admin-setting-saved {
    color: var(--rs-success-text) !important;
    border-color: var(--rs-success-text) !important;
    background: var(--rs-success-bg) !important;
}

.admin-setting-error {
    color: var(--rs-danger-text) !important;
    border-color: var(--rs-danger-text) !important;
    background: var(--rs-danger-bg) !important;
}

.menuitem-selected,
.menu2 a.menuitem-selected {
    background-color: var(--rs-surface-3) !important;
    color: var(--rs-text) !important;
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]):not([data-theme="dark"]) {

    & .badge-vip {
        background: #5c4a00 !important;
        color: #f0d060 !important;
    }

    & #googleNotConnectedAlert {
        background: #7f1d1d !important;
        color: #fff !important;
    }

    /* Bootstrap utility classes */
    & .bg-white,
    & .bg-light {
        background-color: var(--rs-surface-1) !important;
    }

    & .table-light,
    & .table-light > th,
    & .table-light > td {
        background-color: var(--rs-surface-2) !important;
        color: var(--rs-text) !important;
        border-color: var(--rs-border) !important;
    }

    & .btn-light {
        background-color: var(--rs-surface-2) !important;
        color: var(--rs-text) !important;
        border-color: var(--rs-input-border) !important;
    }

    & .btn-light:hover {
        background-color: var(--rs-surface-3) !important;
        color: var(--rs-text) !important;
    }

    & .text-dark,
    & .text-muted {
        color: var(--rs-text-muted) !important;
    }

    /* Forms — beat page-level !important rules */
    & input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="image"]),
    & select,
    & textarea,
    & .form-control,
    & .custom-select,
    & .dialog-form-control,
    & .custom-autocomplete input,
    & .repair-type-combobox-input,
    & .repair-type-combobox-toggle {
        background-color: var(--rs-surface-input) !important;
        color: var(--rs-text) !important;
        border-color: var(--rs-input-border) !important;
    }

    & input:disabled,
    & select:disabled,
    & textarea:disabled,
    & .form-control:disabled,
    & .form-control[readonly] {
        background-color: var(--rs-surface-2) !important;
        color: var(--rs-text-muted) !important;
    }

    & table {
        color: var(--rs-text);
    }

    & .table-bordered,
    & .table-bordered td,
    & .table-bordered th {
        border-color: var(--rs-border) !important;
    }

    /* Dashboard (Default.aspx) — tokens aligned with grid-views.css */
    & .dashboard-table th {
        background: var(--rs-surface-muted) !important;
        color: var(--rs-text-muted) !important;
        border-bottom-color: var(--rs-border-light) !important;
    }

    & .dashboard-table td {
        border-bottom-color: var(--rs-border-light) !important;
        color: var(--rs-text);
    }

    & .dashboard-table .total-row,
    & .dashboard-table .total-row td,
    & .dashboard-table tbody tr.total-row,
    & .dashboard-table tbody tr.total-row td {
        background: var(--rs-surface-muted) !important;
        border-top-color: var(--rs-border) !important;
        color: var(--rs-text);
    }

    & .dashboard-date-nav-btn {
        background: var(--rs-surface-2) !important;
        border-color: var(--rs-input-border) !important;
        color: var(--rs-text) !important;
    }

    & .dashboard-date-nav-btn:hover:not(:disabled) {
        background: var(--rs-surface-3) !important;
    }

    & .dashboard-date-nav-btn-icon {
        color: var(--rs-text);
    }

    & .dashboard-date-nav-btn:disabled .dashboard-date-nav-btn-icon {
        color: var(--rs-text-muted);
    }

    & .dashboard-date-nav-input,
    & .appointment-map-date-input {
        background: var(--rs-surface-input) !important;
        border-color: var(--rs-input-border) !important;
        color: var(--rs-text) !important;
    }

    & .summary-week-loading,
    & .docs-creating-overlay {
        background: var(--rs-surface-overlay-light) !important;
    }

    & .summary-today-header-badge {
        background: var(--rs-summary-badge-bg) !important;
        color: var(--rs-summary-badge-text) !important;
    }

    & .summary-today-header-badge .summary-day-date {
        color: var(--rs-link) !important;
    }

    & .days-off-day {
        background: var(--rs-surface-1) !important;
        border-color: var(--rs-border) !important;
    }

    & .days-off-day--today,
    & .days-off-day-header {
        background: var(--rs-surface-3) !important;
        color: var(--rs-text);
    }

    & .appointment-map-legend-item,
    & .appointment-map-fullscreen,
    & .appointment-map-float-tip,
    & .appointment-map-empty-toast,
    & .appointment-map-map-ui-row {
        background: var(--rs-surface-1) !important;
        color: var(--rs-text) !important;
        border-color: var(--rs-border) !important;
    }

    & .appointment-map-legend-item--off {
        background: var(--rs-surface-2) !important;
    }

    & .quick-link {
        color: var(--rs-link) !important;
    }

    & .appt-type-badge--fix,
    & .appt-type-badge.fix,
    & .appt-doc-footnote--install,
    & .appt-type-footnote--install {
        background: var(--rs-orange-bg) !important;
        color: var(--rs-orange-text) !important;
        border-color: var(--rs-orange-text) !important;
    }

    & .appt-type-badge--install,
    & .appt-type-badge.install,
    & .appt-type-badge--retest,
    & .appt-doc-footnote--retest,
    & .appt-type-footnote--retest {
        background: var(--rs-green-tint-bg) !important;
        color: var(--rs-green-tint-text) !important;
        border-color: var(--rs-green-tint-border) !important;
    }

    /* Search / appointments filter & pager */
    & .custom-pager {
        background: var(--rs-surface-2) !important;
        border-top-color: var(--rs-border) !important;
    }

    & .custom-pager a:hover {
        background: var(--rs-surface-3) !important;
        color: var(--rs-link-hover) !important;
    }

    & .pager-btn {
        background: var(--rs-surface-input) !important;
        border-color: var(--rs-input-border) !important;
        color: var(--rs-text) !important;
    }

    & .pager-btn:hover,
    & .pager-btn:hover:not(.pager-btn-disabled) {
        background: var(--rs-surface-3) !important;
    }

    & .pager-btn-disabled {
        background: var(--rs-surface-2) !important;
    }

    & .filter-toggle-btn {
        background: var(--rs-surface-2) !important;
        border-color: var(--rs-input-border) !important;
        color: var(--rs-text) !important;
    }

    & .filter-toggle-btn:hover,
    & .filter-toggle-btn.active {
        background: var(--rs-surface-3) !important;
        border-color: var(--rs-brand) !important;
        color: var(--rs-brand) !important;
    }

    & .filter-panel-compact,
    & #filterPanel .filter-panel-compact {
        background: var(--rs-surface-2) !important;
        border-color: var(--rs-input-border) !important;
        color: var(--rs-text);
    }

    & .customer-page-size,
    & .no-appointments,
    & .dashboard-empty-message,
    & .dashboard-error {
        color: var(--rs-text-muted) !important;
    }

    /* Customer profile */
    & .profile-field-label {
        color: var(--rs-brand) !important;
    }

    & .profile-field-value,
    & .profile-field-value-muted,
    & .profile-page-header {
        color: var(--rs-text) !important;
    }

    & .profile-compact-dialog,
    & .schedulerDialogPopup,
    & .confirm-dialog-card {
        background: var(--rs-surface-1) !important;
        color: var(--rs-text);
        border-color: var(--rs-border) !important;
    }

    & .scheduler-dialog-header {
        background: var(--rs-brand-header) !important;
        color: var(--rs-text-on-brand) !important;
    }

    & .noncustomer-profile-banner {
        background: var(--rs-warning-bg) !important;
        color: var(--rs-warning-text) !important;
    }

    & .vip-profile-banner {
        background: var(--rs-success-bg) !important;
        color: var(--rs-success-text) !important;
    }

    & .create-doc-appt-row-selected {
        background-color: var(--rs-surface-3) !important;
        color: var(--rs-text);
    }

    & .documents-grid-appt-badge {
        background-color: var(--rs-info-bg) !important;
        color: var(--rs-info-text) !important;
    }

    /* Blocked changes */
    & .bc-card {
        background: var(--rs-surface-1) !important;
        border-color: var(--rs-border) !important;
        color: var(--rs-text);
    }

    & .bc-table th {
        background: var(--rs-surface-2) !important;
        color: var(--rs-text) !important;
    }

    /* Appointment edit / management */
    & .appointment-edit-card,
    & .installer-profile-card,
    & .manage-installers-card {
        background: var(--rs-surface-1) !important;
        border-color: var(--rs-border-subtle) !important;
    }

    /* Dev / admin settings */
    & .dev-report-columns-list,
    & .dev-report-columns-row {
        background: var(--rs-surface-1) !important;
        border-color: var(--rs-border) !important;
        color: var(--rs-text);
    }

    .webhooks-health-status-ok { color: var(--rs-success-text) !important; }
    .webhooks-health-status-expiring { color: var(--rs-warning-text) !important; }
    .webhooks-health-status-expired { color: var(--rs-danger-text) !important; }

    & .webhooks-health-queue-status-done,
    .webhooks-health-change-outcome-google_patched { color: var(--rs-success-text) !important; }
    & .webhooks-health-queue-status-pending,
    & .webhooks-health-change-outcome-cancelled,
    .webhooks-health-change-outcome-cancelled_non_installer { color: var(--rs-warning-text) !important; }
    & .webhooks-health-queue-status-failed,
    & .webhooks-health-change-outcome-blocked,
    .webhooks-health-change-outcome-error { color: var(--rs-danger-text) !important; }
    & .webhooks-health-queue-status-processing,
    & .webhooks-health-change-outcome-moved_calendar,
    .webhooks-health-change-outcome-reassigned_installer { color: var(--rs-info-text) !important; }
    & .webhooks-health-change-outcome-skipped_move_tombstone,
    .webhooks-health-change-outcome-noop { color: var(--rs-text-muted) !important; }

    /* Dialog builder extras */
    & .day-button {
        background-color: var(--rs-surface-2) !important;
        border-color: var(--rs-input-border) !important;
        color: var(--rs-text) !important;
    }

    & .day-button:hover:not(:disabled):not(.selected) {
        background-color: var(--rs-surface-3) !important;
    }

    & .datepicker-day:hover {
        background-color: var(--rs-surface-3) !important;
    }

    & .repair-type-combobox-list,
    & .autocomplete-dropdown,
    & .datepicker-calendar,
    & .custom-select-dropdown {
        background: var(--rs-surface-1) !important;
        border-color: var(--rs-border) !important;
        color: var(--rs-text);
    }

    & .repair-type-combobox-item:hover,
    & .autocomplete-item:hover {
        background-color: var(--rs-surface-3) !important;
    }

    & .dialog-close-btn {
        color: var(--rs-text-muted) !important;
    }

    & .dialog-close-btn:hover {
        color: var(--rs-text) !important;
    }

    /* ASP.NET GridView rows inside cards */
    & .grid-card-container table tbody tr,
    & .grid-card-container table tbody td,
    & table[id*="GridView"] tbody tr,
    & table[id*="GridView"] tbody td {
        color: var(--rs-text) !important;
    }

    & .grid-card-container table tbody tr:hover,
    & .documents-grid table tbody tr:hover,
    & .grid-card-container table tbody tr:hover td,
    & .documents-grid table tbody tr:hover td {
        background-color: var(--rs-surface-hover) !important;
    }

    /* Progress / wait buttons */
    & #master_progressDiv .btn-primary,
    & #progressDivM .btn-primary {
        background-color: var(--rs-brand-header) !important;
        border-color: var(--rs-brand-dark) !important;
    }

    /* Scheduler (AppointmentScheduler_m.aspx) */
    & .scheduler-menu,
    & .scheduler-menu .installer-filter-dropdown-content {
        background: var(--rs-surface-1) !important;
        color: var(--rs-text) !important;
        border-color: var(--rs-border) !important;
    }

    & .scheduler-menu .scheduler-menu__installer-block,
    & .scheduler-menu .installer-filter-item,
    & .scheduler-menu .installer-filter-label,
    & .scheduler-menu .scheduler-menu__checkbox-row,
    & .scheduler-menu .scheduler-menu__select-all-link,
    & .scheduler-menu .scheduler-menu__timeslot-item {
        color: var(--rs-text) !important;
        border-color: var(--rs-border-light) !important;
    }

    & .scheduler-menu .scheduler-menu__checkbox-row:hover,
    & .scheduler-menu .scheduler-menu__timeslot-item:hover {
        background-color: var(--rs-nav-hover) !important;
        color: var(--rs-text) !important;
    }

    & .scheduler-menu .scheduler-menu__timeslot-item.selected {
        background-color: var(--rs-summary-badge-bg) !important;
        color: var(--rs-text) !important;
    }

    & .scheduler-menu .installer-filter-dropdown-content {
        background: var(--rs-surface-2) !important;
    }

    & .custom-tooltip,
    & .time-popup {
        background-color: var(--rs-surface-1) !important;
        color: var(--rs-text) !important;
        border-color: var(--rs-input-border) !important;
        box-shadow: var(--rs-shadow-md) !important;
    }

    & .custom-tooltip::after {
        border-top-color: var(--rs-surface-1) !important;
    }

    & .custom-tooltip.tooltip-below::after {
        border-bottom-color: var(--rs-surface-1) !important;
    }

    & .time-popup-header {
        border-bottom-color: var(--rs-border) !important;
        color: var(--rs-text) !important;
    }

    & .time-text,
    & .compact-time-slot:hover,
    & .compact-time-ellipsis:hover,
    & .time-popup-item:hover {
        color: var(--rs-text);
    }

    & .compact-time-slot:hover,
    & .compact-time-ellipsis:hover,
    & .time-popup-item:hover {
        background-color: var(--rs-surface-hover) !important;
    }

    & .fc-daygrid-day {
        background-color: var(--rs-surface-2) !important;
    }

    & .fc-daygrid-day.fc-day-other {
        background-color: var(--rs-surface-1) !important;
    }

    & .fc .fc-daygrid-day-number {
        color: var(--rs-text) !important;
    }

    & .filter-label-compact,
    & .muted,
    & .customer-page-size,
    & .time-text {
        color: var(--rs-text-muted) !important;
    }

    & .custom-pager a {
        color: var(--rs-link) !important;
    }

    & .custom-pager a:hover {
        color: var(--rs-link-hover) !important;
    }

    & .custom-pager .current-page {
        background: var(--rs-brand-header) !important;
        color: var(--rs-text-on-brand) !important;
    }

    & .filter-input-compact,
    & .filter-panel-compact input[type="text"],
    & .filter-panel-compact select,
    & .filter-panel-compact .form-control {
        background: var(--rs-surface-input) !important;
        border-color: var(--rs-input-border) !important;
        color: var(--rs-text) !important;
    }

    & .privacy-container,
    & .terms-container,
    & .oauth-card,
    & .docusign-card {
        background: var(--rs-surface-1) !important;
        color: var(--rs-text) !important;
        box-shadow: var(--rs-shadow-sm) !important;
    }

    & .login-alert-banner,
    & .noncustomer-banner {
        background: var(--rs-warning-bg) !important;
        border-color: var(--rs-warning-text) !important;
        color: var(--rs-warning-text) !important;
    }

    & .profile-field-value-editing .profile-edit-select,
    & .profile-field-value-editing .profile-edit-combobox,
    & .profile-field-value-editing .profile-edit-date,
    & .profile-field-value-editing .profile-edit-special-select,
    & .profile-field-value-editing .profile-edit-special-text {
        color: var(--rs-text) !important;
    }

    & .profile-compact-dialog-body,
    & .profile-notes-textarea,
    & .scheduler-dialog-body {
        background: var(--rs-surface-1) !important;
        color: var(--rs-text) !important;
    }

    /* Profile / management grids — beat ASP.NET inline RowStyle colors */
    & #divContainer_AppointmentsGrid table tbody tr,
    & #divContainer_DocumentsGrid table tbody tr,
    & .profile-card-appointments-grid table tbody tr {
        color: var(--rs-text) !important;
    }

    & #divContainer_AppointmentsGrid table tbody tr:hover,
    & #divContainer_AppointmentsGrid table tbody tr:hover td,
    & #divContainer_DocumentsGrid table tbody tr:hover,
    & #divContainer_DocumentsGrid table tbody tr:hover td {
        background-color: var(--rs-surface-hover) !important;
    }

    /* Reports page (screen UI — print preview stays light when printing) */
    & .reports-filter-panel,
    & .reports-sidebar-nav,
    & .reports-pick-btn,
    & .reports-preview-wrap,
    & .reports-installer-list,
    & .reports-scheduler-day,
    & .reports-modal-content {
        background: var(--rs-surface-1) !important;
        border-color: var(--rs-border) !important;
        color: var(--rs-text);
    }

    & .reports-group-toggle,
    & .reports-group--has-active > .reports-group-toggle {
        background: var(--rs-surface-2) !important;
        color: var(--rs-text) !important;
    }

    & .reports-group-toggle:hover,
    & .reports-pick-btn:hover {
        background: var(--rs-surface-hover) !important;
        border-color: var(--rs-brand) !important;
    }

    & .reports-pick-btn.active {
        background: var(--rs-info-bg) !important;
        border-color: var(--rs-brand) !important;
        color: var(--rs-text) !important;
    }

    & .reports-selected-title,
    & .reports-selected-customer,
    & .reports-scheduler-week-title {
        color: var(--rs-text) !important;
    }

    & .reports-scheduler-day-header {
        background: var(--rs-surface-3) !important;
        color: var(--rs-text) !important;
        border-color: var(--rs-border) !important;
    }

    & .reports-scheduler-appt {
        background: var(--rs-surface-2) !important;
        color: var(--rs-text);
    }

    & .reports-row-num-col,
    & .reports-no-reports {
        color: var(--rs-text-muted) !important;
    }

    & .reports-filters label {
        color: var(--rs-text);
    }

    & .reports-warn-banner {
        background: var(--rs-warning-bg) !important;
        color: var(--rs-warning-text) !important;
        border-color: var(--rs-warning-text) !important;
    }

    & .manage-installers-color-swatch-panel,
    & .cal-picker-popup {
        background: var(--rs-surface-1) !important;
        border-color: var(--rs-border) !important;
        color: var(--rs-text) !important;
    }

    }
}

html[data-theme="dark"] {

    & .badge-vip {
        background: #5c4a00 !important;
        color: #f0d060 !important;
    }

    & #googleNotConnectedAlert {
        background: #7f1d1d !important;
        color: #fff !important;
    }

    /* Bootstrap utility classes */
    & .bg-white,
    & .bg-light {
        background-color: var(--rs-surface-1) !important;
    }

    & .table-light,
    & .table-light > th,
    & .table-light > td {
        background-color: var(--rs-surface-2) !important;
        color: var(--rs-text) !important;
        border-color: var(--rs-border) !important;
    }

    & .btn-light {
        background-color: var(--rs-surface-2) !important;
        color: var(--rs-text) !important;
        border-color: var(--rs-input-border) !important;
    }

    & .btn-light:hover {
        background-color: var(--rs-surface-3) !important;
        color: var(--rs-text) !important;
    }

    & .text-dark,
    & .text-muted {
        color: var(--rs-text-muted) !important;
    }

    /* Forms — beat page-level !important rules */
    & input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="image"]),
    & select,
    & textarea,
    & .form-control,
    & .custom-select,
    & .dialog-form-control,
    & .custom-autocomplete input,
    & .repair-type-combobox-input,
    & .repair-type-combobox-toggle {
        background-color: var(--rs-surface-input) !important;
        color: var(--rs-text) !important;
        border-color: var(--rs-input-border) !important;
    }

    & input:disabled,
    & select:disabled,
    & textarea:disabled,
    & .form-control:disabled,
    & .form-control[readonly] {
        background-color: var(--rs-surface-2) !important;
        color: var(--rs-text-muted) !important;
    }

    & table {
        color: var(--rs-text);
    }

    & .table-bordered,
    & .table-bordered td,
    & .table-bordered th {
        border-color: var(--rs-border) !important;
    }

    /* Dashboard (Default.aspx) — tokens aligned with grid-views.css */
    & .dashboard-table th {
        background: var(--rs-surface-muted) !important;
        color: var(--rs-text-muted) !important;
        border-bottom-color: var(--rs-border-light) !important;
    }

    & .dashboard-table td {
        border-bottom-color: var(--rs-border-light) !important;
        color: var(--rs-text);
    }

    & .dashboard-table .total-row,
    & .dashboard-table .total-row td,
    & .dashboard-table tbody tr.total-row,
    & .dashboard-table tbody tr.total-row td {
        background: var(--rs-surface-muted) !important;
        border-top-color: var(--rs-border) !important;
        color: var(--rs-text);
    }

    & .dashboard-date-nav-btn {
        background: var(--rs-surface-2) !important;
        border-color: var(--rs-input-border) !important;
        color: var(--rs-text) !important;
    }

    & .dashboard-date-nav-btn:hover:not(:disabled) {
        background: var(--rs-surface-3) !important;
    }

    & .dashboard-date-nav-btn-icon {
        color: var(--rs-text);
    }

    & .dashboard-date-nav-btn:disabled .dashboard-date-nav-btn-icon {
        color: var(--rs-text-muted);
    }

    & .dashboard-date-nav-input,
    & .appointment-map-date-input {
        background: var(--rs-surface-input) !important;
        border-color: var(--rs-input-border) !important;
        color: var(--rs-text) !important;
    }

    & .summary-week-loading,
    & .docs-creating-overlay {
        background: var(--rs-surface-overlay-light) !important;
    }

    & .summary-today-header-badge {
        background: var(--rs-summary-badge-bg) !important;
        color: var(--rs-summary-badge-text) !important;
    }

    & .summary-today-header-badge .summary-day-date {
        color: var(--rs-link) !important;
    }

    & .days-off-day {
        background: var(--rs-surface-1) !important;
        border-color: var(--rs-border) !important;
    }

    & .days-off-day--today,
    & .days-off-day-header {
        background: var(--rs-surface-3) !important;
        color: var(--rs-text);
    }

    & .appointment-map-legend-item,
    & .appointment-map-fullscreen,
    & .appointment-map-float-tip,
    & .appointment-map-empty-toast,
    & .appointment-map-map-ui-row {
        background: var(--rs-surface-1) !important;
        color: var(--rs-text) !important;
        border-color: var(--rs-border) !important;
    }

    & .appointment-map-legend-item--off {
        background: var(--rs-surface-2) !important;
    }

    & .quick-link {
        color: var(--rs-link) !important;
    }

    & .appt-type-badge--fix,
    & .appt-type-badge.fix,
    & .appt-doc-footnote--install,
    & .appt-type-footnote--install {
        background: var(--rs-orange-bg) !important;
        color: var(--rs-orange-text) !important;
        border-color: var(--rs-orange-text) !important;
    }

    & .appt-type-badge--install,
    & .appt-type-badge.install,
    & .appt-type-badge--retest,
    & .appt-doc-footnote--retest,
    & .appt-type-footnote--retest {
        background: var(--rs-green-tint-bg) !important;
        color: var(--rs-green-tint-text) !important;
        border-color: var(--rs-green-tint-border) !important;
    }

    /* Search / appointments filter & pager */
    & .custom-pager {
        background: var(--rs-surface-2) !important;
        border-top-color: var(--rs-border) !important;
    }

    & .custom-pager a:hover {
        background: var(--rs-surface-3) !important;
        color: var(--rs-link-hover) !important;
    }

    & .pager-btn {
        background: var(--rs-surface-input) !important;
        border-color: var(--rs-input-border) !important;
        color: var(--rs-text) !important;
    }

    & .pager-btn:hover,
    & .pager-btn:hover:not(.pager-btn-disabled) {
        background: var(--rs-surface-3) !important;
    }

    & .pager-btn-disabled {
        background: var(--rs-surface-2) !important;
    }

    & .filter-toggle-btn {
        background: var(--rs-surface-2) !important;
        border-color: var(--rs-input-border) !important;
        color: var(--rs-text) !important;
    }

    & .filter-toggle-btn:hover,
    & .filter-toggle-btn.active {
        background: var(--rs-surface-3) !important;
        border-color: var(--rs-brand) !important;
        color: var(--rs-brand) !important;
    }

    & .filter-panel-compact,
    & #filterPanel .filter-panel-compact {
        background: var(--rs-surface-2) !important;
        border-color: var(--rs-input-border) !important;
        color: var(--rs-text);
    }

    & .customer-page-size,
    & .no-appointments,
    & .dashboard-empty-message,
    & .dashboard-error {
        color: var(--rs-text-muted) !important;
    }

    /* Customer profile */
    & .profile-field-label {
        color: var(--rs-brand) !important;
    }

    & .profile-field-value,
    & .profile-field-value-muted,
    & .profile-page-header {
        color: var(--rs-text) !important;
    }

    & .profile-compact-dialog,
    & .schedulerDialogPopup,
    & .confirm-dialog-card {
        background: var(--rs-surface-1) !important;
        color: var(--rs-text);
        border-color: var(--rs-border) !important;
    }

    & .scheduler-dialog-header {
        background: var(--rs-brand-header) !important;
        color: var(--rs-text-on-brand) !important;
    }

    & .noncustomer-profile-banner {
        background: var(--rs-warning-bg) !important;
        color: var(--rs-warning-text) !important;
    }

    & .vip-profile-banner {
        background: var(--rs-success-bg) !important;
        color: var(--rs-success-text) !important;
    }

    & .create-doc-appt-row-selected {
        background-color: var(--rs-surface-3) !important;
        color: var(--rs-text);
    }

    & .documents-grid-appt-badge {
        background-color: var(--rs-info-bg) !important;
        color: var(--rs-info-text) !important;
    }

    /* Blocked changes */
    & .bc-card {
        background: var(--rs-surface-1) !important;
        border-color: var(--rs-border) !important;
        color: var(--rs-text);
    }

    & .bc-table th {
        background: var(--rs-surface-2) !important;
        color: var(--rs-text) !important;
    }

    /* Appointment edit / management */
    & .appointment-edit-card,
    & .installer-profile-card,
    & .manage-installers-card {
        background: var(--rs-surface-1) !important;
        border-color: var(--rs-border-subtle) !important;
    }

    /* Dev / admin settings */
    & .dev-report-columns-list,
    & .dev-report-columns-row {
        background: var(--rs-surface-1) !important;
        border-color: var(--rs-border) !important;
        color: var(--rs-text);
    }

    .webhooks-health-status-ok { color: var(--rs-success-text) !important; }
    .webhooks-health-status-expiring { color: var(--rs-warning-text) !important; }
    .webhooks-health-status-expired { color: var(--rs-danger-text) !important; }

    & .webhooks-health-queue-status-done,
    .webhooks-health-change-outcome-google_patched { color: var(--rs-success-text) !important; }
    & .webhooks-health-queue-status-pending,
    & .webhooks-health-change-outcome-cancelled,
    .webhooks-health-change-outcome-cancelled_non_installer { color: var(--rs-warning-text) !important; }
    & .webhooks-health-queue-status-failed,
    & .webhooks-health-change-outcome-blocked,
    .webhooks-health-change-outcome-error { color: var(--rs-danger-text) !important; }
    & .webhooks-health-queue-status-processing,
    & .webhooks-health-change-outcome-moved_calendar,
    .webhooks-health-change-outcome-reassigned_installer { color: var(--rs-info-text) !important; }
    & .webhooks-health-change-outcome-skipped_move_tombstone,
    .webhooks-health-change-outcome-noop { color: var(--rs-text-muted) !important; }

    /* Dialog builder extras */
    & .day-button {
        background-color: var(--rs-surface-2) !important;
        border-color: var(--rs-input-border) !important;
        color: var(--rs-text) !important;
    }

    & .day-button:hover:not(:disabled):not(.selected) {
        background-color: var(--rs-surface-3) !important;
    }

    & .datepicker-day:hover {
        background-color: var(--rs-surface-3) !important;
    }

    & .repair-type-combobox-list,
    & .autocomplete-dropdown,
    & .datepicker-calendar,
    & .custom-select-dropdown {
        background: var(--rs-surface-1) !important;
        border-color: var(--rs-border) !important;
        color: var(--rs-text);
    }

    & .repair-type-combobox-item:hover,
    & .autocomplete-item:hover {
        background-color: var(--rs-surface-3) !important;
    }

    & .dialog-close-btn {
        color: var(--rs-text-muted) !important;
    }

    & .dialog-close-btn:hover {
        color: var(--rs-text) !important;
    }

    /* ASP.NET GridView rows inside cards */
    & .grid-card-container table tbody tr,
    & .grid-card-container table tbody td,
    & table[id*="GridView"] tbody tr,
    & table[id*="GridView"] tbody td {
        color: var(--rs-text) !important;
    }

    & .grid-card-container table tbody tr:hover,
    & .documents-grid table tbody tr:hover,
    & .grid-card-container table tbody tr:hover td,
    & .documents-grid table tbody tr:hover td {
        background-color: var(--rs-surface-hover) !important;
    }

    /* Progress / wait buttons */
    & #master_progressDiv .btn-primary,
    & #progressDivM .btn-primary {
        background-color: var(--rs-brand-header) !important;
        border-color: var(--rs-brand-dark) !important;
    }

    /* Scheduler (AppointmentScheduler_m.aspx) */
    & .scheduler-menu,
    & .scheduler-menu .installer-filter-dropdown-content {
        background: var(--rs-surface-1) !important;
        color: var(--rs-text) !important;
        border-color: var(--rs-border) !important;
    }

    & .scheduler-menu .scheduler-menu__installer-block,
    & .scheduler-menu .installer-filter-item,
    & .scheduler-menu .installer-filter-label,
    & .scheduler-menu .scheduler-menu__checkbox-row,
    & .scheduler-menu .scheduler-menu__select-all-link,
    & .scheduler-menu .scheduler-menu__timeslot-item {
        color: var(--rs-text) !important;
        border-color: var(--rs-border-light) !important;
    }

    & .scheduler-menu .scheduler-menu__checkbox-row:hover,
    & .scheduler-menu .scheduler-menu__timeslot-item:hover {
        background-color: var(--rs-nav-hover) !important;
        color: var(--rs-text) !important;
    }

    & .scheduler-menu .scheduler-menu__timeslot-item.selected {
        background-color: var(--rs-summary-badge-bg) !important;
        color: var(--rs-text) !important;
    }

    & .scheduler-menu .installer-filter-dropdown-content {
        background: var(--rs-surface-2) !important;
    }

    & .custom-tooltip,
    & .time-popup {
        background-color: var(--rs-surface-1) !important;
        color: var(--rs-text) !important;
        border-color: var(--rs-input-border) !important;
        box-shadow: var(--rs-shadow-md) !important;
    }

    & .custom-tooltip::after {
        border-top-color: var(--rs-surface-1) !important;
    }

    & .custom-tooltip.tooltip-below::after {
        border-bottom-color: var(--rs-surface-1) !important;
    }

    & .time-popup-header {
        border-bottom-color: var(--rs-border) !important;
        color: var(--rs-text) !important;
    }

    & .time-text,
    & .compact-time-slot:hover,
    & .compact-time-ellipsis:hover,
    & .time-popup-item:hover {
        color: var(--rs-text);
    }

    & .compact-time-slot:hover,
    & .compact-time-ellipsis:hover,
    & .time-popup-item:hover {
        background-color: var(--rs-surface-hover) !important;
    }

    & .fc-daygrid-day {
        background-color: var(--rs-surface-2) !important;
    }

    & .fc-daygrid-day.fc-day-other {
        background-color: var(--rs-surface-1) !important;
    }

    & .fc .fc-daygrid-day-number {
        color: var(--rs-text) !important;
    }

    & .filter-label-compact,
    & .muted,
    & .customer-page-size,
    & .time-text {
        color: var(--rs-text-muted) !important;
    }

    & .custom-pager a {
        color: var(--rs-link) !important;
    }

    & .custom-pager a:hover {
        color: var(--rs-link-hover) !important;
    }

    & .custom-pager .current-page {
        background: var(--rs-brand-header) !important;
        color: var(--rs-text-on-brand) !important;
    }

    & .filter-input-compact,
    & .filter-panel-compact input[type="text"],
    & .filter-panel-compact select,
    & .filter-panel-compact .form-control {
        background: var(--rs-surface-input) !important;
        border-color: var(--rs-input-border) !important;
        color: var(--rs-text) !important;
    }

    & .privacy-container,
    & .terms-container,
    & .oauth-card,
    & .docusign-card {
        background: var(--rs-surface-1) !important;
        color: var(--rs-text) !important;
        box-shadow: var(--rs-shadow-sm) !important;
    }

    & .login-alert-banner,
    & .noncustomer-banner {
        background: var(--rs-warning-bg) !important;
        border-color: var(--rs-warning-text) !important;
        color: var(--rs-warning-text) !important;
    }

    & .profile-field-value-editing .profile-edit-select,
    & .profile-field-value-editing .profile-edit-combobox,
    & .profile-field-value-editing .profile-edit-date,
    & .profile-field-value-editing .profile-edit-special-select,
    & .profile-field-value-editing .profile-edit-special-text {
        color: var(--rs-text) !important;
    }

    & .profile-compact-dialog-body,
    & .profile-notes-textarea,
    & .scheduler-dialog-body {
        background: var(--rs-surface-1) !important;
        color: var(--rs-text) !important;
    }

    /* Profile / management grids — beat ASP.NET inline RowStyle colors */
    & #divContainer_AppointmentsGrid table tbody tr,
    & #divContainer_DocumentsGrid table tbody tr,
    & .profile-card-appointments-grid table tbody tr {
        color: var(--rs-text) !important;
    }

    & #divContainer_AppointmentsGrid table tbody tr:hover,
    & #divContainer_AppointmentsGrid table tbody tr:hover td,
    & #divContainer_DocumentsGrid table tbody tr:hover,
    & #divContainer_DocumentsGrid table tbody tr:hover td {
        background-color: var(--rs-surface-hover) !important;
    }

    /* Reports page (screen UI — print preview stays light when printing) */
    & .reports-filter-panel,
    & .reports-sidebar-nav,
    & .reports-pick-btn,
    & .reports-preview-wrap,
    & .reports-installer-list,
    & .reports-scheduler-day,
    & .reports-modal-content {
        background: var(--rs-surface-1) !important;
        border-color: var(--rs-border) !important;
        color: var(--rs-text);
    }

    & .reports-group-toggle,
    & .reports-group--has-active > .reports-group-toggle {
        background: var(--rs-surface-2) !important;
        color: var(--rs-text) !important;
    }

    & .reports-group-toggle:hover,
    & .reports-pick-btn:hover {
        background: var(--rs-surface-hover) !important;
        border-color: var(--rs-brand) !important;
    }

    & .reports-pick-btn.active {
        background: var(--rs-info-bg) !important;
        border-color: var(--rs-brand) !important;
        color: var(--rs-text) !important;
    }

    & .reports-selected-title,
    & .reports-selected-customer,
    & .reports-scheduler-week-title {
        color: var(--rs-text) !important;
    }

    & .reports-scheduler-day-header {
        background: var(--rs-surface-3) !important;
        color: var(--rs-text) !important;
        border-color: var(--rs-border) !important;
    }

    & .reports-scheduler-appt {
        background: var(--rs-surface-2) !important;
        color: var(--rs-text);
    }

    & .reports-row-num-col,
    & .reports-no-reports {
        color: var(--rs-text-muted) !important;
    }

    & .reports-filters label {
        color: var(--rs-text);
    }

    & .reports-warn-banner {
        background: var(--rs-warning-bg) !important;
        color: var(--rs-warning-text) !important;
        border-color: var(--rs-warning-text) !important;
    }

    & .manage-installers-color-swatch-panel,
    & .cal-picker-popup {
        background: var(--rs-surface-1) !important;
        border-color: var(--rs-border) !important;
        color: var(--rs-text) !important;
    }

}
