body.dark-mode {
    --background-color: #121212;
    --text-color: #e0e0e0;
    --light-gray: #1e1e1e;
    --border-color: #333333;
    --white: #1e1e1e;
    --card-bg: #1e1e1e;
}

body.dark-mode .evolution-controls {
    background: var(--card-bg, #1e1e1e);
    border-bottom-color: #333;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04);
}

body.dark-mode .mobile-map-switch-btn {
    background: #2c2c2c;
    border-color: #444;
    color: #e0e0e0;
}

body.dark-mode .mobile-map-switch-btn.active {
    background: #009640;
    border-color: #009640;
    color: #fff;
}

body.dark-mode .mobile-filters-btn {
    background: #2c2c2c;
    border-color: #444;
    color: #e0e0e0;
}

body.dark-mode .mobile-info-btn {
    background: #2c2c2c;
    border-color: #444;
    color: #e0e0e0;
}

body.dark-mode .mobile-close-sidebar-btn {
    border-color: #444;
    color: #e0e0e0;
}

body.dark-mode .mobile-action-bar {
    background: #121212;
}

body.dark-mode #tab-vulnerability .sidebar::before {
    background: #4e5661;
}

body.dark-mode .global-super-header {
    background-color: #1e1e1e;
    border-bottom-color: #F58634;
}

body.dark-mode .super-header-title,
body.dark-mode .super-header-selector label {
    color: #e0e0e0;
}

body.dark-mode .year-selector-pill {
    background-color: #2c2c2c;
    color: #e0e0e0;
    border-color: #555;
}

body.dark-mode .sidebar {
    background-color: #1e1e1e;
    border-right-color: #333;
}

body.dark-mode .control-group {
    background-color: #2c2c2c;
    border-color: #444;
}

body.dark-mode .story-box {
    background-color: #2c2c2c;
    border-color: #444;
}

body.dark-mode .tab-header,
body.dark-mode .tab-button {
    background-color: #1e1e1e;
    color: #e0e0e0;
    border-color: #444;
}

