:root{--bg: #d5d8dc;--panel: #e8eaed;--panel-2: #f3f4f6;--ink: #1d2328;--ink-2: #4a535c;--ink-3: #6f7881;--line: #9aa2aa;--line-2: #b9c0c6;--equip: #c3c8cd;--equip-run: #f4f5f6;--pipe: #7d868f;--flow: #2f3a44;--level: #8fa3b5;--accent: #1f5f8b;--warn: #e0a800;--warn-bg: #fff3c4;--alarm: #c62828;--alarm-bg: #ffd9d6;--ok: #2e7d32;--radius: 8px;--mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #1b1f23;--panel: #252a30;--panel-2: #2d333a;--ink: #e7eaed;--ink-2: #b4bcc4;--ink-3: #8b949d;--line: #5b646d;--line-2: #434b53;--equip: #3a424a;--equip-run: #5d6873;--pipe: #6a747e;--flow: #c9d2da;--level: #4f6f8c;--accent: #6fb0e0;--warn: #f2c230;--warn-bg: #4a3d0a;--alarm: #ff6b5e;--alarm-bg: #4d1714;--ok: #6cc070;color-scheme:dark}}:root[data-theme=dark]{--bg: #1b1f23;--panel: #252a30;--panel-2: #2d333a;--ink: #e7eaed;--ink-2: #b4bcc4;--ink-3: #8b949d;--line: #5b646d;--line-2: #434b53;--equip: #3a424a;--equip-run: #5d6873;--pipe: #6a747e;--flow: #c9d2da;--level: #4f6f8c;--accent: #6fb0e0;--warn: #f2c230;--warn-bg: #4a3d0a;--alarm: #ff6b5e;--alarm-bg: #4d1714;--ok: #6cc070;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0}body{background:var(--bg);color:var(--ink);font:14px/1.45 var(--sans);min-height:100vh}#app{display:flex;flex-direction:column;min-height:100vh}button,input,select{font:inherit;color:inherit}a{color:var(--accent)}.topbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:8px 16px;background:var(--panel);border-bottom:1px solid var(--line-2)}.brand{display:flex;align-items:center;gap:10px;margin-right:auto}.brand .logo{font-size:22px;color:var(--accent)}.brand strong{display:block;font-size:16px;letter-spacing:.2px}.brand small{color:var(--ink-3)}.clock{font-family:var(--mono);font-size:15px;font-variant-numeric:tabular-nums}.speed{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.seg{border:0;background:transparent;padding:6px 10px;cursor:pointer;border-right:1px solid var(--line-2);font-variant-numeric:tabular-nums;min-width:44px}.seg:last-child{border-right:0}.seg[aria-pressed=true]{background:var(--ink);color:var(--panel)}.btn{border:1px solid var(--line);background:var(--panel-2);border-radius:var(--radius);padding:6px 12px;cursor:pointer}.btn:hover{border-color:var(--ink-2)}.btn.ghost{background:transparent}.btn.danger{border-color:var(--alarm);color:var(--alarm)}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.icon-btn{border:0;background:transparent;font-size:22px;line-height:1;cursor:pointer;color:var(--ink-2)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tabs{background:var(--panel);border-bottom:1px solid var(--line-2)}.tab-strip{display:flex;gap:2px;overflow-x:auto;padding:0 12px;scrollbar-width:thin}.tab-strip a.group-start:not(:first-child){margin-left:8px;position:relative}.tab-strip a.group-start:not(:first-child):before{content:"";position:absolute;left:-5px;top:9px;bottom:9px;border-left:1px solid var(--line)}.tab-select{display:none}@media(max-width:760px){.tab-strip{display:none}.tab-select{display:block;width:calc(100% - 24px);margin:8px 12px;padding:8px 10px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius)}}.tabs a{padding:9px 12px;color:var(--ink-2);text-decoration:none;white-space:nowrap;border-bottom:3px solid transparent}.tabs a:hover{color:var(--ink)}.tabs a.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:12px;padding:12px;flex:1}.screen{min-width:0}@media(max-width:1000px){.body{grid-template-columns:minmax(0,1fr)}.faceplate:not(.open){display:none}}.syn-wrap{background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius);padding:6px;overflow-x:auto}.screen-note{color:var(--ink-2);max-width:90ch;margin:10px 4px}.card{background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius);padding:14px}h1,h2,h3{line-height:1.25}.screen h2{margin:4px 0 10px;font-size:18px}.synoptic{width:100%;min-width:760px;height:auto;display:block}.synoptic text{fill:var(--ink);font-family:var(--sans)}.lbl{font-size:12px;fill:var(--ink-2)!important}.lbl.strong{font-weight:600;fill:var(--ink)!important}.lbl.small{font-size:10px}.lbl.title{font-size:15px;font-weight:600;fill:var(--ink)!important}.arrowhead{fill:var(--pipe)}.pipe{fill:none;stroke:var(--pipe);stroke-width:2.5}.pipe-flow{fill:none;stroke:transparent;stroke-width:2.5;stroke-dasharray:6 10}.pipe-flow.on{stroke:var(--flow);animation:flow .9s linear infinite}.pipe.steam,.pipe-flow.steam{stroke-dasharray:2 4}.pipe.thin,.pipe-flow.thin{stroke-width:1.5}@keyframes flow{to{stroke-dashoffset:-16}}@media(prefers-reduced-motion:reduce){.pipe-flow.on{animation:none;stroke-dasharray:none;opacity:.5}}.vessel-body{fill:var(--panel-2)}.vessel-outline{fill:none;stroke:var(--line);stroke-width:1.5}.level{fill:var(--level);opacity:.85}.vessel-pct{font-size:11px;font-family:var(--mono);fill:var(--ink)!important}.col-body{fill:var(--panel-2)}.tray{stroke:var(--line-2);stroke-width:1}.column.running .col-body{fill:var(--equip-run)}.equip-body{fill:var(--equip);stroke:var(--line);stroke-width:1.5}.equip.running .equip-body{fill:var(--equip-run);stroke:var(--ink-2)}.pump-tri{fill:var(--line)}.equip.running .pump-tri{fill:var(--ink)}.hx-zig{fill:none;stroke:var(--ink-2);stroke-width:1.5}.eq{cursor:pointer}.eq:hover .equip-body,.eq:hover .vessel-outline,.eq:hover .tag-box,.eq:hover .col-body{stroke:var(--accent);stroke-width:2}.eq:focus-visible{outline:none}.eq:focus-visible .equip-body,.eq:focus-visible .vessel-outline,.eq:focus-visible .tag-box{stroke:var(--accent);stroke-width:3}.tag-lbl{font-size:10.5px;fill:var(--ink-3)!important}.tag-box{fill:var(--panel-2);stroke:var(--line-2)}.tag-val{font-family:var(--mono);font-size:12.5px;font-variant-numeric:tabular-nums}.tag-unit{font-size:10px;fill:var(--ink-3)!important}[data-sev="1"] .tag-box,[data-sev="1"]>.equip-body,[data-sev="1"] .vessel-outline{stroke:var(--warn);stroke-width:2.5}[data-sev="1"] .tag-box{fill:var(--warn-bg)}[data-sev="2"] .tag-box,[data-sev="2"]>.equip-body,[data-sev="2"] .vessel-outline{stroke:var(--alarm);stroke-width:3}[data-sev="2"] .tag-box{fill:var(--alarm-bg)}[data-sev="2"] .tag-val{fill:var(--alarm)!important;font-weight:700}.bar-bg{fill:var(--panel-2);stroke:var(--line-2)}.bar-fg{fill:var(--ink-3)}.bar[data-sev="1"] .bar-fg{fill:var(--warn)}.bar[data-sev="2"] .bar-fg{fill:var(--alarm)}.status-box{fill:var(--panel-2);stroke:var(--line-2)}.status-txt{font-size:11px;font-weight:600}.status[data-sev="1"] .status-box{fill:var(--warn-bg);stroke:var(--warn)}.status[data-sev="2"] .status-box{fill:var(--alarm-bg);stroke:var(--alarm)}.status[data-sev="2"] .status-txt{fill:var(--alarm)!important}.faceplate{background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius);padding:12px 14px;align-self:start;position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}.fp-empty{color:var(--ink-3)}.fp-head{display:flex;justify-content:space-between;align-items:start;gap:8px}.fp-head h2{font-size:16px;margin:2px 0 6px}.fp-desc{color:var(--ink-2);font-size:13px;margin:0 0 10px}.fp-readouts{display:grid;grid-template-columns:1fr auto;gap:4px 10px;margin:0 0 12px;font-size:13px}.fp-readouts dt{color:var(--ink-2)}.fp-readouts dd{margin:0;font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums}.fp-controls{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line-2);padding-top:10px;margin-bottom:12px}.fp-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}.fp-row label,.fp-lbl{font-size:13px}.fp-input{display:flex;align-items:center;gap:4px}.fp-input input{width:92px;padding:4px 6px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2);font-family:var(--mono)}.fp-input .unit{color:var(--ink-3);font-size:12px;min-width:34px}.fp-pv{display:none}.fp-action{grid-template-columns:1fr}.fp-action .btn{width:100%}select{padding:4px 6px;border:1px solid var(--line);border-radius:6px;background:var(--panel-2)}.switch{min-width:96px;padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:var(--panel-2);cursor:pointer;font-size:12px;font-weight:600}.switch[aria-checked=true]{background:var(--ink);color:var(--panel);border-color:var(--ink)}.eventlog{background:var(--panel);border-top:1px solid var(--line-2);padding:6px 16px}.eventlog summary{cursor:pointer;color:var(--ink-2)}.events{list-style:none;margin:6px 0;padding:0;max-height:200px;overflow:auto;font-size:13px}.events li{padding:2px 0;border-bottom:1px dashed var(--line-2)}.events time{font-family:var(--mono);color:var(--ink-3)}.ev-operator{color:var(--accent)}.ev-scenario{color:var(--warn)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:12px}.tile{background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius);padding:10px 12px}.tile .k{font-size:12px;color:var(--ink-3)}.tile .v{font-family:var(--mono);font-size:20px;font-variant-numeric:tabular-nums}.tile .u{font-size:12px;color:var(--ink-3);margin-left:4px}.tile[data-sev="1"]{border-color:var(--warn);background:var(--warn-bg)}.tile[data-sev="2"]{border-color:var(--alarm);background:var(--alarm-bg)}table.data{border-collapse:collapse;width:100%;font-size:13px}table.data th,table.data td{padding:5px 8px;border-bottom:1px solid var(--line-2);text-align:right;font-variant-numeric:tabular-nums}table.data th:first-child,table.data td:first-child{text-align:left}table.data thead th{color:var(--ink-3);font-weight:600}.table-wrap{overflow-x:auto}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.alarm-banner{display:flex;align-items:center;gap:12px;padding:6px 16px;background:var(--panel-2);border-bottom:1px solid var(--line-2);min-height:40px}.alarm-banner .ab-icon{width:18px;text-align:center;font-weight:700;color:var(--ok)}.alarm-banner .ab-text{flex:1;cursor:pointer;font-weight:600}.alarm-banner .ab-counts{font-family:var(--mono);color:var(--ink-2);font-size:13px}.alarm-banner[data-prio="0"] .ab-text{font-weight:400;color:var(--ink-2);cursor:default}.alarm-banner[data-prio="1"]{background:var(--alarm-bg);border-bottom-color:var(--alarm)}.alarm-banner[data-prio="1"] .ab-icon{color:var(--alarm)}.alarm-banner[data-prio="2"]{background:var(--warn-bg);border-bottom-color:var(--warn)}.alarm-banner[data-prio="2"] .ab-icon{color:var(--ink)}.alarm-banner[data-prio="3"] .ab-icon{color:var(--ink-2)}.alarm-banner.unacked .ab-icon{animation:blink 1s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}@media(prefers-reduced-motion:reduce){.alarm-banner.unacked .ab-icon{animation:none}}.btn:disabled{opacity:.45;cursor:default}table.alarms td,table.alarms th{text-align:left;vertical-align:top}table.alarms td.action{color:var(--ink-2);max-width:40ch}table.alarms tr[data-prio="1"] .prio{color:var(--alarm)}table.alarms tr[data-prio="2"] .prio{color:var(--warn)}table.alarms tr.unacked td:first-child{font-weight:700}table.alarms tr[data-prio="1"].unacked{background:var(--alarm-bg)}table.alarms tr[data-prio="2"].unacked{background:var(--warn-bg)}.trend-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:12px}@media(max-width:520px){.trend-grid{grid-template-columns:1fr}}.trend-card{background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius);padding:10px 12px}.trend-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.trend-cur{font-family:var(--mono);font-variant-numeric:tabular-nums}.trend-plot{position:relative}.trend-canvas{width:100%;height:150px;display:block;touch-action:none}.trend-tip{position:absolute;top:2px;padding:2px 8px;border-radius:6px;font-size:12px;pointer-events:none;background:var(--ink);color:var(--panel);font-family:var(--mono);white-space:nowrap}.bulletin{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:12px;align-items:start}@media(max-width:1250px){.bulletin{grid-template-columns:minmax(0,1fr)}}.bulletin-side{display:flex;flex-direction:column;gap:12px}.bulletin h3{font-size:15px;margin:0 0 10px}table.data tr.section th{text-align:left;padding-top:14px;color:var(--ink);font-weight:700;border-bottom:1px solid var(--line)}table.data td.unit{color:var(--ink-3)}.loss-bars{display:flex;flex-direction:column;gap:6px}.loss-row{display:grid;grid-template-columns:170px 1fr 64px;align-items:center;gap:8px;font-size:13px}.loss-track{height:12px;background:var(--panel-2);border-radius:4px;overflow:hidden}.loss-bar{display:block;height:100%;background:var(--ink-3);border-radius:0 4px 4px 0}.loss-val{font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.scenario-strip{display:flex;align-items:center;gap:12px;padding:6px 16px;background:var(--panel);border-bottom:1px solid var(--accent)}.scenario-strip.done{background:var(--panel-2)}.sc-progress{flex:1;max-width:260px;height:8px;background:var(--panel-2);border:1px solid var(--line-2);border-radius:4px;overflow:hidden}.sc-progress-fill{display:block;height:100%;background:var(--accent)}.scenario-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin:12px 0}.scenario-card{display:flex;flex-direction:column;gap:6px}.scenario-card h3{margin:4px 0;font-size:16px}.scenario-card p{color:var(--ink-2);margin:0 0 8px;flex:1}.scenario-card .btn{align-self:flex-start}.sc-meta{display:flex;gap:12px;font-size:12px;color:var(--ink-3)}.sc-meta .stars{color:var(--ink);letter-spacing:1px}.sc-meta .best{font-weight:600;color:var(--ink-2)}.scenario-live{margin-bottom:12px;border-color:var(--accent)}.scenario-live h3{margin:0 0 6px}.big-score{font-family:var(--mono);font-size:40px;line-height:1.1}.big-score small{font-size:16px;color:var(--ink-3)}.objectives{list-style:none;padding:0;margin:8px 0 12px;display:flex;flex-direction:column;gap:4px}.objectives li{display:grid;grid-template-columns:22px 1fr auto;gap:8px;align-items:baseline}.obj-mark{font-weight:700;color:var(--ink-3)}.objectives li[data-ok=true] .obj-mark{color:var(--ok)}.obj-val{font-family:var(--mono);color:var(--ink-3);font-size:12px}.hints li{margin:4px 0}.brief{color:var(--ink-2)}.guide{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:start}@media(max-width:900px){.guide{grid-template-columns:minmax(0,1fr)}}.guide-nav{display:flex;flex-direction:column;gap:2px;background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius);padding:8px;position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}.guide-nav a{padding:5px 8px;border-radius:6px;color:var(--ink-2);text-decoration:none;font-size:13px}.guide-nav a:hover{background:var(--panel-2);color:var(--ink)}.guide-nav a[aria-current=page]{background:var(--ink);color:var(--panel)}.guide-body{background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius);padding:8px 28px 24px;max-width:980px;line-height:1.6}.guide-body h1{font-size:26px;margin-top:18px}.guide-body h2{font-size:20px;margin-top:28px;border-bottom:1px solid var(--line-2);padding-bottom:4px}.guide-body h3{font-size:16px;margin-top:20px}.guide-body p,.guide-body li{max-width:80ch}.guide-body table{border-collapse:collapse;margin:12px 0;font-size:13.5px;display:block;overflow-x:auto}.guide-body th,.guide-body td{border:1px solid var(--line-2);padding:5px 9px;text-align:left;vertical-align:top}.guide-body th{background:var(--panel-2)}.guide-body code{font-family:var(--mono);background:var(--panel-2);padding:1px 4px;border-radius:4px;font-size:13px}.guide-body pre{background:var(--panel-2);border:1px solid var(--line-2);border-radius:6px;padding:10px 12px;overflow-x:auto}.guide-body pre code{background:none;padding:0;font-size:12.5px;line-height:1.45}.guide-body blockquote{margin:14px 0;padding:8px 14px;border-left:4px solid var(--accent);background:var(--panel-2);border-radius:0 6px 6px 0}.guide-body details{margin:4px 0 10px}.guide-body summary{cursor:pointer;color:var(--accent)}.guide-pager{display:flex;justify-content:space-between;gap:12px;margin-top:28px;flex-wrap:wrap}.guide-pager .btn{text-decoration:none;color:var(--ink)}.guide-fallback{margin:14px 0 0;padding:8px 12px;border-radius:6px;background:var(--warn-bg);border:1px solid var(--warn);font-size:13px}.state-menu{position:relative}.state-menu>summary{list-style:none;display:inline-block}.state-menu>summary::-webkit-details-marker{display:none}.state-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:50;width:min(380px,calc(100vw - 32px));background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px;box-shadow:0 6px 24px #0000002e}.state-pop .toolbar{margin-bottom:8px}.state-slots{list-style:none;margin:4px 0 8px;padding:0;display:grid;gap:6px}.state-slots li{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center}.state-slot-name{font-weight:600}.state-slot-desc{color:var(--ink-3);font-size:12px;min-width:0;overflow-wrap:anywhere}.state-status{margin:0;font-size:13px;min-height:1em}.state-status.bad{color:var(--alarm)}@media(max-width:640px){.state-pop{position:fixed;left:16px;right:16px;top:auto;width:auto;margin-top:6px}}.econ{display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:12px;align-items:start}@media(max-width:1250px){.econ{grid-template-columns:minmax(0,1fr)}}.econ h3{font-size:15px;margin:0 0 10px}.econ h3.econ-sub{margin-top:14px}.econ-live{display:flex;flex-direction:column;gap:12px;min-width:0}.econ-live .tiles{margin-bottom:0}.econ-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:12px;align-items:start}.econ-note{font-size:11.5px;color:var(--ink-3)}.econ-warn{font-size:13px;color:var(--ink-2);background:var(--warn-bg);border-left:3px solid var(--warn);padding:6px 10px;margin:0 0 10px;border-radius:4px}.econ-prices .fp-input input{width:96px}.econ-levers{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;font-size:13.5px}table.data tr.total th,table.data tr.total td{font-weight:700;border-top:1px solid var(--line)}table.data tr.margin th,table.data tr.margin td{color:var(--ink)}
