

/* ===== Extracted from inline <style> blocks ===== */



/* ---- style block 1 ---- */
html, body {
  margin: 0;
  padding: 0;
  height: 100%;
  overflow: hidden;              /* 👈 impide que el body se desplace */
  background: #000;              /* por si acaso se ve fondo */
  overscroll-behavior: contain;  /* evita “scroll chaining” en navegadores modernos */
}



#precache-toast {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(0, 0, 0, 0.8);
  color: #fff;
  padding: 14px 22px;
  border-radius: 8px;
  font-size: 16px;
  z-index: 10000;
  opacity: 0;
  display: none;
  transition: opacity 0.7s ease;
  text-align: center;
}



#map { position: absolute; top: 0; bottom: 0; width: 100%; background-color: 
  #3E4048;} 
 
 
  #header {
      position: fixed;
      top: 74px;
      left: 10px;
      z-index: 1000;
      display: none;
      justify-content: space-between;
      pointer-events: none;
    }
    #app-title {
      font-size: 16px;
      font-weight: 900;
      color: white;
      text-shadow: 0 0 10px rgba(0,0,0,0.7);
      background: rgba(0, 0, 0, 0);
      padding: 4px 10px;
      border-radius: 8px;
      /* display: none; */
      touch-action: none;
      cursor: pointer;   

    }
    
    #app-title span {
        touch-action: none;
      color: #4FC3F7; /* Color azul para el "Tok" */
    }

#time-info{
  position: fixed;
  bottom: 30px;

  left: 10px;
  right: 10px;
  width: auto;

  transform: none;          /* 👈 anula el translateX(-50%) */
  z-index: 12050;

  background-color: rgba(0,0,0,0.0);
  border-radius: 15px;
  padding: 10px;

  display: flex;
  flex-direction: column;
  align-items: stretch;     /* 👈 clave: hijos a ancho completo */
  gap: 5px;
  box-sizing: border-box;
}






#play-container {
          position: absolute;
          top: calc(40px + 5 * 40px + 90px);
          right: 10px;
          z-index: 100;
          background: rgba(0, 0, 0, 0);
          padding: 10px;
          border-radius: 5px;
      }

.time-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
}

.time-header .button {
  flex: 0 0 auto;  /* los botones mantienen su tamaño natural */
}


#time-info .button {
  width: 44px;          /* ajusta 40–48 según lo que te guste más */
  min-width: 44px;
  padding: 4px 0;       /* que no se hagan enormes en vertical */
  display: inline-flex;
  align-items: center;  /* centra icono/texto verticalmente */
  justify-content: center; /* centra horizontalmente */
}



#time-text{
  flex: 0 1 auto;          /* NO ocupa todo, pero puede encoger */
  display: inline-block;
  max-width: 60vw;         /* para no tapar todo si el texto es largo */
  text-align: center;

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;

  font-size: 12px;
  font-weight: 600;
  color: #fff !important;

  background: rgba(0,0,0,0);
  padding: 3px 6px;
  border-radius: 10px;
  text-shadow: 0 0 10px rgba(0,0,0,.7);
}

#time-text-top{
  position: fixed;
  top: 74px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 100;

  padding: 10px 14px;
  border-radius: 14px;

  background: rgba(20,20,24,0);
  color: #fff;

  font-weight: 800;
  font-size: 12px; /* más grande */
  line-height: 1;
  white-space: nowrap;

  pointer-events: none;
  user-select: none;
}



#pointer-data {
    z-index: 1;
    position: fixed;
    font-size: 20px;
    font-weight: 900;
  
    text-shadow: 0px 0px 10px #0007;
    right: 10px;
    /* transform: translateX(-50%); */
    text-align: center;

    background-color: rgba(14, 70, 119, 0.506); /* Fondo negro traslúcido */
    color: white !important; /* Asegura que el texto sea blanco */
    padding: 5px 10px; /* Añade un poco de espacio alrededor del texto */
    border-radius: 5px; /* Opcional: Redondea las esquinas */
    text-shadow: 0px 0px 10px #0007; /* Mantén el texto con sombra para resaltar */
}

/* Caja flotante tipo bandera */
#pointer-callout {
  position: absolute;
  display: none;                /* se muestra con JS */
  padding: 6px 10px;
  background: rgb(255, 255, 255);  /* negro 60% */
  color: #e4d9d9;
  border-radius: 8px;
  box-shadow: 0 6px 24px rgba(0,0,0,.22), 0 2px 6px rgba(0,0,0,.18);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;          /* no se parte en dos líneas */
  pointer-events: none;         /* no interfiere con el mapa */
  z-index: 70;                  /* por encima del mapa y controles */
  
}

/* la cola es un div aparte, rombo con clip-path (sin rotaciones) */
#pointer-callout-tail {
  position:absolute; z-index:69;   /* por debajo de la caja */
  width:12px; height:12px;
  background: rgba(0,0,0,.6);
  clip-path: polygon(50% 0,100% 50%,50% 100%,0 50%);
  display:none; /* la mostramos con JS cuando haya callout */
}


/* la “punta” en forma de rombo */
/* Base: rombo nítido */
#pointer-callout::after {
  content: "";
  position: absolute;
  width: 12px; height: 12px;
  background: rgba(0,0,0,0.0);
  clip-path: polygon(50% 0,100% 50%,50% 100%,0 50%); /* rombo */
  /* 🔧 Reset de posiciones para evitar herencias raras */
  top: auto; right: auto; bottom: auto; left: auto;
}

/* Caja arriba-derecha del punto → flecha en esquina abajo-izquierda */
#pointer-callout.dir-ne::after {
  left: -6px !important;
  bottom: -6px !important;
}

/* Arriba-izquierda → flecha abajo-derecha */
#pointer-callout.dir-nw::after {
  right: -6px !important;
  bottom: -6px !important;
}

/* Abajo-derecha → flecha arriba-izquierda */
#pointer-callout.dir-se::after {
  left: -6px !important;
  top: -6px !important;
}

/* Abajo-izquierda → flecha arriba-derecha */
#pointer-callout.dir-sw::after {
  right: -6px !important;
  top: -6px !important;
}

:root { --callout-gap: 8px; }
#pointer-callout.dir-ne::after { left: calc(-6px - var(--callout-gap)); bottom: calc(-6px - var(--callout-gap)); }


/* quita cualquier pseudo-cola previa */
#pointer-callout::after { display:none !important; }

/* y si usas la cola independiente, ocúltala */
#pointer-callout-tail { display:none !important; }

#pointer-data {
    z-index: 1;
    position: fixed;
    font-size: 14px;
    font-weight: 900;
  
    text-shadow: 0px 0px 10px #0007;
    right: 10px;
    /* transform: translateX(-50%); */
    text-align: center;



  background: rgba(0, 0, 0, 0) !important;
  color: #fff;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.15);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.6);
}

/* Caja flotante tipo bandera */
#pointer-callout {
  position: absolute;
  display: none;                /* se muestra con JS */
  padding: 3px 5px;
  background: rgba(6, 89, 134, 0.5);  /* negro 60% */
  color: #ffffff;
  border-radius: 12px;
  box-shadow: 0 6px 24px rgba(0,0,0,.22), 0 2px 6px rgba(0,0,0,.18);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;          /* no se parte en dos líneas */
  pointer-events: none;         /* no interfiere con el mapa */
  z-index: 70;                  /* por encima del mapa y controles */
}


/* la cola es un div aparte, rombo con clip-path (sin rotaciones) */
#pointer-callout-tail {
  position:absolute; z-index:69;   /* por debajo de la caja */
  width:12px; height:12px;
  background: rgba(0,0,0,.6);
  clip-path: polygon(50% 0,100% 50%,50% 100%,0 50%);
  display:none; /* la mostramos con JS cuando haya callout */
}


/* la “punta” en forma de rombo */
/* Base: rombo nítido */
#pointer-callout::after {
  content: "";
  position: absolute;
  width: 12px; height: 12px;
  background: rgba(0,0,0,0.0);
  clip-path: polygon(50% 0,100% 50%,50% 100%,0 50%); /* rombo */
  /* 🔧 Reset de posiciones para evitar herencias raras */
  top: auto; right: auto; bottom: auto; left: auto;
}

/* Caja arriba-derecha del punto → flecha en esquina abajo-izquierda */
#pointer-callout.dir-ne::after {
  left: -6px !important;
  bottom: -6px !important;
}

