:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--panel:#121218;--panel-2:#1a1a24;--text:#f2f2f7;--muted:#8b8b9a;--line:#2a2a38;--accent:#ff1c5c;--master:#5eb0ff;--fx-settings:#3ee07a;--good:#00d8ff;--warn:#ffd600;--vocal:#ff00e4;--spark:#00ff9c;--brand-a:#ff1c5c;--brand-b:#ff00e4;--surface:#050508;--surface-2:#0a0a10;--danger:#ff6b8a;--knob-track:#2a2a38;--radius:12px;--page-inset:12px;background:var(--bg);color:var(--text);font-family:SF Pro Display,Segoe UI,system-ui,sans-serif;font-weight:450;line-height:1.35}*{box-sizing:border-box}html,body,#root{-webkit-user-select:none;user-select:none;min-height:100%;margin:0}input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text}body{background:var(--bg)}button,input,select{font:inherit;color:inherit}.boot{place-items:center;min-height:100dvh;padding:24px;display:grid}.boot-gate{width:min(280px,100%)}.boot-gate input[type=password]{box-sizing:border-box;border:1px solid var(--line);background:var(--panel);border-radius:12px;outline:none;width:100%;margin:0;padding:14px 16px}.boot-gate input[type=password]:focus{border-color:color-mix(in srgb, var(--brand-a) 70%, var(--line))}.boot-card{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:20px;width:min(440px,100%);padding:28px;box-shadow:0 24px 80px #00000073}.boot-card h1{letter-spacing:-.03em;margin:0 0 28px;font-size:2rem}.boot-card p{color:var(--muted);margin:0 0 18px}.boot-error{color:var(--danger)!important}.boot-card .boot-copy{color:var(--muted);margin:40px 0 0;font-size:.78rem}.boot-status{color:var(--muted);margin:0 0 8px}.unlock-banner{z-index:40;background:color-mix(in srgb, var(--danger) 14%, var(--panel));border-bottom:1px solid color-mix(in srgb, var(--danger) 50%, transparent);color:color-mix(in srgb, var(--danger) 40%, white);letter-spacing:.01em;text-align:center;place-items:center;padding:10px 14px;font-size:.85rem;font-weight:650;display:grid;position:sticky;top:0}.app{background:var(--bg);color:var(--text);background:#000;grid-template-rows:auto minmax(0,1fr) auto;height:100dvh;min-height:100dvh;display:grid;overflow:hidden}.transport{padding:var(--page-inset);z-index:20;background:#000;border:none;flex-direction:column;gap:0;display:flex;position:sticky;top:0}.transport-main{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.brand{flex-shrink:0;align-items:center;gap:8px;display:flex}.brand-mark{background:linear-gradient(135deg, var(--brand-a), var(--brand-b));border-radius:8px;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:.72rem;font-weight:700;display:grid}.perf-meter{font-variant-numeric:tabular-nums;flex-shrink:0;align-items:baseline;gap:6px;line-height:1.1;display:flex}.perf-item{flex-direction:column;gap:1px;min-width:36px;display:flex}.perf-item-ram{width:3.4rem;min-width:3.4rem}.perf-item-ram .perf-v{text-overflow:clip;white-space:nowrap;width:100%;display:block;overflow:hidden}.perf-k{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.5rem}.perf-v{color:var(--text);font-size:.68rem;font-weight:650}.perf-item.is-warm .perf-v{color:var(--warn)}.perf-item.is-hot .perf-v{color:var(--danger)}.brand strong{font-size:1.05rem;display:block}.brand-sub{color:var(--muted);font-size:.78rem}.transport-clock{align-items:baseline;gap:8px;min-width:0;display:flex}.clock-bar{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:650}.clock-bar small{color:var(--muted);font-size:.8rem}.clock-rest{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.72rem}.clock-rest.is-recall{color:var(--warn);font-weight:600}.transport-actions{flex-wrap:nowrap;gap:4px;display:flex}.transport-play,.transport-stop{box-sizing:border-box;height:32px;min-height:32px;padding:0 10px}.btn.transport-play{text-align:center;min-width:5.2rem}.btn{border:1px solid var(--line);background:var(--panel-2);cursor:pointer;border-radius:999px;padding:10px 16px}.btn-sm{border-radius:8px;padding:6px 10px;font-size:.78rem}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:hover:not(:disabled){border-color:#4a4a5c}.btn-primary{background:var(--accent);color:#fff;border-color:#0000;font-weight:650}.btn-lg{padding:14px 28px;font-size:1.05rem}.btn-warn{background:color-mix(in srgb, var(--warn) 18%, var(--surface));border-color:var(--warn);color:var(--warn)}.btn-snap.is-on,.btn-snap:disabled{background:color-mix(in srgb, var(--good) 16%, var(--surface));border-color:var(--good);color:var(--good)}.btn-recall.is-pending{background:color-mix(in srgb, var(--warn) 18%, var(--surface));border-color:var(--warn);color:var(--warn)}.btn-reset-fx{isolation:isolate;border-color:color-mix(in srgb, var(--master) 45%, var(--line));color:color-mix(in srgb, var(--master) 75%, white);position:relative;overflow:hidden}.btn-reset-fx:hover{border-color:var(--master);background:color-mix(in srgb, var(--master) 12%, var(--surface))}.btn-reset-fx.is-pending{border-color:var(--master);background:color-mix(in srgb, var(--master) 18%, var(--surface));color:color-mix(in srgb, var(--master) 35%, white)}.btn-reset-fx.is-pending:before{content:"";z-index:-1;width:calc(var(--reset-fill,0) * 100%);background:linear-gradient(90deg, color-mix(in srgb, var(--master) 35%, transparent) 0%, color-mix(in srgb, var(--master) 55%, transparent) 100%);pointer-events:none;position:absolute;inset:0}.transport-loop{flex-wrap:wrap;align-items:center;gap:3px;display:flex}.transport-meta-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-right:2px;font-size:.62rem}.transport-main .np-bpm-group{margin-left:auto}.np-offset-group{flex:none;align-items:stretch;min-width:0;height:32px;display:flex}.np-offset-group.is-dragging{-webkit-user-select:none;user-select:none}.np-offset-field{border:1px solid color-mix(in srgb, var(--good) 35%, transparent);background:color-mix(in srgb, var(--good) 8%, transparent);min-width:52px;height:100%;color:color-mix(in srgb, var(--good) 70%, white);cursor:ns-resize;touch-action:none;-webkit-user-select:none;user-select:none;letter-spacing:.03em;border-radius:8px;align-items:center;gap:3px;padding:0 7px;display:inline-flex}.np-offset-group.is-set .np-offset-field{border-color:color-mix(in srgb, var(--good) 55%, transparent);background:color-mix(in srgb, var(--good) 14%, transparent)}.np-offset-value{font-variant-numeric:tabular-nums;text-align:right;min-width:2.2em;font-size:.78rem;font-weight:700}.np-offset-unit{opacity:.75;text-transform:lowercase;font-size:.62rem}.wave-look{border:1px solid color-mix(in srgb, var(--warn) 28%, transparent);background:color-mix(in srgb, var(--warn) 6%, transparent);border-radius:8px;grid-template-rows:auto auto;grid-template-columns:1fr 1fr;align-content:center;gap:2px 10px;min-width:280px;max-width:320px;padding:4px 8px;display:grid;position:relative;overflow:visible}.wave-look-row{color:color-mix(in srgb, var(--warn) 75%, white);grid-template-columns:38px 1fr 36px;align-items:center;gap:4px;min-width:0;margin:0;font-size:.58rem;display:grid}.wave-look-key{letter-spacing:.04em;text-transform:uppercase;opacity:.85}.wave-look-val{font-variant-numeric:tabular-nums;text-align:right;color:color-mix(in srgb, var(--warn) 55%, white);text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.wave-look-row input[type=range]{width:100%;accent-color:var(--warn);cursor:pointer;margin:0}.wave-look-palette{position:relative}.wave-palette-trigger{border:1px solid color-mix(in srgb, var(--warn) 35%, transparent);background:color-mix(in srgb, var(--warn) 8%, transparent);cursor:pointer;border-radius:4px;align-items:center;min-width:0;height:16px;padding:0;display:flex;overflow:hidden}.wave-palette-trigger:hover,.wave-palette-trigger.is-open{border-color:color-mix(in srgb, var(--warn) 65%, transparent);background:color-mix(in srgb, var(--warn) 14%, transparent)}.wave-palette-swatch{border-radius:3px;grid-template-columns:1fr 1fr 1fr;width:100%;height:100%;min-height:12px;display:grid;overflow:hidden}.wave-palette-trigger .wave-palette-swatch{height:100%}.wave-palette-swatch i{min-width:0;display:block}.wave-palette-menu{z-index:80;border:1px solid color-mix(in srgb, var(--warn) 35%, var(--line));background:color-mix(in srgb, var(--panel) 92%, var(--warn));border-radius:8px;gap:3px;width:max(100%,148px);min-width:148px;padding:5px;display:grid;position:absolute;top:calc(100% + 4px);left:auto;right:0;box-shadow:0 10px 28px #00000073}.wave-palette-option{min-height:28px;color:color-mix(in srgb, var(--warn) 55%, white);cursor:pointer;font:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:4px 6px;font-size:.62rem;display:grid}.wave-palette-option .wave-palette-swatch{border:1px solid #00000059;border-radius:4px;height:14px}.wave-palette-option:hover{background:color-mix(in srgb, var(--warn) 12%, transparent);border-color:color-mix(in srgb, var(--warn) 28%, transparent)}.wave-palette-option.is-active{background:color-mix(in srgb, var(--warn) 18%, transparent);border-color:color-mix(in srgb, var(--warn) 45%, transparent);color:color-mix(in srgb, var(--warn) 40%, white);font-weight:650}.wave-palette-option-label{letter-spacing:.02em}.custom-palette-backdrop{z-index:200;background:#0000008c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.custom-palette-popup{border:1px solid color-mix(in srgb, var(--warn) 35%, var(--line));background:var(--panel);width:min(360px,100%);color:var(--text);border-radius:12px;padding:14px;box-shadow:0 18px 48px #00000080}.custom-palette-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.custom-palette-head h2{letter-spacing:.02em;margin:0;font-size:.95rem;font-weight:700}.custom-palette-preview{border:1px solid var(--line);border-radius:6px;grid-template-columns:1fr 1fr 1fr;height:28px;margin-bottom:12px;display:grid;overflow:hidden}.custom-palette-preview i{display:block}.custom-palette-slots{gap:8px;margin-bottom:12px;display:grid}.custom-palette-slot{color:var(--muted);grid-template-columns:64px 36px 1fr;align-items:center;gap:8px;font-size:.72rem;display:grid}.custom-palette-slot input[type=color]{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:6px;width:36px;height:28px;padding:0}.custom-palette-hex{border:1px solid var(--line);background:var(--panel-2);width:100%;min-width:0;color:var(--text);font-variant-numeric:tabular-nums;border-radius:6px;padding:5px 7px;font-size:.72rem}.custom-palette-import{grid-template-columns:auto 1fr auto;align-items:center;gap:6px;margin-bottom:8px;display:grid}.custom-palette-url{border:1px solid var(--line);background:var(--panel-2);width:100%;min-width:0;color:var(--text);border-radius:6px;padding:5px 7px;font-size:.72rem}.custom-palette-error{color:var(--danger);margin:0 0 8px;font-size:.72rem}.custom-palette-foot{justify-content:flex-end;gap:6px;margin-top:4px;display:flex}.np-bpm-group{flex:none;align-items:stretch;gap:6px;min-width:0;height:32px;display:flex}.np-bpm-group.is-dragging{-webkit-user-select:none;user-select:none}.np-bpm-field{border:1px solid color-mix(in srgb, var(--vocal) 40%, transparent);background:color-mix(in srgb, var(--vocal) 12%, transparent);height:100%;color:color-mix(in srgb, var(--vocal) 55%, white);cursor:ns-resize;touch-action:none;-webkit-user-select:none;user-select:none;letter-spacing:.04em;border-radius:8px;align-items:center;gap:4px;padding:0 8px 0 7px;display:inline-flex}.np-bpm-group.is-pitched .np-bpm-field{background:color-mix(in srgb, var(--spark) 12%, transparent);border-color:color-mix(in srgb, var(--spark) 45%, transparent);color:var(--spark)}.np-bpm-value,.np-bpm-field input{color:inherit;font-variant-numeric:tabular-nums;letter-spacing:.02em;text-align:right;background:0 0;border:0;outline:none;min-width:2.6rem;padding:0;font-size:.88rem;font-weight:700}.np-bpm-field input{cursor:text;width:3rem}.np-bpm-unit{opacity:.9;font-size:.65rem;font-weight:700}.np-bpm-orig{border:1px solid var(--line);background:var(--panel-2);min-width:2.6rem;height:100%;color:var(--muted);cursor:pointer;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:0;padding:0 6px;display:inline-flex}.np-bpm-orig:hover{color:var(--text);border-color:#4a4a5c}.np-bpm-orig.is-active{border-color:color-mix(in srgb, var(--spark) 45%, transparent);color:var(--spark)}.np-bpm-orig-label{text-transform:uppercase;letter-spacing:.05em;opacity:.8;font-size:.5rem}.np-bpm-orig-value{font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:700}.dock-oneshot{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:6px;min-width:48px;height:28px;padding:0 8px;font-size:.68rem;font-weight:650}.dock-oneshot:hover{border-color:#6a6a7c}.dock-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);flex-shrink:0;font-size:.58rem}.dock-banks-inner{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.dock-banks-save{align-items:center;gap:4px;display:flex}.dock-banks-save input{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;width:72px;padding:4px 6px;font-size:.72rem}.dock-banks-list{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.dock-banks-empty{color:var(--muted);font-size:.68rem}.dock-bank-chip{gap:2px;display:flex}.dock-bank-del{padding-left:6px!important;padding-right:6px!important}.dock-midi{margin:0;padding:4px 8px;font-size:.72rem}.loop-chips{flex-wrap:wrap;gap:4px;display:flex}.chip{border:1px solid var(--line);background:var(--panel);cursor:pointer;font-variant-numeric:tabular-nums;border-radius:6px;min-width:28px;height:28px;padding:0 7px;font-size:.7rem}.chip-sm{min-width:26px;height:26px;padding:0 6px;font-size:.68rem}.chip.is-on{background:color-mix(in srgb, var(--accent) 18%, var(--surface));border-color:var(--accent);color:color-mix(in srgb, var(--accent) 45%, white);font-weight:650}.chip.is-pending{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--warn) 70%, transparent);border-color:var(--warn)}.stage{padding:var(--page-inset);background:#000;grid-template-columns:1fr;align-items:start;gap:16px;display:grid}.stage-full{padding:0 var(--page-inset);background:#000;grid-template-columns:1fr;min-height:0;overflow:hidden;container:np-stage/size}.clip-grid{--np-rows:13;--np-chrome:70px;--wave-h:clamp(40px, calc((100cqh - var(--np-chrome)) / var(--np-rows)), 56px);--clip-gap:4px;--clip-cell-h:calc((var(--wave-h) - var(--clip-gap)) / 2);background:0 0;border:none;border-radius:0;grid-template-columns:max-content minmax(200px,240px) minmax(0,1fr) max-content;align-content:start;gap:6px;width:100%;height:100%;min-height:0;max-height:100%;padding:0;display:grid;overflow:auto hidden}.clip-grid-foot{grid-template-columns:subgrid;background:#000;grid-column:1/-1;grid-template-rows:auto auto;align-items:end;gap:6px;margin-top:2px;padding-top:6px;padding-bottom:2px;display:grid}.clip-grid-foot>.clip-track-head{grid-area:1/1;align-self:end}.clip-grid-foot>.master-transport{grid-area:1/2/auto/4;align-self:end}.clip-grid-foot>.master-fx-stack{grid-area:1/4;align-self:end}.clip-grid-foot>.fx-column-assign{grid-area:2/4;align-self:start}.master-transport{min-width:0;height:var(--wave-h);min-height:var(--wave-h);box-sizing:border-box;background:0 0;border:none;border-radius:8px;flex-wrap:nowrap;align-items:stretch;gap:8px 10px;padding:0;display:flex}.master-transport-actions,.master-transport-loop{flex-wrap:nowrap;align-items:stretch;gap:4px;height:100%;display:flex}.master-transport-actions .btn,.master-transport-loop .chip{height:100%;min-height:var(--wave-h);box-sizing:border-box;border-radius:6px;place-items:center;padding-top:0;padding-bottom:0;display:inline-grid}.master-transport-loop .chip{min-width:var(--wave-h);width:var(--wave-h);padding-left:0;padding-right:0;font-size:.78rem;font-weight:650}.master-transport-loop .transport-meta-label{place-items:center;height:100%;margin-right:2px;display:inline-grid}.clip-grid-foot-gap{min-width:0}.master-track-label{color:var(--master)}.clip-track{grid-template-columns:subgrid;grid-column:1/-1;align-items:center;display:grid}.clip-track.is-stopped .clip-track-head,.clip-track.is-stopped .clip-track-clips{opacity:.55}.clip-track.is-arm-stop .clip-track-btn{color:#fff;border-color:#fff}.clip-track-head{height:var(--wave-h);flex-direction:column;justify-content:center;align-items:stretch;display:flex}.clip-track-btn,.clip-track-label{box-sizing:border-box;height:var(--wave-h);border:1px solid var(--line);background:var(--surface-2);letter-spacing:.02em;text-align:center;white-space:nowrap;cursor:pointer;touch-action:manipulation;width:100%;font-size:.72rem;font-weight:700;line-height:1.1;font:inherit;color:inherit;border-radius:6px;place-items:center;padding:0 8px;display:grid}.clip-track-btn:hover:not(:disabled){border-color:var(--role,var(--danger));background:color-mix(in srgb, var(--role,var(--accent)) 10%, var(--surface))}.clip-track-btn.is-on{background:color-mix(in srgb, var(--role,var(--accent)) 22%, var(--surface));border-color:var(--role,var(--danger));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--role,var(--danger)) 35%, transparent)}.clip-track-btn:disabled{opacity:.35;cursor:not-allowed}.master-track-label{color:var(--master);cursor:default}.track-fx{grid-template-columns:repeat(8, var(--wave-h));height:var(--wave-h);width:calc(var(--wave-h) * 8 + 4px * 7);box-sizing:border-box;background:0 0;border:none;border-radius:0;grid-template-rows:auto;align-self:center;place-items:end center;gap:2px 4px;min-width:0;padding:0;display:grid}.master-fx-stack{grid-template-columns:repeat(8, var(--wave-h));min-width:0;width:calc(var(--wave-h) * 8 + 4px * 7);justify-items:center;gap:4px;display:grid}.master-fx-stack .track-fx{grid-template-columns:subgrid;grid-column:1/-1;align-self:stretch;justify-items:center;gap:0;width:auto;display:grid}.track-fx.is-master{--accent:var(--master)}.track-fx.is-fx-settings{--accent:var(--fx-settings)}.fx-column-assign{grid-template-columns:repeat(8, var(--wave-h));width:calc(var(--wave-h) * 8 + 4px * 7);place-items:start center;column-gap:4px;min-width:0;display:grid}.fx-column-slot{align-items:stretch;gap:var(--clip-gap);width:100%;max-width:var(--wave-h);min-width:0;height:var(--wave-h);flex-direction:column;display:flex}.fx-column-assign .fx-column-select,.fx-column-assign .fx-send-toggle{box-sizing:border-box;width:100%;min-width:0;max-width:none;height:var(--clip-cell-h);min-height:var(--clip-cell-h);font-size:clamp(.5rem, calc(var(--wave-h) * .11), .62rem);text-align:center;text-align-last:center;border-radius:6px;flex-shrink:0;place-items:center;margin:0;padding:0 3px;font-weight:650;line-height:1.1;display:grid}.fx-column-assign .fx-column-select{appearance:none;field-sizing:fixed;background-color:var(--panel-2);cursor:pointer;color:var(--text);background-image:none;overflow:hidden}.fx-column-assign .fx-send-toggle.is-wet{color:var(--muted)}.fx-column-assign .fx-send-toggle.is-send{border-color:var(--fx-settings);color:var(--fx-settings);background:color-mix(in srgb, var(--fx-settings) 14%, var(--panel-2))}.fx-column-assign .fx-send-toggle.is-spacer{visibility:hidden;pointer-events:none;background:0 0;border:none}.clip-grid-foot .clip-track-head,.clip-grid-foot .clip-track-label{height:var(--wave-h)}.track-fx .knob{width:100%;max-width:var(--wave-h);justify-content:center;gap:0;min-width:0;height:100%}.track-fx .knob-dial{width:var(--wave-h);height:var(--wave-h);aspect-ratio:1;flex-shrink:0;max-width:100%;max-height:100%}.track-fx .knob-ring{inset:3px}.track-fx .knob-value{font-size:.58rem}.track-fx .knob-value.is-frac{font-size:.48rem}.track-fx .knob-label{display:none}.knob.is-disabled{opacity:.35}.knob.is-disabled .knob-dial{cursor:default}.fx-panel-title{margin:0;font-size:.95rem}.clip-track-clips{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2, var(--clip-cell-h));gap:var(--clip-gap);height:var(--wave-h);align-self:center;display:grid}.track-play-strip{height:var(--wave-h);min-height:var(--wave-h);max-height:var(--wave-h);background:#020202;border:1px solid #ffffff1a;border-bottom-width:0;border-radius:0;align-self:center;min-width:0;position:relative;overflow:hidden}.clip-track:first-of-type .track-play-strip{border-radius:6px 6px 0 0}.clip-track-oneshot .track-play-strip{border-bottom-width:1px;border-radius:0 0 6px 6px}.track-play-strip.is-empty{opacity:.35}.track-play-strip.is-live{opacity:1}.track-play-strip.is-scrub{cursor:ew-resize;touch-action:none}.track-play-wave{pointer-events:none;width:100%;height:100%;display:block}.clip-cell{height:var(--clip-cell-h);border:1px solid var(--line);background:var(--surface);cursor:pointer;touch-action:manipulation;border-radius:6px;padding:0;position:relative;overflow:hidden}.clip-cell.is-active{box-shadow:0 0 0 1px var(--role)}.clip-cell.is-armed{outline-offset:-2px;outline:1px dashed #fff6;box-shadow:0 0 0 1px #fff}.clip-cell.is-drop{box-shadow:0 0 0 2px var(--role);background:color-mix(in srgb, var(--role) 22%, var(--surface))}.clip-wave{opacity:.9;width:100%;height:100%;display:block}.side{flex-direction:column;gap:12px;display:flex}.fx-panel,.oneshot-pads,.bank-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px}.bank-panel h3{margin:0 0 10px;font-size:.95rem}.bank-save{gap:8px;margin-bottom:8px;display:flex}.bank-save input{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;flex:1;padding:8px 10px}.bank-list{flex-direction:column;gap:6px;display:flex}.bank-row{gap:6px;display:flex}.bank-row .btn:first-child{text-align:left;flex:1}.fx-panel h3,.oneshot-pads h3{margin:0 0 10px;font-size:.95rem}.fx-panel-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:12px;display:flex}.fx-panel-head .fx-track-tabs{flex:1;margin-bottom:0}.fx-track-tabs{flex-wrap:wrap;gap:4px;margin-bottom:12px;display:flex}.fx-tab{border:1px solid var(--line);background:var(--panel-2);cursor:pointer;border-radius:999px;padding:6px 10px;font-size:.75rem}.fx-tab.is-on{border-color:var(--role,var(--accent));color:var(--role,var(--accent));background:color-mix(in srgb, var(--role,var(--accent)) 14%, var(--panel-2))}.fx-tab-master.is-on{color:#fff;border-color:#fff}.fx-knobs{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.fx-knobs h3{grid-column:1/-1}.fx-hint{color:var(--muted);margin:10px 0 0;font-size:.75rem}.knob{flex-direction:column;align-items:center;gap:6px;display:flex}.knob.is-learning .knob-dial{box-shadow:0 0 0 2px var(--warn)}.knob-dial{border:1px solid var(--line);background:radial-gradient(circle at 35% 30%, var(--knob-track), var(--panel) 70%);isolation:isolate;cursor:ns-resize;touch-action:none;border-radius:50%;width:64px;height:64px;position:relative;overflow:hidden}.knob.is-pending .knob-dial{border-color:var(--accent)}.knob.is-pending .knob-dial:before{content:"";z-index:0;width:100%;height:calc(var(--reset-fill,0) * 100%);background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 52%, transparent) 0%, color-mix(in srgb, var(--accent) 28%, transparent) 100%);pointer-events:none;position:absolute;bottom:0;left:0;right:0}.knob-ring{z-index:1;background:conic-gradient(from -135deg, var(--accent) 0deg, var(--accent) var(--sweep,0deg), var(--knob-track) var(--sweep,0deg));border-radius:50%;position:absolute;inset:4px;-webkit-mask:radial-gradient(circle,#0000 58%,#000 60%);mask:radial-gradient(circle,#0000 58%,#000 60%)}.knob-value{z-index:1;font-variant-numeric:tabular-nums;place-items:center;font-size:.78rem;font-weight:650;display:grid;position:absolute;inset:0}.knob-value.is-frac{letter-spacing:-.02em;font-size:.62rem}.knob-info,.app.is-info .knob-value{display:none}.app.is-info .knob-info{z-index:1;letter-spacing:.02em;text-transform:uppercase;text-align:center;pointer-events:none;place-items:center;font-size:.52rem;font-weight:700;line-height:1.05;display:grid;position:absolute;inset:2px}.app.is-info .knob-info.is-long{letter-spacing:0;font-size:.42rem}.knob-label{display:none}.oneshot-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.oneshot-pad{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;height:88px;padding:0;position:relative;overflow:hidden}.oneshot-pad span{text-align:center;font-size:.75rem;font-weight:650;position:absolute;inset:auto 0 6px}.oneshot-wave{opacity:.85;width:100%;height:100%;display:block}.midi-learn-banner{border:1px solid var(--warn);color:var(--warn);background:#3a3010;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:.85rem;display:flex}.app-dock{z-index:20;padding:var(--page-inset);background:#000;border:none;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;display:flex;position:sticky;bottom:0}.app-dock-banks{flex-wrap:wrap;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.app-dock-status{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tag{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:4px 10px;font-size:.72rem}.tag-on{color:var(--good);border-color:color-mix(in srgb, var(--good) 40%, var(--line))}.tag-learn{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 40%, var(--line))}.tag-btn{font:inherit;cursor:pointer;color:var(--muted);background:0 0;font-size:.72rem}.tag-btn:hover{color:var(--text);border-color:#4a4a5c}.tag-btn.tag-on{border-color:var(--fx-settings);color:var(--fx-settings)}
