*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f5f7;--surface:#fff;--border:#d0d3d9;--border-strong:#8d929c;--text:#111;--text-mid:#444;--text-dim:#7a7f89;--accent:#2d558f;--accent-dk:#1f3d6b;--danger:#c4261a;--ok:#0a8a45;--warn:#b97400;--plot-bg:#0a0a0f;--radius:2px;--radius-m:3px;--header-h:52px;--footer-h:28px;--stage-h:52dvh;--mono:"Cascadia Code", "Fira Code", Consolas, "Courier New", monospace;--sans:Inter, system-ui, -apple-system, "Segoe UI", sans-serif}html{font-family:var(--sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-size:14px;line-height:1.4}body{overflow-x:hidden}a{color:var(--accent)}button,select,input{font:inherit;color:inherit}#app{flex-direction:column;height:100dvh;min-height:0;display:flex}main{grid-template-columns:minmax(0, 1fr) var(--side-w,390px);flex:1;gap:12px;min-height:0;padding:8px 12px 10px;display:grid}.stage{flex-direction:column;gap:8px;min-width:0;min-height:0;display:flex}.sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);flex-direction:column;min-height:0;display:flex;position:relative;box-shadow:0 1px 3px #0000000f}.tab-body{flex:1;min-height:0;padding:10px;overflow-y:auto}footer{height:var(--footer-h);color:var(--text-dim);background:var(--surface);border-top:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;padding:0 16px;font-size:11px;display:flex}#app-header{height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);z-index:50;flex:none;justify-content:space-between;align-items:center;gap:12px;padding:0 16px;display:flex;box-shadow:0 1px 4px #00000014}.brand{white-space:nowrap;align-items:baseline;gap:6px;display:flex}.brand-by,.brand-name{letter-spacing:-.4px;font-size:18px;font-weight:700}.brand-mark{color:var(--accent);font-size:22px;line-height:1}.brand-pro{letter-spacing:.1em;color:#fff;background:var(--accent);border-radius:var(--radius);align-self:center;padding:1px 5px;font-size:10px;font-weight:700}.brand-sub{letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);font-size:10px}.readouts{flex:1;justify-content:center;gap:18px;min-width:0;display:flex}.readout{flex-direction:column;min-width:78px;line-height:1.15;display:flex}.readout-label{letter-spacing:.08em;color:var(--text-dim);font-size:9px;font-weight:600}.readout-value{font-family:var(--mono);white-space:nowrap;font-size:13px;font-weight:600}.header-actions{align-items:center;gap:8px;display:flex}.status-pill{border:1px solid var(--border);border-radius:var(--radius);letter-spacing:.05em;align-items:center;gap:6px;max-width:160px;padding:3px 9px;font-size:11px;font-weight:600;display:flex}.led{background:#b5b8bf;border-radius:50%;flex:none;width:8px;height:8px}.status-pill.active .led{background:var(--ok);box-shadow:0 0 5px var(--ok)}.status-pill.paused .led{background:var(--warn)}.status-pill.error .led{background:var(--danger)}.seg{display:inline-flex}.seg button{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;padding:4px 10px;font-size:12px}.seg button:first-child{border-radius:var(--radius) 0 0 var(--radius)}.seg button:last-child{border-radius:0 var(--radius) var(--radius) 0;border-left:0}.seg button.on{background:var(--text);color:#fff;border-color:var(--text)}select.lang{width:auto;padding:4px 6px}.guide{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-m);flex:none;justify-content:space-between;align-items:flex-start;gap:16px;margin:8px 12px 0;padding:10px 14px;display:flex}.guide h2{margin-bottom:3px;font-size:14px}.guide p{color:var(--text-mid);max-width:110ch;font-size:12.5px}.guide .note{margin-top:4px}.guide-toggle{align-self:flex-start;margin:6px 12px 0}.plots{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.plot-slot{background:var(--plot-bg);border-radius:var(--radius-m);border:1px solid #1b1f27;flex-direction:column;flex:1 1 0;min-height:120px;display:flex;overflow:hidden}.plot-head{background:#11141a;border-bottom:1px solid #1b1f27;flex:none;justify-content:space-between;align-items:center;gap:8px;padding:3px 8px;display:flex}.plot-title{letter-spacing:.1em;text-transform:uppercase;color:#8b93a3;font-size:10px;font-weight:600}.plot-head .chips{scrollbar-width:none;min-width:0;overflow-x:auto}.plot-head .chip{color:#aab2c2;background:0 0;border-color:#2a3040;flex:none}.plot-head .chip.on{color:#fff;background:#26456f;border-color:#3a6aa8}.plot-host{flex:1;min-height:0;position:relative}.plot-overlay{text-align:center;z-index:5;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:0 24px;display:flex;position:absolute;inset:0}.plot-overlay>*{pointer-events:auto}.plot-overlay.quiet{color:#6c7484;pointer-events:none;font-size:12px}.overlay-hint{color:#9aa3b4;max-width:44ch;font-size:12px}.add-slot{border:1px dashed var(--border-strong);border-radius:var(--radius-m);color:var(--text-dim);cursor:pointer;background:0 0;flex:none;padding:6px}.add-slot:hover{background:var(--surface)}.toolbar{flex-wrap:wrap;flex:none;gap:6px;display:flex}.btn{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:5px;padding:6px 12px;font-size:13px;line-height:1.2;display:inline-flex}.btn:hover:not(:disabled){background:#eef0f3}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--text);color:#fff;border-color:var(--text)}.btn.primary:hover:not(:disabled){background:#2b2f38}.btn.active,.btn.active:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}.btn.danger{color:var(--danger);border-color:#d9a8a4}.btn.small{padding:3px 9px;font-size:12px}.btn.large{padding:10px 20px;font-size:15px}.file-btn{cursor:pointer}.chips{align-items:center;gap:4px;display:flex}.chips.wrap{flex-wrap:wrap;margin-top:6px}.chip{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:10px;padding:2px 8px;font-size:11px;line-height:1.5}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.tabs{border-bottom:1px solid var(--border);background:#fafbfc;flex-wrap:wrap;flex:none;display:flex}.tab{cursor:pointer;color:var(--text-mid);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;flex:auto;padding:9px 10px;font-size:12.5px}.tab:hover{background:#f0f2f5}.tab.on{color:var(--text);border-bottom-color:var(--accent);background:var(--surface);font-weight:600}.panel{flex-direction:column;gap:10px;display:flex}.card{border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface);padding:10px 12px}.card-title{letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);margin-bottom:8px;font-size:10px}.row{align-items:center;gap:6px;margin:4px 0;display:flex}.row.wrap{flex-wrap:wrap}.row.grow>input[type=range]{flex:1;min-width:0}.field{grid-template-columns:118px minmax(0,1fr);align-items:center;gap:8px;margin:6px 0;display:grid}.field-label{color:var(--text-mid);font-size:12px}.field-ctl{min-width:0}select,input[type=text]{border:1px solid var(--border-strong);border-radius:var(--radius);background:#fff;width:100%;height:28px;padding:2px 6px;font-size:13px}input[type=text]{font-family:var(--mono)}select:focus,input:focus,button:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:1px}input[type=range]{width:100%;accent-color:var(--accent);height:20px}.numwrap{align-items:center;gap:4px;display:inline-flex}.numwrap input{text-align:right}.unit{color:var(--text-dim);font-size:11px}.toggle{cursor:pointer;align-items:center;gap:6px;margin:6px 0;font-size:12.5px;display:flex}.note{color:var(--text-dim);margin-top:6px;font-size:11.5px}.note.mono{font-family:var(--mono)}.note.warn{color:var(--warn)}.note.error{color:var(--danger)}.empty{text-align:center;color:var(--text-dim);padding:14px 6px;font-size:12.5px}.facts{grid-template-columns:auto 1fr;gap:3px 12px;margin:6px 0;font-size:12px;display:grid}.facts dt{color:var(--text-dim)}.facts dd{font-family:var(--mono);text-align:right}.facts.wide dd{text-align:right}.kbd{font-family:var(--mono);color:var(--text)!important}.facts .kbd+dd{font-family:var(--sans);text-align:left}.meter{background:#e4e6ea;border-radius:3px;height:5px;margin:4px 0 8px;overflow:hidden}.meter-fill{background:var(--accent);height:100%;transition:width .15s linear}.keys{flex-wrap:wrap;gap:3px;margin:8px 0;display:flex}.key{border:1px solid var(--border-strong);border-radius:var(--radius);cursor:pointer;background:#fff;flex:1 0 calc(25% - 6px);min-width:36px;height:28px;font-size:11px}.key.black{color:#fff;background:#20232a;border-color:#20232a}.key.on{background:var(--accent);color:#fff;border-color:var(--accent)}h4.sub{letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);margin:12px 0 6px;font-size:10px}.tone-row{align-items:center;gap:6px;margin:4px 0;display:flex}.tone-tag{width:24px;font-family:var(--mono);color:#1b8f7e;font-size:11px;font-weight:700}.mk-list{flex-direction:column;gap:6px;display:flex}.mk-row{border:1px solid var(--border);border-radius:var(--radius-m);cursor:pointer;background:#fff;align-items:center;gap:8px;padding:7px 8px;display:flex}.mk-row.active{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent);background:#f5f8fd}.mk-dot{color:#000;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:grid}.mk-main{flex:1;min-width:0}.mk-vals{font-family:var(--mono);flex-wrap:wrap;gap:2px 12px;margin-top:3px;font-size:11.5px;display:flex}.mk-delta{color:var(--accent-dk)}.mk-noise{color:var(--text-dim)}.mk-actions{gap:3px;display:flex}table.mini{border-collapse:collapse;width:100%;font-family:var(--mono);margin-top:8px;font-size:12px}table.mini th,table.mini td{text-align:right;border-bottom:1px solid #eceef1;padding:3px 6px}table.mini th:first-child,table.mini td:first-child{text-align:left;color:var(--text-dim)}table.mini th{color:var(--text-dim);font-size:10.5px;font-weight:600}table.clickable tbody tr{cursor:pointer}table.clickable tbody tr:hover{background:#f1f4f9}.scpi{height:100%}.scpi-out{border-radius:var(--radius-m);min-height:220px;max-height:60dvh;font-family:var(--mono);background:#0b0f14;flex:1;padding:8px 10px;font-size:12px;line-height:1.5;overflow-y:auto}.scpi-line{white-space:pre-wrap;word-break:break-word}.scpi-line.cmd{color:#7cc4ff}.scpi-line.resp{color:#b8f2b8}.scpi-line.err{color:#ff8d8d}.scpi-line.info{color:#8d96a6}.scpi-in{gap:6px;display:flex}.scpi-in input{height:34px}.about p{font-size:13px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#c5c9d0;border-radius:4px}::-webkit-scrollbar-track{background:0 0}@media (max-width:1100px){main{grid-template-columns:minmax(0, 1fr) var(--side-w,340px)}.brand-sub{display:none}.readouts{gap:10px}}@media (max-width:820px){:root{--header-h:46px;--stage-h:54dvh}#app{height:auto;min-height:100dvh}#app-header{gap:6px;padding:0 10px;position:sticky;top:0}.brand-by,.hide-narrow{display:none}.brand-name{font-size:16px}.readouts{justify-content:flex-start;gap:8px}.readout{min-width:0}.readout-value{font-size:12px}.status-pill .led-label{display:none}.status-pill{padding:4px 6px}main{padding:0 0 8px;display:block}.guide{flex-direction:column;gap:6px;margin:6px 8px 0}.stage{top:var(--header-h);z-index:30;height:var(--stage-h);background:var(--bg);border-bottom:1px solid var(--border);padding:6px 8px;position:sticky}.toolbar .btn{padding:5px 9px;font-size:12px}.sidebar{border-left:0;border-right:0;border-radius:0;overflow:visible}.tabs{top:calc(var(--header-h) + var(--stage-h));z-index:20;position:sticky}.tab-body{padding:8px;overflow:visible}.field{grid-template-columns:100px minmax(0,1fr)}.scpi-out{max-height:45dvh}footer{padding:0 10px}}@media (max-width:480px){.readouts,.brand-pro{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.ch-list{flex-direction:column;gap:6px;margin:4px 0 8px;display:flex}.ch-item{border:1px solid var(--border);border-left:3px solid var(--border);background:var(--surface);padding:4px 6px}.ch-item.sel{border-left-color:var(--accent)}.ch-row{align-items:center;gap:6px;min-width:0;margin:2px 0;display:flex}input.ch-name{width:84px;height:24px;font-family:var(--sans);flex:none}.ch-meter{background:#e4e6ea;border-radius:3px;flex:1;min-width:40px;height:8px;position:relative;overflow:hidden}.ch-fill{background:var(--accent);height:100%;transition:width .1s linear}.ch-peak{background:var(--text-mid);width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.ch-peak.clip{background:var(--danger);width:4px}.ch-db{text-align:right;flex:none;width:44px;font-size:11px}.ch-db.warn{color:var(--danger)}.ch-delay{min-width:0;color:var(--text-mid);text-align:right;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;overflow:hidden}.geo-wrap{flex-wrap:wrap;align-items:flex-start;gap:12px;margin:6px 0;display:flex}.geo-svg{background:var(--plot-bg);border-radius:var(--radius-m);flex:none;width:150px;height:150px}.geo-axis{stroke:#ffffff2e;stroke-width:1px}.geo-lbl{fill:#d2d6deb3;font:9px var(--mono)}.geo-mic{fill:#6cf}.geo-presets{flex-direction:column;gap:8px;display:flex}.geo-table{flex-direction:column;gap:4px;margin:6px 0;display:flex}.geo-row{align-items:center;gap:6px;display:flex}.geo-n{width:52px;color:var(--text-mid);text-overflow:ellipsis;flex:none;font-size:11px;overflow:hidden}.warn-text{color:var(--warn);font-weight:600}.side-handle{cursor:col-resize;touch-action:none;z-index:5;justify-content:center;align-items:center;width:12px;display:flex;position:absolute;top:0;bottom:0;left:-12px}.side-handle .grip{background:var(--surface);border:1px solid var(--border-strong);background-image:radial-gradient(circle, var(--text-dim) 1px, transparent 1.4px);opacity:.7;background-position:0 2px;background-size:4px 8px;border-radius:4px;width:8px;height:34px;transition:opacity .12s,border-color .12s}.side-handle:hover .grip,.side-handle:focus-visible .grip,body.resizing .side-handle .grip{opacity:1;border-color:var(--accent)}body.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}@media (max-width:820px){.side-handle{display:none}}.eq-svg{touch-action:none;-webkit-user-select:none;user-select:none;cursor:ns-resize;width:100%;max-width:560px;height:auto;margin:6px auto 0;display:block}.eq-grid{stroke:var(--border);stroke-width:1px}.eq-zero{stroke:var(--border-strong);stroke-width:1px}.eq-label{fill:var(--text-dim);font-size:8.5px}.eq-curve{fill:none;stroke:var(--accent);stroke-width:1.8px;stroke-linejoin:round}.eq-curve.off{stroke:var(--text-dim);stroke-dasharray:3 3}.eq-handle{fill:var(--surface);stroke:var(--text-dim);stroke-width:1.5px;cursor:grab}.eq-handle.set{fill:var(--accent);stroke:var(--accent)}.eq-handle.sel{stroke:var(--text);stroke-width:2px}.eq-read{margin:2px 0 0}.fx-val{text-align:right;min-width:62px;color:var(--text-mid);font-size:12px}.fx-stage{border-bottom:1px solid var(--border);padding:4px 0}.fx-stage:last-child{border-bottom:0}.fx-stage.on{background:color-mix(in srgb, var(--accent) 5%, transparent);border-radius:var(--radius);margin:0 -6px;padding:4px 6px}
