:root{color-scheme:dark;--bg:#111318;--panel:#181b22;--card:#20242d;--border:#343a46;--text:#f1f3f6;--muted:#9aa3b2;--accent:#79a9ff;--accentBg:#223757;--good:#70d59b;--warn:#ddb866}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.skipLink{position:fixed;z-index:1000;top:8px;left:8px;transform:translateY(-180%);padding:10px 14px;border:2px solid var(--accent);border-radius:8px;background:var(--bg);color:var(--text)}.skipLink:focus{transform:translateY(0)}.shell{width:min(1180px,calc(100% - 24px));margin:18px auto}.panel{border:1px solid var(--border);background:var(--panel);border-radius:16px;padding:14px}.master{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.transport{display:flex;gap:7px}button,input,select{font:inherit}button{min-height:44px;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--text);padding:8px 13px;cursor:pointer}button:hover,button:focus-visible{border-color:var(--accent)}:where(a,button,input,select,summary,[tabindex]):focus-visible{outline:3px solid var(--accent);outline-offset:3px}button.primary{background:var(--accentBg);border-color:var(--accent)}input,select{border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);padding:8px}label{font-size:12px;color:var(--muted)}.clockBlock span,.eyebrow{display:block;font-size:10px;letter-spacing:.09em;color:var(--muted)}.clockBlock strong{display:block;margin-top:4px;font:700 16px ui-monospace,monospace}.health{margin-left:auto;min-width:180px}.health>span{font-size:11px;color:var(--muted)}.health>strong{float:right}.meter{clear:both;margin-top:6px;height:8px;background:var(--border);border-radius:999px;overflow:hidden}.meter i{display:block;height:100%;background:var(--good);width:0;transition:width .15s}.layout>*{min-width:0}.layout{display:grid;grid-template-columns:minmax(0,1.65fr) 320px;gap:12px;margin-top:12px}.lower{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.sectionHead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.sectionHead h1,.sectionHead h2,.controls h2{margin:2px 0 0;font-size:18px}.tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.tag{border:1px solid var(--border);border-radius:999px;padding:4px 8px;font-size:10px;color:var(--muted)}.stage{height:400px;position:relative;margin-top:12px;border:1px solid var(--border);border-radius:13px;background:var(--card);overflow:hidden}.stageGrid{position:absolute;inset:7%;border:1px solid var(--border);background-image:linear-gradient(to right,#343a4655 1px,transparent 1px),linear-gradient(to bottom,#343a4655 1px,transparent 1px);background-size:12.5% 12.5%}.playerNode{position:absolute;transform:translate(-50%,-50%);min-width:92px}.playerNode small{display:block;color:var(--muted);margin-top:3px}.playerNode.selected{border-color:var(--accent);background:var(--accentBg)}.hint,.guard{font-size:11px;color:var(--muted);line-height:1.45}.hidden{display:none}.rangeLine{display:block;border-top:1px solid var(--border);padding:11px 0}.rangeLine span{display:flex;justify-content:space-between;color:var(--text);font-size:13px}.rangeLine input{width:100%;padding:0;margin-top:9px}.pair>*{min-width:0}.pair input,.pair select{max-width:100%;width:100%}.pair{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:8px 0}.controls>button{width:100%}.systemPanel select{display:block;width:100%;margin-top:6px}.status{margin-top:12px;border-radius:10px;background:var(--card);padding:11px;font-size:12px;color:var(--muted);line-height:1.5}.events{display:grid;gap:6px;margin-top:10px}.event{padding:8px 9px;border-left:3px solid var(--border);border-radius:0 8px 8px 0;background:var(--card);font-size:12px}.event strong{display:block;color:var(--text)}.event span{color:var(--muted);font-size:10px}@media(max-width:780px){.layout,.lower{grid-template-columns:1fr}.health{margin-left:0;flex:1 1 100%}.stage{height:330px}}@media(max-width:430px){.shell{width:calc(100% - 12px);margin:6px auto}.panel{padding:11px}.playerNode{min-width:72px;font-size:12px}.stage{height:300px}}@media(prefers-reduced-motion:reduce){.meter i{transition:none}}

.notationBox{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.sectionHead.compact h3{margin:.15rem 0 0;font-size:1rem}
.switchLine{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}
.switchLine input{width:20px;height:20px}
.notationPreview{min-height:72px;margin:12px 0;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--card);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.83rem;line-height:1.55;overflow-wrap:anywhere}
.noteToken{display:inline-block;margin:2px 4px 2px 0;padding:3px 6px;border:1px solid var(--border);border-radius:7px}
.buttonLink{display:block;text-align:center;text-decoration:none;margin-top:8px;color:inherit}
.staff{display:block;width:100%;height:auto;min-height:96px;margin-bottom:8px;color:var(--text)}
.staffLines line,.ledger,.stem{stroke:currentColor;stroke-width:1.2}
.noteHead{fill:currentColor;transform:rotate(-12deg);transform-origin:center}
.accidental,.clefLabel{fill:currentColor;font-family:serif}.accidental{font-size:14px}.clefLabel{font-size:30px}
.noteStrip{padding-top:7px;border-top:1px solid var(--border)}

.midiBox{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.midiBox summary{cursor:pointer;font-size:12px;font-weight:700}.midiHead{align-items:center;margin-top:8px}.midiHead p{margin:0}.midiHead button{min-height:36px;padding:6px 10px}.midiDevices{display:grid;gap:7px;margin-top:8px}.midiDevice{padding:9px;border:1px solid var(--border);border-radius:10px;background:var(--card)}.midiDeviceHead{display:flex;gap:8px;align-items:flex-start;justify-content:space-between}.midiDeviceHead strong{font-size:12px}.midiDeviceHead span{font-size:10px;color:var(--muted)}.midiDeviceControls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:7px}.midiDeviceControls select{min-width:0;width:100%}.midiDeviceControls button{min-height:38px;padding:6px 10px}.midiPending{border-style:dashed}
.subPanel{margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--card)}
.subPanel>strong{display:block;margin-bottom:6px}
.transportGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:8px 0}.subPanel label input,.subPanel label select{display:block;width:100%;margin-top:5px}button:disabled{cursor:not-allowed;opacity:.55}@media(max-width:430px){.transportGrid{grid-template-columns:1fr}}
.dawMarkers{position:relative;height:34px;margin:8px 0;border-bottom:1px solid var(--border);overflow:hidden}.dawMarker{position:absolute;top:0;display:flex;transform:translateX(-4px)}.dawMarker:after{content:"";position:absolute;left:4px;top:27px;height:7px;border-left:1px solid var(--accent)}.dawMarker button{min-height:24px;padding:2px 5px;border-radius:5px;font-size:9px}.dawMarker button+button{padding:2px 4px}.dawMarker.section button:first-child{border-color:var(--good)}.dawMarker.cue button:first-child{border-color:var(--warn)}
.dawAutomationLane{position:relative;height:110px;border:1px solid var(--border);border-radius:8px;background:linear-gradient(to top,transparent 49%,var(--border) 50%,transparent 51%),repeating-linear-gradient(90deg,var(--card) 0,var(--card) 9.8%,var(--border) 10%);overflow:hidden}.automationPoint{position:absolute;transform:translate(-50%,50%);width:14px;height:14px;min-height:0;padding:0;border-radius:50%;border:2px solid var(--good);background:var(--accentBg);touch-action:none}
.midiLearnPanel select{display:block;width:100%;margin-top:5px}.midiLearnPanel.waiting{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent)}.midiLearnPanel.waiting #midiLearnState{color:var(--good);border-color:var(--good)}.midiMapSource{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
[data-density="compact"] .panel{padding:9px}[data-density="compact"] button{min-height:36px}[data-contrast="high"]{--bg:#000;--panel:#090909;--card:#111;--border:#aaa;--text:#fff;--muted:#ddd;--accent:#8fc2ff}[data-reduced-motion="true"] *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
.dawTimeline{display:grid;gap:7px;margin:10px 0}.dawTrack{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:center}.dawTrack strong,.dawTrack span{display:block;font-size:11px}.dawTrack>div>span{color:var(--muted);font-size:9px}.dawLane{position:relative;height:38px;border:1px solid var(--border);border-radius:7px;background:repeating-linear-gradient(90deg,var(--card) 0,var(--card) 9.8%,var(--border) 10%)}button.dawClip{position:absolute;left:var(--clip-left);width:var(--clip-width);top:5px;height:26px;min-height:0;overflow:hidden;padding:3px 8px;border-radius:5px;background:var(--accentBg);border:1px solid var(--accent);white-space:nowrap;touch-action:none;will-change:transform}button.dawClip>span{overflow:hidden;text-overflow:ellipsis}button.dawClip>i{position:absolute;top:0;bottom:0;width:7px;background:var(--accent);opacity:.55}button.dawClip>i:first-child{left:0;cursor:ew-resize}button.dawClip>i:last-child{right:0;cursor:ew-resize}button.dawClip.selected{outline:2px solid var(--good)}@media(max-width:520px){.dawTrack{grid-template-columns:1fr}.dawLane{height:42px}}
.dawMixer{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin-top:5px}.dawMixer label{font-size:8px}.dawMixer input{width:100%;height:16px;padding:0}.dawMixer button{min-height:24px;padding:2px 4px;font-size:9px}.dawMixer button.active{border-color:var(--good);color:var(--good)}.dawWaveform{height:84px;margin:8px 0;border:1px solid var(--border);border-radius:8px;background:var(--card);overflow:hidden;color:var(--muted);font-size:10px;display:grid;place-items:center}.dawWaveform svg{display:block;width:100%;height:100%}.dawWaveform line{stroke:var(--accent);stroke-width:1}.dawWaveform .axis{stroke:var(--border)}
.launcherPanel{margin-top:12px}.launcherTransport{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin-top:12px}.launcherControl{min-height:72px;display:flex;align-items:center;justify-content:space-between;font-size:17px;font-weight:750}.launcherControl kbd,.launcherPad kbd{padding:3px 6px;border:1px solid var(--border);border-radius:6px;color:var(--muted);font:11px ui-monospace,monospace}.launcherPads{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}.launcherPad{min-height:92px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;font-weight:750;touch-action:manipulation}.launcherPad small{color:var(--muted);font-weight:500}.launcherPad.triggered{outline:3px solid var(--good);border-color:var(--good)}.launcherPad:disabled{opacity:.45;cursor:not-allowed}@media(max-width:700px){.launcherPads{grid-template-columns:repeat(2,minmax(0,1fr))}.launcherTransport{grid-template-columns:1fr 1fr}}@media(max-width:430px){.launcherControl{min-height:64px}.launcherPad{min-height:84px}}
