:root{color-scheme:dark}
body{font-family:Inter,system-ui,sans-serif;background:
 radial-gradient(1100px 550px at 85% -10%,rgba(79,70,229,.28),transparent),
 radial-gradient(900px 500px at -5% 8%,rgba(245,158,11,.10),transparent),#020617}
.card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);border-radius:1rem;padding:1rem;backdrop-filter:blur(8px)}
.glass{background:rgba(2,6,23,.85);border-bottom:1px solid rgba(255,255,255,.08);backdrop-filter:blur(14px)}
.btn{display:inline-flex;align-items:center;gap:.45rem;border-radius:.75rem;padding:.55rem .95rem;font-size:.875rem;font-weight:600;transition:.15s;border:1px solid transparent;cursor:pointer}
.btn svg{width:16px;height:16px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-amber{background:linear-gradient(135deg,#f59e0b,#f97316);color:#1c1917}.btn-amber:hover{filter:brightness(1.1)}
.btn-ghost{border-color:rgba(255,255,255,.16);color:#e2e8f0;background:rgba(255,255,255,.03)}.btn-ghost:hover{background:rgba(255,255,255,.09)}
.btn-red{background:rgba(225,29,72,.18);color:#fda4af;border-color:rgba(225,29,72,.4)}
.chip{display:inline-flex;align-items:center;gap:.3rem;font-size:11px;padding:.15rem .55rem;border-radius:999px;background:rgba(99,102,241,.18);border:1px solid rgba(99,102,241,.35);color:#c7d2fe}
.chip-amber{display:inline-flex;font-size:11px;padding:.15rem .55rem;border-radius:999px;background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.4);color:#fcd34d}
.chip.ok{background:rgba(16,185,129,.15);border-color:rgba(16,185,129,.4);color:#6ee7b7}
.chip.bad{background:rgba(225,29,72,.15);border-color:rgba(225,29,72,.4);color:#fda4af}
.chip.am{background:rgba(245,158,11,.15);border-color:rgba(245,158,11,.4);color:#fcd34d}
.inp{background:rgba(2,6,23,.6);border:1px solid rgba(255,255,255,.14);border-radius:.7rem;padding:.55rem .75rem;width:100%;font-size:.9rem;color:#e2e8f0}
.inp:focus{outline:2px solid rgba(245,158,11,.45);outline-offset:0}
.lbl{font-size:10px;color:#94a3b8;display:block;margin-bottom:4px;text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.ico{width:44px;height:44px;border-radius:.8rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(99,102,241,.28),rgba(245,158,11,.18));border:1px solid rgba(255,255,255,.12);color:#fbbf24;flex:none}
.ico svg{width:22px;height:22px}
.navlink{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .8rem;border-radius:.7rem;font-size:.95rem;font-weight:500;color:#f1f5f9;white-space:nowrap}
.navlink svg{width:18px;height:18px}.navlink:hover{color:#ffffff;background:rgba(255,255,255,.08)}
.navlink.on{color:#fcd34d;background:rgba(245,158,11,.16);font-weight:700}
.banner{display:block}.banner-fallback{display:flex;align-items:center;gap:.6rem;justify-content:center;height:72px;border-radius:.9rem;border:1px dashed rgba(255,255,255,.22);background:linear-gradient(135deg,rgba(30,41,59,.95),rgba(51,65,85,.6));font-weight:700;color:#e2e8f0}
.banner-fallback svg{width:22px;height:22px;color:#fbbf24}
h2.sec{font-size:1.35rem;font-weight:800;display:flex;align-items:center;gap:.6rem;margin:2rem 0 1rem}
h2.sec svg{width:22px;height:22px;color:#fbbf24}
.bar{background:linear-gradient(180deg,#a5b4fc,#4f46e5);border-radius:4px 4px 0 0;width:100%;min-height:2px}
.leaflet-container{background:#0f172a;border-radius:1rem}
.leaflet-popup-content-wrapper{background:#1e293b;color:#e2e8f0;border-radius:.8rem}
.leaflet-popup-tip{background:#1e293b}
#qrbox img{image-rendering:pixelated}
.sel{background:rgba(2,6,23,.6);border:1px solid rgba(255,255,255,.14);border-radius:.7rem;padding:.5rem;color:#e2e8f0;font-size:.85rem}
@media print{body{background:#fff;color:#000}#topbar,#foot,#modal,#toasts,.no-print{display:none!important}.card{border-color:#ddd;background:#fff;color:#000}h2.sec{color:#000}}

/* --- Portada (hero) --- */
.hero{position:relative;overflow:hidden}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%}
.hero-ov{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(30,27,75,.78),rgba(2,6,23,.72) 55%,#020617)}

/* --- Banners de patrocinio --- */
.patro-banner{position:relative;height:88px;background:#fff;border-radius:.9rem;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(255,255,255,.15)}
.patro-banner img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;padding:8px}
.patro-banner.sin-img{background:linear-gradient(135deg,#f8fafc,#e2e8f0)}
.patro-banner.sin-img .patro-txt{display:flex}
.patro-txt{display:none;align-items:center;gap:.55rem;font-weight:700;color:#1e293b;font-size:.95rem}
.patro-txt svg{width:20px;height:20px;color:#b45309}
.patro-cap{display:block;text-align:center;font-size:10px;color:#94a3b8;margin-top:5px}