/**
 * NuxHost — light / dark color mode (works with Bootstrap 5 data-bs-theme)
 */
:root,
[data-bs-theme="light"] {
    color-scheme: light;
    --nh-body-bg: #f5f5f5;
    --nh-body-color: #262626;
    --nh-surface: #ffffff;
    --nh-surface-border: #e5e5e5;
    --nh-surface-muted: #f8f9fa;
    --nh-text-muted: #6c757d;
    --nh-card-border: #ebedf2;
    --nh-nav-color: #404040;
    --nh-nav-section: #a3a3a3;
    --nh-topbar-bg: #ffffff;
    --nh-shadow: rgba(0, 0, 0, 0.05);
    --nh-dropdown-bg: #ffffff;
    --nh-input-bg: #f8f9fa;
    --nh-overlay: rgba(0, 0, 0, 0.45);
    --nh-placeholder: #adb5bd;
    --nh-btn-light-bg: #f8f9fa;
    --nh-btn-light-border: #dee2e6;
    --nh-btn-light-color: #212529;
    --nh-table-head-bg: #f8f9fa;
    --nh-select2-bg: #fff;
    --nh-select2-border: #ced4da;
}

[data-bs-theme="dark"] {
    color-scheme: dark;
    --nh-body-bg: #0f1117;
    --nh-body-color: #e8eaed;
    --nh-surface: #1a1d24;
    --nh-surface-border: #2d333b;
    --nh-surface-muted: #21262d;
    --nh-text-muted: #9aa0a6;
    --nh-card-border: #30363d;
    --nh-nav-color: #c9d1d9;
    --nh-nav-section: #6e7681;
    --nh-topbar-bg: #1a1d24;
    --nh-shadow: rgba(0, 0, 0, 0.4);
    --nh-dropdown-bg: #1a1d24;
    --nh-input-bg: #21262d;
    --nh-overlay: rgba(0, 0, 0, 0.7);
    --nh-placeholder: #6e7681;
    --nh-btn-light-bg: #21262d;
    --nh-btn-light-border: #30363d;
    --nh-btn-light-color: #e8eaed;
    --nh-table-head-bg: #21262d;
    --nh-select2-bg: #21262d;
    --nh-select2-border: #30363d;
}

/* Layout shell (header.php) */
body {
    background-color: var(--nh-body-bg) !important;
    color: var(--nh-body-color) !important;
}

.sidebar {
    background: var(--nh-surface) !important;
    border-right-color: var(--nh-surface-border) !important;
}

.sidebar .logo-area {
    background: var(--nh-surface) !important;
    color: var(--nh-body-color) !important;
    border-bottom-color: var(--nh-surface-border) !important;
}

.sidebar .nav-link {
    color: var(--nh-nav-color) !important;
}

.sidebar .nav-section {
    color: var(--nh-nav-section) !important;
}

.topbar,
.navbar.nh-topbar {
    background-color: var(--nh-topbar-bg) !important;
    border-bottom-color: var(--nh-surface-border) !important;
}

.overlay {
    background: var(--nh-overlay) !important;
}

/* Cards & surfaces */
.card {
    background-color: var(--nh-surface) !important;
    border-color: var(--nh-card-border) !important;
    color: var(--nh-body-color) !important;
}

.card-header {
    background-color: transparent !important;
    border-bottom-color: var(--nh-card-border) !important;
    color: var(--nh-body-color) !important;
}

.card-footer {
    background-color: var(--nh-surface-muted) !important;
    border-top-color: var(--nh-card-border) !important;
}

.list-group-item {
    background-color: var(--nh-surface) !important;
    border-color: var(--nh-surface-border) !important;
    color: var(--nh-body-color) !important;
}

.table {
    --bs-table-bg: var(--nh-surface);
    --bs-table-color: var(--nh-body-color);
    --bs-table-border-color: var(--nh-surface-border);
}

.table-light,
.table thead.table-light th {
    --bs-table-bg: var(--nh-table-head-bg);
    --bs-table-color: var(--nh-body-color);
    background-color: var(--nh-table-head-bg) !important;
    color: var(--nh-body-color) !important;
}

/* Forms */
.form-control,
.form-select {
    background-color: var(--nh-input-bg);
    border-color: var(--nh-surface-border);
    color: var(--nh-body-color);
}

.form-control:focus,
.form-select:focus {
    background-color: var(--nh-input-bg);
    color: var(--nh-body-color);
}

