
/* ================= Laboratorio ampliado: avisos, calculadoras nuevas y monitoreo ================= */
:root{--warn:#B3261E;--warn-bg:rgba(217,48,37,.08)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--warn:#FF8A80;--warn-bg:rgba(255,138,128,.12)}}
:root[data-theme="dark"]{--warn:#FF8A80;--warn-bg:rgba(255,138,128,.12)}
/* Aviso principal (sobre fondo azul del laboratorio) */
.warn{display:flex;gap:14px;align-items:flex-start;max-width:920px;margin:0 auto 28px;padding:16px 20px;border-radius:20px;border:1px solid #FF8A80;border-left:6px solid #FF5A4D;background:rgba(229,72,61,.18);color:#fff;font-size:.98rem;line-height:1.5;text-align:left}
.warn svg{flex:none;width:28px;height:28px;color:#FF8A80;margin-top:2px}
.warn p{margin:0;color:#fff}
.warn b{color:#FFC1BA}
/* Aviso corto en cada calculadora */
.warn-s{display:block;margin:0;padding:10px 14px;border-radius:12px;border-left:4px solid var(--warn);background:var(--warn-bg);color:var(--fg);font-size:.88rem;line-height:1.4}
.warn-s b{color:var(--warn)}
.side .warn-s{color:#fff;background:rgba(229,72,61,.16);border-left-color:#FF8A80}
.side .warn-s b{color:#FFC1BA}
html.a-contrast .warn,html.a-contrast .warn-s{background:#000;border-color:#fff;color:#fff}
html.a-contrast .warn b,html.a-contrast .warn-s b,html.a-contrast .warn svg{color:#fff}
/* Calculadoras: 6 en cuadrícula */
.calcs{align-items:stretch}
.calc .gauge u{background:var(--fg)}
/* Monitoreo */
.stage.mon{display:grid;gap:14px;align-content:start;padding:20px;background:rgba(255,255,255,.05)}
.mon-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:#C9D4EC;font-size:.88rem}
.mon-top b{color:#fff;font-size:1rem}
.mon-top .dot{width:10px;height:10px;border-radius:50%;background:#2FA36B;box-shadow:0 0 0 0 rgba(47,163,107,.6);animation:monPulse 2s infinite}
@keyframes monPulse{70%{box-shadow:0 0 0 10px rgba(47,163,107,0)}100%{box-shadow:0 0 0 0 rgba(47,163,107,0)}}
.mon-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.mon-kpis div{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:14px 16px}
.mon-kpis b{display:block;font:700 1.9rem var(--f-display);letter-spacing:-.03em;color:#fff;font-variant-numeric:tabular-nums}
.mon-kpis b.bad{color:#FF8A80}
.mon-kpis span{font-size:.8rem;color:#C9D4EC}
#mChart{width:100%;height:auto;background:rgba(255,255,255,.04);border-radius:18px;border:1px solid rgba(255,255,255,.1)}
#mChart .mg{stroke:rgba(255,255,255,.3);stroke-width:1}
#mChart .mc{stroke:#FF8A80;stroke-width:1.5;stroke-dasharray:6 5}
#mChart .ml{fill:none;stroke:#7FB0FF;stroke-width:2.6;stroke-linejoin:round;stroke-linecap:round}
#mChart .ml.over{stroke:#FF8A80}
#mChart .mt{fill:#C9D4EC;font:500 11px var(--f-body)}
.mon-tb table{width:100%;border-collapse:collapse;font-size:.88rem;margin-top:8px;color:#fff}
.mon-tb th{text-align:left;font-weight:500;color:#C9D4EC;padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.18)}
.mon-tb td{padding:9px 8px;border-bottom:1px solid rgba(255,255,255,.1)}
.st{font-style:normal;font-weight:600;font-size:.78rem;padding:3px 10px;border-radius:99px;white-space:nowrap}
.st.ok{background:rgba(47,163,107,.25);color:#7EE2B0}.st.pr{background:rgba(127,176,255,.22);color:#B5D2FF}.st.bad{background:rgba(255,138,128,.22);color:#FFB4AB}
.alarms{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.alarms li{padding:10px 14px;border-radius:12px;font-size:.92rem;line-height:1.35}
.alarms li.a{background:rgba(255,138,128,.18);border-left:4px solid #FF8A80;color:#fff}
.alarms li.k{background:rgba(47,163,107,.18);border-left:4px solid #2FA36B;color:#fff}
@media (max-width:640px){.mon-kpis{grid-template-columns:1fr}.mon-tb{overflow-x:auto}}
@media (prefers-reduced-motion: reduce){.mon-top .dot{animation:none}}
html.a-still .mon-top .dot{animation:none}
