/* SMMCC color system. Loaded after Bootstrap, the admin theme and page plugins. */
:root {
    color-scheme: light;
    --smmcc-primary: #F59A1B;
    --smmcc-primary-light: #F9B51B;
    --smmcc-secondary: #1595CB;
    --smmcc-success: #8EAF3F;
    --smmcc-heading: #171717;
    --smmcc-text: #374151;
    --smmcc-muted: #6B7280;
    --smmcc-background: #F8FAFC;
    --smmcc-surface: #FFFFFF;
    --smmcc-border: #E5E7EB;
    --smmcc-gradient: linear-gradient(135deg, var(--smmcc-primary-light) 0%, var(--smmcc-primary) 100%);

    /* Dark derivatives keep small text, controls and keyboard focus readable. */
    --smmcc-primary-ink: #9A4B00;
    --smmcc-primary-hover: #DB840D;
    --smmcc-primary-soft: #FFF3E0;
    --smmcc-primary-subtle: #FFFAF2;
    --smmcc-secondary-ink: #0D739D;
    --smmcc-secondary-hover: #095A7B;
    --smmcc-secondary-soft: #E8F5FC;
    --smmcc-success-ink: #5A701F;
    --smmcc-success-hover: #7D9B32;
    --smmcc-success-soft: #F0F5E5;
    --smmcc-warning-ink: #775000;
    --smmcc-warning-soft: #FFF8DF;
    --smmcc-danger: #B42318;
    --smmcc-danger-hover: #941C13;
    --smmcc-danger-soft: #FEF0EE;
    --smmcc-control-border: #858D98;
    --smmcc-disabled: #F1F3F5;
    --smmcc-focus: rgba(245, 154, 27, .22);
    --smmcc-shadow: 0 4px 18px rgba(23, 23, 23, .05);
    --smmcc-shadow-hover: 0 8px 24px rgba(23, 23, 23, .09);
    --smmcc-overlay: rgba(23, 23, 23, .42);
    --smmcc-shadow-color: rgba(23, 23, 23, .08);
    --smmcc-pulse: rgba(245, 154, 27, .2);
    --smmcc-success-glow: rgba(142, 175, 63, .35);
    --smmcc-danger-glow: rgba(180, 35, 24, .25);
    --smmcc-radius: .75rem;
    --smmcc-control-radius: .5rem;
    --smmcc-check-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23171717' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m5 10 3 3 7-7'/%3E%3C/svg%3E");
    --smmcc-radio-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='2' fill='%23171717'/%3E%3C/svg%3E");
    --smmcc-switch-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23171717'/%3E%3C/svg%3E");
    --smmcc-chart-1: var(--smmcc-primary);
    --smmcc-chart-2: var(--smmcc-secondary);
    --smmcc-chart-3: var(--smmcc-success);
    --smmcc-chart-4: var(--smmcc-primary-light);
    --smmcc-chart-5: var(--smmcc-heading);

    --bs-primary: var(--smmcc-primary);
    --bs-secondary: var(--smmcc-secondary-ink);
    --bs-success: var(--smmcc-success);
    --bs-info: var(--smmcc-secondary);
    --bs-warning: var(--smmcc-primary-light);
    --bs-danger: var(--smmcc-danger);
    --bs-body-bg: var(--smmcc-background);
    --bs-body-color: var(--smmcc-text);
    --bs-border-color: var(--smmcc-border);
}

body { background: var(--smmcc-background); color: var(--smmcc-text); }
h1, h2, h3, h4, h5, h6, .card-title, .page-title { color: var(--smmcc-heading); }
a { color: var(--smmcc-primary-ink); }
a:hover { color: var(--smmcc-heading); }
a:not(.btn):focus-visible, button:focus-visible, [tabindex="0"]:focus-visible {
    outline: 2px solid var(--smmcc-primary-ink);
    outline-offset: 3px;
}
::selection { background: var(--smmcc-primary-light); color: var(--smmcc-heading); }

