:root{--bg:#fff;--bg-muted:#f4f5f7;--border:#e5e7eb;--border-strong:#d1d5db;--text:#111827;--text-secondary:#4b5563;--text-muted:#4b5563;--faint:#6b7280;--accent:#2563eb;--accent-muted:#eff6ff;--warning:#b45309;--warning-bg:#fffbeb;--danger:#b91c1c;--danger-bg:#fef2f2;--success:#15803d;--success-bg:#f0fdf4;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-family:IBM Plex Sans,system-ui,sans-serif;font-size:13px;line-height:1.4}*{box-sizing:border-box}html,body,#app{background:var(--bg);min-height:100%;margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}::selection{background:#dbeafe}.mono{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,ui-monospace,monospace}.btn{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:4px;padding:5px 10px;font-size:12px;font-weight:500}.btn.play,.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.save{background:var(--text);border-color:var(--text);color:#fff}.btn.quiet{background:0 0}.btn.warn-outline{color:var(--warning);background:var(--warning-bg);border-color:#f59e0b}.btn.danger{color:var(--danger);background:0 0;border-color:#fecaca;width:100%}.btn:disabled{opacity:.45;cursor:default}.btn.active{outline:1px solid var(--accent);outline-offset:-1px}.btn.small{padding:4px 10px}.icon-btn{border:1px solid var(--border);background:var(--bg);border-radius:4px;width:28px;height:28px;font-size:14px}.login-wrap{background:var(--bg-muted);place-items:center;min-height:100vh;padding:24px;display:grid}.login{background:var(--bg);border:1px solid var(--border);border-radius:6px;gap:12px;width:min(420px,100%);padding:24px;display:grid}.login h1{letter-spacing:-.01em;margin:0;font-size:20px;font-weight:600}.login p{color:var(--text-secondary);margin:0}.login input,.field input,.field select,.field textarea,.search{border:1px solid var(--border);background:var(--bg);border-radius:4px;width:100%;padding:7px 10px}.error{color:var(--danger);margin:0}.app-list{grid-template-columns:200px 1fr;min-height:100vh;display:grid}.rail{background:var(--bg-muted);border-right:1px solid var(--border);flex-direction:column;gap:20px;padding:20px 14px;display:flex}.brand{align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.mark{background:var(--accent);border-radius:3px;width:14px;height:14px}.rail nav{flex-direction:column;gap:2px;display:flex}.nav-btn{text-align:left;width:100%;color:var(--text-secondary);background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:8px;padding:8px 10px;font-weight:500;display:flex}.nav-btn.active{background:var(--bg);color:var(--text);border-color:var(--border)}.dot{background:var(--border-strong);border-radius:50%;width:6px;height:6px}.dot.on{background:var(--accent)}.rail-foot{border-top:1px solid var(--border);color:var(--text-muted);flex-direction:column;gap:8px;margin-top:auto;padding-top:12px;font-size:12px;display:flex}.stat{justify-content:space-between;display:flex}.list-main{padding:28px 36px 40px}.top{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.crumb{color:var(--text-muted);margin:0 0 4px;font-size:12px}.list-main h1{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:600}.top-actions{gap:8px;display:flex}.summary{background:var(--border);border:1px solid var(--border);grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:20px;display:grid}.metric{background:var(--bg);flex-direction:column;gap:4px;padding:14px 16px;display:flex}.metric .label,.panel-label,.inspector .lbl,.samples th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;font-weight:500}.metric .num{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:24px;font-weight:600}.metric .den{color:var(--text-muted);font-size:14px;font-weight:500}.metric .sub,.meta{color:var(--text-muted);font-size:12px}.metric .num.warn,.count.warn,.warn{color:var(--warning)}.metric .num.danger,.count.danger{color:var(--danger)}.bar,.mini{background:var(--bg-muted);border-radius:2px;height:4px;margin-top:6px;overflow:hidden}.bar i,.mini i{background:var(--success);height:100%;display:block}.mini{vertical-align:middle;width:72px;margin:0 8px 0 0;display:inline-block}.toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.filters{gap:4px;display:flex}.chip{color:var(--text-muted);background:0 0;border:1px solid #0000;border-radius:4px;padding:5px 10px;font-size:12px;font-weight:500}.chip.on{background:var(--text);color:#fff}.search{width:200px}.samples{border-collapse:collapse;border:1px solid var(--border);width:100%}.samples th{text-align:left;border-bottom:1px solid var(--border);background:var(--bg-muted);padding:8px 12px}.samples td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 12px}.samples tr:last-child td{border-bottom:none}.samples strong{margin-bottom:1px;font-weight:600;display:block}.split{color:var(--text-secondary);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px}.count{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px;font-weight:500}.count.ok{color:var(--success)}.import{border:1px solid var(--border);background:var(--bg);border-radius:6px;gap:10px;max-width:520px;margin-top:16px;padding:14px;display:grid}.field{color:var(--text-secondary);gap:4px;font-size:12px;display:grid}.editor-app{flex-direction:column;min-height:100vh;display:flex}.titlebar{border-bottom:1px solid var(--border);background:var(--bg);align-items:center;gap:16px;padding:10px 14px;display:flex}.titlebar .left{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.titlebar h1{margin:0;font-size:16px;font-weight:600}.sub{color:var(--text-muted);margin:1px 0 0;font-size:12px}.progress{border:1px solid var(--border);color:var(--text-muted);white-space:nowrap;border-radius:4px;align-items:center;gap:8px;padding:4px 8px;font-size:12px;display:flex}.pbar{background:var(--bg-muted);border-radius:1px;width:56px;height:3px;overflow:hidden}.pbar i{background:var(--success);height:100%;display:block}.titlebar .right,.queue{align-items:center;gap:6px;display:flex}.status-chip{border:1px solid var(--border);border-radius:3px;padding:3px 8px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px}.status-chip.warn{color:var(--warning);background:var(--warning-bg);border-color:#fde68a}.status-chip.danger{color:var(--danger);background:var(--danger-bg);border-color:#fecaca}.workspace{flex:1;grid-template-columns:1fr 280px;min-height:0;display:grid}.stage{flex-direction:column;gap:8px;min-width:0;padding:10px 12px 16px;display:flex}.transport{border:1px solid var(--border);background:var(--bg);border-radius:4px;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:8px;display:flex}.cluster{border-right:1px solid var(--border);align-items:center;gap:4px;padding-right:10px;display:flex}.cluster.view{border-right:none}.zoom{color:var(--text-muted);text-align:center;min-width:48px;font-size:12px}.scrub-chip{background:var(--text);color:#fff;border-radius:3px;padding:4px 10px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px}.readout{gap:14px;margin-left:auto;font-size:12px;display:flex}.readout .lbl{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;margin-right:5px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px}.delta{color:var(--accent);margin-left:4px;font-family:IBM Plex Mono,ui-monospace,monospace}.panel{border:1px solid var(--border);background:var(--bg);border-radius:6px;padding:6px 8px 4px}.panel-label{margin:0 0 2px 2px}.panel-label .hint{text-transform:none;letter-spacing:0;color:var(--faint);margin-left:8px;font-family:IBM Plex Sans,system-ui,sans-serif;font-size:11px}.staff-scroll{overflow-x:auto}.staff-stage{min-height:168px;position:relative}.staff-playhead{background:var(--accent);pointer-events:none;width:1px;position:absolute;top:4px;bottom:8px}.staff-playhead:before{content:"";border-left:4px solid #0000;border-right:4px solid #0000;border-top:7px solid var(--accent);position:absolute;top:0;left:-4px}.wave-box{background:var(--bg);height:168px;position:relative}.wave{cursor:crosshair;width:100%;height:100%;display:block}.wave-overlay{pointer-events:none;position:absolute;inset:0}.score-line,.onset-line,.playhead-line{pointer-events:none;width:1px;position:absolute;top:8px;bottom:18px}.score-line{border-left:1px dashed #6b7280}.onset-line{background:var(--text)}.onset-line.warn{background:var(--warning)}.onset-line.miss{background:var(--danger)}.onset-line.selected{background:var(--accent)}.playhead-line{background:var(--accent);z-index:3}.playhead-line:before{content:"";border-left:4px solid #0000;border-right:4px solid #0000;border-top:7px solid var(--accent);position:absolute;top:-1px;left:-4px}.grab{pointer-events:auto;cursor:ew-resize;background:var(--text);z-index:4;border:1px solid #fff;width:11px;height:11px;margin-left:-5px;padding:0;position:absolute;top:2px;transform:rotate(45deg)}.grab.warn{background:var(--warning)}.grab.miss{background:var(--danger)}.grab.selected{background:var(--accent);width:14px;height:14px;margin-left:-7px}.time-chip{background:var(--text);color:#fff;pointer-events:none;z-index:5;white-space:nowrap;border-radius:3px;padding:2px 6px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;position:absolute;top:2px;transform:translate(10px)}.time-chip .delta{color:#bfdbfe}.band{background:var(--accent);opacity:.08;pointer-events:none;position:absolute;top:0;bottom:16px}.band.warn{background:var(--warning)}.band.miss{background:var(--danger)}.grid-label{color:var(--text-secondary);pointer-events:none;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;position:absolute;bottom:1px;transform:translate(-50%)}.grid-line{background:var(--border);pointer-events:none;width:1px;position:absolute;top:0;bottom:16px}.legend{color:var(--text-muted);flex-wrap:wrap;gap:12px;padding:2px 6px 6px;font-size:11px;display:flex}.legend i{vertical-align:middle;width:12px;height:2px;margin-right:5px;display:inline-block}.l-score{border-top:1px dashed #6b7280;height:0}.l-onset{background:var(--text)}.l-play{background:var(--accent)}.l-amber{background:var(--warning)}.l-rose{background:var(--danger)}.pitch-lane{width:100%;height:84px;display:block}.inspector{border-left:1px solid var(--border);background:var(--bg-muted);flex-direction:column;align-self:start;gap:12px;max-height:100vh;padding:16px 14px;display:flex;position:sticky;top:0;overflow:auto}.inspector h2{margin:2px 0;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:28px;font-weight:600}.inspector .meta{color:var(--text-muted);margin:0;font-size:12px}.banner{background:var(--warning-bg);color:var(--warning);border:1px solid #fde68a;border-radius:3px;margin:0;padding:6px 8px;font-size:12px;font-weight:500}.block{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:8px 10px}.row{justify-content:space-between;gap:8px;padding:4px 0;font-size:12px;display:flex}.row span{color:var(--text-muted)}.row.ok strong{color:var(--success)}.checks{flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.checks label{align-items:center;gap:7px;display:flex}.nudge-row{grid-template-columns:repeat(4,1fr);gap:4px;margin-top:6px;display:grid}.hint{color:var(--text-muted);margin:6px 0 0;font-size:12px}.comment textarea{border:1px solid var(--border);background:var(--bg);resize:vertical;border-radius:4px;width:100%;margin-top:4px;padding:6px 8px}.actions{flex-direction:column;gap:6px;display:flex}.overflow{border-top:1px solid var(--border);margin-top:auto;padding-top:10px}.keys-back{z-index:20;background:#11182773;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.keys-modal{background:var(--bg);border:1px solid var(--border);border-radius:6px;width:min(880px,100%);padding:28px 32px 24px}.keys-modal header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.keys-modal h1{margin:0 0 6px;font-size:20px;font-weight:600}.keys-modal .intro{color:var(--text-muted);max-width:48ch;margin:0}.keys-grid{grid-template-columns:1fr 1fr;gap:24px 36px;margin-top:24px;display:grid}.keys-grid h2{margin:0 0 10px;font-size:11px}.keys-grid ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.keys-grid li{align-items:center;gap:10px;display:flex}kbd{border:1px solid var(--border);background:var(--bg-muted);border-radius:3px;padding:3px 7px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px}.keys-modal footer{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:20px;margin-top:24px;padding-top:18px;display:flex}.keys-modal .tip{max-width:48ch;color:var(--text-muted);margin:0;font-size:12px}@media (width<=900px){.app-list,.workspace{grid-template-columns:1fr}.rail{border-right:0;border-bottom:1px solid var(--border)}.inspector{border-left:0;border-top:1px solid var(--border);max-height:none;position:static}.summary,.keys-grid{grid-template-columns:1fr 1fr}.list-main{padding:20px 16px 32px}}
