:root{color-scheme:dark;--bg:#08131b;--panel:#0c1821;--deep:#0a141c;--border:#1c313c;--border2:#203944;--muted:#76929e;--text:#e4eef0;--cyan:#49dfd2;--amber:#f4b96a;--font:Inter,'Segoe UI',Arial,sans-serif;--mono:'Cascadia Code','SFMono-Regular',Consolas,monospace}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px}body{overflow-x:hidden}button,select,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}button:disabled{opacity:.4;cursor:not-allowed}.application{min-height:100vh;background:radial-gradient(ellipse at 48% 40%,#0e2630 0,#08131b 80%)}
.topbar{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 29px;border-bottom:1px solid var(--border);background:#0a161e;gap:18px}.brand{display:flex;align-items:center;gap:13px;min-width:240px}.brand-symbol{display:inline-flex;align-items:center;justify-content:center;color:var(--cyan);border:1px solid #347d7a;background:#103638;font-size:30px;width:41px;height:41px;line-height:1}.brand strong{font-size:16px;font-weight:800;letter-spacing:.13em;white-space:nowrap}.brand-accent{font-weight:400;color:var(--cyan)}.brand small{display:block;color:#7f9ea9;font-size:9px;letter-spacing:.22em;margin-top:5px}.top-center{display:flex;align-items:center;gap:10px;color:#82a1ac;letter-spacing:.13em;font:10px var(--mono)}.top-center strong{color:#c1dae0;font-weight:600}.live-led{width:6px;height:6px;border-radius:50%;background:#54e8b8;box-shadow:0 0 0 4px #164237,0 0 10px #51efc6}.live-led.off{background:#ef9c77;box-shadow:0 0 0 4px #442c2e}.tiny-line{height:13px;width:1px;background:#31505a;margin:0 10px}.top-actions{display:flex;gap:7px}.iconbtn{background:#0e2029;border:1px solid #24404b;color:#adcad0;padding:10px 11px;font:10px var(--mono);letter-spacing:.06em}.iconbtn span{margin-left:4px}.iconbtn:hover{color:var(--cyan);border-color:#39736f}
.layout{display:grid;grid-template-columns:275px minmax(0,1fr) 260px;min-height:calc(100vh - 74px);margin:0 auto;max-width:2050px}.panel{padding:28px 22px;background:linear-gradient(160deg,#0d1d26,#09151e);min-width:0}.controls{border-right:1px solid var(--border)}.right-panel{border-left:1px solid var(--border)}.section-kicker{display:flex;align-items:center;justify-content:space-between;color:var(--cyan);font:10px var(--mono);letter-spacing:.17em}.number{color:#557782;letter-spacing:.07em}.panel h2{font-size:26px;letter-spacing:-.04em;font-weight:650;margin:11px 0 26px}.panel h2 em{font-style:normal;color:#9aadb6;font-weight:330}.inputblock label,.subheading,.aside-sub{display:block;font:10px var(--mono);letter-spacing:.1em;color:#9cb2bc;margin-bottom:13px}.inputblock select,select#speed{width:100%;appearance:none;background:#10242e;color:#e5f2f0;border:1px solid #29454e;border-radius:2px;padding:12px 10px;min-width:0;cursor:pointer}.inputblock select{font-size:11px}.inputblock{margin-bottom:29px}.subheading,.aside-sub{border-top:1px solid #20343d;padding-top:20px;margin-top:20px;margin-bottom:20px}.subheading.margin-top{margin-top:28px}.slider-stack{display:flex;flex-direction:column;gap:19px}.slider-unit label{display:flex;justify-content:space-between;gap:6px;color:#adbec5;font-size:11.5px;margin:0 0 9px}.slider-unit output{color:#e7f1ed;font:11px var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:3px;background:linear-gradient(90deg,var(--cyan) 0,var(--cyan) var(--progress,50%),#29404a var(--progress,50%),#29404a 100%);border-radius:2px;cursor:ew-resize}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:11px;border:2px solid var(--cyan);border-radius:1px;background:#09161e;box-shadow:0 0 8px #3de1d37a}input[type=range]::-moz-range-thumb{width:10px;height:10px;border:2px solid var(--cyan);border-radius:1px;background:#09161e}.preset-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.preset{background:#0c2029;border:1px solid #2a4650;color:#9fb6bf;font:10px var(--mono);padding:11px 3px}.preset:hover,.preset.selected{color:#8ffef0;border-color:var(--cyan);background:#133b41}.hint-text{font-size:10.5px;line-height:1.7;color:#708d98;margin-top:32px}.hint-symbol{color:var(--cyan);margin-right:4px}
.center-area{min-width:0;padding:18px 20px 22px;background:linear-gradient(160deg,#0b1c24,#08141d)}.viewer{height:min(52vh,530px);min-height:340px;position:relative;overflow:hidden;border:1px solid #1b3742;background:radial-gradient(ellipse at 60% 40%,#15313c,#091923 80%)}#webgl{display:block;width:100%;height:100%;cursor:grab;touch-action:none}#webgl.dragging{cursor:grabbing}.viewer-top,.viewer-bottom{position:absolute;display:flex;align-items:center;gap:10px;pointer-events:none}.viewer-top{top:24px;left:25px;right:25px;justify-content:space-between}.viewer-top .vline{font:10px var(--mono);color:var(--cyan);letter-spacing:.1em}.viewer-top small{font:9px var(--mono);color:#8ca5ad;margin-left:3px}.teal-square{display:inline-block;background:var(--cyan);width:6px;height:6px;margin-right:6px;box-shadow:0 0 7px var(--cyan)}.frame-tag{font:9px var(--mono);letter-spacing:.08em;color:#76909b}.viewer-bottom{bottom:21px;left:24px;color:#7f9aa5;font:9px var(--mono);letter-spacing:.07em}.dot{color:var(--cyan)}.crosshair-icon{color:var(--cyan);font-size:19px;line-height:0}.viewer-corner{position:absolute;right:24px;bottom:22px;display:flex;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:none;font:10px var(--mono);color:var(--cyan);letter-spacing:.07em}.viewer-corner span{color:#7f9aa5}.viewport-axis{position:absolute;right:26px;top:69px;pointer-events:none;font:11px var(--mono);color:#5d8f99}.viewport-axis span{color:var(--cyan)}.error-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;background:#06151bea;color:#ffc997;padding:35px;font:14px var(--mono);z-index:10}.error-overlay[hidden]{display:none}
.transport{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 0;border-bottom:1px solid var(--border)}.transport-buttons,.push-group,.sim-speed{display:flex;align-items:center;gap:8px}.play-btn,.transport-btn,.push-btn{height:36px;border:1px solid #294a51;background:#11242d;color:#afc8d0;font:10px var(--mono);letter-spacing:.08em;padding:0 11px;white-space:nowrap}.play-btn{background:var(--cyan);border-color:var(--cyan);color:#0b2227;font-weight:800;min-width:91px}.play-btn:hover{background:#95fff0}.transport-btn:hover,.push-btn:hover{border-color:var(--cyan);color:var(--cyan)}.push-group>span,.sim-speed>span{font:9px var(--mono);color:#668994;letter-spacing:.08em;white-space:nowrap}.push-btn{border-color:#476047;color:#c7cbb3}#speed{padding:9px 8px;width:72px;font:10px var(--mono)}.section-title{display:flex;align-items:center;justify-content:space-between;color:#d7e6e7;font:10px var(--mono);letter-spacing:.12em;padding:18px 0 13px}.section-title>span:last-child{color:#678a95;font-size:9px}.section-title b{color:var(--cyan)}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #203844;border-left:1px solid #203844}.stat{min-width:0;padding:15px 14px 14px;border-right:1px solid #203844;border-bottom:1px solid #203844;background:#0d2029}.stat-label{font:9px var(--mono);letter-spacing:.09em;color:#7f9ca6;white-space:nowrap}.stat-label span{float:right;color:#58747d}.stat-value{font:27px var(--mono);font-weight:500;letter-spacing:-.06em;margin:10px 0 6px;color:#e5f0ef;white-space:nowrap;font-variant-numeric:tabular-nums}.stat-value span{font:11px var(--mono);margin-left:5px;color:#688c97;letter-spacing:0}.stat-value.teal{color:var(--cyan)}.stat-value.amber{color:var(--amber)}.stat-bottom{font:9px var(--mono);color:#668795;letter-spacing:.05em}.chart-panel{padding-top:6px}.chart-menu{display:flex;gap:3px}.chart-tab{font:9px var(--mono);background:transparent;color:#6e94a0;border:1px solid transparent;padding:6px 10px;letter-spacing:.06em}.chart-tab.active{border-color:#28766c;color:var(--cyan);background:#153037}.chart-tab:hover{color:var(--cyan)}#chart{display:block;width:100%;height:172px;border:1px solid #203b45;background:#0b1b24}.chart-legend{display:flex;justify-content:space-between;align-items:center;padding:10px 0;color:#7895a0;font:9px var(--mono);letter-spacing:.04em}.chart-legend span{white-space:nowrap}.swatch{display:inline-block;width:15px;height:2px;vertical-align:middle;margin-right:6px}.swatch.cyan{background:var(--cyan)}.swatch.white{background:#a7d3e0}.swatch.amber{background:var(--amber)}
.health-card{display:flex;align-items:center;gap:13px;padding:15px 12px;border:1px solid #23504d;background:#11302d}.health-light{width:9px;height:9px;background:#5df9cc;box-shadow:0 0 9px #46dac9;border-radius:50%;flex:0 0 auto}.health-light.fallen{background:#ff8c7e;box-shadow:0 0 10px #ff7561}.health-card>div:last-child{font:11px var(--mono);color:#a6f9dd;letter-spacing:.04em}.health-card small{display:block;color:#75a59d;font-size:9px;margin-top:7px}.aside-sub{margin-top:28px}.battery-line,.spec-row{display:flex;justify-content:space-between;align-items:center;gap:9px;color:#9ab1bb;font-size:11px;margin-bottom:10px}.battery-line strong{font:12px var(--mono);color:var(--cyan)}.battery-line.small{margin-top:13px;color:#6d8b97;font-size:10px}.battery-line.small strong{font-size:10px;color:#bcced2}.battery-bar{background:#244049;height:7px;border:1px solid #244048}.battery-bar i{height:100%;width:100%;display:block;background:linear-gradient(90deg,#278e90,#6dedcb);transition:width .2s}.spec-row{padding:10px 0;border-bottom:1px solid #1a313a;margin:0;align-items:flex-start}.spec-row span{font-size:10px;color:#718e98}.spec-row b{font:9px var(--mono);font-weight:500;color:#d2e0e2;text-align:right;max-width:122px;line-height:1.5}.event-log{height:180px;overflow:auto;border:1px solid #213a44;background:#081720;padding:10px;font:10px/1.65 var(--mono);color:#85a9b1}.event-entry{padding:4px 0;border-bottom:1px solid #152d35}.event-entry b{color:var(--cyan);font-weight:500;margin-right:6px}.event-entry.warn b{color:#ffc079}.event-entry span{color:#b6c8ca}.lab-footer{display:flex;justify-content:space-between;border-top:1px solid #29414b;margin-top:33px;padding-top:12px;font:8px var(--mono);color:#52717d;gap:6px}
@media(max-width:1390px){.layout{grid-template-columns:250px minmax(0,1fr) 235px}.panel{padding:23px 17px}.center-area{padding:14px}.transport{flex-wrap:wrap}.push-group{margin-left:auto}.stat-value{font-size:23px}.viewer{height:48vh}.top-center{display:none}}
@media(max-width:1130px){.layout{grid-template-columns:230px minmax(0,1fr)}.right-panel{grid-column:1/-1;border-left:none;border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(3,1fr);gap:12px 22px}.right-panel>.section-kicker,.right-panel>h2,.right-panel>.lab-footer{grid-column:1/-1}.right-panel .aside-sub{margin-top:0}.right-panel .health-card{grid-column:1/-1;max-width:480px}.right-panel .event-log{height:115px;grid-column:1/-1}.right-panel .aside-sub{border:0;padding:0}.right-panel .spec-row{grid-column:2/4}.viewer{height:390px}}
@media(max-width:760px){.layout{display:flex;flex-direction:column}.topbar{padding:0 13px;height:64px}.brand{min-width:0}.brand-symbol{width:34px;height:34px;font-size:24px}.brand strong{font-size:12px}.brand small{font-size:7px}.iconbtn{padding:8px}.iconbtn span{display:none}.controls{border-right:none;border-bottom:1px solid var(--border);display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}.controls>.section-kicker,.controls>h2,.controls>.hint-text{grid-column:1/-1}.controls h2{margin:0}.controls>.subheading{grid-column:1/-1;margin:4px 0;padding-top:10px}.controls>.slider-stack{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,1fr)}.controls>.preset-row{grid-column:1/-1}.controls>.inputblock{grid-column:1/-1;margin:0}.center-area{padding:12px}.viewer{height:360px;min-height:320px}.transport{justify-content:center}.push-group{margin-left:0}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.viewer-top .frame-tag{display:none}.viewer-bottom{font-size:8px}.right-panel{display:block}.right-panel>.aside-sub{margin-top:22px;border-top:1px solid #20343d;padding-top:16px}.right-panel .event-log{height:120px}.stat-value{font-size:25px}}
@media(max-width:440px){.controls>.slider-stack{grid-template-columns:1fr 1fr}.viewer{height:310px;min-height:285px}.viewport-axis{display:none}.transport{justify-content:flex-start}.transport-buttons{width:100%}.push-group>span{display:none}.push-group{margin-left:0}.sim-speed{margin-left:auto}.stat{padding:12px 10px}.stat-value{font-size:20px}.stat-label{font-size:8px}.chart-legend{font-size:8px}.chart-menu{gap:0}.chart-tab{padding:4px 5px}.viewer-top{top:12px;left:13px}.viewer-bottom{left:12px;bottom:12px}.viewer-corner{right:10px;bottom:48px}}
