/**
 * SMP theme layer: smooth light ↔ dark transitions and consistent surfaces.
 * Toggle: html[data-bs-theme="dark"] (see smpSetDarkTheme in script.js).
 * Loaded after Bootstrap + feature CSS so these rules win.
 */

:root {
    --smp-theme-ease: 0.24s ease;
}

/* Smooth color/border transitions when toggling theme (logged-in shell only). */
body.smp-logged-in-shell,
body.smp-logged-in-shell #loggedInContainer,
body.smp-logged-in-shell #loggedInContainer > .container,
body.smp-logged-in-shell .container-header,
body.smp-logged-in-shell #taskbar.container-header,
body.smp-logged-in-shell #footer-container,
body.smp-logged-in-shell .footer-container,
body.smp-logged-in-shell .module-footer,
body.smp-logged-in-shell .menu-container,
body.smp-logged-in-shell .module-menu,
body.smp-logged-in-shell .module-body,
body.smp-logged-in-shell .submodule-body,
body.smp-logged-in-shell .ai-chat-sidebar-container,
body.smp-logged-in-shell .ai-chat-sidebar-inner,
body.smp-logged-in-shell .lists,
body.smp-logged-in-shell .dropdown-content,
body.smp-logged-in-shell .smp-list-pager-host,
body.smp-logged-in-shell .smp-module-filter-header,
body.smp-logged-in-shell .smp-list-context-menu,
body.smp-logged-in-shell .smp-list-context-menu__flyout,
body.smp-logged-in-shell .card,
body.smp-logged-in-shell .modal-content,
body.smp-logged-in-shell .form-control,
body.smp-logged-in-shell .form-select,
body.smp-logged-in-shell .table {
    transition:
        background-color var(--smp-theme-ease),
        color var(--smp-theme-ease),
        border-color var(--smp-theme-ease),
        box-shadow var(--smp-theme-ease);
}

html[data-bs-theme="dark"] {
    color-scheme: dark;
}

