.theme-toggle {
    cursor: pointer;
}

.theme-toggle .icon {
    margin: 0;
}

.theme-toggle:focus-visible {
    outline: 3px solid #0054a6;
    outline-offset: 3px;
}

.theme-icon-sun,
html[data-bs-theme="dark"] .theme-icon-moon {
    display: none;
}

html[data-bs-theme="dark"] .theme-icon-sun {
    display: inline-block;
}

.auth-theme-layout {
    background-color: #fff;
}

.auth-theme-control {
    position: fixed;
    top: .75rem;
    right: .75rem;
    z-index: 1030;
}

.auth-theme-control .theme-toggle {
    background-color: var(--tblr-bg-surface);
}

html[data-bs-theme="light"] .auth-theme-control .theme-toggle:hover,
html[data-bs-theme="light"] .auth-theme-control .theme-toggle:active {
    color: var(--tblr-primary);
}

.sb8-mini-tbl tr.tot {
    font-weight: 600;
    background: #F8F9FC;
    border-top: 1px solid var(--border);
}

@media (max-width: 575.98px) {
    .auth-theme-layout {
        padding-top: 68px;
    }
}

/* Screen-only overrides keep existing document and export styling independent. */
@media screen {
    html[data-bs-theme="dark"],
    html[data-bs-theme="dark"] body {
        --tblr-body-color: #d8dee7;
        --tblr-body-color-rgb: 216, 222, 231;
        --tblr-emphasis-color: #e2e8f0;
        --tblr-emphasis-color-rgb: 226, 232, 240;
    }

    html[data-bs-theme="dark"] {
        color-scheme: dark;
        --sb8-theme-muted: #a9b4c2;
        --sb8-theme-accent: #85b8ef;
        --tblr-link-color: var(--sb8-theme-accent);
        --tblr-link-color-rgb: 133, 184, 239;
        --tblr-link-hover-color: #b5d5f5;
        --tblr-link-hover-color-rgb: 181, 213, 245;

        /* The routed funnel dashboards use these existing page palette tokens. */
        --bg: var(--tblr-body-bg);
        --surface: var(--tblr-bg-surface);
        --border: var(--tblr-border-color);
        --text: var(--tblr-body-color);
        --muted: var(--sb8-theme-muted);
        --hint: var(--sb8-theme-muted);
        --pos: #69d6b0;
        --pos-bg: #1a3235;
        --neg: #ff9a9a;
        --neg-bg: #2b2634;
        --warn: #ffd185;
        --warn-bg: #2e2b2f;
        --blue-bg: #1c3044;
        --blue-txt: var(--sb8-theme-accent);
        --purple: #c0b5ff;
        --purple-light: #c0b5ff;
        --sb8-purple-bg: #272742;
        --sb8-v2-total-bg: var(--tblr-bg-surface-secondary);
        --bp-forecast: #c0b5ff;
        --bp-warning: #ff9a9a;
    }

    html[data-bs-theme="dark"] body {
        --tblr-link-color: var(--sb8-theme-accent);
        --tblr-link-color-rgb: 133, 184, 239;
        --tblr-link-hover-color: #b5d5f5;
        --tblr-link-hover-color-rgb: 181, 213, 245;
    }

    html[data-bs-theme="dark"] .auth-theme-layout {
        background-color: var(--tblr-bg-surface);
    }

    html[data-bs-theme="dark"] .theme-toggle:focus-visible {
        outline-color: var(--sb8-theme-accent);
    }

    html[data-bs-theme="dark"] .auth-theme-control .theme-toggle {
        color: var(--sb8-theme-muted);
        border-color: #8794a5;
    }

    html[data-bs-theme="dark"] .auth-theme-control .theme-toggle:hover,
    html[data-bs-theme="dark"] .auth-theme-control .theme-toggle:active {
        background-color: #3a4859;
        color: #fff;
    }

    html[data-bs-theme="dark"] .btn-outline-primary {
        --tblr-btn-color: var(--sb8-theme-accent);
        --tblr-btn-border-color: var(--sb8-theme-accent);
    }

    html[data-bs-theme="dark"] .btn-outline-secondary {
        --tblr-btn-color: var(--sb8-theme-muted);
        --tblr-btn-border-color: #8794a5;
    }

    html[data-bs-theme="dark"] .btn-outline-danger {
        --tblr-btn-color: var(--neg);
        --tblr-btn-border-color: var(--neg);
    }

    html[data-bs-theme="dark"] .form-control:focus,
    html[data-bs-theme="dark"] .form-select:focus {
        border-color: var(--sb8-theme-accent);
        box-shadow: 0 0 0 .25rem rgba(133, 184, 239, .25);
    }

    html[data-bs-theme="dark"] .text-secondary,
    html[data-bs-theme="dark"] .link-secondary,
    html[data-bs-theme="dark"] .page-pretitle,
    html[data-bs-theme="dark"] .form-hint {
        color: var(--sb8-theme-muted) !important;
    }

    html[data-bs-theme="dark"] .text-primary {
        color: var(--sb8-theme-accent) !important;
    }

    html[data-bs-theme="dark"] .text-danger {
        color: var(--neg) !important;
    }

    html[data-bs-theme="dark"] .text-success {
        color: var(--pos) !important;
    }

    html[data-bs-theme="dark"] .text-warning {
        color: var(--warn) !important;
    }

    html[data-bs-theme="dark"] .alert.bg-white,
    html[data-bs-theme="dark"] .finance-forecast-exceptions {
        background-color: var(--tblr-bg-surface) !important;
    }

    html[data-bs-theme="dark"] .finance-forecast-exceptions.text-dark,
    html[data-bs-theme="dark"] .finance-forecast-exceptions .text-dark {
        color: var(--tblr-body-color) !important;
    }

    html[data-bs-theme="dark"] .air-datepicker {
        --adp-background-color: var(--tblr-bg-surface);
        --adp-background-color-hover: var(--tblr-bg-surface-secondary);
        --adp-background-color-active: var(--tblr-active-bg);
        --adp-color: var(--tblr-body-color);
        --adp-color-secondary: var(--sb8-theme-muted);
        --adp-color-other-month: #8794a5;
        --adp-color-other-month-hover: var(--sb8-theme-muted);
        --adp-color-disabled: #8794a5;
        --adp-color-disabled-in-range: #8794a5;
        --adp-accent-color: var(--sb8-theme-accent);
        --adp-day-name-color: var(--sb8-theme-accent);
        --adp-border-color: var(--tblr-border-color);
        --adp-border-color-inner: var(--tblr-border-color);
        --adp-border-color-inline: var(--tblr-border-color);
        --adp-cell-background-color-selected: #0054a6;
        --adp-cell-background-color-selected-hover: #0069cf;
        --adp-background-color-selected-other-month: #0054a6;
        --adp-background-color-selected-other-month-focused: #0069cf;
        --adp-time-track-color: var(--sb8-theme-muted);
        --adp-time-track-color-hover: var(--sb8-theme-accent);
    }

    html[data-bs-theme="dark"] .air-datepicker-body--day-name,
    html[data-bs-theme="dark"] .air-datepicker-cell.-day-.-current-.-weekend- {
        color: var(--sb8-theme-accent);
    }

    html[data-bs-theme="dark"] .air-datepicker-cell.-selected- {
        color: #fff;
    }

    html[data-bs-theme="dark"] .note-editor,
    html[data-bs-theme="dark"] .note-popover {
        border-color: var(--tblr-border-color);
    }

    html[data-bs-theme="dark"] .note-editor .note-toolbar,
    html[data-bs-theme="dark"] .note-popover .popover-content,
    html[data-bs-theme="dark"] .note-editor .note-statusbar {
        background-color: var(--tblr-bg-surface-secondary);
        border-color: var(--tblr-border-color);
        color: var(--tblr-body-color);
    }

    html[data-bs-theme="dark"] .note-editor .note-editable,
    html[data-bs-theme="dark"] .note-editor .note-codable {
        background-color: var(--tblr-bg-forms);
        color: var(--tblr-body-color);
    }

    html[data-bs-theme="dark"] .note-editor .note-placeholder,
    html[data-bs-theme="dark"] .note-editor .note-btn {
        color: var(--sb8-theme-muted);
    }

    html[data-bs-theme="dark"] .note-editor .note-statusbar .note-icon-bar {
        border-color: var(--sb8-theme-muted);
    }

    html[data-bs-theme="dark"] .swal2-popup {
        background: var(--tblr-bg-surface);
        color: var(--tblr-body-color);
    }

    html[data-bs-theme="dark"] .swal2-title,
    html[data-bs-theme="dark"] .swal2-html-container {
        color: var(--tblr-body-color);
    }

    html[data-bs-theme="dark"] .swal2-input,
    html[data-bs-theme="dark"] .swal2-textarea,
    html[data-bs-theme="dark"] .swal2-select {
        background-color: var(--tblr-bg-forms);
        color: var(--tblr-body-color);
        border-color: var(--tblr-border-color);
    }

    html[data-bs-theme="dark"] .swal2-validation-message {
        background-color: var(--tblr-bg-surface-secondary);
        color: var(--tblr-body-color);
    }

    html[data-bs-theme="dark"] .ts-control,
    html[data-bs-theme="dark"] .ts-dropdown {
        background-color: var(--tblr-bg-forms);
        color: var(--tblr-body-color);
        border-color: var(--tblr-border-color);
    }

    html[data-bs-theme="dark"] .ts-control input {
        color: var(--tblr-body-color);
    }

    html[data-bs-theme="dark"] .ts-control .item,
    html[data-bs-theme="dark"] .ts-dropdown .active,
    html[data-bs-theme="dark"] .ts-dropdown .optgroup-header {
        background-color: var(--tblr-bg-surface-secondary);
        color: var(--tblr-body-color);
    }

    html[data-bs-theme="dark"] div.dt-button-collection {
        background: var(--tblr-bg-surface);
        color: var(--tblr-body-color);
        border-color: var(--tblr-border-color);
    }

    html[data-bs-theme="dark"] div.dt-button-collection .dt-button {
        background: var(--tblr-bg-surface);
        color: var(--tblr-body-color);
        border-color: var(--tblr-border-color);
    }

    html[data-bs-theme="dark"] div.dt-button-collection .dt-button:hover,
    html[data-bs-theme="dark"] div.dt-button-collection .dt-button.active {
        background: var(--tblr-bg-surface-secondary);
        color: var(--sb8-theme-accent);
    }

    html[data-bs-theme="dark"] .sb8-tab-bar button:hover:not(.active),
    html[data-bs-theme="dark"] .sb8-att-bg,
    html[data-bs-theme="dark"] .sb8-tw thead th,
    html[data-bs-theme="dark"] .sb8-tw tbody tr.tot td,
    html[data-bs-theme="dark"] .sb8-mini-tbl tr.tot,
    html[data-bs-theme="dark"] #sb8-bp-main-table thead tr:nth-child(2) th.sb8-bp-subhead {
        background: var(--tblr-bg-surface-secondary);
    }

    html[data-bs-theme="dark"] .sb8-bo-pag {
        background: var(--tblr-bg-surface-secondary) !important;
    }

    html[data-bs-theme="dark"] .sb8-tw tbody td {
        border-right-color: var(--border);
    }

    html[data-bs-theme="dark"] .sb8-tw tbody tr:hover td,
    html[data-bs-theme="dark"] .sb8-drawer-tr {
        background: var(--tblr-bg-surface-secondary);
    }

    html[data-bs-theme="dark"] .sb8-tw tbody tr.cur td {
        background: var(--blue-bg);
        color: var(--blue-txt);
    }

    html[data-bs-theme="dark"] .sb8-tw thead tr.gr-hd th {
        background: var(--navy);
    }

    html[data-bs-theme="dark"] .tr-c,
    html[data-bs-theme="dark"] .sb8-sp-nm,
    html[data-bs-theme="dark"] .sb8-help-content .sb8-help-lead {
        color: var(--sb8-theme-muted);
    }

    html[data-bs-theme="dark"] .sb8-help-e {
        border-left-color: var(--tblr-border-color);
    }

    html[data-bs-theme="dark"] .sb8-help-content .sb8-help-warn {
        color: var(--neg);
    }

    html[data-bs-theme="dark"] .sb8-bg {
        color: var(--pos);
    }

    html[data-bs-theme="dark"] .sb8-ba,
    html[data-bs-theme="dark"] .sb8-aged-30 .al {
        color: var(--warn);
    }

    html[data-bs-theme="dark"] .sb8-br,
    html[data-bs-theme="dark"] .sb8-aged-60 .al,
    html[data-bs-theme="dark"] .sb8-aged-90 .al {
        color: var(--neg);
    }

    html[data-bs-theme="dark"] .sb8-bgy,
    html[data-bs-theme="dark"] .sb8-aged-0 {
        background: var(--tblr-bg-surface-secondary);
        color: var(--tblr-body-color);
    }

    html[data-bs-theme="dark"] .sb8-aged-0 .al {
        color: var(--tblr-body-color);
    }

    html[data-bs-theme="dark"] .sb8-aged-60,
    html[data-bs-theme="dark"] .sb8-flag td {
        background: var(--neg-bg);
    }

    html[data-bs-theme="dark"] .sb8-skel,
    html[data-bs-theme="dark"] .sb8-skel-l {
        background-image: linear-gradient(90deg, #1b293a 25%, #2c415d 50%, #1b293a 75%);
    }

    html[data-bs-theme="dark"] .kpi-card,
    html[data-bs-theme="dark"] .delta-breakdown,
    html[data-bs-theme="dark"] .weekly-table td:first-child {
        background: var(--tblr-bg-surface);
        color: var(--tblr-body-color);
        border-color: var(--tblr-border-color);
    }

    html[data-bs-theme="dark"] .kpi-card .kpi-value,
    html[data-bs-theme="dark"] .delta-breakdown .db-header,
    html[data-bs-theme="dark"] .db-row .db-label,
    html[data-bs-theme="dark"] .db-row .db-amount,
    html[data-bs-theme="dark"] .db-total-row .db-label,
    html[data-bs-theme="dark"] .db-total-row .db-amount {
        color: var(--tblr-body-color);
    }

    html[data-bs-theme="dark"] .kpi-card .kpi-label,
    html[data-bs-theme="dark"] .section-title,
    html[data-bs-theme="dark"] .pipeline-bar,
    html[data-bs-theme="dark"] .db-row .db-count {
        color: var(--sb8-theme-muted);
    }

    html[data-bs-theme="dark"] .weekly-table th,
    html[data-bs-theme="dark"] .weekly-table .col-group-header {
        background: var(--tblr-bg-surface-secondary);
        color: var(--sb8-theme-muted);
        border-color: var(--tblr-border-color);
    }

    html[data-bs-theme="dark"] .db-row,
    html[data-bs-theme="dark"] .weekly-table .col-group,
    html[data-bs-theme="dark"] .section-divider,
    html[data-bs-theme="dark"] .db-total-row {
        border-color: var(--tblr-border-color);
    }

    html[data-bs-theme="dark"] .week-badge {
        background: var(--blue-bg);
        color: var(--blue-txt);
        border-color: var(--tblr-border-color);
    }

    html[data-bs-theme="dark"] .insight-callout {
        background: var(--pos-bg);
        color: var(--tblr-body-color);
    }

    html[data-bs-theme="dark"] .flow-indicator {
        background: var(--tblr-bg-surface-secondary);
        color: var(--tblr-body-color);
    }

    html[data-bs-theme="dark"] .flow-indicator .arrow,
    html[data-bs-theme="dark"] .db-row .db-drill {
        color: var(--sb8-theme-muted);
    }

    html[data-bs-theme="dark"] .insight-callout strong,
    html[data-bs-theme="dark"] .weekly-table .num.up,
    html[data-bs-theme="dark"] .db-row .db-sign.positive {
        color: var(--pos);
    }

    html[data-bs-theme="dark"] .weekly-table .num.down,
    html[data-bs-theme="dark"] .db-row .db-sign.negative {
        color: var(--neg);
    }
}

@media print {
    .theme-toggle,
    .auth-theme-control {
        display: none !important;
    }
}