/* Arriba-izquierda → flecha abajo-derecha */
#pointer-callout.dir-nw::after {
  right: -6px !important;
  bottom: -6px !important;
}

/* Abajo-derecha → flecha arriba-izquierda */
#pointer-callout.dir-se::after {
  left: -6px !important;
  top: -6px !important;
}

/* Abajo-izquierda → flecha arriba-derecha */
#pointer-callout.dir-sw::after {
  right: -6px !important;
  top: -6px !important;
}

:root { --callout-gap: 8px; }
#pointer-callout.dir-ne::after { left: calc(-6px - var(--callout-gap)); bottom: calc(-6px - var(--callout-gap)); }


/* quita cualquier pseudo-cola previa */
#pointer-callout::after { display:none !important; }

/* y si usas la cola independiente, ocúltala */
#pointer-callout-tail { display:none !important; }

#pointer-data {
    top: 360px; /* Ajusta la posición vertical según lo necesites */
     font-weight: 900;
}










#variable-name {
    z-index: 1000;
    position: fixed;
    top: 10px;
    right: 60px;
    font-size: 16px;
    font-weight: 900;
    color: #f1f4f5; /* Azul claro como ClimaTok */
    text-shadow: 0 0 10px rgba(0, 0, 0, 0);
    background: rgba(0, 0, 0, 0);
    padding: 8px 15px;
    border-radius: 5px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    text-transform: uppercase;
    letter-spacing: 1px;
    display: none;
    align-items: center;
    gap: 10px; /* Espacio entre icono y texto */
    display:none;
}







ul {
    list-style-type: none;
    padding: 0;
    margin: 5px;
  }


#map {
position: absolute;
top: 0;
bottom: 0;
width: 100%;
}

#projection {
    display: block;
    position: relative;
    margin: 0px auto;
    width: 50%;
    height: 40px;
    padding: 10px;
    border: none;
    border-radius: 3px;
    font-size: 12px;
    text-align: center;
    color: 
#fff;
    background: 
#ee8a65;
  }

#wind-overlay, #coastline {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
}

/* Contenedor de botones (posición original) */
#buttons {
position: fixed;
top: 50px;       /* Ajusta según necesidad */
right: 10px;
z-index: 1000;
background: transparent;
padding: 10px;
border-radius: 10px;
display: flex;
flex-direction: column;
gap: 10px;
}

.maplibregl-ctrl-top-right .gc-group{
  margin-right: 5px !important;   /* separa 5px del borde derecho */
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  padding: 0 !important;
  position: relative !important;   /* 👈 IMPORTANTE */
  z-index: 20000 !important;    
}

.maplibregl-ctrl-top-right .gc-group{
  transform: translateX(20px);  /* empuja 5 px hacia la izquierda */
   position: relative !important;
  z-index: 20000 !important;
}

/* Wrapper del geocoder, sin fondo propio */
.maplibregl-ctrl-geocoder{
  margin-right: 0px !important;   /* separa 5px del borde derecho */
  background: transparent !important;
  width: 280px !important;
  height: 36px !important;
  position: relative !important;
   z-index: 20001 !important;
  
}

/* Por defecto, el geocoder oculto */
.maplibregl-ctrl-geocoder{
  display: none !important;      /* 🔴 oculto inicialmente */
}

/* Cuando tenga esta clase, se verá como antes */
.maplibregl-ctrl-geocoder.geocoder-visible{
  display: block !important;
  position: fixed !important;
  left: 50% !important;
  top: 38% !important;
  transform: translateX(-50%);
  
  width: min(90vw, 300px) !important;
  height: auto !important;
  margin: 0 !important;
  padding: 12px 12px 10px 12px !important;

  background: rgba(0, 0, 0, 0) !important;
  border-radius: 12px !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.7);

  z-index: 30000 !important;  /* por encima de título, capas, botones, etc. */
}

.legend-header .value,
.legend-footer .value {
  display: inline-block;
  width: 60px;       /* ajusta */
  text-align: center;
  white-space: nowrap;
}


/* Input con su fondo/borde (la única caja visible) */
.maplibregl-ctrl-geocoder input[type="text"]{
  height: 100% !important;
  line-height: 36px !important;
  padding: 5px 10px 5px 32px !important; /* hueco para la lupa */
  width: 100% !important;
  box-sizing: border-box !important;

  background: #5f5c5c !important;
  border: 1px solid #cfcfcf !important;
  border-radius: 8px !important;

  font-size: 16px !important; /* evita zoom iOS */
  -webkit-text-size-adjust: 100%; 
  z-index: 24000 !important;
}

/* Lupa centrada en vertical */
.maplibregl-ctrl-geocoder .maplibregl-ctrl-geocoder--icon{
  
  position: absolute !important;
  left: 8px; top: 50%; transform: translateY(-50%);
  width: 16px; height: 16px; margin: 0 !important; pointer-events:none;
}

/* Clear button alineado sin cambiar altura */
.maplibregl-ctrl-geocoder .maplibregl-ctrl-geocoder--button{
  position: absolute !important;
  right: 6px; top: 50%; transform: translateY(-50%);
  width: 20px; height: 20px; margin: 0 !important;
}

/* Dropdown flotante para que no “empuje” otra caja debajo */
.maplibregl-ctrl-geocoder .suggestions,
.maplibregl-ctrl-geocoder .results,
.maplibregl-ctrl-geocoder ul{
  position: absolute !important;
  top: calc(100% + 4px) !important;
  left: 0; right: 0; width: 100% !important;
  max-height: 50vh; overflow: auto;
   z-index: 20003 !important;
}


.maplibregl-ctrl-top-right .maplibregl-ctrl:has(.maplibregl-ctrl-geocoder){
  margin-right: 5px !important;   /* separa 5px del borde derecho */
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  padding: 0 !important;
}


/* Wrapper de la leyenda, copia el layout de #time-info */
#legend-wrapper {
  position: fixed;
  top: 14px;                     
  left: 50%;
  transform: translateX(-50%);
  width: min(270px, 90vw);           /* 👈 MISMO ancho que time-info */
  z-index: 9998;                     /* justo por debajo o encima, como prefieras */
}

/* El contenedor del LegendControl ocupa todo el ancho del wrapper */
#legend-wrapper .weatherlayers-legend-control {
  margin: 0;
  width: 100% !important;            /* anula el style="width: 300px" inline */
}

/* Caja interna: 100% del ancho del control */
#legend-wrapper .weatherlayers-legend-control > div {
  display: inline-block;
  background: rgba(0, 0, 0, 0.0);
  border-radius: 15px;
  font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;
  font-size: px;
  line-height: 14px;
  /* color: #fff; */

  width: 100%;
}


.weatherlayers-legend-control {
  margin: 10px;
  pointer-events: auto; /* force controls to be clickable when added as MapLibre/Mapbox control */
}
.weatherlayers-legend-control > div {
  display: inline-block;
  background: rgba(0, 0, 0, 0);
 
  font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;
  font-size: 14px;
  line-height: 24px;
  color: #ffffff00; 
   /* 👇 ancho estable, sin saltos */
  border-radius: 15px;
  
  width: 100%;
 
}
.weatherlayers-legend-control header, .weatherlayers-legend-control main {
  margin: 5px 10px;
}
.weatherlayers-legend-control header {
  font-weight: bold;
  font-size: 12px;


}
.weatherlayers-legend-control__legend {
  width: 100%;
  margin-top: 5px;
  vertical-align: middle;
}
.weatherlayers-legend-control__legend text {
  fill: #ffffff;      /* blanco */
  font-weight: 500;   /* opcional */
  
}




.maplibregl-ctrl-color-ramp {
  display: none;
  position: fixed !important;
  top: 65%;                  /* centro vertical de la pantalla */
  right: 18px;               /* pegado a la derecha */
  transform: translateY(-50%); /* sube la mitad de su propia altura */
  font-size: 13px !important;
  z-index: 1200;            /* por si algo la tapa */
}

.maplibregl-ctrl-color-ramp.is-hidden {
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity .15s ease;
}

.weatherlayers-tooltip-control > div {
  display: inline-flex;
  align-items: center;
  background: rgba(255, 255, 255, 0.5);
  padding: 0 5px;
  font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 20px;
  color: rgba(0, 0, 0, 0);
  white-space: nowrap;
}




#buttons {
list-style: none; /* Elimina los puntos de la lista */
padding: 0; /* Elimina el padding por defecto */
}