/* ——— Login ——— */
html[data-bs-theme="dark"] .smp-login-bg {
    background-color: #212529 !important;
}
html[data-bs-theme="dark"] .smp-login-bg .card {
    background-color: var(--bs-secondary-bg, #2b3035);
    color: var(--bs-body-color, #e9ecef);
}

/* ——— Profile spinner ——— */
html[data-bs-theme="dark"] .smp-profile-section-ovie-loading {
    border-color: rgba(255, 255, 255, 0.2);
    border-top-color: #6ea8fe;
}

/* ——— Logged-in chrome (align with Bootstrap dark tokens) ——— */
html[data-bs-theme="dark"] body.smp-logged-in-shell {
    background-color: var(--bs-body-bg, #212529);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] #loggedInContainer > .container {
    background-color: var(--bs-body-bg, #212529);
}
html[data-bs-theme="dark"] .container-header,
html[data-bs-theme="dark"] #taskbar.container-header {
    background-color: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.35);
}
html[data-bs-theme="dark"] #footer-container,
html[data-bs-theme="dark"] .footer-container,
html[data-bs-theme="dark"] .module-footer {
    background-color: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.35);
}
html[data-bs-theme="dark"] .menu-container,
html[data-bs-theme="dark"] .module-menu,
html[data-bs-theme="dark"] .module-body,
html[data-bs-theme="dark"] .submodule-body,
html[data-bs-theme="dark"] .ai-chat-sidebar-container,
html[data-bs-theme="dark"] .ai-chat-sidebar-inner {
    background-color: var(--bs-body-bg, #212529);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .lists {
    border-color: var(--bs-border-color, #495057);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.28);
}
html[data-bs-theme="dark"] .selected-row {
    background-color: rgba(13, 110, 253, 0.22);
}
html[data-bs-theme="dark"] .dropdown-content {
    background-color: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .dropdown-content > div:hover,
html[data-bs-theme="dark"] .dropdown-content .app-menu-row:hover {
    background-color: var(--bs-tertiary-bg, #343a40);
}
html[data-bs-theme="dark"] .dropdown-content .app-menu-row .app-menu-shortcut {
    color: var(--bs-secondary-color, #adb5bd);
}

/* ——— List pager + filter header ——— */
html[data-bs-theme="dark"] .smp-list-pager-host {
    background: var(--bs-body-bg, #212529);
    border-top: 1px solid var(--bs-border-color, #495057);
    box-shadow: 0 -4px 14px rgba(0, 0, 0, 0.35);
}
html[data-bs-theme="dark"] .smp-module-filter-header {
    background: var(--bs-body-bg, #212529);
    border-bottom: 1px solid var(--bs-border-color, #495057);
    box-shadow: 0 6px 14px rgba(0, 0, 0, 0.25);
}

/* ——— Row context menus ——— */
html[data-bs-theme="dark"] .smp-list-context-menu {
    background: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.45);
}
html[data-bs-theme="dark"] .smp-list-context-menu__item:hover {
    background: rgba(13, 110, 253, 0.2);
}
html[data-bs-theme="dark"] .smp-list-context-menu__divider {
    background: rgba(255, 255, 255, 0.12);
}
html[data-bs-theme="dark"] .smp-list-context-menu__flyout {
    background: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
    box-shadow: 4px 4px 20px rgba(0, 0, 0, 0.4);
}

/* ——— Data tables (list / results) ——— */
/*
 * index.css sets `th, td { border-top: 1px solid #ccc }` globally — too bright in dark mode.
 * Match .form-control: same 1px weight, --bs-border-color (Bootstrap dark default #495057).
 */
html[data-bs-theme="dark"] body.smp-logged-in-shell th,
html[data-bs-theme="dark"] body.smp-logged-in-shell td {
    border-top-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .table-wrapper {
    border-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] body.smp-logged-in-shell table.upload-table.table,
html[data-bs-theme="dark"] body.smp-logged-in-shell table.upload-table {
    --bs-table-border-color: var(--bs-border-color, #495057);
    border-color: var(--bs-border-color, #495057);
}
/* Avoid a light rim between browser chrome and the shell (html default / scroll bleed). */
html[data-bs-theme="dark"] {
    background-color: var(--bs-body-bg, #212529);
}

html[data-bs-theme="dark"] .resultsTable tbody tr:hover td:not(.sticky) {
    background-color: rgba(13, 110, 253, 0.2) !important;
}
html[data-bs-theme="dark"] .resultsTable tbody tr:nth-child(odd) td.sticky {
    background-color: var(--bs-body-bg, #212529);
}
html[data-bs-theme="dark"] .resultsTable tbody tr:nth-child(even) td.sticky {
    background-color: var(--bs-tertiary-bg, #343a40);
}
html[data-bs-theme="dark"] .resultsTable tbody tr:hover td.sticky {
    background-color: rgba(13, 110, 253, 0.22) !important;
}
html[data-bs-theme="dark"] .lists table tbody tr:nth-child(odd) td.sticky {
    background-color: var(--bs-body-bg, #212529);
}
html[data-bs-theme="dark"] .lists table tbody tr:nth-child(even) td.sticky {
    background-color: var(--bs-tertiary-bg, #343a40);
}
html[data-bs-theme="dark"] .lists table tbody tr:hover td:not(.sticky) {
    background-color: rgba(13, 110, 253, 0.2) !important;
}
html[data-bs-theme="dark"] .lists table tbody tr:hover td.sticky {
    background-color: rgba(13, 110, 253, 0.22) !important;
}
html[data-bs-theme="dark"] .lists table tbody tr:last-child td {
    border-bottom: 1px solid var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] .lists.smp-profile-lists .smp-profile-table-foot-bar,
html[data-bs-theme="dark"] .lists.smp-profile-lists .smp-list-table-foot-bar {
    border-top-color: var(--bs-border-color, #495057);
    border-bottom-color: var(--bs-border-color, #495057);
    background-color: rgba(0, 0, 0, 0.2);
    box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.35);
}
html[data-bs-theme="dark"] .lists.smp-profile-lists table thead tr.smp-profile-col-controls-row th.smp-profile-col-ctl {
    background-color: var(--bs-tertiary-bg, #343a40);
    border-bottom-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] .lists.smp-profile-lists table thead tr.smp-profile-col-controls-row th.sticky {
    background-color: var(--bs-tertiary-bg, #343a40);
}
html[data-bs-theme="dark"] .lists.smp-profile-lists .smp-profile-col-toggle-track,
html[data-bs-theme="dark"] .smp-main-list-foot-bar .smp-profile-col-toggle-track {
    background: #64748b;
    border-color: #94a3b8;
}
html[data-bs-theme="dark"]
    .lists.smp-profile-lists
    button.smp-profile-col-toggle-wrap[aria-checked="true"]
    .smp-profile-col-toggle-track,
html[data-bs-theme="dark"]
    .smp-main-list-foot-bar
    button.smp-profile-col-toggle-wrap[aria-checked="true"]
    .smp-profile-col-toggle-track {
    background: #2563eb;
    border-color: #1d4ed8;
}
html[data-bs-theme="dark"] .form-check.form-switch .form-check-input {
    --bs-form-switch-bg: #64748b;
    background-color: #64748b;
    border-color: #94a3b8;
}
html[data-bs-theme="dark"] .form-check.form-switch .form-check-input:focus {
    --bs-form-switch-bg: #64748b;
    border-color: #94a3b8;
}
html[data-bs-theme="dark"] .form-check.form-switch .form-check-input:checked {
    --bs-form-switch-bg: #2563eb;
    background-color: #2563eb;
    border-color: #1d4ed8;
}
html[data-bs-theme="dark"] .form-check.form-switch .form-check-input:checked:focus {
    --bs-form-switch-bg: #2563eb;
    border-color: #1d4ed8;
}
html[data-bs-theme="dark"] .smp-profile-col-nudge,
html[data-bs-theme="dark"] .smp-list-pager-prev,
html[data-bs-theme="dark"] .smp-list-pager-next {
    border-color: var(--bs-primary, #0d6efd);
    background: var(--bs-body-bg, #212529);
    color: var(--bs-primary, #6ea8fe);
}
html[data-bs-theme="dark"] .smp-profile-col-nudge:hover:not(:disabled),
html[data-bs-theme="dark"] .smp-list-pager-prev:hover:not(:disabled),
html[data-bs-theme="dark"] .smp-list-pager-next:hover:not(:disabled) {
    background: rgba(13, 110, 253, 0.15);
}
html[data-bs-theme="dark"] .smp-list-pager-range {
    color: var(--bs-secondary-color, #adb5bd);
}
html[data-bs-theme="dark"] table tr:nth-child(even) td {
    background-color: rgba(255, 255, 255, 0.03);
}
html[data-bs-theme="dark"] tr.sticky,
html[data-bs-theme="dark"] th.sticky,
html[data-bs-theme="dark"] td.sticky {
    background: var(--bs-secondary-bg, #2b3035) !important;
    box-shadow: 0 0 6px rgba(0, 0, 0, 0.35);
}
html[data-bs-theme="dark"] .resultsTable thead th,
html[data-bs-theme="dark"] .lists table thead th {
    background: var(--bs-secondary-bg, #2b3035) !important;
    box-shadow: inset 0 2px 0 var(--bs-secondary-bg, #2b3035);
    color: var(--bs-body-color, #dee2e6);
}
/* List / profile sort: inactive single triangle = muted; active column = primary (see index.css). */
html[data-bs-theme="dark"] .smp-list-sortable:not(.smp-list-sort-active)::after {
    color: rgba(255, 255, 255, 0.42);
    opacity: 0.95;
}
html[data-bs-theme="dark"] .resultsTable thead th.smp-list-sort-active,
html[data-bs-theme="dark"] .lists table thead th.smp-list-sort-active {
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .smp-list-sort-active[data-sort-dir="asc"]::after,
html[data-bs-theme="dark"] .smp-list-sort-active[data-sort-dir="desc"]::after {
    color: var(--bs-primary, #6ea8fe);
}
html[data-bs-theme="dark"] th.sticky::after,
html[data-bs-theme="dark"] td.sticky::after {
    border-left-color: var(--bs-border-color, #495057);
    background: linear-gradient(90deg, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0) 100%);
}
html[data-bs-theme="dark"] th.sticky::before,
html[data-bs-theme="dark"] td.sticky::before {
    border-right-color: var(--bs-border-color, #495057);
    background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.4) 100%);
}

/* ——— Inactive pill knob ——— */
html[data-bs-theme="dark"] .smp-inactive-pill__knob {
    background: #e9ecef;
}

/* ——— Bootstrap surfaces inside app ——— */
html[data-bs-theme="dark"] body.smp-logged-in-shell .card {
    background-color: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .card-header,
html[data-bs-theme="dark"] body.smp-logged-in-shell .card-footer {
    background-color: rgba(0, 0, 0, 0.15);
    border-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .modal-content {
    background-color: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .modal-header,
html[data-bs-theme="dark"] body.smp-logged-in-shell .modal-footer {
    border-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .form-control,
html[data-bs-theme="dark"] body.smp-logged-in-shell .form-select {
    background-color: var(--bs-body-bg, #212529);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .form-control:focus,
html[data-bs-theme="dark"] body.smp-logged-in-shell .form-control:focus-visible,
html[data-bs-theme="dark"] body.smp-logged-in-shell .form-select:focus,
html[data-bs-theme="dark"] body.smp-logged-in-shell .form-select:focus-visible {
    background-color: var(--bs-body-bg, #212529);
    color: var(--bs-body-color, #dee2e6);
    border-color: var(--bs-primary, #0d6efd);
    box-shadow: none;
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--bs-body-color);
    --bs-table-border-color: var(--bs-border-color);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .table > :not(caption) > * > * {
    background-color: transparent;
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .text-dark {
    color: var(--bs-body-color) !important;
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .text-muted {
    color: var(--bs-secondary-color) !important;
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .bg-light {
    background-color: var(--bs-secondary-bg) !important;
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .border,
html[data-bs-theme="dark"] body.smp-logged-in-shell .border-top,
html[data-bs-theme="dark"] body.smp-logged-in-shell .border-bottom {
    border-color: var(--bs-border-color) !important;
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .list-group-item {
    background-color: var(--bs-body-bg, #212529);
    color: var(--bs-body-color, #dee2e6);
    border-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .nav-tabs .nav-link {
    color: var(--bs-secondary-color, #adb5bd);
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .nav-tabs .nav-link.active {
    background-color: var(--bs-body-bg, #212529);
    color: var(--bs-body-color, #dee2e6);
    border-color: var(--bs-border-color, #495057);
}

/* ——— SumoSelect ——— */
html[data-bs-theme="dark"] .SumoSelect > .CaptionCont {
    background-color: var(--bs-body-bg, #212529) !important;
    border-color: var(--bs-border-color, #495057) !important;
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .SumoSelect > .optWrapper {
    background: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .SumoSelect .select-all > span i,
html[data-bs-theme="dark"] .SumoSelect > .optWrapper > .options li.opt {
    border-color: var(--bs-border-color, #6c757d);
}
html[data-bs-theme="dark"] .SumoSelect > .optWrapper > .options li.opt:hover {
    background-color: var(--bs-tertiary-bg, #343a40);
}

/* ——— Select2 (filters) ——— */
html[data-bs-theme="dark"] .select2-container--default .select2-selection--single,
html[data-bs-theme="dark"] .select2-container--default .select2-selection--multiple {
    background-color: var(--bs-body-bg, #212529);
    border-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .select2-dropdown {
    background-color: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] .select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: #0d6efd;
}
html[data-bs-theme="dark"] .select2-container--default .select2-results__option {
    color: var(--bs-body-color, #dee2e6);
}

/* ——— Preferences hub ——— */
html[data-bs-theme="dark"] .preferences-primary,
html[data-bs-theme="dark"] .preferences-primary__body--users .preferences-section.preferences-section--perm-admin,
html[data-bs-theme="dark"] .preferences-section {
    background: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .preferences-primary__title,
html[data-bs-theme="dark"] .preferences-section h3 {
    color: var(--bs-body-color, #e9ecef);
}
html[data-bs-theme="dark"] .preferences-primary__header {
    border-bottom-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] .pref-col-row {
    background: var(--bs-body-bg, #212529);
    border-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] .pref-col-drag-handle {
    border-bottom-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] .settings-lookup-nav button {
    background: var(--bs-body-bg, #212529);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .settings-lookup-nav button:hover {
    background: var(--bs-tertiary-bg, #343a40);
}
html[data-bs-theme="dark"] .settings-lookup-nav button.settings-lookup-nav--active {
    background: rgba(194, 24, 91, 0.22);
    border-color: #f48fb1;
    color: #fce4ec;
}
html[data-bs-theme="dark"] .settings-lookup-table-scroll {
    background: var(--bs-body-bg, #212529);
    border-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] .settings-lookup-table-scroll table thead th {
    background: var(--bs-secondary-bg, #2b3035);
    box-shadow: inset 0 -1px 0 var(--bs-border-color, #495057);
}
/* List Items editor: toolbar, table body, Add row strip (preferences.css defaults are light) */
html[data-bs-theme="dark"] .settings-lookup-main {
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .settings-lookup-lead,
html[data-bs-theme="dark"] .settings-lookup-placeholder,
html[data-bs-theme="dark"] .settings-lookup-loading {
    color: var(--bs-secondary-color, #adb5bd);
}
html[data-bs-theme="dark"] .settings-lookup-table-title {
    color: var(--bs-body-color, #e9ecef);
}
html[data-bs-theme="dark"] .settings-lookup-table-slug {
    background: var(--bs-tertiary-bg, #343a40);
    color: var(--bs-secondary-color, #adb5bd);
}
html[data-bs-theme="dark"] .settings-lookup-search-wrap .form-control.settings-lookup-search,
html[data-bs-theme="dark"] .settings-lookup-page-size-label select {
    background-color: var(--bs-body-bg, #212529);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .settings-lookup-prev,
html[data-bs-theme="dark"] .settings-lookup-next {
    background: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .settings-lookup-prev:hover:not(:disabled),
html[data-bs-theme="dark"] .settings-lookup-next:hover:not(:disabled) {
    background: var(--bs-tertiary-bg, #343a40);
}
html[data-bs-theme="dark"] .settings-lookup-table tbody td {
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .settings-lookup-id-pill {
    background: var(--bs-tertiary-bg, #343a40);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .settings-lookup-empty {
    color: var(--bs-secondary-color, #adb5bd);
}
html[data-bs-theme="dark"] .settings-lookup-add-wrap {
    background: rgba(15, 23, 42, 0.55);
    border-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] .settings-lookup-add-title {
    color: var(--bs-body-color, #e9ecef);
}
html[data-bs-theme="dark"] .settings-lookup-add-hint,
html[data-bs-theme="dark"] .settings-lookup-mini-label {
    color: var(--bs-secondary-color, #adb5bd);
}
html[data-bs-theme="dark"] .settings-lookup-add-wrap .form-control,
html[data-bs-theme="dark"] .settings-lookup-add-fields .form-control {
    background-color: var(--bs-body-bg, #212529) !important;
    border-color: var(--bs-border-color, #495057) !important;
    color: var(--bs-body-color, #dee2e6) !important;
}
html[data-bs-theme="dark"] .settings-lookup-add-wrap .form-control::placeholder {
    color: var(--bs-secondary-color, #868e96);
    opacity: 1;
}
html[data-bs-theme="dark"] .settings-lookup-cell-input:focus {
    background: var(--bs-body-bg, #212529) !important;
    color: var(--bs-body-color, #dee2e6) !important;
}
html[data-bs-theme="dark"] .settings-lookup-cell-input:hover {
    background: rgba(255, 255, 255, 0.06) !important;
}
html[data-bs-theme="dark"] .settings-lookup-nav-group-label {
    color: var(--bs-secondary-color, #adb5bd);
}
html[data-bs-theme="dark"] .settings-lookup-nav-group-label--spaced {
    border-top-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] .settings-lookup-pager,
html[data-bs-theme="dark"] .settings-lookup-page-size-label {
    color: var(--bs-secondary-color, #adb5bd);
}
html[data-bs-theme="dark"] .preferences-app-header h2 {
    color: var(--bs-body-color, #e9ecef);
}
html[data-bs-theme="dark"] .preferences-app-lead {
    color: var(--bs-secondary-color, #adb5bd);
}
html[data-bs-theme="dark"] .pref-label-text {
    color: var(--bs-secondary-color, #ced4da);
}
html[data-bs-theme="dark"] .pref-perm-help-callout {
    background: var(--bs-tertiary-bg, #343a40);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
}
/* User permissions card: name + reset actions readable in dark mode */
html[data-bs-theme="dark"] .pref-perm-employee-card .pref-perm-employee-identity strong {
    color: var(--bs-body-color, #e9ecef);
}
html[data-bs-theme="dark"] .pref-perm-reload-wrap .btn-outline-secondary,
html[data-bs-theme="dark"] #pref-perm-send-reset.btn-outline-secondary {
    border-color: rgba(148, 163, 184, 0.65);
    color: #e2e8f0;
    background: rgba(15, 23, 42, 0.35);
}
html[data-bs-theme="dark"] .pref-perm-reload-wrap .btn-outline-secondary:hover,
html[data-bs-theme="dark"] #pref-perm-send-reset.btn-outline-secondary:hover {
    background: rgba(148, 163, 184, 0.15);
    border-color: #94a3b8;
    color: #f8fafc;
}
html[data-bs-theme="dark"] .pref-list-columns-wrap,
html[data-bs-theme="dark"] .pref-list-columns-controls {
    border-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] .settings-lookup-status {
    color: var(--bs-secondary-color, #adb5bd);
}

/* ——— SOP lab (static page) ——— */
html[data-bs-theme="dark"] .sop-lab-sub {
    color: var(--bs-secondary-color, #adb5bd);
}
html[data-bs-theme="dark"] .sop-lab-card {
    background: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .sop-btn {
    background: var(--bs-body-bg, #212529);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .sop-status {
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .sop-json {
    background: var(--bs-body-bg, #212529);
    border-color: var(--bs-border-color, #495057);
    color: #c5d4e0;
}

/* ——— AI / Ovie (from ai-ui.css) ——— */
html[data-bs-theme="dark"] #ai-app-chat-log {
    background: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .ai-app-chat-thinking-line {
    color: #ffecb3;
    border-top-color: rgba(255, 193, 7, 0.35);
}
html[data-bs-theme="dark"] .ai-app-chat-line--progress .ai-app-chat-line__body--system {
    border-left-color: rgba(110, 168, 254, 0.55);
}
html[data-bs-theme="dark"] .ai-app-chat-line--user .ai-app-chat-line__head {
    color: #9ec5fe;
}

/* Ovie replies: readable off-white body + orange speaker label (sidebar + main chat log) */
html[data-bs-theme="dark"] .ai-app-chat-line--ovie .ai-app-chat-line__head {
    color: #fd7e14;
}
html[data-bs-theme="dark"] .ai-app-chat-line--ovie {
    color: #e8e4df;
}
html[data-bs-theme="dark"] .ai-app-chat-line--ovie .ai-app-chat-line__body--rich,
html[data-bs-theme="dark"] .ai-app-chat-line--ovie .ai-app-chat-line__body--plain {
    color: #e8e4df;
}
html[data-bs-theme="dark"] .ai-app-chat-line--ovie .ai-app-chat-line__body--rich .ai-app-chat-md__p,
html[data-bs-theme="dark"] .ai-app-chat-line--ovie .ai-app-chat-line__body--rich .ai-app-chat-md__ul,
html[data-bs-theme="dark"] .ai-app-chat-line--ovie .ai-app-chat-line__body--rich .ai-app-chat-md__ol,
html[data-bs-theme="dark"] .ai-app-chat-line--ovie .ai-app-chat-line__body--rich .ai-app-chat-md__ul li,
html[data-bs-theme="dark"] .ai-app-chat-line--ovie .ai-app-chat-line__body--rich .ai-app-chat-md__ol li {
    color: #e8e4df;
}
html[data-bs-theme="dark"] .ai-app-chat-line--ovie .ai-app-chat-line__body--rich .ai-app-chat-md__h {
    color: #f0ebe3;
}
html[data-bs-theme="dark"] .ai-app-chat-line--ovie .ai-app-chat-line__body--rich .ai-app-chat-md__code {
    background: rgba(255, 255, 255, 0.1);
    color: #ffe8cc;
}

html[data-bs-theme="dark"] #ai-chat-sidebar-filters .ai-app-chat-input.form-control {
    border-color: var(--bs-border-color, #495057);
    background-color: var(--bs-body-bg, #212529);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .ai-chat-sidebar-inner .text-muted,
html[data-bs-theme="dark"] #smp-ai-studio-root .text-muted {
    color: var(--bs-secondary-color, #adb5bd) !important;
}
/* AI Studio canvas: ai-ui fixes light-theme body/heading colors; panel is dark in theme — restore contrast */
html[data-bs-theme="dark"] #smp-ai-studio-root .smp-ai-studio-html {
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] #smp-ai-studio-root .smp-ai-studio-md {
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] #smp-ai-studio-root .smp-ai-studio-md h1,
html[data-bs-theme="dark"] #smp-ai-studio-root .smp-ai-studio-md h2,
html[data-bs-theme="dark"] #smp-ai-studio-root .smp-ai-studio-md h3,
html[data-bs-theme="dark"] #smp-ai-studio-root .smp-ai-studio-md h4,
html[data-bs-theme="dark"] #smp-ai-studio-root .smp-ai-studio-md h5,
html[data-bs-theme="dark"] #smp-ai-studio-root .smp-ai-studio-md h6 {
    color: #9ec5fe;
}
html[data-bs-theme="dark"] #smp-ai-studio-root .smp-ai-studio-md a {
    color: #6ea8fe;
}
html[data-bs-theme="dark"] #smp-ai-studio-root .smp-ai-studio-md table {
    background: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] #smp-ai-studio-root .smp-ai-studio-md th,
html[data-bs-theme="dark"] #smp-ai-studio-root .smp-ai-studio-md td {
    border-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] #smp-ai-studio-root .smp-ai-studio-md th {
    background: var(--bs-tertiary-bg, #343a40);
}
html[data-bs-theme="dark"] #smp-ai-studio-root .smp-ai-studio-md blockquote {
    background: rgba(13, 110, 253, 0.12);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] #smp-ai-studio-root .smp-ai-studio-md pre {
    background: #1a1d21;
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] #smp-ai-studio-root .smp-ai-studio-md code {
    background: rgba(255, 255, 255, 0.08);
}
html[data-bs-theme="dark"] .smp-ai-ovie-log-ctx {
    background: var(--bs-secondary-bg, #2b3035);
    color: var(--bs-body-color, #dee2e6);
    border: 1px solid var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] .ovie-rank-badge--rest {
    background: var(--bs-tertiary-bg, #343a40);
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .ovie-dash-tab,
html[data-bs-theme="dark"] .ovie-dash-period {
    color: var(--bs-secondary-color, #adb5bd);
}
html[data-bs-theme="dark"] .ovie-dash-tab--active,
html[data-bs-theme="dark"] .ovie-dash-period--active {
    color: #9ec5fe;
    border-bottom-color: #9ec5fe;
}

/* ——— Forms: match select/Sumo borders to text inputs; sharp primary focus (no bulky glow) ——— */
body.smp-logged-in-shell .form-control:focus,
body.smp-logged-in-shell .form-control:focus-visible,
body.smp-logged-in-shell .form-select:focus,
body.smp-logged-in-shell .form-select:focus-visible {
    border-color: var(--bs-primary, #0d6efd);
    outline: none;
    box-shadow: none;
}

/* SumoSelect loads after index.css — re-align border with Bootstrap inputs and fix focus ring */
body.smp-logged-in-shell .SumoSelect > .CaptionCont {
    border-color: var(--bs-border-color, #ced4da) !important;
    box-shadow: none !important;
}
body.smp-logged-in-shell .SumoSelect:hover > .CaptionCont {
    border-color: var(--bs-border-color, #ced4da) !important;
    box-shadow: none !important;
}
body.smp-logged-in-shell .SumoSelect:focus > .CaptionCont,
body.smp-logged-in-shell .SumoSelect:focus-within > .CaptionCont,
body.smp-logged-in-shell .SumoSelect.open > .CaptionCont {
    border-color: var(--bs-primary, #0d6efd) !important;
    box-shadow: none !important;
}

/*
 * Dropdown chevron in Sumo caption. The upstream `> label` parent is fixed
 * at 30px wide, so a 32px (2rem) icon spilled past the trigger right edge in
 * narrow filter columns — visually "almost outside the parent." Keep the icon
 * inside the label box (1rem ≈ 16px, matching upstream) and let the 30px
 * label provide the click target.
 */
body.smp-logged-in-shell .SumoSelect > .CaptionCont > label > i {
    width: 1rem;
    height: 1rem;
}

/*
 * Sumo trigger inner caption: upstream sets only `padding-right: 30px` (no
 * vertical padding), which made the trigger render visually shorter than
 * `<input class="form-control">` siblings in the filter sidebar. Match
 * Bootstrap form-control vertical padding (0.375rem top/bottom) and add a
 * small left padding so the truncated label text never runs flush against
 * the trigger border.
 */
body.smp-logged-in-shell .SumoSelect > .CaptionCont > span {
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
    padding-left: 0.75rem;
    line-height: 1.5;
}

html[data-bs-theme="dark"] body.smp-logged-in-shell .SumoSelect > .CaptionCont {
    border-color: var(--bs-border-color, #495057) !important;
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .SumoSelect:hover > .CaptionCont {
    border-color: var(--bs-border-color, #495057) !important;
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .SumoSelect:focus > .CaptionCont,
html[data-bs-theme="dark"] body.smp-logged-in-shell .SumoSelect:focus-within > .CaptionCont,
html[data-bs-theme="dark"] body.smp-logged-in-shell .SumoSelect.open > .CaptionCont {
    border-color: var(--bs-primary, #0d6efd) !important;
}

/* Select2 (searchable-select): default theme uses #aaa — match .form-control #ced4da */
body.smp-logged-in-shell .select2-container--default .select2-selection--single,
body.smp-logged-in-shell .select2-container--default .select2-selection--multiple {
    border-color: var(--bs-border-color, #ced4da) !important;
}
body.smp-logged-in-shell .select2-container--default.select2-container--focus .select2-selection--single,
body.smp-logged-in-shell .select2-container--default.select2-container--open .select2-selection--single,
body.smp-logged-in-shell .select2-container--default.select2-container--focus .select2-selection--multiple,
body.smp-logged-in-shell .select2-container--default.select2-container--open .select2-selection--multiple {
    border-color: var(--bs-primary, #0d6efd) !important;
    border-style: solid !important;
    border-width: 1px !important;
    box-shadow: none !important;
}
body.smp-logged-in-shell .select2-dropdown {
    border-color: var(--bs-border-color, #ced4da) !important;
}

/* Dropdown search: avoid “double border” (field border + browser/Select2 focus ring) */
body.smp-logged-in-shell .select2-container--default .select2-search--dropdown .select2-search__field {
    border-color: var(--bs-border-color, #ced4da) !important;
}
body.smp-logged-in-shell .select2-container--default .select2-search--dropdown .select2-search__field:focus,
body.smp-logged-in-shell .select2-container--default .select2-search--dropdown .select2-search__field:focus-visible {
    border-color: var(--bs-border-color, #ced4da) !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Sumo dropdown filter search: single neutral edge (no stacked blue ring) */
body.smp-logged-in-shell .SumoSelect.open .search-txt {
    border: 1px solid var(--bs-border-color, #ced4da) !important;
    box-sizing: border-box !important;
}
body.smp-logged-in-shell .SumoSelect.open .search-txt:focus,
body.smp-logged-in-shell .SumoSelect.open .search-txt:focus-visible {
    border-color: var(--bs-border-color, #ced4da) !important;
    outline: none !important;
    box-shadow: none !important;
}

/*
 * Select2 single search ("searchable-select"): vertical metrics matched to a
 * standard Bootstrap `.form-control` so it lines up with sibling inputs in
 * profile cards, modals, bookkeeper, and the permissions editor.
 */
body.smp-logged-in-shell .select2-container--default .select2-selection--single {
    height: auto !important;
    min-height: calc(1.5em + 0.75rem + 2px);
    padding: 0.375rem 0.75rem;
    box-sizing: border-box;
}
body.smp-logged-in-shell .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 1.5;
    padding-left: 0;
    padding-right: 1.5rem;
    color: inherit;
}
body.smp-logged-in-shell .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 100% !important;
    top: 0 !important;
    right: 0.25rem;
}
/* Filter sidebar shrinks all inputs to form-control-sm — keep Select2 consistent there too. */
body.smp-logged-in-shell form[id$="-menu-filters"] .select2-container--default .select2-selection--single {
    min-height: calc(1.5em + 0.5rem + 2px);
    padding: 0.25rem 0.5rem;
}

/*
 * SumoSelect filter sidebar dropdown: equalize the inline search box, the
 * "Select All" row, and each option row so the dropdown reads as one rhythmic
 * column. Scoped to filter menus so module body / profile Sumos are untouched.
 */
body.smp-logged-in-shell form[id$="-menu-filters"] .SumoSelect > .optWrapper > .options li.opt {
    min-height: 32px;
    padding: 6px 10px;
    margin: 0;
    box-sizing: border-box;
    line-height: 1.4;
}
body.smp-logged-in-shell form[id$="-menu-filters"] .SumoSelect.open .search-txt {
    min-height: 32px;
    padding: 6px 10px;
    margin: 0;
    width: 100%;
    box-sizing: border-box;
    line-height: 1.4;
}

/*
 * Filter sidebar SumoSelect popup: the sidebar column is a fixed 250px, so the
 * upstream `width: 100%` on `.optWrapper` made the dropdown panel ~226px and
 * crowded the option labels + the OK/Cancel `MultiControls` row. Let the
 * popup grow to its content (`max-content`) within a viewport-safe clamp,
 * while the trigger (`.CaptionCont`) keeps the column width. Applies only
 * inside `<form id="<module>-menu-filters">` so module-body / profile-card
 * Sumo selects are unaffected.
 */
body.smp-logged-in-shell form[id$="-menu-filters"] .SumoSelect.open > .optWrapper {
    width: max-content !important;
    min-width: 100% !important;
    max-width: min(440px, calc(100vw - 24px)) !important;
}
body.smp-logged-in-shell form[id$="-menu-filters"] .SumoSelect > .optWrapper > .options {
    max-height: 280px;
}
/* OK / Cancel row gains a touch more vertical room so the buttons do not look
   pinched against the option list when the popup is short. */
body.smp-logged-in-shell form[id$="-menu-filters"] .SumoSelect > .optWrapper.multiple > .MultiControls > p {
    padding: 8px 10px;
}

html[data-bs-theme="dark"] body.smp-logged-in-shell .select2-container--default .select2-selection--single,
html[data-bs-theme="dark"] body.smp-logged-in-shell .select2-container--default .select2-selection--multiple {
    border-color: var(--bs-border-color, #495057) !important;
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .select2-dropdown {
    border-color: var(--bs-border-color, #495057) !important;
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .select2-container--default .select2-search--dropdown .select2-search__field,
html[data-bs-theme="dark"] body.smp-logged-in-shell .select2-container--default .select2-search--dropdown .select2-search__field:focus,
html[data-bs-theme="dark"] body.smp-logged-in-shell .select2-container--default .select2-search--dropdown .select2-search__field:focus-visible {
    border-color: var(--bs-border-color, #495057) !important;
    outline: none !important;
    box-shadow: none !important;
}
html[data-bs-theme="dark"] body.smp-logged-in-shell .SumoSelect.open .search-txt,
html[data-bs-theme="dark"] body.smp-logged-in-shell .SumoSelect.open .search-txt:focus,
html[data-bs-theme="dark"] body.smp-logged-in-shell .SumoSelect.open .search-txt:focus-visible {
    border-color: var(--bs-border-color, #495057) !important;
    outline: none !important;
    box-shadow: none !important;
}

/*
 * Module menu filter toolbar (clear / folder / apply): same flat, light treatment as profile
 * card header controls (img.buttons). index.css defines the base tile; Bootstrap reboot loads
 * after index.css and can reapply native button chrome — reset here so rules always win.
 */
body.smp-logged-in-shell form[id$="-menu-filters"] .smp-profile-card-icon-btn {
    -webkit-appearance: none !important;
    appearance: none !important;
    box-shadow: none !important;
    background-image: none !important;
    text-shadow: none !important;
    font: inherit !important;
    border: 1px solid #d8d8d8 !important;
    border-radius: 0.25rem !important;
    background-color: #fff !important;
    color: inherit !important;
}
body.smp-logged-in-shell form[id$="-menu-filters"] .smp-profile-card-icon-btn:hover:not(.smp-filter-training-gap--on) {
    background-color: #f8f9fa !important;
    border-color: #c8c8c8 !important;
    box-shadow: none !important;
}
body.smp-logged-in-shell form[id$="-menu-filters"] .smp-filter-training-gap.smp-profile-card-icon-btn.smp-filter-training-gap--on {
    background-color: var(--bs-primary, #0d6efd) !important;
    border-color: var(--bs-primary, #0d6efd) !important;
    color: #fff !important;
}
body.smp-logged-in-shell form[id$="-menu-filters"] .smp-filter-training-gap.smp-profile-card-icon-btn.smp-filter-training-gap--on:hover {
    background-color: var(--bs-primary, #0d6efd) !important;
    border-color: var(--bs-primary, #0d6efd) !important;
    box-shadow: none !important;
}
body.smp-logged-in-shell form[id$="-menu-filters"] .smp-profile-card-icon-btn:focus-visible {
    outline: 2px solid var(--bs-primary, #0d6efd) !important;
    outline-offset: 2px !important;
}
body.smp-logged-in-shell form[id$="-menu-filters"] .smp-profile-card-icon-btn img,
body.smp-logged-in-shell form[id$="-menu-filters"] .smp-profile-card-icon-btn .smp-filter-submit-icon {
    width: 18px !important;
    height: 18px !important;
    max-width: 18px !important;
    max-height: 18px !important;
    object-fit: contain !important;
}
html[data-bs-theme="dark"] body.smp-logged-in-shell form[id$="-menu-filters"] .smp-profile-card-icon-btn {
    background-color: var(--bs-body-bg, #212529) !important;
    border-color: var(--bs-border-color, #495057) !important;
}
html[data-bs-theme="dark"] body.smp-logged-in-shell form[id$="-menu-filters"] .smp-profile-card-icon-btn:hover {
    background-color: rgba(255, 255, 255, 0.06) !important;
    border-color: var(--bs-border-color, #6c757d) !important;
}

/* ——— Quill (Email templates, Add Employee invite body) ———
   Keep toolbar + editor inside the parent card; readable in light and dark. */
/* Bootstrap row/col: stop flex children from overflowing the profile card */
.smp-email-quill-col {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}
.smp-email-quill-error-slot:empty {
    display: none;
}
.smp-email-quill-host {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    min-width: 0;
    display: flex;
    flex-direction: column;
    max-height: min(62vh, 36rem);
    overflow: hidden;
    border-radius: 0.375rem;
}
.smp-email-quill-host .ql-toolbar.ql-snow {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    flex: 0 0 auto;
    border-top-left-radius: 0.375rem;
    border-top-right-radius: 0.375rem;
}
.smp-email-quill-host .ql-container.ql-snow {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border-bottom-left-radius: 0.375rem;
    border-bottom-right-radius: 0.375rem;
}
.smp-email-quill-host .ql-editor {
    flex: 1 1 auto;
    min-height: 200px;
    max-height: min(52vh, 28rem);
    overflow-y: auto;
    overflow-x: hidden;
    box-sizing: border-box;
    color: #212529;
}
.smp-email-quill-host .ql-editor a {
    color: #0d6efd;
}

#smp-add-invite-editor-wrap .ql-toolbar.ql-snow {
    border-top-left-radius: 0.375rem;
    border-top-right-radius: 0.375rem;
}
#smp-add-invite-body-editor.ql-container.ql-snow {
    border-bottom-left-radius: 0.375rem;
    border-bottom-right-radius: 0.375rem;
}
#smp-add-invite-body-editor .ql-editor {
    min-height: 200px;
    max-height: min(45vh, 22rem);
    overflow-y: auto;
    overflow-x: hidden;
    color: #212529;
}
#smp-add-invite-body-editor .ql-editor a {
    color: #0d6efd;
}

html[data-bs-theme="dark"] .smp-email-quill-host .ql-toolbar.ql-snow {
    background-color: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] .smp-email-quill-host .ql-container.ql-snow {
    background-color: var(--bs-body-bg, #212529);
    border-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] .smp-email-quill-host .ql-editor {
    color: var(--bs-body-color, #dee2e6);
    background-color: var(--bs-body-bg, #212529);
}
html[data-bs-theme="dark"] .smp-email-quill-host .ql-editor.ql-blank::before {
    color: var(--bs-secondary-color, #adb5bd);
}
html[data-bs-theme="dark"] .smp-email-quill-host .ql-editor a {
    color: var(--bs-link-color, #6ea8fe);
}
html[data-bs-theme="dark"] .smp-email-quill-host .ql-stroke {
    stroke: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .smp-email-quill-host .ql-fill {
    fill: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .smp-email-quill-host .ql-picker {
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .smp-email-quill-host .ql-picker-options {
    background-color: var(--bs-body-bg, #212529);
    border-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] .smp-email-quill-host .ql-picker-item {
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] .smp-email-quill-host .ql-tooltip {
    background-color: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
}
html[data-bs-theme="dark"] .smp-email-quill-host .ql-tooltip input[type="text"] {
    background-color: var(--bs-body-bg, #212529);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
}

html[data-bs-theme="dark"] #smp-add-invite-editor-wrap .ql-toolbar.ql-snow {
    background-color: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] #smp-add-invite-body-editor.ql-container.ql-snow {
    background-color: var(--bs-body-bg, #212529);
    border-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] #smp-add-invite-body-editor .ql-editor {
    color: var(--bs-body-color, #dee2e6);
    background-color: var(--bs-body-bg, #212529);
}
html[data-bs-theme="dark"] #smp-add-invite-body-editor .ql-editor.ql-blank::before {
    color: var(--bs-secondary-color, #adb5bd);
}
html[data-bs-theme="dark"] #smp-add-invite-body-editor .ql-editor a {
    color: var(--bs-link-color, #6ea8fe);
}
html[data-bs-theme="dark"] #smp-add-invite-editor-wrap .ql-stroke {
    stroke: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] #smp-add-invite-editor-wrap .ql-fill {
    fill: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] #smp-add-invite-editor-wrap .ql-picker {
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] #smp-add-invite-editor-wrap .ql-picker-options {
    background-color: var(--bs-body-bg, #212529);
    border-color: var(--bs-border-color, #495057);
}
html[data-bs-theme="dark"] #smp-add-invite-editor-wrap .ql-picker-item {
    color: var(--bs-body-color, #dee2e6);
}
html[data-bs-theme="dark"] #smp-add-invite-editor-wrap .ql-tooltip {
    background-color: var(--bs-secondary-bg, #2b3035);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
}
html[data-bs-theme="dark"] #smp-add-invite-editor-wrap .ql-tooltip input[type="text"] {
    background-color: var(--bs-body-bg, #212529);
    border-color: var(--bs-border-color, #495057);
    color: var(--bs-body-color, #dee2e6);
}

/* Read-only HTML preview for email body (profile view) */
html[data-bs-theme="dark"] .smp-email-readonly-html {
    background-color: var(--bs-secondary-bg, #2b3035) !important;
    color: var(--bs-body-color, #dee2e6) !important;
    border-color: var(--bs-border-color, #495057) !important;
}
