@font-face{font-family:Terminator;src:url("terminator.ttf") format("truetype");font-display:swap}
:root{color-scheme:dark;--bg:#080a08;--panel:#0b100c;--panel2:#0e150f;--line:#16351d;--line-bright:#1c5d2a;--green:#00ff41;--green2:#008f24;--dim:#31523a;--text:#b7d9be;--mono:Terminator,"Courier New",monospace}*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;min-height:100vh;padding:28px 24px 22px;background:radial-gradient(ellipse at 50% -20%,#0b2912 0,transparent 55%),var(--bg);color:var(--green);font-family:var(--mono);font-size:12px}.scanlines{pointer-events:none;position:fixed;inset:0;z-index:5;background:repeating-linear-gradient(to bottom,transparent 0 3px,rgba(0,0,0,.13) 3px 4px);opacity:.38}.terminal{width:min(1100px,100%);margin:auto;position:relative}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:12px 18px;border:1px solid var(--green);box-shadow:inset 0 0 18px #00ff410b,0 0 15px #00ff4108}.brand{display:flex;align-items:center;gap:12px;color:var(--green);text-decoration:none}.brand-emblem{width:39px;height:39px;border:1px solid var(--green);display:grid;place-items:center;font-size:13px;text-shadow:0 0 9px var(--green);box-shadow:0 0 9px #00ff4122}.brand-name{font-size:15px;letter-spacing:2px}.brand-name span{display:block;margin-top:5px;color:var(--green2);font-size:9px;letter-spacing:3px}.node{display:flex;align-items:center;gap:10px;color:var(--green2);font-size:9px;letter-spacing:1px}.node strong{border-left:1px solid var(--line-bright);padding-left:10px;color:var(--green);font-weight:400}.node-led,.button-led{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 9px var(--green)}.version{color:#426449;font-size:9px;letter-spacing:1px}.version span{color:var(--green2)}.status-strip{min-height:37px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px;border:1px solid var(--line);border-top:0;color:var(--green2);font-size:9px;letter-spacing:.6px}.status-label{color:var(--green)}.status-label i{display:inline-block;width:6px;height:6px;background:#8b6114;margin-right:7px;box-shadow:0 0 6px #8b6114}.status-time{color:#426449}.dashboard{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.9fr);gap:15px;margin-top:15px}.main-panel,.metrics-panel,.graph-panel{border:1px solid var(--line-bright);background:linear-gradient(145deg,#0b110d,#090c0a 70%);box-shadow:inset 0 0 26px #00ff4107}.main-panel{padding:18px 22px 15px;min-height:410px}.metrics-panel{padding:18px;display:flex;flex-direction:column;gap:12px}.panel-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:11px}.overline,.panel-index{font-size:9px;letter-spacing:2px;color:var(--green2)}.panel-index{color:#41634a}.gauge-wrap{display:grid;place-items:center;height:273px}.gauge{height:260px;width:min(100%,420px);overflow:visible}.gauge-track{fill:none;stroke:#102316;stroke-width:9;stroke-linecap:round}.gauge-segments{fill:none;stroke:url(#gaugeFade);stroke-width:1;stroke-dasharray:1 2.3;stroke-linecap:round;opacity:.85}.gauge-ticks{fill:none;stroke:#367842;stroke-width:2}.gauge-label{fill:var(--green2);font:9px var(--mono);letter-spacing:2px;text-anchor:middle}.gauge-value{fill:var(--green);font:46px var(--mono);text-anchor:middle;text-shadow:0 0 12px #00ff4155}.gauge-unit{fill:#43854e;font:10px var(--mono);letter-spacing:1px;text-anchor:middle}.button-row{display:flex;align-items:center;gap:14px}.start-button{display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:47px;padding:0 24px;border:1px solid var(--green);background:transparent;color:var(--green);font:12px var(--mono);letter-spacing:1px;text-shadow:0 0 8px #00ff4166;cursor:pointer;transition:background .16s,box-shadow .16s}.start-button:hover,.start-button:focus-visible{outline:none;background:#00ff4110;box-shadow:0 0 16px #00ff4121}.button-led{width:6px;height:6px}.button-note{font-size:8px;letter-spacing:1px;color:#45684c}.logline{min-height:35px;display:flex;align-items:end;gap:7px;margin-top:14px;padding-top:9px;border-top:1px solid #112719;color:#4d8d59;font-size:9px;letter-spacing:.4px}.prompt{color:var(--green)}.cursor{width:6px;height:12px;background:var(--green);animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.metric-card{padding:12px 13px 10px;border:1px solid #194222;background:#0b110d}.metric-top{display:flex;justify-content:space-between;align-items:center}.metric-label{font-size:9px;letter-spacing:1.7px;color:var(--green2)}.metric-symbol{font-size:15px;color:var(--green);opacity:.8}.metric-reading{display:flex;align-items:baseline;gap:8px;margin:5px 0 9px}.metric-value{font-size:32px;color:var(--green);text-shadow:0 0 11px #00ff4140}.metric-unit{font-size:9px;letter-spacing:1px;color:#4e8b58}.metric-track{height:2px;background:#122d18}.metric-track span{display:block;width:0;height:100%;background:var(--green)}.small-metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px;flex:1}.small-metric{display:flex;flex-direction:column;justify-content:space-between;min-height:105px;padding:12px;border:1px solid #194222;background:#0b110d}.small-metric>div{display:flex;align-items:baseline;gap:5px}.small-metric strong{font-size:29px;font-weight:400;color:var(--green);text-shadow:0 0 10px #00ff4135}.small-metric small{font-size:9px;color:#4e8b58}.metric-hint{font-size:7px;letter-spacing:1px;color:#375d3e}.graph-panel{margin-top:15px;padding:17px 20px 13px}.graph-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.graph-heading h2{font-size:13px;font-weight:400;letter-spacing:.6px;margin:6px 0 0;color:#95c99e}.graph-legend{display:flex;align-items:center;gap:7px;color:#4b8354;font-size:8px;letter-spacing:.7px}.graph-legend i,.graph-legend b{width:12px;height:2px;background:var(--green);display:inline-block}.graph-legend b{margin-left:7px;background:#087d2a}.chart-wrap{height:150px;display:flex;gap:12px}.y-axis{display:flex;flex-direction:column;justify-content:space-between;padding:0 0 0;color:#3d6845;font-size:7px}.chart{width:100%;height:100%;overflow:visible}.chart-grid{fill:none;stroke:#15321b;stroke-width:1;vector-effect:non-scaling-stroke}.chart-empty{fill:#275332;font:9px var(--mono);letter-spacing:2px}.x-axis{display:flex;justify-content:space-between;margin:8px 0 0 31px;color:#3d6845;font-size:7px;letter-spacing:1px}footer{display:flex;justify-content:space-between;gap:10px;padding:15px 3px 0;color:#355a3c;font-size:8px;letter-spacing:.8px}
@media(max-width:760px){body{padding:16px 12px}.topbar{gap:12px;padding:12px}.brand-name{font-size:12px}.version{display:none}.dashboard{grid-template-columns:1fr}.main-panel{min-height:0}.gauge-wrap{height:245px}.metrics-panel{display:grid;grid-template-columns:1fr 1fr}.metrics-panel>.panel-heading{grid-column:1/-1}.small-metrics{grid-column:1/-1}.small-metric{min-height:92px}footer{flex-wrap:wrap}footer span:last-child{width:100%}}
@media(max-width:430px){body{padding:9px}.topbar{min-height:61px}.brand-emblem{width:32px;height:32px}.brand-name{font-size:10px;letter-spacing:1px}.brand-name span{font-size:8px}.node{gap:6px;font-size:7px}.node strong{padding-left:6px}.status-strip{align-items:flex-start;flex-direction:column;justify-content:center;gap:4px;padding:7px 9px;font-size:7px}.status-time{display:none}.main-panel,.metrics-panel{padding:13px}.gauge-wrap{height:218px}.gauge{height:220px}.button-row{align-items:flex-start;flex-direction:column;gap:8px}.start-button{width:100%}.button-note{padding-left:2px}.metric-card{padding:10px}.metric-value{font-size:27px}.small-metric{min-height:86px;padding:10px}.graph-panel{padding:13px 11px}.graph-heading h2{font-size:11px}.graph-legend{font-size:6px;gap:4px}.graph-legend b{margin-left:2px}.chart-wrap{height:125px;gap:7px}.chart-empty{font-size:8px}.x-axis{margin-left:25px;font-size:6px}footer{font-size:7px}}
.start-button:disabled{opacity:.48;cursor:wait}
.chart-line{fill:none;stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
.chart-download{stroke:var(--green);filter:drop-shadow(0 0 3px #00ff4166)}
.chart-upload{stroke:#087d2a}
.chart-empty.is-hidden{display:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