#buttons li {
list-style: none; /* Asegura que cada botón no tenga viñeta */
}


#time-controls {
display: flex;
align-items: center;
gap: 10px; /* Espacio entre slider y botón */
width: 100%; /* Ocupa todo el ancho disponible */
}

#time-slider {
flex-grow: 1; /* Ocupa el espacio restante */
width: 200px; /* Ancho mínimo para evitar que desaparezca */
margin: 0;
}

#play-pause-bt {
     align-items: center;
    justify-content: center;
  width: 40px; /* Tamaño fijo para el botón */
  height: 40px;
 margin:0;
}

#play-pause-bt .icon-svg svg,
#play-pause-bt svg {
  width: 18px;
  height: 18px;
  display: inline-block;
  vertical-align: -2px;
  /* los SVG inline heredarán el color del texto del botón */
  fill: currentColor;
}

/* Si el play.svg trae fill “duro”, lo forzamos: */
#play-icon svg path,
#play-icon svg rect,
#play-icon svg polygon,
#play-icon svg circle {
  fill: currentColor !important;
}


/* #play-icon, #pause-icon {
  font-size: 16px;
} */

#play-icon, #pause-icon {
    font-size: 16px;
    width: 16px;
    height: 16px;
    display: inline-block;
}

/* botón play/pause (el de la timeline grande) */
#play-pause-bt:disabled {
  opacity: .5;
  cursor: not-allowed;
  filter: grayscale(70%);
  pointer-events: none;              /* evita hover/click */
}

/* por si quieres que los iconos dentro también se apaguen un poco */
#play-pause-bt:disabled i {
  opacity: 0.0;
}

/* opcional: regla genérica para todos los <button> con tu clase .button */
button.button:disabled {
  opacity: .5;
  cursor: not-allowed;
  filter: grayscale(70%);
  pointer-events: none;
}


.legend {
  position: absolute;
  right: 12px;
  top: 80px;              /* antes 72px aprox → ahora 80px exactos */
  width: 160px;           /* opcional: un pelín más ancha */
  background: rgba(20,20,24,.9);
  backdrop-filter: blur(4px);
  color: #fff;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  overflow: hidden;
  z-index: 5000;
}

/* la leyenda siempre visible: elimina estados "hidden" si existían */
.legend.hidden { opacity: 1; pointer-events: auto; transform: none; }

/* canvas alto el doble */
#legend-canvas { display: block; border-radius: 6px; height: 480px; } /* era 240px */



.legend-header, .legend-footer {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 10px; font-size: 12px;
}
.legend-header { border-bottom: 1px solid rgba(255,255,255,.08); }
.legend-footer { border-top: 1px solid rgba(255,255,255,.08); opacity:.85; }


.legend-body { display: grid; grid-template-columns: auto 1fr; gap: 8px; padding: 10px; }
/* #legend-canvas { display: block; border-radius: 6px; } */

.legend-ticks { position: relative; font-size: 11px; line-height: 1.15; }
.legend-ticks .tick {
  position: absolute; transform: translateY(50%);
  display: flex; align-items: center; gap: 6px;
}
.legend-ticks .tick .rule {
  width: 10px; height: 1px; background: rgba(255,255,255,.6);
}






#data-source {
  position: fixed;
  top: 60px;
  left: 10px;
  z-index: 1000;
  background-color: rgba(0, 0, 0, 0);
  color: white;
  padding: 5px 5px;
  border-radius: 5px;
  font-size: 12px;
  font-family: sans-serif;
  display: none;
}

#data-source a {
  color: #add8e6; /* Azul claro para el enlace */
  text-decoration: none;
}

#data-source a:hover {
  text-decoration: underline;
}

#crosshair {
  position: absolute;
  width: 20px;
  height: 20px;
  pointer-events: none; /* Permite interactuar con el mapa */
  z-index: 1001; /* Por encima del mapa */
  display: none; /* Oculto inicialmente */
}

#crosshair::before, #crosshair::after {
  content: "";
  position: absolute;
  background: rgba(255, 255, 255, 0.8); /* Color blanco semitransparente */
}

/* Línea horizontal */
#crosshair::before {
  width: 100%;
  height: 2px;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

/* Línea vertical */
#crosshair::after {
  width: 2px;
  height: 100%;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
}

#language-switcher {
position: absolute;
top: 10px;
left: 10px;
z-index: 1000;
display: none;
}

.flag-icon {
cursor: pointer;
margin: 0 5px;
opacity: 0.7;
transition: opacity 0.3s;
}

.flag-icon:hover {
opacity: 1;
}


.button {
  color: white; /* Texto blanco */
  background: rgba(0, 0, 0, 0); /* Fondo negro con 70% de opacidad */
  border: 1px solid rgba(255, 255, 255, 0.3); /* Borde semi-transparente */
  padding: 8px 12px;
  cursor: pointer;
  font-size: 14px;
  border-radius: 5px;
  transition: background 0.3s ease; /* Transición suave al cambiar el fondo */
}

.button:hover {
  background: rgba(59, 102, 245, 0.6); /* Fondo negro más opaco al pasar el mouse */
}

.button.active {
  background: rgba(0, 0, 0, 0.6); /* Fondo negro más opaco para el botón activo */
  border: 1px solid rgba(255, 255, 255, 0.7); /* Borde más visible para el botón activo */
}

  .color-ramp-label {
    font-size: 16px;
  }


  .marker {
      position: absolute;
      pointer-events: none;
    }

     
 

/* Por defecto: visible (cuando la clase existe) */
html.maptiler-on .markerTemperature { display: inline-flex; }

/* Si NO hay clase (maptilerON = false) => oculto */
html:not(.maptiler-on) .markerTemperature { display: none !important; }



.markerTemperature .unit { font-size: .85em; opacity: .9; }

      @keyframes fadeIn {
        from {
          opacity: 0;
        }
        to {
          opacity: 1;
        }
      }

      .fade-in-animation {
        animation: fadeIn 0.5s ease forwards;
      }
	  
    /* Estilos para el modal de privacidad */
#privacy-modal h2 {
color: #333;
margin-top: 0;
}

#privacy-modal h3 {
color: #444;
margin: 20px 0 10px 0;
}

#privacy-modal ul {
padding-left: 20px;
}

#privacy-modal li {
margin-bottom: 5px;
}



.marker {
    position: absolute;
    pointer-events: none;

  }

  .markerPointy {
    width: 12px;
    height: 12px;
    background-color: 
#e6e6e6;
    position: absolute;
    transform: rotate(45deg) translate(-70%);
    bottom: -12px;
    left: 0;
    right: -12px;
    margin: auto;
    box-shadow: 
#00000040 0px 2px 10px;
  }

  .markerBody {
    position: absolute;
    background: 
#e6e6e6;
    width: 100%;
    height: 100%;
    top: 0;
    border-radius: 2px;
    /* padding: 3px;  */
  }

  .markerTop {
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
    width: 100%;
    height: 20px;
    line-height: 20px;
    text-align: center;
    background: 
#4d4d4d;
    color: 
white;
    font-size: 15px;
    font-weight: 400;
  }

  .markerBottom {
    border-radius: inherit;
    width: 100%;
    height: calc(100% - 20px);
    display: flex;
  }

  .markerBottomLeft {
    width: 50%;
    height: 100%;
    position: relative;
  }

  .markerBottomRight {
    width: 50%;
    height: 100%;
    position: relative;
  }

    .markerTemperature {

   white-space: nowrap;       /* ✅ una sola línea */
  overflow: hidden;          /* por si acaso */
  text-overflow: ellipsis;   /* … si alguna vez fuese muy largo */
  line-height: 1.1; 
  position: absolute;
  /* bottom: 12px;
  /* left: 50%; */
  /* transform: translateX(-50%); */ 
  z-index: 50;
  pointer-events: none;

  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;

  background: rgba(0,0,0,0.6);    /* negro 60% */
  color: #fff;                    /* texto blanco */
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.1);
  /* box-shadow: 0 6px 24px rgba(0,0,0,.22), 0 2px 6px rgba(0,0,0,.18); */

  font-size: clamp(12px, 2.1vw, 18px);
  font-weight: 700;
  text-shadow: none;              /* ya no hace falta */

    bottom: calc(env(safe-area-inset-bottom, 0px) + 46px); /* despega de la barra home y etiquetas de base */
  left: 50%;
  right: auto;
  top: auto;
  transform: translateX(-50%);
}

   .markerMainWeatherIcon {
        width: 100%;
        height: auto;
        position: absolute;
        top: 0;
        opacity: 0;
        left: 0;
        right: 0;
        margin: auto;
        display: none; /* Oculto inicialmente */
        /* filter: drop-shadow(0 0 10px 
rgba(0, 0, 0, 0.8)); */
      }

  .markerPrecipitation {
    position: absolute;
    top: 0;
    width: 100%;
    height: fit-content;
    text-align: center;
    font-size: 10px;
    line-height: 10px;
    color: 
#4392dc;
    padding-top: 3px;
    font-weight: 600;
  }

  .markerWindIcon {
    height: 25px;
    margin-top: -9px;
    filter: brightness(70%);
    margin-right: -2px;
  }

  .markerWind {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 13px;
    text-align: center;
    font-size: 10px;
    line-height: 10px;
    color: 
#6f6f6f;
    font-weight: 400;
    display: flex;
    padding-left: 5px;
  }

  @keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
  }

  .fade-in-animation {
    animation: fadeIn 0.5s ease forwards;
  }