/* White navigation keeps the original sidebar collapse/accordion behavior. */
.sidebar-wrapper { background: var(--smmcc-surface); border-right: 1px solid var(--smmcc-border); }
.sidebar-wrapper .menu .sidebar-title { color: var(--smmcc-muted); }
.sidebar-wrapper .menu .sidebar-link,
.sidebar-wrapper .menu .submenu .submenu-item a {
    color: var(--smmcc-heading);
    transition: background-color .16s ease, color .16s ease, box-shadow .16s ease;
}
.sidebar-wrapper .menu .sidebar-link i,
.sidebar-wrapper .menu .sidebar-link svg { color: inherit; }
.sidebar-wrapper .menu .submenu i { color: inherit; }
.sidebar-wrapper .menu a:focus-visible { outline: 2px solid var(--smmcc-primary-ink); outline-offset: 2px; }
.sidebar-wrapper .menu .sidebar-item.has-sub > .sidebar-link::after { background-image: none; }
.sidebar-wrapper .menu .sidebar-item > .sidebar-link:hover,
.sidebar-wrapper .menu .submenu .submenu-item a:hover { background: var(--smmcc-primary-soft); color: var(--smmcc-primary-ink); }
.sidebar-wrapper .menu .sidebar-item.active > .sidebar-link {
    background: var(--smmcc-primary);
    color: var(--smmcc-heading);
    box-shadow: inset 3px 0 var(--smmcc-primary-ink);
}
.sidebar-wrapper .menu .submenu .submenu-item.active > a {
    color: var(--smmcc-primary-ink);
    background: var(--smmcc-primary-soft);
    box-shadow: inset 3px 0 var(--smmcc-primary);
    font-weight: 700;
}
.sidebar-wrapper .menu .sidebar-item.has-sub .sidebar-link::after,
.sidebar-wrapper .menu .sidebar-item.has-sub.active .sidebar-link::after,
.sidebar-wrapper .menu .sidebar-item.has-sub:has(.submenu.active) .sidebar-link::after { color: inherit; }
.sidebar-wrapper .sidebar-header .toggler a { color: var(--smmcc-heading); }
.layout-navbar > header { background: var(--smmcc-surface); border-bottom: 1px solid var(--smmcc-border); }
.layout-navbar .navbar { background: var(--smmcc-surface); }
.navbar .burger-btn, .navbar .navbar-toggler, .navbar .nav-link { color: var(--smmcc-heading); }
.navbar .burger-btn:hover, .navbar .nav-link:hover { color: var(--smmcc-primary-ink); }
.navbar .nav-link .fa-bell { color: var(--smmcc-heading); background: var(--smmcc-primary-subtle); }
.navbar .nav-link .fa-bell:hover { color: var(--smmcc-primary-ink); background: var(--smmcc-primary-soft); }
#notify-count { background: var(--smmcc-primary) !important; color: var(--smmcc-heading) !important; }
.dropdown-menu { color: var(--smmcc-text); background: var(--smmcc-surface); border-color: var(--smmcc-border); box-shadow: var(--smmcc-shadow); }
.dropdown-item { color: var(--smmcc-text); }
.dropdown-item:hover, .dropdown-item:focus { color: var(--smmcc-primary-ink); background: var(--smmcc-primary-soft); }
.dropdown-item.active, .dropdown-item:active { color: var(--smmcc-heading); background: var(--smmcc-primary); }
.dropdown-header, .breadcrumb-item.active { color: var(--smmcc-muted); }
.table a:not(.btn), .page-content p a:not(.btn), #auth p a { text-decoration: underline; text-underline-offset: .15em; }
.navbar .user-name h6.text-gray-600 { color: var(--smmcc-heading) !important; }

