:root{--bg:#0a0a0a;--panel:#0d1114;--line:#26333a;--line-soft:#1a2329;--fg:#eaeaea;--dim:#8a979e;--faint:#55636b;--red:#e61919;--red-dark:#7d0f0f;--green:#4af626;--amber:#c98a1b;--mono:"IBM Plex Mono", ui-monospace, "Courier New", monospace;--heavy:"Archivo Black", "Arial Black", sans-serif}*{box-sizing:border-box;border-radius:0!important}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;font-size:13px;overflow:hidden}button{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--fg);border:1px solid var(--line);cursor:pointer;background:0 0;padding:7px 12px;font-size:11px}button:hover:not(:disabled){background:var(--fg);color:var(--bg)}button:disabled{opacity:.35;cursor:not-allowed}.app{background:var(--bg);grid-template-rows:auto 1fr auto;height:100%;display:grid;position:relative}.crt{pointer-events:none;z-index:80;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000024 2px 4px);position:fixed;inset:0}.crt:after{content:"";opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.topbar{border-bottom:2px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;display:flex}.brand{font-family:var(--heavy);letter-spacing:-.02em;white-space:nowrap;font-size:clamp(15px,2vw,22px)}.brand-dim{color:var(--dim);font-family:var(--mono);letter-spacing:.08em;font-size:.6em;font-weight:400}.top-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.clock{color:var(--dim);border:1px solid var(--line);padding:7px 10px;font-size:12px}.speed-group{display:flex}.speed-group button{border-left-width:0}.speed-group button:first-child{border-left-width:1px}.speed-group button.on{background:var(--fg);color:var(--bg)}.board{background:var(--line-soft);grid-template-columns:300px 1fr 330px;gap:1px;min-height:0;display:grid}.col{background:var(--bg);min-height:0;padding:12px;overflow-y:auto}.gauges{grid-template-columns:1fr 1fr;align-content:start;gap:12px 6px;display:grid}.gauge-label{color:var(--faint);letter-spacing:.12em;text-align:center;margin-bottom:2px;font-size:9px}.gauge svg{width:100%;height:auto;display:block}.gauge-value{fill:var(--fg);font-family:var(--mono);font-size:13px;font-weight:700}.gauge-value.red{fill:var(--red)}.rho-panel{border-top:1px solid var(--line);grid-column:1/-1;margin-top:4px;padding-top:10px}.rho-row{color:var(--dim);justify-content:space-between;padding:2px 0;font-size:11px;display:flex}.rho-row.total{border-top:1px solid var(--line);color:var(--fg);margin-top:4px;padding-top:6px;font-weight:700}.rho-val.pos{color:var(--red);font-weight:700}.rho-val.neg{color:var(--dim)}.core{flex-direction:column;padding:0;display:flex}.core-view{flex-direction:column;flex:1;min-height:0;padding:12px;display:flex}.panel-title{color:var(--faint);letter-spacing:.14em;margin-bottom:10px;font-size:10px}.core-canvas{border:1px solid var(--line-soft);background:#05070a;flex:1;width:100%;min-height:280px;display:block}.core-legend{color:var(--faint);flex-wrap:wrap;gap:16px;margin-top:8px;font-size:9px;display:flex}.phase-strip{border-top:2px solid var(--line);letter-spacing:.1em;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:10px 14px;font-size:13px;font-weight:700;display:flex}.phase-strip.normal{color:var(--green)}.phase-strip.alarma{color:var(--amber)}.phase-strip.excursion,.phase-strip.explosion{color:var(--red);animation:.5s steps(2,end) infinite blink}.phase-power{color:var(--dim);font-weight:400}.controls{flex-direction:column;gap:18px;display:flex}.rod-viz{border:1px solid var(--line-soft);background:#05070a;gap:3px;height:90px;padding:4px;display:flex}.rod-col{background:#0b0f12;flex-direction:column;flex:1;justify-content:flex-end;display:flex}.rod-fill{background:#5a6268;width:100%;transition:height .2s linear}.rod-fill.tip{background:var(--amber)}.rod-readout{color:var(--dim);justify-content:space-between;margin:8px 0;font-size:10px;display:flex}.rod-readout output{color:var(--fg);font-weight:700}.rod-slider{appearance:none;background:var(--line);outline:none;width:100%;height:6px;margin:6px 0 10px}.rod-slider::-webkit-slider-thumb{appearance:none;background:var(--fg);border:2px solid var(--bg);cursor:pointer;width:18px;height:26px}.rod-slider::-moz-range-thumb{background:var(--fg);border:2px solid var(--bg);cursor:pointer;width:18px;height:26px}.rod-slider:disabled::-webkit-slider-thumb{background:var(--red)}.rod-steps{gap:8px;display:flex}.rod-steps button{flex:1}.rod-warning{color:var(--faint);border:1px dashed var(--line);margin-top:10px;padding:6px 8px;font-size:9px;line-height:1.5}.rod-warning.on{color:var(--amber);border-color:var(--amber);animation:1s steps(2,end) infinite blink}.pump-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.pump-switch{text-align:left;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;gap:4px 8px;padding:8px;display:grid}.pump-id{font-size:12px;font-weight:700}.pump-lamp{border:1px solid var(--line);background:#151c20;justify-self:end;width:12px;height:12px}.pump-lamp.green{background:var(--green);border-color:var(--green)}.pump-state{color:var(--dim);grid-column:1/-1;font-size:9px}.flow-bar{border:1px solid var(--line);background:#05070a;height:10px;margin-top:10px}.flow-fill{background:var(--fg);height:100%;transition:width .3s linear}.flow-readout{color:var(--dim);margin-top:6px;font-size:10px}.flow-readout output{color:var(--fg);font-weight:700}.az5-housing{border:2px solid var(--line);background:repeating-linear-gradient(-45deg,#0d1114,#0d1114 10px,#101619 10px 20px);justify-content:center;padding:14px;display:flex;position:relative}.az5-button{background:var(--red);border:3px solid var(--red-dark);color:#fff;width:96px;height:96px;font-family:var(--heavy);letter-spacing:0;font-size:22px}.az5-button:hover:not(:disabled){color:#fff;background:#ff2a2a}.az5-button:active:not(:disabled){transform:translate(2px,2px)}.az5-button:disabled{background:var(--red-dark);opacity:.8}.az5-cover{border:2px solid var(--line);color:var(--dim);background:repeating-linear-gradient(-45deg,#1a2228,#1a2228 12px,#232f36 12px 24px);font-size:10px;position:absolute;inset:6px}.az5-cover:hover:not(:disabled){background:var(--line);color:var(--fg)}.az5-note{color:var(--faint);text-align:center;margin-top:8px;font-size:9px}.scenario-btn{border-style:dashed;border-color:var(--amber);color:var(--amber)}.scenario-btn:hover:not(:disabled){background:var(--amber);color:var(--bg)}.bottom{background:var(--line-soft);border-top:2px solid var(--line);grid-template-columns:minmax(360px,1.2fr) 2fr;gap:1px;height:190px;display:grid}.bottom>*{background:var(--bg);min-height:0;padding:12px}.alarm-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.alarm-lamp{flex-direction:column;align-items:center;gap:5px;display:flex}.alarm-lamp .lamp{border:1px solid var(--line);background:#151c20;width:100%;height:18px}.alarm-lamp.active .lamp{background:var(--amber);border-color:var(--amber)}.alarm-lamp.critica .lamp{background:var(--red);border-color:var(--red);animation:.4s steps(2,end) infinite blink}.alarm-lamp.critica .alarm-label{color:var(--red)}.alarm-label{color:var(--faint);text-align:center;font-size:8px;line-height:1.4}.alarm-lamp.active .alarm-label{color:var(--amber)}.event-log{flex-direction:column;display:flex}.log-scroll{flex:1;padding-right:6px;font-size:11px;line-height:1.7;overflow-y:auto}.log-time{color:var(--faint)}.log-entry.info{color:var(--dim)}.log-entry.aviso{color:var(--amber)}.log-entry.critica{color:var(--red);font-weight:700}.start-overlay,.explosion-overlay{z-index:100;background:#040506f0;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.start-box,.explosion-box{border:2px solid var(--line);background:var(--bg);width:100%;max-width:640px;padding:0 0 28px}.start-stripe,.explosion-stripe{background:repeating-linear-gradient(-45deg, var(--red), var(--red) 12px, #0a0a0a 12px, #0a0a0a 24px);height:14px;margin-bottom:26px}.start-title{font-family:var(--heavy);letter-spacing:-.03em;margin:0 28px 6px;font-size:clamp(2.2rem,7vw,4.2rem);line-height:.95}.start-sub{color:var(--red);letter-spacing:.18em;margin:0 28px 18px;font-size:11px}.start-text{color:var(--dim);text-transform:none;margin:0 28px 24px;font-size:12px;line-height:1.8}.start-actions{flex-wrap:wrap;gap:12px;margin:0 28px 16px;display:flex}.start-actions button{flex:1;padding:14px;font-size:13px;font-weight:700}.start-actions button:first-child{background:var(--fg);color:var(--bg)}.start-actions button:first-child:hover{background:var(--red);color:#fff}.start-note{color:var(--faint);letter-spacing:.14em;margin:0 28px;font-size:9px}.explosion-overlay{animation:.4s linear fadein}.explosion-box{border-color:var(--red)}.explosion-title{font-family:var(--heavy);color:var(--red);letter-spacing:-.02em;margin:0 28px 10px;font-size:clamp(1.8rem,6vw,3.4rem);line-height:1}.explosion-cause{color:var(--fg);letter-spacing:.1em;margin:0 28px 22px;font-size:12px}.explosion-stats{background:var(--line-soft);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);grid-template-columns:1fr 1fr;gap:1px;margin:0 28px 18px;display:grid}.explosion-stats>div{background:var(--bg);padding:10px 12px}.explosion-stats dt{color:var(--faint);margin-bottom:4px;font-size:9px}.explosion-stats dd{color:var(--fg);margin:0;font-size:16px;font-weight:700}.explosion-verdict{color:var(--dim);margin:0 28px 22px;font-size:11px;line-height:1.8}.explosion-actions{flex-wrap:wrap;gap:12px;margin:0 28px;display:flex}.explosion-actions button{flex:1;padding:14px;font-size:12px;font-weight:700}.explosion-actions button:first-child{background:var(--red);border-color:var(--red);color:#fff}@keyframes blink{50%{opacity:.25}}@keyframes fadein{0%{opacity:0}}.app.shaking{animation:.12s linear infinite shake}@keyframes shake{0%{transform:translate(3px,-2px)}25%{transform:translate(-4px,3px)}50%{transform:translate(2px,4px)}75%{transform:translate(-3px,-3px)}to{transform:translate(4px,2px)}}@media (width<=1100px){body{overflow:auto}.app{height:auto;min-height:100%}.board{grid-template-columns:1fr}.gauges{grid-template-columns:repeat(3,1fr)}.bottom{grid-template-columns:1fr;height:auto}.log-scroll{max-height:180px}}