#buttons li {
  display: flex;
  align-items: center;
  padding: 8px 12px 8px 8px; /* Ajuste para el icono */
}

#buttons li i {
  width: 20px; /* Ancho fijo para alinear iconos */
  text-align: center;
}





#loading-indicator {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(0, 0, 0, 0);
  color: white;
  padding: 20px 30px;
  border-radius: 12px;
  font-size: 16px;
  z-index: 9999;
  /* display: none; */
  text-align: center;
  box-shadow: 0 0 15px rgba(0, 0, 0, 0);
}

.spinner {
  margin: 0 auto 10px auto;
  width: 40px;
  height: 40px;
  border: 5px solid rgba(255, 255, 255, 0.2);
  border-top: 5px solid #4FC3F7;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

.loading-text {
  font-size: 16px;
  margin-top: 10px;
}

#climatok-button {
  position: fixed;
  top: 140px;
  left: 10px;
  background-color: #044360;
  color: white;
  padding: 8px 12px;
  border-radius: 5px;
  text-decoration: none;
  font-weight: bold;
  font-family: sans-serif;
  font-size: 14px;
  box-shadow: 0 0 8px rgba(0,0,0,0.4);
  z-index: 1000;
}





#selected-layer-text {
  margin-left: 5px;
}

#toggle-layers {
  /* pastilla redonda pero con texto */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  padding: 4px 10px;
  min-height: 36px;
  border-radius: 999px;

  /* antes fijabas width: 44px; ahora dejamos que crezca con el texto */
  min-width: 44px;
}

/* icono dentro del botón */
#layers-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* icono Font Awesome que clonamos del <li> */
#layers-icon i {
  font-size: 16px;
}

/* texto de la capa seleccionada */
#selected-layer-text {
  font-size: 13px;
  white-space: nowrap;
}


/* 👇 tamaño del SVG concreto del botón de capas */
#layers-icon svg {
  width: 40px !important;
  height: 40px !important;
  transform: scale(1.2);  /* multiplica un poco más su tamaño */
  transform-origin: center;
}
#now-bt{
  display:flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  margin:0;
}

#toggle-mini-view {
  z-index: 10000 !important;
}


 /* Estilos para el banner */
 #ads-banner {
    position: fixed;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1000;
    width: 100vw; /* 90% del viewport width */
    max-width: 300px; /* Límite máximo para no estirar demasiado en pantallas grandes */
    height: auto;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0,0,0,0.3);
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: center; /* Centra la imagen */
    background: rgba(252, 251, 251, 0.925); /* Fondo oscuro para mejor contraste */
    padding: 5px; /* Pequeño espacio interior */
  }

  #ads-banner:hover {
    transform: translateX(-50%) scale(1.02);
    box-shadow: 0 6px 15px rgba(0,0,0,0.4);
    background: rgba(0,0,0,0.8);
  }

  #ads-banner img {
    width: auto; /* Mantiene proporciones originales */
    max-width: 100%; /* No excede el ancho del contenedor */
    height: auto;
    display: inline-block;
    border-radius: 5px; /* Bordes redondeados para la imagen */
  }

 .weatherlayers-timeline-control {
  /* display: none !important;  */
      position: fixed;
    bottom: -180px;
    left: 50%;
    transform: translateX(-50%);
}


 

  #header > div {
    margin-bottom: 6px;
    pointer-events: auto;
  }

 
  /* Contenedor fijo (ajusta top/left según tu UI) */
#layers-container{
  position: fixed;
  top: 175px;
  left: 12px;
  z-index: 12000;
}

/* Panel emergente con transición suave */
#layers-container #buttons{
  position: absolute;
  top: 40px;                /* debajo del botón */
  left: 0;
  width: min(92vw, 210px);
  max-height: min(30vh, 220px);
  overflow-y: auto;         /* << scroll vertical */
  -webkit-overflow-scrolling: touch;
  z-index: 99999;
  margin: 8px 0 0 0;
  padding: 8px;
  list-style: none;

  background: rgba(20,20,24,.86);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  box-shadow: 0 8px 28px rgba(0,0,0,.35);

  /* Estado oculto (por defecto) */
  opacity: 0;
  transform: translateY(-6px) scale(.98);
  visibility: hidden;
  pointer-events: none;
 
  transition: max-height .30s ease, opacity .24s ease, transform .28s ease;
}

/* Estado visible */
#layers-container.open #buttons{
  opacity: 1;
  transform: translateY(6px) scale(1);
  visibility: visible;
  pointer-events: auto;
  transition: opacity .22s ease, transform .22s ease;
}




/* Estética de los items */
#layers-container #buttons > li{
  display: block;
  padding: 10px 12px;
  margin: 4px 0;
  border-radius: 10px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.06);
  color: #fff;
  cursor: pointer;
  font: 600 14px/1.2 system-ui,-apple-system,Segoe UI,Roboto,Arial;
}

#layers-container #buttons > li:hover{
  background: rgba(255,255,255,.10);
}

/* Ajusta el botón disparador si quieres */
#toggle-layers.button{
  display: inline-flex;
  align-items: center;
  gap: 8px;
}


/* Alinear todo el contenido de la lista a la izquierda */
#layers-container #buttons { 
  text-align: left;
}

/* Cada <li> como fila con icono + texto alineados a la izquierda */
#layers-container #buttons > li{
  display: flex;                 /* fila */
  align-items: center;
  justify-content: flex-start;   /* << izquierda */
  gap: 10px;
  width: 100%;
}

/* Si la clase .button global centra el texto, anula solo aquí */
#layers-container #buttons > li.button{
  text-align: left;              /* override de .button */
  justify-content: flex-start;   /* override de .button si usa center */
}

/* Iconos con ancho fijo para que el texto quede alineado */
#layers-container #buttons > li i{
  flex: 0 0 18px;
  text-align: center;
}


/* Estilo específico para los botones del menú de capas */
#layers-container #buttons button {
  padding: 4px 10px;     /* antes seguro que era algo tipo 8–12px */
  min-height: 24px;      /* altura mínima más baja */
  line-height: 1.2;      /* texto más compacto */
  font-size: 12px;       /* si quieres que sean más finos aún */
}

/* Si usas <li> alrededor de los botones, también los puedes estrechar */
#layers-container #buttons li {
  margin: 2px 0;         /* menos espacio vertical entre filas */
}

/* Asegura el color base del botón (y por tanto currentColor) */
#play-pause-bt {
  color: #fff;
}

/* Fuerza el relleno del SVG de pause a heredar el color */
#pause-icon,
#pause-icon rect,
#pause-icon path {
  fill: currentColor !important;
}

#play-icon,
#play-icon path,
#play-icon rect,
#play-icon polygon,
#play-icon circle {
  fill: currentColor !important;
}


/* ---- style block 2 ---- */
/* Reemplaza los estilos existentes para los botones de navegación Log de */
#rewind-button,
#forward-button {
  width: 40px;
  height: 40px;
  background-color: rgba(0, 0, 0, 0.0);
  color: white;
  font-size: 14px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: none;
  transition: all 0.2s ease;
  box-sizing: border-box;
}

#rewind-button:hover,
#forward-button:hover {
  background-color: rgba(0, 0, 0, 0);
  border-color: rgba(255, 255, 255, 0.5);
}

#rewind-button:active,
#forward-button:active {
  background-color: rgba(0, 0, 0, 0);
  transform: scale(0.95);
}