/* Base button semantics; old Bootstrap beta uses literal colors rather than variables. */
.btn {
    --button-bg: var(--smmcc-surface);
    --button-fg: var(--smmcc-text);
    --button-border: var(--smmcc-control-border);
    --button-hover: var(--smmcc-disabled);
    --button-hover-fg: var(--button-fg);
    border-radius: var(--smmcc-control-radius);
    padding: .55rem 1rem;
    font-weight: 600;
    line-height: 1.5;
    transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.btn-primary { --button-bg: var(--smmcc-primary); --button-fg: var(--smmcc-heading); --button-border: var(--smmcc-primary-ink); --button-hover: var(--smmcc-primary-hover); }
.btn-secondary, .btn-info { --button-bg: var(--smmcc-secondary-ink); --button-fg: var(--smmcc-surface); --button-border: var(--smmcc-secondary-ink); --button-hover: var(--smmcc-secondary-hover); }
.btn-success { --button-bg: var(--smmcc-success); --button-fg: var(--smmcc-heading); --button-border: var(--smmcc-success-ink); --button-hover: var(--smmcc-success-hover); }
.btn-warning { --button-bg: var(--smmcc-primary-light); --button-fg: var(--smmcc-heading); --button-border: var(--smmcc-warning-ink); --button-hover: var(--smmcc-primary); }
.btn-danger { --button-bg: var(--smmcc-danger); --button-fg: var(--smmcc-surface); --button-border: var(--smmcc-danger); --button-hover: var(--smmcc-danger-hover); }
.btn-dark { --button-bg: var(--smmcc-heading); --button-fg: var(--smmcc-surface); --button-border: var(--smmcc-heading); --button-hover: var(--smmcc-text); }
.btn-light, .btn-light-secondary { --button-bg: var(--smmcc-background); --button-border: var(--smmcc-control-border); }
.btn-outline-primary, .btn-light-primary { --button-fg: var(--smmcc-primary-ink); --button-border: var(--smmcc-primary-ink); --button-hover: var(--smmcc-primary-soft); }
.btn-outline-secondary, .btn-outline-info, .btn-light-info { --button-fg: var(--smmcc-secondary-ink); --button-border: var(--smmcc-secondary-ink); --button-hover: var(--smmcc-secondary-soft); }
.btn-outline-success, .btn-light-success { --button-fg: var(--smmcc-success-ink); --button-border: var(--smmcc-success-ink); --button-hover: var(--smmcc-success-soft); }
.btn-outline-danger, .btn-light-danger { --button-fg: var(--smmcc-danger); --button-border: var(--smmcc-danger); --button-hover: var(--smmcc-danger-soft); }
.btn-outline-warning, .btn-light-warning { --button-fg: var(--smmcc-warning-ink); --button-border: var(--smmcc-warning-ink); --button-hover: var(--smmcc-warning-soft); }
.btn-outline-dark { --button-fg: var(--smmcc-heading); --button-border: var(--smmcc-heading); }
.btn[class*="btn-primary"], .btn[class*="btn-secondary"], .btn[class*="btn-success"],
.btn[class*="btn-info"], .btn[class*="btn-warning"], .btn[class*="btn-danger"],
.btn[class*="btn-dark"], .btn[class*="btn-light"], .btn[class*="btn-outline-"] {
    color: var(--button-fg); background-color: var(--button-bg); border-color: var(--button-border);
}
.btn:not(:disabled):not(.disabled):not(.btn-link):hover,
.btn:not(:disabled):not(.disabled):not(.btn-link):active,
.btn-check:checked + .btn, .btn.active:not(.btn-link) {
    color: var(--button-hover-fg); background-color: var(--button-hover); border-color: var(--button-border);
}
.btn:focus, .btn-check:focus + .btn { box-shadow: 0 0 0 .22rem var(--smmcc-focus); }
.btn:focus-visible { outline: 2px solid var(--smmcc-primary-ink); outline-offset: 3px; }
.btn:disabled, .btn.disabled { opacity: .65; cursor: not-allowed; box-shadow: none; }
.btn[aria-busy="true"], .btn.is-loading { cursor: progress; }
.btn-sm { padding: .3rem .65rem; }
.btn-lg { padding: .75rem 1.25rem; }
.btn-link { color: var(--smmcc-primary-ink); }
.btn-link:hover { color: var(--smmcc-heading); }
.btn i, .btn svg { color: inherit; vertical-align: middle; }

/* These utility overrides intentionally match Bootstrap's !important utilities. */
.bg-primary, .bg-theme { background: var(--smmcc-primary) !important; color: var(--smmcc-heading) !important; }
.bg-success { background-color: var(--smmcc-success) !important; color: var(--smmcc-heading) !important; }
.bg-info { background-color: var(--smmcc-secondary) !important; color: var(--smmcc-heading) !important; }
.bg-secondary { background-color: var(--smmcc-secondary-ink) !important; color: var(--smmcc-surface) !important; }
.bg-warning { background-color: var(--smmcc-primary-light) !important; color: var(--smmcc-heading) !important; }
.bg-danger { background-color: var(--smmcc-danger) !important; color: var(--smmcc-surface) !important; }
.bg-light-primary { background: var(--smmcc-primary-soft) !important; color: var(--smmcc-primary-ink) !important; }
.bg-light-info, .bg-light-secondary { background: var(--smmcc-secondary-soft) !important; color: var(--smmcc-secondary-ink) !important; }
.bg-light-success { background: var(--smmcc-success-soft) !important; color: var(--smmcc-success-ink) !important; }
.bg-light-warning { background: var(--smmcc-warning-soft) !important; color: var(--smmcc-warning-ink) !important; }
.bg-light-danger { background: var(--smmcc-danger-soft) !important; color: var(--smmcc-danger) !important; }
.text-primary { color: var(--smmcc-primary-ink) !important; }
.text-secondary, .text-info { color: var(--smmcc-secondary-ink) !important; }
.text-success { color: var(--smmcc-success-ink) !important; }
.text-warning { color: var(--smmcc-warning-ink) !important; }
.text-danger { color: var(--smmcc-danger) !important; }
.text-muted, .text-gray-600 { color: var(--smmcc-muted) !important; }
.text-dark { color: var(--smmcc-heading) !important; }
.border-primary { border-color: var(--smmcc-primary) !important; }
.border-success { border-color: var(--smmcc-success-ink) !important; }
.border-danger { border-color: var(--smmcc-danger) !important; }
.badge { line-height: 1.4; font-weight: 600; }

.card { background: var(--smmcc-surface); border: 1px solid var(--smmcc-border); border-radius: var(--smmcc-radius); box-shadow: var(--smmcc-shadow); }
.card-header { color: var(--smmcc-heading); background: var(--smmcc-surface); border-color: var(--smmcc-border); border-radius: var(--smmcc-radius) var(--smmcc-radius) 0 0; }
.smmcc-stat-card { transition: transform .16s ease, box-shadow .16s ease; }
.smmcc-stat-icon { background: var(--smmcc-primary-soft); color: var(--smmcc-primary-ink); }
[aria-label="Content statistics"] > :nth-child(2) .smmcc-stat-icon { background: var(--smmcc-secondary-soft); color: var(--smmcc-secondary-ink); }
[aria-label="Content statistics"] > :nth-child(3) .smmcc-stat-icon { background: var(--smmcc-success-soft); color: var(--smmcc-success-ink); }
@media (hover: hover) { .smmcc-stat-card:hover { transform: translateY(-2px); box-shadow: var(--smmcc-shadow-hover); } }

/* Form components and validation retain all plugin/validation hooks. */
.form-control, .form-select, .custom-select, .input-group-text {
    color: var(--smmcc-text); background-color: var(--smmcc-surface);
    border-color: var(--smmcc-control-border); border-radius: var(--smmcc-control-radius);
}
.form-control::placeholder { color: var(--smmcc-muted); opacity: 1; }
.form-label, label { color: var(--smmcc-text); }
.form-control:focus, .form-select:focus, .custom-select:focus {
    color: var(--smmcc-text); background-color: var(--smmcc-surface);
    border-color: var(--smmcc-primary); box-shadow: 0 0 0 .2rem var(--smmcc-focus);
    outline: 2px solid var(--smmcc-primary-ink); outline-offset: 1px;
}
.form-control:disabled, .form-control[readonly], .form-select:disabled {
    color: var(--smmcc-muted); background-color: var(--smmcc-disabled); opacity: 1;
}
.form-control[readonly] { color: var(--smmcc-text); }
.form-control.is-invalid, .form-select.is-invalid, input.error, select.error, textarea.error { border-color: var(--smmcc-danger); }
.form-control.is-invalid:focus, .form-select.is-invalid:focus, input.error:focus, textarea.error:focus { outline-color: var(--smmcc-danger); }
.invalid-feedback, .invalid-tooltip, label.error, span.error { color: var(--smmcc-danger); }
.invalid-tooltip { color: var(--smmcc-surface); background: var(--smmcc-danger); }
.valid-tooltip { color: var(--smmcc-heading); background: var(--smmcc-success); }
.form-control.is-valid, .form-select.is-valid { border-color: var(--smmcc-success-ink); }
.valid-feedback { color: var(--smmcc-success-ink); }
.form-check-input { border-color: var(--smmcc-control-border); accent-color: var(--smmcc-primary); }
.form-check-input:checked { background-color: var(--smmcc-primary); border-color: var(--smmcc-primary-ink); }
.form-check-input[type="checkbox"]:checked { background-image: var(--smmcc-check-icon); }
.form-check-input[type="radio"]:checked { background-image: var(--smmcc-radio-icon); }
.form-switch .form-check-input:checked { background-image: var(--smmcc-switch-icon); }
.form-check-input:focus { border-color: var(--smmcc-primary-ink); box-shadow: 0 0 0 .2rem var(--smmcc-focus); }
.form-check-input:focus-visible { outline: 2px solid var(--smmcc-primary-ink); outline-offset: 2px; }
.form-check-input.is-valid, .was-validated .form-check-input:valid { border-color: var(--smmcc-success-ink); }
.form-check-input.is-invalid, input.form-check-input.error, .was-validated .form-check-input:invalid { border-color: var(--smmcc-danger); }
.form-check-input.is-invalid:focus-visible, input.form-check-input.error:focus-visible { outline-color: var(--smmcc-danger); }
.input-group-text { background: var(--smmcc-background); }
.form-control::file-selector-button { color: var(--smmcc-text); background: var(--smmcc-disabled); }
.form-control:hover:not(:disabled)::file-selector-button { background: var(--smmcc-primary-soft); }
.fileinput .img-thumbnail { background: var(--smmcc-background); border-color: var(--smmcc-border); }

.choices { width: 100%; margin-bottom: 1rem; color: var(--smmcc-text); }
.choices__inner { min-height: 44px; border: 1px solid var(--smmcc-control-border); border-radius: var(--smmcc-control-radius); background: var(--smmcc-surface); padding: .45rem .75rem; }
.choices__input { color: var(--smmcc-text); background: transparent; }
.choices__input::placeholder, .choices__placeholder { color: var(--smmcc-muted); opacity: 1; }
.choices.is-focused .choices__inner, .choices.is-open .choices__inner {
    border-color: var(--smmcc-primary); box-shadow: 0 0 0 .2rem var(--smmcc-focus);
    outline: 2px solid var(--smmcc-primary-ink); outline-offset: 1px;
}
.choices .choices__list--multiple .choices__item { background: var(--smmcc-primary-soft); border-color: var(--smmcc-primary-ink); color: var(--smmcc-primary-ink); }
.choices .choices__list--multiple .choices__button { filter: brightness(0); }
.choices .choices__list--dropdown, .choices .choices__list[aria-expanded] { background: var(--smmcc-surface); border-color: var(--smmcc-control-border); color: var(--smmcc-text); }
.choices .choices__list--dropdown .choices__item--selectable.is-highlighted { background: var(--smmcc-primary-soft); color: var(--smmcc-primary-ink); }
.choices.is-disabled .choices__inner { background: var(--smmcc-disabled); color: var(--smmcc-muted); }
.select2-container--default .select2-selection--single, .select2-container--default .select2-selection--multiple { background: var(--smmcc-surface); border-color: var(--smmcc-control-border); border-radius: var(--smmcc-control-radius); }
.select2-container--default.select2-container--focus .select2-selection--multiple, .select2-container--open .select2-selection--single { border-color: var(--smmcc-primary); outline: 2px solid var(--smmcc-primary-ink); }
.select2-dropdown { color: var(--smmcc-text); background: var(--smmcc-surface); border-color: var(--smmcc-control-border); }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--smmcc-primary); color: var(--smmcc-heading); }
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--smmcc-text); }
.select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--smmcc-muted); }
.gj-picker, .datepicker-dropdown { color: var(--smmcc-text); background: var(--smmcc-surface); border-color: var(--smmcc-control-border); }
.gj-picker div[role="navigator"], .gj-picker-md [role="header"] { color: var(--smmcc-heading); background: var(--smmcc-primary); }
.gj-picker table tr td.today div { color: var(--smmcc-primary-ink); font-weight: 700; }
.gj-picker table tr td.selected.gj-cursor-pointer div, .datepicker table tr td.active { color: var(--smmcc-heading); background: var(--smmcc-primary); }
.gj-picker table tr td.gj-cursor-pointer div:hover, .datepicker table tr td.day:hover { background: var(--smmcc-primary-soft); color: var(--smmcc-primary-ink); }
.note-editor.note-frame { border-color: var(--smmcc-control-border); border-radius: var(--smmcc-control-radius); }
.note-editor.note-frame:focus-within { border-color: var(--smmcc-primary); box-shadow: 0 0 0 .2rem var(--smmcc-focus); }
.note-toolbar, .note-statusbar { background: var(--smmcc-background); border-color: var(--smmcc-border); }
.note-editable { color: var(--smmcc-text); background: var(--smmcc-surface); }
.note-btn { --button-hover: var(--smmcc-primary-soft); --button-hover-fg: var(--smmcc-primary-ink); color: var(--smmcc-text); background-color: var(--smmcc-surface); border-color: var(--smmcc-control-border); }
.note-btn:hover, .note-btn.active { background-color: var(--smmcc-primary-soft); color: var(--smmcc-primary-ink); }
.note-dropdown-menu { color: var(--smmcc-text); background: var(--smmcc-surface); border-color: var(--smmcc-border); }
.nav-tabs .nav-link { color: var(--smmcc-text); background: transparent; border-bottom: 3px solid transparent; cursor: pointer; }
.nav-tabs .nav-link.active { color: var(--smmcc-primary-ink); background: var(--smmcc-primary-subtle); border-bottom: 3px solid var(--smmcc-primary-ink); }
.list-group-item.active { color: var(--smmcc-heading); background: var(--smmcc-primary); border-color: var(--smmcc-primary-ink); }

