footer.sticky-footer {
    padding: 2rem 0;
    flex-shrink: 0;
}

:root {
    color-scheme: light;
}

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

.theme-toggle [data-theme-icon] {
    width: 1.25rem;
    text-align: center;
}

/* Select2 does not consume Bootstrap color-mode variables by default. */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple,
.select2-dropdown,
.select2-container--default .select2-search--dropdown .select2-search__field {
    color: var(--bs-body-color);
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color);
}

.select2-container--default .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--multiple .select2-selection__choice__display,
.select2-container--default .select2-results__option--selected {
    color: var(--bs-body-color);
}

.select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: var(--bs-secondary-color);
}

.select2-container--default .select2-results__option--selected {
    background-color: var(--bs-secondary-bg);
}

.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    color: #fff;
    background-color: var(--bs-primary);
}

[data-bs-theme="dark"] .bg-white,
[data-bs-theme="dark"] .bg-light {
    background-color: var(--bs-tertiary-bg) !important;
}

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

[data-bs-theme="dark"] .table-light {
    --bs-table-color: var(--bs-body-color);
    --bs-table-bg: var(--bs-tertiary-bg);
    --bs-table-border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .shadow-sm-card,
[data-bs-theme="dark"] .card,
[data-bs-theme="dark"] .table-container {
    border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .table-container,
[data-bs-theme="dark"] .marketing-card,
[data-bs-theme="dark"] .support-triage-panel,
[data-bs-theme="dark"] .support-triage-panel .triage-meta-card,
[data-bs-theme="dark"] .support-ai-result,
[data-bs-theme="dark"] .staging-step {
    color: var(--bs-body-color);
    background: var(--bs-body-bg);
    border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .card-header.clean-header {
    border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .staging-page {
    background: var(--bs-tertiary-bg);
}

[data-bs-theme="dark"] .staging-step.is-completed {
    background: var(--bs-success-bg-subtle);
    border-color: var(--bs-success-border-subtle);
}

[data-bs-theme="dark"] .table-row-material td,
[data-bs-theme="dark"] .table.table-hover tbody tr.table-row-material:hover td,
[data-bs-theme="dark"] .quotation-builder-line-origin,
[data-bs-theme="dark"] .quotation-builder-lines-table tbody tr[data-key] {
    color: var(--bs-body-color);
    background: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .quotation-builder-lines-table tbody tr[data-key].table-warning {
    color: var(--bs-warning-text-emphasis);
    background: var(--bs-warning-bg-subtle);
    border-color: var(--bs-warning-border-subtle);
}

.dt-container .dt-input {
    color: var(--bs-body-color);
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color);
}

footer.sticky-footer .copyright {
    line-height: 1;
    font-size: 0.8rem;
}

html, body { overflow-x: hidden; }
body { padding-top: 56px; }

@media (max-width: 991.98px) {
    .offcanvas-collapse {
        position: fixed; top: 56px; bottom: 0; left: 100%;
        width: 100%; padding: 1rem;
        overflow-y: auto; visibility: hidden;
        background-color: #343a40;
        transition: transform .3s ease-in-out, visibility .3s ease-in-out;
    }
    .offcanvas-collapse.open {
        visibility: visible; transform: translateX(-100%);
    }
}

.nav-scroller .nav { color: rgba(255,255,255,.75); }
.nav-scroller .nav-link { padding: .75rem; font-size: .875rem; color: var(--bs-secondary-color); }
.nav-scroller .nav-link:hover { color: #007bff; }
.nav-scroller .active { font-weight: 500; color: var(--bs-body-color); }
.bg-purple { background-color: #6f42c1; }