.form-control::placeholder {
    color: var(--nh-placeholder) !important;
}

.input-group-text {
    background-color: var(--nh-input-bg) !important;
    border-color: var(--nh-surface-border) !important;
    color: var(--nh-text-muted) !important;
}

.bg-light {
    background-color: var(--nh-input-bg) !important;
}

.text-dark {
    color: var(--nh-body-color) !important;
}

.text-muted {
    color: var(--nh-text-muted) !important;
}

/* Topbar search & dropdowns */
#globalSearchDropdown {
    background-color: var(--nh-dropdown-bg) !important;
    border-color: var(--nh-surface-border) !important;
    color: var(--nh-body-color) !important;
}

.dropdown-menu {
    background-color: var(--nh-dropdown-bg) !important;
    border-color: var(--nh-surface-border) !important;
    color: var(--nh-body-color) !important;
}

.dropdown-item {
    color: var(--nh-body-color) !important;
}

.dropdown-item:hover,
.dropdown-item:focus {
    background-color: var(--nh-surface-muted) !important;
    color: var(--nh-body-color) !important;
}

.dropdown-divider,
.border-bottom,
.border-top,
footer.border-top {
    border-color: var(--nh-surface-border) !important;
}

/* Buttons */
.btn-light {
    background-color: var(--nh-btn-light-bg) !important;
    border-color: var(--nh-btn-light-border) !important;
    color: var(--nh-btn-light-color) !important;
}

.btn-light:hover {
    filter: brightness(1.08);
}

.nh-theme-toggle {
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.nh-theme-toggle .ti {
    font-size: 1.15rem;
    line-height: 1;
}

/* Modals & offcanvas */
.modal-content,
.offcanvas {
    background-color: var(--nh-surface) !important;
    color: var(--nh-body-color) !important;
    border-color: var(--nh-surface-border) !important;
}

.modal-header,
.modal-footer,
.offcanvas-header {
    border-color: var(--nh-surface-border) !important;
}

/* Nav tabs active border fix in dark mode */
[data-bs-theme="dark"] .nav-tabs .nav-link.active {
    border-color: var(--nh-surface-border) var(--nh-surface-border) var(--nh-surface) !important;
    background-color: var(--nh-surface) !important;
}

/* Select2 */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    background-color: var(--nh-select2-bg) !important;
    border-color: var(--nh-select2-border) !important;
    color: var(--nh-body-color) !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--nh-body-color) !important;
}

.select2-dropdown {
    background-color: var(--nh-dropdown-bg) !important;
    border-color: var(--nh-select2-border) !important;
}

.select2-container--default .select2-results__option {
    color: var(--nh-body-color) !important;
}

.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    background-color: rgba(var(--theme-rgb, 0, 57, 152), 0.25) !important;
}

/* Auth / install panels */
[data-bs-theme="dark"] .nh-right {
    background: var(--nh-body-bg) !important;
    color: var(--nh-body-color) !important;
}

[data-bs-theme="dark"] .nh-right .card,
[data-bs-theme="dark"] .nh-install-card {
    background: var(--nh-surface) !important;
    border-color: var(--nh-card-border) !important;
}

/* SweetAlert2 */
[data-bs-theme="dark"] .swal2-popup {
    background: var(--nh-surface) !important;
    color: var(--nh-body-color) !important;
}

[data-bs-theme="dark"] .swal2-title,
[data-bs-theme="dark"] .swal2-html-container {
    color: var(--nh-body-color) !important;
}

/* ── Project-wide dark mode (Bootstrap utilities + common UI) ── */
[data-bs-theme="dark"] #main-content,
[data-bs-theme="dark"] .container-fluid {
    background-color: var(--nh-body-bg);
    color: var(--nh-body-color);
}

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

[data-bs-theme="dark"] .bg-light-subtle,
[data-bs-theme="dark"] .bg-secondary-subtle {
    background-color: var(--nh-surface-muted) !important;
}

[data-bs-theme="dark"] .border,
[data-bs-theme="dark"] .border-start,
[data-bs-theme="dark"] .border-end,
[data-bs-theme="dark"] .border-top,
[data-bs-theme="dark"] .border-bottom {
    border-color: var(--nh-surface-border) !important;
}

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

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

[data-bs-theme="dark"] .accordion-item {
    background-color: var(--nh-surface);
    border-color: var(--nh-surface-border);
    color: var(--nh-body-color);
}

