@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff")}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}:root{--bg: #050606;--card: #161716;--line: rgba(255, 255, 255, .08);--text: #f2f4f3;--muted: #8d938f;--inset: #0e0f0e;--ok: #22c98a;--warn: #e08400;--alarm: #e25b5b;--steel: #9aa8a1;--olive: #8fd9b8;--bronze: #e08400;--accent: var(--ok);--accent-text: #d7ffef;--green: var(--ok);--amber: var(--warn);--red: var(--alarm);--cyan: var(--accent-text);--blue: #c5cdc8;--font: "IBM Plex Sans", "Segoe UI", sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.35;color:var(--text);background:var(--bg);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wall{max-width:1680px;margin:0 auto;padding:18px 22px 32px}.console{min-width:0}.console-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:10px}.brand{display:flex;align-items:center;gap:10px;min-width:190px}.brand-mark{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#10241c;color:var(--ok);border:1px solid rgba(34,201,138,.35)}.system-switch{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.system-switch button{border:0;background:transparent;color:var(--muted);padding:6px 12px}.system-switch button[aria-pressed=true]{background:#10241c;color:var(--ok)}.brand-title,.brand-sub{display:block}.brand-title{font-size:20px;font-weight:600;letter-spacing:-.015em}.brand-sub{color:var(--muted);font-size:12px}.nav{display:flex;flex-wrap:wrap;gap:2px}.nav-btn{border:0;background:transparent;color:var(--muted);border-radius:8px;padding:6px 10px}.nav-btn[aria-current=page]{background:#10241c;color:var(--ok)}.tools{display:flex;align-items:center;gap:8px;margin-left:auto}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 8px;background:var(--inset);color:var(--ok);font-size:12px}.pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.pill-connecting,.pill-offline{color:var(--warn)}.pill-held{color:var(--muted)}.pill-sse{color:var(--accent-text)}.clock{color:var(--muted);font-size:12px;white-space:nowrap}.search{position:relative;display:flex;align-items:center}.search svg{position:absolute;left:8px;color:var(--muted);pointer-events:none}.search input{width:132px;background:var(--inset);border:1px solid var(--line);border-radius:8px;padding:6px 8px 6px 28px}.stack{display:grid;gap:12px}.stack.tight{gap:10px}.kpi-row,.gauge-row,.split,.asset-list{display:grid;gap:12px;min-width:0}.kpi-row,.gauge-row{grid-template-columns:repeat(4,minmax(0,1fr))}.split{grid-template-columns:1.15fr .85fr}.split-metrics{grid-template-columns:1.5fr .7fr}.split-foot{grid-template-columns:1.45fr .7fr}.asset-list{grid-template-columns:1fr 1fr}.card,.kpi,.asset,.stat,.big{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px 16px;min-width:0}.card-head,.meter-row,.temp-line,.alarm,.flag{display:flex;align-items:center;justify-content:space-between;gap:8px}.card-head{margin-bottom:6px}h2{margin:0;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#e7ebe8}.kpi{position:relative;display:block;min-height:108px}.kpi-label,.quiet,.gauge-label,.gauge-unit{color:var(--muted)}.kpi-label,.gauge-label{margin:0;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#d7dbd8}.kpi-label{display:flex;align-items:center;gap:8px}.gauge-label{display:block}.kpi-dot{width:7px;height:7px;border-radius:50%;flex:none}.kpi-value,.carbon-value,.gauge-value,.soc-value,.pack-stats dd,.facts dd{color:var(--ok)}.kpi-value{margin:6px 0 2px;font-size:28px;font-weight:600;letter-spacing:-.03em;white-space:nowrap}.kpi-value small,.carbon-value small{font-size:.48em;font-weight:600;color:var(--ok);margin-left:4px}.kpi-meta{display:flex;gap:6px;align-items:center;margin:0;min-height:18px}.kpi-side{display:block}.kpi-icon{position:absolute;top:14px;right:14px;color:var(--ok)}.spark{width:100%;height:22px;margin-top:2px}.delta{font-size:12px}.delta.up{color:var(--green)}.delta.down{color:var(--red)}.live-tag{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.live-tag i{width:7px;height:7px;border-radius:50%;background:var(--ok)}.pf-wrap{overflow-x:auto}.pf{display:block;width:100%;min-width:0;height:auto;font-family:inherit}.pf-grid{fill:none;stroke:#8d938f38;stroke-width:1}.pf-line,.pf-bus{fill:none;stroke-linecap:round;stroke-linejoin:round}.pf-line{stroke-width:2.6}.pf-glow{fill:none;stroke-width:8;opacity:.22;stroke-linecap:round;stroke-linejoin:round}.pf-bus{stroke:#22c98a}.pf-bar{stroke-width:5}.pf-solar{stroke:#e08400;color:#e08400}.pf-battery{stroke:#22c98a;color:#22c98a}.pf-gridline{stroke:#f0c36a;color:#f0c36a}.pf-load{stroke:#8fd9b8;color:#8fd9b8}.pf-joint{fill:#050606;stroke-width:2.4}.pf-ico{fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.pf-name{fill:var(--muted);font-size:13px;stroke:none}.pf-value{fill:var(--ok);font-size:16px;font-weight:600;stroke:none}.pf-sub{fill:var(--muted);font-size:12px;stroke:none}.pf-bus-label{fill:var(--muted);font-size:13px;stroke:none}.pf-bus-value{fill:var(--ok);font-size:18px;font-weight:600;stroke:none}.pf-pill rect{fill:var(--card);stroke:currentColor;stroke-width:1}.pf-pill text{fill:var(--text);font-size:12px;font-weight:600;stroke:none}.pf-arrow{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.pf-site{stroke:#8fd9b8;fill:none;stroke-width:1.5;stroke-linejoin:round}.pf-ground{fill:#22c98a24;stroke:none}.gauge{margin:0;text-align:center}.gauge-face{position:relative}.gauge svg,.soc svg{width:100%;max-width:116px;height:auto}.gauge-track{fill:none;stroke:#2a2c2b;stroke-width:8}.gauge-bar{fill:none;stroke-width:8;stroke-linecap:round}.gauge-read{position:absolute;inset:0;display:grid;align-content:center;justify-items:center}.gauge-value,.soc-value{font-size:15px;font-weight:600}.gauge-label{display:block;margin-top:2px}.soc{position:relative;display:grid;justify-items:center;width:140px}.soc>div{position:absolute;inset:0;display:grid;align-content:center;justify-items:center}.soc-value{font-size:28px}.flags{list-style:none;margin:0;padding:0;display:grid;gap:8px}.flag-mark{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:11px;background:#123228;color:var(--ok)}.flag-mark[data-ok=no]{background:#2c1d0c;color:var(--warn)}.flag{display:grid;grid-template-columns:18px minmax(0,1fr) auto}.flag-value{white-space:nowrap}.alarms{list-style:none;margin:0;padding:0;display:grid;gap:6px}.alarm{justify-content:flex-start;align-items:center;min-height:28px}.alarm time,.alarm-source{color:var(--muted);font-size:12px;white-space:nowrap}.alarm-message{flex:1;min-width:8em}.alarm.cleared{opacity:.55}.sev{font-size:12px}.alarm[data-severity=warning] .sev,.mark-warning{color:var(--amber)}.alarm[data-severity=minor] .sev,.mark-minor{color:#f0c36a}.alarm[data-severity=info] .sev,.mark-info{color:var(--steel)}.alarm[data-severity=critical] .sev,.mark-critical{color:var(--red)}.alarm svg{flex:none}.carbon-value{margin:4px 0;font-size:32px;font-weight:600;letter-spacing:-.03em}.bars{height:72px;display:flex;align-items:flex-end;gap:6px;margin-top:10px}.bar{flex:1;background:#1c3d32;border-radius:3px 3px 0 0;min-height:8px}.bar.now{background:var(--ok)}.pack{display:grid;grid-template-columns:140px 1fr;gap:8px;align-items:center}.pack-stats{margin:0;display:grid;gap:8px}.pack-stats div{display:flex;justify-content:space-between;gap:8px}.pack-stats dt{color:var(--muted)}.pack-stats dd{margin:0;font-size:18px;font-weight:600}.soh-block .meter-row span:last-child{font-size:28px;font-weight:600}.temp-line{margin:12px 0 0;color:var(--muted)}.temp-line span:last-child{color:var(--text);font-weight:600}.meter{display:grid;gap:4px}.track{height:8px;border-radius:99px;background:var(--inset);overflow:hidden}.fill{display:block;height:100%;border-radius:inherit}.cell-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;max-width:760px}.cell{border:1px solid transparent;border-radius:8px;min-height:58px;display:grid;align-content:center;justify-items:center;gap:2px;font:inherit}.cell[data-low=yes]{outline:1px solid var(--amber)}.cell.is-selected{outline:2px solid var(--text)}.scale{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;margin-top:8px}.scale i{flex:1;height:8px;border-radius:99px;background:linear-gradient(90deg,#e25b5b,#e08400 18%,#22c98a 55%)}.cell-detail{min-height:1.2em;margin:6px 0 0}.sheet{width:100%;border-collapse:collapse}.sheet th,.sheet td{text-align:left;padding:6px 4px;border-bottom:1px solid var(--line)}.sheet th{color:var(--muted);font-weight:500}.sheet tr.is-selected td{color:var(--accent-text)}.text-btn{border:0;background:transparent;padding:0}.legend{display:flex;gap:10px;list-style:none;margin:0;padding:0;color:var(--muted);font-size:12px}.legend li{display:flex;align-items:center;gap:4px}.legend i{width:10px;height:3px;border-radius:2px}.chart-host{width:100%;min-width:0;overflow:hidden}.chart-host .uplot{background:transparent;font-family:var(--font)}.prose{margin:0;color:var(--muted);max-width:68ch}.empty{margin:8px 0;color:var(--muted)}.choice{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.choice button,.check{border:1px solid var(--line);background:var(--inset);border-radius:8px;padding:8px 10px}.choice button[aria-pressed=true]{border-color:var(--accent);color:var(--accent-text)}.check{display:flex;align-items:center;gap:8px;width:fit-content}.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}.facts dt{color:var(--muted)}.facts dd{margin:2px 0 0;font-size:18px;font-weight:600}.asset h2{margin-bottom:6px}.waiting{min-height:100vh;display:grid;align-content:center;justify-items:start;padding:48px;gap:6px}@media(prefers-reduced-motion:no-preference){.conduit{stroke-dasharray:5 9;animation:flow 2.4s linear infinite}}@media(prefers-reduced-motion:reduce){.conduit{animation:none;stroke-dasharray:none}}@keyframes flow{to{stroke-dashoffset:-28}}.board{display:grid;grid-template-columns:minmax(0,.96fr) minmax(0,1.22fr) minmax(0,.9fr);gap:12px;align-items:start}.board-col{display:grid;gap:12px;min-width:0}.factor{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.factor-side{display:grid;gap:2px}.factor-side.end{justify-items:end;text-align:right}.factor-total{font-size:18px;font-weight:600;color:var(--ok)}.ring{position:relative;width:128px}.ring svg{display:block;width:100%;height:auto}.ring-track,.ring-arc{fill:none;stroke-width:12}.ring-track{stroke:#2a2c2b}.ring-read{position:absolute;inset:0;display:grid;align-content:center;justify-items:center}.pair,.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mix-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:12px 0 6px}.mix-title{margin:0;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#d7dbd8}.mix-head span{color:var(--ok);font-weight:600;font-size:13px}.mix{list-style:none;margin:0;padding:0;display:grid;gap:6px}.mix li{display:grid;grid-template-columns:7px minmax(0,1fr) auto auto;gap:8px;align-items:center;font-size:13px}.mix i{width:7px;height:7px;border-radius:50%}.mix b{font-weight:600}.mix .pct{color:var(--muted);width:3em;text-align:right}.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.stat-value{margin:4px 0 0;font-size:26px;font-weight:600;letter-spacing:-.03em;color:var(--ok);white-space:nowrap}.stat-value small{font-size:.48em;font-weight:600;margin-left:4px}.mini-stats{margin:8px 0 0;display:grid;gap:4px}.mini-stats div{display:flex;justify-content:space-between;gap:8px;font-size:12px}.mini-stats dt{color:var(--muted)}.mini-stats dd{margin:0}.bars-dense{height:128px;gap:3px;margin-top:4px}.bars-dense .bar{background:#1a6b4a;border-radius:2px 2px 0 0}.soc-row{display:grid;grid-template-columns:128px minmax(0,1fr);gap:12px;align-items:center}@media(max-width:1100px){.board,.stat-grid,.trio,.pair,.soc-row{grid-template-columns:1fr}.ring{margin:0 auto}}@media(max-width:780px){.wall{padding:12px}.kpi-row,.gauge-row,.split,.split-metrics,.split-foot,.asset-list,.facts,.pack,.board,.stat-grid,.trio,.pair{grid-template-columns:1fr}.kpi-row,.cell-grid{grid-template-columns:1fr 1fr}.tools{margin-left:0}.search input{width:100px}}