/* Estilo de los campos de fecha y hora */
#date-input,
#hour-select {
  height: 40px;
  font-size: 16px;
  padding: 6px 10px;
  border-radius: 6px;
  border: 1px solid #ccc;
  box-sizing: border-box;
  background-color: white;
  color: black;
  outline: none;
  vertical-align: middle;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: none;
  text-align: center;
  line-height: 1.2;
}

#date-input {
  width: 130px;
}

#hour-select {
  width: 80px;
  padding-right: 10px;
}

#play-button {
  width: 40px;
  height: 40px;
  background-color: rgba(0, 0, 0, 0);
  color: white;
  font-size: 16px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: none;
  transition: all 0.2s ease;
  box-sizing: border-box;
}

#play-button:hover {
  background-color: rgba(0, 0, 0, 0.6);
  border-color: rgba(255, 255, 255, 0.5);
}

#play-button:active {
  background-color: rgba(0, 0, 0, 0.6);
  transform: scale(0.95);
}

#play-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  filter: grayscale(70%);
}





/* .maplibregl-ctrl-geolocate {
  display: none !important;
} */

#bottom-center {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 999;
  pointer-events: none; /* o auto si quieres interactuar */
}

#bottom-center > * {
  pointer-events: auto; /* permite interacción con el contenido */
}


/* .maplibregl-ctrl-geolocate {
   display: none !important;
} */

/* Contenedor del botón de geolocalización creado por MapTiler */
.maplibregl-ctrl-top-right .maplibregl-ctrl-geolocate {
  position: fixed;
  top: 60px;       /* 10px (margen superior) + 44px (alto lupa) + 6px de separación */
  right: 10px;
  z-index: 12000;
  display:none;
}

/* Hacemos el botón redondo y con el mismo estilo que tus iconos */
.maplibregl-ctrl-geolocate button,
.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  padding: 0;
  margin: 0;

  background: rgba(0,0,0,0.7);
  border: 1px solid rgba(255,255,255,0.2);
  box-shadow: none;
}

/* Ajusta el tamaño de la flecha dentro, si se ve pequeña */
.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon {
  background-size: 22px 22px;
  background-position: center;
}


/* #info-panel-layer {
  background: rgba(0, 0, 0, 0.7);
  color: white;
  margin-top: 15px;
  padding: 10px 15px;
  border-radius: 6px;
  font-size: 13px;
  line-height: 1.4;
  max-width: 220px;
  z-index: 1000;
} */


  #prefetchOverlay{
    position:absolute; top:12px; left:50%; transform:translateX(-50%);
    background:rgba(0,0,0,.75); color:#fff; padding:8px 12px; border-radius:10px;
    font:500 14px system-ui,-apple-system,Segoe UI,Roboto,Arial; z-index:9999; display:none;
    backdrop-filter:saturate(120%) blur(3px);
  }
  #prefetchOverlay progress{ width:220px; height:8px; margin-left:8px; vertical-align:middle; }
  #prefetchOverlay small{ opacity:.85; margin-left:8px; }

#search-toggle {
  position: fixed;
  top: 155px;
  right: 10px;              /* ajusta para que no choque con Info / otros */
  z-index: 12000;

  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: rgba(0,0,0,0);
  border: 1px solid rgba(255,255,255,0.2);
  cursor: pointer;
}
#search-icon svg {
  width: 26px !important;
  height: 26px !important;
  display: block;
}


#info-layer-button {
  position: fixed;
  top: 255px;        /* encima de geo-toggle (105px) */
  right: 10px;
  z-index: 12000;

  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: rgba(0,0,0,0);
  border: 1px solid rgba(255,255,255,0.2);
  cursor: pointer;
}

/* opcional, por si quieres ajustar el tamaño del icono */
#info-layer-icon svg {
  width: 24px;
  height: 24px;
}

#time-step-button {
  position: fixed;
  top: 255px;        /* misma altura que el info-layer */
  left: 12px;      /* un poco a la izquierda del info-layer (10px + 44px + margen) */
  z-index: 12000;

  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: rgba(0,0,0,0);
  border: 1px solid rgba(255,255,255,0.2);
  cursor: pointer;
  font: 600 12px system-ui,-apple-system,Segoe UI,Roboto,Arial;
  color: #fff;
}




#geo-toggle {
  position: fixed;
  top: 105px;      /* 10 + 44 + margen; ajusta si hace falta */
  right: 10px;
  z-index: 12000;

  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: rgba(0,0,0,0);
  border: 1px solid rgba(255,255,255,0.2);
  cursor: pointer;
  

}

#settings-button {
  position: fixed;
  top: 205px;  /* debajo de geo-toggle */
  right: 10px;
  z-index: 12000;

  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: rgba(0,0,0,0);
  border: 1px solid rgba(255,255,255,0.2);
  cursor: pointer;
}

#geo-icon svg {
  width: 24px;
  height: 24px;
  display: block;
}

.icon-svg svg {
  width: 26px;
  height: 26px;
}

#search-toggle:hover {
  background: rgba(0,119,182,0.85);
}

/* Tamaño del icono interno (SVG o emoji) */
#search-icon svg {
  width: 18px;
  height: 18px;
  display: block;
}


/* Switcher GFS / ECMWF debajo del time-info */
#model-switcher-bar {
  position: fixed;         /* igual que el bloque de tiempo */
  left: 50%;
  transform: translateX(-50%);
  top: 10px;            /* ajústalo: un pelín por debajo del slider */
  display: none;
  gap: 8px;
  justify-content: center;
  align-items: center;
  z-index: 12010;
  /* sin fondo para aprovechar la banda negra que ya tienes */
}

#model-switcher-bar .model-pill {
  border: 1px solid rgba(255,255,255,0.5);
  border-radius: 999px;
  background: rgba(48, 48, 48, 0.6);
  color: #9f9b9b;
  font: 600 10px system-ui,-apple-system,Segoe UI,Roboto,Arial;
  padding: 2px 10px;      /* antes era 2px 10px → ahora más alto y ancho */
  min-height: 24px;       /* asegura altura mínima cómoda */
  display: none;          /* centrado vertical del texto */
  align-items: center;
  cursor: pointer;

    /* MISMO ANCHO PARA GFS Y ECMWF */
  min-width: 62px;          /* ajusta este valor a tu gusto */
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}


#model-switcher-bar .model-pill.active {
  background: #000000;
  color: #f9f7f7;
}

.premium-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 99999;
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms ease;
}

.premium-overlay.visible {
  opacity: 1;
  pointer-events: auto;
}

.premium-dialog {
  max-width: 340px;
  width: 90%;
  background: rgba(15, 20, 35, 0.97);
   color: #fff;
  border-radius: 18px;
  padding: 18px 20px;
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.45);
  text-align: center;
}

.premium-title {
  margin: 0 0 8px;
  font-size: 1.1rem;
}

.premium-message {
  margin: 0 0 16px;
  font-size: 0.9rem;
  opacity: 0.9;
}

/* .premium-actions {
  display: flex;
  gap: 8px;
  justify-content: center;
}

.premium-primary,
.premium-secondary {
  flex: 1;
  padding: 8px 10px;
  border-radius: 999px;
  border: none;
  font-size: 0.9rem;
  cursor: pointer;
}

.premium-primary {
  background: linear-gradient(135deg, #26c6da, #7e57c2);
  color: #fff;
}

.premium-secondary {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #fff;
} */

.premium-actions{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:14px;
}

.premium-primary{
  width:100%;
  border:none;
  border-radius:12px;
  padding:12px 14px;
  font-weight:800;
  cursor:pointer;
}

.premium-secondary{
  width:100%;
  border-radius:12px;
  padding:10px 14px;
  font-weight:700;
  cursor:pointer;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.18);
  color:#fff;
}

.premium-legal{
  margin-top:10px;
  font-size:12px;
  line-height:1.35;
  opacity:0.8;
  text-align:center;
}
.premium-legal a{ color:#7dd3fc; text-decoration:none; }
.premium-legal a:hover{ text-decoration:underline; }

#info-content h3 {
  margin: 0 0 10px 0;
  padding: 0;
  font-size: 16px;        /* ya lo tenías */
  text-transform: uppercase;
  letter-spacing: 0.05em; /* opcional: un pelín más de separación */
  color: #4FC3F7;         /* mismo azul que "Tok" */
}