[data-bs-theme="dark"] .accordion-button {
    background-color: var(--nh-surface-muted);
    color: var(--nh-body-color);
}

[data-bs-theme="dark"] .accordion-button:not(.collapsed) {
    background-color: var(--nh-surface);
    color: var(--nh-body-color);
    box-shadow: inset 0 -1px 0 var(--nh-surface-border);
}

[data-bs-theme="dark"] .accordion-button::after {
    filter: invert(1) brightness(0.85);
}

[data-bs-theme="dark"] .nav-tabs {
    border-bottom-color: var(--nh-surface-border);
}

[data-bs-theme="dark"] .nav-tabs .nav-link {
    color: var(--nh-text-muted);
}

[data-bs-theme="dark"] .nav-tabs .nav-link:hover {
    border-color: var(--nh-surface-border);
    color: var(--nh-body-color);
}

[data-bs-theme="dark"] .nav-pills .nav-link {
    color: var(--nh-nav-color);
}

[data-bs-theme="dark"] .page-link {
    background-color: var(--nh-surface);
    border-color: var(--nh-surface-border);
    color: var(--nh-body-color);
}

[data-bs-theme="dark"] .page-item.disabled .page-link {
    background-color: var(--nh-surface-muted);
    color: var(--nh-text-muted);
}

[data-bs-theme="dark"] .toast {
    background-color: var(--nh-surface);
    border-color: var(--nh-surface-border);
    color: var(--nh-body-color);
}

[data-bs-theme="dark"] .toast-header {
    background-color: var(--nh-surface-muted);
    border-bottom-color: var(--nh-surface-border);
    color: var(--nh-body-color);
}

[data-bs-theme="dark"] pre,
[data-bs-theme="dark"] code,
[data-bs-theme="dark"] .bg-dark-subtle {
    background-color: var(--nh-surface-muted) !important;
    color: var(--nh-body-color) !important;
    border-color: var(--nh-surface-border);
}

[data-bs-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-bg-type: var(--nh-surface-muted);
}

[data-bs-theme="dark"] .table-hover > tbody > tr:hover > * {
    --bs-table-bg-state: var(--nh-surface-muted);
}

[data-bs-theme="dark"] .form-control:disabled,
[data-bs-theme="dark"] .form-select:disabled {
    background-color: var(--nh-surface-muted);
    color: var(--nh-text-muted);
}

[data-bs-theme="dark"] .input-group-text.bg-light {
    background-color: var(--nh-input-bg) !important;
}

[data-bs-theme="dark"] .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

[data-bs-theme="dark"] .btn-secondary {
    background-color: var(--nh-surface-muted);
    border-color: var(--nh-surface-border);
    color: var(--nh-body-color);
}

[data-bs-theme="dark"] .btn-outline-secondary {
    color: var(--nh-body-color);
    border-color: var(--nh-surface-border);
}

[data-bs-theme="dark"] .btn-outline-secondary:hover {
    background-color: var(--nh-surface-muted);
    color: var(--nh-body-color);
}

[data-bs-theme="dark"] .list-group-item-action:hover,
[data-bs-theme="dark"] .list-group-item-action:focus {
    background-color: var(--nh-surface-muted);
    color: var(--nh-body-color);
}

[data-bs-theme="dark"] .nh-section-label {
    color: var(--nh-text-muted) !important;
    border-bottom-color: var(--nh-surface-border) !important;
}

[data-bs-theme="dark"] .nh-step-pill {
    color: var(--nh-text-muted);
}

[data-bs-theme="dark"] .nh-step-pill .nh-step-num {
    background: var(--nh-surface-muted);
    color: var(--nh-body-color);
}

[data-bs-theme="dark"] .nh-install-card,
[data-bs-theme="dark"] .nh-right-inner .card {
    background: var(--nh-surface) !important;
    border-color: var(--nh-card-border) !important;
}

[data-bs-theme="dark"] .select2-search__field {
    background: var(--nh-input-bg) !important;
    color: var(--nh-body-color) !important;
}

[data-bs-theme="dark"] .select2-container--default .select2-search--dropdown .select2-search__field {
    border-color: var(--nh-select2-border);
}

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

/* Default html to dark when script has not run yet (brief paint) */
html:not([data-bs-theme]) {
    color-scheme: dark;
}
