/* ============================================================
   LODS DEFAULT THEME — NAVY / SLATE
   Single source of truth: all theme colors are defined in :root.
   Load after Bootstrap and style_all.css.
   Color overrides only: layout, spacing, sizing and typography
   remain controlled by Bootstrap and style_all.css.
   ============================================================ */

:root {
    color-scheme: light;

    /* Bootstrap core palette */
    --bs-primary: #1F3A5F;
    --bs-primary-rgb: 31, 58, 95;
    --bs-primary-hover: #31577E;
    --bs-table-header-bg: var(--bs-primary);
    --bs-table-header-border-color: var(--bs-primary-hover);
    --bs-primary-bg-soft: rgba(var(--bs-primary-rgb), .08);
    --bs-primary-text-emphasis: #162D49;
    --bs-primary-bg-subtle: #EEF3F8;
    --bs-primary-border-subtle: #C6D3E1;

    --bs-secondary: #64748B;
    --bs-secondary-rgb: 100, 116, 139;
    --bs-success: #198754;
    --bs-success-rgb: 25, 135, 84;
    --bs-info: #0DCAF0;
    --bs-info-rgb: 13, 202, 240;
    --bs-warning: #FFC107;
    --bs-warning-rgb: 255, 193, 7;
    --bs-danger: #DC3545;
    --bs-danger-rgb: 220, 53, 69;
    --bs-light: #F8FAFC;
    --bs-light-rgb: 248, 250, 252;
    --bs-dark: #172B46;
    --bs-dark-rgb: 23, 43, 70;
    --bs-white: #FFFFFF;
    --bs-black: #000000;
    --bs-black-rgb: 0, 0, 0;

    /* Page surfaces and text */
    --bs-body-bg: #FFFFFF;
    --bs-body-color: #1E293B;
    --bs-emphasis-color: #0F172A;
    --bs-secondary-color: #64748B;
    --bs-secondary-bg: #F1F5F9;
    --bs-tertiary-color: #94A3B8;
    --bs-tertiary-bg: #F8FAFC;
    --bs-border-color: #E2E8F0;
    --bs-border-color-translucent: rgba(31, 58, 95, .14);
    --bs-link-color: var(--bs-primary);
    --bs-link-hover-color: var(--bs-primary-hover);
    --bs-focus-ring-color: rgba(31, 58, 95, .2);

    /* Semantic text, backgrounds and borders */
    --bs-secondary-text-emphasis: #334155;
    --bs-secondary-bg-subtle: #F1F5F9;
    --bs-secondary-border-subtle: #D8DEE7;
    --bs-success-text-emphasis: #0F5132;
    --bs-success-bg-subtle: #D1E7DD;
    --bs-success-border-subtle: #A3CFBB;
    --bs-info-text-emphasis: #055160;
    --bs-info-bg-subtle: #CFF4FC;
    --bs-info-border-subtle: #9EEAF9;
    --bs-warning-text-emphasis: #664D03;
    --bs-warning-bg-subtle: #FFF3CD;
    --bs-warning-border-subtle: #FFE69C;
    --bs-danger-text-emphasis: #842029;
    --bs-danger-bg-subtle: #F8D7DA;
    --bs-danger-border-subtle: #F1AEB5;
    --bs-light-text-emphasis: #334155;
    --bs-light-bg-subtle: #FCFCFD;
    --bs-light-border-subtle: #E2E8F0;
    --bs-dark-text-emphasis: #172B46;
    --bs-dark-bg-subtle: #E2E8F0;
    --bs-dark-border-subtle: #94A3B8;

    /* Tables */
    --bs-table-color: var(--bs-body-color);
    --bs-table-bg: transparent;
    --bs-table-striped-bg: rgba(31, 58, 95, .025);
    --bs-table-stripe-overlay: rgba(31, 58, 95, .025);
    --bs-table-hover-overlay: rgba(31, 58, 95, .06);
    --bs-table-active-overlay: rgba(31, 58, 95, .10);
    --bs-table-striped-color: var(--bs-body-color);
    --bs-table-hover-bg: rgba(31, 58, 95, .06);
    --bs-table-hover-color: var(--bs-emphasis-color);
    --bs-table-active-bg: rgba(31, 58, 95, .10);
    --bs-table-active-color: var(--bs-emphasis-color);
    --bs-table-border-color: var(--bs-border-color);

    /* Form controls */
    --bs-form-control-bg: #FFFFFF;
    --bs-form-control-disabled-bg: var(--bs-tertiary-bg);
    --bs-form-control-color: var(--bs-body-color);
    --bs-form-control-border-color: #CBD5E1;
    --bs-form-control-focus-bg: #FFFFFF;
    --bs-form-control-focus-border-color: var(--bs-primary-hover);

    /* Cards, modal, dropdown */
    --bs-card-bg: var(--bs-secondary-bg);
    --bs-card-color: var(--bs-body-color);
    --bs-card-border-color: var(--bs-border-color);
    --bs-modal-bg: var(--bs-secondary-bg);
    --bs-modal-color: var(--bs-body-color);
    --bs-modal-border-color: var(--bs-border-color);
    --bs-modal-header-border-color: var(--bs-border-color);
    --bs-modal-footer-border-color: var(--bs-border-color);
    --bs-dropdown-bg: var(--bs-secondary-bg);
    --bs-dropdown-color: var(--bs-body-color);
    --bs-dropdown-border-color: var(--bs-border-color);
    --bs-dropdown-link-color: var(--bs-body-color);
    --bs-dropdown-link-hover-color: var(--bs-emphasis-color);
    --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);
    --bs-dropdown-link-active-color: #FFFFFF;
    --bs-dropdown-link-active-bg: var(--bs-primary-bg-subtle);
    --bs-dropdown-divider-bg: var(--bs-border-color);

    /* Navigation, pagination, accordion, lists and overlays */
    --bs-navbar-color: rgba(255, 255, 255, .78);
    --bs-navbar-hover-color: var(--bs-emphasis-color);
    --bs-navbar-active-color: var(--bs-emphasis-color);
    --bs-navbar-brand-color: var(--bs-emphasis-color);
    --bs-navbar-brand-hover-color: var(--bs-emphasis-color);
    --bs-pagination-color: var(--bs-link-color);
    --bs-pagination-bg: var(--bs-secondary-bg);
    --bs-pagination-border-color: var(--bs-border-color);
    --bs-pagination-hover-color: var(--bs-emphasis-color);
    --bs-pagination-hover-bg: var(--bs-tertiary-bg);
    --bs-pagination-hover-border-color: var(--bs-form-control-border-color);
    --bs-pagination-active-color: #FFFFFF;
    --bs-pagination-active-bg: var(--bs-primary);
    --bs-pagination-active-border-color: var(--bs-primary);
    --bs-pagination-disabled-color: #94A3B8;
    --bs-pagination-disabled-bg: #F8FAFC;
    --bs-pagination-disabled-border-color: var(--bs-border-color);
    --bs-accordion-color: var(--bs-body-color);
    --bs-accordion-bg: var(--bs-secondary-bg);
    --bs-accordion-border-color: var(--bs-border-color);
    --bs-accordion-button-color: var(--bs-body-color);
    --bs-accordion-button-bg: var(--bs-secondary-bg);
    --bs-accordion-active-color: var(--bs-primary-text-emphasis);
    --bs-accordion-active-bg: var(--bs-primary-bg-subtle);
    --bs-list-group-color: var(--bs-body-color);
    --bs-list-group-bg: var(--bs-secondary-bg);
    --bs-list-group-border-color: var(--bs-border-color);
    --bs-list-group-hover-bg: var(--bs-tertiary-bg);
    --bs-list-group-action-hover-color: var(--bs-emphasis-color);
    --bs-list-group-action-active-bg: var(--bs-tertiary-bg);
    --bs-list-group-action-active-color: var(--bs-emphasis-color);
    --bs-popover-bg: var(--bs-secondary-bg);
    --bs-popover-border-color: var(--bs-border-color);
    --bs-popover-header-bg: var(--bs-tertiary-bg);
    --bs-popover-header-color: var(--bs-body-color);
    --bs-popover-body-color: var(--bs-body-color);
    --bs-tooltip-bg: var(--bs-dark);
    --bs-tooltip-color: var(--bs-emphasis-color);
    --bs-toast-bg: rgba(255, 255, 255, .98);
    --bs-toast-border-color: var(--bs-border-color);
    --bs-toast-header-bg: rgba(248, 250, 252, .95);
    --bs-toast-header-border-color: var(--bs-border-color);
}

