@font-face{font-family:"Archivo";font-style:normal;font-weight:500 800;font-display:swap;src:url("fonts/archivo-latin.woff2") format("woff2")}
:root{
  --activo:#ff3b1f;--en_control:#ff9d00;--controlado:#f5d000;--extinguido:#2fbf5b;--sin_dato:#9aa3ad;--inferido:#b77cff;
  --bg:#0b1524;--ink:#14181f;--mut:#5b6472;--card:#ffffff;--line:#e5e7eb;--soft:#f3f5f8;--warm:#fff4ef;
  --ok:#2fbf5b;--warn:#ffb020;--bad:#ff4d4f;--blue:#0b62c4;
  --display:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);font:16px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);-webkit-tap-highlight-color:transparent}
a{color:var(--blue)}
button{font:inherit;cursor:pointer}
h1,h2,h3{font-family:var(--display);letter-spacing:-.01em}
#scene{position:fixed;inset:0;touch-action:none;background:radial-gradient(ellipse at 50% 40%,#15253c,#08111d)}
#scene canvas{display:block}

/* cargador */
#loader{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--bg);color:#c9d3e0;font-size:14px;transition:opacity .35s}
#loader.off{opacity:0;pointer-events:none}
#loader .bar{width:160px;height:4px;border-radius:2px;background:#1e2d44;overflow:hidden}
#loader .bar i{display:block;width:40%;height:100%;background:linear-gradient(90deg,#ff6a00,#ffc53d);animation:slide 1.1s infinite ease-in-out}
@keyframes slide{0%{transform:translateX(-100%)}100%{transform:translateX(260%)}}

