/*
 * MeteoArchidona
 * Componentes de embalses
 *
 * Estilos de los componentes reutilizables de js/embalses/:
 *
 *     embalses-resumen · embalses-cuencas · embalses-anio-hidrologico
 *     embalses-lista · embalses-ficha · embalses-comarca
 *
 * Decisión de José del 5-11-2026: los embalses van con un aspecto
 * propio de agua, al contrario que el resto del sitio, que es oscuro:
 * fondo blanco y azules, del celeste claro al azul profundo. Las líneas
 * y la forma de las tarjetas son las de siempre (bordes finos, radios de
 * 14 px, etiquetas en JetBrains Mono); solo cambia la paleta.
 *
 * La paleta está aquí, acotada a .emb-componente (y a la página
 * Embalses, .embalses), y no en css/paleta.css: así un componente de
 * embalses se ve igual en su página que dentro de un dashboard oscuro.
 *
 * Cada componente carga esta hoja solo si la página no la tiene
 * (js/embalses/comun.js) y se adapta al ancho de su hueco, no al de la
 * pantalla: cada raíz es un contenedor (container-type) y las reglas de
 * tamaño van con @container.
 */


/* ==========================================================
   PALETA DE AGUA
   ========================================================== */

.embalses,
.emb-componente {
    --emb-blanco: #ffffff;
    --emb-espuma: #f5fbfe;
    --emb-celeste-claro: #e6f5fc;
    --emb-celeste: #c9e9f8;
    --emb-agua-clara: #8fd0ee;
    --emb-agua: #3fa4dc;
    --emb-azul: #1a74b8;
    --emb-azul-oscuro: #0f4f8a;
    --emb-profundo: #0a3460;
    --emb-abismo: #06213f;

    --emb-texto: #0a2a48;
    --emb-texto-suave: #3f6383;
    --emb-texto-tenue: #6b8aa5;
    --emb-borde: #cde3f2;
    --emb-borde-fuerte: #9ccbe8;

    --emb-sombra: 0 10px 28px rgba(15, 79, 138, 0.10);

    /* Estados del embalse por su porcentaje (dominio/embalses.py de la
     * API): crítico < 25 %, bajo < 50, bueno < 75, lleno ≥ 75. Los
     * malos se salen del azul a propósito, para que se vean. */
    --emb-critico: #d4572b;
    --emb-bajo: #e3a21a;
    --emb-bueno: #2b93d1;
    --emb-lleno: #0f4f8a;
}

.emb-componente .estado-CRITICO, .embalses .estado-CRITICO { --emb-estado: var(--emb-critico); }
.emb-componente .estado-BAJO, .embalses .estado-BAJO { --emb-estado: var(--emb-bajo); }
.emb-componente .estado-BUENO, .embalses .estado-BUENO { --emb-estado: var(--emb-bueno); }
.emb-componente .estado-LLENO, .embalses .estado-LLENO { --emb-estado: var(--emb-lleno); }


/* ==========================================================
   RAÍZ COMÚN
   ========================================================== */

.emb-componente {
    container-type: inline-size;
    display: grid;
    gap: 14px;
    min-width: 0;
    padding: 18px 20px;
    color: var(--emb-texto);
    background: linear-gradient(170deg, var(--emb-blanco) 0%, var(--emb-espuma) 70%, var(--emb-celeste-claro) 100%);
    border: 1px solid var(--emb-borde);
    border-radius: 14px;
    box-shadow: var(--emb-sombra);
    font-family: "Sora", sans-serif;
}

/* En la página Embalses el bloque ya es la tarjeta: el componente va sin
 * marco propio. */
.embalses-bloque > .emb-componente {
    padding: 0;
    background: none;
    border: 0;
    box-shadow: none;
}

.emb-titulo {
    margin: 0;
    color: var(--emb-azul-oscuro);
    font-size: 16px;
    font-weight: 700;
}