/* Page, text and shared surfaces */
html, body {
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
}
body, .text-body { color: var(--bs-body-color); }
hr { border-color: var(--bs-border-color); }
a { color: var(--bs-link-color); }
a:hover, a:focus { color: var(--bs-link-hover-color); }

/* Bootstrap text utilities: preserve the meaning of each text-* class */
.text-primary { color: var(--bs-primary) !important; }
.text-secondary { color: var(--bs-secondary) !important; }
.text-success { color: var(--bs-success) !important; }
.text-info { color: var(--bs-info-text-emphasis) !important; }
.text-warning { color: var(--bs-warning-text-emphasis) !important; }
.text-danger { color: var(--bs-danger) !important; }
.text-light { color: var(--bs-light-text-emphasis) !important; }
.text-dark { color: var(--bs-dark) !important; }
.text-body { color: var(--bs-body-color) !important; }
.text-body-emphasis { color: var(--bs-emphasis-color) !important; }
.text-body-secondary, .text-muted, .form-text, small.text-muted {
    color: var(--bs-secondary-color) !important;
}
.text-white { color: var(--bs-white) !important; }

.bg-white, .bg-body, .bg-light,
.card, .modal-content, .dropdown-menu, .list-group-item,
.popover, .toast, .offcanvas, .accordion-item {
    background-color: var(--bs-secondary-bg) !important;
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
}
.bg-dark { background-color: var(--bs-dark) !important; }
.text-bg-dark {
    background-color: var(--bs-dark) !important;
    color: var(--bs-white) !important;
}
.border, .border-top, .border-end, .border-bottom, .border-start {
    border-color: var(--bs-border-color) !important;
}