#info-content-layer .info-layer-title {
  display: block;
  margin-bottom: 4px;
  font-weight: 600;
  text-transform: uppercase;  /* por si acaso */
  color: #4FC3F7;             /* mismo azul que "Tok" */
}

#info-content-layer {
  line-height: 1.4;
  /* el resto de estilos que ya le pusimos (padding, max-width, etc.) */
}


/* Botón overlay debajo del 12h/6h/3h */
#overlay-step-button{
  position: fixed;
  top: 305px;     /* 255 + 44 + ~6 */
  left: 12px;
  z-index: 12000;

  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: rgba(0,0,0,0.7);
  border: 1px solid rgba(255,255,255,0.2);
  cursor: pointer;
  font: 600 10px system-ui,-apple-system,Segoe UI,Roboto,Arial;
  color: #fff;
}

/* Menú overlay desplegable (bajo el botón overlay) */
#overlay-buttons.overlay-menu{
  position: fixed;
  top: 355px;   /* debajo del botón overlay */
  left: 12px;
  z-index: 12000;

  list-style: none;
  margin: 0;
  padding: 6px;

  width: 220px;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;

  border-radius: 10px;
  background: rgba(0,0,0,0.78);
  border: 1px solid rgba(255,255,255,0.18);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);

  transition: max-height .22s ease, opacity .18s ease;
}

#overlay-buttons.overlay-menu.show{
  max-height: 60vh;
  overflow: auto;
  opacity: 1;
  pointer-events: auto;
}

/* Items */
#overlay-buttons.overlay-menu li{
  padding: 8px 10px;
  border-radius: 8px;
  cursor: pointer;
  color: white;
  font: 600 12px system-ui,-apple-system,Segoe UI,Roboto,Arial;
}

#overlay-buttons.overlay-menu li:hover{
  background: rgba(255,255,255,0.10);
}

#overlay-buttons.overlay-menu li.active{
  background: rgba(0,119,182,0.55);
  border: 1px solid rgba(255,255,255,0.22);
}

/* ===== Overlay container debajo del time-step ===== */
#overlay-container{
  position: fixed;
  top: 305px;   /* ajusta si quieres más abajo */
  left: 12px;
  z-index: 12000;
}

/* pastilla igual que toggle-layers */
#toggle-overlay{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  padding: 4px 10px;
  min-height: 36px;
  border-radius: 999px;
  min-width: 44px;
}

/* icono dentro */
#overlay-icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* texto: que no se salga */
#selected-overlay-text{
  font-size: 13px;
  white-space: nowrap;
  max-width: 190px;           /* evita desbordes */
  overflow: hidden;
  text-overflow: ellipsis;
}

/* menú desplegable igual al de layers */
#overlay-container #overlay-buttons{
  position: absolute;
  top: 40px;
  left: 0;
  width: min(92vw, 210px);
  max-height: min(30vh, 220px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  z-index: 99999;
  margin: 8px 0 0 0;
  padding: 8px;
  list-style: none;

  background: rgba(20,20,24,.86);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  box-shadow: 0 8px 28px rgba(0,0,0,.35);

  opacity: 0;
  transform: translateY(-6px) scale(.98);
  visibility: hidden;
  pointer-events: none;

  transition: opacity .24s ease, transform .28s ease;
}

#overlay-container.open #overlay-buttons{
  opacity: 1;
  transform: translateY(6px) scale(1);
  visibility: visible;
  pointer-events: auto;
}

/* items */
#overlay-container #overlay-buttons > li{
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;

  padding: 10px 12px;
  margin: 4px 0;
  border-radius: 10px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.06);
  color: #fff;
  cursor: pointer;
  font: 600 14px/1.2 system-ui,-apple-system,Segoe UI,Roboto,Arial;
}

#overlay-container #overlay-buttons > li:hover{
  background: rgba(255,255,255,.10);
}

#overlay-container #overlay-buttons > li.active{
  background: rgba(0,119,182,0.55);
  border: 1px solid rgba(255,255,255,0.22);
}


/* ---- style block 3 ---- */
@keyframes blink{0%{opacity:.25}50%{opacity:1}100%{opacity:.25}}
#net-line .dot{ animation: blink 1.2s infinite }
#net-line .dot:nth-child(2){ animation-delay:.2s }
#net-line .dot:nth-child(3){ animation-delay:.4s }


/* ---- style block 4 ---- */
/* Contenedor del botón + panel */
#info-description {
  position: fixed;
  top: 205px;
  left: 12px;
  z-index: 10000;

  display: flex;
  flex-direction: column;
  align-items: flex-start;

  /* 👇 deja un espacio fijo por encima del slider */
 
  max-width: 280px;

  pointer-events: none; /* si lo usas */
}

/* Botón: círculo fijo que NO se mueve */
#info-toggle {
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 50%;
  border: none;
  background:  rgba(0, 0, 0, 0);     /* el círculo lo dibuja el SVG */
  box-shadow: none;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  cursor: pointer;
  pointer-events: auto;        /* sí recibe clicks */
}

/* SVG dentro del botón */
#info-icon svg {
  width: 26px;
  height: 26px;
  display: block;
}

/* 🔁 Nuevo botón VIENTO, igual de redondo y debajo del info */
#wind-toggle {
  position: fixed;
  top: 155px;           /* 10 + 44 + ~8px margen; ajusta a ojo */
  left: 12px;
  z-index: 12000;

  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 50%;
  border: none;
  background: rgba(0,0,0,0);
  border: 1px solid rgba(255,255,255,0.2);

  display: inline-flex;
  align-items: center;
  justify-content: center;

  cursor: pointer;
}

/* Estado activo (viento visible) */
#wind-toggle.active {
  background: rgba(0,119,182,0.9);
}

/* Icono SVG de viento */
#wind-icon svg {
  width: 22px;
  height: 22px;
  display: block;
}



/* Panel de texto – SIEMPRE ocupa sitio, pero empieza oculto visualmente */


#info-content {

  margin-top: 60px;
  padding: 14px 18px;

  max-width: 280px;
  max-height: calc(100vh - 420px);  /* antes 220px → ahora 260px para dejar más margen abajo */
  overflow-y: auto;
 
  background: rgba(0, 0, 0, 0);
  color: #fff;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.15);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.6);

  font-size: 14px;
  line-height: 1.5;

  opacity: 0;
  transform: translateY(6px);
  visibility: hidden;
  pointer-events: none;

  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
}







/* Estado ABIERTO: clase en el contenedor */
#info-description.info-open #info-content {
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
  pointer-events: auto;
}


  #info-toggle:hover {
  background: rgba(0, 119, 182, 0.9);
}


#info-toggle:hover {
  background: rgba(0, 119, 182, 0.85);
}


#info-toggle.active + #info-content {
    opacity: 1;
    transform: translateY(0);
}

/* Personalización del scroll (opcional) */
#info-content::-webkit-scrollbar {
    width: 5px;
}
#info-content::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,0.2);
    border-radius: 3px;
}

#info-content h3 {
    margin: 0 0 10px 0;
    padding: 0;
    font-size: 16px;   /* título un poco más grande */
}

#info-content ul {
    padding-left: 20px; /* Sangría para listas */
    margin: 10px 0; /* Espacio arriba y abajo */
}

#info-content p {
    margin: 8px 0; /* Espaciado para párrafos */
    line-height: 1.4; /* Mejor legibilidad */
}

#info-content a {
    word-break: break-word; /* Evita desbordamiento de URLs largas */
}

#info-content a:hover {
  text-decoration: underline;
}

  /* Quick Tooltip minimalista */
  #quick-tip {
    position: fixed;
    z-index: 10050;
    display: none;
    pointer-events: none;

    background: rgba(0,0,0,.8);
    color: #fff;
    font: 600 14px/1.28 system-ui, -apple-system, Segoe UI, Roboto, Arial;
    padding: 10px 12px;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,.35);
    transform: translate(-50%, -100%); /* anclar sobre el dedo */
    white-space: nowrap;
  }


  /* Botón siempre clickable por encima del panel */
#toggle-layers{ position: relative; z-index: 2; }

/* Panel colapsable con scroll interno */
#layers-container { position: absolute; top: 112px; left: 12px; width: 280px; }
#layers-container #buttons{
  max-height: 0;
  overflow: hidden;       /* sin scroll cuando está cerrado */
  opacity: 0;
  transform: translateY(-6px);
  transition: max-height .28s ease, opacity .24s ease, transform .28s ease;
  pointer-events: none;   /* <- NO intercepta clicks al estar cerrado */
  z-index: 1;
}

