/* ============================================================
   Kardumen — /clima
   Página pública y gratuita de pronóstico marino.
   Tema claro tipo tabla náutica, la misma paleta de la app.
   ============================================================ */

:root{
  --azul:#1F7FD8; --azul-osc:#1560AC; --azul-claro:#E8F3FC;
  --tinta:#1C2126; --gris:#5B6570; --gris-linea:#E0E3E7; --gris-claro:#EDEFF2;
  --blanco:#fff; --lienzo:#F6F7F9; --plata:#8FA3B4;
  --grad:linear-gradient(115deg,#2FD8F5 0%,#25B4E8 42%,#1F7FD8 100%);
  --sobre-grad:#03121B;
  --verde:#1E9E5A; --ambar:#E0902A; --rojo:#D4453E;
  --mono:'Space Mono',ui-monospace,monospace;
  --sans:'Plus Jakarta Sans',system-ui,-apple-system,sans-serif;
  --titulo:'Oswald',var(--sans);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--lienzo);color:var(--tinta);font-family:var(--sans);
  -webkit-font-smoothing:antialiased}
a{color:var(--azul);text-decoration:none}
button{font-family:inherit}
h1,h2,h3{font-family:var(--titulo);text-transform:uppercase;letter-spacing:.01em;margin:0}

/* ── Barra superior ─────────────────────────────────────
   Oscura como la de la portada. El logotipo de Kardumen es
   blanco: sobre barra clara desaparecía. */
.barra{
  position:sticky;top:0;z-index:30;
  background:linear-gradient(180deg,rgba(4,28,48,.98),rgba(3,18,32,.95));
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(94,224,255,.22);
  box-shadow:0 12px 40px rgba(1,10,20,.35);
  padding:11px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.barra img{height:26px;width:auto;display:block;
  filter:drop-shadow(0 0 18px rgba(94,224,255,.35))}
.barra .abrir{background:linear-gradient(120deg,#6ce4ff,#1487d2);color:#032030;font-weight:700;
  font-size:13px;border-radius:999px;padding:9px 18px;white-space:nowrap;
  box-shadow:0 8px 26px rgba(30,160,225,.4)}
.barra .abrir:hover{color:#032030;filter:brightness(1.06)}
.barra-clima{font-size:13.5px;font-weight:500;color:#cfe7f6;padding:9px 13px;
  border-radius:999px;margin-left:auto;transition:color .25s ease,background .25s ease}
.barra-clima:hover{color:#9beeff;background:rgba(94,224,255,.10)}

.envoltorio{max-width:1080px;margin:0 auto;padding:16px 12px 48px}

/* ── Encabezado ─────────────────────────────────────────── */
.intro{text-align:center;margin-bottom:16px}
.intro h1{font-size:clamp(26px,7vw,42px);line-height:1.02}
.intro p{margin:9px auto 0;max-width:52ch;font-size:14.5px;line-height:1.55;color:var(--gris)}
.gratis{display:inline-block;margin-bottom:10px;background:var(--azul-claro);color:var(--azul-osc);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  padding:6px 13px;border-radius:999px}

/* ── Selector de puerto ─────────────────────────────────── */
.puertos{display:flex;gap:7px;overflow-x:auto;padding:4px 2px 10px;scrollbar-width:none}
.puertos::-webkit-scrollbar{display:none}
.puertos button{flex:0 0 auto;border:1px solid var(--gris-linea);background:var(--blanco);
  border-radius:999px;padding:9px 15px;font-size:13.5px;font-weight:600;color:var(--tinta);
  cursor:pointer;white-space:nowrap;transition:.2s}
.puertos button:hover{border-color:var(--azul)}
.puertos button.on{background:var(--azul);border-color:var(--azul);color:#fff}
.puertos button.gps{color:var(--azul);font-weight:700}

/* ── Veredicto ──────────────────────────────────────────── */
.veredicto{background:var(--blanco);border:1px solid var(--gris-linea);border-radius:16px;
  padding:20px;margin-bottom:14px;box-shadow:0 6px 24px rgba(20,40,60,.06)}
.veredicto .donde{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--plata);margin-bottom:8px}
.veredicto .fallo{font-family:var(--titulo);font-size:clamp(34px,10vw,56px);line-height:1;margin:0 0 6px}
.veredicto .fallo.sal{color:var(--verde)}
.veredicto .fallo.dudoso{color:var(--ambar)}
.veredicto .fallo.no{color:var(--rojo)}
.veredicto .razon{font-size:15px;line-height:1.55;color:var(--tinta);margin:0 0 14px;max-width:60ch}
.resumen{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px}
.resumen div{background:var(--lienzo);border:1px solid var(--gris-linea);border-radius:11px;
  padding:11px 10px;text-align:center}
.resumen b{display:block;font-size:19px;font-weight:800;color:var(--tinta)}
.resumen span{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--gris);margin-top:3px}

/* ── Días ──────────────────────────────────────────────── */
.dias{display:flex;gap:7px;overflow-x:auto;padding:2px 2px 12px;scrollbar-width:none}
.dias::-webkit-scrollbar{display:none}
.dias button{flex:0 0 auto;min-width:82px;border:1px solid var(--gris-linea);background:var(--blanco);
  border-radius:13px;padding:10px 11px;cursor:pointer;text-align:left;transition:.2s}
.dias button.on{border-color:var(--azul);background:var(--azul-claro)}
.dias .dnom{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gris)}
.dias .dnum{display:block;font-size:17px;font-weight:800;margin-top:2px}
.dias .dvto{display:flex;align-items:center;gap:5px;margin-top:5px}
.dias .dvto i{width:7px;height:7px;border-radius:50%;flex:none}
.dias .dvto span{font-size:12px;font-weight:600;color:var(--gris)}

/* ── Pestañas ──────────────────────────────────────────── */
.pestanas{display:flex;gap:2px;border-bottom:1px solid var(--gris-linea);margin-bottom:14px}
.pestanas button{flex:1;border:0;background:transparent;padding:12px 6px;font-size:14px;
  font-weight:600;color:var(--gris);cursor:pointer;border-bottom:2px solid transparent}
.pestanas button.on{color:var(--azul);border-bottom-color:var(--azul)}
.panel[hidden]{display:none}

/* ── Tabla estilo Windguru ─────────────────────────────── */
.tabla-caja{background:var(--blanco);border:1px solid var(--gris-linea);border-radius:14px;
  overflow:hidden;box-shadow:0 6px 24px rgba(20,40,60,.06)}
.tabla-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 14px;border-bottom:1px solid var(--gris-linea)}
.tabla-cab h3{font-size:16px}
.tabla-cab small{font-family:var(--mono);font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--plata)}
.tabla-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.clima{border-collapse:collapse;width:100%;min-width:760px;font-size:13px}
table.clima th,table.clima td{border-bottom:1px solid var(--gris-linea);
  border-right:1px solid var(--gris-linea);padding:7px 4px;text-align:center;white-space:nowrap}