/* Navbar, top navigation, account and notification menus */
.header-menu, .header-menu.navbar, .header-menu .navbar,
.navbar, .navbar-dark, .navbar[data-bs-theme="light"] {
    background-color: var(--bs-dark) !important;
    color: var(--bs-white) !important;
    border-color: var(--bs-border-color) !important;
    --bs-navbar-color: rgba(var(--bs-white-rgb), .92);
    --bs-navbar-hover-color: var(--bs-white);
    --bs-navbar-active-color: var(--bs-white);
    --bs-navbar-brand-color: var(--bs-white);
    --bs-navbar-brand-hover-color: var(--bs-white);
}
.navbar-light {
    --bs-navbar-color: rgba(var(--bs-white-rgb), .92);
    --bs-navbar-hover-color: var(--bs-white);
    --bs-navbar-active-color: var(--bs-white);
    --bs-navbar-brand-color: var(--bs-white);
    --bs-navbar-brand-hover-color: var(--bs-white);
}
.header-menu .navbar-nav .nav-link,
.header-menu .main-navbar-nav > .nav-item > .nav-link,
.header-menu .navbar-brand, .header-menu .navbar-text,
.header-menu .navbar-nav .dropdown-toggle,
.header-menu .nav-link i, .header-menu .navbar-brand i,
.header-menu .nav-icon-link, .header-menu #notif_dropdown > .nav-link,
.header-menu .nav-icon-link .fa, .header-menu .nav-icon-link i,
.header-menu #notif_dropdown .fa, .header-menu #notif_dropdown i,
.header-menu .navbar-nav .nav-link > .fa,
.header-menu .navbar-nav .nav-link > i,
.header-menu .navbar-nav .nav-link [class^="fa-"],
.header-menu .navbar-nav .nav-link [class*=" fa-"] {
    color: var(--bs-navbar-color);
    opacity: 1 !important;
}
.header-menu .navbar-nav .nav-link:hover,
.header-menu .navbar-nav .nav-link:focus,
.header-menu .navbar-nav .nav-link:focus-visible,
.header-menu .navbar-nav .nav-link.active,
.header-menu .navbar-nav .nav-link.nav-current,
.header-menu .navbar-nav .show > .nav-link,
.header-menu .navbar-brand:hover, .header-menu .navbar-brand:focus,
.header-menu .nav-icon-link:hover, .header-menu .nav-icon-link:focus,
.header-menu #notif_dropdown > .nav-link:hover,
.header-menu #notif_dropdown > .nav-link:focus {
    color: var(--bs-white);
}
.header-menu .main-navbar-nav > .nav-item > .nav-link:hover,
.header-menu .main-navbar-nav > .nav-item > .nav-link:focus-visible,
.header-menu .main-navbar-nav > .nav-item > .nav-link.active,
.header-menu .main-navbar-nav > .nav-item > .nav-link.nav-current,
.header-menu .main-navbar-nav > .nav-item.show > .nav-link {
    background-color: var(--bs-primary-bg-soft) !important;
}
.header-menu .main-navbar-nav > .nav-item > .nav-link.nav-current::before,
.header-menu .main-navbar-nav > .nav-item > .nav-link.active::before {
    background-color: var(--bs-primary) !important;
}
.header-menu .navbar-nav .dropdown-toggle::after {
    border-top-color: var(--bs-white) !important;
}
.header-menu .dropdown-menu, .header-menu .user-menu,
.header-menu .notification-menu, .header-menu .mega-menu {
    background-color: var(--bs-secondary-bg) !important;
    color: var(--bs-body-color) !important;
    border-color: var(--bs-border-color) !important;
    box-shadow: 0 12px 30px rgba(var(--bs-black-rgb), .28);
}
.dropdown-item, .header-menu .dropdown-item,
.header-menu .user-menu .dropdown-item,
.header-menu .mega-menu .mega-menu-item {
    color: var(--bs-dropdown-link-color) !important;
}
.dropdown-item:hover, .dropdown-item:focus,
.header-menu .dropdown-item:hover, .header-menu .dropdown-item:focus,
.header-menu .mega-menu .mega-menu-item:hover,
.header-menu .mega-menu .mega-menu-item:focus {
    color: var(--bs-dropdown-link-hover-color) !important;
    background-color: var(--bs-dropdown-link-hover-bg) !important;
}
.dropdown-item.active, .dropdown-item:active,
.header-menu .dropdown-item.active, .header-menu .dropdown-item:active,
.header-menu .mega-menu .mega-menu-item.active,
.header-menu .mega-menu .mega-menu-item[aria-current="page"],
.header-menu .mega-menu a.active, .header-menu .mega-menu a[aria-current="page"] {
    color: var(--bs-dropdown-link-active-color) !important;
    background: var(--bs-dropdown-link-active-bg) !important;
    background-image: none !important;
    border-color: var(--bs-primary-bg-subtle) !important;
}
.header-menu .mega-menu-title, .header-menu .mega-menu .mega-menu-title,
.header-menu .mega-menu-heading, .header-menu .dropdown-header {
    color: var(--bs-primary-text-emphasis) !important;
}
.header-menu .mega-menu .mega-menu-item i,
.header-menu .mega-menu .mega-menu-item .fa { color: var(--bs-primary-hover) !important; }
.header-menu .header-search-inline, .header-menu .header-action-button,
.header-menu .user-account-toggle {
    background-color: var(--bs-form-control-bg) !important;
    color: var(--bs-body-color) !important;
    border-color: var(--bs-form-control-border-color) !important;
}
.header-menu .header-search-inline input {
    background-color: transparent !important;
    color: var(--bs-body-color) !important;
}
.header-menu .header-search-inline input::placeholder { color: var(--bs-secondary-color) !important; }
.header-menu .header-search-inline > i, .header-menu .header-action-button i,
.header-menu .user-account-toggle i { color: var(--bs-primary-text-emphasis) !important; }