/* Abierto: scroll y eventos activados */
#layers-container.open #buttons{
  max-height: 60vh;       /* alto visible con scroll */
  overflow: auto;
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;   /* <- ahora sí recibe clicks */
}


/* Fila de acciones dentro del panel de info */
.info-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

/* Botón redondo reutilizable (settings) */
.round-icon-button {
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 50%;
  border: none;
  background: rgba(0,0,0,0);
  border: 1px solid rgba(255,255,255,0.2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* Icono SVG de settings */
#settings-icon svg {
  width: 20px;
  height: 20px;
  display: block;
}

/* Botón GO PREMIUM horizontal con texto azul */
#go-premium-button {
  padding: 8px 16px;
  border-radius: 999px;
  border: 1px solid #3aa8ff;
  background: rgba(0, 0, 0, 0.3);
  color: #3aa8ff;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  white-space: nowrap;
}

#go-premium-button:hover {
  background: rgba(58, 168, 255, 0.18);
}

/* Panel negro de SETTINGS */
/* Overlay de fondo */
#settings-panel {
  position: fixed;
  inset: 0;
  z-index: 13000;

  display: flex;                 /* siempre flex */
  align-items: flex-start;
  justify-content: center;
  padding-top: 70px;             /* 🔻 más bajo que antes (40px → 70px) */

  background: rgba(0,0,0,0);     /* transparente al inicio */
  opacity: 0;                    /* oculto visualmente */
  pointer-events: none;          /* no bloquea el mapa mientras está oculto */

  transition: opacity 0.25s ease, background 0.25s ease;
}

#settings-panel.visible {
  opacity: 1;
  pointer-events: auto;          /* ahora sí capta toques */
  background: rgba(0,0,0,0.3);   /* oscurece el fondo suavemente */
}

/* Tarjeta negra interior */
#settings-panel-inner {
  background: rgba(0,0,0,0.4); 
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,0.25);
  width: min(360px, 94%);
  max-height: calc(100vh - 80px);
  position: relative;
  overflow-y: auto;
  box-sizing: border-box;
  padding: 16px 18px 12px;

   font-size: 14px;     /* tamaño base panel settings */
  line-height: 1.5;

  /* animación de entrada */
  transform: translateY(-10px);
  opacity: 0;
  transition: transform 0.25s ease, opacity 0.25s ease;
}

/* Cuando el overlay está visible, animamos también la tarjeta */
#settings-panel.visible #settings-panel-inner {
  transform: translateY(0);
  opacity: 1;
}

#settings-panel-inner h3 {
  font-size: 16px;
  margin: 0 0 10px 0;
}

/* Botón cerrar (X) del panel */
#settings-close {
  position: absolute;
  top: 8px;
  right: 10px;
  border: none;
  background: transparent;
  color: #fff;
  font-size: 20px;
  cursor: pointer;
}

.settings-title {
  text-align: center;
  color: #fff;
  font-size: 20px;
  font-weight: 800;
  margin: 10px 0 18px;
}

.settings-group {
  margin-bottom: 14px;
}

.settings-label {
  color: rgba(255,255,255,0.85);
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 6px;
}

.segment-control {
  display: flex;
  gap: 4px;
  background: rgba(255,255,255,0.10);
  padding: 3px;
  border-radius: 999px;
}

.segment-option {
  flex: 1;
  border: none;
  border-radius: 999px;
  padding: 6px 8px;
  font-size: 12px;
  font-weight: 600;
  background: transparent;
  color: rgba(255,255,255,0.8);
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}

.segment-option.active {
  background: #f5f5f5;
  color: #111;
}

.segment-option.disabled {
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
}



/* Botón azul grande */
.settings-premium-cta {
  margin-top: 6px;
  width: 100%;
  border: none;
  border-radius: 999px;
  padding: 10px 12px;
  background: #0070ff;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(0,0,0,0.45);
}

.settings-premium-cta:hover {
  background: #1a82ff;
}

/* Lista verde de ventajas */
.settings-benefits {
  list-style: none;
  padding: 10px 4px 0;
  margin: 0;
  font-size: 12px;
  color: #d9ffd9;
}

.settings-benefits li {
  margin-bottom: 4px;
}


/* Base del panel: subimos tamaño general */
#settings-panel-inner {
  font-size: 15px;      /* antes más pequeño / sin definir */
  line-height: 1.6;
}

/* Título “Settings” */
.settings-title {
  font-size: 20px;      /* título más grande */
  font-weight: 700;
  margin: 4px 0 14px 0;
}

/* Etiquetas de cada grupo (Model, Unit System, etc.) */
.settings-label {
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 6px;
}

/* Texto de los botones tipo segmento (GFS, ECMWF, Metric…) */
.segment-option {
  font-size: 14px;      /* sube de ~12 → 14 */
  font-weight: 500;
  padding: 8px 12px;    /* un poco más de aire */
}

/* Botón grande de Upgrade */
.settings-premium-cta {
  font-size: 14px;
  font-weight: 600;
  padding: 10px 14px;
}

/* Lista de beneficios */
.settings-benefits {
  margin: 10px ;
  font-size: 14px;
  line-height: 1.5;
}


/* Mantén el color aunque esté disabled (evita que se ponga negro/gris) */
#play-pause-bt {
  color: #fff;
}

#play-pause-bt:disabled {
  color: #fff !important;
  opacity: 0.0;                 /* si quieres que se note que está bloqueado */
  -webkit-text-fill-color: #fff; /* iOS Safari */
}

/* Asegura que el SVG hereda el color también en disabled */
#play-pause-bt svg,
#play-pause-bt svg * {
  fill: currentColor !important;
  stroke: currentColor !important;
}

/* Overlay pill: negro con texto blanco (igual que Layers) */
#toggle-overlay{
  background: rgba(0,0,0,0.70) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  border-radius: 999px !important;
  padding: 8px 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  box-shadow: 0 8px 22px rgba(0,0,0,0.25);
}

#toggle-overlay:hover{
  background: rgba(0,0,0,0.5) !important;
}

/* Texto */
#selected-overlay-text{
  color: #fff !important;
  font-weight: 600;
  white-space: nowrap;
}

/* Icono */
#overlay-icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff !important;
  font-size: 14px;
  line-height: 1;
}


#overlay-container{
  display: none !important;
}

   #overlay {
        position: absolute;
        top: 0;
        bottom: 0;
        width: 100vw;
        height: 100vh;
        background: radial-gradient(circle, 
rgba(230,240,244,1) 1%, 
rgba(165,184,190,1) 73%, 
rgba(98,116,121,1) 100%);
        z-index: 3;
        display: none;
      }

      #overlay div {
        color: 
rgb(71, 76, 87);
        position: absolute;
        width: fit-content;
        height: fit-content;
        right: 0;
        left: 0;
        bottom: 0;
        top: 0;
        margin: auto;
        padding: 30px;
        font: 12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;
      }


      .blink_me {
        animation: blinker 1s linear infinite;
      }

      @keyframes blinker {
        50% {
          opacity: 0.2;
        }
      }

      .maptiler-ar-enable-button {
        cursor: pointer;
        position: absolute;
        top: 0px;
        left: 0px;
        margin: 35px;
        width: fit-content;
        background: rgb(255 255 255 / 60%);
        border: none;
        border-radius: 5px;
        padding: 8px 10px;
        transition: all 0.2s;
       
      }

      .maptiler-ar-close-button {
        cursor: pointer;
        cursor: pointer;
        position: absolute;
        top: 0px;
        right: 0px;
        margin: 35px;
        width: fit-content;
        background: rgb(255 255 255 / 60%);
        border: none;
        border-radius: 5px;
        padding: 8px 10px;
        transition: all 0.2s;
      }

      .maptiler-ar-close-button:hover {
        background: 
rgb(255, 125, 65);
      }

      .maptiler-ar-enable-button:hover {
        background: 
rgb(65, 166, 255);

      }
#appstore-badge{
  position: fixed;
  bottom: 130px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 13000;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 6px 8px;
  border-radius: 14px;

  transition: transform .15s ease, opacity .15s ease;
}

#appstore-badge:hover{
  transform: translateX(-50%) translateY(-2px);
}

#appstore-badge img{
  height: 32px;
  width: auto;
  display: none;
}

#now-bt{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
/* #now-bt:hover{
  background: transparent !important;
} */
#now-bt:active{
  background: transparent !important;
}

