/*! JDServer-Webs v6.3.0 — modules/extremes/extremes.css */
#extremes {
  margin: 28px 0;
}

.extremes-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}

#extremes h3 {
  font-size: 1.4rem;
  font-weight: 600;
  margin: 0;
}

/* Botón discreto efeméride — MISMA FAMILIA VISUAL QUE nearcams */
.extremes-efemeride-btn{
  --a: var(--brand);

  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 6px 10px;
  min-height: 34px;
  border-radius:999px;
  border: 1px solid color-mix(in srgb, var(--a) 45%, var(--border));
  background: color-mix(in srgb, var(--a) 12%, var(--bg));
  color: color-mix(in srgb, var(--a) 70%, var(--text));
  text-decoration:none;
  font-weight:800;
  font-size:.85rem;
  letter-spacing:.01em;
  line-height:1;
  white-space:nowrap;
  box-shadow: var(--shadow-1);
  transition:
    transform .18s ease,
    box-shadow .18s ease,
    background-color .18s ease,
    border-color .18s ease,
    color .18s ease;
}

.extremes-efemeride-btn:visited{
  color: color-mix(in srgb, var(--a) 70%, var(--text));
}

.extremes-efemeride-btn:hover{
  transform:translateY(-1px);
  box-shadow:var(--shadow-2);
  background: color-mix(in srgb, var(--a) 16%, var(--bg));
  border-color: color-mix(in srgb, var(--a) 60%, var(--border));
  color: color-mix(in srgb, var(--a) 78%, var(--text));
}

.extremes-efemeride-btn:active{
  transform: translateY(1px);
}

.extremes-efemeride-btn:focus-visible{
  outline: none;
  box-shadow:
    0 0 0 3px color-mix(in srgb, var(--a) 18%, transparent),
    var(--shadow-2);
}

/* Contenedor principal (3 columnas adaptables) */
.extremes-table {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
}

/* Tarjeta individual */
.extreme-item {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-1);
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: transform .2s ease, box-shadow .2s ease;
}

.extreme-item:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-2);
}

/* Cabecera de cada tarjeta */
.extreme-item strong {
  font-weight: 600;
  font-size: 1.05rem;
  margin-bottom: 4px;
}

/* Líneas de datos (tipo tabla) */
.extreme-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  font-size: .92rem;
  line-height: 1.4;
  gap: 10px;
}

.extreme-line span:first-child {
  color: var(--muted);
}

.extreme-line span:last-child {
  font-variant-numeric: tabular-nums;
  color: var(--text);
  text-align: right;
}

/* Valor duo (máx / mín) en la misma línea */
.extreme-duo {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-variant-numeric: tabular-nums;
}