/* Keep notification and profile controls readable on their light backgrounds */
.header-menu #notif_dropdown > .nav-link,
.header-menu #notif_dropdown > .nav-link i,
.header-menu #notif_dropdown > .nav-link .fa,
.header-menu #notif_dropdown > .header-action-button,
.header-menu #notif_dropdown > .header-action-button i,
.header-menu .user-account-toggle,
.header-menu .user-account-toggle *,
.header-menu .user-account-toggle::after {
    color: var(--bs-primary-text-emphasis) !important;
    opacity: 1 !important;
}
.header-menu #notif_dropdown > .nav-link,
.header-menu #notif_dropdown > .header-action-button,
.header-menu .user-account-toggle {
    background-color: var(--bs-form-control-bg) !important;
}
.header-menu .header-action-button:hover, .header-menu .header-action-button:focus-visible,
.header-menu .user-account-toggle:hover, .header-menu .user-account-toggle:focus-visible {
    background-color: var(--bs-tertiary-bg) !important;
    border-color: var(--bs-primary) !important;
}
.header-menu #notif_badge {
    background-color: var(--bs-danger) !important;
    color: var(--bs-white) !important;
    border-color: var(--bs-dark) !important;
}
.header-menu .mega-menu-item-highlight { background-color: var(--bs-form-control-bg); }

/* Cards, modal headings and flat card headers */
.card, .modal-content {
    --bs-card-bg: var(--bs-secondary-bg);
    --bs-card-color: var(--bs-body-color);
    --bs-card-border-color: var(--bs-border-color);
}
.card-header, .card-footer, .modal-header, .modal-footer,
.accordion-header, .table-title, .table-title-secondary {
    background-color: var(--bs-tertiary-bg) !important;
    color: var(--bs-body-color) !important;
    border-color: var(--bs-border-color) !important;
}
/* Neutral card headers by default; preserve explicit Bootstrap color utilities. */
.card > .card-header:not(.bg-primary):not(.bg-secondary):not(.bg-success):not(.bg-info):not(.bg-warning):not(.bg-danger):not(.bg-light):not(.bg-dark):not(.text-bg-primary):not(.text-bg-secondary):not(.text-bg-success):not(.text-bg-info):not(.text-bg-warning):not(.text-bg-danger):not(.text-bg-light):not(.text-bg-dark) {
    background-color: var(--bs-tertiary-bg) !important;
    background-image: none !important;
    color: var(--bs-body-color) !important;
    border-color: var(--bs-border-color) !important;
    box-shadow: none !important;
}

/* Explicit primary card headers must remain navy with white content. */
.card > .card-header.bg-primary,
.card > .card-header.text-bg-primary {
    background-color: var(--bs-primary) !important;
    background-image: none !important;
    color: var(--bs-white) !important;
    border-color: var(--bs-primary-hover) !important;
    box-shadow: none !important;
}
.card > .card-header.bg-primary *,
.card > .card-header.text-bg-primary * {
    color: var(--bs-white) !important;
}
.card > .card-header.bg-primary a:hover,
.card > .card-header.bg-primary a:focus,
.card > .card-header.text-bg-primary a:hover,
.card > .card-header.text-bg-primary a:focus {
    color: var(--bs-white) !important;
}

/* Icons in neutral card headers use the primary emphasis color. */
.card > .card-header:not(.bg-primary):not(.text-bg-primary) > i,
.card > .card-header:not(.bg-primary):not(.text-bg-primary) > .fa,
.card > .card-header:not(.bg-primary):not(.text-bg-primary) > [class^="fa-"],
.card > .card-header:not(.bg-primary):not(.text-bg-primary) > [class*=" fa-"] {
    color: var(--bs-primary-text-emphasis) !important;
}
.card-title, .modal-title, h1, h2, h3, h4, h5, h6 {
    color: var(--bs-body-color);
}
.card-title, .modal-title, h1, h2, h3, h4, h5, h6 {
    color: var(--bs-body-color);
}

