:root{--paper:#F7F6F1;--paper-mid:#EAE9E2;--paper-deep:#DEDDD5;--card:#FFFFFF;--input:#FBFAF5;--hover:#F0EDE3;--coral:#FF6B35;--coral-hover:#E55620;--coral-aa:#C94318;--coral-sel:rgba(255,107,53,.08);--border:#C9C6BD;--border-strong:#A8A59A;--ink:#16170F;--ink2:#5F5E58;--ink3:#8C8B83;--success:#15803D;--warn:#A5680A;--error:#B91C1C;--info:#1D4ED8;--cyan:#00A6B0;--w-dcpos:#8B4A3C;--w-dcneg:#4C6B8A;--w-solar:#9E8B3A;--w-ac:#7C5CBF;--w-data:#3F8787;--w-link:#6B7A80;--slate:#64748B;--bus-pos:#7A4A34;--bus-neg:#4a4a4e;--r-sm:4px;--r-md:6px;--r-lg:8px;--r-xl:12px;--r-chip:999px;--font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,system-ui,sans-serif;--display:"Space Grotesk","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace}.ic{display:inline-block;vertical-align:middle;flex:none}.num,.tnum{font-family:var(--mono);font-variant-numeric:tabular-nums}.u{font-size:.8em;color:var(--ink2);font-weight:600;margin-left:2px;font-family:var(--font)}input[type=number]{appearance:textfield;-moz-appearance:textfield;font-variant-numeric:tabular-nums}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);background:var(--paper);color:var(--ink);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input,select{font-family:inherit;font-size:13px}:focus-visible{outline:2px solid var(--coral);outline-offset:1px}#topbar{position:fixed;top:0;left:0;right:0;z-index:1000;background:var(--card);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;padding:8px 18px}#topbar .brand{display:inline-flex;align-items:center;gap:8px;font-family:var(--display);font-weight:800;letter-spacing:-.01em;font-size:14px}#topbar a.brand{color:var(--ink);text-decoration:none}#topbar a.brand:hover{color:var(--coral-aa)}#topbar .demo{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--coral-aa);background:var(--coral-sel);padding:3px 8px;border-radius:var(--r-chip)}#topbar .note{color:var(--ink2);font-size:11px}#topbar .sp{margin-left:auto}#topbar .newboat{background:var(--coral);color:#fff;border:none;border-radius:var(--r-md);padding:7px 14px;font-size:12px;font-weight:700;cursor:pointer}#topbar .newboat:hover{background:var(--coral-hover)}@media (max-width:720px){#topbar .note{display:none}}#topbar .persist{display:inline-flex;align-items:center;gap:8px}#topbar .persist a.signin{color:var(--coral-aa);font-size:12px;font-weight:700;text-decoration:none}#topbar .persist a.signin:hover{text-decoration:underline}#topbar .menuwrap{position:relative}#topbar .menu{position:absolute;top:100%;right:0;margin-top:6px;background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:0 8px 24px #00000024;min-width:210px;max-height:320px;overflow:auto;z-index:1100;padding:4px}#topbar .menu button{display:block;width:100%;text-align:left;background:transparent;border:none;padding:8px 10px;font-size:12px;color:var(--ink);border-radius:var(--r-sm);cursor:pointer}#topbar .menu button:hover{background:var(--hover)}#topbar .menu .menuhead{padding:6px 10px 2px;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3)}#topbar .menu .menuempty{padding:8px 10px;font-size:12px;color:var(--ink2)}#topbar .acct{display:inline-flex;align-items:center}#topbar .acct .avatar{width:28px;height:28px;border-radius:50%;border:none;cursor:pointer;background:var(--ink);color:#fff;font-family:var(--display);font-size:12px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0}#topbar .acct .avatar:hover{background:var(--ink2)}#topbar .acct .avatar:focus-visible{outline:2px solid var(--coral);outline-offset:2px}#topbar .acct .menu{min-width:180px}#topbar .acct .whoami{padding:6px 10px 4px;font-size:11px;color:var(--ink2);word-break:break-all;border-bottom:1px solid var(--border);margin-bottom:4px}#app{padding-top:46px}.wrap{max-width:1280px;margin:0 auto;padding:24px 16px}.btn{background:var(--coral);color:#fff;border:none;border-radius:var(--r-md);padding:9px 18px;font-size:13px;font-weight:600}.btn:hover{background:var(--coral-hover)}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--border)}.btn.ghost:hover{background:var(--hover)}.btn.sm{padding:5px 11px;font-size:12px}.btn:disabled{opacity:.4;cursor:not-allowed}.muted{color:var(--ink2)}.tiny{font-size:11px;color:var(--ink2)}.chip{display:inline-block;border-radius:var(--r-chip);padding:2px 9px;font-size:11px;font-weight:600}.pos{color:var(--success)}.neg{color:var(--error)}#wizard .wrap{max-width:600px;min-height:calc(100vh - 130px);display:flex;flex-direction:column;justify-content:center;padding-bottom:60px}.wz-head{text-align:center;margin-bottom:6px}.wz-head h1{font-family:var(--display);font-size:clamp(30px,5vw,38px);font-weight:800;margin:24px 0 6px;letter-spacing:-.02em;line-height:1.1}.wz-head p{margin:0;color:var(--ink2);font-size:14px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-xl);padding:24px;margin-top:22px}.card h2{font-size:15px;font-weight:600;margin:0 0 2px}.card .sub{color:var(--ink2);font-size:12px;margin:0 0 18px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:600;margin-bottom:5px;color:var(--ink2)}.field input[type=text],.field input[type=number],.field select{width:100%;background:var(--input);border:1px solid var(--border);border-radius:var(--r-md);padding:9px 11px;color:var(--ink)}.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.wz-nav{display:flex;justify-content:space-between;margin-top:22px}#config{display:none}.boatbar{position:sticky;top:46px;z-index:50;background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:12px 18px;display:flex;align-items:center;gap:16px;row-gap:10px;margin-bottom:20px;flex-wrap:wrap}.boatbar .id{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:16px;font-family:var(--display);letter-spacing:-.01em}.boatbar .id .ic{color:var(--ink2)}.boatbar .spec{font-size:12px;color:var(--ink2);font-variant-numeric:tabular-nums}.boatbar .spacer{flex:1}.modes{display:inline-flex;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.modes button{background:var(--card);border:none;border-right:1px solid var(--border);padding:6px 12px;font-size:12px;font-weight:600;color:var(--ink2)}.modes button:last-child{border-right:none}.modes button.on{background:var(--ink);color:var(--paper)}.starter{background:var(--input);border:1px solid var(--border);border-radius:var(--r-md);padding:6px 10px;font-size:12px;font-weight:600;color:var(--ink);max-width:230px}.bbfield{display:inline-flex;flex-direction:column;gap:3px}.bbfield .bblabel{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink2)}.bbtoggle{display:none}.bbsecondary{display:contents}@media (max-width:560px){.bbtoggle{display:inline-flex;align-items:center;gap:5px}.bbsecondary{display:none!important;flex-basis:100%;flex-direction:column;align-items:stretch;gap:10px;width:100%;margin-top:2px;padding-top:12px;border-top:1px solid var(--border)}.bbsecondary.open{display:flex!important}.bbsecondary .starter{max-width:none;width:100%}.bbsecondary .bbfield,.bbsecondary .modes{width:100%}.bbsecondary .modes button{flex:1}.bbsecondary #rename{align-self:flex-start}}.cfg-grid{display:grid;grid-template-columns:340px 1fr;gap:24px;align-items:start}.cattoggle{display:flex;width:100%;align-items:center;justify-content:space-between;background:none;border:none;padding:0;cursor:default;margin-bottom:10px}.cattoggle h2{margin:0}.cattoggle .chev{display:none;color:var(--ink3);font-size:14px}.catalog{background:var(--card);border:1px solid var(--border);border-radius:var(--r-xl);display:flex;flex-direction:column;height:calc(100vh - 120px);overflow:hidden}.catalog .chead{padding:14px 14px 10px;border-bottom:1px solid var(--border)}.catalog .chead h2{font-size:14px;font-weight:600;margin:0 0 10px}.catalog input.search{width:100%;background:var(--input);border:1px solid var(--border);border-radius:var(--r-md);padding:8px 10px;margin-bottom:8px}.catfilters{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}.catalog select.filter{min-width:0;width:100%;background:var(--input);border:1px solid var(--border);border-radius:var(--r-md);padding:7px 8px}.catalog select#sortsel{grid-column:1/3}.catrow{cursor:pointer}.catrow.open{background:var(--paper-mid)}.specpanel{background:var(--paper);border-bottom:1px solid var(--border);padding:12px 14px}.specrow{display:flex;justify-content:space-between;gap:12px;font-size:12px;padding:3px 0;border-top:1px solid var(--paper-mid)}.specrow:first-child{border-top:none}.specrow span{color:var(--ink2)}.specrow b{color:var(--ink);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.specnote{font-size:10px;color:var(--warn);margin-top:8px;font-weight:600}.specactions{display:flex;align-items:center;gap:12px;margin-top:10px}.extlink,.specactions .ds{font-size:12px;color:var(--info);font-weight:600;text-decoration:none;margin-right:auto}.extlink:hover,.specactions .ds:hover{text-decoration:underline}.assign{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--ink2)}.assign span{white-space:nowrap;font-weight:600}.assign select{flex:1;background:var(--input);border:1px solid var(--border);border-radius:var(--r-md);padding:6px 8px;font-size:12px;font-weight:600;color:var(--ink)}.catlist{overflow-y:auto;flex:1;padding-bottom:12px}.catgroup-h{position:sticky;top:0;background:var(--paper-mid);color:var(--ink2);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:6px 14px;border-bottom:1px solid var(--border);z-index:1}.catrow{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-bottom:1px solid var(--paper-mid)}.catrow .ic{width:22px;color:var(--ink2);display:inline-flex;justify-content:center;flex:none;margin-top:2px}.catrow .rowmain{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.catrow .rowtop{display:flex;align-items:center;gap:10px}.catrow .rowtop .n{flex:1;min-width:110px;font-size:13px;font-weight:600;color:var(--ink);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catrow .rowsub{display:flex;align-items:center;gap:8px;min-width:0}.catrow .rowsub .keyspec{flex:none;font-size:11px;color:var(--ink2);font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}.catrow .rowsub .s{flex:1;min-width:0;font-size:11px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}.catrow .add{flex:none;display:inline-flex;align-items:center;gap:3px;background:var(--coral);color:#fff;border:none;border-radius:var(--r-md);padding:5px 10px;font-size:11px;font-weight:700}.catrow .add:hover{background:var(--coral-hover)}.catrow .add .ic{color:#fff;width:auto;margin-top:0}.inbuild{flex:none;background:var(--paper-mid);color:var(--ink2);border:1px solid var(--border);font-weight:700}.rpane{display:flex;flex-direction:column;gap:20px;min-width:0}.tabbar{display:inline-flex;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;align-self:flex-start;flex-wrap:wrap}.tabbar button{background:var(--card);border:none;border-right:1px solid var(--border);padding:9px 20px;font-size:12px;font-weight:600;color:var(--ink2);position:relative}.tabbar button:last-child{border-right:none}.tabbar button.on{background:var(--ink);color:var(--paper)}.tabbar .badge{display:inline-block;min-width:16px;height:16px;line-height:16px;text-align:center;border-radius:999px;font-size:10px;font-weight:800;margin-left:6px;padding:0 4px;color:#fff}.tabbar .badge.err{background:var(--error)}.tabbar .badge.warn{background:var(--warn)}.summary{display:flex;gap:12px;flex-wrap:wrap}.summary .box{flex:.85;min-width:120px;background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:13px 14px;color:var(--ink)}.summary .box.lead{flex:1.7;min-width:180px;padding:13px 16px;border-color:var(--border-strong);box-shadow:inset 3px 0 0 var(--ink)}.summary .box .k{font-size:11px;color:var(--ink2);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.summary .box .v{font-size:16px;font-weight:700;margin-top:6px;font-family:var(--mono);font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:4px}.summary .box.lead .v{font-size:32px;font-weight:800;letter-spacing:-.02em;margin-top:6px}.summary .box .v .u{font-size:11px;font-weight:600;color:var(--ink2);font-family:var(--font)}.summary .box.lead .v .u{font-size:12px}.stat-good{color:var(--success)}.stat-warn{color:var(--warn)}.stat-bad{color:var(--error)}.summary .box:nth-of-type(3){margin-left:10px}.diagtools{display:flex;align-items:center;gap:8px;margin-bottom:8px}.diagtools .spacer{flex:1}.zbtn{background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);padding:4px 12px;font-size:13px;font-weight:700;color:var(--ink2);min-width:34px}.zbtn:hover{background:var(--hover);border-color:var(--border-strong)}.diagram-wrap{background:var(--paper);border:1px solid var(--border);border-radius:var(--r-lg);overflow:auto;min-height:360px;max-height:70vh;padding:12px}#diagram{display:block}.lane-bg{fill:var(--card);stroke:var(--border);stroke-width:1}.lane-title{font-size:12px;font-weight:700;fill:var(--ink)}.lane-sub{font-size:10px;fill:var(--ink3)}.node rect.box{fill:var(--card);stroke:var(--border-strong);stroke-width:1.4}.node rect.accent{fill:var(--border-strong)}.node.sel rect.box{stroke:var(--coral);stroke-width:2.2}.node.sel rect.accent{fill:var(--coral)}.nodehalo{fill:none;stroke:var(--coral);stroke-width:2.5;filter:drop-shadow(0 0 5px rgba(255,107,53,.6));pointer-events:none}.node text.lbl{font-size:10.5px;font-weight:600;fill:var(--ink)}.node text.watt{font-size:9.5px;fill:var(--ink3);font-family:var(--mono);font-variant-numeric:tabular-nums}.node .editaff{opacity:.28;transition:opacity .12s}.node:hover .editaff,.node:focus .editaff{opacity:1}.node:hover rect.box{stroke:var(--coral)}.node:hover rect.accent{fill:var(--coral)}.node{cursor:pointer}.wire{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.wire.flow{stroke-dasharray:7 5;animation:flow 1.4s linear infinite}.wire.link{stroke-width:2.5;stroke-dasharray:1 6;stroke-linecap:round}@keyframes flow{to{stroke-dashoffset:-24}}.busbar{rx:4}.vbadge{cursor:pointer}.vbadge circle{stroke:#fff;stroke-width:1.2}.vbadge text{font-size:9px;font-weight:800;fill:#fff}.empty-diagram{fill:var(--ink3);font-size:13px}.linklabel{font-size:9px;font-weight:600;fill:var(--ink2)}.dash{display:none;flex-direction:column;gap:16px}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--r-xl);padding:18px}.panel h3{font-size:15px;font-weight:600;margin:0 0 14px}.panel h3,.dash>h3,.catalog .chead h2,.bankcard .bh .bn,.tabbar button{font-family:var(--display)}.panel h3,.dash>h3,.catalog .chead h2,.bankcard .bh .bn{font-weight:700;letter-spacing:-.02em}.tabbar button{font-weight:600;letter-spacing:-.01em}.dash-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}@media (max-width:760px){.dash-2{grid-template-columns:1fr}}.legend{margin-top:6px;display:flex;flex-direction:column;gap:5px}.legend .li{display:flex;align-items:center;gap:8px;font-size:12px}.legend .sw{width:11px;height:11px;border-radius:3px;flex:none}.legend .li .amt{margin-left:auto;color:var(--ink2);font-variant-numeric:tabular-nums}.reclist{margin-top:6px;font-size:12px;color:var(--ink2)}.reclist .rl{display:flex;justify-content:space-between;padding:5px 0;border-top:1px solid var(--paper-mid)}.reclist .rl b{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}.rangewrap{display:flex;align-items:center;gap:10px}.rangewrap input[type=range]{flex:1;accent-color:var(--coral)}.rangewrap .rv{width:64px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.pick{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);padding:12px;text-align:left}.pick:hover{border-color:var(--border-strong);background:var(--hover)}.pick.on{border-color:var(--coral);background:var(--coral-sel)}.pick .t{font-weight:600;font-size:13px;margin-bottom:2px}.pick .m{font-size:11px;color:var(--ink2)}.pick .big{font-size:18px;font-weight:700;color:var(--ink);margin-top:6px;font-family:var(--mono);font-variant-numeric:tabular-nums}.pick .big span{color:var(--ink2)}.grid-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media (max-width:640px){.grid-cards{grid-template-columns:1fr 1fr}}.bankcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;align-items:start}@media (max-width:760px){.bankcards{grid-template-columns:1fr}}.bankcard{background:var(--card);border:1px solid var(--border);border-radius:var(--r-xl);padding:16px;color:var(--ink);align-self:start}.bankcard .bh{display:flex;align-items:center;gap:8px;margin-bottom:12px}.bankcard .bh .bicon{color:var(--ink2);display:inline-flex}.bankcard .bh .bn{font-weight:700;font-size:14px}.bankcard .bh .bt{font-size:11px;color:var(--ink2);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.bankcard .kpirow{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:12px;align-items:flex-end}.bankcard .kpirow .m:nth-child(3){border-left:1px solid var(--paper-mid);padding-left:18px}.bankcard .kpirow .m .k{font-size:10px;color:var(--ink2);font-weight:600;text-transform:uppercase}.bankcard .kpirow .m .v{font-size:15px;font-weight:700;font-family:var(--mono);font-variant-numeric:tabular-nums;margin-top:2px}.bankcard .kpirow .m.lead .v,.bankcard .kpirow .m .v.big{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-top:3px}.bankcard .donutwrap{display:flex;gap:14px;align-items:center}.bankcard .dcenter{font-size:13px;font-weight:800;fill:var(--ink);font-family:var(--mono)}.tiers{margin-top:16px;border-top:1px solid var(--paper-mid);padding-top:12px}.tiers-h{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink2);margin-bottom:8px}.tiers-row{display:grid;grid-template-columns:1fr 1fr 1fr}.tier{padding:6px 8px;text-align:center;border-left:1px solid var(--paper-mid);border-radius:var(--r-md)}.tier:first-child{border-left:none}.tier.rec{background:var(--paper-mid)}.tier .tt{font-size:9px;font-weight:700;text-transform:uppercase;color:var(--ink2);letter-spacing:.02em}.tier.rec .tt{background:var(--ink);color:var(--paper);padding:1px 7px;border-radius:999px;display:inline-block}.tier .n1{font-size:17px;font-weight:800;margin-top:5px;font-variant-numeric:tabular-nums}.tier .u1{font-size:10px;color:var(--ink2);font-variant-numeric:tabular-nums}.sysgrid{display:grid;grid-template-columns:1.7fr .8fr 1fr 1fr;column-gap:14px}.sysgrid>div{display:contents}.sysgrid .c{padding:7px 0;border-top:1px solid var(--paper-mid);font-size:12px}.sysgrid .c.num{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600}.sysgrid .h .c{border-top:none;color:var(--ink2);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.sysgrid .tot .c{border-top:2px solid var(--border-strong);font-weight:800;color:var(--ink)}.sysgrid .tot .c:first-child{text-transform:uppercase;font-size:10px;letter-spacing:.03em;color:var(--ink2)}.bankcard.sparse .sparseloads{display:flex;flex-direction:column;gap:6px;margin-top:14px;border-top:1px solid var(--paper-mid);padding-top:12px}.bankcard .sload{display:flex;align-items:center;gap:8px;font-size:12px}.bankcard .sload .sw{width:11px;height:11px;border-radius:3px;flex:none}.bankcard .sload b{margin-left:auto;font-weight:700}.compactstrip{display:flex;flex-direction:column;gap:12px}.bankcard.compactcard{cursor:pointer;background:var(--paper);border-style:dashed;display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:12px 16px}.bankcard.compactcard:hover{background:var(--hover)}.bankcard.compactcard .bh{margin-bottom:0}.bankcard.compactcard .ctier{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink2);background:var(--paper-mid);border-radius:var(--r-chip);padding:3px 10px}.bankcard.compactcard .cstat{display:flex;align-items:baseline;gap:8px;font-size:12px}.bankcard.compactcard .cstat>span{color:var(--ink2);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.bankcard.compactcard .cstat b{font-weight:700;font-variant-numeric:tabular-nums}.bankcard.compactcard .cstat:last-child{margin-left:auto}.bankcard .v.pos,.summary .box .v.pos{color:var(--success)}.bankcard .v.neg,.summary .box .v.neg{color:var(--error)}.bankcard .v.stat-good,.summary .box .v.stat-good{color:var(--success)}.bankcard .v.stat-warn,.summary .box .v.stat-warn{color:var(--warn)}.bankcard .v.stat-bad,.summary .box .v.stat-bad{color:var(--error)}.vpanel .vitem{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--paper-mid);cursor:pointer}.vpanel .vitem:hover{background:var(--hover)}.vsev{flex:none;width:56px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;padding:3px 0;text-align:center;border-radius:var(--r-sm);color:#fff}.vsev.error{background:var(--error)}.vsev.warning{background:var(--warn)}.vsev.info{background:var(--slate)}.vmsg{flex:1;font-size:12px}.vmsg .vid{font-size:10px;color:var(--ink2);font-weight:700;font-family:ui-monospace,monospace}.vclean{display:flex;align-items:center;gap:8px;color:var(--success);font-weight:600;font-size:13px}.mgr h3{display:flex;align-items:center}.mgr h3 .add{margin-left:auto;background:var(--coral);color:#fff;border:none;border-radius:var(--r-md);padding:4px 10px;font-size:11px;font-weight:700}.mgrrow{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--paper-mid);flex-wrap:wrap;font-size:12px}.banktablewrap{overflow-x:auto}.banktable{display:grid;grid-template-columns:120px minmax(140px,1.4fr) 96px 96px 84px 60px 60px 84px;gap:8px;align-items:center;min-width:720px}.banktable .bth,.banktable .btr{display:contents}.banktable .bth>span{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink2)}.banktable .bth>span.num{text-align:right}.banktable .btr>*{border-top:1px solid var(--paper-mid);padding-top:9px;padding-bottom:1px}.banktable .bname{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.banktable .bname .ic{color:var(--ink2)}.banktable select,.banktable input{background:var(--input);border:1px solid var(--border);border-radius:var(--r-md);padding:5px 7px;font-size:12px;width:100%}.banktable select{padding-right:22px;text-overflow:ellipsis}.banktable input.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}.banktable .del{justify-self:stretch;min-width:76px;text-align:center;background:none;border:1px solid var(--border);color:var(--ink2);border-radius:var(--r-md);padding:5px 8px;font-size:11px;white-space:nowrap}.banktable .del:hover{border-color:var(--error);color:var(--error)}.fieldgrp{display:flex;flex-direction:column;gap:3px;flex:none}.fieldgrp>label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink2)}.fieldgrp .fg{display:flex;align-items:center;gap:4px}.fieldgrp .fg em{font-style:normal;color:var(--ink2);font-size:11px}.mgrrow input.num.sm{width:58px}.mgrrow .tag{font-weight:700;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.mgrrow .tag .ic{color:var(--ink2)}.mgrrow input,.mgrrow select{background:var(--input);border:1px solid var(--border);border-radius:var(--r-md);padding:4px 7px;font-size:12px}.mgrrow input.num{width:74px;text-align:right;flex:none;font-family:var(--mono);font-variant-numeric:tabular-nums}.mgrrow .del{margin-left:auto;background:none;border:1px solid var(--border);color:var(--ink2);border-radius:var(--r-md);padding:3px 8px;font-size:11px}.mgrrow .del:hover{border-color:var(--error);color:var(--error)}.vpill{font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--paper-mid);color:var(--ink2)}.vpill.primary{background:var(--paper-deep);color:var(--ink);font-weight:800}.kpiviewbar{display:flex;align-items:center;gap:10px;margin:2px 0 -4px}.kvtoggle{display:inline-flex;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.kvtoggle button{background:var(--card);border:none;border-right:1px solid var(--border);padding:5px 12px;font-size:11px;font-weight:600;color:var(--ink2)}.kvtoggle button:last-child{border-right:none}.kvtoggle button.on{background:var(--ink);color:var(--paper)}.kpiviewbar .spacer{flex:1}.livenote{display:inline-flex;align-items:center;gap:7px;font-size:11px;color:var(--ink2);font-weight:600}.livedot{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px #15803d2e;animation:pulse 2s ease-in-out infinite}@keyframes pulse{50%{box-shadow:0 0 0 5px #15803d0f}}.summary .box .delta{font-size:10px;color:var(--ink2);margin-top:3px;font-family:var(--font);font-weight:600;font-variant-numeric:tabular-nums}.summary .box .vdash{color:var(--ink2)}.livechip{margin-left:auto;font-size:9px;font-weight:800;letter-spacing:.05em;color:#fff;background:var(--success);border-radius:999px;padding:2px 7px}.livestrip{display:flex;flex-wrap:wrap;gap:14px;margin:2px 0 12px;padding:9px 11px;background:var(--paper-mid);border-radius:var(--r-md)}.livestrip .k{display:block;font-size:9px;color:var(--ink2);font-weight:700;text-transform:uppercase;letter-spacing:.03em}.livestrip b{font-weight:800}.livestrip .pl{color:var(--ink2);font-size:11px}.livestrip em{font-style:normal;font-weight:700;font-size:11px}.livestrip em.pos{color:var(--success)}.livestrip em.neg{color:var(--error)}.weights{display:flex;flex-direction:column;gap:10px;margin-top:6px}.wrow{display:grid;grid-template-columns:78px 1fr 48px 64px;align-items:center;gap:10px}.wrow .wl{font-size:12px;font-weight:600}.wrow input[type=range]{accent-color:var(--coral)}.wrow .wv{text-align:right;font-weight:700}.wrow .wd{text-align:right;color:var(--ink2);font-size:11px}.sech{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink2);margin:14px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--paper-mid)}.solarcheck{border:1px solid var(--border);border-radius:var(--r-lg);padding:10px 12px;margin-top:6px;background:var(--paper)}.solarcheck.bad{border-color:var(--error);background:#b91c1c0d}.solarcheck .scrow{display:flex;align-items:baseline;gap:8px;font-size:12px;padding:3px 0}.solarcheck .scrow span:first-child{color:var(--ink2);flex:1}.solarcheck .scrow b{font-weight:700}.solarcheck .scrow .pl{color:var(--ink2);font-size:11px}.solarcheck .scmsg{font-size:11px;font-weight:600;margin-top:6px;color:var(--error)}.solarcheck .scmsg.warn{color:var(--warn)}#pscrim{display:none;position:fixed;inset:0;background:#16170f52;z-index:300}#pscrim.on{display:block}#pmodal{display:none;position:fixed;inset:0;z-index:301;align-items:center;justify-content:center;padding:20px}#pmodal.on{display:flex}#pmodal .pcard{background:var(--card);border:1px solid var(--border);border-radius:var(--r-xl);padding:22px;max-width:400px;width:100%}#pmodal .pt{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:-.01em;margin-bottom:6px}#pmodal .pm{font-size:13px;color:var(--ink2);line-height:1.5;margin-bottom:18px}#pmodal .pact{display:flex;gap:10px;justify-content:flex-end}#scrim{display:none;position:fixed;inset:0;background:#16170f47;z-index:200}#scrim.on{display:block}#drawer{position:fixed;top:46px;right:0;bottom:0;width:420px;max-width:92vw;background:var(--paper);border-left:1px solid var(--border);z-index:201;transform:translate(100%);transition:transform .18s ease;display:flex;flex-direction:column}#drawer.on{transform:none}#drawer .dhead{padding:16px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;background:var(--card)}#drawer .dhead .g{font-size:22px}#drawer .dhead .t{font-weight:700;font-size:15px}#drawer .dhead .st{font-size:12px;color:var(--ink2)}#drawer .dhead .x{margin-left:auto;background:none;border:none;font-size:20px;color:var(--ink2);line-height:1}#drawer .dbody{padding:18px;overflow-y:auto;flex:1}#drawer .preview{background:var(--paper-mid);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px;text-align:center;margin-bottom:18px}#drawer .preview .pv{font-size:26px;font-weight:800;color:var(--ink);font-family:var(--mono);font-variant-numeric:tabular-nums}#drawer .preview .pl{font-size:11px;color:var(--ink2);font-weight:600}#drawer .vbox{border:1px solid var(--error);background:#b91c1c0f;border-radius:var(--r-lg);padding:10px 12px;margin-bottom:14px;font-size:12px;color:var(--error)}#drawer .dfooter{padding:14px 18px;border-top:1px solid var(--border);display:flex;gap:10px;background:var(--card)}.recpanel .ritem{display:flex;gap:10px;align-items:flex-start;padding:11px 0;border-top:1px solid var(--paper-mid)}.recpanel .ritem:first-child{border-top:none}.recpanel .ricon{flex:none;width:26px;height:26px;border-radius:var(--r-md);background:var(--paper-mid);color:var(--ink2);display:inline-flex;align-items:center;justify-content:center;margin-top:1px}.recpanel .rbody{flex:1;min-width:0}.recpanel .rwhat{font-size:12.5px;font-weight:700;color:var(--ink)}.recpanel .rwhy{font-size:11.5px;color:var(--ink2);margin-top:2px}.recpanel .rmeta{display:flex;align-items:center;gap:8px;margin-top:7px;flex-wrap:wrap}.recpanel .rmeta .vid{font-size:10px;color:var(--ink2);font-weight:700;font-family:ui-monospace,monospace}.tierchip{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;padding:2px 8px;border-radius:var(--r-chip);color:#fff}.tierchip.safety{background:var(--error)}.tierchip.req{background:var(--warn)}.tierchip.reco{background:var(--paper-deep);color:var(--ink)}.tierchip.brand{background:var(--ink);color:var(--paper)}.brandtag{font-size:10px;font-weight:700;color:var(--ink2);background:var(--paper-mid);border-radius:var(--r-chip);padding:2px 8px}.brandtag.fallback{color:var(--warn)}.roptout{font-size:10px;color:var(--info);font-weight:600;background:none;border:none;padding:0;text-decoration:underline;cursor:pointer}.roptout:hover{color:var(--coral)}.recpanel .ractions{flex:none;display:flex;gap:8px;align-items:center}.radd{background:var(--coral);color:#fff;border:none;border-radius:var(--r-md);padding:6px 12px;font-size:11px;font-weight:700;display:inline-flex;align-items:center;gap:3px}.radd:hover{background:var(--coral-hover)}.radd .ic{color:#fff;width:auto}.rdismiss{background:none;border:1px solid var(--border);color:var(--ink2);border-radius:var(--r-md);padding:6px 10px;font-size:11px;font-weight:600}.rdismiss:hover{border-color:var(--border-strong);color:var(--ink)}.recclean{display:flex;align-items:center;gap:8px;color:var(--ink2);font-weight:600;font-size:13px}.recclean .ic{color:var(--success)}.rgrouph{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink2);margin:14px 0 2px}.rgrouph:first-child{margin-top:0}.reccount{display:inline-block;min-width:18px;height:18px;line-height:18px;text-align:center;border-radius:999px;font-size:11px;font-weight:800;padding:0 6px;color:#fff;background:var(--coral);margin-left:6px}.node.ghost{cursor:pointer}.node.ghost rect.gbox{fill:var(--paper);stroke:var(--border-strong);stroke-width:1.4;stroke-dasharray:5 4;opacity:.92}.node.ghost:hover rect.gbox{stroke:var(--coral);fill:var(--coral-sel);opacity:1}.node.ghost .glbl{fill:var(--ink2);font-style:italic}.node.ghost .gwatt{fill:var(--ink3)}.node.ghost .gplus{color:var(--coral)}.wire.ghostwire{opacity:.4;stroke-dasharray:3 4}.vfix{flex:none;align-self:center;background:var(--coral);color:#fff;border:none;border-radius:var(--r-md);padding:5px 11px;font-size:11px;font-weight:700;white-space:nowrap}.vfix:hover{background:var(--coral-hover)}.tabbar .badge.rec{background:var(--coral)}.nudge{position:fixed;left:50%;bottom:24px;transform:translate(-50%) translateY(20px);z-index:260;background:var(--ink);color:var(--paper);border-radius:var(--r-lg);padding:12px 16px;display:none;align-items:center;gap:16px;box-shadow:0 8px 24px #16170f47;max-width:92vw}.nudge.on{display:flex;animation:nudgein .22s ease-out forwards}@keyframes nudgein{to{transform:translate(-50%) translateY(0)}}.nudge .ntext{font-size:12.5px;font-weight:600}.nudge .nbtns{display:flex;gap:8px;flex:none}.nudge .nadd{background:var(--coral);color:#fff;border:none;border-radius:var(--r-md);padding:6px 13px;font-size:11px;font-weight:700}.nudge .nadd:hover{background:var(--coral-hover)}.nudge .nnot{background:transparent;color:var(--paper);border:1px solid rgba(247,246,241,.4);border-radius:var(--r-md);padding:6px 11px;font-size:11px;font-weight:600}.nudge .nnot:hover{border-color:var(--paper)}.viewswitch{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--r-md);overflow:hidden;background:var(--card);margin-bottom:18px}.viewswitch button{display:inline-flex;align-items:center;gap:8px;background:var(--card);border:none;border-right:1px solid var(--border);padding:10px 20px;font-size:13px;font-weight:600;color:var(--ink2);font-family:var(--display);letter-spacing:-.01em}.viewswitch button:last-child{border-right:none}.viewswitch button .ic{color:var(--ink3)}.viewswitch button:hover{background:var(--hover)}.viewswitch button.on{background:var(--coral);color:#fff}.viewswitch button.on .ic{color:#fff}#page-systems{display:flex;flex-direction:column}#view-equipment{display:flex;flex-direction:column;gap:16px}.eqsys{padding:16px}.eqsyshead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:2px}.eqsyshead .tag{font-family:var(--display);font-weight:700;letter-spacing:-.01em;font-size:14px;display:inline-flex;align-items:center;gap:7px}.eqsyshead .tag .ic{color:var(--ink2)}.eqbank{margin-top:12px;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.eqbankhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 12px;background:var(--paper-mid)}.eqbankhead.clickable{cursor:pointer}.eqbankhead.clickable:hover{background:var(--paper-deep)}.eqbankhead.loose{background:var(--paper)}.eqbankhead .eqbn{font-weight:700;font-size:12.5px;display:inline-flex;align-items:center;gap:6px}.eqbankhead .eqbn .ic{color:var(--ink2)}.eqbankhead .eqbmeta{font-size:11px;color:var(--ink2);font-variant-numeric:tabular-nums}.eqbankhead .eqedit{margin-left:auto;font-size:11px;font-weight:700;color:var(--info)}.eqbankhead.clickable:hover .eqedit{text-decoration:underline}.eqrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 12px;border-top:1px solid var(--paper-mid)}.eqrow.empty{color:var(--ink2);font-size:12px}.eqrow .eqic{color:var(--ink2);flex:none;display:inline-flex}.eqrow .eqnm{flex:1;min-width:130px;font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eqrow .eqty{font-size:11px;color:var(--ink2);font-weight:600;flex:none;min-width:64px}.eqrow .eqval{font-size:12px;color:var(--ink2);flex:none;min-width:58px;text-align:right;font-variant-numeric:tabular-nums}.eqrow .eqqty{display:inline-flex;align-items:center;gap:2px;flex:none}.eqrow .eqqty button{border:1px solid var(--border);background:var(--card);width:24px;height:24px;border-radius:var(--r-sm);color:var(--ink2);font-weight:700;line-height:1}.eqrow .eqqty button:hover{border-color:var(--border-strong);color:var(--ink)}.eqrow .eqqty .qv{min-width:26px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}.eqrow .eqbtn{border:1px solid var(--border);background:var(--card);color:var(--ink2);border-radius:var(--r-sm);padding:4px 10px;font-size:11px;font-weight:600;flex:none}.eqrow .eqbtn:hover{border-color:var(--border-strong);color:var(--ink)}.eqrow .eqbtn.eqx:hover{border-color:var(--error);color:var(--error)}.modelsplit{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:20px;align-items:start}.modelsplit>#tab-conditions,#model-right{min-width:0}#model-right{display:flex;flex-direction:column;gap:16px}@media (max-width:760px){.modelsplit{grid-template-columns:minmax(0,1fr)}}@media (max-width:900px){.viewswitch{width:100%}.viewswitch button{flex:1;justify-content:center}}.advdisclosure{margin-top:0}.advdisclosure>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--ink);padding:8px 2px;user-select:none;font-family:var(--display);letter-spacing:-.01em}.advdisclosure>summary::-webkit-details-marker{display:none}.advdisclosure>summary:before{content:"▸";font-size:11px;color:var(--ink3);transition:transform .15s ease;display:inline-block}.advdisclosure[open]>summary:before{transform:rotate(90deg)}.advdisclosure .advbody{display:flex;flex-direction:column;gap:16px;margin-top:6px}.highlight-pulse{box-shadow:0 0 0 3px var(--coral-sel);border-color:var(--coral)!important}@keyframes kpiFlash{0%,55%{background:var(--coral-sel)}to{background:transparent}}.summary .box.kpi-changed{animation:kpiFlash .8s ease-out}@keyframes laneIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.lane-enter{animation:laneIn .35s ease-out}@media (prefers-reduced-motion: reduce){.advdisclosure>summary:before{transition:none}.summary .box.kpi-changed,.lane-enter,.wire.flow,.livedot,.nudge.on{animation:none}}@media (max-width:900px){.wrap{padding-left:12px;padding-right:12px}.cfg-grid{display:flex;flex-direction:column;min-width:0}.rpane{order:1;width:100%;min-width:0;max-width:100%}.catalog{order:2;height:auto;max-height:none;width:100%;min-width:0}.boatbar{position:static;top:auto}.cattoggle{cursor:pointer}.cattoggle .chev{display:inline}.catalog.collapsed .chead>*:not(.cattoggle){display:none}.catalog.collapsed .catlist{display:none}.catalog.collapsed .cattoggle{margin-bottom:0}.catalog.collapsed .cattoggle .chev{transform:rotate(-90deg)}.catlist{max-height:55vh}.diagram-wrap{max-height:56vh;max-width:100%}.tabbar{display:flex;flex-wrap:nowrap;overflow-x:auto;width:100%;align-self:stretch;-webkit-overflow-scrolling:touch}.tabbar button{flex:0 0 auto;white-space:nowrap}.bankcards{grid-template-columns:1fr}}@media (min-width:421px) and (max-width:760px){.summary{display:grid!important;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:10px}.summary .box,.summary .box.lead{min-width:0;flex:none;padding:12px 14px}.summary .box.lead .v{font-size:26px}}@media (max-width:420px){.summary{display:grid!important;grid-template-columns:1fr;gap:10px}.summary .box,.summary .box.lead{min-width:0;flex:none}.summary .box.lead .v{font-size:26px}}