/* etiquetas de región (CSS2D) */
.reg-label{font-family:var(--display);font-size:12px;font-weight:700;color:#dfe7f1;text-shadow:0 0 3px #000,0 0 4px #000,0 1px 2px #000;letter-spacing:.04em;pointer-events:none;white-space:nowrap;text-transform:uppercase;opacity:.85}
.reg-label.hot{color:#ffb199}
.sea-label{font-size:13px;font-style:italic;color:#9fb7d3;letter-spacing:.2em;pointer-events:none;white-space:nowrap}

/* cabecera */
#top{position:fixed;top:0;left:0;right:0;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:linear-gradient(#0b1524f5,#0b1524b8 70%,#0b152400);color:#fff;pointer-events:none;z-index:5}
.brand-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px;pointer-events:auto}
.live{display:inline-flex;align-items:center;gap:6px;font-family:var(--display);font-weight:800;font-size:12px;letter-spacing:.12em;color:#fff;background:#e11d48;border-radius:999px;padding:4px 10px 4px 8px}
.live i{width:8px;height:8px;border-radius:50%;background:#fff;animation:pulse 1.6s infinite}
.live.off{background:#5b6472}.live.off i{animation:none;opacity:.6}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
.status-pill{display:inline-flex;align-items:center;gap:7px;border:0;border-radius:999px;padding:5px 12px 5px 9px;font-size:12.5px;font-weight:600;color:#e4ebf5;background:#ffffff1a;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.status-pill:hover{background:#ffffff2a}
.status-pill i{width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px currentColor;color:var(--ok)}
.status-pill.warn i{background:var(--warn);color:var(--warn)}.status-pill.bad i{background:var(--bad);color:var(--bad)}
#headline{font-size:26px;font-weight:800;line-height:1.12;max-width:780px;margin:0}
#headline b{color:#ffb199}
#subline{font-size:15px;color:#d6dde8;margin-top:5px;max-width:760px}
#top a{pointer-events:auto;color:#9cd0ff}

#hint{pointer-events:auto;display:inline-flex;margin-top:8px;background:#fff;color:var(--ink);border-radius:999px;padding:6px 6px 6px 14px;gap:8px;align-items:center;box-shadow:0 4px 18px #0006;font-size:14px;max-width:100%}
#hint[hidden]{display:none}
#hint button{border:0;background:#eef1f5;border-radius:50%;width:32px;height:32px;flex:none}

#stale{position:fixed;z-index:6;left:16px;top:calc(50% - 20px);background:#ffb020;color:#2b1a00;font-weight:700;font-size:14px;border-radius:14px;padding:10px 14px;box-shadow:0 6px 24px #0007;max-width:420px}
#stale[hidden]{display:none}

#tools{position:fixed;z-index:5;display:flex;gap:8px;flex-wrap:wrap}
.pick{display:flex;align-items:center;gap:6px;background:#fff;border-radius:14px;padding:4px 6px 4px 12px;box-shadow:0 3px 12px #0005;font-weight:700;font-size:15px}
.pick select{font:inherit;font-weight:600;border:1px solid var(--line);border-radius:10px;padding:8px 6px;min-height:44px;background:#f7f8fa;max-width:170px}
#reset,#share{background:#fff;border:0;border-radius:14px;padding:0 14px;min-height:52px;font-weight:700;box-shadow:0 3px 12px #0005}
#share{background:#0b1524;color:#fff;border:1px solid #ffffff2a}

#legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px;font-size:14px;font-weight:600;color:#fff;max-width:760px}
#legend span{white-space:nowrap}
.lg{display:inline-block;width:14px;height:14px;border-radius:50%;margin-right:8px;vertical-align:-2px;box-shadow:0 0 0 2px #fff,0 0 6px currentColor}
.lg.activo{background:var(--activo);color:var(--activo)}.lg.en_control{background:var(--en_control);color:var(--en_control)}
.lg.controlado{background:var(--controlado);color:var(--controlado)}.lg.extinguido{background:var(--extinguido);color:transparent}
.lg.inferido{background:transparent;border:2px dashed var(--inferido);box-shadow:none}
.lg-small{font-weight:500!important;color:#cdb8ff}

/* panel */
#panel{position:fixed;z-index:5;background:var(--card);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 6px 30px #0007}
#panel h2{font-size:19px;margin:4px 0 8px}
#grab{display:none}
.tabs{display:flex;gap:4px;background:var(--soft);border-radius:12px;padding:4px;margin:0 0 10px;position:sticky;top:0;z-index:2}
.tabs [role=tab]{flex:1;border:0;background:none;border-radius:9px;padding:9px 8px;font-weight:700;font-size:14.5px;color:var(--mut);display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px}
.tabs [role=tab][aria-selected=true]{background:#fff;color:var(--ink);box-shadow:0 1px 4px #0002}
.badge{display:inline-block;min-width:20px;height:20px;line-height:20px;padding:0 6px;border-radius:999px;background:#e11d48;color:#fff;font-size:12px;font-weight:800;text-align:center}
.badge[hidden]{display:none}
#list{list-style:none;margin:0;padding:0}
#list li{display:flex;gap:10px;align-items:flex-start;padding:10px 6px;border-bottom:1px solid var(--line);cursor:pointer;min-height:56px;border-radius:10px}
#list li:hover,#list li:focus{background:var(--warm);outline:none}
#list .dot{flex:none;width:18px;height:18px;border-radius:50%;margin-top:3px;box-shadow:0 0 0 3px #fff,0 0 8px currentColor}
#list .n{font-weight:700;font-size:16px}
#list .s{font-size:14px;color:var(--mut)}
#list .rank{flex:none;font-family:var(--display);font-weight:800;color:#c2c7cf;width:18px;text-align:right;margin-top:1px}
.more{margin:8px 0}.link{background:none;border:0;color:var(--blue);font-weight:700;padding:8px 0;text-decoration:underline}
.phones{background:var(--warm);border-radius:12px;padding:10px 12px;font-size:15px;margin:10px 0}
.tel{display:inline-block;margin:6px 8px 0 0;background:#d72d14;color:#fff;text-decoration:none;font-weight:800;border-radius:12px;padding:10px 14px;min-height:44px}
.tel.alt{background:var(--blue)}
details#tech{margin:10px 0;border:1px solid var(--line);border-radius:12px;padding:6px 12px}
details#tech summary{font-weight:700;font-size:14px;color:var(--mut);padding:8px 0;cursor:pointer;min-height:40px}
.tech-body{font-size:13.5px;color:#333}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg label{border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-height:40px;display:flex;gap:4px;align-items:center}
.disclaimer{font-size:12.5px;color:var(--mut)}

/* feed de novedades */
.feed-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
#feed-upd{font-size:12.5px;color:var(--mut)}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 8px}
.chips button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;color:var(--mut);min-height:34px}
.chips button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
#feed{list-style:none;margin:0;padding:0}
#feed li{display:flex;gap:10px;padding:10px 6px;border-bottom:1px solid var(--line);border-radius:10px;position:relative}
#feed li.go{cursor:pointer}#feed li.go:hover,#feed li.go:focus{background:var(--warm);outline:none}
#feed li.fresh{background:#fffaf0}
#feed li.fresh::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:2px;background:#e11d48}
#feed .ic{flex:none;width:34px;height:34px;border-radius:10px;background:var(--soft);display:flex;align-items:center;justify-content:center;font-size:18px}
#feed li.alto .ic{background:#ffe3dc}#feed li.bajo .ic{background:#eef4ea}
#feed .t{font-size:15px;line-height:1.3}
#feed .t a{color:inherit;text-decoration:none}#feed .t a:hover{text-decoration:underline}
#feed .m{font-size:12.5px;color:var(--mut);margin-top:3px}
#feed .m b{font-weight:600;color:#3b4350}
#feed .empty{color:var(--mut);padding:14px 6px}

/* tarjeta */
#card-wrap{position:fixed;inset:0;z-index:20;background:#0008;display:flex;align-items:center;justify-content:center;padding:16px}
#card-wrap[hidden]{display:none}
#card{position:relative;background:#fff;border-radius:20px;max-width:440px;width:100%;max-height:88vh;overflow-y:auto;padding:20px 20px 16px;box-shadow:0 10px 40px #000a}
#card-x{position:absolute;top:10px;right:10px;border:0;background:#eef1f5;border-radius:50%;width:44px;height:44px;font-size:18px}
#card h3{margin:0 50px 2px 0;font-size:22px;line-height:1.2}
#card .where{color:var(--mut);font-size:15px;margin-bottom:12px}
.status{display:flex;gap:10px;align-items:center;border-radius:14px;padding:10px 12px;margin:8px 0;font-weight:800;font-size:18px}
.status small{display:block;font-weight:500;font-size:14px;color:#333}
.status i{flex:none;width:22px;height:22px;border-radius:50%;box-shadow:0 0 0 3px #fff,0 0 10px currentColor}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.fact{background:var(--soft);border-radius:12px;padding:8px 10px}
.fact .k{font-size:12.5px;color:var(--mut)}.fact .v{font-weight:700;font-size:15.5px}
.fact.wide{grid-column:1/-1}
.nodata{color:#8a929e;font-weight:600}
.sat-note{font-size:14px;background:#fff7e6;border-radius:12px;padding:8px 10px;margin:8px 0}
.todo{background:var(--warm);border-radius:12px;padding:10px 12px;margin:10px 0;font-size:15px}
.todo b{display:block;margin-bottom:2px}
.news{list-style:none;padding:0;margin:6px 0}
.news li{padding:8px 0;border-top:1px solid var(--line);font-size:15px}
.news .m{font-size:13px;color:var(--mut)}
.techinfo{font-size:13px;color:#444;background:var(--soft);border-radius:12px;padding:8px 10px;margin-top:8px;word-break:break-word}
.techinfo ul{padding-left:18px;margin:4px 0}
.card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.card-actions button,.card-actions a{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 12px;font-size:14px;font-weight:600;color:var(--ink);text-decoration:none;min-height:40px;display:inline-flex;align-items:center}

/* tarjeta de estado del monitoreo */
.src{list-style:none;margin:6px 0;padding:0}
.src li{display:flex;gap:8px;align-items:flex-start;padding:7px 0;border-top:1px solid var(--line);font-size:14px}
.src .d{color:var(--mut);font-size:12.5px}
.src .s{flex:none;width:20px;text-align:center}
.spark{margin:10px 0 4px}
.spark .k{display:flex;justify-content:space-between;font-size:12.5px;color:var(--mut)}
.spark .k b{color:var(--ink);font-size:14px}
.spark canvas{width:100%;height:56px;display:block;border-radius:8px;background:var(--soft)}
.runs{display:flex;gap:2px;flex-wrap:wrap;margin:6px 0}
.runs i{width:10px;height:14px;border-radius:2px;background:var(--ok)}.runs i.f{background:var(--bad)}

#nogl{position:fixed;z-index:3;left:16px;right:16px;top:150px;background:#fff;border-radius:16px;padding:14px 16px}
#nogl[hidden]{display:none}
#tip{position:fixed;z-index:6;pointer-events:none;background:#111c;color:#fff;font-size:13px;padding:4px 8px;border-radius:8px;transform:translate(-50%,-140%);white-space:nowrap}
#toast{position:fixed;z-index:25;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%);background:#14181f;color:#fff;font-weight:700;font-size:14px;border-radius:999px;padding:12px 18px;box-shadow:0 8px 30px #0008;cursor:pointer;max-width:92vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#toast[hidden]{display:none}

/* escritorio */
@media (min-width:821px){
  #panel{top:16px;right:16px;bottom:16px;width:390px;border-radius:20px;padding:12px 18px 16px}
  #top{right:420px}
  #tools{left:16px;bottom:16px}
  #stale{left:16px;bottom:84px;top:auto}
}
/* móvil */
@media (max-width:820px){
  #panel{left:0;right:0;bottom:0;height:34vh;border-radius:20px 20px 0 0;padding:4px 14px calc(14px + env(safe-area-inset-bottom));transition:height .25s}
  #panel.open{height:82vh}
  #grab{display:block;width:100%;border:0;background:none;padding:8px 0 4px;min-height:28px}
  #grab span{display:block;margin:auto;width:48px;height:5px;border-radius:3px;background:#cdd2d9}
  .tabs{top:-4px}
  #tools{left:10px;right:10px;bottom:calc(34vh + 8px);justify-content:space-between;flex-wrap:nowrap}
  .pick{font-size:14px;padding-left:10px}
  .pick select{max-width:140px}
  #reset,#share{min-height:52px;padding:0 12px}
  #reset span,#share span{display:none}
  #top{padding-left:12px;padding-right:12px}
  #headline{font-size:21px}#subline{font-size:13.5px}
  #subline .xtra{display:none}
  .status-pill{font-size:12px;padding:4px 10px 4px 8px}
  #legend{font-size:13px;gap:2px 10px;margin-top:6px}
  .lg{width:12px;height:12px;margin-right:5px}
  #hint{font-size:13px}
  .reg-label{font-size:10.5px}
  .pick{flex:1;min-width:0}.pick span{white-space:nowrap}.pick select{flex:1;max-width:none;min-width:0}
  #stale{left:10px;right:10px;top:auto;bottom:calc(34vh + 70px);max-width:none;font-size:13px}
  #card-wrap{align-items:flex-end;padding:0}
  #card{border-radius:20px 20px 0 0;max-height:86vh;padding-bottom:calc(16px + env(safe-area-inset-bottom))}
}

/* fuentes oficiales, SERFOR y clima */
.links{list-style:none;margin:0;padding:0}
.links li{padding:9px 4px;border-bottom:1px solid var(--line)}
.links a{font-weight:700;text-decoration:none}.links a:hover{text-decoration:underline}
.links .d,.src .d{font-size:13px;color:var(--mut);margin-top:2px}
.feed-mini{list-style:none;margin:0;padding:0}
.feed-mini li{padding:8px 4px;border-bottom:1px solid var(--line);font-size:14.5px}
.feed-mini a{color:inherit}.feed-mini .m,.m{font-size:12.5px;color:var(--mut)}
.serfor{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:10px 0;font-size:14px}
.serfor-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px}
.serfor-h a{font-size:13px;font-weight:600}
.pill{display:inline-block;border-radius:999px;padding:3px 10px;font-weight:800;font-size:13px}
.serfor-b{color:#333;line-height:1.45}
.serfor-d{margin-top:6px;background:#fff7e6;border-radius:8px;padding:6px 8px;font-size:13px}
.clima{background:#eef5ff;border-radius:12px;padding:9px 12px;margin:10px 0;font-size:14px}
.clima-g{display:grid;grid-template-columns:1fr 1fr;gap:3px 10px;margin-top:4px}
.clima-w{margin-top:6px;font-weight:700;color:#8a3b00;font-size:13.5px}
#list li.reg-sum{background:var(--soft);border-bottom:0;margin-bottom:6px}
#list li.reg-sum .s{line-height:1.5}

.clima-g span:nth-child(3){grid-column:1/-1}
@media (max-width:820px){
  .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-left:-2px;padding:0 2px 2px}
  .chips::-webkit-scrollbar{display:none}
  .chips button{flex:none;padding:6px 11px}
}