table.clima tr:last-child th,table.clima tr:last-child td{border-bottom:0}
table.clima th.et{position:sticky;left:0;z-index:2;background:var(--blanco);text-align:left;
  padding-left:12px;padding-right:12px;font-weight:600;color:var(--tinta);min-width:118px;
  box-shadow:1px 0 0 var(--gris-linea)}
table.clima th.et small{color:var(--plata);font-weight:400;font-size:10.5px;margin-left:3px}
table.clima thead th{background:var(--lienzo);font-family:var(--mono);font-size:11px;
  letter-spacing:.05em;color:var(--gris);font-weight:400}
table.clima thead th.ahora{background:var(--azul);color:#fff}
table.clima td{font-variant-numeric:tabular-nums;color:var(--tinta)}
table.clima td.dir{font-size:15px;color:var(--azul-osc)}
table.clima td.estrellas{font-size:9px;letter-spacing:-1px;color:var(--verde)}
table.clima td.vacio{color:var(--plata)}

/* Escala de color: viento y olas */
.v1{background:#EAF7EE}.v2{background:#CFEEDA}.v3{background:#FDF1D4}
.v4{background:#FADFC4}.v5{background:#F8CFCB}.v6{background:#F0B0AA}
.o1{background:#EAF4FB}.o2{background:#D2E8F7}.o3{background:#FCE6CC}.o4{background:#F8D3AE}
.n1{background:#F4F5F7}.n2{background:#E4E7EA}.n3{background:#D2D7DC}
.ll1{background:#E8F1FB}.ll2{background:#CFE2F7}.ll3{background:#B4D2F2}

.leyenda{display:flex;flex-wrap:wrap;gap:12px;padding:11px 14px;border-top:1px solid var(--gris-linea);
  background:var(--lienzo);font-size:11.5px;color:var(--gris)}
.leyenda span{display:flex;align-items:center;gap:5px}
.leyenda i{width:13px;height:13px;border-radius:3px;display:block;border:1px solid rgba(0,0,0,.08)}
.pista-scroll{padding:8px 14px;font-size:11.5px;color:var(--plata);text-align:center;
  border-top:1px solid var(--gris-linea)}

/* ── Actividad de peces ─────────────────────────────────── */
.act{background:var(--blanco);border:1px solid var(--gris-linea);border-radius:14px;padding:20px;
  box-shadow:0 6px 24px rgba(20,40,60,.06)}
.act-cabeza{text-align:center;margin-bottom:16px}
.act-num{font-size:52px;font-weight:800;line-height:1;color:var(--tinta)}
.act-nivel{font-family:var(--titulo);font-size:21px;text-transform:uppercase;margin-top:6px}
.act-luna{font-size:13.5px;color:var(--gris);margin-top:5px}
.act-curva{width:100%;height:132px;display:block}
.act-horas{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;
  color:var(--plata);padding:4px 2px 0}
.periodos{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:16px}
.periodos div{background:var(--lienzo);border:1px solid var(--gris-linea);border-radius:12px;padding:13px}
.periodos h4{margin:0 0 7px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gris);font-weight:400}
.periodos p{margin:3px 0;font-size:14.5px;font-weight:600;font-variant-numeric:tabular-nums}
.act-nota{margin:14px 0 0;font-size:12.5px;line-height:1.55;color:var(--gris)}

/* ── Sol y luna ────────────────────────────────────────── */
.astro{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.astro div{background:var(--blanco);border:1px solid var(--gris-linea);border-radius:13px;
  padding:16px;text-align:center}
.astro .ic{font-size:26px}
.astro b{display:block;font-size:19px;font-weight:800;margin-top:6px;font-variant-numeric:tabular-nums}
.astro span{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gris);margin-top:4px}

/* ── Compartir ─────────────────────────────────────────── */
.compartir{display:flex;gap:8px;margin-top:16px}
.compartir a,.compartir button{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;
  border:0;border-radius:12px;padding:13px 8px;font-size:14px;font-weight:700;cursor:pointer;
  color:#fff;min-width:0}
.compartir svg{width:17px;height:17px;fill:currentColor;flex:none}
.sh-wa{background:#25D366}
.sh-fb{background:#1877F2}
/* El degradado de la marca. Va con doble clase porque
   «.compartir button» pesa más que una clase suelta y dejaba
   el texto en blanco sobre gris: no se leía nada. */
.compartir .sh-cp{background:var(--grad);color:var(--sobre-grad)}
@media (max-width:380px){.compartir .et{display:none}}

/* ── Llamada a la app ──────────────────────────────────── */
.llamada{margin-top:18px;background:var(--blanco);border:1px solid var(--gris-linea);
  border-radius:16px;padding:26px 20px;text-align:center}
.llamada h2{font-size:24px;margin-bottom:9px}
.llamada p{font-size:14.5px;line-height:1.6;color:var(--gris);margin:0 auto 16px;max-width:48ch}
.llamada .btn{display:inline-block;background:var(--grad);color:var(--sobre-grad);font-weight:700;
  border-radius:999px;padding:14px 30px;font-size:15px}
.llamada small{display:block;margin-top:11px;font-family:var(--mono);font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--plata)}

.cargando{text-align:center;padding:40px 20px;color:var(--gris);font-size:14px}
.error{text-align:center;padding:26px 20px;color:var(--rojo);font-size:14px}
.pie{text-align:center;font-size:12px;color:var(--plata);padding:26px 14px 40px;line-height:1.7}

.seccion{margin-top:16px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ── Buscador de cualquier playa ────────────────────────── */
.buscador{position:relative;margin-bottom:12px}
.campo{display:flex;align-items:center;gap:8px;background:var(--blanco);
  border:1px solid var(--gris-linea);border-radius:14px;padding:6px 8px 6px 12px;
  box-shadow:0 4px 18px rgba(20,40,60,.05)}
.campo:focus-within{border-color:var(--azul);box-shadow:0 0 0 3px var(--azul-claro)}
.campo .lupa{font-size:15px;flex:none;opacity:.6}
.campo input{flex:1;min-width:0;border:0;outline:none;background:transparent;
  font-family:inherit;font-size:15px;color:var(--tinta);padding:9px 0}
.campo input::placeholder{color:var(--plata)}
.campo .gps{flex:none;border:1px solid var(--gris-linea);background:var(--lienzo);
  border-radius:10px;padding:9px 13px;font-size:13px;font-weight:700;color:var(--azul);
  cursor:pointer;white-space:nowrap}
.campo .gps:hover{border-color:var(--azul)}
.campo .gps.on{background:var(--azul);border-color:var(--azul);color:#fff}
@media (max-width:420px){.campo .gps{font-size:0;padding:9px 11px}.campo .gps::first-letter{font-size:15px}}

.resultados{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;margin:0;padding:6px;
  list-style:none;background:var(--blanco);border:1px solid var(--gris-linea);border-radius:14px;
  box-shadow:0 14px 40px rgba(20,40,60,.16);max-height:320px;overflow-y:auto}
.resultados li{padding:11px 12px;border-radius:10px;cursor:pointer;line-height:1.3}
.resultados li:hover{background:var(--azul-claro)}
.resultados li b{display:block;font-size:14.5px;font-weight:600;color:var(--tinta)}
.resultados li small{display:block;font-size:12px;color:var(--gris);margin-top:2px}
.resultados li.nada{cursor:default;font-size:13.5px;color:var(--gris)}
.resultados li.nada:hover{background:transparent}

/* ── Filtro por país ────────────────────────────────────── */
.filtro-pais{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:4px}
.filtro-pais label{font-family:var(--mono);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gris)}
.filtro-pais select{border:1px solid var(--gris-linea);background:var(--blanco);border-radius:10px;
  padding:9px 12px;font-family:inherit;font-size:14px;font-weight:600;color:var(--tinta);cursor:pointer}
.filtro-pais select:focus{outline:2px solid var(--azul);outline-offset:1px}
.filtro-pais .cuenta{margin-left:auto;font-size:11.5px;color:var(--plata)}

/* ── Aviso de oleaje corrido ────────────────────────────── */
.aviso-mar{margin:0 0 12px;background:#FFF6E5;border:1px solid #F0DFC0;border-radius:11px;
  padding:11px 13px;font-size:13px;line-height:1.5;color:#7A5B22}