.extreme-duo .max,
.extreme-duo .min {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.extreme-duo .max::before {
  content: "▲";
  font-size: .8em;
  opacity: .8;
}

.extreme-duo .min::before {
  content: "▼";
  font-size: .8em;
  opacity: .8;
}

/* Colores sutiles (tema-aware) */
.extreme-duo .max {
  color: var(--brand-strong, #d44);
}

.extreme-duo .min {
  color: var(--brand-50, #3aa);
  opacity: .95;
}

/* Inline de intensidad + fecha */
.extreme-inline {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
}

.extreme-meta {
  color: var(--muted);
  font-size: .86em;
}

/* Móvil */
@media (max-width: 600px) {
  .extremes-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    flex-wrap:nowrap;
  }

  #extremes h3 {
    margin: 0;
    text-align: left;
    width: auto;
    flex: 1 1 auto;
    min-width: 0;
  }

  .extremes-efemeride-btn{
    flex: 0 0 auto;
    margin-top: 0;
    align-self: center;
    padding: 6px 9px;
    min-height: 32px;
    font-size: .84rem;
  }
}


/* Dirección dominante del viento */
.wind-dom-value{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  white-space:nowrap;
}

.wind-dom-dir{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:2.45em;
  padding:2px 7px;
  border-radius:999px;
  font-weight:850;
  font-size:.88em;
  letter-spacing:.025em;
  color:color-mix(in srgb, var(--brand, #14b8a6) 72%, var(--text));
  background:color-mix(in srgb, var(--brand, #14b8a6) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--brand, #14b8a6) 22%, var(--border));
}

.wind-dom-pct{
  font-weight:400;
  color:var(--muted);
  opacity:.95;
}

/* =========================================================
   EXTREMES · cambio de valores alineado con LIVE
   ========================================================= */

#extremes{
  --extreme-change-good:    #16a34a;
  --extreme-change-cool:    #0ea5e9;
  --extreme-change-neutral: #14b8a6;
  --extreme-change-caution: #f59e0b;
  --extreme-change-bad:     #dc2626;
  --extreme-change-uv:      #d946ef;
}

.extreme-line-value{
  min-width:0;
}

.extreme-number,
.wind-dom-animation-slot{
  display:inline-block;
  position:relative;
  max-width:100%;
  white-space:nowrap;
  vertical-align:middle;
  font-variant-numeric:tabular-nums;
}

.extreme-duo .max .extreme-number,
.extreme-duo .min .extreme-number{
  color:inherit;
}

#extremes .extreme-value-carousel-host{
  height:1.42em;
  min-height:1.42em;
  line-height:1.4em;
  overflow:hidden;
  vertical-align:middle;
  text-align:right;
}

#extremes .extreme-value-carousel{
  display:block;
  position:relative;
  width:100%;
  height:1.42em;
  min-height:1.42em;
  line-height:1.4em;
}

#extremes .extreme-value-old,
#extremes .extreme-value-new{
  position:absolute;
  top:0;
  right:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  width:100%;
  height:1.42em;
  line-height:1.4em;
  white-space:nowrap;
  text-align:right;
  text-shadow:none;
  filter:none;
}

#extremes .extreme-value-carousel-up .extreme-value-old{
  animation:extremeValueOldUp 1.75s cubic-bezier(.22,.82,.22,1) forwards;
}
#extremes .extreme-value-carousel-up .extreme-value-new{
  animation:extremeValueNewUp 1.75s cubic-bezier(.22,.82,.22,1) forwards;
}
#extremes .extreme-value-carousel-down .extreme-value-old{
  animation:extremeValueOldDown 1.75s cubic-bezier(.22,.82,.22,1) forwards;
}
#extremes .extreme-value-carousel-down .extreme-value-new{
  animation:extremeValueNewDown 1.75s cubic-bezier(.22,.82,.22,1) forwards;
}

@keyframes extremeValueOldUp{
  0%{ transform:translateY(0); opacity:1; }
  100%{ transform:translateY(-112%); opacity:.14; }
}
@keyframes extremeValueNewUp{
  0%{ transform:translateY(112%); opacity:.14; }
  64%{ transform:translateY(-3%); opacity:1; }
  100%{ transform:translateY(0); opacity:1; }
}
@keyframes extremeValueOldDown{
  0%{ transform:translateY(0); opacity:1; }
  100%{ transform:translateY(112%); opacity:.14; }
}
@keyframes extremeValueNewDown{
  0%{ transform:translateY(-112%); opacity:.14; }
  64%{ transform:translateY(3%); opacity:1; }
  100%{ transform:translateY(0); opacity:1; }
}