.table { color: var(--smmcc-text); border-color: var(--smmcc-border); --bs-table-hover-bg: var(--smmcc-primary-subtle); --bs-table-striped-bg: var(--smmcc-background); }
.table thead th { color: var(--smmcc-heading); background-color: var(--smmcc-background); border-color: var(--smmcc-border); }
.table tbody td, .table tbody th, .table-bordered td, .table-bordered th { border-color: var(--smmcc-border); }
.table-hover tbody tr:hover > *, table.dataTable tbody tr:hover > * { background-color: var(--smmcc-primary-subtle); color: var(--smmcc-text); }
.page-link { color: var(--smmcc-primary-ink); background: var(--smmcc-surface); border-color: var(--smmcc-control-border); }
.page-link:hover, .page-link:focus { color: var(--smmcc-primary-ink); background: var(--smmcc-primary-soft); border-color: var(--smmcc-primary-ink); }
.page-link:focus { box-shadow: 0 0 0 .2rem var(--smmcc-focus); }
.page-item.active .page-link { color: var(--smmcc-heading); background: var(--smmcc-primary); border-color: var(--smmcc-primary-ink); font-weight: 700; }
.page-item.disabled .page-link { color: var(--smmcc-muted); background: var(--smmcc-disabled); border-color: var(--smmcc-border); }
.dataTables_wrapper .dataTables_info, .dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter { color: var(--smmcc-muted); }
.dataTables_wrapper .dataTables_filter input, .dataTables_wrapper .dataTables_length select { border-color: var(--smmcc-control-border); color: var(--smmcc-text); background: var(--smmcc-surface); }
.dataTables_wrapper .dataTables_filter input:focus, .dataTables_wrapper .dataTables_length select:focus { border-color: var(--smmcc-primary); outline: 2px solid var(--smmcc-primary-ink); outline-offset: 1px; }
.dt-buttons .dt-button { color: var(--smmcc-surface); background: var(--smmcc-secondary-ink); border: 1px solid var(--smmcc-secondary-ink); }
.dt-buttons .dt-button.buttons-excel { background: var(--smmcc-success); border-color: var(--smmcc-success-ink); color: var(--smmcc-heading); }
.dt-buttons .dt-button:hover, .dt-buttons .dt-button:focus { background: var(--smmcc-secondary-hover); color: var(--smmcc-surface); }
.dt-buttons .dt-button.buttons-excel:hover { background: var(--smmcc-success-hover); color: var(--smmcc-heading); }

