[data-bs-theme="dark"] {
    color-scheme: dark;
    --canvas: #181818;
    --surface: #1e2024;
    --surface-alt: #2c2e33;
    --line: #232323;
    --line-strong: #2e2e2e;
    --palette-ice-blue: var(--surface);
    --palette-periwinkle: var(--surface-alt);
    --palette-pastel-blue: var(--line-strong);
    --palette-lavender: var(--surface);
    --palette-blush: var(--surface);
    --dark-background: var(--canvas);
    --dark-text: #e8e8e8;
    --dark-text-secondary: #9a9a9a;
    --dark-border: var(--line);
    --dark-accent: var(--primary);
    --bg-primary: var(--dark-background);
    --bg-secondary: var(--surface);
    --text-primary: var(--dark-text);
    --text-secondary: var(--dark-text-secondary);
    --text-muted: var(--dark-text-secondary);
    --bs-body-bg: var(--dark-background);
    --bs-body-bg-rgb: 24, 24, 24;
    --bs-body-color: var(--dark-text);
    --bs-body-color-rgb: 232, 232, 232;
    --bs-emphasis-color: var(--dark-text);
    --bs-emphasis-color-rgb: 232, 232, 232;
    --bs-secondary-color: var(--dark-text-secondary);
    --bs-secondary-color-rgb: 154, 154, 154;
    --bs-secondary-bg: var(--surface);
    --bs-secondary-bg-rgb: 30, 32, 36;
    --bs-tertiary-bg: var(--surface-alt);
    --bs-tertiary-bg-rgb: 44, 46, 51;
    --bs-light-rgb: 30, 32, 36;
    --bs-primary: var(--primary);
    --bs-primary-rgb: 44, 109, 232;
    --link-color: #6ea8fe;
    --link-color-hover: #9ec5fe;
    --bs-link-color: var(--link-color);
    --bs-link-color-rgb: 110, 168, 254;
    --bs-link-hover-color: var(--link-color-hover);
    --bs-link-hover-color-rgb: 158, 197, 254;
    --focus-color: #6ea8fe;
    --bs-border-color: var(--dark-border);
    --bs-border-color-translucent: var(--dark-border);
    --border-color: var(--dark-border);
    --card-bg: var(--dark-background);
    --card-border: var(--dark-border);
    --nav-bg: var(--dark-background);
    --input-bg: var(--canvas);
    --accent-color: var(--dark-accent);
    --accent-color-2: var(--nordic-blue);
    --accent-1: var(--dark-accent);
    --accent-2: var(--nordic-steel);
    --accent-gradient: var(--dark-accent);
    --btn-primary-bg: var(--dark-accent);
    --btn-primary-color: #ffffff;
    --btn-primary-hover-bg: var(--primary-hover);
    --btn-primary-shadow: none;
    --btn-primary-hover-shadow: none;
    --btn-dark-bg: var(--dark-accent);
    --btn-cta: var(--dark-accent);
    --btn-cta-hover: var(--primary-hover);
    --shadow-sm: none;
    --shadow: none;
    --shadow-lg: none;
    --controls-bg: var(--dark-background);
    --controls-border: var(--dark-border);
    --controls-text: var(--dark-text);
    --input-border: var(--line-strong);
    --input-text: var(--dark-text);
    --button-bg: var(--dark-accent);
    --button-hover: var(--primary-hover);
    --tooltip-bg: var(--dark-background);
    --tooltip-border: var(--line-strong);
    --tooltip-text: var(--dark-text);
    --tooltip-strong: var(--dark-text);
    --star-color: var(--nordic-blue);
    --text-color: var(--dark-text);
}

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

