/*
 * Modo oscuro: lo que Bootstrap 5.3 no adapta solo.
 *
 * Todo va bajo [data-bs-theme="dark"]: en claro este fichero no cambia nada.
 * Bootstrap ya pone en oscuro tarjetas, formularios, tablas, menús y modales; aquí se
 * corrigen las utilidades que fijan un color de claro (bg-white, bg-light, text-dark,
 * table-light…) y los colores de nuestro CSS. En plantillas nuevas usa las que siguen
 * al tema (bg-body, bg-body-tertiary, text-body, text-body-secondary) y no hace falta
 * nada de esto. Ver docs/mi_cuenta.md (paso 3).
 */

[data-bs-theme="dark"] {
    --energyris-orange: #ED6B22;
    --energyris-hover-bg: rgba(255, 255, 255, 0.06);
    color-scheme: dark;
}

/* --- Utilidades de Bootstrap con color fijo de claro ------------------------ */

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

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

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

/* …salvo sobre fondos que siguen siendo claros en oscuro (amarillo, azul claro…). */
[data-bs-theme="dark"] .text-dark:is(.bg-warning, .bg-info, .bg-light-subtle, .btn-warning, .btn-info, .text-bg-warning, .text-bg-info),
[data-bs-theme="dark"] :is(.bg-warning, .bg-info, .btn-warning, .btn-info) .text-dark {
    color: #212529 !important;
}

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

[data-bs-theme="dark"] .table-light {
    --bs-table-color: var(--bs-body-color);
    --bs-table-bg: var(--bs-tertiary-bg);
    --bs-table-border-color: var(--bs-border-color);
    --bs-table-striped-bg: var(--bs-secondary-bg);
    --bs-table-striped-color: var(--bs-body-color);
    --bs-table-hover-bg: var(--bs-secondary-bg);
    --bs-table-hover-color: var(--bs-body-color);
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .btn-light {
    --bs-btn-color: var(--bs-body-color);
    --bs-btn-bg: var(--bs-tertiary-bg);
    --bs-btn-border-color: var(--bs-border-color);
    --bs-btn-hover-color: var(--bs-body-color);
    --bs-btn-hover-bg: var(--bs-secondary-bg);
    --bs-btn-hover-border-color: var(--bs-border-color);
    --bs-btn-active-color: var(--bs-body-color);
    --bs-btn-active-bg: var(--bs-secondary-bg);
}

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

/* --- Nuestro CSS (custom.css, dashboard_modern.css, global_search.css…) ----- */

[data-bs-theme="dark"] .sidebar .nav-pills .nav-link:not(.active):hover {
    color: var(--bs-emphasis-color);
}

[data-bs-theme="dark"] .sidebar .nav-link::before {
    background-color: var(--energyris-hover-bg);
}

@media (max-width: 767.98px) {
    [data-bs-theme="dark"] .sidebar {
        border-bottom-color: var(--bs-border-color);
    }
}

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

[data-bs-theme="dark"] .assets-nav-item {
    color: var(--bs-secondary-color);
}

[data-bs-theme="dark"] .assets-nav-item:hover:not(.active) {
    background-color: var(--energyris-hover-bg);
    color: var(--bs-body-color);
}

[data-bs-theme="dark"] .assets-nav-item.active {
    background-color: var(--bs-body-bg);
}

[data-bs-theme="dark"] .dashboard-modern-container {
    color: var(--bs-body-color);
}

[data-bs-theme="dark"] .card-modern {
    background: var(--bs-body-bg);
    border-color: var(--bs-border-color);
}

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

[data-bs-theme="dark"] .metric-label {
    color: var(--bs-secondary-color);
}

[data-bs-theme="dark"] .chart-container-modern,
[data-bs-theme="dark"] .breakdown-tooltip {
    background: var(--bs-body-bg);
    border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] #global-search-container input:focus {
    background-color: var(--bs-body-bg) !important;
}

[data-bs-theme="dark"] #global-search-results .dropdown-item.active,
[data-bs-theme="dark"] #global-search-results .dropdown-item:active {
    background-color: var(--bs-secondary-bg);
    color: var(--bs-body-color);
}

[data-bs-theme="dark"] #global-search-results .dropdown-item:hover {
    background-color: var(--bs-tertiary-bg);
}

[data-bs-theme="dark"] a.text-decoration-none:hover .card {
    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .5) !important;
}

/* --- Mapas (Leaflet) -------------------------------------------------------- */
/* Teselas en oscuro sin cambiar de proveedor: se invierten y se recoloca el tono. */

[data-bs-theme="dark"] .leaflet-container {
    background: #1b1e21;
}

[data-bs-theme="dark"] .leaflet-tile-pane {
    filter: invert(1) hue-rotate(180deg) brightness(0.9) contrast(0.9);
}

[data-bs-theme="dark"] .leaflet-popup-content-wrapper,
[data-bs-theme="dark"] .leaflet-popup-tip,
[data-bs-theme="dark"] .leaflet-control-layers,
[data-bs-theme="dark"] .leaflet-bar a {
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .leaflet-control-attribution {
    background: rgba(33, 37, 41, 0.8) !important;
    color: var(--bs-secondary-color);
}

[data-bs-theme="dark"] .leaflet-control-attribution a {
    color: var(--bs-link-color);
}

/* --- Select2 (tema bootstrap-5, con colores fijos) ------------------------- */

[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection,
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-dropdown,
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field {
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered,
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option {
    color: var(--bs-body-color);
}

[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--highlighted {
    background-color: var(--bs-secondary-bg);
    color: var(--bs-body-color);
}

[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice {
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
}

/* --- Pantallas de cuenta (login, registro) ---------------------------------- */

[data-bs-theme="dark"] .form-signin-container {
    background-color: rgba(33, 37, 41, 0.92);
}

/* --- Navegación lateral de página (.side-nav, custom.css) ------------------- */

[data-bs-theme="dark"] .side-nav .nav-link::before {
    background-color: var(--energyris-hover-bg);
}

[data-bs-theme="dark"] .side-nav .nav-link:not(.active):hover {
    color: var(--bs-emphasis-color);
}