/* Tables */
.table {
    --bs-table-color: var(--bs-body-color);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--bs-border-color);
    --bs-table-striped-bg: var(--bs-table-stripe-overlay);
    --bs-table-striped-color: var(--bs-body-color);
    --bs-table-hover-color: var(--bs-emphasis-color);
    --bs-table-hover-bg: var(--bs-table-hover-overlay);
    --bs-table-active-bg: var(--bs-table-active-overlay);
    --bs-table-active-color: var(--bs-emphasis-color);
    color: var(--bs-table-color);
    border-color: var(--bs-table-border-color);
}
.table > :not(caption) > * > * {
    color: var(--bs-table-color);
    background-color: transparent;
    border-bottom-color: var(--bs-table-border-color);
}
/* Table header uses the existing LODS primary color */
.table thead th,
.table thead td {
    --bs-table-color: var(--bs-white);
    --bs-table-bg: var(--bs-table-header-bg);
    --bs-table-border-color: var(--bs-table-header-border-color);
    color: var(--bs-table-color) !important;
    background-color: var(--bs-table-bg) !important;
    border-color: var(--bs-table-border-color);
}

/* Keep light table headers light */
.table-light,
.table-light > :not(caption) > * > * {
    --bs-table-color: var(--bs-emphasis-color);
    --bs-table-bg: var(--bs-tertiary-bg);
    --bs-table-border-color: var(--bs-border-color);
    color: var(--bs-table-color);
    background-color: var(--bs-table-bg);
}

.table thead.table-light th,
.table thead.table-light td,
.table-light thead th,
.table-light thead td {
    --bs-table-color: var(--bs-emphasis-color);
    --bs-table-bg: var(--bs-tertiary-bg);
    --bs-table-border-color: var(--bs-border-color);
    color: var(--bs-table-color) !important;
    background-color: var(--bs-table-bg) !important;
    border-color: var(--bs-table-border-color);
}

/* Forms and controls */
.form-control, .form-select, .input-group-text, textarea, select,
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]) {
    background-color: var(--bs-form-control-bg);
    color: var(--bs-form-control-color);
    border-color: var(--bs-form-control-border-color);
}
.form-control:focus, .form-select:focus, textarea:focus, select:focus,
input:focus {
    background-color: var(--bs-form-control-focus-bg);
    color: var(--bs-emphasis-color);
    border-color: var(--bs-form-control-focus-border-color);
    box-shadow: 0 0 0 .25rem var(--bs-focus-ring-color);
}
.form-control::placeholder, textarea::placeholder, input::placeholder {
    color: var(--bs-secondary-color);
}
.form-control:disabled, .form-control[readonly], .form-select:disabled {
    background-color: var(--bs-form-control-disabled-bg);
    color: var(--bs-secondary-color);
}
.form-check-input {
    background-color: var(--bs-form-control-bg);
    border-color: var(--bs-form-control-border-color);
}
.form-check-input:checked {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}
.input-group-text { color: var(--bs-body-color); }

/* Buttons: preserve distinct Bootstrap semantic colors and interactive states. */
.btn {
    font-family: inherit;
    font-weight: 500;
    transition: color .15s ease-in-out, background-color .15s ease-in-out,
        border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

.btn-primary {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-primary-hover);
    --bs-btn-hover-border-color: var(--bs-primary-hover);
    --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--bs-primary-text-emphasis);
    --bs-btn-active-border-color: var(--bs-primary-text-emphasis);
    --bs-btn-disabled-color: var(--bs-white);
    --bs-btn-disabled-bg: var(--bs-primary);
    --bs-btn-disabled-border-color: var(--bs-primary);
}
.btn-secondary {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: #6C757D;
    --bs-btn-border-color: #6C757D;
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: #5C636A;
    --bs-btn-hover-border-color: #565E64;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: #565E64;
    --bs-btn-active-border-color: #51585E;
}
.btn-success {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: #198754;
    --bs-btn-border-color: #198754;
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: #157347;
    --bs-btn-hover-border-color: #146C43;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: #146C43;
    --bs-btn-active-border-color: #13653F;
}
.btn-danger {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: #DC3545;
    --bs-btn-border-color: #DC3545;
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: #BB2D3B;
    --bs-btn-hover-border-color: #B02A37;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: #B02A37;
    --bs-btn-active-border-color: #A52834;
}
.btn-warning {
    --bs-btn-color: #212529;
    --bs-btn-bg: #FFC107;
    --bs-btn-border-color: #FFC107;
    --bs-btn-hover-color: #212529;
    --bs-btn-hover-bg: #FFCA2C;
    --bs-btn-hover-border-color: #FFC720;
    --bs-btn-active-color: #212529;
    --bs-btn-active-bg: #FFCD39;
    --bs-btn-active-border-color: #FFC720;
}
.btn-info {
    --bs-btn-color: #212529;
    --bs-btn-bg: #0DCAF0;
    --bs-btn-border-color: #0DCAF0;
    --bs-btn-hover-color: #212529;
    --bs-btn-hover-bg: #31D2F2;
    --bs-btn-hover-border-color: #25CFF2;
    --bs-btn-active-color: #212529;
    --bs-btn-active-bg: #3DD5F3;
    --bs-btn-active-border-color: #25CFF2;
}
.btn-light {
    --bs-btn-color: #212529;
    --bs-btn-bg: #F8F9FA;
    --bs-btn-border-color: #F8F9FA;
    --bs-btn-hover-color: #212529;
    --bs-btn-hover-bg: #E2E6EA;
    --bs-btn-hover-border-color: #DADEE2;
    --bs-btn-active-color: #212529;
    --bs-btn-active-bg: #DADEE2;
    --bs-btn-active-border-color: #D3D9DF;
}
.btn-dark {
    --bs-btn-color: var(--bs-white);
    --bs-btn-bg: #212529;
    --bs-btn-border-color: #212529;
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: #424649;
    --bs-btn-hover-border-color: #373B3E;
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: #4D5154;
    --bs-btn-active-border-color: #373B3E;
}