#play-pause-bt{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
/* #play-pause-bt:hover{
  background: transparent !important;
} */
#play-pause-bt:active{
  background: transparent !important;
}


/* Contenedor general del tiempo a ancho casi completo */
#time-info{
  position: fixed;          /* si ya lo tienes fijo abajo, déjalo; si no, puedes quitar esto */
  left: 10px;
  right: 10px;
  width: auto;
  box-sizing: border-box;
  z-index: 12050;           /* el que uses para overlays/mapa */
}

/* Fila de controles: ocupa TODO el ancho del time-info */
#time-controls{
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  box-sizing: border-box;
}

/* Botones a tamaño fijo */
#now-bt,
#play-pause-bt{
  flex: 0 0 auto;
}

/* Slider: se come el resto */
#time-slider{
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}

/* Quita estilos nativos */
#time-slider{
  -webkit-appearance: none;
  appearance: none;
  height: 18px;           /* área táctil cómoda */
  background: transparent;
}

/* ===== TRACK (la línea) ===== */

/* Chrome / Safari / Edge */
#time-slider::-webkit-slider-runnable-track{
  height: 3px;            /* 👈 grosor de la línea */
  background: rgba(255,255,255,0.35);
  border-radius: 999px;
}

/* Firefox */
#time-slider::-moz-range-track{
  height: 3px;
  background: rgba(255,255,255,0.35);
  border-radius: 999px;
}

/* ===== THUMB (el circulito) ===== */

/* Chrome / Safari */
#time-slider::-webkit-slider-thumb{
  -webkit-appearance: none;
  appearance: none;
  margin-top: -6px;       /* centra el thumb sobre la línea fina */
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #0A84FF;
  box-shadow: 0 0 6px rgba(10,132,255,.7);
  border: 2px solid rgba(0,0,0,.6);
}

/* Firefox */
#time-slider::-moz-range-thumb{
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #0A84FF;
  box-shadow: 0 0 6px rgba(10,132,255,.7);
  border: 2px solid rgba(0,0,0,.6);
}


/* === Unificar hover azul para TODOS los botones interactivos === */
:root{
  --climatok-hover: rgba(0,119,182,0.85);
  --climatok-hover-border: rgba(255,255,255,0.28);
}

/* Botones redondos principales (los que ahora no tienen hover) */
#search-toggle:hover,
#geo-toggle:hover,
#settings-button:hover,
#info-layer-button:hover,
#time-step-button:hover,
#overlay-step-button:hover,
#wind-toggle:hover,
.round-icon-button:hover{
  background: var(--climatok-hover) !important;
  border-color: var(--climatok-hover-border) !important;
}

/* Estado "active" en azul (por coherencia) */
#search-toggle.active,
#geo-toggle.active,
#settings-button.active,
#info-layer-button.active,
#time-step-button.active,
#overlay-step-button.active,
#wind-toggle.active,
.round-icon-button.active{
  background: rgba(0,119,182,0.90) !important;
  border-color: rgba(255,255,255,0.35) !important;
}

/* Que el hover no se aplique cuando estén disabled */
#search-toggle:disabled,
#geo-toggle:disabled,
#settings-button:disabled,
#info-layer-button:disabled,
#time-step-button:disabled,
#overlay-step-button:disabled,
#wind-toggle:disabled,
.round-icon-button:disabled{
  pointer-events: none;
  opacity: 0.55;
}

#now-bt:hover,
#play-pause-bt:hover{
  background: var(--climatok-hover) !important;
}


/* Reutilizar el estilo "glass" de #info-content para otros paneles */
#info-content-layer,
#layers-container #buttons{
  margin-top: 60px;
  padding: 14px 18px;

  max-width: 280px;
  max-height: calc(100vh - 420px);
  overflow-y: auto;

  background: rgba(0, 0, 0, 0) !important;
  color: #fff;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.15);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.6);

  font-size: 14px;
  line-height: 1.5;
}

/* Si el desplegable tiene animación/visibilidad distinta, NO toques opacity/visibility aquí */

/* === Settings: mismo estilo glass que #info-content === */
#settings-panel-inner{
  background: rgba(0, 0, 0, 0) !important;
  border-radius: 10px !important;
  border: 1px solid rgba(255,255,255,0.15) !important;

  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.6);

  /* deja el resto como lo tienes (width, padding, max-height, etc.) */
}

/* Hover SOLO cuando realmente hay hover (ratón/trackpad) */
@media (hover: hover) and (pointer: fine) {
  .button:hover {
    background: rgba(0,119,182,0.85);
  }

  #info-toggle:hover {
    background: rgba(0,119,182,0.85);
  }

  #wind-toggle:hover {
    background: rgba(0,119,182,0.85);
  }
}


/* Feedback en touch (tap) */
.button:active,
#info-toggle:active,
#wind-toggle:active {
  background: rgba(0,119,182,0.85);
}

#wind-toggle { background: rgba(0,0,0,0); }
#wind-toggle:not(.active) { background: rgba(0,0,0,0) !important; }
#wind-toggle.active { background: rgba(0,119,182,0.9); }

#toggle-alerts-bt{
  position: fixed;
  left: 12px;
  top: 305px; 
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(0,0,0,0);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 19;
  pointer-events: auto;
}

#toggle-alerts-bt.active{
  background: rgba(200,0,0,0.8);
  border-color: rgba(255,0,0,0.6);
}

#toggle-alerts-bt:hover{
  background: rgba(255,255,255,0.15);
}

/* Popup CAP estilo "glass" ClimaTok */
.ctk-glass-popup .maplibregl-popup-content,
.ctk-glass-popup .mapboxgl-popup-content{
  background: rgba(20, 20, 24, 0.86);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);

  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 14px;

  box-shadow: 0 10px 30px rgba(0,0,0,0.35);
  color: #fff;

  padding: 12px 14px;
}

/* Punta del popup */
.ctk-glass-popup .maplibregl-popup-tip,
.ctk-glass-popup .mapboxgl-popup-tip{
  border-top-color: rgba(20, 20, 24, 0.86);
  border-bottom-color: rgba(20, 20, 24, 0.86);
}

/* Botón cerrar */
.ctk-glass-popup .maplibregl-popup-close-button,
.ctk-glass-popup .mapboxgl-popup-close-button{
  color: rgba(255,255,255,0.9);
  font-size: 18px;
  padding: 6px 8px;
  border-radius: 10px;
}
.ctk-glass-popup .maplibregl-popup-close-button:hover,
.ctk-glass-popup .mapboxgl-popup-close-button:hover{
  background: rgba(255,255,255,0.08);
}


/* CAP popup con el MISMO glass que #layers-container #buttons */
.ctk-cap-popup .maplibregl-popup-content,
.ctk-cap-popup .mapboxgl-popup-content{
  padding: 14px 18px;

  max-width: 280px;
  /* el popup no necesita max-height/scroll normalmente; si quieres, lo ponemos */
  /* max-height: calc(100vh - 420px);
     overflow-y: auto; */

  background: rgba(0, 0, 0, 0) !important;
  color: #fff;

  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.15);

  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);

  box-shadow: 0 4px 16px rgba(0,0,0,0.6);

  font-size: 14px;
  line-height: 1.5;
}

/* La “flecha” del popup (tip) */
.ctk-cap-popup .maplibregl-popup-tip,
.ctk-cap-popup .mapboxgl-popup-tip{
  border-top-color: rgba(0,0,0,0);
  border-bottom-color: rgba(0,0,0,0);
}

/* Botón de cierre integrado con glass */
.ctk-cap-popup .maplibregl-popup-close-button,
.ctk-cap-popup .mapboxgl-popup-close-button{
  color: #fff;
  font-size: 18px;
  padding: 6px 8px;
  border-radius: 10px;
}
.ctk-cap-popup .maplibregl-popup-close-button:hover,
.ctk-cap-popup .mapboxgl-popup-close-button:hover{
  background: rgba(255,255,255,0.08);
}

#globe-toggle{
  position: fixed;
  right: 10px;
  top: 305px;              /* AJUSTA: ponlo debajo del último botón derecho */
  z-index: 12000;

  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 50%;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: rgba(0,0,0,0);
  border: 1px solid rgba(255,255,255,0.2);
  cursor: pointer;
}

#globe-toggle:hover{
  background: rgba(0,119,182,0.85);
}

#globe-toggle #globe-icon{
  font-size: 22px;         /* emoji */
  line-height: 1;
  color: #fff;
}