[data-bs-theme="dark"] :is(.navbar, #controls, #theme-toggle) {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

[data-bs-theme="dark"] .navbar {
    background: var(--nav-bg);
}

[data-bs-theme="dark"] .navbar-brand .brand-cat {
    color: #f79672;
}

[data-bs-theme="dark"] h1.fw-bold {
    background: none;
    color: var(--text-primary);
    -webkit-text-fill-color: currentColor;
}

[data-bs-theme="dark"] :is(.card, .dashboard-card, .metric-card, .summary-table) {
    background: var(--card-bg);
    color: var(--text-primary);
    border: 1px solid var(--card-border) !important;
    box-shadow: none !important;
}

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

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

[data-bs-theme="dark"] .wizard-step-badge:not(.inactive) {
    color: #ffffff;
}

[data-bs-theme="dark"] .card :is(.card-title, .card-text).text-dark {
    color: var(--text-primary) !important;
}

[data-bs-theme="dark"] :is(.bg-primary, .text-bg-primary, .bg-accent-1, .bg-accent-2, .bg-accent-gradient, .bg-cta) {
    background: var(--dark-accent) !important;
    color: #ffffff !important;
}

[data-bs-theme="dark"] :is(.bg-secondary, .text-bg-secondary, .badge-unknown) {
    background: var(--surface-alt) !important;
    color: var(--dark-text) !important;
}

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

[data-bs-theme="dark"] .btn-secondary {
    --bs-btn-color: var(--dark-text);
    --bs-btn-bg: var(--canvas);
    --bs-btn-border-color: var(--line-strong);
    --bs-btn-hover-color: var(--dark-text);
    --bs-btn-hover-bg: var(--surface-alt);
    --bs-btn-hover-border-color: var(--dark-text-secondary);
    --bs-btn-active-color: var(--dark-text);
    --bs-btn-active-bg: var(--surface-alt);
    --bs-btn-active-border-color: var(--dark-text-secondary);
    background: var(--canvas) !important;
    color: var(--dark-text) !important;
    border: 1px solid var(--line-strong) !important;
    box-shadow: none;
    filter: none;
    transition: background-color 150ms ease, color 150ms ease;
}

[data-bs-theme="dark"] .btn-secondary:is(:hover, :focus-visible) {
    background: var(--surface-alt) !important;
    border-color: var(--dark-text-secondary) !important;
    color: var(--dark-text) !important;
    box-shadow: none;
    filter: none;
}

[data-bs-theme="dark"] .btn-secondary:active,
[data-bs-theme="dark"] .btn-check:checked + .btn-secondary {
    background: var(--surface-alt) !important;
    border-color: var(--dark-text-secondary) !important;
    color: var(--dark-text) !important;
    box-shadow: none;
}

[data-bs-theme="dark"] :is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-light, .swal2-cancel) {
    --bs-btn-hover-color: var(--dark-text);
    --bs-btn-hover-bg: var(--surface-alt);
    --bs-btn-hover-border-color: var(--dark-text-secondary);
    --bs-btn-active-color: var(--dark-text);
    --bs-btn-active-bg: var(--surface-alt);
    --bs-btn-active-border-color: var(--dark-text-secondary);
    background: var(--dark-background);
    color: var(--dark-text);
    border: 1px solid var(--line-strong);
    transition: background-color 150ms ease, color 150ms ease;
}

[data-bs-theme="dark"] :is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-light, .swal2-cancel):is(:hover, :focus) {
    background: var(--surface-alt);
    color: var(--dark-text);
    border-color: var(--dark-text-secondary);
    box-shadow: none;
}

[data-bs-theme="dark"] :is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-light, .swal2-cancel):active {
    background: var(--surface-alt);
    color: var(--dark-text);
}

[data-bs-theme="dark"] :is(.btn, #controls button, .swal2-styled):not(.btn-primary, .btn-dark, .btn-cta):focus-visible {
    outline: 3px solid var(--focus-color);
    outline-offset: 4px;
}

[data-bs-theme="dark"] :is(.form-control, .form-select, .table-search-input, .swal2-input, .swal2-textarea) {
    background-color: var(--input-bg);
    border-color: var(--line-strong);
    color: var(--text-primary);
}

[data-bs-theme="dark"] .form-control::placeholder {
    color: var(--text-secondary);
    opacity: 1;
}