/* Outline buttons keep their semantic color instead of becoming neutral gray. */
.btn-outline-primary {
    --bs-btn-color: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--bs-primary);
    --bs-btn-hover-border-color: var(--bs-primary);
    --bs-btn-active-color: var(--bs-white);
    --bs-btn-active-bg: var(--bs-primary-hover);
    --bs-btn-active-border-color: var(--bs-primary-hover);
}
.btn-outline-secondary {
    --bs-btn-color: #6C757D;
    --bs-btn-border-color: #6C757D;
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: #6C757D;
    --bs-btn-hover-border-color: #6C757D;
}
.btn-outline-success {
    --bs-btn-color: #198754;
    --bs-btn-border-color: #198754;
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: #198754;
    --bs-btn-hover-border-color: #198754;
}
.btn-outline-danger {
    --bs-btn-color: #DC3545;
    --bs-btn-border-color: #DC3545;
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: #DC3545;
    --bs-btn-hover-border-color: #DC3545;
}
.btn-outline-warning {
    --bs-btn-color: #997404;
    --bs-btn-border-color: #FFC107;
    --bs-btn-hover-color: #212529;
    --bs-btn-hover-bg: #FFC107;
    --bs-btn-hover-border-color: #FFC107;
}
.btn-outline-info {
    --bs-btn-color: #087990;
    --bs-btn-border-color: #0DCAF0;
    --bs-btn-hover-color: #212529;
    --bs-btn-hover-bg: #0DCAF0;
    --bs-btn-hover-border-color: #0DCAF0;
}
.btn-outline-light {
    --bs-btn-color: #F8F9FA;
    --bs-btn-border-color: #F8F9FA;
    --bs-btn-hover-color: #212529;
    --bs-btn-hover-bg: #F8F9FA;
    --bs-btn-hover-border-color: #F8F9FA;
}
.btn-outline-dark {
    --bs-btn-color: #212529;
    --bs-btn-border-color: #212529;
    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: #212529;
    --bs-btn-hover-border-color: #212529;
}

/* Bootstrap semantic background, text and border utilities.
   Keep success/info/warning/danger visually distinct. */
.bg-primary, .badge.bg-primary, .text-bg-primary {
    background-color: var(--bs-primary) !important;
    color: var(--bs-white) !important;
}
.bg-secondary, .badge.bg-secondary, .text-bg-secondary {
    background-color: var(--bs-tertiary-bg) !important;
    color: var(--bs-body-color) !important;
}
.bg-success, .badge.bg-success, .text-bg-success {
    background-color: var(--bs-success-bg-subtle) !important;
    color: var(--bs-success-text-emphasis) !important;
}
.bg-info, .badge.bg-info, .text-bg-info {
    background-color: var(--bs-info-bg-subtle) !important;
    color: var(--bs-info-text-emphasis) !important;
}
.bg-warning, .badge.bg-warning, .text-bg-warning {
    background-color: var(--bs-warning-bg-subtle) !important;
    color: var(--bs-warning-text-emphasis) !important;
}
.bg-danger, .badge.bg-danger, .text-bg-danger {
    background-color: var(--bs-danger-bg-subtle) !important;
    color: var(--bs-danger-text-emphasis) !important;
}
.bg-light, .text-bg-light {
    background-color: var(--bs-tertiary-bg) !important;
    color: var(--bs-body-color) !important;
}
.text-secondary { color: var(--bs-secondary-color) !important; }
.text-success { color: var(--bs-success-text-emphasis) !important; }
.text-info { color: var(--bs-info-text-emphasis) !important; }
.text-warning { color: var(--bs-warning-text-emphasis) !important; }
.text-danger { color: var(--bs-danger-text-emphasis) !important; }
.border-primary { border-color: var(--bs-primary) !important; }
.border-secondary { border-color: var(--bs-secondary-border-subtle) !important; }
.border-success { border-color: var(--bs-success-border-subtle) !important; }
.border-info { border-color: var(--bs-info-border-subtle) !important; }
.border-warning { border-color: var(--bs-warning-border-subtle) !important; }
.border-danger { border-color: var(--bs-danger-border-subtle) !important; }