.alert { border-radius: var(--smmcc-control-radius); }
.alert-primary { color: var(--smmcc-primary-ink); background: var(--smmcc-primary-soft); border-color: var(--smmcc-primary); }
.alert-secondary, .alert-info { color: var(--smmcc-secondary-ink); background: var(--smmcc-secondary-soft); border-color: var(--smmcc-secondary); }
.alert-success { color: var(--smmcc-success-ink); background: var(--smmcc-success-soft); border-color: var(--smmcc-success); }
.alert-warning { color: var(--smmcc-warning-ink); background: var(--smmcc-warning-soft); border-color: var(--smmcc-primary-light); }
.alert-danger { color: var(--smmcc-danger); background: var(--smmcc-danger-soft); border-color: var(--smmcc-danger); }
.alert .alert-link { color: inherit; text-decoration: underline; }
.modal-content, .toast, body .swal2-popup { color: var(--smmcc-text); background: var(--smmcc-surface); border: 1px solid var(--smmcc-border); border-radius: var(--smmcc-radius); box-shadow: var(--smmcc-shadow-hover); }
.modal-header, .modal-footer, .toast-header { border-color: var(--smmcc-border); background: var(--smmcc-surface); }
.modal-title, body .swal2-title { color: var(--smmcc-heading); }
body .swal2-html-container { color: var(--smmcc-text); overflow-wrap: anywhere; }
body .swal2-popup { max-width: calc(100vw - 2rem); }
body .swal2-actions { flex-wrap: wrap; gap: .5rem; max-width: 100%; }
body .swal2-styled { border-radius: var(--smmcc-control-radius); font-weight: 600; }
body .swal2-styled.swal2-confirm { color: var(--smmcc-heading); background-color: var(--smmcc-primary); }
body .swal2-styled.swal2-confirm.smmcc-confirm-danger, body .swal2-styled.swal2-deny { color: var(--smmcc-surface); background-color: var(--smmcc-danger); }
body .swal2-styled.swal2-cancel { color: var(--smmcc-text); background-color: var(--smmcc-disabled); border: 1px solid var(--smmcc-control-border); }
body .swal2-styled:focus-visible { outline: 2px solid var(--smmcc-primary-ink); outline-offset: 3px; box-shadow: 0 0 0 .2rem var(--smmcc-focus); }
body .swal2-loader { border-color: var(--smmcc-primary-ink) transparent var(--smmcc-primary-ink) transparent; }
body .swal2-icon.swal2-info, body .swal2-icon.swal2-question { color: var(--smmcc-secondary-ink); border-color: var(--smmcc-secondary); }
body .swal2-icon.swal2-warning { color: var(--smmcc-warning-ink); border-color: var(--smmcc-primary-light); }
body .swal2-icon.swal2-success { border-color: var(--smmcc-success); color: var(--smmcc-success-ink); }
body .swal2-icon.swal2-success [class^="swal2-success-line"] { background-color: var(--smmcc-success-ink); }
body .swal2-icon.swal2-success .swal2-success-ring { border-color: var(--smmcc-success); }
body .swal2-icon.swal2-error { border-color: var(--smmcc-danger); color: var(--smmcc-danger); }
body .swal2-icon.swal2-error [class^="swal2-x-mark-line"] { background: var(--smmcc-danger); }
.toast-header { color: var(--smmcc-heading); }
.tooltip-inner { background: var(--smmcc-heading); color: var(--smmcc-surface); }
.bs-tooltip-top .tooltip-arrow::before { border-top-color: var(--smmcc-heading); }
.bs-tooltip-bottom .tooltip-arrow::before { border-bottom-color: var(--smmcc-heading); }
.bs-tooltip-start .tooltip-arrow::before { border-left-color: var(--smmcc-heading); }
.bs-tooltip-end .tooltip-arrow::before { border-right-color: var(--smmcc-heading); }
.popover { border-color: var(--smmcc-border); background: var(--smmcc-surface); }
.popover-header { color: var(--smmcc-heading); background: var(--smmcc-background); border-color: var(--smmcc-border); }
.popover-body { color: var(--smmcc-text); }