body.dark-mode .tab-button.active {
    background-color: #2c2c2c;
    color: var(--primary-color, #F58634);
    border-bottom-color: var(--primary-color, #F58634);
}

body.dark-mode .modal-content {
    background-color: #1e1e1e;
    color: #e0e0e0;
}

body.dark-mode .modal-header {
    background-color: #1e1e1e;
    border-bottom-color: #333;
    color: #e0e0e0;
}
body.dark-mode .modal-title {
    color: #e0e0e0;
}
body.dark-mode #about-modal .modal-title {
    color: var(--primary-color, #F58634);
}
body.dark-mode .close-button {
    color: #a0a0a0;
}
body.dark-mode .close-button:hover {
    color: #fff;
}

body.dark-mode .app-footer {
    border-top-color: #333;
    color: #a0a0a0;
}

body.dark-mode .accordion-button {
    background-color: #2c2c2c;
    color: #e0e0e0;
    border-color: #444;
}

body.dark-mode .accordion-item {
    border-color: #444;
}

body.dark-mode .indicator-label,
body.dark-mode .accion-target {
    color: #e0e0e0;
}

body.dark-mode .form-check-label {
    color: #e0e0e0;
}

/* Fix Leaflet UI for dark mode */
body.dark-mode .leaflet-bar a {
    background-color: #2c2c2c;
    color: #e0e0e0;
    border-bottom-color: #444;
}
body.dark-mode .leaflet-bar a:hover {
    background-color: #3c3c3c;
}

body.dark-mode .legend {
    background-color: #1e1e1e;
    color: #e0e0e0;
    box-shadow: 0 1px 5px rgba(0,0,0,0.65);
}

.dark-mode-toggle {
    background: transparent;
    border: none;
    color: #5B5B5B;
    font-size: 1.2rem;
    cursor: pointer;
    padding: 0 10px;
    display: flex;
    align-items: center;
    transition: color 0.3s ease;
}

body.dark-mode .dark-mode-toggle {
    color: #e0e0e0;
}
.dark-mode-toggle:hover {
    color: var(--primary-color, #F58634);
}

/* --- SlimSelect Dark Mode --- */
body.dark-mode .ss-main {
    background-color: #2c2c2c !important;
    color: #e0e0e0 !important;
    border: 1px solid #555 !important;
}
body.dark-mode .ss-main * {
    color: #e0e0e0 !important;
    background-color: transparent !important;
    border: none !important;
}
body.dark-mode .ss-main .ss-arrow path {
    stroke: #e0e0e0 !important;
}
body.dark-mode .ss-content,
body.dark-mode .ss-content * {
    background-color: #1e1e1e !important;
    color: #e0e0e0 !important;
    border-color: #555 !important;
}
body.dark-mode .ss-content {
    border: 1px solid #555 !important;
}
body.dark-mode .ss-content .ss-search input {
    background-color: #2c2c2c !important;
    border: 1px solid #555 !important;
    min-width: 100% !important;
}
body.dark-mode .ss-content .ss-optgroup-label {
    color: var(--primary-color, #F58634) !important;
    background-color: #151515 !important;
    font-weight: bold !important;
}
body.dark-mode .ss-content .ss-list .ss-option:hover,
body.dark-mode .ss-content .ss-list .ss-option.ss-highlighted,
body.dark-mode .ss-content .ss-list .ss-option.ss-highlighted * {
    background-color: #3c3c3c !important;
    color: var(--primary-color, #F58634) !important;
}

/* --- Legend Fixes --- */
body.dark-mode .info.legend,
body.dark-mode .legend-wrapper > div,
body.dark-mode .legend-wrapper {
    background-color: rgba(30, 30, 30, 0.95) !important;
    color: #e0e0e0 !important;
    border: 1px solid #444;
}

body.dark-mode .info.legend h4,
body.dark-mode .legend-wrapper h4,
body.dark-mode .legend-item div {
    color: #e0e0e0 !important;
}

body.dark-mode .legend-info-btn {
    color: #a0a0a0;
}
body.dark-mode .legend-info-btn:hover {
    color: #fff;
}

/* --- Typographic fixes for UI Panels --- */
body.dark-mode .sidebar-header h4,
body.dark-mode .dimension-section-title,
body.dark-mode .compare-controls label {
    color: #fff;
}

body.dark-mode .indicator-label {
    color: #e0e0e0 !important;
}

body.dark-mode .story-box h3 {
    color: #fff;
}

body.dark-mode .story-box p {
    color: #ccc;
}

/* --- Fixed Sidebar / Accordion Colors --- */
body.dark-mode .accordion-group {
    background-color: #1e1e1e;
    border-color: #333;
}
body.dark-mode .accordion-header {
    background-color: #1e1e1e;
    color: #e0e0e0;
}
body.dark-mode .accordion-header:hover {
    background-color: #2c2c2c;
}
body.dark-mode .accordion-title {
    color: #e0e0e0;
}
body.dark-mode .accordion-header:has(input[type="radio"]:checked) {
    background-color: #2a2a2a;
    border-left-color: var(--primary-color, #F58634);
}
body.dark-mode .accordion-header:has(input[type="radio"]:checked) .accordion-title,
body.dark-mode .accordion-header:has(input[type="radio"]:checked) .radio-icon {
    color: var(--primary-color, #F58634);
}

body.dark-mode .accordion-content {
    background-color: #151515;
}
body.dark-mode .accordion-group.open .accordion-content {
    border-top-color: #333;
}

body.dark-mode .accordion-content .radio label > .radio-span,
body.dark-mode .radio label > .radio-span {
    color: #b0b0b0;
}
body.dark-mode .accordion-content .radio label:hover > .radio-span,
body.dark-mode .radio label:hover > .radio-span {
    background-color: #2c2c2c;
    color: #fff;
}
body.dark-mode .accordion-content .radio label > input[type='radio']:checked + .radio-span,
body.dark-mode .radio label > input[type='radio']:checked + .radio-span {
    background-color: rgba(245, 134, 52, 0.15);
    border-left-color: var(--primary-color, #F58634);
    color: #fff;
}

/* --- Tooltips & Popups Dark Mode --- */
body.dark-mode .custom-tooltip {
    background-color: #2c2c2c !important;
    color: #e0e0e0 !important;
    border: 1px solid #555;
    box-shadow: 0 4px 16px rgba(0,0,0,0.6);
}
body.dark-mode .custom-tooltip::before {
    border-right-color: #2c2c2c !important;
}
body.dark-mode .tooltip-description {
    color: #ccc;
}
body.dark-mode .tooltip-unit {
    color: #aaa;
}
body.dark-mode .leaflet-tooltip {
    background-color: #2c2c2c;
    color: #e0e0e0;
    border-color: #555;
}
body.dark-mode .leaflet-tooltip-top::before,
body.dark-mode .leaflet-tooltip-top:before {
    border-top-color: #2c2c2c;
}
body.dark-mode .leaflet-tooltip-bottom::before,
body.dark-mode .leaflet-tooltip-bottom:before {
    border-bottom-color: #2c2c2c;
}
body.dark-mode .leaflet-tooltip-left::before,
body.dark-mode .leaflet-tooltip-left:before {
    border-left-color: #2c2c2c;
}
body.dark-mode .leaflet-tooltip-right::before,
body.dark-mode .leaflet-tooltip-right:before {
    border-right-color: #2c2c2c;
}
body.dark-mode .leaflet-popup-content-wrapper,
body.dark-mode .leaflet-popup-tip {
    background-color: #2c2c2c;
    color: #e0e0e0;
}
body.dark-mode .leaflet-popup-content .section-title {
    color: var(--primary-color, #F58634);
}
body.dark-mode .leaflet-popup-content .popup-table th,
body.dark-mode .leaflet-popup-content .popup-table td {
    border-bottom-color: #444;
}
body.dark-mode .leaflet-popup-content h3 {
    color: var(--primary-color, #F58634);
}
body.dark-mode .leaflet-popup-content .trend-up {
    color: #ff6b6b;
}
body.dark-mode .leaflet-popup-content .trend-down {
    color: #51cf66;
}
body.dark-mode .leaflet-popup-content .trend-flat {
    color: #adb5bd;
}
body.dark-mode .evolution-shared-legend .evolution-shared-legend-box {
    background-color: rgba(44, 44, 44, 0.92);
}
body.dark-mode .evolution-shared-legend .evolution-shared-indice-wrapper {
    background-color: rgba(44, 44, 44, 0.8);
}
body.dark-mode .evolution-shared-legend .evolution-shared-legend-box h4 {
    color: #e0e0e0 !important;
}
body.dark-mode .evolution-shared-legend .evolution-shared-indice-wrapper .legend-item div {
    color: #e0e0e0 !important;
}

/* --- Leaflet generic controls --- */
body.dark-mode .leaflet-control-custom {
    background-color: #2c2c2c !important;
    color: #e0e0e0 !important;
}
body.dark-mode .leaflet-control-custom:hover {
    background-color: #3c3c3c !important;
}