/* Alerts retain meaningful semantic colors */
.alert-primary {
    background-color: var(--bs-primary-bg-subtle) !important;
    border-color: var(--bs-primary-border-subtle) !important;
    color: var(--bs-primary-text-emphasis) !important;
}
.alert-success {
    background-color: var(--bs-success-bg-subtle) !important;
    border-color: var(--bs-success-border-subtle) !important;
    color: var(--bs-success-text-emphasis) !important;
}
.alert-info {
    background-color: var(--bs-info-bg-subtle) !important;
    border-color: var(--bs-info-border-subtle) !important;
    color: var(--bs-info-text-emphasis) !important;
}
.alert-warning {
    background-color: var(--bs-warning-bg-subtle) !important;
    border-color: var(--bs-warning-border-subtle) !important;
    color: var(--bs-warning-text-emphasis) !important;
}
.alert-danger {
    background-color: var(--bs-danger-bg-subtle) !important;
    border-color: var(--bs-danger-border-subtle) !important;
    color: var(--bs-danger-text-emphasis) !important;
}
.alert-secondary, .alert-light, .alert-dark {
    background-color: var(--bs-tertiary-bg) !important;
    border-color: var(--bs-border-color) !important;
    color: var(--bs-body-color) !important;
}
.alert-link, .alert a { color: var(--bs-link-color) !important; }
.alert-heading { color: var(--bs-emphasis-color) !important; }

