:root{--fondo:#f4f6f8;--tarjeta:#fff;--linea:#d9dee3;--texto:#1d2733;--suave:#5b6773;--ok:#1a7f4b;--aviso:#b36b00;--crit:#c0262d;--info:#1f5fae}
@media(prefers-color-scheme:dark){:root{--fondo:#12171c;--tarjeta:#1b222a;--linea:#2c3640;--texto:#e6ebf0;--suave:#9aa7b4;--ok:#4cc38a;--aviso:#e0a53a;--crit:#ff6b70;--info:#6fa8ff}}
*{box-sizing:border-box}body{margin:0;background:var(--fondo);color:var(--texto);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--tarjeta);border-bottom:1px solid var(--linea)}h1{margin:0;font-size:18px}main{padding:16px;max-width:1100px;margin:0 auto}
.tarjeta{background:var(--tarjeta);border:1px solid var(--linea);border-radius:10px;padding:14px;margin-bottom:14px}.rejilla{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.suave{color:var(--suave);font-size:13px}.num{font-size:22px;font-weight:700}.barra{height:8px;background:var(--linea);border-radius:6px;overflow:hidden;margin-top:6px}.barra>i{display:block;height:100%;background:var(--ok)}
.barra.aviso>i{background:var(--aviso)}.barra.crit>i{background:var(--crit)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--linea);vertical-align:top}th{font-size:12px;color:var(--suave);text-transform:uppercase}
.etq{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:600;border:1px solid currentColor}.arriba{color:var(--ok)}.caida{color:var(--crit)}.detenida{color:var(--suave)}
.alerta{padding:8px 10px;border-left:4px solid var(--info);margin:6px 0;background:var(--fondo);border-radius:4px}.alerta.critica{border-color:var(--crit)}.alerta.aviso{border-color:var(--aviso)}
input,button{font:inherit;padding:9px 12px;border-radius:8px;border:1px solid var(--linea);background:var(--tarjeta);color:var(--texto)}button{cursor:pointer;background:var(--info);color:#fff;border-color:var(--info)}.centro{max-width:360px;margin:12vh auto;padding:0 16px}.error{color:var(--crit);margin-top:8px}.tabla{overflow-x:auto}