.emb-etiqueta {
    color: var(--emb-azul);
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.emb-aviso {
    margin: 0;
    color: var(--emb-texto-suave);
    font-size: 14px;
}

.emb-aviso.error {
    color: var(--emb-critico);
}

.emb-pie {
    margin: 0;
    color: var(--emb-texto-tenue);
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
}

.emb-componente a {
    color: var(--emb-azul);
    text-decoration: none;
}

.emb-componente a:hover {
    text-decoration: underline;
}

.emb-cifra {
    font-family: "JetBrains Mono", monospace;
    font-variant-numeric: tabular-nums;
}

.emb-sube { color: var(--emb-azul); }
.emb-baja { color: var(--emb-critico); }
.emb-igual { color: var(--emb-texto-tenue); }

.emb-estado {
    display: inline-block;
    padding: 2px 8px;
    color: var(--emb-blanco);
    background: var(--emb-estado, var(--emb-texto-tenue));
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    white-space: nowrap;
}


/* ==========================================================
   VASO: el embalse lleno hasta su porcentaje, con una ola
   ========================================================== */

.emb-vaso {
    position: relative;
    overflow: hidden;
    background: var(--emb-celeste-claro);
    border: 2px solid var(--emb-borde-fuerte);
    border-radius: 12px 12px 18px 18px;
}

.emb-vaso-agua {
    position: absolute;
    inset: auto 0 0 0;
    height: var(--emb-nivel, 0%);
    background: linear-gradient(180deg, var(--emb-agua) 0%, var(--emb-azul) 55%, var(--emb-profundo) 100%);
    transition: height 0.8s ease;
}

.emb-vaso-agua::before {
    content: "";
    position: absolute;
    top: -7px;
    left: 0;
    width: 200%;
    height: 14px;
    background: radial-gradient(circle at 10px -3px, transparent 10px, var(--emb-agua) 10.5px) repeat-x;
    background-size: 20px 14px;
    animation: emb-ola 6s linear infinite;
    opacity: 0.9;
}

@keyframes emb-ola {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
    .emb-vaso-agua::before { animation: none; }
}

/* Marca de un nivel de referencia (hace un año, media de 10 años). */
.emb-vaso-marca {
    position: absolute;
    left: 0;
    right: 0;
    bottom: var(--emb-marca, 0%);
    border-top: 2px dashed rgba(255, 255, 255, 0.9);
    box-shadow: 0 -1px 0 rgba(6, 33, 63, 0.35);
}

.emb-vaso-cifra {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: var(--emb-abismo);
    font-family: "JetBrains Mono", monospace;
    font-weight: 700;
    text-shadow: 0 0 6px rgba(255, 255, 255, 0.9);
}

/* Barra horizontal para listas y tarjetas. */
.emb-barra {
    position: relative;
    height: 8px;
    overflow: hidden;
    background: var(--emb-celeste);
    border-radius: 999px;
}

.emb-barra > span {
    position: absolute;
    inset: 0 auto 0 0;
    width: var(--emb-nivel, 0%);
    background: linear-gradient(90deg, var(--emb-agua-clara), var(--emb-estado, var(--emb-azul)));
    border-radius: inherit;
}


/* ==========================================================
   RESUMEN
   ========================================================== */

.emb-resumen {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 18px;
    align-items: center;
}

.emb-resumen .emb-vaso {
    height: 150px;
}

.emb-resumen .emb-vaso-cifra {
    font-size: 24px;
}

.emb-resumen-datos {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.emb-resumen-principal {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
}

.emb-resumen-principal strong {
    color: var(--emb-azul-oscuro);
    font-size: 22px;
}

.emb-comparativas {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 6px 0 0;
}

.emb-comparativa {
    padding: 8px 10px;
    background: var(--emb-blanco);
    border: 1px solid var(--emb-borde);
    border-radius: 10px;
}

.emb-comparativa dt {
    color: var(--emb-texto-tenue);
    font-size: 11px;
}

.emb-comparativa dd {
    margin: 2px 0 0;
    color: var(--emb-azul-oscuro);
    font-family: "JetBrains Mono", monospace;
    font-size: 16px;
    font-weight: 600;
}

.emb-comparativa small {
    display: block;
    margin-top: 1px;
    font-size: 11px;
    font-weight: 500;
}

@container (max-width: 430px) {
    .emb-resumen {
        grid-template-columns: 88px minmax(0, 1fr);
        gap: 14px;
    }

    .emb-resumen .emb-vaso {
        height: 118px;
    }

    .emb-resumen .emb-vaso-cifra {
        font-size: 19px;
    }

    .emb-comparativas {
        grid-template-columns: minmax(0, 1fr);
    }
}


/* ==========================================================
   TARJETAS POR CUENCA
   ========================================================== */

.emb-cuencas {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 10px;
}

.emb-cuenca {
    display: grid;
    gap: 8px;
    padding: 12px 14px;
    background: var(--emb-blanco);
    border: 1px solid var(--emb-borde);
    border-left: 4px solid var(--emb-estado, var(--emb-agua));
    border-radius: 10px;
}

.emb-cuenca-cabeza {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
}

.emb-cuenca-nombre {
    margin: 0;
    color: var(--emb-azul-oscuro);
    font-size: 14px;
    font-weight: 700;
}

.emb-cuenca-porcentaje {
    white-space: nowrap;
    color: var(--emb-azul-oscuro);
    font-family: "JetBrains Mono", monospace;
    font-size: 20px;
    font-weight: 700;
}

.emb-cuenca-detalle {
    margin: 0;
    color: var(--emb-texto-suave);
    font-size: 12px;
    line-height: 1.5;
}

.emb-cuenca[data-codigo] {
    cursor: pointer;
}

.emb-cuenca[data-codigo]:hover {
    border-color: var(--emb-borde-fuerte);
}


/* ==========================================================
   AÑO HIDROLÓGICO (gráfica SVG)
   ========================================================== */

.emb-grafica {
    min-width: 0;
}

.emb-grafica svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

.emb-grafica .rejilla {
    stroke: var(--emb-borde);
    stroke-width: 1;
}

.emb-grafica .eje {
    fill: var(--emb-texto-tenue);
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
}

.emb-grafica .banda {
    fill: var(--emb-celeste);
    opacity: 0.75;
}

.emb-grafica .linea-actual {
    fill: none;
    stroke: var(--emb-azul-oscuro);
    stroke-width: 3;
    stroke-linejoin: round;
    stroke-linecap: round;
}

.emb-grafica .linea-anterior {
    fill: none;
    stroke: var(--emb-agua);
    stroke-width: 2;
}

.emb-grafica .linea-media10 {
    fill: none;
    stroke: var(--emb-texto-suave);
    stroke-width: 1.6;
    stroke-dasharray: 6 4;
}

.emb-grafica .linea-media5 {
    fill: none;
    stroke: var(--emb-agua-clara);
    stroke-width: 1.6;
    stroke-dasharray: 2 3;
}

.emb-grafica .punto-actual {
    fill: var(--emb-blanco);
    stroke: var(--emb-azul-oscuro);
    stroke-width: 3;
}

.emb-grafica .cifra-actual {
    fill: var(--emb-azul-oscuro);
    font-family: "JetBrains Mono", monospace;
    font-size: 13px;
    font-weight: 700;
}

.emb-leyenda {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--emb-texto-suave);
    font-size: 12px;
}

.emb-leyenda li {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.emb-leyenda i {
    display: inline-block;
    width: 22px;
    height: 0;
    border-top: 3px solid var(--emb-azul-oscuro);
}

.emb-leyenda .anterior { border-top: 2px solid var(--emb-agua); }
.emb-leyenda .media10 { border-top: 2px dashed var(--emb-texto-suave); }
.emb-leyenda .media5 { border-top: 2px dotted var(--emb-agua-clara); }
.emb-leyenda .banda { height: 10px; border: 0; background: var(--emb-celeste); }


/* ==========================================================
   LISTA DE EMBALSES
   ========================================================== */

.emb-buscador {
    width: 100%;
    padding: 8px 12px;
    color: var(--emb-texto);
    background: var(--emb-blanco);
    border: 1px solid var(--emb-borde-fuerte);
    border-radius: 9px;
    font: inherit;
    font-size: 14px;
}

.emb-buscador:focus {
    outline: 2px solid var(--emb-agua);
    outline-offset: 1px;
}

.emb-ordenes {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.emb-boton {
    padding: 5px 11px;
    color: var(--emb-azul-oscuro);
    background: var(--emb-blanco);
    border: 1px solid var(--emb-borde-fuerte);
    border-radius: 999px;
    font: inherit;
    font-size: 12px;
    cursor: pointer;
}

.emb-boton[aria-pressed="true"] {
    color: var(--emb-blanco);
    background: var(--emb-azul);
    border-color: var(--emb-azul);
}

.emb-filas {
    display: grid;
    gap: 2px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.emb-fila {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(80px, 1fr) 58px 64px;
    gap: 10px;
    align-items: center;
    padding: 8px 6px;
    border-bottom: 1px solid var(--emb-celeste-claro);
}

.emb-fila:hover {
    background: var(--emb-celeste-claro);
}

.emb-fila-nombre {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.emb-fila-nombre a {
    color: var(--emb-texto);
    font-weight: 600;
}

.emb-fila-nombre small {
    display: block;
    color: var(--emb-texto-tenue);
    font-size: 11px;
}

.emb-fila-porcentaje,
.emb-fila-variacion {
    font-family: "JetBrains Mono", monospace;
    font-size: 13px;
    text-align: right;
}

.emb-fila-porcentaje {
    color: var(--emb-azul-oscuro);
    font-weight: 700;
}

.emb-mas {
    justify-self: center;
}

@container (max-width: 460px) {
    .emb-fila {
        grid-template-columns: minmax(0, 1fr) 54px 56px;
    }

    .emb-fila .emb-barra {
        grid-column: 1 / -1;
        grid-row: 2;
    }
}


/* ==========================================================
   FICHA DE UN EMBALSE
   ========================================================== */

.emb-ficha-cabeza {
    display: grid;
    gap: 4px;
}

.emb-ficha-nombre {
    margin: 0;
    color: var(--emb-azul-oscuro);
    font-size: 20px;
    font-weight: 700;
}

.emb-ficha-lugar {
    margin: 0;
    color: var(--emb-texto-suave);
    font-size: 13px;
}

.emb-historico svg {
    display: block;
    width: 100%;
    height: auto;
}

.emb-historico .area {
    fill: var(--emb-celeste);
    stroke: var(--emb-azul);
    stroke-width: 1.2;
}


/* ==========================================================
   COMARCA
   ========================================================== */

.emb-comarca {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
    gap: 12px;
}

.emb-comarca-embalse {
    display: grid;
    gap: 6px;
    justify-items: center;
    text-align: center;
    color: inherit;
}

.emb-comarca-embalse .emb-vaso {
    width: 76px;
    height: 92px;
}

.emb-comarca-embalse .emb-vaso-cifra {
    font-size: 15px;
}

.emb-comarca-nombre {
    color: var(--emb-azul-oscuro);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
}

.emb-comarca-detalle {
    color: var(--emb-texto-tenue);
    font-family: "JetBrains Mono", monospace;
    font-size: 11px;
}


/* Fin de fichero: css/embalses-componentes.css */
