/* 8.0.0 (HR 8.1) — Mapas: estático propio + mapa real al pulsar */
.geo-map{display:grid;gap:1rem;margin:1rem 0}
.geo-map:not(.is-single){grid-template-columns:minmax(0,1fr) 300px;align-items:start}
.geo-stage{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--line,#dbe5e8);background:#cfe8ef;min-height:220px}
.geo-static{display:block;width:100%;height:100%}
.geo-sea{fill:#cfe8ef}
.geo-land{fill:#f3eee2}
.geo-coast{fill:none;stroke:#9cc9d3;stroke-width:3;stroke-linejoin:round}
.geo-dot{fill:#fff;stroke:#0f766e;stroke-width:3}
.geo-dot.has{fill:#0f766e;stroke:#fff}
.geo-num{fill:#fff;font:700 13px system-ui,sans-serif;text-anchor:middle}
.geo-lbl{fill:#123b48;font:700 15px system-ui,sans-serif;paint-order:stroke;stroke:#f3eee2;stroke-width:4px}
a.geo-pt:hover .geo-dot,a.geo-pt:focus .geo-dot{fill:#0b5c56}
a.geo-pt:focus{outline:none}a.geo-pt:focus .geo-lbl{text-decoration:underline}
.geo-open{position:absolute;right:1rem;bottom:1rem;z-index:2;box-shadow:0 4px 14px #0b263333}
.geo-open[hidden]{display:none}
.geo-live{position:absolute;inset:0;z-index:3;background:#e8efec}
.geo-map.is-live .geo-stage{min-height:380px}
.geo-live[hidden]{display:none}
.geo-live iframe{width:100%;height:100%;border:0;display:block}
.geo-map.is-loading .geo-open{opacity:.8}
.geo-list{display:grid;gap:.5rem;align-content:start}
.geo-list-item{display:grid;grid-template-columns:1fr auto;gap:.1rem .6rem;padding:.6rem .8rem;border:1px solid var(--line,#dbe5e8);border-radius:12px;background:#fff;text-decoration:none;color:var(--ink,#123b48)}
.geo-list-item b{color:var(--teal,#0f766e);font-size:.82rem;white-space:nowrap}
.geo-list-item small{grid-column:1/-1;opacity:.72;font-size:.78rem}
.geo-list-item:hover,.geo-list-item:focus{border-color:var(--teal,#0f766e)}
.geo-route{display:grid;gap:.4rem;padding:1rem 1.2rem;border:1px solid var(--line,#dbe5e8);border-radius:16px;background:#fff}
.geo-route>span{opacity:.8}
.geo-route-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.geo-route-out:empty{display:none}
.geo-route-out ul,.geo-info ul{margin:.3rem 0;padding-left:1.1rem}
.geo-info{min-width:170px;line-height:1.45}.geo-info a{color:#147d75;font-weight:800}
.geo-counts{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin:.8rem 0 0}
.geo-counts a,.geo-counts span{display:inline-flex;gap:.35rem;align-items:center;padding:.35rem .8rem;border-radius:999px;background:#fff;border:1px solid var(--line,#dbe5e8);text-decoration:none;color:var(--ink,#123b48);font-weight:700;font-size:.9rem}
.geo-counts b{color:var(--teal,#0f766e)}
.geo-where{margin:2rem 0}
.geo-where h2{margin-bottom:.6rem}
@media (max-width:900px){.geo-map:not(.is-single){grid-template-columns:1fr}.geo-list{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}
@media (max-width:560px){.geo-stage{min-height:0;aspect-ratio:auto!important;overflow:visible;border:0;background:none;border-radius:0}.geo-static{border-radius:14px;border:1px solid var(--line,#dbe5e8);height:auto}.geo-open{position:static;display:block;width:100%;margin-top:.6rem;box-shadow:none}.geo-map.is-live .geo-stage{min-height:340px}.geo-map.is-live .geo-live{border-radius:14px;overflow:hidden}.geo-list{grid-template-columns:1fr}}
/* Panel */
.geo-admin{border:1px solid var(--line,#dbe5e8);border-radius:14px;padding:.8rem 1rem;margin:.6rem 0;display:grid;gap:.5rem}
.geo-admin legend{font-weight:800;padding:0 .3rem}
.geo-admin-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.geo-admin-map{height:320px;border-radius:12px;overflow:hidden;border:1px solid var(--line,#dbe5e8)}
.geo-admin-map[hidden]{display:none}
.geo-err{color:#b42318}
.geo-ok{color:#146c2e;font-weight:700}.geo-missing{color:#9a5b00;font-weight:700}
.geo-bulk{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.m800-steps{display:grid;gap:.5rem;padding-left:1.2rem}.m800-steps code{background:#f2f4f7;border-radius:6px;padding:.05rem .4rem}.geo-ok-msg{color:#146c2e;font-weight:700}

/* V24.8.24: tarjetas sin mapa y sin separación superior innecesaria. */
.f24-map-side .geo-route{margin:0}
.f24-map-side .geo-route-actions{margin-top:.25rem}
.geo-route-list{display:grid;gap:.75rem}
.geo-where .geo-route{max-width:100%}
