main{max-width:1450px;margin:auto;padding:24px;display:grid;gap:20px}.panel{padding:24px}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}small,label{display:block;color:#8ca4b5;font-size:11px;letter-spacing:1.5px}.summary strong{display:block;color:#6ee7df;font-size:28px;margin-top:12px;font-variant-numeric:tabular-nums}.modules{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:24px}.module{padding:22px 16px;min-height:145px;text-align:left;display:flex;flex-direction:column;gap:12px}.module b{font-size:14px}.module span{color:#8ca4b5;font-size:12px}.module .load{color:#6ee7df;font-size:20px}.sectiontitle{align-items:center}.controls{display:grid;grid-template-columns:1fr 2fr;gap:60px;margin:35px 0}.relay{display:flex;align-items:center;justify-content:center;gap:18px;width:100%;height:90px;margin-top:12px;font-size:20px}i{display:inline-block;width:18px;height:18px;border-radius:50%;background:#ed6371;box-shadow:0 0 12px #ed637155}i.on{background:#6ee7a0;box-shadow:0 0 15px #6ee7a066}input[type=range]{width:100%;margin:24px 0}.limits,.readings{display:flex;justify-content:space-between;color:#8ca4b5;font-size:12px}.gauges{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;margin:30px 0}.dial{--value:0;position:relative;width:180px;height:180px;margin:22px auto;border-radius:50%;background:conic-gradient(from 225deg,#6ee7df calc(var(--value)*2.7deg),#203a49 0deg 270deg,transparent 270deg);display:grid;place-items:center}.dial:before{content:'';position:absolute;inset:12px;border-radius:50%;background:#111c29}.dial strong{position:relative;font-size:26px;color:#6ee7df;font-variant-numeric:tabular-nums}.demoSetting{border-top:1px solid #294454;margin-top:24px;padding-top:24px}#notice{color:#efc574;min-height:24px}#warp{display:flex;align-items:center;gap:20px}#warp label{flex:1}progress{width:100%;margin:10px 0}#fixed{align-self:center;color:#8ca4b5}output{float:right;color:#6ee7df}[hidden]{display:none!important}@media(max-width:850px){.modules{grid-template-columns:repeat(2,1fr)}.controls{gap:20px}.dial{width:130px;height:130px}.dial strong{font-size:20px}}@media(max-width:550px){.summary,.controls{grid-template-columns:1fr 1fr}.gauges{grid-template-columns:1fr}.modules{grid-template-columns:1fr}.brand b{font-size:12px}#warp{flex-wrap:wrap}}
main{grid-template-columns:minmax(0,1fr)}.summary{min-width:0}#overview,#detail{min-width:0}

main{grid-template-columns:250px minmax(0,1fr);align-items:start}.summary{grid-template-columns:1fr;text-align:center;gap:12px}.summary .dial{width:150px;height:150px;margin:14px auto}.summary strong{font-size:24px;margin:0}.balance-note{border-top:1px solid #294454;padding-top:16px;font-size:11px;color:#8ca4b5}.balance-note span{display:block;margin-top:8px;color:#6ee7df}.modules{gap:12px}.module{min-height:132px;padding:16px 12px}.module b{font-size:12px}@media(max-width:1000px){main{grid-template-columns:210px minmax(0,1fr)}.modules{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){main{grid-template-columns:1fr}.summary{grid-template-columns:1fr}.modules{grid-template-columns:repeat(2,1fr)}}

.module.relay-enabled{background:#102c25;border-color:#286a4e;color:#72e6a3}.module.relay-disabled{background:#301820;border-color:#803947;color:#f38593}.module b{color:inherit;min-height:18px}.mini-gauges{display:flex;justify-content:center;gap:24px;width:100%;text-align:center}.mini-dial{position:relative;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(from 225deg,#6ee7df calc(var(--value)*2.7deg),#284048 0deg 270deg,transparent 270deg)}.mini-dial:before{content:'';position:absolute;inset:5px;border-radius:50%;background:#102c25}.relay-disabled .mini-dial:before{background:#301820}.mini-dial strong{position:relative;color:#6ee7df;font-size:13px;font-variant-numeric:tabular-nums}.mini-gauges small{font-size:8px;letter-spacing:.7px;color:inherit;margin-top:4px}.module{gap:12px;min-height:135px}

#overview,#detail{height:var(--summary-height,720px);box-sizing:border-box;overflow:hidden;display:flex;flex-direction:column}#overview>.sectiontitle,#detail>.sectiontitle{flex-shrink:0}.modules{overflow-y:auto;overflow-x:hidden;min-height:0;align-content:start;padding-right:8px;scrollbar-color:#37645d #101f29;scrollbar-width:thin}.module{flex-shrink:0}#detail{overflow-y:auto;overflow-x:hidden}#detail .controls{flex-shrink:0;margin:24px 0;grid-template-columns:1fr 1.4fr;gap:32px;align-items:center}#detail .relay{height:100px}#detail .gauges{order:10;margin-top:auto;margin-bottom:0;padding-top:24px;flex-shrink:0}#detail .gauges .dial{width:150px;height:150px}#detail .readings{gap:16px;flex-wrap:wrap}#detail .demoSetting{margin-top:12px;padding-top:12px}#detail .demoSetting input{margin:12px 0}#detail #notice{margin:8px 0}#detail #warp{flex-shrink:0}@media(max-width:650px){#overview,#detail{height:720px}.gauges{grid-template-columns:repeat(3,minmax(0,1fr))}#detail .gauges .dial{width:80px;height:80px}#detail .dial strong{font-size:14px}#detail .controls{grid-template-columns:1fr;gap:12px}}

#demoDialog{width:min(620px,90vw);background:#111c29;color:#c9dce5;border:1px solid #37645d;border-radius:8px;padding:28px}#demoDialog::backdrop{background:#000b}#demoDialog h2{color:#6ee7df;margin-top:0}#demoDialog form{text-align:right;margin-top:22px}#demoDialog #warp{flex-wrap:wrap}footer>div{display:flex;gap:10px;flex-wrap:wrap}

main{max-width:1800px;grid-template-columns:210px minmax(0,1fr) 210px;gap:16px;padding:20px}.panel{padding:18px}.battery-panel{text-align:center;height:var(--summary-height,720px);box-sizing:border-box}.battery-panel>.sectiontitle{margin-bottom:28px}.battery-panel .dial{width:140px;height:140px;margin:18px auto 28px}.battery-panel .dial strong{font-size:23px}.battery-panel .relay{height:64px;font-size:11px;gap:8px}.battery-panel p{font-size:11px;color:#8ca4b5;line-height:1.6}.mini-gauges{gap:14px}.module b{font-size:11px}.summary .dial{width:140px;height:140px}.modules{gap:10px}.battery-panel small{font-size:10px}#demoDialog input[type=number]{display:block;margin:12px 0;padding:8px}#demoDialog label{margin:12px 0}@media(max-width:1100px){main{grid-template-columns:180px minmax(0,1fr) 180px}.modules{grid-template-columns:repeat(2,1fr)}}@media(max-width:750px){main{grid-template-columns:1fr}.battery-panel{height:auto}}

.connection-lights{display:flex;justify-content:center;gap:18px;margin:0 0 22px}.connection-lights small{font-size:8px;margin-top:8px;letter-spacing:.5px}.connection-lights i{width:16px;height:16px}.battery-panel>.sectiontitle{margin-bottom:18px}.battery-panel .dial{margin:12px auto 20px}

footer{flex-wrap:wrap;gap:16px}.footer-settings{align-items:center}.footer-settings label{display:flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.4px;margin:0}.footer-settings input[type=number]{width:75px;padding:8px;background:#102330;color:#6ee7df;border:1px solid #37645d;border-radius:4px}.footer-settings input[type=checkbox]{accent-color:#6ee7df}

#detail .gauges{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}#detail .gauges .dial{width:120px;height:120px}#detail .gauges small{font-size:9px}#detail .gauges strong{font-size:22px}@media(max-width:1100px){#detail .gauges{grid-template-columns:repeat(2,minmax(0,1fr))}}

#overview>.sectiontitle{gap:12px;flex-wrap:wrap}.relay-shortcuts{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.relay-shortcuts button{padding:9px 10px;font-size:10px;letter-spacing:.2px}

.module.relay-underpowered{background:#332b12;border-color:#b99535;color:#ffe080}.relay-underpowered .mini-dial:before{background:#332b12}

.summary .dial{width:108px;height:108px;margin:10px auto}.summary .dial strong{font-size:20px}.bus-thermal{text-align:center;margin-top:12px}.thermal-gauge{position:relative;width:150px;margin:auto}.thermal-gauge svg{width:100%;overflow:visible}.thermal-gauge path{fill:none;stroke-width:10}.thermal-gauge strong{display:block;color:#6ee7df;font-size:21px;margin-top:-16px}.thermal-markers{font-size:9px;margin:12px 0;color:#a9c3cd}.bus-ratings{font-size:10px;line-height:1.9;margin:10px 0}.bus-ratings b{color:#6ee7df}#thermalStatus{font-size:10px;font-weight:bold;min-height:24px}#thermalStatus.warn{color:#f1c451}#thermalStatus.danger{color:#ff5364;animation:thermal-pulse 1s infinite}@keyframes thermal-pulse{50%{opacity:.45}}

.relay-shortcuts button[aria-pressed]::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:#ef6770;margin-right:7px}.relay-shortcuts button.quick-on::before{background:#6eec9f}.relay-shortcuts button.quick-on{border-color:#6eec9f;color:#6eec9f}
