.tracking-topic-view{min-width:0}.tracking-intro{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:28px;margin-bottom:18px}.tracking-intro p{margin:0;color:#25383d;font-size:15px;line-height:1.45}.tracking-intro strong{color:#173eaa}.tracking-control{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:start}.tracking-control label{display:grid;gap:5px;font-size:11px;font-weight:800}.tracking-control select,.tracking-control input{padding:9px;border:1px solid #d8dfe0;border-radius:6px;background:#fff;font:inherit}.tracking-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.tracking-card{min-height:114px;padding:17px;border-radius:12px;background:#f5f8fa;box-shadow:0 8px 16px rgba(31,51,57,.09)}.tracking-card span,.tracking-card small{display:block;font-size:11px;font-weight:700}.tracking-card strong{display:block;margin:10px 0 5px;color:#123e76;font-size:30px;letter-spacing:-.055em}.tracking-card.blue{background:#e8f3ff;color:#145aa1}.tracking-card.mint{background:#e1f7ed;color:#087d5b}.tracking-card.sun{background:#fff1d9;color:#895004}.tracking-card.lavender{background:#eeeeff;color:#4533b2}.tracking-card.red{background:#ffe7e7;color:#922c2c}.tracking-card.orange{background:#fff0d7;color:#a0560a}.tracking-card.yellow{background:#fff9d8;color:#78600b}.tracking-card.green{background:#e4f9ec;color:#157343}.tracking-card strong{color:currentColor}.tracking-split{display:grid;grid-template-columns:.7fr 1.3fr;gap:18px;margin-top:18px}.visual-panel{padding:18px;border-radius:12px;background:#fff;box-shadow:0 8px 18px rgba(27,47,54,.09)}.visual-panel h3{margin:0 0 12px;font-size:15px}.city-map-placeholder{display:grid;place-items:center;min-height:310px;border-radius:8px;background:linear-gradient(145deg,#fbfcfc,#edf2f1);color:#63808c;font-size:13px;font-weight:700}.rank-list{display:grid;gap:8px}.rank-row{display:grid;grid-template-columns:145px 1fr 54px;gap:8px;align-items:center;font-size:12px}.rank-row i{display:block;height:23px;border-radius:4px;background:#edf0e9;overflow:hidden}.rank-row i b{display:block;height:100%;border-radius:4px;background:#7da2c4}.rank-row b{font-size:11px;text-align:right}.risk-gauge{height:170px;display:grid;place-items:center;margin:7px 0;border-radius:130px 130px 0 0;background:conic-gradient(from 270deg at 50% 100%,#ffd000 0 30%,#ff7115 30% 62%,#ea2e32 62% 84%,transparent 84%);clip-path:inset(0 0 50% 0)}.risk-gauge b{margin-top:65px;font-size:36px;color:#943806}.alert-bars{display:grid;gap:15px}.alert-bars div{display:grid;grid-template-columns:85px 1fr;gap:8px;align-items:center;font-size:12px;font-weight:800}.alert-bars i{height:23px;border-radius:4px;background:#edf0e8;overflow:hidden}.alert-bars i b{display:block;height:100%;background:#ed3237;color:#fff;text-align:right;padding:4px 8px;box-sizing:border-box}.alert-bars .orange-bar b{background:#f87419}.alert-bars .yellow-bar b{background:#f4c909;color:#594500}.columns-bars{display:grid;grid-template-columns:repeat(5,1fr);height:235px;gap:18px;align-items:end;padding:25px 25px 0;border-bottom:2px solid #dce2df}.columns-bars div{display:grid;grid-template-rows:1fr auto;gap:7px;text-align:center;font-size:11px;font-weight:800}.columns-bars i{display:block;background:linear-gradient(#d12c2d,#f38b35);border-radius:4px 4px 0 0}.risk-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px}.risk-summary{display:grid;grid-template-columns:1.1fr .9fr;gap:12px}.risk-summary .visual-panel{min-height:255px}.risk-counts{display:grid;gap:9px}.risk-counts div{display:grid;grid-template-columns:78px 1fr 20px;gap:7px;align-items:center;font-size:12px}.risk-counts i{height:18px;border-radius:4px;background:#ef5757}.risk-counts div:nth-child(2) i{background:#ff7373}.risk-counts div:nth-child(3) i{background:#ffabab}.risk-counts div:nth-child(4) i{background:#ffe1e1}.embalses-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:18px}.reservoir-bars{display:grid;gap:8px;max-height:405px;overflow:auto}.reservoir-bars div{display:grid;grid-template-columns:175px 1fr;align-items:center;gap:10px;font-size:12px;text-align:right}.reservoir-bars i{height:22px;border-radius:5px;background:#ebf1f0;overflow:hidden}.reservoir-bars b{display:block;height:100%;box-sizing:border-box;padding:4px 8px;border-radius:5px;background:#08aec9;color:#fff;text-align:right}.embalse-metrics{display:grid;grid-template-columns:1fr 1fr;gap:13px}.embalse-metrics .tracking-card{box-shadow:none;border:1px solid #dbe7e5}.area-graph{height:190px;margin-top:13px;border-radius:8px;background:linear-gradient(to top,rgba(70,160,235,.48) 0 43%,transparent 43%),linear-gradient(175deg,transparent 0 48%,#1884ec 49% 50%,transparent 51%);border-bottom:2px solid #c6d2d4}@media(max-width:1100px){.tracking-cards{grid-template-columns:repeat(2,1fr)}.tracking-split,.embalses-layout{grid-template-columns:1fr}.tracking-intro{grid-template-columns:1fr}.risk-layout{grid-template-columns:1fr}}@media(max-width:600px){.tracking-cards,.risk-summary,.embalse-metrics{grid-template-columns:1fr}.tracking-control{grid-template-columns:1fr}.rank-row{grid-template-columns:110px 1fr 42px}.reservoir-bars div{grid-template-columns:120px 1fr}.visual-panel{padding:14px}}
/* Ajustes de densidad para las vistas con datos vivos. */
.columns-bars i{align-self:end;width:100%;min-height:9px}
.embalse-metrics{display:block}
.embalse-metrics>.tracking-cards{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.embalse-metrics .tracking-card{min-height:108px;padding:14px;box-shadow:none;border:1px solid #dbe7e5}
.embalse-metrics .tracking-card strong{font-size:clamp(21px,2.1vw,31px);line-height:1.05}
.embalse-metrics .tracking-card span,.embalse-metrics .tracking-card small{font-size:10px}
.city-map-placeholder.mini-risk-map{display:block;min-height:310px;padding:0;overflow:hidden}.mini-risk-map svg{display:block;width:100%;height:310px}.risk-department{fill:#e9eeee;stroke:#fff;stroke-width:1;transition:fill .2s ease,stroke-width .2s ease}.precipitation-department{fill:#e9eeee}.precipitation-department.is-selected{stroke:#e56520;stroke-width:2.25}.risk-capital{stroke:#fff;stroke-width:1.5;filter:drop-shadow(0 1px 2px rgba(15,32,40,.3))}.precipitation-capital{fill:#1e79d0}
@media(max-width:600px){.embalse-metrics>.tracking-cards{grid-template-columns:1fr}}
/* Reset final y explícito de las tarjetas de embalses: las reglas anteriores
   se fueron acumulando en varias rondas y algunas quedaron en conflicto,
   causando tarjetas desalineadas. Esta regla gana siempre por especificidad
   y no depende del orden de las anteriores. */
.embalse-metrics{display:block!important}
.embalse-metrics>.tracking-cards{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:1fr!important;gap:13px!important;position:static!important}
.embalse-metrics>.tracking-cards>.tracking-card{position:static!important;inset:auto!important;transform:none!important;width:auto!important;min-width:0!important;min-height:108px!important;box-sizing:border-box!important;overflow:hidden!important}
@media(max-width:600px){.embalse-metrics>.tracking-cards{grid-template-columns:1fr!important}}

/* Alertas: evitar tarjetas comprimidas y hacer visible el valor del indicador. */
.tracking-split{grid-template-columns:.78fr 1.22fr}
.tracking-split>div{display:grid;gap:14px;align-content:start}
.tracking-split .tracking-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tracking-split .tracking-card{min-height:132px;padding:16px}
.tracking-split .tracking-card strong{font-size:30px;overflow-wrap:anywhere}
.tracking-split .tracking-card span,.tracking-split .tracking-card small{line-height:1.2}

/* Las cuatro métricas de precipitación deben conservar una columna propia.
   minmax(0,1fr) evita que el contenido largo empuje o monte una tarjeta sobre otra. */
.tracking-topic-view > .tracking-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:row;align-items:stretch;gap:14px;position:relative;isolation:isolate}
.tracking-topic-view > .tracking-cards .tracking-card{position:relative;inset:auto;transform:none;min-width:0;box-sizing:border-box;overflow:hidden}
.tracking-topic-view > .tracking-cards .tracking-card strong{font-size:clamp(25px,2.55vw,34px);line-height:1.02;overflow-wrap:anywhere}
.tracking-topic-view > .tracking-cards .tracking-card span,.tracking-topic-view > .tracking-cards .tracking-card small{overflow-wrap:anywhere}
@media(max-width:1180px){.tracking-topic-view > .tracking-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
.risk-gauge{height:112px;max-width:390px;display:flex;align-items:flex-end;justify-content:center;margin:8px auto 12px;border-radius:210px 210px 0 0;background:conic-gradient(from 270deg at 50% 100%,#ffd000 0deg 78deg,#ff7115 78deg 142deg,#ea2e32 142deg 180deg,transparent 180deg 360deg);overflow:hidden;clip-path:none}
.risk-gauge b{margin:0 0 15px;font-size:32px;line-height:1;color:#6f3308;text-shadow:0 1px rgba(255,255,255,.35)}

/* Riesgo y vulnerabilidad siguen el lenguaje de Power BI: distribución
   completa en dona, con la categoría predominante al centro. */
.risk-donut{display:grid;justify-items:center;gap:5px;margin:17px auto 0;text-align:center}.risk-donut-chart{position:relative;display:grid;place-items:center;width:146px;aspect-ratio:1;border-radius:50%;box-shadow:0 8px 18px rgba(33,43,57,.11)}.risk-donut-chart::after{content:"";position:absolute;width:58%;aspect-ratio:1;border-radius:50%;background:#fff}.risk-donut-chart span{position:relative;z-index:1;display:grid;gap:2px;color:#183a47}.risk-donut-chart b{font-size:24px;line-height:1}.risk-donut-chart small{max-width:70px;font-size:10px;line-height:1.1;font-weight:800}.risk-donut>p{margin:0;color:#59707a;font-size:11px;font-weight:700}.risk-donut>span{padding:22px 0;color:#6c7c82;font-size:12px}

/* Alertas: los indicadores laterales requieren una base mínima legible. */
.tracking-split > div > .visual-panel .tracking-cards{width:100%;grid-template-columns:repeat(2,minmax(145px,1fr));gap:12px}
.tracking-split > div > .visual-panel .tracking-card{min-width:0;min-height:126px;padding:15px}
.tracking-split > div > .visual-panel .tracking-card strong{font-size:28px;line-height:1.05}
.tracking-split > div > .visual-panel .tracking-card span,.tracking-split > div > .visual-panel .tracking-card small{font-size:11px;overflow-wrap:anywhere}
.tracking-split .risk-gauge{position:relative;isolation:isolate}
.tracking-split .risk-gauge b{position:relative;z-index:1;display:grid;place-items:center;min-width:76px;min-height:47px;margin:0 0 12px;padding:0 10px;border-radius:999px;background:rgba(255,255,255,.93);box-shadow:0 4px 14px rgba(79,45,13,.15)}
@media(max-width:760px){.tracking-split > div > .visual-panel .tracking-cards{grid-template-columns:1fr}}

/* El mapa es un elemento de lectura principal: ocupa todo el panel y destaca
   la ciudad seleccionada sin esconder el contexto nacional. */
.city-map-placeholder.mini-risk-map{min-height:390px}
.mini-risk-map svg{height:390px}
.precipitation-capital.is-selected{fill:#e56520;stroke:#fff;stroke-width:2.5;filter:drop-shadow(0 2px 4px rgba(91,40,12,.35))}
.map-city-label{fill:#173eaa;font-size:12px;font-weight:800;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}
@media(max-width:760px){.city-map-placeholder.mini-risk-map,.mini-risk-map svg{min-height:300px;height:300px}}

/* Histórico de incendios: el dato y su barra deben leerse como una misma unidad. */
.fire-history-panel .columns-bars{height:260px;align-items:end;padding:28px 22px 10px;gap:14px}
.fire-history-panel .columns-bars div{min-height:210px;grid-template-rows:1fr auto;align-items:end}
.fire-history-panel .columns-bars i{min-height:12px;background:linear-gradient(180deg,#ec4a3f,#d77928);box-shadow:0 -5px 13px rgba(195,67,29,.2)}
.fire-history-panel .columns-bars span{padding-top:8px;color:#233c44;font-variant-numeric:tabular-nums;white-space:nowrap}
.fire-control{grid-template-columns:repeat(3,minmax(0,1fr))}.columns-bars div.is-selected i{filter:brightness(.8);outline:3px solid rgba(195,105,20,.18);outline-offset:3px}.columns-bars div.is-selected span{color:#9a4d16}
@media(max-width:600px){.fire-control{grid-template-columns:1fr}}

/* En paneles estrechos no forzar tarjetas de 145px: la cifra y su etiqueta
   deben conservarse completas en lugar de quedar recortadas. */
.tracking-split>div{min-width:0}
.tracking-split>div>.visual-panel .tracking-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.tracking-split>div>.visual-panel .tracking-card{overflow:hidden}
.tracking-split>div>.visual-panel .tracking-card strong{overflow-wrap:anywhere}
.city-map-placeholder{overflow:hidden}
.city-map-placeholder svg{display:block;width:100%;height:100%}

/* Alertas hídricas: cuatro indicadores pequeños, independientes del grid
   general. Así nunca se recortan al coexistir con la lectura de riesgo. */
.hydro-layout{grid-template-columns:minmax(350px,.82fr) minmax(0,1.18fr)}
.hydro-kpis>.tracking-cards{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
.hydro-kpis .tracking-card{min-width:0!important;min-height:146px!important;padding:17px!important;overflow:visible!important}
.hydro-kpis .tracking-card strong{font-size:clamp(28px,2.45vw,38px)!important;line-height:1.02!important;white-space:normal!important}
.hydro-kpis .tracking-card span,.hydro-kpis .tracking-card small{line-height:1.25!important;overflow-wrap:anywhere!important}
.hydro-layout .risk-gauge{max-width:none;height:132px}
.hydro-layout .risk-gauge b{font-variant-numeric:tabular-nums}
@media(max-width:980px){.hydro-layout{grid-template-columns:1fr}.hydro-kpis>.tracking-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:520px){.hydro-kpis>.tracking-cards{grid-template-columns:1fr!important}}

/* Los controles de filtro (Ciudad/Embalse + Periodo/Fecha de corte) compartían
   dos columnas dentro de un panel de 330px, dejando cada selector con ~150px:
   insuficiente para mostrar una fecha completa, que quedaba cortada ("22 de ag...").
   Se apilan en una sola columna para que cada selector use el ancho completo. */
.tracking-control{grid-template-columns:1fr!important}
.tracking-control select,.tracking-control input{width:100%!important;overflow:visible!important;text-overflow:clip!important}