/* Pagination and DataTables */
.pagination .page-link, .lods-pagination .page-link {
    color: var(--bs-pagination-color) !important;
    background-color: var(--bs-pagination-bg) !important;
    border-color: var(--bs-pagination-border-color) !important;
    text-decoration: none;
}
.pagination .page-link:hover, .pagination .page-link:focus,
.lods-pagination .page-link:hover, .lods-pagination .page-link:focus {
    color: var(--bs-pagination-hover-color) !important;
    background-color: var(--bs-pagination-hover-bg) !important;
    border-color: var(--bs-pagination-hover-border-color) !important;
}
.pagination .page-item.active .page-link, .lods-pagination .page-item.active .page-link {
    color: var(--bs-pagination-active-color) !important;
    background-color: var(--bs-pagination-active-bg) !important;
    border-color: var(--bs-pagination-active-border-color) !important;
}
.pagination .page-item.disabled .page-link, .lods-pagination .page-item.disabled .page-link {
    color: var(--bs-pagination-disabled-color) !important;
    background-color: var(--bs-pagination-disabled-bg) !important;
    border-color: var(--bs-pagination-disabled-border-color) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button,
.dt-container .dt-paging .dt-paging-button {
    color: var(--bs-pagination-color) !important;
    background: var(--bs-pagination-bg) !important;
    border: 1px solid var(--bs-pagination-border-color) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover,
.dt-container .dt-paging .dt-paging-button:hover {
    color: var(--bs-pagination-hover-color) !important;
    background: var(--bs-pagination-hover-bg) !important;
    border-color: var(--bs-pagination-hover-border-color) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover,
.dt-container .dt-paging .dt-paging-button.current,
.dt-container .dt-paging .dt-paging-button.current:hover {
    color: var(--bs-pagination-active-color) !important;
    background: var(--bs-pagination-active-bg) !important;
    border-color: var(--bs-pagination-active-border-color) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,
.dt-container .dt-paging .dt-paging-button.disabled,
.dt-container .dt-paging .dt-paging-button.disabled:hover {
    color: var(--bs-pagination-disabled-color) !important;
    background: var(--bs-pagination-disabled-bg) !important;
    border-color: var(--bs-pagination-disabled-border-color) !important;
    cursor: default;
}
.dataTables_wrapper, .dataTables_info, .dataTables_length, .dataTables_filter,
.dataTables_paginate, .dataTables_processing, .dt-container, .dt-info,
.dt-length, .dt-search, .dt-paging { color: var(--bs-secondary-color); }
.dataTables_wrapper input, .dataTables_wrapper select,
.dt-container input, .dt-container select {
    background-color: var(--bs-form-control-bg);
    color: var(--bs-body-color);
    border-color: var(--bs-form-control-border-color);
}
.container-fluid > .d-flex.justify-content-between.align-items-center.flex-wrap.gap-2.my-3 .pagination {
    margin-bottom: 0 !important;
}

/* Select2 default and classic themes */
.select2-container { color: var(--bs-body-color); }
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple,
.select2-container--default .select2-dropdown {
    background-color: var(--bs-form-control-bg) !important;
    border: 1px solid var(--bs-form-control-border-color) !important;
    color: var(--bs-body-color) !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--multiple .select2-selection__rendered,
.select2-container--default .select2-results__option,
.select2-container--default .select2-results__group {
    color: var(--bs-body-color) !important;
}
.select2-container--default .select2-selection--single .select2-selection__placeholder,
.select2-container--default .select2-selection--multiple .select2-selection__placeholder,
.select2-container--default .select2-search--dropdown .select2-search__field::placeholder {
    color: var(--bs-secondary-color) !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
    border-color: var(--bs-secondary-color) transparent transparent transparent;
}
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
    border-color: transparent transparent var(--bs-secondary-color) transparent;
}
.select2-container--default .select2-results__option[aria-selected="true"] {
    background-color: var(--bs-tertiary-bg) !important;
    color: var(--bs-emphasis-color) !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: var(--bs-primary-bg-subtle) !important;
    color: var(--bs-emphasis-color) !important;
}
.select2-container--default .select2-results__option[aria-disabled="true"] {
    color: var(--bs-secondary-color) !important;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
    background-color: var(--bs-form-control-bg) !important;
    color: var(--bs-body-color) !important;
    border: 1px solid var(--bs-form-control-border-color) !important;
    outline: none;
}
.select2-container--default .select2-search--inline .select2-search__field {
    color: var(--bs-body-color) !important;
    background: transparent !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: var(--bs-tertiary-bg) !important;
    border: 1px solid var(--bs-border-color) !important;
    color: var(--bs-body-color) !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: var(--bs-link-color) !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
    color: var(--bs-link-hover-color) !important;
}
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--multiple {
    border-color: var(--bs-primary-hover) !important;
    box-shadow: 0 0 0 .2rem var(--bs-focus-ring-color);
}
.select2-container--default.select2-container--disabled .select2-selection--single,
.select2-container--default.select2-container--disabled .select2-selection--multiple {
    background-color: var(--bs-tertiary-bg) !important;
    color: var(--bs-secondary-color) !important;
}
.select2-container--default.select2-container--disabled .select2-selection__rendered {
    color: var(--bs-secondary-color) !important;
}
.select2-container--classic .select2-selection--single,
.select2-container--classic .select2-selection--multiple,
.select2-container--classic .select2-dropdown {
    background: var(--bs-form-control-bg) !important;
    background-image: none !important;
    color: var(--bs-body-color) !important;
    border-color: var(--bs-form-control-border-color) !important;
}
.select2-container--classic .select2-selection--single .select2-selection__rendered,
.select2-container--classic .select2-results__option,
.select2-container--classic .select2-results__group { color: var(--bs-body-color) !important; }
.select2-container--classic .select2-results__option--highlighted[aria-selected] {
    background: var(--bs-primary-bg-subtle) !important;
    color: var(--bs-emphasis-color) !important;
}
.select2-container--classic .select2-search--dropdown .select2-search__field {
    background: var(--bs-form-control-bg) !important;
    color: var(--bs-body-color) !important;
    border-color: var(--bs-form-control-border-color) !important;
}
.select2-container--classic .select2-selection--multiple .select2-selection__choice {
    background: var(--bs-tertiary-bg) !important;
    color: var(--bs-body-color) !important;
    border-color: var(--bs-border-color) !important;
}


/* Notification list status icons: keep semantic icons visible on the light notification panel */
.notification-menu .notification-icon {
    color: var(--bs-primary) !important;
    background-color: var(--bs-tertiary-bg);
}
.notification-menu .notification-icon .fa-circle-check,
.notification-menu .notification-icon .fa-check-circle {
    color: var(--bs-success) !important;
}
.notification-menu .notification-icon .fa-circle-xmark,
.notification-menu .notification-icon .fa-times-circle,
.notification-menu .notification-icon .fa-circle-exclamation {
    color: var(--bs-danger) !important;
}
.notification-menu .notification-icon .fa-triangle-exclamation,
.notification-menu .notification-icon .fa-exclamation-triangle {
    color: var(--bs-warning-text-emphasis) !important;
}
.notification-menu .notification-icon .fa-circle-info,
.notification-menu .notification-icon .fa-info-circle {
    color: var(--bs-info-text-emphasis) !important;
}
.notification-menu .notification-icon i {
    opacity: 1 !important;
}

/* Notifications, accordion, list groups, progress and scrollbar */
.notification-menu, .notification-menu .notification-content,
.notification-menu .notification-title, .notification-menu .notification-message,
.notification-menu .notification-time { color: var(--bs-body-color); }
.notification-menu .notification-item, .notification-menu .notification-footer {
    background-color: var(--bs-secondary-bg);
    border-color: var(--bs-border-color);
}
.notification-menu .notification-item:hover { background-color: var(--bs-tertiary-bg); }
.notification-menu .notification-time { color: var(--bs-secondary-color); }
.accordion-button:not(.collapsed) {
    color: var(--bs-accordion-active-color);
    background-color: var(--bs-accordion-active-bg);
}
.list-group-item-action:hover, .list-group-item-action:focus,
.dropdown-item:hover, .dropdown-item:focus, .nav-link:hover, .nav-link:focus {
    background-color: var(--bs-primary-bg-soft);
}
.progress { background-color: var(--bs-border-color); }
*::-webkit-scrollbar-track { background: var(--bs-body-bg); }
*::-webkit-scrollbar-thumb { background: var(--bs-form-control-border-color); }
*::-webkit-scrollbar-thumb:hover { background: var(--bs-secondary); }

/* Native controls follow the dark theme without changing dimensions */

