:root {
    /* Bootstrap defines these names too; restore the TGIF semantic contract after it loads. */
    --success: var(--theme-success);
    --warning: var(--theme-warning);
    --danger: var(--theme-danger);
    --info: var(--theme-info);
}

html { background: var(--page-bg); }
body { color: var(--text-primary); background: var(--page-bg); }
.MainWrapper { color: var(--text-primary); background: var(--surface); border: 1px solid var(--border); box-shadow: var(--shadow); }
.navbar.bg-dark, .site-footer { background: var(--nav-bg) !important; color: var(--nav-text); }
.navbar-dark .navbar-brand, .navbar-dark .navbar-nav .nav-link, .navbar-dark .move-right .nav-link { color: var(--nav-text); }
.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus, .navbar-dark .move-right .nav-link:hover, .navbar-dark .move-right .nav-link:focus { color: var(--nav-hover-text); background: var(--nav-hover-bg); }
.navbar-dark .navbar-nav .nav-link.active { color: var(--nav-active-text); background: var(--nav-active-bg); }
.dropdown-menu { color: var(--dropdown-text); background: var(--dropdown-bg); border-color: var(--dropdown-border); }
.dropdown-item { color: var(--dropdown-text); background: transparent; }
.dropdown-item:hover, .dropdown-item:focus { color: var(--dropdown-hover-text); background: var(--dropdown-hover-bg); }
.dropdown-item.active, .dropdown-item:active { color: var(--nav-active-text); background: var(--nav-active-bg); }
.dropdown-divider { border-top-color: var(--dropdown-border); }
.dropdown-header { color: var(--nav-text-muted); }
a { color: var(--link); }
a:hover { color: var(--accent-hover); }
.card, .modal-content { color: var(--text-primary); background: var(--surface-raised); border-color: var(--border); }
.modal-content, .modal-body { background: var(--modal-bg); color: var(--text-primary); }
.table { color: var(--text-primary); background: var(--table-bg); }
.table thead th { color: var(--table-header-text); background: var(--table-header-bg); border-color: var(--table-border); }
.table td, .table th { border-color: var(--table-border); }
.table-striped tbody tr:nth-of-type(odd), table.dataTable tbody tr { background: var(--surface-raised); }
.table-hover tbody tr:hover { color: var(--text-primary); background: var(--table-row-hover); }
.grid-stack { background: transparent; }
.grid-stack-item-content { color: var(--widget-text); background: var(--widget-bg); border-color: var(--widget-border); box-shadow: var(--widget-shadow); }
input, select, textarea, .form-control, .custom-select { color: var(--input-text); background: var(--input-bg); border-color: var(--input-border); }
input::placeholder, textarea::placeholder, .form-control::placeholder { color: var(--input-placeholder); opacity: 1; }
input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-visible, a:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.tgif-menu-theme { display: flex; align-items: center; gap: .5rem; }
.tgif-menu-theme label { margin: 0; color: var(--text-primary); font-size: .82rem; }
.tgif-menu-theme select { min-width: 8rem; height: 2rem; padding: .15rem 1.5rem .15rem .45rem; border-radius: .5rem; font-size: .8rem; }
@media (max-width: 575.98px) { .tgif-menu-theme { width: 100%; } .tgif-menu-theme select { flex: 1; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