#extremes .extreme-value-carousel-host.extreme-value-flash-good,
#extremes .extreme-value-carousel-host.extreme-value-flash-good *{
  color:var(--extreme-change-good) !important;
}
#extremes .extreme-value-carousel-host.extreme-value-flash-cool,
#extremes .extreme-value-carousel-host.extreme-value-flash-cool *{
  color:var(--extreme-change-cool) !important;
}
#extremes .extreme-value-carousel-host.extreme-value-flash-neutral,
#extremes .extreme-value-carousel-host.extreme-value-flash-neutral *{
  color:var(--extreme-change-neutral) !important;
}
#extremes .extreme-value-carousel-host.extreme-value-flash-caution,
#extremes .extreme-value-carousel-host.extreme-value-flash-caution *{
  color:var(--extreme-change-caution) !important;
}
#extremes .extreme-value-carousel-host.extreme-value-flash-bad,
#extremes .extreme-value-carousel-host.extreme-value-flash-bad *{
  color:var(--extreme-change-bad) !important;
}
#extremes .extreme-value-carousel-host.extreme-value-flash-uv,
#extremes .extreme-value-carousel-host.extreme-value-flash-uv *{
  color:var(--extreme-change-uv) !important;
}

#extremes .extreme-number.extreme-value-flash-good,
#extremes .wind-dom-animation-slot.extreme-value-flash-good{
  animation:extremeFlashGood 1.25s ease-out forwards;
}
#extremes .extreme-number.extreme-value-flash-cool,
#extremes .wind-dom-animation-slot.extreme-value-flash-cool{
  animation:extremeFlashCool 1.25s ease-out forwards;
}
#extremes .extreme-number.extreme-value-flash-neutral,
#extremes .wind-dom-animation-slot.extreme-value-flash-neutral{
  animation:extremeFlashNeutral 1.25s ease-out forwards;
}
#extremes .extreme-number.extreme-value-flash-caution,
#extremes .wind-dom-animation-slot.extreme-value-flash-caution{
  animation:extremeFlashCaution 1.25s ease-out forwards;
}
#extremes .extreme-number.extreme-value-flash-bad,
#extremes .wind-dom-animation-slot.extreme-value-flash-bad{
  animation:extremeFlashBad 1.25s ease-out forwards;
}
#extremes .extreme-number.extreme-value-flash-uv,
#extremes .wind-dom-animation-slot.extreme-value-flash-uv{
  animation:extremeFlashUv 1.25s ease-out forwards;
}

#extremes .wind-dom-animation-slot.extreme-value-flash-neutral *{
  color:inherit !important;
}

@keyframes extremeFlashGood{
  0%{ color:var(--extreme-change-good); }
  100%{ color:var(--extreme-value-rest-color, var(--fg, var(--text))); }
}
@keyframes extremeFlashCool{
  0%{ color:var(--extreme-change-cool); }
  100%{ color:var(--extreme-value-rest-color, var(--fg, var(--text))); }
}
@keyframes extremeFlashNeutral{
  0%{ color:var(--extreme-change-neutral); }
  100%{ color:var(--extreme-value-rest-color, var(--fg, var(--text))); }
}
@keyframes extremeFlashCaution{
  0%{ color:var(--extreme-change-caution); }
  100%{ color:var(--extreme-value-rest-color, var(--fg, var(--text))); }
}
@keyframes extremeFlashBad{
  0%{ color:var(--extreme-change-bad); }
  100%{ color:var(--extreme-value-rest-color, var(--fg, var(--text))); }
}
@keyframes extremeFlashUv{
  0%{ color:var(--extreme-change-uv); }
  100%{ color:var(--extreme-value-rest-color, var(--fg, var(--text))); }
}

#extremes .extreme-number.extreme-value-hot-red,
#extremes .extreme-number.extreme-pint-torrential-blink{
  color:#dc2626 !important;
}
#extremes .extreme-number.extreme-value-cold-blue{
  color:#0284c7 !important;
}

@keyframes extremePintTorrentialBlink{
  0%,100%{ opacity:1; }
  50%{ opacity:.48; }
}
#extremes .extreme-number.extreme-pint-torrential-blink{
  animation:extremePintTorrentialBlink 1s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce){
  #extremes .extreme-value-old{ display:none !important; }
  #extremes .extreme-value-new{
    position:static !important;
    animation:none !important;
    transform:none !important;
    opacity:1 !important;
  }
  #extremes .extreme-number,
  #extremes .wind-dom-animation-slot{
    animation:none !important;
  }
}