/* Login styling is scoped; identifiers, forms, CSRF and authentication stay intact. */
#auth { min-height: 100vh; height: auto; background: radial-gradient(ellipse at top right, var(--smmcc-primary-soft), transparent 55%), var(--smmcc-background); }
#auth > .row { min-height: 100vh; margin-left: 0; margin-right: 0; align-items: center; padding: 2rem 0; }
#auth #auth-left { max-width: 34rem; margin: 0 auto; padding: 2.5rem; background: var(--smmcc-surface); border: 1px solid var(--smmcc-border); border-top: 4px solid var(--smmcc-primary); border-radius: 1rem; box-shadow: var(--smmcc-shadow); }
#auth #auth-left .auth-logo .smmcc-logo { width: 260px; height: auto; max-width: 100%; }
#auth .form-control-icon { color: var(--smmcc-muted); }
#auth .form-group:focus-within .form-control-icon { color: var(--smmcc-primary-ink); }
@media (max-width: 575.98px) {
    #auth > .row { padding: 1rem .5rem; }
    #auth #auth-left { padding: 1.5rem 1.1rem; }
    .modal-dialog { margin: .75rem; }
    .swal2-actions .swal2-styled { max-width: 100%; white-space: normal; }
    .dataTables_wrapper .dataTables_filter input { max-width: calc(100vw - 9rem); }
}
@media (prefers-reduced-motion: reduce) {
    .btn, .sidebar-wrapper .menu a, .smmcc-stat-card, .notify-pulse { transition: none; animation: none; }
    .smmcc-stat-card:hover, .navbar .nav-link .fa-bell:hover { transform: none; }
}
