/* Theme overrides are loaded after the existing component styles. */
:root { color-scheme: light; }
.tema-switch {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: space-around;
  flex: 0 0 64px;
  width: 64px;
  height: 36px;
  padding: 0 4px;
  border: 1px solid var(--borde);
  border-radius: 999px;
  background: #e9f5ec;
  color: #154b32;
  cursor: pointer;
}
.tema-switch i { position: relative; z-index: 1; font-size: 13px; }
.tema-switch__indicador {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 4px #102d2226;
  transition: transform 180ms ease-out;
}
.tema-switch:focus-visible { outline: 3px solid var(--verde); outline-offset: 3px; }
[data-tema="oscuro"] {
  color-scheme: dark;
  --verde: #9addb1;
  --verde-osc: #c0efcf;
  --verde-claro: #263e31;
  --lima: #c3dc65;
  --tinta: #f2f4f3;
  --gris: #b5bdb8;
  --borde: #454e48;
  --borde-control: #748078;
  --fondo: #171918;
  --blanco: #222624;
  --superficie: #222624;
  --control: #1b1e1c;
  --osc: #f2f4f3;
  --claro: #263e31;
  --sombra: 0 12px 32px #00000030;
}
[data-tema="oscuro"] .tema-switch { background: var(--control); color: var(--tinta); border-color: var(--borde-control); }
[data-tema="oscuro"] .tema-switch__indicador { transform: translateX(28px); background: #3d4941; }
[data-tema="oscuro"] .cabecera { background: #171918f5; }
[data-tema="oscuro"] .marca { background: #fff; border-radius: 8px; }
[data-tema="oscuro"] :is(.buscador,.sugerencias,.sugerencias button,.filtros,.tarjeta,.sin-resultados,.mapa-panel,.mapa__nota,.confianza article,.servicio-item,.reserva-card,.modal__tarjeta,.video-publico,.medios-detalle span,.medios-reserva button,.calendario-mes,.calendario-dia,.calendario-hoy,.calendario-toolbar select,.atajo,.chip,.vista-selector button,.tarjeta__comparar,.comparar-detalle,.comparacion-bandeja,.comparacion-panel,.comparacion-panel>header,.comparacion-cabeceras,.comparacion-cabeceras article,.paginacion button,.atajos-flecha,.mapa-seleccion,.marcador-precio,.detalle-galerias__nav button,.amenities-modal__grupo article,.info-card,.detalle-interacciones>span,.detalle-interacciones button,.notificaciones-widget__panel,.notificaciones-widget__cabecera button) {
  background: var(--superficie);
  color: var(--tinta);
  border-color: var(--borde);
}
[data-tema="oscuro"] :is(.boton--fantasma,.boton--secundario,.icono-boton,.modal__cerrar,.barra-ubicacion select,.campo input,.campo select,.cuentas-publicas>div,.resumen-reserva,.condiciones-reserva,.comparacion-logo,#comparacion-seleccion button,.comparacion-vacio) {
  background: var(--control);
  color: var(--tinta);
  border-color: var(--borde);
}
[data-tema="oscuro"] :is(.campo>span,.subtitulo-filtro,.calendario-toolbar label span,.calendario-semana span,.detalle__descripcion,.legal p,.condiciones-reserva span,.condiciones-reserva p,.info-card p,.atajo) { color: var(--gris); }
[data-tema="oscuro"] input::placeholder { color: var(--gris); opacity: 1; }
[data-tema="oscuro"] :is(.campo input,.campo select,.calendario-toolbar select,.calendario-dia.disponible,.calendario-hoy,.boton--fantasma,.boton--secundario,.atajo,.chip,.amenidad-check,.medios-reserva button,.tarjeta__comparar,.comparar-detalle,.detalle-interacciones button) { border-color: var(--borde-control); }
[data-tema="oscuro"] :is(input,select,textarea) { accent-color: var(--verde); caret-color: var(--verde); }
[data-tema="oscuro"] ::selection { background: #9addb1; color: #171918; }
[data-tema="oscuro"] :is(.campo input,.campo select):focus { border-color: var(--verde); box-shadow: 0 0 0 3px #9addb126; }
[data-tema="oscuro"] :is(.boton--primario,.boton--buscar,.paginacion .paginacion__num.activo,.mapa-seleccion button) { background: #9addb1; color: #102d22; }
[data-tema="oscuro"] :is(.boton--primario,.boton--buscar):hover { background: #c0efcf; }
[data-tema="oscuro"] :is(.boton--ubicacion,.chip.activo,.atajo.activo,.medios-reserva button.activo,.tarjeta__comparar.activo,.comparar-detalle.activo,.detalle-interacciones button.activo,.vista-selector button.activo,.sugerencias button:hover) { background: var(--verde-claro); color: var(--verde-osc); border-color: var(--verde); }
[data-tema="oscuro"] :is(.servicio-item,.tarjeta__servicios span,.tarjeta__servicios .mas-servicios,.info-card>i) { background: #2c322e; color: #d5ddd7; border-color: var(--borde); }
[data-tema="oscuro"] .calificacion { color: #f1d46c; }
[data-tema="oscuro"] :is(.vista-selector,.filtros-activos button,.notificaciones-widget__boton,.notificaciones-widget__menu,.notificaciones-widget__acciones button,.notificaciones-widget__ver-todas,.video-publico__acciones button,.video-publico__acciones a,.buscar-zona-mapa) { background: var(--superficie); color: var(--tinta); border-color: var(--borde); }
[data-tema="oscuro"] :is(.hero__nav:hover,.hero__nav:focus-visible) { background: #c0efcf; color: #102d22; }
[data-tema="oscuro"] :is(.marcador-precio:hover,.cluster-aloja span) { background: #9addb1; color: #102d22; }
[data-tema="oscuro"] .tarjeta__distancia { background: var(--superficie); color: var(--tinta); }
[data-tema="oscuro"] :is(.evento-detalle,.detalle-reserva-sticky) { background: var(--superficie); color: var(--tinta); border-color: var(--borde); }
[data-tema="oscuro"] :is(.galeria__ver-todas,.galeria__nav,.navegacion-opciones>a,.amenidad-check,.acceso-magic__fila input) { background: var(--superficie); color: var(--tinta); border-color: var(--borde); }
[data-tema="oscuro"] .navegacion-opciones>a>i:first-child { background: var(--verde-claro); }
[data-tema="oscuro"] .calendario-dia.seleccionada { background: #9addb1; color: #102d22; border-color: #9addb1; }
[data-tema="oscuro"] .calendario-dia.disponible:hover { background: var(--verde-claro); border-color: var(--verde); }
[data-tema="oscuro"] .calendario-disponibilidad--consulta .calendario-dia.disponible:hover { background: var(--superficie); color: var(--tinta); border-color: var(--borde); }
[data-tema="oscuro"] :is(.calendario-dia.pasada,.medios-reserva button:disabled,.medios-detalle .no-disponible) { background: var(--control); color: #929d95; }
[data-tema="oscuro"] :is(.calendario-dia.ocupada,.fecha-ocupada,.error) { background: #512c2b; color: #ffc3ba; border-color: #a06d65; }
[data-tema="oscuro"] .calendario-disponibilidad__leyenda i.disponible { background: var(--superficie); }
[data-tema="oscuro"] .calendario-disponibilidad__leyenda i.ocupada { background: #512c2b; border-color: #a06d65; }
[data-tema="oscuro"] .comparacion-fila { border-color: var(--borde); }
[data-tema="oscuro"] .comparacion-fila.diferente>span { background: #454324; color: #f9ecc0; }
[data-tema="oscuro"] :is(.swal2-popup.aloja-feedback__popup,.leaflet-popup-content-wrapper,.leaflet-popup-tip) { background: var(--superficie); color: var(--tinta); border-color: var(--borde); }
[data-tema="oscuro"] .aloja-feedback__popup .swal2-html-container { color: var(--gris); }
[data-tema="oscuro"] .aloja-feedback__confirm { background: #9addb1 !important; color: #102d22 !important; }
[data-tema="oscuro"] .aloja-feedback__cancel { background: #343c37 !important; color: var(--tinta) !important; }
[data-tema="oscuro"] :is(.aloja-feedback__popup .swal2-input,.aloja-feedback__popup .swal2-textarea) { background: var(--control); color: var(--tinta); border-color: var(--borde); }
@media (max-width: 680px) {
  .cabecera__interior { height: auto; min-height: 64px; flex-wrap: wrap; gap: 8px; padding-top: 6px; padding-bottom: 6px; }
  .cabecera__acciones { flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
  .cabecera__acciones .boton { font-size: 12px; padding: 10px; }
  .tema-switch { flex-basis: 60px; width: 60px; }
  [data-tema="oscuro"] .tema-switch__indicador { transform: translateX(24px); }
}
@media (prefers-reduced-motion: reduce) { .tema-switch__indicador { transition: none; } }

/* Account and guest screens share the explore palette and stored preference. */
.cuenta-cabecera-acciones { display: flex; align-items: center; gap: 12px; }
.pagina-cuenta .cabecera { height: auto; min-height: 70px; gap: 12px; padding: 7px 0; }
.marca-cuenta { display: inline-flex; flex: 0 0 auto; }
[data-tema="oscuro"] .pagina-inquilino {
  --inquilino-verde: var(--verde);
  --inquilino-verde-osc: var(--verde-osc);
  --inquilino-fondo: var(--fondo);
  --inquilino-borde: var(--borde);
  --inquilino-tinta: var(--tinta);
  --inquilino-gris: var(--gris);
}
[data-tema="oscuro"] :is(.pagina-cuenta>header,.pagina-cuenta .cabecera) { background: var(--fondo); }
[data-tema="oscuro"] .marca-cuenta { background: #fff; border-radius: 8px; }
[data-tema="oscuro"] :is(.caja,.modulo,.reserva-ficha,.item.reserva-item,.lista>.item,.menu-perfil-inquilino,.menu-perfil-inquilino::before,.modal-perfil-inquilino,.modal-perfil-inquilino header,.modal-perfil-inquilino footer,.estado-seccion,.tabs-inquilino,.notificaciones-widget__item) { background: var(--superficie); color: var(--tinta); border-color: var(--borde); }
[data-tema="oscuro"] .panel-bienvenida { background: var(--superficie); box-shadow: none; color: var(--tinta); }
[data-tema="oscuro"] .panel-bienvenida :is(p,.panel-bienvenida__fecha) { color: var(--gris); }
[data-tema="oscuro"] .panel-bienvenida .boton--primario { background: var(--verde); color: #102d22; }
[data-tema="oscuro"] :is(.pagina-cuenta input,.pagina-inquilino .modal-perfil-inquilino__contenido input,.pagina-inquilino .modal-perfil-inquilino__contenido select,.pagina-inquilino .modal-perfil-inquilino__contenido textarea) { background: var(--control); color: var(--tinta); border-color: var(--borde-control); }
[data-tema="oscuro"] :is(.pagina-cuenta input,.pagina-inquilino .modal-perfil-inquilino__contenido input):focus { border-color: var(--verde); box-shadow: 0 0 0 3px #9addb126; }
[data-tema="oscuro"] .pagina-cuenta input[readonly] { color: var(--gris); }
[data-tema="oscuro"] .pagina-cuenta :is(.google,.secundario) { background: var(--control); color: var(--tinta); border-color: var(--borde-control); }
[data-tema="oscuro"] .pagina-cuenta .primario { background: var(--verde); color: #102d22; }
[data-tema="oscuro"] .pagina-cuenta .separador span { background: var(--superficie); }
[data-tema="oscuro"] .pagina-cuenta :is(.ayuda,.legal-pie) { color: var(--gris); }
[data-tema="oscuro"] .pagina-cuenta .pestanas button { color: var(--gris); }
[data-tema="oscuro"] .pagina-cuenta .pestanas button.activo { color: var(--verde); }
[data-tema="oscuro"] :is(.reserva-ficha__foto,.usuario-avatar-inquilino,.perfil-card__avatar,.perfil-avatar-preview) { background: #2c322e; color: var(--tinta); }
[data-tema="oscuro"] :is(.menu-perfil-inquilino button:hover,.menu-perfil-inquilino>a:hover) { background: #343c37; color: var(--tinta); }
[data-tema="oscuro"] .perfil-avatar-accion input::file-selector-button { background: #343c37; color: var(--tinta); border-color: var(--borde-control); }
[data-tema="oscuro"] :is(.perfil-card__dato,.acciones-reserva) { border-color: var(--borde); }
[data-tema="oscuro"] .reserva-insignia--ok { background: #263e31; color: #c0efcf; }
[data-tema="oscuro"] .reserva-insignia--info { background: #223945; color: #c5e6f7; }
[data-tema="oscuro"] :is(.reserva-insignia--pendiente,.reserva-ficha__advertencia,.estado-pago--pendiente) { background: #454324; color: #f9ecc0; }
[data-tema="oscuro"] .reserva-insignia--neutro { background: #343c37; color: #d5ddd7; }
[data-tema="oscuro"] :is(.reserva-insignia--error,.estado-pago--error,.estado-seccion--error) { background: #512c2b; color: #ffc3ba; }
[data-tema="oscuro"] .estado-seccion--error strong { color: #ffc3ba; }
[data-tema="oscuro"] .estado-pago--ok { background: #263e31; color: #c0efcf; }
[data-tema="oscuro"] .notificacion-no-leida { background: #263e31 !important; border-color: #748078 !important; }
[data-tema="oscuro"] .notificacion-borrar { background: #512c2b !important; color: #ffc3ba !important; border-color: #a06d65 !important; }
@media(max-width:360px) { .pagina-cuenta .cabecera img { width: 86px; height: 48px; } .cuenta-cabecera-acciones { gap: 8px; } .cuenta-cabecera-acciones .boton { padding: 10px; font-size: 12px; } }
