:root{color:#10263e;font-synthesis:none;--teal:#009c8b;--navy:#10263e;--border:#ccd6e0;--muted:#5a7084;background:#fff;font-family:Inter,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}main{max-width:1680px;margin:auto;padding:0 24px 24px}header{border-bottom:1px solid var(--border);align-items:center;gap:25px;min-height:88px;display:flex}.brand{letter-spacing:-1.6px;border-right:1px solid #6e8294;padding-right:27px;font-size:38px;font-weight:850;line-height:1.2}h1{margin:0;font-size:24px;font-weight:550}.demo-label{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:14px}.toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:15px 0;display:flex}button,select,input{font:inherit}button{color:var(--navy);cursor:pointer;background:#f4f8fb;border:1px solid #b7c6d3;border-radius:5px;padding:9px 15px;font-weight:600;transition:background .15s}button:hover{background:#e6eef4}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--teal);border-color:var(--teal);color:#fff}button.primary:hover{background:#007f73}.stop{color:#b94450;background:#fff}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline-offset:2px;outline:3px solid #72b9ef}select,input{color:var(--navy);background:#fff;border:1px solid #b9c8d4;border-radius:4px;padding:8px 10px}label.speed-control,label.scenario-control{align-items:center;gap:12px;margin-left:8px;font-weight:600;display:flex}.speed-control{border-left:1px solid var(--border);padding-left:20px}.scenario-control{flex:1;min-width:280px}.scenario-control select{flex:1;max-width:380px}.workspace{grid-template-columns:minmax(0,1fr) 300px;gap:18px;padding-top:18px;display:grid}.main-panel{border:1px solid #aebfcd;border-radius:6px;min-width:0;overflow:hidden}.state-banner{align-items:center;gap:13px;min-height:67px;padding:16px 20px 8px;display:flex}.state-banner h2{white-space:nowrap;letter-spacing:-.6px;margin:0;font-size:25px}.state-banner p{border-left:1px solid #b9c8d4;margin:0;padding-left:16px;font-size:14px;line-height:1.5}.state-dot{background:var(--teal);border-radius:50%;width:13px;min-width:13px;height:13px}.state-dot.amber{background:#e3a134}.state-dot.fault{background:#d95260}.clock-line{color:var(--muted);flex-wrap:wrap;gap:18px;min-height:24px;padding:0 20px;font-size:12px;display:flex}.manual-notice{color:#b2771b}.diagram-wrap{padding:0 10px;overflow-x:auto}.device-diagram{width:100%;min-width:650px;max-height:490px;display:block}.device-diagram text{text-anchor:middle;fill:#133149;font-family:inherit;font-size:13px}.device-diagram .device-title{font-size:17px;font-weight:750}.device-diagram .device-small{font-size:13px;font-weight:600}.device-diagram .small{fill:#4a647c;font-size:10px}.device-diagram .terminal{font-size:23px;font-weight:700}.device-diagram .battery-voltage{font-size:18px;font-weight:750}.device-diagram .charger-digits{fill:#2bf0b7;font:700 22px Consolas,monospace}.device-diagram .controller-label{fill:#fff;font-size:14px;font-weight:600}.device-diagram .controller-small{fill:#c4d2df;font-size:9px}.device-diagram .relay-label{fill:#fff;font-size:9px}.device-diagram .on-text{fill:#b77a14;font-size:12px;font-weight:700}.wire-base{stroke:#cfdae2;stroke-width:8px;fill:none;stroke-linejoin:round}.wire.active .wire-base{stroke:#009c8b}.wire .flow{stroke:#c4ffee;stroke-width:4px;fill:none;stroke-dasharray:1 16;stroke-linecap:round;animation:1s linear infinite flow}.wire.amber .wire-base{stroke-width:3px}.wire.amber.active .wire-base{stroke:#dca03d}.wire.amber .flow{stroke:#ffcc6e;stroke-width:2px;stroke-dasharray:2 12}.wire-label{font-weight:600;fill:#33516a!important;font-size:12px!important}.sense-path path{stroke:#2898cc;fill:none;stroke-width:2px;stroke-dasharray:6 5}.sense-path text{fill:#297caa;font-size:12px}.flywheel.spinning{animation:.8s linear infinite spin}.flywheel.cranking{animation:2s linear infinite spin}.heartbeat{animation:1.5s ease-in-out infinite pulse}.exhaust{fill:#c1ced9;animation:1.2s ease-out infinite exhaust}.paused *{animation-play-state:paused!important}@keyframes flow{to{stroke-dashoffset:-34px}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.3}}@keyframes exhaust{to{opacity:0;transform:translateY(-9px)}}.metrics{border-block:1px solid #aebfcd;grid-template-columns:repeat(5,1fr);margin:0 14px;padding:12px 0;display:grid}.metrics>div{text-align:center;border-right:1px solid #b8c8d6;flex-direction:column;gap:4px;display:flex}.metrics>div:last-child{border:0}.metrics span{font-size:12px;font-weight:650}.metrics strong{color:#008b7d;letter-spacing:-.6px;font-size:24px}.chart-section{border-bottom:1px solid #b7c8d5;margin:0 14px}.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-heading h2{margin:14px 0 8px;font-size:16px;font-weight:700}.section-heading h2 span{color:var(--muted);margin-left:5px;font-size:12px;font-weight:400}.trace-tabs{gap:3px;display:flex}.trace-tabs button{background:0 0;border-color:#0000;padding:5px 9px;font-size:11px}.trace-tabs button.selected{color:#007d70;background:#e0f4ef}.live-chart{width:100%;display:block;overflow:visible}.grid{stroke:#e6edf2;stroke-width:1px;fill:none}.axis-text{fill:#637b90;font-size:11px}.threshold-label{paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;font-size:10px;font-weight:600}.events{padding:0 18px 15px}.events .section-heading>span{color:var(--muted);font-size:12px}.events ol{grid-template-columns:1fr 1fr;gap:10px 15px;margin:0;padding:2px 0 0;list-style:none;display:grid}.events li{grid-template-columns:8px 52px 1fr;align-items:baseline;gap:8px;font-size:11px;display:grid}.event-dot{background:var(--teal);border-radius:50%;width:6px;height:6px}.events time{color:var(--muted);font-variant-numeric:tabular-nums}.settings{border:1px solid #aebfcd;border-radius:6px;align-self:start;padding-bottom:16px}.settings>h2{border-bottom:1px solid var(--border);margin:0;padding:18px;font-size:20px}.settings form{padding:2px 15px 0}.field{border-bottom:1px solid #e3eaf0;grid-template-columns:1fr 84px 21px;align-items:center;gap:8px;padding:10px 0;font-size:12px;display:grid}.field input{font-variant-numeric:tabular-nums;width:84px;min-width:0;padding:7px 6px;font-size:14px}.unit{color:#526c83;font-size:12px}.text-button{color:#007d70;text-align:left;background:0 0;border:0;padding:0;font-size:11px}.deployment-compare{margin-top:12px;line-height:1.5}.apply{width:100%;margin-top:13px;font-size:13px}.field-note{color:var(--muted);margin:8px 0 14px;font-size:11px;line-height:1.5}.settings details{border-block:1px solid var(--border);margin:13px 15px;padding:12px 0;font-size:12px}.settings summary{cursor:pointer;font-weight:650}.button-pair{gap:7px;display:flex}.button-pair button{padding:7px 10px;font-size:11px}.checkbox{align-items:flex-start;gap:6px;margin:12px 15px;font-size:11px;line-height:1.5;display:flex}.checkbox input{accent-color:var(--teal)}.model-note{border-top:1px solid var(--border);margin:18px 16px 0;padding-top:10px}.model-note h3{margin:4px 0;font-size:13px}.model-note p{color:var(--muted);font-size:11px;line-height:1.6}.model-note b{color:#18394f}.history-section{border-top:1px solid #acbfce;margin-top:23px;padding:0 4px 15px}.history-section .section-heading{align-items:center;min-height:55px}.history-section h2{margin:0}.empty-history{color:var(--muted);margin:10px 0;font-size:13px;line-height:1.6}.table-scroll{overflow-x:auto}table{border-collapse:collapse;text-align:left;white-space:nowrap;width:100%;font-size:12px}th{color:var(--muted);border-bottom:1px solid var(--border);padding:10px;font-weight:550}td{border-bottom:1px solid #e8edf2;padding:12px 10px}td strong{color:#007e72}footer{border-top:1px solid #aebfcd;flex-wrap:wrap;align-items:center;gap:15px;padding:16px 0;font-size:12px;display:flex}footer>span{color:var(--muted);flex:1}a{color:#087b91;text-underline-offset:3px;text-decoration-thickness:1px}.validation{border-top:1px solid var(--border);padding:14px 0;font-size:12px}.validation summary{cursor:pointer;font-weight:650}.validation-body{color:var(--muted);grid-template-columns:1fr 1fr;gap:30px;line-height:1.7;display:grid}.validation-body h3{color:var(--navy);font-size:14px}.error-banner{color:#aa3242;background:#fff5f5;border:1px solid #eeb3b9;padding:12px;font-size:13px}@media (width>=1500px){.workspace{grid-template-columns:minmax(0,1fr) 340px}.field{grid-template-columns:1fr 100px 23px;font-size:13px}.field input{width:100px}.model-note p{font-size:12px}.diagram-wrap{padding:0 20px}}@media (width<=1150px){main{padding-inline:15px}.workspace{grid-template-columns:minmax(0,1fr) 280px;gap:12px}.state-banner{flex-wrap:wrap;gap:8px}.state-banner p{border:0;width:100%;padding-left:22px}.state-banner h2{font-size:22px}h1{font-size:20px}.brand{font-size:32px}.demo-label{font-size:11px}.toolbar{gap:7px}.toolbar>button{padding:9px 10px;font-size:12px}.scenario-control select{font-size:12px}.speed-control{padding-left:12px}.metrics strong{font-size:20px}.metrics span{font-size:10px}.events ol{grid-template-columns:1fr}.events li{font-size:12px}}@media (width<=850px){main{padding-inline:12px}header{flex-wrap:wrap;gap:15px;min-height:80px;padding:15px 0}.brand{padding-right:16px;font-size:30px}h1{font-size:17px}.demo-label{flex-basis:100%;margin:0;font-size:11px}.workspace{grid-template-columns:1fr}.settings{margin-top:3px}.settings form{grid-template-columns:1fr 1fr;column-gap:25px;display:grid}.settings .apply,.settings .field-note,.deployment-compare{grid-column:1/-1}.settings .model-note{display:none}.settings>h2{padding:14px 16px}.settings .checkbox,.state-banner p{font-size:12px}.history-section .section-heading{flex-wrap:wrap;padding:12px 0}.section-heading h2 span{margin:4px 0;display:block}.validation-body{grid-template-columns:1fr;gap:5px}footer{align-items:flex-start}footer>span{flex-basis:100%;order:3}}@media (width<=520px){.toolbar{gap:8px}.toolbar>button{flex:1}.toolbar .speed-control{border:0;min-width:130px;margin:0;padding:0}.scenario-control{flex-basis:100%;width:100%;min-width:0;font-size:12px;margin-left:0!important}.scenario-control select{min-width:0;max-width:none}.metrics{grid-template-columns:repeat(3,1fr);row-gap:12px}.metrics>div:nth-child(3){border:0}.metrics strong{font-size:19px}.metrics span{font-size:10px}.settings form{grid-template-columns:1fr}.state-banner{padding-inline:12px}.clock-line{padding:0 12px;font-size:10px}.chart-section{margin:0 7px}.section-heading h2{font-size:13px}.trace-tabs button{padding:4px 6px;font-size:10px}.brand{font-size:29px}h1{font-size:15px}.events li{grid-template-columns:6px 44px 1fr;font-size:10px}.diagram-wrap:after{content:"Swipe diagram to explore →";text-align:right;color:#6b8295;padding:2px 8px 8px;font-size:10px;display:block}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important}}.detection-label{color:#927020;margin:0 0 0 6.4%;font-size:10px}
