:root{color-scheme:dark;--bg-0: #080808;--bg-1: #111111;--bg-2: #191919;--bg-3: #222222;--accent: #c8ff00;--accent-dim: rgba(200, 255, 0, .12);--accent-mid: rgba(200, 255, 0, .35);--danger: #ff4444;--danger-dim: rgba(255, 68, 68, .15);--text-0: #f5f5f5;--text-1: #999;--text-2: #555;--border: rgba(255, 255, 255, .07);--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--shadow: 0 2px 12px rgba(0, 0, 0, .5);--bg: var(--bg-1);--surface: var(--bg-2);--text: var(--text-0);--text-muted: var(--text-1);--text-3: #6b7280;--accent-ink: #0b0d10}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg-1);color:var(--text-0);font-family:SF Mono,ui-monospace,Fira Code,Consolas,monospace;font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}.app{display:flex;flex-direction:column;min-height:100%;padding:0}.header{display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.header-top{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.header-right{display:flex;align-items:center;gap:8px;min-width:0}.logo{display:flex;align-items:baseline;gap:4px;flex-shrink:0}.logo-name{font-size:20px;font-weight:700;letter-spacing:-1px;color:var(--accent)}.logo-tag{font-size:11px;color:var(--text-2);letter-spacing:0}.phase-badge{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-2);background:var(--bg-3);border:1px solid var(--border);padding:3px 8px;border-radius:20px}.main{flex:1;padding:24px 20px;display:flex;flex-direction:column;gap:24px}.timer-display{display:flex;align-items:center;gap:14px}.timer{font-size:36px;font-weight:200;letter-spacing:-2px;color:var(--text-2);font-variant-numeric:tabular-nums;transition:color .3s ease;line-height:1}.timer--active{color:var(--text-0)}.recording-dot{width:9px;height:9px;border-radius:50%;background:var(--danger);flex-shrink:0;animation:blink 1.1s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.2}}.error-banner{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:var(--danger-dim);border:1px solid rgba(255,68,68,.3);border-radius:var(--radius-sm);color:#ff8080;font-size:12px;line-height:1.5}.error-icon{flex-shrink:0;margin-top:1px}.error-dismiss{margin-left:auto;flex-shrink:0;background:none;border:none;color:var(--text-1);cursor:pointer;font-size:13px;padding:0 2px}.controls{display:flex;flex-direction:column;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;border:none;border-radius:var(--radius);font-family:inherit;font-size:13px;font-weight:600;letter-spacing:.3px;cursor:pointer;transition:background .12s ease,opacity .12s ease,transform .08s ease;text-transform:uppercase;-webkit-user-select:none;user-select:none}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-icon{font-size:11px}.btn--start{background:var(--accent);color:#000;width:100%;font-size:14px;padding:18px}.btn--start:hover{background:#d4f500}.controls-recording{display:flex;gap:10px}.btn--cue{flex:1;background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent-mid);font-size:14px;padding:18px}.btn--cue:hover{background:#c8ff0033}.btn--cue:active{transform:scale(.96)}kbd{font-family:inherit;font-size:10px;padding:2px 6px;border:1px solid var(--accent-mid);border-radius:4px;opacity:.6}.btn--stop{background:var(--bg-3);color:var(--danger);border:1px solid rgba(255,68,68,.3);padding:14px 18px}.btn--stop:hover{background:var(--danger-dim)}.controls-stopped{display:flex;flex-direction:column;gap:14px}.playback{display:flex;flex-direction:column;gap:8px}.playback-label{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-2)}.audio-player{width:100%;height:34px;border-radius:var(--radius-sm);accent-color:var(--accent)}.stopped-actions{display:flex;gap:10px}.btn--export{flex:1;background:var(--accent);color:#000}.btn--export:hover{background:#d4f500}.btn--reset{background:var(--bg-3);color:var(--text-1);border:1px solid var(--border);padding:14px 16px}.btn--reset:hover{color:var(--text-0);border-color:var(--text-2)}.cue-section{flex:1;display:flex;flex-direction:column;gap:10px}.cue-header{display:flex;align-items:center;gap:8px}.cue-label{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--text-2);font-weight:600}.cue-count{font-size:10px;padding:2px 8px;background:var(--bg-3);border-radius:10px;color:var(--text-1)}.cue-empty{color:var(--text-2);font-size:12px;line-height:1.6;padding:4px 0}.cue-list{list-style:none;display:flex;flex-direction:column;gap:4px;overflow-y:auto;max-height:280px}.cue-item{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);animation:slide-in .15s ease}@keyframes slide-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.cue-index{font-size:10px;color:var(--text-2);min-width:16px;text-align:right;flex-shrink:0}.cue-time{color:var(--accent);font-size:14px;font-variant-numeric:tabular-nums;flex:1;letter-spacing:-.3px}.cue-from{font-size:10px;color:var(--text-2);flex-shrink:0}.sample-preview{padding:8px 12px;background:var(--accent-dim);border:1px solid var(--accent-mid);border-radius:var(--radius-sm);margin-top:2px}.sample-preview-label{font-size:11px;color:var(--accent);opacity:.8}.btn--slice{width:100%;background:var(--accent);color:#000;flex-direction:column;gap:4px;padding:16px;font-size:13px}.btn--slice:hover:not(:disabled){background:#d4ff1a}.btn-sub{font-size:10px;font-weight:400;text-transform:none;opacity:.6}.btn--sm{padding:10px 14px;font-size:11px}.stopped-controls-btns{display:flex;flex-direction:column;gap:10px}.stopped-secondary{display:flex;gap:8px}.stopped-secondary .btn{flex:1}.slice-progress{display:flex;flex-direction:column;gap:8px}.slice-bar{height:3px;background:var(--bg-3);border-radius:2px;overflow:hidden}.slice-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .15s ease}.slice-label{font-size:11px;color:var(--text-2);text-align:center}.sample-list-section{display:flex;flex-direction:column;gap:14px}.sl-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.sl-title-row{display:flex;align-items:center;gap:8px}.sl-title{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--text-2);font-weight:600}.sl-count{font-size:10px;padding:2px 8px;background:var(--bg-3);border-radius:10px;color:var(--text-1)}.sl-actions{display:flex;gap:6px}.sl-list{list-style:none;display:flex;flex-direction:column;gap:8px}.sl-row{display:flex;flex-direction:column;gap:8px;padding:10px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color .2s}.sl-row--active{border-color:var(--accent-mid);background:#c8ff000a}.sl-row-header{display:flex;align-items:center;gap:8px}.sl-idx{font-size:16px;font-weight:700;color:var(--text-2);min-width:22px}.sl-row--active .sl-idx{color:var(--accent)}.sl-meta{flex:1;display:flex;flex-direction:column;gap:1px}.sl-label{font-size:11px;font-weight:600;color:var(--text-0);text-transform:uppercase;letter-spacing:.5px}.sl-range{font-size:10px;color:var(--text-2);font-variant-numeric:tabular-nums}.sl-btns{display:flex;gap:5px}.sl-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--bg-3);border:1px solid var(--border);border-radius:5px;color:var(--text-1);font-family:inherit;font-size:11px;cursor:pointer;transition:background .1s,color .1s}.sl-btn:disabled{opacity:.35;cursor:not-allowed}.sl-btn:hover:not(:disabled){color:var(--text-0)}.sl-btn--active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-mid)}.sl-wave{border-radius:4px;overflow:hidden;background:var(--bg-3);min-height:48px}.sl-wave--loading{opacity:.5}.tab-bar{display:flex;gap:3px;background:var(--bg-3);padding:3px;border-radius:6px;border:1px solid var(--border)}.tab{padding:5px 14px;border:none;border-radius:5px;background:transparent;color:var(--text-2);font-family:inherit;font-size:13px;cursor:pointer;transition:background .1s,color .1s}.tab:hover{color:var(--text-1)}.tab--active{background:var(--bg-0);color:var(--accent)}.tab-bar--full{width:100%;gap:4px}.tab-bar--full .tab{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 0;font-size:12px;font-weight:600;min-height:34px}.tab-ico{font-size:12px;opacity:.7}.tab-bar--full .tab--active{box-shadow:inset 0 0 0 1px var(--accent-mid)}.tab-bar--full .tab--active .tab-ico{opacity:1}.pad-grid-section{display:flex;flex-direction:column;gap:12px}.pg-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.pg-bank-info{display:flex;align-items:center;gap:6px}.pg-bank-label{font-size:9px;text-transform:uppercase;letter-spacing:2px;color:var(--text-2);font-weight:600}.pg-bank-name{font-size:16px;font-weight:700;color:var(--accent);line-height:1}.pg-sample-count{font-size:9px;padding:1px 6px;background:var(--bg-3);border-radius:8px;color:var(--text-2)}.pg-bank-nav{display:flex;align-items:center;gap:4px}.pg-nav-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-3);border:1px solid var(--border);border-radius:5px;color:var(--text-1);font-size:14px;cursor:pointer;font-family:inherit}.pg-nav-btn:disabled{opacity:.3;cursor:not-allowed}.pg-bank-dot{width:6px;height:6px;border-radius:50%;background:var(--bg-3);border:1px solid var(--border);cursor:pointer;padding:0}.pg-bank-dot--active{background:var(--accent);border-color:var(--accent)}.pg-rec-btn{display:flex;align-items:center;gap:4px;margin-left:auto;padding:3px 8px;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--text-1);font-size:10px;font-weight:600;letter-spacing:.05em;cursor:pointer;transition:border-color .15s,color .15s}.pg-rec-btn:hover{border-color:#e55;color:#e55}.pg-rec-btn--active{border-color:#e33;color:#e33}.pg-rec-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.pg-rec-btn--active .pg-rec-dot{animation:rec-pulse 1s ease-in-out infinite}@keyframes rec-pulse{0%,to{opacity:1}50%{opacity:.3}}.pad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.pad{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:8px;border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;text-align:left;overflow:hidden;aspect-ratio:1;transition:background .08s,transform .06s;box-shadow:0 2px 6px #0006}.pad:active:not(:disabled){transform:scale(.95)}.pad--empty{background:var(--bg-2);border:1px dashed var(--bg-3);cursor:not-allowed;opacity:.3}.pad--filled{background:var(--bg-3);border:1px solid var(--border)}.pad--filled:hover:not(:disabled){background:#2a2a2a}.pad--playing{background:#c8ff0014!important;border-color:var(--accent-mid)!important}.pad-key{position:absolute;top:7px;left:8px;font-size:9px;font-weight:700;text-transform:uppercase;color:var(--text-2)}.pad--playing .pad-key{color:var(--accent)}.pad-sample-name{font-size:9px;font-weight:600;color:var(--text-0);text-transform:uppercase;letter-spacing:.3px;line-height:1.2}.pad-duration{font-size:8px;color:var(--text-2);font-variant-numeric:tabular-nums;margin-top:2px}.pad-empty-label{font-size:16px;color:var(--text-2);align-self:center}.pad-ring{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;border:2px solid var(--accent);animation:pad-pulse .6s ease-out forwards;pointer-events:none}@keyframes pad-pulse{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.04)}}.pg-legend-text{font-size:10px;color:var(--text-2);text-align:center}.pad--selected{border-color:var(--accent-mid)!important;background:#c8ff000f!important}.pad-gear{position:absolute;top:5px;right:5px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:3px;color:var(--text-2);font-size:9px;cursor:pointer;opacity:0;transition:opacity .1s,background .1s;padding:0}.pad--filled:hover .pad-gear,.pad--selected .pad-gear{opacity:1}.pad-gear:hover{background:var(--bg-0);color:var(--text-0)}.pad-gear--active{color:var(--accent)!important;opacity:1!important}.pad-settings{display:flex;flex-direction:column;gap:10px;padding:12px;background:var(--bg-2);border:1px solid var(--accent-mid);border-radius:var(--radius-sm);animation:slide-in .15s ease}.ps-header{display:flex;align-items:center;justify-content:space-between}.ps-title{font-size:11px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.5px}.ps-header-actions{display:flex;gap:4px}.ps-icon-btn{width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--bg-3);border:1px solid var(--border);border-radius:4px;color:var(--text-1);font-family:inherit;font-size:10px;cursor:pointer}.ps-icon-btn:hover{color:var(--text-0)}.ps-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.ps-slider{display:flex;flex-direction:column;gap:4px}.ps-slider-header{display:flex;justify-content:space-between;align-items:baseline}.ps-slider-label{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--text-2);font-weight:600}.ps-slider-value{font-size:10px;font-variant-numeric:tabular-nums;color:var(--text-0)}.ps-track-wrap{position:relative;height:16px;display:flex;align-items:center}.ps-track-fill{position:absolute;left:0;height:2px;background:var(--accent);border-radius:1px;pointer-events:none;z-index:1}.ps-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:2px;background:var(--bg-3);border-radius:1px;outline:none;cursor:pointer;position:relative;z-index:2}.ps-range::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;border-radius:50%;background:var(--accent);border:1px solid var(--bg-0);cursor:pointer}.ps-range::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:var(--accent);border:1px solid var(--bg-0)}.ps-section{display:flex;flex-direction:column;gap:5px}.ps-section-label{display:flex;justify-content:space-between;align-items:baseline;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-2)}.ps-trim-range{font-size:9px;color:var(--text-1);font-variant-numeric:tabular-nums}.ps-trim-pct{color:var(--text-2)}.ps-trim-bar{position:relative;height:24px;border-radius:4px;background:var(--bg-3);border:1px solid var(--border);overflow:hidden}.ps-trim-waveform{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.ps-trim-region{position:absolute;top:0;bottom:0;background:color-mix(in srgb,var(--accent) 25%,transparent);border-left:2px solid var(--accent);border-right:2px solid var(--accent);pointer-events:none;z-index:1}.ps-trim-range-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;pointer-events:none}.ps-trim-range-input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;pointer-events:all;width:9px;height:24px;border-radius:2px;background:var(--accent);cursor:ew-resize}.ps-trim-range-input::-moz-range-thumb{border:none;pointer-events:all;width:9px;height:20px;border-radius:2px;background:var(--accent);cursor:ew-resize}.ps-trim-start{z-index:3}.ps-trim-end{z-index:4}.ps-loop-row{display:flex;gap:5px}.ps-loop-btn{flex:1;padding:5px 0;background:var(--bg-3);border:1px solid var(--border);border-radius:4px;color:var(--text-2);font-size:13px;cursor:pointer;transition:background .1s,color .1s}.ps-loop-btn:hover{background:var(--bg-2);color:var(--text-1)}.ps-loop-btn--active{background:color-mix(in srgb,var(--accent) 20%,var(--bg-3));border-color:var(--accent);color:var(--accent)}.ps-preset-row{display:flex;gap:6px}.ps-preset-btn{flex:1;padding:6px 8px;background:var(--bg-3);border:1px solid var(--border);border-radius:5px;color:var(--text-1);font-family:inherit;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;cursor:pointer}.ps-preset-btn:hover{color:var(--text-0)}.ps-preset-btn--accent{background:color-mix(in srgb,var(--accent) 16%,var(--bg-3));border-color:var(--accent);color:var(--accent)}.ps-preset-btn--accent:hover{background:color-mix(in srgb,var(--accent) 28%,var(--bg-3));color:var(--accent)}.ps-preset-btn--accent:disabled{opacity:.5;cursor:default}.sequencer{display:flex;flex-direction:column;gap:10px;padding:12px 14px;overflow-y:auto}.seq-transport{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;display:flex;flex-direction:column;gap:8px}.seq-trans-row{display:flex;align-items:center;gap:8px}.seq-btn{width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-3);color:var(--text-0);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.seq-btn:hover{background:var(--bg-2);border-color:var(--text-2)}.seq-btn--rec{color:var(--danger)}.seq-btn--play{color:var(--accent)}.seq-btn--active.seq-btn--rec{background:var(--danger-dim);border-color:var(--danger)}.seq-btn--active.seq-btn--play{background:var(--accent-dim);border-color:var(--accent)}.seq-bpm{display:flex;align-items:center;gap:5px;margin-left:auto}.seq-label{font-size:9px;font-weight:700;letter-spacing:.8px;color:var(--text-2);text-transform:uppercase}.seq-bpm-input{width:52px;background:var(--bg-0);border:1px solid var(--border);border-radius:5px;color:var(--text-0);font-family:inherit;font-size:12px;text-align:center;padding:4px 6px;-moz-appearance:textfield}.seq-bpm-input::-webkit-inner-spin-button,.seq-bpm-input::-webkit-outer-spin-button{-webkit-appearance:none}.seq-bpm-input:focus{outline:none;border-color:var(--accent)}.seq-bars{display:flex;align-items:center;gap:5px}.seq-bar-btns{display:flex;gap:3px}.seq-bar-btn{width:24px;height:24px;border-radius:4px;border:1px solid var(--border);background:var(--bg-3);color:var(--text-1);font-family:inherit;font-size:10px;font-weight:700;cursor:pointer}.seq-bar-btn:hover{color:var(--text-0)}.seq-bar-btn--active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.seq-toggles{gap:6px;flex-wrap:wrap}.seq-toggle{padding:4px 9px;border-radius:4px;border:1px solid var(--border);background:var(--bg-3);color:var(--text-2);font-family:inherit;font-size:9px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;cursor:pointer}.seq-toggle:hover{color:var(--text-1)}.seq-toggle--on{background:var(--accent-dim);border-color:var(--accent-mid);color:var(--accent)}.seq-grid-wrap{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;display:flex;flex-direction:column;gap:4px;overflow-x:auto}.seq-row{display:flex;align-items:center;gap:7px;min-width:0}.seq-row-label{flex-shrink:0;width:54px;font-size:9px;color:var(--text-1);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.seq-row-cells{display:grid;gap:3px;flex:1;min-width:0}.seq-cell{height:18px;border-radius:3px;border:1px solid transparent;cursor:pointer;transition:background .08s;min-width:14px}.seq-cell--off{background:var(--bg-3);border-color:var(--border)}.seq-cell--off:hover{background:var(--bg-1);border-color:var(--text-2)}.seq-cell--on{background:var(--accent);border-color:var(--accent)}.seq-cell--beat{border-left-color:var(--text-2)}.seq-cell--cur{box-shadow:inset 0 0 0 1px #fff6}.seq-cell:disabled{opacity:.25;cursor:default}.seq-live{background:var(--bg-2);border:1px solid var(--danger);border-radius:var(--radius);padding:10px 12px}.seq-live-label{display:block;font-size:9px;font-weight:700;letter-spacing:.8px;color:var(--danger);text-transform:uppercase;margin-bottom:8px}.seq-live-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.seq-live-pad{padding:8px 6px;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;transition:background .08s,border-color .08s}.seq-live-pad:hover:not(:disabled){background:var(--bg-1);border-color:var(--text-2)}.seq-live-pad:active:not(:disabled){background:var(--accent-dim);border-color:var(--accent)}.seq-live-pad--empty{opacity:.25;cursor:default}.seq-lp-key{font-size:11px;font-weight:700;color:var(--accent)}.seq-lp-name{font-size:8px;color:var(--text-1);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%}.seq-bottom{display:flex;gap:6px;flex-wrap:wrap}.seq-act{flex:1;padding:7px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-3);color:var(--text-1);font-family:inherit;font-size:10px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .1s,color .1s,border-color .1s}.seq-act:hover{color:var(--text-0);border-color:var(--text-2)}.seq-act:disabled{opacity:.4;cursor:default}.seq-act--primary{background:var(--accent-dim);border-color:var(--accent-mid);color:var(--accent)}.seq-act--primary:hover{background:var(--accent);color:var(--bg-0);border-color:var(--accent)}.seq-act--danger{color:var(--danger);border-color:#ff44444d}.seq-act--danger:hover{background:var(--danger-dim)}.footer{padding:12px 20px;border-top:1px solid var(--border)}.footer-hint{font-size:11px;color:var(--text-2);text-align:center}.footer-credit{margin-top:4px;font-size:10px;color:var(--text-2);text-align:center;opacity:.7}.footer-author{color:var(--accent);font-weight:600;opacity:.9}.app--loading{display:flex;align-items:center;justify-content:center;height:100%;background:var(--bg-0)}.hydrate-spinner{display:flex;flex-direction:column;align-items:center;gap:14px}.hydrate-ring{width:36px;height:36px;border-radius:50%;border:2px solid var(--bg-3);border-top-color:var(--accent);animation:hydrate-spin .8s linear infinite}@keyframes hydrate-spin{to{transform:rotate(360deg)}}.hydrate-label{font-size:16px;font-weight:700;letter-spacing:4px;color:var(--accent);opacity:.6}.level-meter-wrap{width:100%;display:flex;flex-direction:column;gap:6px}.lm-bar{height:6px;border-radius:3px;background:var(--bg-3);overflow:hidden}.lm-fill{height:100%;width:0;border-radius:3px;background:var(--accent);transition:width 60ms linear}.lm-fill[data-hot="1"]{background:#f59e0b}.lm-fill[data-hot="2"]{background:var(--danger)}.lm-hint{margin:0;font-size:11px;color:var(--text-2)}.lm-hint--warn{color:#f59e0b}.controls-recording{display:grid;grid-template-columns:1fr auto;gap:10px;width:100%;max-width:520px}.controls-recording .level-meter-wrap{grid-column:1 / -1}.controls-recording .btn--cue,.controls-recording .btn--stop{padding:12px 16px}.ext-auth{display:flex;flex-direction:column;gap:6px}.ext-auth-signed-in{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 10px}.ext-auth-avatar{width:26px;height:26px;border-radius:50%;object-fit:cover;flex-shrink:0}.ext-auth-initials{width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ext-auth-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.ext-auth-name{font-size:.78rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ext-auth-social{font-size:.68rem;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ext-auth-actions{display:flex;gap:4px;flex-shrink:0}.ext-auth-btn{width:24px;height:24px;border-radius:5px;background:transparent;border:1px solid var(--border);color:var(--text-muted);font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.ext-auth-btn:hover{background:#ffffff0f;color:var(--text)}.ext-auth-btn--logout:hover{color:#f87171}.ext-auth-signin-btn{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:7px 12px;color:var(--text);font-size:.78rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;width:100%;justify-content:center}.ext-auth-signin-btn:hover{background:#ffffff0f;border-color:var(--accent)}.ext-auth-form{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.ext-auth-form-title{font-size:.82rem;font-weight:600;color:var(--text);margin:0}.ext-auth-form-subtitle{font-size:.72rem;color:var(--text-muted);margin:-4px 0 0}.ext-auth-input{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:7px 10px;color:var(--text);font-size:.82rem;outline:none;width:100%;box-sizing:border-box;transition:border-color .2s}.ext-auth-input:focus{border-color:var(--accent)}.ext-auth-input::placeholder{color:var(--text-muted);opacity:.6}.ext-auth-error{font-size:.72rem;color:#f87171;margin:0}.ext-auth-form-btns{display:flex;gap:6px}.ext-auth-form-btns .btn{flex:1}.how-it-works{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.how-it-works li{display:flex;align-items:flex-start;gap:10px;font-size:.78rem;color:var(--text-muted);line-height:1.45}.hw-step{flex-shrink:0;width:20px;height:20px;border-radius:50%;background:#ffffff0f;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;color:var(--accent);margin-top:1px}.how-it-works strong{color:var(--text);font-weight:600}.how-it-works kbd{display:inline-block;padding:1px 5px;background:#ffffff14;border:1px solid var(--border);border-radius:4px;font-size:.7rem;font-family:monospace;color:var(--text)}.pg-bank-row{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.pg-bank-tabs{display:flex;gap:3px}.pg-bank-tab{width:20px;height:20px;border-radius:4px;background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);font-family:inherit;font-size:9px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .1s,border-color .1s,color .1s}.pg-bank-tab:hover{color:var(--text-0);border-color:var(--text-2)}.pg-bank-tab--active{background:var(--accent-dim);border-color:var(--accent-mid);color:var(--accent)}.pg-toolbar-actions{display:flex;align-items:center;gap:5px;flex-shrink:0}.pg-new-btn{width:28px;height:28px;border-radius:5px;background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);font-family:inherit;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .1s,color .1s}.pg-new-btn:hover{color:var(--text-0);border-color:var(--text-2)}.pad-controls{position:absolute;top:4px;right:4px;display:flex;align-items:center;gap:2px;z-index:2}.pad-controls .pad-gear{position:static;top:auto;right:auto}.pad-remove{width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:3px;color:var(--text-2);font-size:9px;cursor:pointer;opacity:0;transition:opacity .1s,background .1s,color .1s;padding:0}.pad--filled:hover .pad-remove,.pad--selected .pad-remove{opacity:1}.pad-remove:hover{background:#ff444426;color:var(--danger)}.pad--loading{pointer-events:none}.pad-loading-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:22px;height:22px;border-radius:50%;border:2px solid var(--bg-3);border-top-color:var(--accent);animation:pad-loading-spin .7s linear infinite}@keyframes pad-loading-spin{to{transform:rotate(360deg)}}.pad--dragover{background:#c8ff000f!important;border-color:var(--accent-mid)!important;border-style:solid!important}.pad--upload{border-color:color-mix(in srgb,var(--accent) 35%,transparent)!important}.pad--upload:hover:not(:disabled){border-color:var(--accent-mid)!important}.pad-upload-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--text-2);pointer-events:none;transition:color .12s,transform .12s}.pad--empty:hover .pad-upload-hint{color:var(--accent-mid);transform:scale(1.15)}.pad--dragover .pad-upload-hint{color:var(--accent);transform:scale(1.2)}.pad-upload-badge{font-size:8px;font-weight:700;color:var(--accent);opacity:.6;line-height:1;margin-top:2px}.pad--empty{cursor:pointer;opacity:.45}.pad--empty:hover{opacity:.7;border-color:var(--accent-mid);background:#c8ff0005}.bpm-control{display:inline-flex;align-items:baseline;gap:5px;padding:4px 9px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:ns-resize;-webkit-user-select:none;user-select:none;touch-action:none}.bpm-control:hover{border-color:var(--accent-mid)}.bpm-label{font-size:8px;font-weight:700;letter-spacing:1px;color:var(--text-2)}.bpm-value{font-size:13px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;min-width:26px;text-align:right}.bpm-input{width:42px;background:var(--bg-3);border:1px solid var(--accent-mid);border-radius:4px;color:var(--accent);font:inherit;font-weight:700;font-size:12px;text-align:right;padding:1px 3px}.mtl{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 12px 10px;margin-bottom:14px}.mtl-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.mtl-title{font-size:10px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--text-1)}.mtl-dur{font-size:11px;color:var(--accent);font-variant-numeric:tabular-nums;font-weight:600}.mtl-tools{margin-left:auto;display:flex;align-items:center;gap:5px}.mtl-tool{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-3);border:1px solid var(--border);border-radius:5px;color:var(--text-1);font-size:12px;cursor:pointer;font-family:inherit}.mtl-tool:hover:not(:disabled){color:var(--accent);border-color:var(--accent-mid)}.mtl-tool:disabled{opacity:.35;cursor:default}.mtl-snap{display:inline-flex;align-items:center;gap:4px;font-size:9px;color:var(--text-2);text-transform:uppercase;letter-spacing:.5px}.mtl-snap select{background:var(--bg-3);border:1px solid var(--border);border-radius:5px;color:var(--text-0);font:inherit;font-size:10px;padding:2px 4px;cursor:pointer}.mtl-scroll{overflow-x:auto;overflow-y:hidden;border-radius:var(--radius-sm)}.mtl-track{position:relative;background:linear-gradient(180deg,#101010,#0a0a0a);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:crosshair}.mtl-canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:block;pointer-events:none}.mtl-seg{position:absolute;top:0;bottom:0;pointer-events:none}.mtl-marker{position:absolute;top:0;width:0;pointer-events:none}.mtl-marker-line{position:absolute;top:18px;bottom:0;left:-1px;width:2px;pointer-events:auto;cursor:grab;box-shadow:0 0 6px currentColor}.mtl-marker-dot{position:absolute;top:0;left:-8px;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;color:#000;cursor:grab;pointer-events:auto;box-shadow:0 0 6px currentColor;outline:1px solid rgba(0,0,0,.5)}.mtl-marker-dot:hover{transform:scale(1.25);z-index:5}.mtl-marker-dot:active{cursor:grabbing}.mtl-marker-time{position:absolute;top:24px;left:5px;font-size:9px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums;pointer-events:none;text-shadow:0 1px 3px #000}.mtl-legend{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.mtl-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px 2px 3px;background:var(--bg-3);border:1px solid var(--border);border-radius:999px;font-size:9px;color:var(--text-1);font-variant-numeric:tabular-nums}.mtl-chip-dot{width:14px;height:14px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:800;color:#000}.mtl-hint{margin-top:6px;font-size:9px;color:var(--text-2);text-align:center}.sl-label--btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:0;cursor:text;font:inherit;color:inherit;text-align:left}.sl-rename-icon{font-size:8px;color:var(--text-2);opacity:0;transition:opacity .12s}.sl-label--btn:hover .sl-rename-icon{opacity:1}.sl-label-input{background:var(--bg-3);border:1px solid var(--accent-mid);border-radius:4px;color:var(--text-0);font:inherit;font-size:12px;padding:1px 5px;width:100%;max-width:150px}.metro-btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-1);cursor:pointer;flex-shrink:0;transition:color .12s,border-color .12s,background .12s}.metro-btn:hover{color:var(--text-0);border-color:var(--accent-mid)}.metro-btn--on{color:var(--accent);border-color:var(--accent-mid);background:var(--accent-dim)}.mtl-zoom{font-size:10px;color:var(--text-1);font-variant-numeric:tabular-nums;min-width:28px;text-align:center}.mtl-seg{transition:opacity .08s ease}.mtl-seg--active{box-shadow:inset 0 0 0 1.5px #fff6}.mtl-marker-dot,.mtl-marker-line{transition:transform .08s ease,box-shadow .08s ease}.mtl-marker--active .mtl-marker-dot{transform:scale(1.45);box-shadow:0 0 14px currentColor;z-index:6}.mtl-marker--active .mtl-marker-line{width:3px;box-shadow:0 0 12px currentColor}.mixer{display:flex;flex-direction:column;gap:10px}.mx-title{font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--text-1);text-transform:uppercase}.mx-channels{display:flex;flex-direction:column;gap:8px}.mx-ch{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px}.mx-ch--master{border-color:var(--accent-mid);background:var(--bg-3)}.mx-ch--empty{opacity:.5}.mx-ch-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.mx-ch-key{font-size:10px;font-weight:800;color:var(--text-2);background:var(--bg-3);border-radius:4px;padding:2px 6px;min-width:22px;text-align:center}.mx-ch-key--main{color:#000;background:var(--accent)}.mx-ch-name{font-size:11px;font-weight:600;color:var(--text-0);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mx-ch-btns{display:flex;gap:3px}.mx-tog{width:22px;height:20px;font-size:10px;font-weight:700;background:var(--bg-3);border:1px solid var(--border);border-radius:4px;color:var(--text-1);cursor:pointer}.mx-tog:hover{color:var(--text-0)}.mx-tog--mute{background:var(--danger-dim);color:var(--danger);border-color:#f446}.mx-tog--solo{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-mid)}.mx-ch-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px}.mx-sl{display:flex;flex-direction:column;gap:3px;min-width:0}.mx-sl-top{display:flex;justify-content:space-between;align-items:baseline;gap:4px}.mx-sl-label{font-size:8px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-2);font-weight:600}.mx-sl-val{font-size:9px;color:var(--text-1);font-variant-numeric:tabular-nums}.mx-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;background:var(--bg-0);border:1px solid var(--border);border-radius:3px;outline:none;cursor:pointer}.mx-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--text-1);cursor:pointer;border:none}.mx-range::-webkit-slider-thumb:hover{background:var(--text-0)}.mx-range--accent::-webkit-slider-thumb{background:var(--accent)}.mx-select{background:var(--bg-0);border:1px solid var(--border);border-radius:4px;color:var(--text-0);font:inherit;font-size:11px;padding:3px 4px;width:100%;cursor:pointer}.mx-hint{font-size:9px;color:var(--text-2);text-align:center;margin-top:2px}.ps-trim-sync{color:var(--accent);font-size:9px;font-weight:600}.ps-trim-div{color:var(--accent);font-weight:700}.sess-ctl{display:inline-flex;gap:6px;flex-shrink:0}.ps-trim-head{display:inline-flex;align-items:center;gap:8px}.ps-sync-btn{font-size:9px;font-weight:700;padding:2px 7px;border-radius:10px;background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);cursor:pointer;letter-spacing:.3px}.ps-sync-btn:hover{color:var(--text-0)}.ps-sync-btn--on{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-mid)}.seq-row-ms{display:inline-flex;gap:2px;flex-shrink:0}.seq-ms{width:15px;height:15px;font-size:8px;font-weight:800;background:var(--bg-3);border:1px solid var(--border);border-radius:3px;color:var(--text-2);cursor:pointer;padding:0;line-height:1}.seq-ms:hover{color:var(--text-0)}.seq-ms--mute{background:var(--danger-dim);color:var(--danger);border-color:#f446}.seq-ms--solo{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-mid)}.mtl-trimmed{position:absolute;top:0;bottom:0;background:#0009;pointer-events:none;z-index:1}.mtl-marker--end .mtl-marker-dot--end{font-size:11px}.seq-swing{display:flex;align-items:center;gap:8px;margin-top:8px}.seq-swing-label{font-size:9px;font-weight:700;letter-spacing:1px;color:var(--text-2)}.seq-swing-range{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:var(--bg-0);border:1px solid var(--border);border-radius:3px;outline:none;cursor:pointer}.seq-swing-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}.seq-swing-val{font-size:9px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;min-width:40px;text-align:right}.lic-badge{background:transparent;color:var(--text-1);border:1px solid var(--border);border-radius:999px;padding:3px 10px;font:inherit;font-size:10px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;white-space:nowrap}.lic-badge:hover{color:var(--text-0);border-color:var(--accent-mid)}.lic-badge--pro{color:var(--bg-0);background:var(--accent);border-color:var(--accent);font-weight:700}.lic-badge--out{color:var(--accent);border-color:var(--accent-mid)}.lic-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:#000000b8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.lic-card{position:relative;width:100%;max-width:340px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:24px 20px 20px}.lic-x{position:absolute;top:10px;right:12px;background:none;border:0;color:var(--text-1);cursor:pointer;font-size:14px}.lic-x:hover{color:var(--text-0)}.lic-title{font-size:15px;line-height:1.35;font-weight:600;margin:0 18px 8px 0}.lic-sub{color:var(--text-1);font-size:12px;margin-bottom:16px}.lic-buy{width:100%;justify-content:center}.lic-divider{display:flex;align-items:center;gap:10px;margin:18px 0 12px;color:var(--text-2);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.lic-divider:before,.lic-divider:after{content:"";flex:1;height:1px;background:var(--border)}.lic-form{display:flex;gap:8px}.lic-input{flex:1;min-width:0;background:var(--bg-0);color:var(--text-0);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 10px;font:inherit;font-size:11px;letter-spacing:.03em}.lic-input:focus{outline:none;border-color:var(--accent-mid)}.lic-msg{margin-top:10px;color:var(--danger);font-size:11px}.lic-key{font-size:12px;color:var(--text-1);margin-bottom:12px;letter-spacing:.04em}.lic-link{background:none;border:0;padding:0;color:var(--text-1);font:inherit;font-size:11px;text-decoration:underline;cursor:pointer}.lic-link:hover{color:var(--text-0)}.midi-chip{display:inline-flex;align-items:center;gap:6px;background:transparent;color:var(--text-1);border:1px solid var(--border);border-radius:999px;padding:3px 10px;font:inherit;font-size:10px;letter-spacing:.06em;cursor:pointer;white-space:nowrap}.midi-chip:hover,.midi-chip--live{color:var(--text-0);border-color:var(--accent-mid)}.midi-dot{width:6px;height:6px;border-radius:50%;background:var(--text-2);flex:none}.midi-chip--live .midi-dot,.midi-dev .midi-dot{background:var(--accent-mid)}.midi-dot--blink{animation:midi-blink .25s ease-out}@keyframes midi-blink{0%{background:var(--accent);box-shadow:0 0 8px var(--accent)}}.midi-hint{font-size:11px;color:var(--text-1);margin:10px 0 0}.pad-midi{position:absolute;top:7px;left:20px;font-size:9px;color:var(--text-2);letter-spacing:.02em}.pad--playing .pad-midi{color:var(--accent)}.pad-focus{position:absolute;bottom:6px;right:6px;width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.8}.ps-midi-tag{margin-left:6px;padding:0 4px;border:1px solid var(--accent-mid);border-radius:3px;color:var(--accent);font-size:8px;letter-spacing:.04em;vertical-align:1px}.midi-card{max-width:380px;max-height:calc(100vh - 32px);overflow-y:auto}.midi-sec{border-top:1px solid var(--border);padding:14px 0 12px}.midi-sec:first-of-type{border-top:0;padding-top:4px}.midi-h{font-size:12px;font-weight:600;color:var(--text-0);margin-bottom:8px}.midi-note{font-size:11px;color:var(--text-1);margin-bottom:10px}.midi-dev{display:flex;align-items:center;gap:8px;padding:7px 0}.midi-dev--off .midi-dev-name{color:var(--text-2)}.midi-dev-name{flex:1;min-width:0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.midi-dev-mfr{color:var(--text-2)}.midi-monitor{margin-top:8px;padding:8px 10px;background:var(--bg-0);border-radius:var(--radius-sm);font-size:10px;color:var(--text-1);min-height:32px;overflow-wrap:anywhere}.midi-pads{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.midi-pad{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-0);font:inherit;cursor:pointer;text-align:left}.midi-pad:hover{border-color:var(--accent-mid)}.midi-pad--learn{border-color:var(--accent);background:var(--accent-dim)}.midi-pad-num{font-size:9px;color:var(--text-2)}.midi-pad-note{font-size:13px;font-weight:600}.midi-pad--learn .midi-pad-note{font-size:11px;color:var(--accent)}.midi-presets{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}.midi-mini{background:transparent;color:var(--text-1);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px 8px;font:inherit;font-size:10px;cursor:pointer;white-space:nowrap}.midi-mini:hover{color:var(--text-0);border-color:var(--accent-mid)}.midi-mini--on{color:var(--accent);border-color:var(--accent-mid);background:var(--accent-dim)}.midi-select{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:var(--text-1);margin-left:auto}.midi-select select,.midi-inline-select{background:var(--bg-0);color:var(--text-0);border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;font-size:10px;padding:2px 4px}.midi-toggle{display:flex;gap:10px;align-items:flex-start;padding:6px 0}.midi-switch{flex:none;width:28px;height:16px;margin-top:1px;border-radius:999px;border:1px solid var(--border);background:var(--bg-3);position:relative;cursor:pointer;padding:0}.midi-switch span{position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:var(--text-2);transition:transform .12s ease,background .12s ease}.midi-switch--on{border-color:var(--accent-mid);background:var(--accent-dim)}.midi-switch--on span{transform:translate(12px);background:var(--accent)}.midi-toggle-label{font-size:12px}.midi-toggle-hint{font-size:10px;color:var(--text-1)}.midi-scope{display:flex;gap:6px;margin-bottom:8px}.midi-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label acts" "src acts";column-gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--border)}.midi-row:last-child{border-bottom:0}.midi-row-label{grid-area:label;font-size:12px}.midi-row-src{grid-area:src;font-size:10px;color:var(--accent)}.midi-row-src--none{color:var(--text-2)}.midi-row-acts{grid-area:acts;display:flex;gap:4px}.midi-learn{background:var(--bg-3);color:var(--text-0);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px 8px;font:inherit;font-size:10px;cursor:pointer;min-width:58px}.midi-learn:hover:not(:disabled){border-color:var(--accent-mid)}.midi-learn--on{color:var(--bg-0);background:var(--accent);border-color:var(--accent)}.midi-learn:disabled{opacity:.4;cursor:default}.midi-card .lic-link{margin-top:6px}@media (prefers-reduced-motion: reduce){.midi-dot--blink{animation:none}.midi-switch span{transition:none}}.header-top{flex-wrap:wrap;row-gap:10px}.header-right{flex-wrap:wrap;row-gap:8px}.logo{align-items:center;white-space:nowrap}.logo .lic-badge,.logo .midi-chip{margin-left:4px}.mtl-head{flex-wrap:wrap;row-gap:8px}.mtl-analysis{flex-wrap:wrap;row-gap:6px;max-width:100%}.mtl-tools{flex-wrap:wrap;row-gap:6px}html.is-web .app{width:100%;max-width:1280px;margin:0 auto}html.is-web .pad-grid{width:100%;max-width:640px;margin:0 auto;gap:10px}.handoff-note{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 16px 0;padding:10px 14px;border:1px solid var(--accent-mid);background:var(--accent-dim);color:var(--text-0);border-radius:var(--radius-sm);font-size:12px}.handoff-note button{background:transparent;border:0;color:var(--text-1);cursor:pointer;font:inherit}.synth{border:1px solid var(--border);border-radius:8px;background:var(--bg-1);padding:8px;margin-bottom:12px}.synth-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.synth-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}.synth-keys{position:relative;height:76px;-webkit-user-select:none;user-select:none;touch-action:none}html.is-web .synth-keys{height:110px}.synth-key{cursor:pointer}.synth-key--white{flex:1;background:#f4f6ef;border:1px solid #12141a;border-radius:0 0 4px 4px}.synth-key--black{position:absolute;top:0;height:62%;background:#14171c;border:1px solid #000;border-radius:0 0 3px 3px;z-index:2}.synth-key:active{filter:brightness(.8)}.pattern-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:10px}.pattern-bar-label{font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em}.pattern-chip{font-size:11px;font-weight:700;padding:4px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg-3);color:var(--text-0);cursor:pointer}.pattern-chip--on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.song{display:flex;flex-direction:column;gap:10px}.song-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.song-btn{font-size:11px;font-weight:600;padding:5px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg-3);color:var(--text-0);cursor:pointer;white-space:nowrap}.song-btn:disabled{opacity:.4;cursor:default}.song-btn--on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.song-btn--accent{color:var(--accent);border-color:var(--accent-mid)}.song-sep{width:1px;height:20px;background:var(--border)}.song-meta{font-size:11px;color:var(--text-3);margin-left:4px}.song-parts{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--bg-1)}.song-parts-label{font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;margin-right:2px}.song-part{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;padding:4px 8px;border-radius:6px;border:1px solid;background:var(--bg-2);color:var(--text-0);cursor:grab;-webkit-user-select:none;user-select:none}.song-part i{width:7px;height:7px;border-radius:2px}.song-part small{font-size:9px;color:var(--text-3);font-weight:500}.song-part--armed{box-shadow:0 0 0 2px var(--accent)}.song-part-x{border:none;background:transparent;color:var(--text-3);cursor:pointer;font-size:13px;padding:0 0 0 2px;line-height:1}.song-hint{font-size:10px;color:var(--accent)}.song-grid{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg-1)}.song-heads{flex:0 0 auto;background:var(--bg-2);border-right:1px solid var(--border)}.song-head{display:flex;flex-wrap:wrap;align-items:center;align-content:center;gap:2px 4px;padding:0 6px 0 8px;border-bottom:1px solid rgba(255,255,255,.05);box-sizing:border-box}.song-head--sections{font-size:10px;color:var(--text-3)}.song-head-name{flex:1 0 100%;min-width:0;line-height:1.1;font-size:11px;font-weight:700;color:var(--text-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:text}.song-head input[type=range]{flex:1;min-width:0;width:40px}.song-head--sections{flex-wrap:nowrap}.song-lanes{position:relative;overflow-x:auto;flex:1;touch-action:none}.song-ruler{position:absolute;left:0;top:0;border-bottom:1px solid rgba(255,255,255,.08);cursor:text}.song-ruler span{position:absolute;top:5px;font-size:9px;color:var(--text-2);pointer-events:none}.song-line{position:absolute;width:1px;background:#ffffff09;pointer-events:none}.song-line--4{background:var(--border)}.song-loop{position:absolute;background:var(--accent-dim);border-left:2px solid var(--accent-mid);border-right:2px solid var(--accent-mid);pointer-events:none}.song-loop--on{border-color:var(--accent)}.song-section{position:absolute;top:3px;bottom:3px;display:flex;align-items:center;justify-content:space-between;gap:4px;padding:0 6px;border-radius:5px;background:#ffffff12;border:1px solid var(--border);cursor:grab;overflow:hidden;-webkit-user-select:none;user-select:none}.song-section-name{font-size:10px;font-weight:700;color:var(--text-0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-section-tools{display:none;gap:2px}.song-section:hover .song-section-tools{display:inline-flex}.song-section-tools button{border:none;background:var(--bg-3);color:var(--text-1);font-size:10px;border-radius:3px;padding:0 4px;cursor:pointer}.song-lane{position:absolute;left:0;border-bottom:1px solid rgba(255,255,255,.05)}.song-lane--armed{cursor:copy;background:#c8ff0008}.song-lane--muted{background:repeating-linear-gradient(45deg,transparent 0 6px,rgba(255,255,255,.02) 6px 12px)}.song-block{position:absolute;border:1px solid;border-radius:5px;cursor:grab;overflow:hidden;display:flex;align-items:center;-webkit-user-select:none;user-select:none;box-sizing:border-box}.song-block--sel{box-shadow:0 0 0 1.5px #fff}.song-block-name{font-size:10px;font-weight:700;color:var(--text-0);padding-left:6px;white-space:nowrap;pointer-events:none}.song-block-rep{position:absolute;top:4px;bottom:4px;border-left:1px dashed;opacity:.7;pointer-events:none}.song-block-edge{position:absolute;right:0;top:0;bottom:0;width:7px;cursor:ew-resize;background:#00000040}.song-playhead{position:absolute;top:0;width:2px;background:var(--accent);box-shadow:0 0 6px var(--accent);pointer-events:none}.song-help{font-size:10px;color:var(--text-3);margin:0}.song-head .mx-tog{height:18px}.song-head-num{display:inline-block;min-width:14px;margin-right:5px;padding:0 3px;border-radius:3px;background:var(--bg-3);color:var(--text-2);font-style:normal;font-size:9px;text-align:center}.song-block-hit{position:absolute;bottom:4px;width:2px;height:9px;border-radius:1px;opacity:.9;pointer-events:none}.clip-editor{margin-top:12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-1);overflow:hidden}.clip-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border)}.clip-name{width:150px;font:inherit;font-weight:700;font-size:13px;color:var(--text-0);background:var(--bg-2);border:1px solid var(--border);border-radius:6px;padding:4px 8px}.clip-kind{font-size:11px;color:var(--text-2)}.clip-sep{flex:1}.clip-field{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--text-2)}.clip-field b{color:var(--text-0);font-weight:700;min-width:44px;text-align:center}.clip-field button{width:22px;height:22px;border-radius:5px;background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);cursor:pointer}.clip-field select{background:var(--bg-2);color:var(--text-0);border:1px solid var(--border);border-radius:5px;padding:2px 4px;font:inherit;font-size:11px}.clip-field input[type=range]{width:90px}.clip-body{display:flex;overflow-y:auto}.clip-keys{flex:none;position:sticky;left:0;background:var(--bg-1);border-right:1px solid var(--border);z-index:2}.clip-key{display:flex;align-items:center;padding:0 6px;font-size:10px;color:var(--text-1);border-bottom:1px solid rgba(255,255,255,.04);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;box-sizing:border-box}.clip-key:hover{background:#ffffff0d}.clip-key--black{background:#00000059;color:var(--text-3)}.clip-grid{flex:1;min-width:0;overflow-x:auto;position:relative;touch-action:none}.clip-ruler{position:relative;height:22px;border-bottom:1px solid var(--border);font-size:10px;color:var(--text-3)}.clip-ruler span{position:absolute;top:4px}.clip-canvas{position:relative;cursor:crosshair;-webkit-user-select:none;user-select:none}.clip-row{position:absolute;left:0;border-bottom:1px solid rgba(255,255,255,.04);pointer-events:none}.clip-row--black{background:#00000038}.clip-line{position:absolute;top:0;width:1px;background:#ffffff0a;pointer-events:none}.clip-line--beat{background:#ffffff17}.clip-line--bar{background:#fff3}.clip-ev{position:absolute;border-radius:4px;background:#3da5ff;border:1px solid rgba(255,255,255,.35);cursor:grab;box-sizing:border-box}.clip-ev--synth{background:#8b7bff}.clip-ev--sel{border-color:#fff;box-shadow:0 0 0 1.5px #fff;z-index:1}.clip-ev-edge{position:absolute;right:-2px;top:0;bottom:0;width:7px;cursor:ew-resize}.clip-box{position:absolute;border:1px dashed #fff;background:#ffffff12;pointer-events:none}.clip-editor .song-help{margin:0;padding:8px 10px;border-top:1px solid var(--border)}.seq-bar-row .seq-row-ms{width:32px}.seq-bar-head{display:flex;align-items:center;gap:6px;min-width:0;padding:0 2px 0 4px;border-left:1px solid var(--text-2);font-size:9px;color:var(--text-2);white-space:nowrap;overflow:hidden}.seq-bar-dup{font-size:9px;padding:1px 6px;background:var(--bg-3);color:var(--text-1);border:1px solid var(--border);border-radius:4px;cursor:pointer;line-height:1.3}.seq-bar-dup:hover:not(:disabled){color:var(--accent);border-color:var(--accent-mid)}.seq-bar-dup:disabled{opacity:.4;cursor:default}.seq-cell{touch-action:none;-webkit-user-select:none;user-select:none}.deck{width:100%;max-width:760px;display:flex;flex-direction:column;gap:14px}html.is-web .deck{margin:8px auto 0}.deck-head{display:flex;align-items:center;gap:12px}.deck-rec{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 8px;border-radius:999px;background:var(--danger-dim);color:var(--danger);font-size:11px;font-weight:800;letter-spacing:.12em}.deck-rec-dot{width:8px;height:8px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 0 var(--danger);animation:deck-pulse 1.4s ease-out infinite}@keyframes deck-pulse{0%{box-shadow:0 0 #f449}to{box-shadow:0 0 0 8px #f440}}.deck-time{font-size:28px;font-weight:300;letter-spacing:-1px;color:var(--text-0);font-variant-numeric:tabular-nums;line-height:1}.deck-count{margin-left:auto;font-size:11px;color:var(--text-2);white-space:nowrap}.deck-tape{position:relative;height:120px;border-radius:12px;background:linear-gradient(180deg,#ffffff09,#ffffff03);border:1px solid var(--border);overflow:hidden}html.is-web .deck-tape{height:150px}.deck-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.deck-tape--silent{border-color:#f59e0b73}.deck-silent{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;padding:6px 12px;border-radius:8px;background:#0b0d10d9;color:#f5b041;font-size:12px;text-align:center;max-width:90%}.deck-flash{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent);opacity:0;pointer-events:none;animation:deck-flash .26s ease-out;z-index:1}@keyframes deck-flash{0%{opacity:.18}to{opacity:0}}.deck-actions{display:grid;grid-template-columns:1fr auto;gap:10px}.deck-cue{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 16px;min-height:56px;border:0;border-radius:12px;background:var(--accent);color:var(--accent-ink, #0b0d10);cursor:pointer;text-align:left;transition:transform .12s ease,filter .12s ease}.deck-cue:hover{filter:brightness(1.06)}.deck-cue:active{transform:scale(.98)}.deck-cue:focus-visible,.deck-stop:focus-visible{outline:2px solid var(--text-0);outline-offset:2px}.deck-cue-label{font-size:15px;font-weight:800;letter-spacing:.02em}.deck-cue-sub{font-size:11px;opacity:.7}.deck-cue kbd{position:absolute;right:14px;top:50%;transform:translateY(-50%);border-color:#0b0d1059;color:inherit;opacity:.75;font-size:11px;padding:3px 8px}.deck-stop{display:inline-flex;align-items:center;gap:8px;padding:0 20px;min-height:56px;border-radius:12px;background:transparent;color:var(--danger);border:1px solid rgba(255,68,68,.4);font-weight:700;font-size:13px;cursor:pointer;transition:background .12s ease}.deck-stop:hover{background:var(--danger-dim)}.deck-stop-sq{width:10px;height:10px;border-radius:2px;background:currentColor}.deck-tip{margin:0;font-size:11px;color:var(--text-2)}@media (prefers-reduced-motion: reduce){.deck-rec-dot,.deck-flash{animation:none}}