[data-bs-theme="dark"] :is(.form-control, .form-select, .table-search-input, .swal2-input, .swal2-textarea):focus,
[data-bs-theme="dark"] #controls input:focus-visible {
    border-color: var(--focus-color);
    outline: 3px solid var(--focus-color);
    outline-offset: 2px;
    box-shadow: none;
}

[data-bs-theme="dark"] :is(.table, .table-light) {
    --bs-table-bg: var(--dark-background);
    --bs-table-color: var(--dark-text);
    --bs-table-border-color: var(--dark-border);
}

[data-bs-theme="dark"] table.table th,
[data-bs-theme="dark"] .summary-table th {
    background: var(--surface) !important;
    color: var(--text-secondary);
    border-color: var(--border-color);
}

[data-bs-theme="dark"] table.table td {
    background-color: var(--dark-background) !important;
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-bs-theme="dark"] .summary-table td {
    color: var(--text-primary);
}

[data-bs-theme="dark"] :is(.alert-primary, .alert-info, .equity-tooltip-wrapper .tooltip, .swal2-popup) {
    background: var(--dark-background);
    color: var(--text-primary);
    border: 1px solid var(--border-color);
    box-shadow: none;
}

[data-bs-theme="dark"] .equity-tooltip-wrapper .tooltip::after {
    border-top-color: var(--dark-background);
}

[data-bs-theme="dark"] :is(.equity-bar-container, .cat-visual-track, #loading-overlay .loading-bar) {
    background: var(--dark-border);
}

[data-bs-theme="dark"] :is(footer, #space-container, #loading-overlay) {
    background: var(--dark-background);
}

[data-bs-theme="dark"] #loading-overlay .loading-card {
    background: var(--dark-background) !important;
    border-color: var(--dark-border) !important;
    color: var(--dark-text);
}

[data-bs-theme="dark"] .footer-note {
    background: #FFF9DB !important;
    border-color: var(--dark-border) !important;
    color: #111727 !important;
}

[data-bs-theme="dark"] .footer-note .text-warning {
    color: #111727 !important;
}

[data-bs-theme="dark"] #loading-overlay .loading-bar::before {
    background: var(--dark-accent);
}

[data-bs-theme="dark"] #controls button {
    color: #ffffff;
    border: 1px solid var(--dark-accent);
    transition: background-color 150ms ease, color 150ms ease;
}

[data-bs-theme="dark"] #node-tooltip {
    box-shadow: none;
}

[data-bs-theme="dark"] .dropdown-menu {
    --bs-dropdown-bg: var(--dark-background);
    --bs-dropdown-color: var(--dark-text);
    --bs-dropdown-border-color: var(--dark-border);
    --bs-dropdown-link-color: var(--dark-text);
    --bs-dropdown-link-hover-color: var(--dark-text);
    --bs-dropdown-link-hover-bg: var(--surface-alt);
    --bs-dropdown-link-active-color: #ffffff;
    --bs-dropdown-link-active-bg: var(--dark-accent);
}

[data-bs-theme="dark"] .swal2-cancel {
    background: var(--dark-background) !important;
    color: var(--dark-text) !important;
    border: 1px solid var(--line-strong) !important;
}

[data-bs-theme="dark"] .swal2-cancel:is(:hover, :focus) {
    background: var(--surface-alt) !important;
}

[data-bs-theme="dark"] .dataTables_wrapper :is(input, select) {
    background: var(--dark-background);
    color: var(--dark-text);
    border-color: var(--dark-border);
}

[data-bs-theme="dark"] .dataTables_wrapper :is(input, select):focus-visible {
    outline: 2px solid var(--dark-accent);
    outline-offset: 2px;
}

[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate a.paginate_button {
    background: var(--dark-background) !important;
    color: var(--dark-text) !important;
    border: 1px solid var(--dark-border) !important;
    box-shadow: none;
}

[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate a.paginate_button:hover {
    background: var(--surface-alt) !important;
}

[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate a.paginate_button.current {
    background: var(--dark-accent) !important;
    color: #ffffff !important;
    border-color: var(--dark-accent) !important;
}
