*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #111111;--bg-deep: #0a0a0a;--surface: #1a1a1a;--surface-raised: #222222;--surface-hover: #1e1e1e;--border: #303030;--border-subtle: #2a2a2a;--border-mid: #333333;--border-hover: #444444;--accent: #818cf8;--accent-dim: #1e2040;--text: #d4d4d4;--text-muted: #888888;--text-ghost: #7b7b7b;--success: #4caf50;--danger: #c0392b;--warning: #e06c1a;--warning-bright: #f5a623;--warning-dim: #3a2000;--warning-dim-text: #7a4e00;--radius: 8px;--font: "Inter", system-ui, sans-serif;--card-w: 130px;--fill-btn-w: 20px;--knob-color: #818cf8;--fader-color: #4ec9b0;--button-color: #c792ea;--button-shadow: #4a2070}[data-theme=light]{--bg: #f0f0f0;--bg-deep: #e2e2e2;--surface: #fafafa;--surface-raised: #ffffff;--surface-hover: #ebebeb;--border: #d0d0d0;--border-subtle: #c8c8c8;--border-mid: #b8b8b8;--border-hover: #999999;--text: #1a1a1a;--text-muted: #555555;--text-ghost: #aaaaaa;--accent: #5a63d4;--accent-dim: #dde0ff;--success: #2e7d32;--danger: #b71c1c;--warning: #bf5200;--warning-bright: #c67c00;--warning-dim: #fff3e0;--warning-dim-text: #7a4000;--knob-color: #5a63d4;--fader-color: #1a7a6a;--button-color: #7b3fa0;--button-shadow: #ddd8ff}[data-theme=light] .bank-tab--active{background:#1a7a6a26}[data-theme=light] .kl-multi-btn--on{background:var(--accent-dim)}[data-theme=light] .toggle-btn--off{background:var(--border-subtle)}[data-theme=light] .toggle-btn__thumb{box-shadow:0 1px 3px #0003}[data-theme=light] .multi-mode-toggle{background:var(--surface-raised)}[data-theme=light] .multi-mode-toggle--on{background:var(--accent-dim)}[data-theme=light] .assignment-pill{background:var(--surface);border-color:var(--border-subtle)}[data-theme=light] .assignment-pill:hover{background:var(--surface-hover)}[data-theme=light] .assignment-pill--open{background:var(--accent-dim)}[data-theme=light] .inspector-assignment:hover{background:var(--surface-hover)}html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px}#root{height:100%;overflow:hidden}::-webkit-scrollbar{width:14px;height:14px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-mid);border:4px solid transparent;background-clip:padding-box;border-radius:7px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}::-webkit-scrollbar-corner{background:transparent}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0}.app-header h1{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;display:flex;align-items:center;gap:10px}.pro-badge{font-size:10px;font-weight:700;letter-spacing:.06em;padding:2px 6px;border-radius:3px;background:var(--accent);color:#fff;margin-left:-4px}.get-pro-badge{font-family:inherit;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;padding:2px 6px;border-radius:3px;background:transparent;color:var(--text-muted, #888);border:1px solid var(--border, #444);margin-left:-4px;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.get-pro-badge:hover{color:var(--accent);border-color:var(--accent);background:#ffffff0a}.patreon-badge{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;padding:2px 8px;border-radius:4px;background:#f96854;color:#fff;position:relative;transition:opacity .15s}.patreon-badge:hover{opacity:.85}.demo-tier-switch{display:inline-flex;margin-left:10px;padding:2px;background:#ffffff0d;border:1px solid var(--border);border-radius:6px;gap:1px;vertical-align:middle}.demo-tier-switch__btn{font-family:inherit;font-size:11px;font-weight:600;letter-spacing:.02em;padding:3px 10px;border:none;border-radius:4px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s,box-shadow .2s;display:inline-flex;align-items:center;gap:4px}.demo-tier-switch__btn:hover{color:var(--text)}.demo-tier-switch__btn--active{background:var(--accent-dim);color:var(--accent)}.demo-tier-switch__btn--pro.demo-tier-switch__btn--active{background:linear-gradient(135deg,#c084fc,#818cf8);color:#fff;box-shadow:0 0 12px #c084fc73,0 0 0 1px #c084fc66}.demo-tier-switch__btn--pro .demo-tier-switch__spark{font-size:10px;opacity:0;transform:scale(.7);transition:opacity .2s,transform .2s}.demo-tier-switch__btn--pro.demo-tier-switch__btn--active .demo-tier-switch__spark{opacity:1;transform:scale(1);animation:demo-tier-sparkle 1.8s ease-in-out infinite}@keyframes demo-tier-sparkle{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}.status-dot{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}.status-dot__indicator{width:7px;height:7px;border-radius:50%;background:var(--border-mid);transition:background .3s,box-shadow .3s}.status-dot--connected .status-dot__indicator{background:var(--success);box-shadow:0 0 6px color-mix(in srgb,var(--success) 33%,transparent)}.status-dot--disconnected .status-dot__indicator{background:var(--danger)}.app-header__right{display:flex;align-items:center;gap:12px}.prefs-btn{background:none;border:none;color:var(--text-ghost);font-size:15px;line-height:1;cursor:pointer;padding:2px 5px;border-radius:4px;transition:color .15s,background .15s}.prefs-btn:hover{color:var(--text-muted);background:var(--surface-hover)}.prefs-btn--active,.prefs-btn--active:hover{color:var(--accent)}.prefs-btn--active-alt,.prefs-btn--active-alt:hover{color:var(--warning)}.prefs-btn--icon{display:inline-flex;align-items:center;justify-content:center;padding:4px 5px;font-size:0}.prefs-btn--icon svg{display:block}.header-divider{width:1px;height:14px;background:var(--border);opacity:.5}.slot-learn-length__input{width:44px;background:transparent;border:1px solid var(--border);border-radius:3px;color:var(--text-muted);font-size:11px;font-family:var(--font);padding:2px 4px;text-align:center;outline:none;-moz-appearance:textfield}.slot-learn-length__input::-webkit-inner-spin-button,.slot-learn-length__input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.slot-learn-length__input:focus{border-color:var(--accent);color:var(--text)}.header-slider-tip{display:inline-flex;align-items:center}.header-filter-slider{width:60px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--border-mid);border-radius:2px;outline:none;cursor:pointer}.header-filter-slider::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;border-radius:50%;background:var(--text-ghost);cursor:pointer;transition:background .15s}.header-filter-slider::-webkit-slider-thumb:hover{background:var(--accent)}.step-menu{position:absolute;top:100%;right:0;z-index:600;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:200px;padding:10px 12px;box-shadow:0 8px 30px #00000080;margin-top:6px}.step-menu--fixed{position:fixed;margin-top:0;display:flex;flex-direction:column;gap:10px}.step-menu__section{display:flex;flex-direction:column;gap:5px}.step-menu__label{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.step-menu__seg{display:flex;border:1px solid var(--border-mid);border-radius:4px;overflow:hidden}.step-menu__seg-btn{flex:1;padding:4px 8px;font-size:10px;font-weight:600;text-align:center;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .12s,color .12s}.step-menu__seg-btn+.step-menu__seg-btn{border-left:1px solid var(--border-mid)}.step-menu__seg-btn:hover:not(.step-menu__seg-btn--active){background:var(--surface-hover);color:var(--text)}.step-menu__seg-btn--active{background:var(--accent-dim);color:var(--accent)}.step-menu__presets{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.step-menu__preset{padding:4px 2px;font-size:10px;font-family:var(--font-mono, monospace);border:1px solid var(--border-mid);border-radius:3px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .12s,color .12s}.step-menu__preset:hover:not(.step-menu__preset--active){background:var(--surface-hover);color:var(--text)}.step-menu__preset--active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.step-menu__custom{display:flex;align-items:center;gap:4px;margin-top:2px}.step-menu__step-btn{padding:3px 8px;font-size:10px;font-weight:600;border:1px solid var(--border-mid);border-radius:3px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .12s,color .12s}.step-menu__step-btn:hover{background:var(--surface-hover);color:var(--text)}.step-menu__input{flex:1;width:0;min-width:0;padding:3px 4px;text-align:center;font-size:11px;font-family:var(--font-mono, monospace);color:var(--text);background:var(--surface);border:1px solid var(--border-mid);border-radius:3px}.step-menu__input:focus{outline:none;border-color:var(--accent)}.step-menu__close{position:absolute;top:6px;right:8px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:12px;padding:2px 4px}.step-menu__close:hover{color:var(--text)}.step-menu__value{font-size:10px;color:var(--text-muted);text-align:right;font-family:var(--font-mono, monospace)}.inspector-step-row{display:flex;align-items:center;gap:4px;margin-top:4px}.inspector-override-row{display:flex;align-items:center;gap:6px;margin-top:4px}.inspector-override-row__val{font-size:9px;font-weight:600;padding:2px 6px;border-radius:3px;border:1px solid var(--border-mid);background:transparent;color:var(--text-muted);cursor:pointer}.inspector-override-row__val:hover{border-color:var(--accent)}.inspector-override-row__val--on{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.inspector-step-row__label{font-size:10px;font-weight:600;color:var(--text-muted);min-width:28px}.inspector-step-row__btn{width:22px;height:22px;padding:0;font-size:12px;font-weight:700;border:1px solid var(--border-mid);border-radius:3px;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s}.inspector-step-row__btn:hover{background:var(--surface-hover);color:var(--text)}.inspector-step-row__input{width:70px;padding:2px 4px;font-size:11px;font-family:var(--font-mono, monospace);border:1px solid var(--border-mid);border-radius:3px;background:var(--surface);color:var(--text);text-align:center}.inspector-step-row__input:focus{outline:none;border-color:var(--accent)}.inspector-step-row__value{font-size:10px;color:var(--text-ghost);min-width:26px;text-align:right}.inspector-filter-row .toggle-row{flex:0 0 auto;flex-direction:row;gap:6px;border-bottom:none;padding:0;min-width:0}.inspector-filter-slider{flex:1;min-width:0}.inspector-filter-slider:disabled{opacity:.3;cursor:default}.prefs-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:500}.prefs-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:501;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:320px;max-height:min(90vh,600px);display:flex;flex-direction:column;box-shadow:0 12px 40px #0009}.prefs-modal__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.prefs-modal__title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text)}.prefs-modal__close{background:none;border:none;color:#555;font-size:20px;line-height:1;cursor:pointer;padding:0 2px;transition:color .15s}.prefs-modal__close:hover{color:var(--danger)}.prefs-modal__body{padding:12px 16px;display:flex;flex-direction:column;gap:10px;overflow-y:auto;min-height:0;flex:1}.prefs-modal__footer{padding:10px 16px 12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:10px;flex-shrink:0}.shortcut-editor{display:flex;flex-direction:column;gap:8px}.shortcut-editor__title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-top:1px solid var(--border);padding-top:10px;margin-top:4px}.shortcut-editor__section{display:flex;flex-direction:column;gap:4px}.shortcut-editor__section-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-ghost)}.shortcut-editor__add{font-size:9px;padding:3px 8px;border:1px dashed var(--border-mid);border-radius:3px;background:transparent;color:var(--text-muted);cursor:pointer;align-self:flex-start}.shortcut-editor__add:hover{border-color:var(--accent);color:var(--accent)}.shortcut-row{display:flex;align-items:center;gap:6px;min-height:26px}.shortcut-row--bank{flex-wrap:wrap}.shortcut-row__label{font-size:10px;color:var(--text);min-width:100px;flex-shrink:0}.shortcut-row__key{font-size:10px;font-family:var(--font-mono, monospace);font-weight:600;padding:3px 10px;border:1px solid var(--border-mid);border-radius:3px;background:var(--surface);color:var(--text);cursor:pointer;min-width:80px;text-align:center}.shortcut-row__key:hover{border-color:var(--accent)}.shortcut-row__key--recording{border-color:var(--accent);color:var(--accent);animation:pulse-border .8s infinite alternate}.shortcut-row__key--empty{color:var(--text-ghost);font-style:italic;font-weight:400}@keyframes pulse-border{0%{border-color:var(--accent)}to{border-color:var(--border-mid)}}.shortcut-row__clear,.shortcut-row__remove{font-size:9px;background:none;border:none;color:var(--text-ghost);cursor:pointer;padding:2px 4px}.shortcut-row__clear:hover,.shortcut-row__remove:hover{color:#ff6b6b}.shortcut-row__bank-config{display:flex;gap:4px;flex:1;min-width:0}.shortcut-row__select{font-size:9px;padding:2px 4px;border:1px solid var(--border-mid);border-radius:3px;background:var(--surface);color:var(--text);flex:1;min-width:0}.prefs-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--bg)}.prefs-row:last-child{border-bottom:none}.prefs-row__label{font-size:12px;color:var(--text-muted);flex:1}.device-settings-btn{background:none;border:none;color:var(--text-ghost);font-size:14px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:4px;flex-shrink:0;transition:color .15s,background .15s}.device-settings-btn:hover,.device-settings-btn--open{color:var(--text-muted);background:var(--surface-hover)}.device-settings{display:flex;align-items:center;gap:8px;padding:6px 20px;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0}.device-settings__label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.device-settings__sep{color:var(--text-muted);font-size:13px}.device-settings__divider{width:1px;height:16px;background:var(--border);margin:0 4px}.grid-dim-input{width:44px;background:var(--bg-deep);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:14px;font-family:var(--font);padding:4px 6px;text-align:center;outline:none;transition:border-color .15s}.grid-dim-input:focus{border-color:var(--accent)}select.grid-dim-input{width:auto;max-width:180px;text-align:left;cursor:pointer}.add-slot-btn{padding:6px 14px;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:13px;cursor:pointer;transition:border-color .15s,color .15s}.add-slot-btn:hover{border-color:var(--accent);color:var(--accent)}.param-queue{display:flex;flex-direction:column;gap:4px;padding:5px 12px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.param-queue__header{display:flex;align-items:center;gap:6px}.param-queue__toggle{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:10px;padding:1px 3px;line-height:1}.param-queue__title{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.param-queue__count{color:var(--accent);font-weight:600}.param-queue__clear{margin-left:auto;background:none;border:1px solid var(--border);border-radius:3px;color:var(--text-muted);cursor:pointer;font-size:10px;padding:1px 6px}.param-queue__clear:hover{border-color:var(--text-muted);color:var(--text)}.param-queue__list{display:flex;flex-direction:column;gap:2px}.param-queue__item{display:flex;align-items:center;-webkit-user-select:none;user-select:none;gap:6px;padding:3px 6px;background:var(--bg);border:1px solid var(--border);border-radius:4px;cursor:grab;font-size:11px}.param-queue__item:hover{border-color:var(--accent)}.param-queue__item:active{cursor:grabbing}.param-queue__drag{color:var(--text-muted);font-size:12px;cursor:grab;flex-shrink:0}.param-queue__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.param-queue__op{color:var(--text-muted)}.param-queue__sep{color:var(--border)}.param-queue__par{color:var(--text);font-weight:500}.param-queue__assign{background:none;border:1px solid var(--border);border-radius:3px;color:var(--accent);cursor:pointer;font-size:11px;padding:1px 6px;flex-shrink:0}.param-queue__assign:hover:not(:disabled){background:var(--accent-dim);border-color:var(--accent)}.param-queue__assign:disabled{color:var(--text-muted);opacity:.4;cursor:default}.param-queue__learn-btn{background:none;border:1px solid var(--border);border-radius:3px;color:var(--text-muted);cursor:pointer;font-size:10px;font-weight:600;letter-spacing:.05em;padding:1px 6px}.param-queue__learn-btn:hover{border-color:var(--accent);color:var(--accent)}.param-queue__learn-btn--on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);animation:learn-pulse 1.2s ease-in-out infinite}.param-queue__item--learning{border-color:var(--accent);background:var(--accent-dim)}.param-queue__lrn-badge{font-size:9px;font-weight:700;color:var(--accent);background:var(--accent-dim);border:1px solid var(--accent);border-radius:3px;padding:0 4px;letter-spacing:.04em;flex-shrink:0;animation:learn-pulse 1.2s ease-in-out infinite}.param-queue__remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:10px;padding:2px 3px;opacity:.6;flex-shrink:0}.param-queue__remove:hover{color:#ff6b6b;opacity:1}.unassigned-midi{border-top:1px solid var(--border);padding:6px 12px;font-size:11px}.unassigned-midi__header{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.unassigned-midi__toggle{font-size:10px;color:var(--text-muted)}.unassigned-midi__title{font-weight:600;color:var(--text)}.unassigned-midi__count{color:var(--text-muted);font-weight:400}.unassigned-midi__clear{margin-left:auto;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:10px}.unassigned-midi__clear:hover{color:#ff6b6b}.unassigned-midi__body{margin-top:6px}.unassigned-midi__section{margin-bottom:8px}.unassigned-midi__section-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.unassigned-midi__section-label{font-weight:600;color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.5px}.unassigned-midi__ch{color:var(--text-muted);font-weight:400}.unassigned-midi__clear-group{margin-left:auto;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:9px}.unassigned-midi__clear-group:hover{color:#ff6b6b}.unassigned-midi__create-device{margin-left:0;font-size:9px;padding:2px 6px;border-radius:3px;border:1px solid var(--accent);background:transparent;color:var(--accent);cursor:pointer}.unassigned-midi__create-device:hover{background:var(--accent-dim)}.unassigned-midi__cards{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.unassigned-midi__card-wrap .knob-card{border-style:dashed;border-color:var(--warning)}.unassigned-midi__card-wrap .knob-card--selected{border-color:var(--accent)!important;border-style:solid!important}.unassigned-midi__card-wrap{position:relative}.ctx-menu__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:998}.unassigned-midi__row{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:3px;background:var(--card-bg);margin-bottom:2px}.unassigned-midi__row:hover{background:var(--card-hover)}.unassigned-midi__type{font-size:9px;font-weight:700;color:var(--text-muted);min-width:28px;text-transform:uppercase}.unassigned-midi__idx{font-family:var(--font-mono, monospace);font-weight:600;min-width:24px}.unassigned-midi__val{color:var(--text-muted);font-size:10px;min-width:40px}.unassigned-midi__add{margin-left:auto;font-size:9px;padding:2px 6px;border-radius:3px;border:1px solid var(--border-mid);background:transparent;color:var(--text);cursor:pointer}.unassigned-midi__add:hover{border-color:var(--accent);color:var(--accent)}.unassigned-midi__dismiss{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:10px;opacity:.5}.unassigned-midi__dismiss:hover{color:#ff6b6b;opacity:1}.app-body{display:flex;flex:1;overflow:hidden;min-height:0}.app-main{flex:1;overflow:auto;padding:20px;min-width:0}.slot-inspector{width:clamp(280px,25vw,360px);flex-shrink:0;border-left:1px solid var(--border);background:var(--surface);overflow-y:auto;display:flex;flex-direction:column}.knob-card--drag-over{border-color:var(--accent)!important;background:var(--accent-dim)!important;box-shadow:0 0 12px var(--accent-dim)}.knob-card__push-row--drag-over{background:var(--accent-dim)!important;color:var(--accent)!important}.param-queue--drag-over{background:var(--accent-dim)!important;border-color:var(--accent)!important;border-style:dashed!important}.assign-card--drag-over{border-color:var(--accent)!important;background:var(--accent-dim)!important}.inspector-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.inspector-merge-row{display:flex;align-items:center;gap:6px;padding:6px 14px;border-bottom:1px solid var(--border)}.inspector-merge-label{font-size:10px;font-weight:600;color:var(--text-muted);white-space:nowrap}.inspector-merge-select{flex:1;min-width:0;font-size:10px;padding:3px 4px;border:1px solid var(--border-mid);border-radius:3px;background:var(--bg);color:var(--text);cursor:pointer}.inspector-merge-select:hover{border-color:var(--accent)}.inspector-title{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text)}.inspector-close{background:none;border:none;color:var(--border-hover);font-size:20px;line-height:1;cursor:pointer;padding:0 2px;transition:color .15s}.inspector-close:hover{color:var(--danger)}.inspector-section{padding:10px 14px;border-bottom:1px solid var(--border)}.inspector-section--assignments{flex:none}.inspector-section__title{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:8px;display:flex;align-items:center;gap:6px}.inspector-section__title--toggle{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:4px}.inspector-section__title--toggle:hover{color:var(--text)}.inspector-section__chevron{font-size:10px;line-height:1}.inspector-section--collapsed .inspector-section__title{margin-bottom:0;display:flex;align-items:center;gap:8px}.inspector-subsection{margin:4px 0;padding-top:6px;border-top:1px solid var(--border)}.inspector-subsection__title{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:6px}.inspector-subsection.inspector-section--collapsed .inspector-subsection__title{margin-bottom:0}.inspector-subsection__title-tag{margin-left:8px;padding:1px 5px;background:var(--accent-dim);color:var(--accent);border-radius:3px;font-size:9px;font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:0}.inspector-name-lock-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.inspector-name-input{flex:1;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:3px;color:var(--text);font-size:.8rem;padding:4px 8px;outline:none}.inspector-name-input::placeholder{color:var(--text-muted)}.inspector-name-input:focus{border-color:var(--accent)}.inspector-lock-btn{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:3px;color:var(--text-muted);cursor:pointer;font-size:.75rem;padding:3px 6px;line-height:1;transition:border-color .15s,color .15s}.inspector-lock-btn:hover{border-color:var(--border-mid)}.inspector-lock-btn--on{color:var(--accent);border-color:var(--accent)}.inspector-lock-btn:after{content:attr(data-tip);position:absolute;top:100%;right:0;margin-top:4px;background:#0f0f0ff5;color:var(--text);border:1px solid var(--border);border-radius:3px;padding:4px 8px;font-size:10px;font-family:var(--font);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s .3s;z-index:200}.inspector-lock-btn:hover:after{opacity:1}.inspector-type-row{display:flex;gap:6px}.inspector-type-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 6px;background:var(--bg);border:1px solid var(--border);border-radius:5px;cursor:pointer;transition:border-color .15s,background .15s}.inspector-type-btn:hover{border-color:var(--border-hover)}.inspector-type-btn--active{border-color:var(--accent);background:var(--accent-dim)}.inspector-type-btn--active .inspector-type-label{color:var(--text)}.inspector-type-label{font-size:9px;color:var(--text-muted);text-transform:capitalize}.type-pictogram{font-size:14px;line-height:1;flex-shrink:0}.type-pictogram--knob{color:var(--knob-color)}.type-pictogram--fader{color:var(--fader-color)}.type-pictogram--button{color:var(--button-color)}.inspector-toggles{display:flex;flex-direction:column}.inspector-toggles .toggle-row{flex-direction:row;justify-content:space-between;padding:7px 0;border-right:none;border-bottom:1px solid var(--bg)}.inspector-toggles .toggle-row:last-child,.inspector-toggles>:last-child .toggle-row{border-bottom:none}.inspector-toggles .inspector-step-row{padding:5px 0;border-bottom:1px solid var(--bg)}.inspector-toggles .inspector-filter-row{padding:7px 0;border-bottom:1px solid var(--bg)}.inspector-toggles>:last-child,.inspector-toggles .inspector-step-row:last-child,.inspector-toggles .inspector-filter-row:last-child{border-bottom:none}.inspector-assignment{display:flex;align-items:center;-webkit-user-select:none;user-select:none;flex-wrap:nowrap;gap:4px;padding:6px 8px;background:var(--bg);border:1px solid var(--border);border-radius:4px;cursor:pointer;min-height:36px;position:relative;transition:background .15s;min-width:0;overflow:hidden}.inspector-assignment:hover{background:#161616}.inspector-assignment--mapped{border-color:var(--accent-dim)}.inspector-section__title .multi-mode-toggle{position:static}.inspector-section--push{flex-shrink:0;border-top:1px solid var(--border)}.inspector-section--push>*+*{margin-top:6px}.inspector-section__subtitle{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin:10px 0 6px;display:flex;align-items:center;gap:8px}.inspector-push-midi-row{display:flex;align-items:center;gap:6px;margin-bottom:6px}.inspector-push-midi-row__label{font-size:10px;color:var(--text-muted);min-width:30px;flex-shrink:0}.inspector-push-midi-row__label--ch{min-width:auto}.inspector-push-type-row{display:flex;align-items:center;gap:2px;margin-bottom:5px;padding:0 2px}.push-type-chip{font-size:9px;padding:0 3px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;opacity:.4}.push-type-chip--active{opacity:1;color:var(--text-color);font-weight:600}.push-type-sep{font-size:9px;color:var(--text-muted);opacity:.25;pointer-events:none;-webkit-user-select:none;user-select:none}.inspector-function-picker{display:flex;flex-direction:column;gap:6px;padding:2px 0}.fn-target-list{display:flex;flex-direction:column;gap:3px}.fn-target-drop{display:flex;align-items:center;gap:4px;padding:5px 8px;border-radius:4px;background:#141414;border:1px dashed var(--border-mid);min-height:26px;font-size:11px;transition:border-color .15s,background .15s}.fn-target-drop--empty{color:var(--text-muted);font-style:italic}.fn-target-drop--filled{border-style:solid;border-color:var(--surface-raised);background:#141414}.fn-target-drop--filled:hover{border-color:var(--border-mid);background:#1a1a1a}.fn-target-drop--drag-over{border-color:var(--accent);background:var(--accent-dim, rgba(129,140,248,.12));border-style:solid}.knob-card--fn-target-drag-over,.knob-card__push-row--fn-target-drag-over{outline:2px dashed var(--accent);outline-offset:-3px;background:var(--accent-dim, rgba(129,140,248,.12))!important}.fn-target-drop__placeholder{font-size:10px;letter-spacing:.02em}.fn-target-row{display:flex;align-items:center;gap:4px}.fn-target-row .fn-target-drop{flex:1;min-width:0}.fn-target-row__remove{background:none;border:1px solid var(--border);color:var(--text-dim);font-size:12px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:3px;flex-shrink:0}.fn-target-row__remove:hover{border-color:var(--danger, #f87171);color:var(--danger, #f87171)}.fn-target-row--control{flex-direction:column;align-items:stretch;gap:2px;padding:4px 6px;border:1px solid var(--border);border-radius:3px;background:var(--surface, #141414)}.fn-target-row--control .fn-target-row__title{display:flex;align-items:center;justify-content:space-between;gap:4px}.fn-target-row__icon{font-size:11px;color:var(--text-dim);letter-spacing:.04em}.push-mode-seg--xs .push-mode-seg__btn{font-size:9px;padding:2px 4px}.fn-target-add-btn{width:100%;padding:4px 0;margin-top:2px;font-size:.65rem;border:1px dashed var(--border);background:transparent;color:var(--text-dim);cursor:pointer;border-radius:3px}.fn-target-add-btn:hover{border-color:var(--accent);color:var(--accent);background:#818cf80f}.modify-target-row__drag{display:inline-flex;align-items:center;font-size:11px;color:var(--text-dim);cursor:grab;-webkit-user-select:none;user-select:none;padding:0 4px;flex-shrink:0}.modify-target-row__drag:hover{color:var(--text)}.modify-target-row__drag:active{cursor:grabbing}.modify-target-row__drag--disabled{opacity:.3;cursor:not-allowed}.modify-target-row__drag--disabled:hover{color:var(--text-dim)}.fn-target-drop--draggable{cursor:grab}.fn-target-drop--draggable:active{cursor:grabbing}.fn-target-drop--draggable .assignment-pill__drag{font-size:11px;color:var(--text-dim);flex-shrink:0;margin-right:4px}.fn-target-row__title{cursor:grab}.fn-target-row__title:active{cursor:grabbing}.inspector-function-select{font-size:10px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:3px;padding:3px 5px;width:100%;cursor:pointer;outline:none;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.inspector-function-select option{background:var(--surface-raised);color:var(--text)}.inspector-function-select:focus{border-color:var(--accent)}.push-mode-seg{display:flex;border:1px solid var(--border-mid);border-radius:4px;width:100%;margin:4px 0}.push-mode-seg__btn:first-child{border-radius:3px 0 0 3px}.push-mode-seg__btn:last-child{border-radius:0 3px 3px 0}.push-mode-seg__btn{flex:1;padding:5px 8px;font-size:10px;font-weight:600;letter-spacing:.04em;text-align:center;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .12s,color .12s}.push-mode-seg__btn+.push-mode-seg__btn{border-left:1px solid var(--border-mid)}.push-mode-seg__btn:hover:not(.push-mode-seg__btn--active){background:var(--surface-hover);color:var(--text)}.push-mode-seg__btn--active{background:var(--accent-dim);color:var(--accent)}.push-mode-seg__btn--sm{flex:0;padding:3px 6px;font-size:10px}.push-mode-seg .push-mode-seg__btn--sm{flex:1}.push-mode-seg__btn:disabled{opacity:.3;pointer-events:none}.inspector-step-override-row{display:flex;align-items:center;gap:4px}.inspector-step-override-row .inspector-step-row__btn{min-width:20px;padding:2px 4px}.knob-grid-wrap{display:flex;flex-direction:column;gap:20px;min-width:max-content}.knob-grid{display:grid;gap:10px;align-items:start;min-width:max-content}.knob-list{display:flex;flex-direction:column;gap:0;padding:4px 8px}.knob-list__header{display:grid;grid-template-columns:12px 20px 64px 36px 84px minmax(60px,180px) 48px 48px 40px 16px 16px 32px 32px 18px;gap:0 6px;align-items:center;padding:0 8px 3px;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-ghost);border-bottom:1px solid var(--border);margin-bottom:2px}.knob-list__header>:nth-child(4){text-align:right}.knob-list__row{display:grid;grid-template-columns:12px 20px 64px 36px 84px minmax(60px,180px) 48px 48px 40px 16px 16px 32px 32px 18px;gap:0 6px;align-items:center;padding:3px 8px;border-radius:3px;cursor:pointer;font-size:11px;border-bottom:1px solid var(--border)}.knob-list__row:last-child{border-bottom:none}.knob-list__row:hover{background:var(--card-hover)}.knob-list__row--selected{background:var(--accent-dim)!important}.knob-list__row--unmapped{opacity:.45}.knob-list__row--slot{border-left:3px solid #c084fc}.knob-list__row--modify{border-left:3px solid rgb(45,212,191)}.knob-list__icon{transform:scale(.6);transform-origin:center}.knob-list__name{font-size:9px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-left:6px}.knob-list__cc{font-family:var(--font-mono, monospace);font-weight:600;font-size:9px;color:var(--text-muted);text-align:right;min-width:0;overflow:hidden}.knob-list__op{font-size:9px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.knob-list__par{font-weight:600;font-size:11px;color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.knob-list__par--empty{color:var(--text-ghost);font-weight:400}.knob-list__lrn,.knob-list__par-btn{font-size:8px;font-weight:700;padding:1px 2px;border-radius:3px;border:1px solid var(--border-mid);background:transparent;color:var(--text-muted);cursor:pointer;white-space:nowrap;opacity:0;transition:opacity .1s;width:100%;min-width:0;box-sizing:border-box}.knob-list__row:hover .knob-list__lrn,.knob-list__row:hover .knob-list__par-btn{opacity:1}.knob-list__lrn:hover,.knob-list__par-btn:hover{border-color:var(--accent);color:var(--accent)}.knob-list__lrn--on,.knob-list__par-btn--on{background:var(--accent);border-color:var(--accent);color:#fff;opacity:1}.knob-list__lock{background:none;border:none;cursor:pointer;font-size:.55rem;padding:0;line-height:1;opacity:0;transition:opacity .15s}.knob-list__row:hover .knob-list__lock,.knob-list__lock--on{opacity:1}.knob-list__handle{cursor:grab;color:var(--text-ghost);font-size:10px;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity .1s}.knob-list__row:hover .knob-list__handle{opacity:1}.knob-list__par-chip{cursor:grab;border-radius:2px;padding:0 1px}.knob-list__par-chip:hover{background:var(--accent-dim)}.knob-list__field{width:100%;min-width:0;box-sizing:border-box;font-size:9px;font-family:var(--font-mono, monospace);color:var(--text-muted);background:transparent;border:1px solid transparent;border-radius:2px;padding:1px 3px;text-align:left;-moz-appearance:textfield}.knob-list__field::-webkit-inner-spin-button,.knob-list__field::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.knob-list__field:hover{border-color:var(--border-mid)}.knob-list__field:focus{border-color:var(--accent);outline:none;color:var(--text);background:var(--bg)}.knob-list__field::placeholder{color:var(--text-ghost);font-style:italic}.knob-list__field--def{color:var(--text-ghost)}.knob-list__field-sep{color:var(--text-ghost);font-size:9px}.knob-list__clamp{font-size:10px;background:none;border:1px solid transparent;border-radius:2px;color:var(--text-ghost);cursor:pointer;padding:0;line-height:1;width:100%;min-width:0;box-sizing:border-box}.knob-list__clamp:hover{border-color:var(--border-mid);color:var(--text-muted)}.knob-list__clamp--on{color:var(--accent);border-color:var(--accent)}.knob-list__row--drag-over{outline:1px dashed var(--accent);background:var(--accent-dim)!important}.knob-cell--empty{width:var(--card-w);align-self:stretch;border:1px dashed var(--surface-raised);border-radius:var(--radius);background:transparent;color:var(--border-mid);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s}.knob-cell--empty:hover{border-color:var(--accent);color:var(--accent)}.knob-cell--learning{border-color:var(--learn, #0af);color:var(--learn, #0af);font-weight:600;font-size:.7rem;letter-spacing:.04em;animation:learn-pulse 1.2s ease-in-out infinite}.knob-card--smart-learning{border-color:var(--learn, #0af);animation:learn-pulse 1.2s ease-in-out infinite}.knob-cell--drag-over{border-color:var(--accent);background:var(--surface-hover);color:var(--accent)}.grid-corner{position:relative;display:flex;align-items:center;justify-content:center;width:var(--fill-btn-w);height:var(--fill-btn-w)}.grid-corner__btn{width:100%;height:100%;background:transparent;border:1px dashed var(--surface-raised);border-radius:4px;color:var(--border-hover);font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:border-color .15s,color .15s}.grid-corner__btn:hover,.grid-corner__btn--open{border-color:var(--accent);color:var(--accent)}.grid-corner__btn--learn{border-color:var(--warning-bright);color:var(--warning-bright);animation:learn-pulse 1.2s ease-in-out infinite}@keyframes learn-pulse{0%,to{opacity:1}50%{opacity:.5}}.grid-corner__menu{position:absolute;top:calc(100% + 4px);left:0;z-index:300;background:var(--surface);border:1px solid var(--accent-dim);border-radius:4px;display:flex;flex-direction:column;min-width:90px;overflow:hidden}.grid-corner__item{background:transparent;border:none;border-top:1px solid var(--border);color:var(--text);font-family:var(--font);font-size:10px;padding:5px 9px;text-align:left;cursor:pointer;white-space:nowrap;transition:background .12s}.grid-corner__item:first-child{border-top:none}.grid-corner__item:hover{background:var(--accent-dim)}.grid-corner__item--disabled{opacity:.35;cursor:default}.grid-corner__item--disabled:hover{background:transparent}.grid-corner__item--danger{color:#c06060}.grid-corner__item--danger:hover{background:#dc3c3c1f;color:#e87070}.grid-corner__item--active{color:var(--warning-bright)}.grid-corner__item--active:hover{background:#f5a6231f;color:#f7b84a}.grid-corner__types{display:flex;flex-direction:row;padding:2px;gap:1px}.grid-corner__type-opt{flex:1;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:3px;cursor:pointer;padding:4px 3px;transition:background .12s}.grid-corner__type-opt:hover{background:var(--accent-dim)}.grid-corner__type-opt .type-pictogram{font-size:10px}.grid-corner__sep{height:1px;background:var(--border);margin:2px 0}.fill-btn{border:1px dashed var(--surface-raised);border-radius:4px;background:transparent;color:var(--border-mid);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;line-height:1;padding:0;transition:border-color .15s,color .15s}.fill-btn:hover{border-color:var(--accent);color:var(--accent)}.fill-btn--row{width:var(--fill-btn-w);height:100%}.fill-btn--col{height:var(--fill-btn-w)}.fill-btn-picker{display:flex;background:var(--surface);border:1px solid var(--accent-dim);border-radius:4px}.fill-btn-picker--row{flex-direction:column;width:var(--fill-btn-w);height:100%}.fill-btn-picker--col{flex-direction:row;height:var(--fill-btn-w)}.fill-btn-picker__opt{flex:1;display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;padding:0;transition:background .15s;position:relative}.fill-btn-picker--row .fill-btn-picker__opt+.fill-btn-picker__opt{border-top:1px solid var(--border)}.fill-btn-picker--col .fill-btn-picker__opt+.fill-btn-picker__opt{border-left:1px solid var(--border)}.fill-btn-picker__opt:hover{background:var(--accent-dim)}.fill-btn-picker--row>:first-child{border-radius:3px 3px 0 0}.fill-btn-picker--row>:last-child{border-radius:0 0 3px 3px}.fill-btn-picker--col>:first-child{border-radius:3px 0 0 3px}.fill-btn-picker--col>:last-child{border-radius:0 3px 3px 0}.fill-btn-picker__opt:after{content:attr(data-tip);position:absolute;background:#0f0f0ff5;color:var(--text);border:1px solid var(--border);border-radius:3px;padding:2px 7px;font-size:10px;font-family:var(--font);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s .25s;z-index:200}.fill-btn-picker__opt:hover:after{opacity:1}.fill-btn-picker--row .fill-btn-picker__opt:after{left:calc(100% + 6px);top:50%;transform:translateY(-50%)}.fill-btn-picker--col .fill-btn-picker__opt:after{top:calc(100% + 6px);left:50%;transform:translate(-50%)}.fill-btn-picker__clear{flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;padding:0;font-size:11px;line-height:1;color:#644;transition:background .15s,color .15s;position:relative}.fill-btn-picker--row .fill-btn-picker__clear{width:100%;height:16px;border-top:1px solid var(--border)}.fill-btn-picker--col .fill-btn-picker__clear{height:100%;width:16px;border-left:1px solid var(--border)}.fill-btn-picker__clear:hover{background:#dc3c3c1f;color:#e87070}.fill-btn-picker__clear:after{content:attr(data-tip);position:absolute;background:#0f0f0ff5;color:var(--text);border:1px solid var(--border);border-radius:3px;padding:2px 7px;font-size:10px;font-family:var(--font);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s .25s;z-index:200}.fill-btn-picker__clear:hover:after{opacity:1}.fill-btn-picker--row .fill-btn-picker__clear:after{left:calc(100% + 6px);top:50%;transform:translateY(-50%)}.fill-btn-picker--col .fill-btn-picker__clear:after{top:calc(100% + 6px);left:50%;transform:translate(-50%)}.fill-btn-picker .type-pictogram{font-size:10px}.fill-btn-picker__action{flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;padding:0;font-size:10px;line-height:1;color:var(--accent);transition:background .15s,color .15s;position:relative}.fill-btn-picker--row .fill-btn-picker__action{width:100%;height:16px;border-top:1px solid var(--border)}.fill-btn-picker--col .fill-btn-picker__action{height:100%;width:16px;border-left:1px solid var(--border)}.fill-btn-picker__action:hover{background:var(--accent-dim)}.fill-btn-picker__action--disabled{opacity:.3;cursor:default}.fill-btn-picker__action--disabled:hover{background:transparent}.fill-btn-picker__action--unbind{color:#a08040}.fill-btn-picker__action--unbind:hover{background:#a080401f}.fill-btn-picker__action--clearcc{color:#6080a0}.fill-btn-picker__action--clearcc:hover{background:#6080a01f}.fill-btn-picker__action:after{content:attr(data-tip);position:absolute;background:#0f0f0ff5;color:var(--text);border:1px solid var(--border);border-radius:3px;padding:2px 7px;font-size:10px;font-family:var(--font);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s .25s;z-index:200}.fill-btn-picker__action:hover:after{opacity:1}.fill-btn-picker--row .fill-btn-picker__action:after{left:calc(100% + 6px);top:50%;transform:translateY(-50%)}.fill-btn-picker--col .fill-btn-picker__action:after{top:calc(100% + 6px);left:50%;transform:translate(-50%)}.confirm-dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:18px 20px 14px;min-width:220px;font-family:var(--font);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0}.confirm-dialog::backdrop{background:#0000008c}.confirm-dialog__msg{font-size:13px;color:var(--text-muted);margin-bottom:14px;line-height:1.5}.confirm-dialog__msg strong{color:var(--text);font-weight:600}.confirm-dialog__actions{display:flex;gap:8px;justify-content:flex-end}.confirm-dialog__btn{padding:4px 14px;border-radius:4px;border:none;font-size:12px;font-family:var(--font);cursor:pointer;transition:opacity .15s,background .15s}.confirm-dialog__btn--cancel{background:var(--border-subtle);color:var(--text-muted)}.confirm-dialog__btn--cancel:hover{background:var(--border-mid);color:var(--text)}.confirm-dialog__btn--remove{background:#4a1515;color:#e07070;border:1px solid #6a2020}.confirm-dialog__btn--remove:hover{background:#5a1a1a;color:#f08080}.ctx-menu{position:fixed;z-index:300;min-width:160px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 16px #0000008c;padding:4px 0;font-family:var(--font);font-size:12px;-webkit-user-select:none;user-select:none}.ctx-menu__item{display:flex;align-items:center;gap:7px;width:100%;padding:5px 12px;background:none;border:none;color:var(--text);cursor:pointer;text-align:left;font-size:12px;font-family:var(--font);white-space:nowrap}.ctx-menu__item:hover{background:var(--accent-dim)}.ctx-menu__item--disabled{color:var(--text-muted);cursor:default}.ctx-menu__item--disabled:hover{background:none}.ctx-menu__item--current{color:var(--accent)}.ctx-menu__item--danger{color:var(--error, #f44)}.ctx-menu__item--danger:hover{background:color-mix(in srgb,var(--error, #f44) 12%,transparent)}.ctx-menu__item--convert{padding-left:10px}.ctx-menu__header{padding:4px 10px;font-size:11px;color:var(--text-muted);border-bottom:1px solid var(--border);margin-bottom:3px;white-space:nowrap}.ctx-menu__sep{height:1px;background:var(--border);margin:3px 0}.ctx-menu__label{padding:5px 12px 2px;font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.ctx-menu__check{margin-left:auto;font-size:11px;color:var(--accent)}.override-form{z-index:310;min-width:180px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 16px #0000008c;padding:8px 10px;font-family:var(--font);font-size:12px;-webkit-user-select:none;user-select:none}.override-form__title{font-size:11px;font-weight:600;color:var(--text);margin-bottom:6px}.override-form__row{display:flex;align-items:center;gap:6px;margin-bottom:5px;color:var(--text-muted);font-size:11px}.override-form__row span{min-width:50px}.override-form__row input{flex:1;min-width:0}.override-form__actions{display:flex;gap:4px;margin-top:6px}.override-form__btn{flex:1;padding:3px 8px;border:1px solid var(--border);border-radius:3px;background:transparent;color:var(--text-muted);font-size:11px;font-family:var(--font);cursor:pointer}.override-form__btn:hover{border-color:var(--border-hover);color:var(--text)}.override-form__btn--apply{background:#4ec9b026;border-color:#4ec9b0;color:#4ec9b0}.override-form__btn--apply:hover{background:#4ec9b040}.knob-card--config-override{position:relative}.knob-card--config-override:after{content:"";position:absolute;top:3px;right:3px;width:6px;height:6px;border-radius:50%;background:#e0a050;pointer-events:none;z-index:2}.bank-tab--has-overrides{position:relative}.bank-tab--has-overrides:after{content:"";position:absolute;top:-2px;right:-2px;width:5px;height:5px;border-radius:50%;background:#e0a050;pointer-events:none}.inspector-override-row{display:flex;align-items:center;gap:6px;padding:2px 0 4px}.inspector-override-badge{font-size:10px;color:#e0a050;font-weight:600;letter-spacing:.02em}.inspector-override-reset{font-size:10px;color:var(--text-muted);background:none;border:1px solid var(--border);border-radius:3px;padding:1px 6px;cursor:pointer;font-family:var(--font)}.inspector-override-reset:hover{color:var(--text);border-color:var(--border-hover)}.inspector-override-set{font-size:10px;color:var(--text-muted);background:none;border:1px solid var(--border);border-radius:3px;padding:2px 8px;cursor:pointer;font-family:var(--font)}.inspector-override-set:hover{color:#e0a050;border-color:#e0a050}.inspector-conflict-row{display:flex;align-items:flex-start;gap:8px;margin:6px 0 4px;padding:8px 10px;background:color-mix(in srgb,var(--warning) 18%,transparent);border:1px solid var(--warning);border-left:3px solid var(--warning-bright);border-radius:4px;font-size:11.5px;line-height:1.4;color:var(--warning-dim-text)}.inspector-conflict-icon{color:var(--warning-bright);font-size:16px;line-height:1;flex-shrink:0;font-weight:700}.inspector-conflict-text{flex:1}.inspector-conflict-text strong{color:var(--warning-bright);font-weight:600}.type-picker{width:var(--card-w);min-height:126px;background:var(--surface);border:1px solid var(--accent-dim);border-radius:var(--radius);display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:6px}.type-picker__btn{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;padding:6px 8px;background:var(--bg);border:1px solid var(--border);border-radius:4px;cursor:pointer;font-size:10px;color:var(--text-muted);text-transform:capitalize;letter-spacing:.06em;transition:border-color .15s,background .15s,color .15s}.type-picker__btn:hover{border-color:var(--accent);background:var(--accent-dim);color:var(--text)}.type-picker__btn--learn{color:var(--learn, #0af);border-color:var(--learn, #0af);font-weight:600}.type-picker__btn--learn:hover{background:color-mix(in srgb,var(--learn, #0af) 15%,transparent)}.type-picker__sep{height:1px;background:var(--border);margin:2px 0}.piano-keyboard{margin-top:14px;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.piano-keyboard__header{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:11px}.piano-keyboard__title{font-weight:600;color:var(--text)}.piano-keyboard__range{color:var(--text-ghost);font-family:var(--font)}.piano-keyboard__offscreen{display:flex;gap:4px}.piano-keyboard__offscreen-tag{display:inline-flex;align-items:center;gap:2px;font-size:10px;font-weight:600;color:var(--text-ghost);background:var(--surface-2);border:1px solid var(--border);border-radius:3px;padding:1px 5px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .12s,background .12s,border-color .12s,box-shadow .12s}.piano-keyboard__offscreen-tag:hover{color:var(--text);background:var(--surface-hover);border-color:var(--accent)}.piano-keyboard__offscreen-tag--active{color:#fff;background:var(--accent);border-color:var(--accent);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 60%,transparent);animation:piano-offscreen-pulse .7s ease-in-out infinite}@keyframes piano-offscreen-pulse{0%,to{box-shadow:0 0 10px color-mix(in srgb,var(--accent) 60%,transparent)}50%{box-shadow:0 0 16px color-mix(in srgb,var(--accent) 85%,transparent)}}.piano-keyboard__octave-controls{margin-left:auto;display:flex;align-items:center;gap:4px}.piano-keyboard__oct-btn{width:24px;height:24px;background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:3px;cursor:pointer;font-size:14px;line-height:1}.piano-keyboard__oct-btn:hover:not(:disabled){background:var(--surface-hover)}.piano-keyboard__oct-btn:disabled{opacity:.4;cursor:not-allowed}.piano-keyboard__octave-label{min-width:50px;text-align:center;font-family:var(--font);color:var(--text-ghost);font-size:10px}.piano-keyboard__clear-btn{font-size:10px;padding:3px 8px;background:transparent;border:1px solid color-mix(in srgb,var(--danger, #c84a3a) 50%,transparent);color:color-mix(in srgb,var(--danger, #c84a3a) 80%,var(--text));border-radius:3px;cursor:pointer;transition:background .1s,color .1s,border-color .1s}.piano-keyboard__clear-btn:hover{background:color-mix(in srgb,var(--danger, #c84a3a) 18%,transparent);border-color:var(--danger, #c84a3a);color:var(--danger, #c84a3a)}.piano-keyboard__clear-confirm{display:inline-flex;align-items:center;gap:4px;background:color-mix(in srgb,var(--danger, #c84a3a) 12%,transparent);border:1px solid color-mix(in srgb,var(--danger, #c84a3a) 60%,transparent);border-radius:3px;padding:2px 4px 2px 8px;animation:piano-clear-pulse 5s linear forwards}@keyframes piano-clear-pulse{0%{box-shadow:0 0 8px color-mix(in srgb,var(--danger, #c84a3a) 50%,transparent)}to{box-shadow:0 0 0 transparent}}.piano-keyboard__clear-confirm-msg{font-size:10px;color:var(--text);font-weight:600}.piano-keyboard__clear-cancel,.piano-keyboard__clear-go{font-size:10px;padding:2px 8px;border-radius:3px;cursor:pointer;border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.piano-keyboard__clear-cancel:hover{background:var(--surface-hover)}.piano-keyboard__clear-go{border-color:var(--danger, #c84a3a);background:var(--danger, #c84a3a);color:#fff}.piano-keyboard__clear-go:hover{background:color-mix(in srgb,var(--danger, #c84a3a) 80%,#000)}.piano-keyboard__warn{font-size:10px;color:var(--warning-bright, #e8a04a);margin-bottom:6px}.piano-keyboard__scroll{overflow-x:auto;overflow-y:hidden;padding-bottom:4px}.piano-keyboard__keys{position:relative}.piano-key{border:1px solid #222;cursor:pointer;padding:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;font-family:var(--font);font-size:8px;-webkit-user-select:none;user-select:none;transition:background-color .08s ease,box-shadow .08s ease}.piano-key:disabled{opacity:.35;cursor:not-allowed}.piano-key--white{background:#f5f3ee;color:#444;border-radius:0 0 3px 3px}.piano-key--white:hover:not(:disabled){background:#e8e2d0}.piano-key--black{background:#cfccc3;color:#5a5852;border-radius:0 0 2px 2px;border-color:#6e6b63}.piano-key--black:hover:not(:disabled){background:#bdbab1}.piano-key--mode-par{--mode-c: var(--accent)}.piano-key--mode-fn{--mode-c: rgb(251, 191, 36)}.piano-key--mode-slot{--mode-c: rgb(192, 132, 252)}.piano-key--mode-modify{--mode-c: rgb(244, 114, 182)}.piano-key--mode-empty{--mode-c: var(--accent)}.piano-key--mapped.piano-key--white{background:color-mix(in srgb,var(--mode-c) 18%,#f5f3ee);border-color:color-mix(in srgb,var(--mode-c) 65%,#222);border-width:2px}.piano-key--mapped.piano-key--black{background:color-mix(in srgb,var(--mode-c) 30%,#cfccc3);border-color:color-mix(in srgb,var(--mode-c) 70%,#6e6b63);border-width:2px}.piano-key--mode-empty.piano-key--white{background:color-mix(in srgb,var(--mode-c) 9%,#f5f3ee);border-color:color-mix(in srgb,var(--mode-c) 35%,#222);border-width:1px}.piano-key--mode-empty.piano-key--black{background:color-mix(in srgb,var(--mode-c) 15%,#cfccc3);border-color:color-mix(in srgb,var(--mode-c) 38%,#6e6b63);border-width:1px}.piano-key--selected.piano-key--white,.piano-key--selected.piano-key--black{background:var(--mode-c, var(--accent));color:#fff;box-shadow:0 0 0 2px var(--mode-c, var(--accent)) inset}.piano-key__label{padding-bottom:4px;pointer-events:none}.piano-key__mode-badge{position:absolute;bottom:16px;left:0;right:0;text-align:center;font-size:11px;line-height:1;font-weight:700;color:color-mix(in srgb,var(--mode-c, var(--accent)) 75%,#000);pointer-events:none;text-shadow:-1px 0 0 rgba(0,0,0,.1),1px 0 0 rgba(0,0,0,.1),0 -1px 0 rgba(0,0,0,.1),0 1px 0 rgba(0,0,0,.1)}.piano-key__mode-badge--black{font-size:10px;bottom:6px}.piano-key--active.piano-key--white:not(.piano-key--mapped){background:#cfcfcf;box-shadow:0 0 0 1px #ffffff40,0 0 5px #ffffff2e}.piano-key--active.piano-key--black:not(.piano-key--mapped){background:#9c9890;box-shadow:0 0 0 1px #0003,0 0 5px #0000001f}.piano-key--active.piano-key--mapped.piano-key--white{background:color-mix(in srgb,var(--mode-c) 60%,#f5f3ee);box-shadow:0 0 0 2px color-mix(in srgb,var(--mode-c) 80%,transparent),0 0 12px color-mix(in srgb,var(--mode-c) 50%,transparent)}.piano-key--active.piano-key--mapped.piano-key--black{background:color-mix(in srgb,var(--mode-c) 65%,#cfccc3);box-shadow:0 0 0 2px color-mix(in srgb,var(--mode-c) 85%,transparent),0 0 10px color-mix(in srgb,var(--mode-c) 55%,transparent)}.piano-key--active.piano-key--selected{box-shadow:0 0 0 2px var(--mode-c, var(--accent)) inset,0 0 14px color-mix(in srgb,var(--mode-c, var(--accent)) 70%,transparent)}.piano-key--drag-over.piano-key--white{background:color-mix(in srgb,var(--accent) 45%,#f5f3ee);box-shadow:0 0 0 2px var(--accent),0 0 10px color-mix(in srgb,var(--accent) 40%,transparent)}.piano-key--drag-over.piano-key--black{background:color-mix(in srgb,var(--accent) 55%,#cfccc3);box-shadow:0 0 0 2px var(--accent),0 0 10px color-mix(in srgb,var(--accent) 40%,transparent)}.piano-key--pending-inspect{outline:2px dashed var(--accent);outline-offset:-2px}.piano-keyboard--drop-target{box-shadow:0 0 0 2px var(--accent),0 0 14px color-mix(in srgb,var(--accent) 50%,transparent)}.piano-keyboard__drop-hint{font-size:10px;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,transparent);border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);padding:2px 6px;border-radius:3px;animation:piano-drop-pulse 1.4s ease-in-out infinite}@keyframes piano-drop-pulse{0%,to{opacity:.85}50%{opacity:1}}.piano-keyboard--drop-target .piano-key--white{cursor:copy}.piano-keyboard--drop-target .piano-key--white:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 30%,#f5f3ee)}.piano-keyboard--drop-target .piano-key--black:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 50%,#1c1c1c)}.knob-card{position:relative;width:var(--card-w);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s,box-shadow .15s;display:flex;flex-direction:column}.knob-card--mapped{border-color:var(--accent-dim)}.knob-card--mapped:hover{border-color:var(--accent)}.knob-card:not(.knob-card--mapped):hover{border-color:var(--border-mid)}.knob-card--hover{border-color:var(--warning-bright);box-shadow:0 0 4px color-mix(in srgb,var(--warning-bright) 30%,transparent)}.knob-card--hover:hover{border-color:var(--warning-bright);box-shadow:0 0 6px color-mix(in srgb,var(--warning-bright) 45%,transparent)}.knob-card--selected{border-color:var(--accent)!important;box-shadow:0 0 0 1px var(--accent)!important}.knob-card--slot-control{border-color:rgba(var(--slot-ctrl-c, 192, 132, 252),.45)}.knob-card--slot-control:hover{border-color:rgba(var(--slot-ctrl-c, 192, 132, 252),.7)}.knob-card--slot-target:not(.knob-card--slot-control){border-color:rgba(var(--slot-tgt-c, 192, 132, 252),.35)}.knob-card--slot-target:not(.knob-card--slot-control):hover{border-color:rgba(var(--slot-tgt-c, 192, 132, 252),.55)}.knob-card--slot-target{background-color:rgba(var(--slot-tgt-c, 192, 132, 252),.06)}.knob-card--slot-target:hover{background-color:rgba(var(--slot-tgt-c, 192, 132, 252),.1)}.knob-card--modify-control{border-color:rgba(var(--mod-ctrl-c, 45, 212, 191),.45)}.knob-card--modify-control:hover{border-color:rgba(var(--mod-ctrl-c, 45, 212, 191),.7)}.knob-card--modify-target:not(.knob-card--modify-control){border-color:rgba(var(--mod-tgt-c, 45, 212, 191),.35)}.knob-card--modify-target:not(.knob-card--modify-control):hover{border-color:rgba(var(--mod-tgt-c, 45, 212, 191),.55)}.knob-card--modify-target{background-color:rgba(var(--mod-tgt-c, 45, 212, 191),.06)}.knob-card--modify-target:hover{background-color:rgba(var(--mod-tgt-c, 45, 212, 191),.1)}.knob-card__modify-badge{font-size:.75rem;margin-right:2px;color:#2dd4bf}.knob-card__param-chip--modify{color:#2dd4bf;cursor:grab;-webkit-user-select:none;user-select:none}.knob-card__param-names--modify{position:relative}.knob-card__modify-amount-bar{position:absolute;bottom:0;left:0;height:2px;background:#2dd4bf;opacity:.5;border-radius:1px;transition:width .08s ease-out;pointer-events:none}.knob-card__shift-badge{font-size:.7rem;margin-right:2px;color:#f59e0b}.knob-card__param-chip--shift{color:#f59e0b}.knob-card__param-names--shift-active .knob-card__param-chip--shift{color:#fbbf24;text-shadow:0 0 4px rgba(251,191,36,.4)}.knob-card__param-names--shift-active .knob-card__shift-badge{color:#fbbf24}.shift-active-badge{display:inline-block;margin-left:6px;padding:1px 5px;font-size:.6rem;font-weight:700;letter-spacing:.5px;border-radius:3px;background:#f59e0b;color:#1a1a2e;vertical-align:middle}.inspector-section--encoder .btn-field-row{margin-bottom:6px}.modify-op-seg{display:flex;gap:1px;flex-wrap:wrap}.modify-op-seg__btn{flex:1;min-width:0;padding:2px 4px;font-size:.65rem;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;border-radius:3px;transition:background .1s,color .1s}.modify-op-seg__btn:hover{background:var(--surface-hover);color:var(--text)}.modify-op-seg__btn--active{background:#2dd4bf33;color:#2dd4bf;border-color:#2dd4bf66}.modify-amount-display{position:relative;flex:1;height:18px;background:var(--surface);border:1px solid var(--border);border-radius:3px;overflow:hidden}.modify-amount-display__bar{position:absolute;top:0;left:0;height:100%;background:#2dd4bf4d;transition:width .08s ease-out}.modify-amount-display__label{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;height:100%;font-size:.65rem;color:var(--text-dim)}.modify-clear-btn{margin-top:4px;padding:2px 8px;font-size:.65rem;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;border-radius:3px}.modify-clear-btn:hover{background:var(--danger-dim);color:var(--danger);border-color:var(--danger)}.modify-add-btn{width:100%;padding:4px 0;margin-top:4px;font-size:.65rem;border:1px dashed var(--border);background:transparent;color:var(--text-dim);cursor:pointer;border-radius:3px}.modify-add-btn:hover{border-color:#2dd4bf80;color:#2dd4bfe6;background:#2dd4bf0f}.modify-target-row{position:relative;padding:4px 0;border-bottom:1px solid var(--border)}.modify-target-row:last-of-type{border-bottom:none}.modify-target-row__actions{display:flex;gap:4px;justify-content:flex-end;margin-top:2px}.modify-target-row__goto{padding:1px 6px;font-size:.6rem;border:1px solid var(--border);background:transparent;color:#2dd4bf;cursor:pointer;border-radius:3px}.modify-target-row__goto:hover{background:#2dd4bf1f;border-color:#2dd4bf66}.modify-target-row .modify-clear-btn{position:static;top:auto;right:0;margin-top:0;padding:1px 5px;font-size:.6rem}.inspector-slot-target--modify{border-left:2px solid rgba(45,212,191,.3);padding-left:6px}.inspector-section--modified-by{border-left:2px solid rgba(45,212,191,.25);margin-left:2px;padding-left:6px}.modified-by-list{display:flex;flex-direction:column;gap:2px}.modified-by-row{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:3px;background:#2dd4bf0a;border:1px solid rgba(45,212,191,.12)}.modified-by-row__source{font-size:.65rem;color:#2dd4bf;white-space:nowrap;font-variant-numeric:tabular-nums}.modified-by-row__source--clickable{cursor:pointer;border-radius:3px;padding:1px 4px;margin:-1px -4px}.modified-by-row__source--clickable:hover{background:#2dd4bf26}.modify-op-seg--compact{gap:1px}.modify-op-seg--compact .modify-op-seg__btn{padding:1px 3px;font-size:.55rem}.modified-by-row__op{font-size:.6rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.modified-by-row__amount{position:relative;flex:1;height:14px;background:var(--surface);border:1px solid var(--border);border-radius:2px;overflow:hidden;min-width:40px}.modified-by-row__amount-bar{position:absolute;top:0;left:0;height:100%;background:#2dd4bf40;transition:width .08s ease-out}.modified-by-row__amount-label{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;height:100%;font-size:.58rem;color:var(--text-dim)}.modified-by-row__remove{flex-shrink:0;width:16px;height:16px;padding:0;border:1px solid var(--border);background:transparent;color:var(--text-dim);font-size:.6rem;line-height:1;cursor:pointer;border-radius:2px;display:flex;align-items:center;justify-content:center;position:relative}.modified-by-row__remove:hover{background:var(--danger-dim);color:var(--danger);border-color:var(--danger)}.knob-card--pickup-waiting{border-color:var(--warning);opacity:.6}.knob-card--pickup-waiting .knob-card__icon-area:after{content:"⇥";position:absolute;top:2px;right:4px;font-size:9px;color:var(--warning);opacity:.8}.knob-card__icon-area{position:relative}.knob-card--compact .knob-card__cc-row{display:none}.knob-card--compact .knob-card__icon-area{height:28px}.knob-card--compact .slot-icon--knob{width:18px;height:18px;border-width:2px}.knob-card--compact .slot-icon--knob:after{top:-4px;width:2px;height:6px}.knob-card--compact .slot-icon--fader{width:4px;height:18px}.knob-card--compact .slot-icon--fader:after{width:10px;height:4px;top:25%}.knob-card--compact .slot-icon--button{width:20px;height:14px;border-radius:4px;box-shadow:0 2px 0 var(--button-shadow)}.knob-card--compact .slot-icon--push:before{top:4px;right:4px;bottom:4px;left:4px}.knob-card--compact .knob-card__toolbar{height:18px;padding:2px 6px 0}.app--mini{--card-w: 64px}.knob-card--mini .knob-card__toolbar{height:14px;padding:1px 4px 0}.knob-card--mini .knob-card__toolbar .drag-handle,.knob-card--mini .knob-card__toolbar .knob-card__remove{font-size:.65rem}.knob-card--mini .knob-card__icon-area{height:22px}.knob-card--mini .slot-icon--knob{width:14px;height:14px;border-width:2px}.knob-card--mini .slot-icon--knob:after{top:-3px;width:2px;height:5px}.knob-card--mini .slot-icon--fader{width:3px;height:14px}.knob-card--mini .slot-icon--fader:after{width:8px;height:3px;top:25%}.knob-card--mini .slot-icon--button{width:16px;height:10px;border-radius:3px}.knob-card--mini .slot-icon--push:before{top:3px;right:3px;bottom:3px;left:3px}.knob-card--mini{overflow:visible}.knob-card__mini-row{display:flex;align-items:center;justify-content:center;gap:4px;padding:2px 4px 4px}.knob-card__mapped-dot{width:6px;height:6px;border-radius:50%;background:var(--border-mid);flex-shrink:0}.knob-card__mapped-dot--on{background:var(--accent)}.learn-btn--mini{font-size:.6rem;padding:1px 4px;min-width:0}.knob-card__toolbar{display:flex;align-items:center;justify-content:space-between;padding:4px 6px 0;height:22px}.knob-card__name-input{flex:1;min-width:0;background:transparent;border:1px solid transparent;border-radius:2px;color:inherit;font-size:.75rem;line-height:1;padding:1px 3px;text-align:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;outline:none}.knob-card__name-input:placeholder-shown{color:#ffffff26}.knob-card__name-input:hover{border-color:#ffffff1f}.knob-card__name-input:focus{border-color:#ffffff4d}.knob-card--compact .knob-card__name-input,.knob-card--mini .knob-card__name-input{font-size:.65rem;padding:0 2px}.knob-card__lock-btn{position:relative;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.55rem;padding:0 1px;line-height:1;opacity:0;transition:opacity .15s}.knob-card:hover .knob-card__lock-btn,.knob-card__lock-btn--on{opacity:1}.knob-card__lock-btn--on{color:var(--accent)}.knob-card__lock-btn:after{content:attr(data-tip);position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:4px;background:#0f0f0ff5;color:var(--text);border:1px solid var(--border);border-radius:3px;padding:4px 8px;font-size:10px;font-family:var(--font);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s .3s;z-index:200}.knob-card__lock-btn:hover:after{opacity:1}.knob-card--locked{box-shadow:inset 0 0 0 1px #6366f159}.knob-card__icon-area{display:flex;align-items:center;justify-content:center;height:52px}.knob-card__cc-row{display:flex;align-items:center;gap:5px;padding:0 8px 5px;border-bottom:1px solid var(--border)}.knob-card__msg-type{display:flex;gap:0;flex-shrink:0}.knob-card__conflict-badge{flex-shrink:0;color:var(--warning-bright);font-size:13px;line-height:1;cursor:help;font-weight:700;text-shadow:0 0 4px color-mix(in srgb,var(--warning-bright) 60%,transparent);animation:conflict-pulse 2s ease-in-out infinite}.knob-card__conflict-badge:hover,.knob-list__conflict-badge:hover{animation:none;opacity:1}.knob-card__conflict-badge[data-tip]:after,.knob-list__conflict-badge[data-tip]:after{max-width:min(280px,calc(100vw - 32px));width:max-content;right:0;left:auto;transform:none;font-size:11px;line-height:1.4;padding:6px 10px;text-shadow:none}.knob-card--compact .knob-card__conflict-badge,.knob-card--mini .knob-card__conflict-badge{font-size:11px}.knob-card__values{display:flex;flex-direction:column;gap:4px;padding:4px 6px 6px}.knob-card__values--push{padding-top:2px}.knob-card__values--empty{color:var(--text-muted);font-size:10px;text-align:center;opacity:.5;padding:6px 6px 8px}.multi-view{display:flex;flex-direction:column;gap:14px;padding:6px 0 12px}.multi-view__section{border:1px solid var(--border);border-radius:6px;background:color-mix(in srgb,var(--surface) 50%,transparent);padding:6px 8px 10px}.multi-view__section--active{border-color:var(--accent-dim);box-shadow:0 0 0 1px var(--accent-dim)}.multi-view__section{min-width:0}.multi-view__section-body{overflow-x:auto;overflow-y:visible;max-width:100%}.multi-view__section--collapsed{padding-bottom:4px}.multi-view__collapse-toggle{background:transparent;border:none;color:var(--text-muted);font-size:11px;cursor:pointer;padding:0 4px;line-height:1;flex-shrink:0}.multi-view__collapse-toggle:hover{color:var(--text)}.multi-view__header{display:flex;align-items:center;gap:10px;padding:2px 4px 8px;font-size:11px;color:var(--text-muted)}.multi-view__device-name{font-weight:600;font-size:12px;color:var(--text);cursor:pointer;padding:2px 6px;border-radius:3px}.multi-view__device-name:hover{background:var(--surface-hover)}.multi-view__device-name--active{color:var(--accent);cursor:default}.multi-view__device-name--active:hover{background:transparent}.multi-view__bank-tabs{margin-left:auto}.knob-card__values--mode{gap:4px}.knob-card__value-mode-chip{display:flex;align-items:center;gap:4px;font-size:10px;padding:2px 6px;border-radius:3px;background:var(--accent-dim);color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:grab;-webkit-user-select:none;user-select:none;max-width:100%}.knob-card__value-mode-chip--fn{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-style:italic}.knob-card__value-mode-chip--slot{background:#c084fc2e;color:#c084fc}.knob-card__value-mode-chip--modify{background:#f472b62e;color:#f472b6}.knob-card__value-mode-chip--slot .knob-card__slot-badge,.knob-card__value-mode-chip--modify .knob-card__modify-badge{font-size:10px}.knob-card__value-mode-chip--active,.knob-card__param-chip--slot-active{background:#c084fc6b!important;color:#fff!important;box-shadow:0 0 0 1px #c084fc99,0 0 6px #c084fc73}.knob-card__value-mode-chip--active .knob-card__slot-badge,.knob-card__param-chip--slot-active .knob-card__slot-badge{color:#fff}.knob-card__value-row{display:flex;flex-direction:column;gap:2px;font-size:10px;line-height:1.2}.knob-card__value-row--broken{opacity:.55}.knob-card__value-row--broken .knob-card__value-bar-fill{background:var(--warning)}.knob-card__value-chip{display:block;font-size:10px;padding:1px 5px;background:var(--accent-dim);color:var(--accent);border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:grab;-webkit-user-select:none;user-select:none;max-width:100%}.knob-card__value-chip:hover{background:color-mix(in srgb,var(--accent) 30%,transparent)}.knob-card__value-chip:active{cursor:grabbing}.knob-card__value-meter{display:flex;align-items:center;gap:5px}.knob-card__value-meter--pulse{font-size:10px;color:var(--text-muted);letter-spacing:.5px;padding:1px 2px}.knob-card__value-bar{position:relative;flex:1 1 auto;height:6px;background:#ffffff0f;border-radius:3px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0a}.knob-card__value-bar-fill{position:absolute;top:0;bottom:0;left:0;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 60%,transparent) 0%,var(--accent) 100%);border-radius:3px;transition:width 60ms linear}.knob-card__value-num{font-variant-numeric:tabular-nums;font-size:10px;color:var(--text-muted);min-width:28px;text-align:right;white-space:nowrap}@keyframes conflict-pulse{0%,to{opacity:1}50%{opacity:.55}}.knob-list__row{position:relative!important}.knob-list .knob-list__conflict-badge{position:absolute!important;top:50%!important;right:6px!important;left:auto!important;transform:translateY(-50%)!important;margin-left:0!important;grid-column:unset!important;grid-row:unset!important}.msg-type-chip{font-size:8px;padding:1px 3px;border:none;background:transparent;color:var(--text-ghost);cursor:pointer;line-height:1;opacity:.4;transition:opacity .15s}.msg-type-chip:first-child{border-radius:2px 0 0 2px}.msg-type-chip:last-child{border-radius:0 2px 2px 0}.msg-type-chip--active{opacity:1;color:var(--text-muted)}.msg-type-hw-badge{font-size:7px;padding:0 2px;color:var(--text-ghost);opacity:.6;line-height:1;position:relative;margin-left:1px}.btn-field-row{display:flex;align-items:center;gap:6px}.btn-field-label{font-size:10px;color:var(--text-muted);min-width:52px;flex-shrink:0;position:relative}.btn-degraded-warning{flex-shrink:0;font-size:13px;line-height:1;position:relative;cursor:default}.count-section{margin-top:2px}.count-section__header{display:flex;align-items:center;gap:4px;cursor:pointer}.count-section__header .toggle-row{flex:1;padding:4px}.count-section__arrow{font-size:8px;color:var(--text-muted);margin-right:2px}.count-section__body{display:flex;flex-direction:column;gap:4px;padding:4px 0 2px}.count-row{display:flex;align-items:center;gap:6px}.count-row__label{font-size:10px;color:var(--text-muted);min-width:32px;flex-shrink:0}.count-row__input{width:56px;padding:2px 4px;font-size:10px;background:var(--surface);border:1px solid var(--border-mid);border-radius:3px;color:var(--text);text-align:center}.count-row__input:focus{border-color:var(--accent);outline:none}.count-row__input--range{width:48px}.count-row__input::placeholder{color:var(--text-muted);opacity:.5}.knob-card__push-sep{height:1px;background:color-mix(in srgb,var(--knob-color) 20%,transparent);margin:0 8px}.knob-card__push-row{display:flex;align-items:center;gap:5px;padding:4px 8px 5px;min-height:22px}.knob-card__push-row--drag-over{background:color-mix(in srgb,var(--accent) 15%,transparent);border-radius:3px;outline:1px solid var(--accent)}.knob-card__param-names--push{font-size:10px;color:color-mix(in srgb,var(--knob-color) 70%,var(--text-muted))}.knob-card__params{display:flex;align-items:center;gap:5px;padding:5px 8px;min-height:26px}.knob-card__param-names{flex:1;min-width:0;font-size:11px;font-weight:600;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;gap:2px}.knob-card__param-chip{cursor:grab;border-radius:2px;padding:0 2px;-webkit-user-select:none;user-select:none}.knob-card__param-chip:hover{background:var(--accent-dim)}.knob-card__param-chip+.knob-card__param-chip:before{content:"·";margin-right:2px;color:var(--text-muted);pointer-events:none}.knob-card__param-chip--broken{color:var(--danger);cursor:default}.knob-card__push-row--drag-over{background:var(--accent-dim);border-radius:3px}.knob-card__param-names--broken{color:var(--danger)}.knob-card__param-names--empty{color:var(--text-ghost);font-style:italic;font-weight:400}.knob-card__param-names--hover{color:var(--warning-bright);font-style:italic;font-weight:400}.knob-card__param-names--fn{color:var(--accent);font-style:italic;opacity:.8;cursor:grab;-webkit-user-select:none;user-select:none}.knob-card__param-names--fn:hover{opacity:1}.knob-card__param-names--slot{display:flex;align-items:center;overflow:visible}.knob-card__param-chip--slot{color:#c084fc;font-style:italic;display:flex;align-items:center;gap:2px}.knob-card__param-chip--slot:hover{background:#c084fc26}.knob-card__slot-badge{font-style:normal;flex-shrink:0;opacity:.85}.knob-card__slot-empty{opacity:.45;font-size:.88em}.slot-icon{position:relative;flex-shrink:0}.slot-icon--knob{width:32px;height:32px;border-radius:50%;border:3px solid var(--knob-color);box-shadow:0 0 10px color-mix(in srgb,var(--knob-color) 25%,transparent)}.slot-icon--knob:after{content:"";position:absolute;top:-6px;left:50%;transform:translate(-50%);width:3px;height:7px;background:var(--knob-color);border-radius:2px}.slot-icon--fader{width:6px;height:32px;background:var(--border);border-radius:3px}.slot-icon--fader:after{content:"";position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);width:18px;height:8px;background:var(--fader-color);border-radius:3px;box-shadow:0 0 8px color-mix(in srgb,var(--fader-color) 30%,transparent)}.slot-icon--button{width:30px;height:22px;border:2px solid var(--button-color);border-radius:6px;background:transparent;box-shadow:0 3px 0 var(--button-shadow),0 0 10px color-mix(in srgb,var(--button-color) 20%,transparent)}.slot-icon--knob-rel:after{display:none}.slot-icon--push:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border-radius:50%;background:var(--knob-color);opacity:.7}.knob-card--selected .slot-icon--knob{border-color:var(--accent)}.knob-card__remove{background:none;border:none;color:var(--border-mid);font-size:16px;line-height:1;cursor:pointer;padding:0;margin-left:auto;flex-shrink:0;transition:color .15s}.knob-card__remove:hover{color:var(--danger)}.field-input--cc{flex:1;min-width:0;background:transparent;border:none;border-bottom:1px solid var(--border);border-radius:0;color:var(--text-muted);font-size:12px;font-family:var(--font);padding:2px 4px;outline:none;transition:border-color .15s,color .15s}.field-input--cc:focus{border-color:var(--accent);color:var(--text)}.field-input--cc::placeholder{color:var(--border-mid)}.field-input--channel{max-width:52px;text-align:center}.slot-target-stepper{display:flex;align-items:center;flex:1;min-width:0;gap:2px}.slot-target-stepper__input{text-align:center;flex:1;min-width:0}.slot-target-stepper__btn{flex-shrink:0;width:18px;height:18px;padding:0;border:1px solid var(--border);border-radius:3px;background:transparent;color:var(--text-muted);font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.slot-target-stepper__btn:hover{border-color:var(--border-mid);color:var(--text)}.slot-target-stepper__btn:active{background:var(--bg-raised)}.assignment-op{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.assignment-par{font-size:13px;font-weight:600;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em;flex:1;min-width:0}.assignment-group-tag{font-size:9px;font-weight:400;color:var(--accent-dim);text-transform:uppercase;letter-spacing:.1em;vertical-align:middle;margin-left:3px}.assignment-empty{font-size:11px;color:#2e2e2e;font-style:italic}.assignment-edit-hint{position:absolute;right:8px;bottom:5px;font-size:8px;color:var(--border-mid)}.assignment-edit-hint--inline{position:static;right:auto;bottom:auto;flex-shrink:0}.assignment-editor{background:var(--bg);border-top:1px solid var(--border);padding:8px 10px;display:flex;flex-direction:column;gap:6px;width:100%;overflow:visible}.editor-row{display:flex;align-items:center;gap:6px;min-width:0}.editor-label{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);width:22px;flex-shrink:0}.editor-input{flex:1;min-width:0;background:var(--bg-deep);border:1px solid var(--border);border-radius:3px;color:var(--text);font-size:11px;font-family:monospace;padding:3px 6px;outline:none;transition:border-color .15s}.editor-input:focus{border-color:var(--accent)}.editor-actions{display:flex;gap:6px}.editor-btn{flex:1;padding:4px 8px;border-radius:3px;border:none;font-size:11px;cursor:pointer;transition:opacity .15s}.editor-btn:disabled{opacity:.3;cursor:default}.editor-btn--primary{background:var(--accent);color:#fff}.editor-btn--primary:not(:disabled):hover{opacity:.85}.editor-btn--danger{background:#3a1010;color:var(--danger);border:1px solid #3a1010}.editor-btn--danger:hover{background:#4a1515}.editor-divider{height:1px;background:var(--border);margin:2px 0}.editor-range-row{display:flex;gap:6px}.range-field{flex:1;display:flex;flex-direction:column;gap:2px}.range-field__head{display:flex;align-items:center;justify-content:center;gap:4px;padding:2px 0}.range-field__head--clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.range-label{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);text-align:center}.range-label--override{color:var(--accent)}.range-clamp-check{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:13px;height:13px;border:1px solid #555;border-radius:2px;background:transparent;cursor:pointer;flex-shrink:0;transition:background .15s,border-color .15s;position:relative;padding:3px;background-clip:content-box}.range-clamp-check:checked{background:var(--accent);border-color:var(--accent)}.range-clamp-check:checked:after{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6'%3E%3Cpath d='M1 3l1.5 1.5L5 1.5' stroke='%23fff' stroke-width='1.2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat}.range-input{width:100%;background:var(--bg-deep);border:1px solid var(--border);border-radius:3px;color:var(--text-muted);font-size:11px;font-family:monospace;padding:3px 4px;text-align:center;outline:none;transition:border-color .15s,color .15s}.range-input--override{color:var(--accent);border-color:var(--accent-dim)}.range-input--clamped{border-color:var(--accent-dim);box-shadow:0 0 0 1px var(--accent-dim) inset}.range-input:focus{border-color:var(--accent);color:var(--text)}.toggle-row{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 4px}.easing-picker{position:relative;margin:4px 0}.easing-picker__btn{display:flex;align-items:center;gap:6px;width:100%;padding:4px 8px;background:var(--surface);border:1px solid var(--border-mid);border-radius:4px;color:var(--text);font-size:10px;cursor:pointer}.easing-picker__btn:hover{border-color:var(--accent)}.easing-picker__label{flex:1;text-align:left}.easing-picker__dropdown{position:fixed;max-height:260px;width:320px;overflow-y:auto;background:var(--bg);border:1px solid var(--border-mid);border-radius:6px;z-index:500;padding:4px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:2px;box-shadow:0 8px 24px #00000080}.easing-picker__option{display:flex;align-items:center;gap:3px;padding:4px 5px;background:none;border:none;border-radius:3px;color:var(--text-muted);font-size:8px;cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden}.easing-picker__option:hover{background:var(--card-hover);color:var(--text)}.easing-picker__option--active{color:var(--accent);background:var(--accent-dim)}[data-tip]{position:relative}[data-tip]:after{content:attr(data-tip);position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%);background:#0f0f0ff5;color:var(--text);border:1px solid var(--border);border-radius:3px;padding:4px 8px;font-size:10px;font-family:var(--font);white-space:pre-line;max-width:220px;pointer-events:none;opacity:0;transition:opacity .12s .35s;z-index:200}[data-tip]:hover:after{opacity:1}.par-tooltip{position:fixed;transform:translate(-50%);background:#0f0f0ff5;color:var(--text);border:1px solid var(--border);border-radius:3px;padding:4px 8px;font-size:10px;font-family:var(--font);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s .35s;z-index:300}[data-tip-up]:after{content:attr(data-tip-up);position:absolute;bottom:calc(100% + 4px);top:auto;left:50%;transform:translate(-50%);background:#0f0f0ff5;color:var(--text);border:1px solid var(--border);border-radius:3px;padding:4px 8px;font-size:10px;font-family:var(--font);white-space:pre-line;max-width:220px;pointer-events:none;opacity:0;transition:opacity .12s .35s;z-index:200}[data-tip-up]:hover:after{opacity:1}.toggle-row--disabled{opacity:.25;pointer-events:none}.toggle-label{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.toggle-btn{position:relative;width:28px;height:15px;border-radius:8px;border:none;cursor:pointer;padding:0;flex-shrink:0;transition:background .2s}.toggle-btn--off{background:var(--surface-raised)}.toggle-btn--on{background:var(--accent)}.toggle-btn__thumb{position:absolute;top:2px;width:11px;height:11px;border-radius:50%;background:#fff;transition:left .15s;pointer-events:none}.toggle-btn--off .toggle-btn__thumb{left:2px}.toggle-btn--on .toggle-btn__thumb{left:15px}.toolbar-right{display:flex;align-items:center;gap:8px}.knob-list{display:flex;flex-direction:column}.knob-list__head,.knob-row{display:grid;grid-template-columns:20px 48px 64px 64px 1fr 56px 56px 56px 32px 32px 32px 28px;align-items:center;min-height:30px}.knob-list__head{padding:0 4px;border-bottom:1px solid var(--border);margin-bottom:2px;position:sticky;top:0;background:var(--bg);z-index:1;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.kl-slot{padding:0 6px 0 4px}.kl-name{padding:0 2px;overflow:hidden}.kl-name-input{width:100%;background:transparent;border:1px solid transparent;border-radius:2px;color:inherit;font-size:.7rem;padding:1px 3px;outline:none;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.kl-name-input:hover{border-color:#ffffff1f}.kl-name-input:focus{border-color:var(--accent);color:var(--text)}.kl-cc,.kl-assign{padding:0 4px}.kl-val{padding:0 2px;text-align:center;font-family:monospace}.kl-tog,.kl-rm{display:flex;justify-content:center}.knob-row-group{border-bottom:1px solid #1a1a1a}.knob-row{padding:2px 4px;transition:background .1s}.knob-row:hover{background:#141414}.knob-row--oog{border-left:2px solid #5c3a00}.knob-row__slot-cell{font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:3px}.knob-row__oog-icon{font-size:10px;color:var(--warning)}.kl-cc-input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--surface-raised);color:var(--text-muted);font-size:12px;font-family:var(--font);padding:2px 4px;outline:none;transition:border-color .15s,color .15s}.kl-cc-input:focus{border-color:var(--accent);color:var(--text)}.kl-assign--clickable{cursor:pointer;display:flex;align-items:center;gap:4px;padding:3px 6px;border-radius:3px;min-width:0;font-size:12px;transition:background .1s}.kl-assign--clickable:hover{background:var(--surface-hover)}.kl-assign__op{color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kl-assign__sep{color:var(--border-mid);flex-shrink:0}.kl-assign__par{color:var(--accent);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kl-assign__grp{font-size:9px;color:var(--accent-dim);text-transform:uppercase;flex-shrink:0}.kl-assign__empty{color:#2e2e2e;font-style:italic}.kl-assign__arrow{font-size:8px;color:var(--border-mid);margin-left:auto;flex-shrink:0}.kl-val{font-size:11px;color:var(--text-muted)}.kl-val--override{color:var(--accent)}.kl-type-btn{font-size:8px;font-weight:700;letter-spacing:.04em;padding:1px 4px;border-radius:3px;border:none;cursor:pointer;margin-left:4px;line-height:1.4;flex-shrink:0;transition:opacity .15s}.kl-type-btn:hover{opacity:.75}.kl-type-btn--knob{background:var(--surface-raised);color:var(--text-muted)}.kl-type-btn--btn{background:#3a1f5a;color:#c792ea}.kl-tog-btn{width:14px;height:14px;border-radius:2px;border:1px solid var(--border);background:transparent;cursor:pointer;padding:0;transition:background .15s,border-color .15s}.kl-tog-btn--on{background:var(--accent);border-color:var(--accent)}.kl-tog-btn--disabled{opacity:.2;cursor:default}.kl-rm-btn{background:none;border:none;color:var(--border-mid);font-size:16px;line-height:1;cursor:pointer;padding:0 2px;transition:color .15s}.kl-rm-btn:hover{color:var(--danger)}.knob-list__oog-label{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--warning-dim-text);padding:10px 8px 4px;border-top:1px dashed var(--warning-dim);margin-top:6px}.knob-row__editor{border-top:1px solid var(--border);background:var(--bg);padding:8px 12px}.row-editor__body{display:flex;gap:16px;align-items:flex-start}.row-editor__fields{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.row-editor__field{display:flex;align-items:center;gap:6px}.row-editor__ranges{display:flex;gap:6px;align-self:flex-end}.row-editor__actions{display:flex;flex-direction:column;gap:4px;align-self:center;flex-shrink:0}.drag-mode-toggle{display:inline-flex;align-items:center;gap:2px;color:var(--border-hover)}.drag-mode-toggle__icon{font-size:12px;color:#383838;line-height:1;margin-right:2px}.drag-mode-toggle__btn{background:none;border:none;color:var(--text-ghost);font-size:10px;font-family:var(--font);text-transform:uppercase;letter-spacing:.07em;cursor:pointer;padding:2px 5px;border-radius:2px;transition:color .15s,background .15s}.drag-mode-toggle__btn:hover{color:var(--text-muted)}.drag-mode-toggle__btn--active{color:var(--text-muted);background:var(--surface-hover)}.drag-mode-toggle__sep{color:var(--border-subtle);font-size:10px;pointer-events:none}.drag-handle{display:inline-flex;align-items:center;justify-content:center;font-size:13px;color:var(--border-mid);cursor:grab;-webkit-user-select:none;user-select:none;padding:2px 3px;border-radius:3px;transition:color .15s,background .15s;line-height:1;touch-action:none}.drag-handle:hover{color:var(--text-muted);background:var(--surface-raised)}.is-dragging,.is-dragging *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}.is-dragging-copy,.is-dragging-copy *{cursor:copy!important;-webkit-user-select:none!important;user-select:none!important}.kl-drag{display:flex;justify-content:center;align-items:center}.knob-card--drag-over{border-color:var(--accent)!important;box-shadow:0 0 0 1px var(--accent)}.inspector-slot-target--drag-over{outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-dim)!important;border-radius:4px}@keyframes pending-inspect-glow{0%{box-shadow:0 0 color-mix(in srgb,var(--accent) 0%,transparent)}60%{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 50%,transparent)}to{box-shadow:0 0 0 2px var(--accent),0 0 8px color-mix(in srgb,var(--accent) 40%,transparent)}}.knob-card--pending-inspect{animation:pending-inspect-glow .7s ease-in forwards;z-index:1}@keyframes drag-activate-fill{0%{background:var(--bg-mid);color:var(--text-muted)}to{background:var(--accent);color:#fff}}.drag-hover-activate--pending{animation:drag-activate-fill .4s linear forwards!important}.assign-card--queue-drag-over{border-color:var(--accent)!important;box-shadow:0 0 0 1px var(--accent),inset 0 0 8px var(--accent-dim);background:var(--accent-dim)!important}.knob-row-group--drag-over{outline:1px solid var(--accent);outline-offset:-1px;background:#0d0f1a}.kl-mode-badge{font-weight:700;margin-right:4px;font-size:.85em}.kl-mode-badge--fn{color:var(--text-muted, #888)}.kl-mode-badge--slot{color:#c084fc}.kl-mode-badge--modify{color:#2dd4bf}.kl-assign--slot{color:#c084fc}.kl-assign--modify{color:#2dd4bf}.kl-assign--fn{color:var(--text-muted, #888);font-style:italic}.knob-row--slot{border-left:3px solid #c084fc}.knob-row--modify{border-left:3px solid rgb(45,212,191)}.kl-push-badge{font-size:.75em;opacity:.55;margin-left:8px;white-space:nowrap}.device-selector{display:flex;align-items:center;gap:8px;padding:6px 20px;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;flex-wrap:wrap}.device-selector__label{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);flex-shrink:0}.device-selector__tabs{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.device-tab-wrap{display:flex;align-items:center;gap:2px}.device-tab{padding:3px 10px;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text-muted);font-size:11px;font-family:var(--font);cursor:pointer;transition:border-color .15s,color .15s,background .15s}.device-tab:hover{border-color:var(--border-hover);color:var(--text)}.device-tab--active{border-color:var(--accent);color:var(--text);background:var(--accent-dim)}.device-ch-badge{font-size:9px;color:#555;background:none;border:none;padding:2px 4px;cursor:pointer;border-radius:3px;transition:color .15s,background .15s;letter-spacing:.04em}.device-ch-badge:hover{color:var(--text-muted);background:var(--surface-hover)}.device-ch-edit{display:flex;align-items:center;gap:2px}.device-ch-input{width:38px;background:var(--bg-deep);border:1px solid var(--accent);border-radius:3px;color:var(--text);font-size:11px;font-family:var(--font);padding:2px 4px;text-align:center;outline:none}.device-ch-btn{background:none;border:none;color:var(--text-muted);font-size:11px;cursor:pointer;padding:2px 4px;border-radius:2px;transition:color .15s,background .15s}.device-ch-btn:hover{color:var(--text);background:var(--surface-raised)}.device-drag-handle{cursor:grab;color:var(--text-muted);font-size:12px;padding:0 3px;-webkit-user-select:none;user-select:none;line-height:1;flex-shrink:0}.device-drag-handle:hover{color:var(--text)}.device-tab-wrap--drag-over .device-tab,.device-tab-wrap--drag-over .device-rename{outline:1px solid var(--accent)}.device-tab-wrap--drag-hover .device-tab{outline:2px dashed var(--accent);outline-offset:2px}.device-remove-btn{background:none;border:none;color:var(--text-muted);font-size:10px;padding:0 2px;cursor:pointer;line-height:1;opacity:0;transition:opacity .15s,color .15s;flex-shrink:0}.device-tab-wrap:hover .device-remove-btn{opacity:1}.device-remove-btn:hover{color:#e06c75}.device-rename{display:flex;align-items:center;gap:2px}.device-rename__input{width:80px;padding:2px 4px;font-size:11px;background:var(--bg);border:1px solid var(--accent);border-radius:3px;color:var(--text)}.device-add-btn{padding:3px 10px;background:transparent;border:1px dashed var(--border-mid);border-radius:4px;color:var(--border-hover);font-size:11px;font-family:var(--font);cursor:pointer;transition:border-color .15s,color .15s}.device-add-btn:hover{border-color:var(--accent);color:var(--accent)}.device-create{display:flex;align-items:center;gap:4px}.device-create__name{background:var(--bg-deep);border:1px solid var(--accent);border-radius:3px;color:var(--text);font-size:11px;font-family:var(--font);padding:3px 8px;width:120px;outline:none}.device-create__ch{width:46px;background:var(--bg-deep);border:1px solid var(--border);border-radius:3px;color:var(--text);font-size:11px;font-family:var(--font);padding:3px 4px;text-align:center;outline:none}select.device-create__ch{width:auto;max-width:180px;text-align:left;cursor:pointer}.device-create__ch:focus{border-color:var(--accent)}.device-create__btn{padding:3px 10px;border-radius:3px;border:none;font-size:11px;font-family:var(--font);cursor:pointer;background:var(--accent);color:#fff;transition:opacity .15s}.device-create__btn:hover{opacity:.85}.device-create__btn--cancel{background:var(--border-subtle);color:var(--text-muted)}.device-create__btn--cancel:hover{opacity:.75}.device-create__label{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-left:2px}.device-create__preset{font-size:11px;font-family:var(--font);padding:3px 6px;border-radius:3px;border:1px solid var(--border);background:var(--bg-deep);color:var(--text);cursor:pointer;outline:none;max-width:150px}.device-create__preset:focus{border-color:var(--accent)}.header-grid-scale{width:40px;height:3px;accent-color:var(--text-muted);opacity:.4;cursor:pointer;margin:0 2px}.header-grid-scale:hover{opacity:1}.bank-selector{display:flex;align-items:center;gap:8px;padding:4px 20px;border-bottom:1px solid var(--border);background:var(--bg-deep);flex-shrink:0;flex-wrap:wrap}.bank-selector__label{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);flex-shrink:0}.bank-selector__tabs{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.bank-tab-wrap{display:flex;align-items:center;gap:2px}.bank-tab{padding:2px 10px;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text-muted);font-size:11px;font-family:var(--font);cursor:pointer;transition:border-color .15s,color .15s,background .15s}.bank-tab:hover{border-color:var(--border-hover);color:var(--text)}.bank-tab--active{border-color:#4ec9b0;color:var(--text);background:#4ec9b01a}.bank-copy-btn{background:none;border:none;color:var(--text-muted);font-size:10px;padding:0 2px;cursor:pointer;line-height:1;opacity:0;transition:opacity .15s,color .15s;flex-shrink:0}.bank-tab-wrap:hover .bank-copy-btn{opacity:1}.bank-copy-btn:hover{color:#4ec9b0}.bank-remove-btn{background:none;border:none;color:var(--text-muted);font-size:10px;padding:0 2px;cursor:pointer;line-height:1;opacity:0;transition:opacity .15s,color .15s;flex-shrink:0}.bank-tab-wrap:hover .bank-remove-btn{opacity:1}.bank-remove-btn:hover{color:#e06c75}.bank-rename{display:flex;align-items:center;gap:2px}.bank-rename__input{width:80px;padding:2px 4px;font-size:11px;background:var(--bg);border:1px solid #4ec9b0;border-radius:3px;color:var(--text)}.bank-add-btn{padding:2px 10px;background:transparent;border:1px dashed var(--border-mid);border-radius:4px;color:var(--border-hover);font-size:11px;font-family:var(--font);cursor:pointer;transition:border-color .15s,color .15s}.bank-add-btn:hover{border-color:#4ec9b0;color:#4ec9b0}.retarget-popup{background:var(--bg);border:1px solid var(--border-mid);border-radius:6px;padding:8px;z-index:500;box-shadow:0 6px 20px #0006;min-width:260px;display:flex;flex-direction:column;gap:5px}.retarget-popup__row{display:flex;align-items:center;gap:6px}.retarget-popup__row label{font-size:9px;font-weight:600;color:var(--text-muted);min-width:42px}.retarget-popup__row input{flex:1;font-size:10px;font-family:var(--font-mono, monospace);padding:3px 6px;border:1px solid var(--border-mid);border-radius:3px;background:var(--surface);color:var(--text)}.retarget-popup__row input:focus{border-color:var(--accent);outline:none}.retarget-popup__btn{font-size:10px;font-weight:600;padding:4px 10px;border:1px solid var(--accent);border-radius:3px;background:transparent;color:var(--accent);cursor:pointer;align-self:flex-end}.retarget-popup__btn:hover{background:var(--accent-dim)}.retarget-popup__btn:disabled{opacity:.4;cursor:default}.retarget-popup__scopes{display:flex;gap:2px;flex-wrap:wrap}.retarget-popup__scope{font-size:8px;padding:2px 6px;border:1px solid var(--border-mid);border-radius:3px;background:transparent;color:var(--text-muted);cursor:pointer}.retarget-popup__scope:hover{border-color:var(--accent);color:var(--text)}.retarget-popup__scope--active{background:var(--accent);border-color:var(--accent);color:#fff}.retarget-popup__footer{display:flex;align-items:center;justify-content:flex-end;gap:8px}.retarget-popup__result{font-size:9px;color:var(--text-muted);text-align:right}.hover-toggle-inline{display:inline-flex;align-items:center;gap:5px;padding:2px 4px 2px 6px;border-radius:4px;border:1px solid var(--border-mid);background:#1a1a1a;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .15s,background .15s;vertical-align:middle;line-height:1}.hover-toggle-inline:hover{border-color:#f59e0b}.hover-toggle-inline__label{font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--border-hover);line-height:1}.hover-toggle-inline__switch{position:relative;width:18px;height:10px;border-radius:6px;background:#2a2a2a;border:1px solid var(--border-mid);transition:background .15s,border-color .15s;flex-shrink:0}.hover-toggle-inline__thumb{position:absolute;top:1px;left:1px;width:6px;height:6px;border-radius:50%;background:var(--border-hover);transition:transform .15s,background .15s}.hover-toggle-inline--on{border-color:#f59e0b;background:#f59e0b1f}.hover-toggle-inline--on .hover-toggle-inline__label{color:#f59e0b}.hover-toggle-inline--on .hover-toggle-inline__switch{background:#f59e0b;border-color:#f59e0b}.hover-toggle-inline--on .hover-toggle-inline__thumb{background:#1a1a1a;transform:translate(8px)}.multi-mode-toggle{font-size:8px;font-weight:700;letter-spacing:.06em;padding:2px 6px;border-radius:3px;border:1px solid var(--border-mid);background:#1a1a1a;color:var(--border-hover);cursor:pointer;line-height:1.5;transition:border-color .15s,color .15s;white-space:nowrap}.multi-mode-toggle:hover{border-color:var(--accent);color:var(--accent)}.multi-mode-toggle--on{border-color:var(--accent-dim);color:var(--accent);background:#0e0e1c}.assignment-list{display:flex;flex-direction:column;gap:1px;padding:0 6px 6px}.assignment-pill-row{display:flex;flex-direction:column}.assignment-pill{display:flex;align-items:center;-webkit-user-select:none;user-select:none;gap:4px;padding:4px 6px;border-radius:4px;background:#141414;border:1px solid var(--surface-raised);cursor:pointer;transition:border-color .15s,background .15s;min-width:0}.assignment-pill:hover{border-color:var(--border-mid);background:#1a1a1a}.assignment-pill--open{border-color:var(--accent-dim);background:#0e0e1c}.assignment-pill__label{display:flex;align-items:baseline;gap:3px;flex:1;min-width:0;overflow:hidden}.assignment-pill__op{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.assignment-pill__sep{font-size:10px;color:var(--border-mid);flex-shrink:0}.assignment-pill__par{font-size:12px;font-weight:600;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.assignment-pill__remove{background:none;border:none;color:var(--border-mid);font-size:11px;line-height:1;cursor:pointer;padding:0 2px;flex-shrink:0;transition:color .15s}.assignment-pill__remove:hover{color:var(--danger)}.assignment-pill__drag{flex:0 0 auto;color:var(--text-muted);cursor:grab;padding:0 4px 0 0;font-size:13px;line-height:1;-webkit-user-select:none;user-select:none}.assignment-pill__drag:active{cursor:grabbing}.assignment-pill--broken{border-color:var(--danger);background:#b4282814;cursor:default}.assignment-pill--broken .assignment-pill__op{color:#c06060}.assignment-pill--broken .assignment-pill__par{color:var(--danger)}.assignment-op--broken{color:#c06060}.assignment-par--broken{color:var(--danger)}.assignment-pill--drag-over{border-color:var(--accent);background:#5078dc14}.assignment-pill--drag-copy{border-color:#4ec9b0;background:#4ec9b014}.assign-clip-bar{display:flex;align-items:center;gap:6px;margin:6px 0 2px;padding:4px 8px;background:#5078dc14;border:1px solid var(--accent-dim);border-radius:var(--radius);font-size:11px;color:var(--text-muted);overflow:hidden}.assign-clip-bar__label{color:var(--accent);flex:0 0 auto;font-weight:600}.assign-clip-bar__content{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assign-clip-bar__clear{flex:0 0 auto;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0;font-size:13px;line-height:1}.assign-clip-bar__clear:hover{color:var(--text)}.assignment-add-btn{margin-top:2px;padding:4px 8px;background:transparent;border:1px dashed var(--border-subtle);border-radius:4px;color:var(--text-ghost);font-size:11px;font-family:var(--font);cursor:pointer;text-align:left;transition:border-color .15s,color .15s}.assignment-add-btn:hover,.assignment-add-btn--open{border-color:var(--accent-dim);color:var(--accent)}.assignment-add-row{display:flex;align-items:center;gap:6px;margin-top:2px}.assignment-add-row .assignment-add-btn{margin-top:0;flex:1}.kl-multi-btn{font-size:8px;font-weight:700;letter-spacing:.04em;padding:1px 4px;border-radius:3px;border:1px solid var(--border-subtle);background:transparent;color:var(--text-ghost);cursor:pointer;margin-left:2px;line-height:1.4;flex-shrink:0;transition:border-color .15s,color .15s}.kl-multi-btn:hover{border-color:var(--accent);color:var(--accent)}.kl-multi-btn--on{border-color:var(--accent-dim);color:var(--accent);background:#0e0e1c}.kl-assign__multi-count{color:var(--accent);font-size:12px;font-weight:600}.row-editor__body--multi{flex-direction:column;gap:2px}.row-editor__assign-item{display:flex;flex-direction:column}.row-editor__assign-header{display:flex;align-items:center;gap:6px;padding:5px 8px;background:#161616;border-radius:3px;cursor:pointer;font-size:12px;transition:background .1s;-webkit-user-select:none;user-select:none}.row-editor__assign-header:hover{background:var(--surface-hover)}.row-editor__assign-header--open{background:#0e0e1c}.row-editor__assign-add{color:var(--text-ghost);font-size:11px;border:1px dashed var(--border-subtle);transition:border-color .15s,color .15s,background .15s}.row-editor__assign-add:hover,.row-editor__assign-add.row-editor__assign-header--open{border-color:var(--accent-dim);color:var(--accent)}.row-editor__assign-add-row{display:flex;align-items:stretch;gap:4px}.row-editor__assign-add-row .row-editor__assign-add{flex:1}.knob-row__editor--nested{border-top:none;background:#0d0d18;padding:6px 8px 6px 16px}@keyframes learn-pulse{0%,to{opacity:1}50%{opacity:.55}}.learn-btn{font-size:8px;font-weight:700;letter-spacing:.06em;padding:1px 4px;border-radius:3px;border:1px solid var(--border-subtle);background:transparent;color:var(--text-ghost);cursor:pointer;line-height:1.4;flex-shrink:0;transition:border-color .15s,color .15s,background .15s}.learn-btn:hover{border-color:var(--border-hover);color:var(--text-muted)}.learn-btn--on{background:var(--accent);color:#fff;border-color:var(--accent);animation:learn-pulse 1.2s ease-in-out infinite}.learn-btn--remove{font-size:13px;font-weight:500;line-height:1;padding:1px 5px}.learn-btn--remove:hover{border-color:var(--danger, #f87171);color:var(--danger, #f87171);background:transparent}.kl-learn-btn{font-size:8px;font-weight:700;letter-spacing:.06em;padding:1px 4px;border-radius:3px;border:1px solid var(--border-subtle);background:transparent;color:var(--text-ghost);cursor:pointer;line-height:1.4;margin-left:2px;flex-shrink:0;transition:border-color .15s,color .15s,background .15s}.kl-learn-btn:hover{border-color:var(--border-hover);color:var(--text-muted)}.kl-learn-btn--on{background:var(--accent);color:#fff;border-color:var(--accent);animation:learn-pulse 1.2s ease-in-out infinite}@keyframes cc-learned{0%{box-shadow:0 0 0 2px var(--success);border-color:var(--success);color:var(--success)}70%{box-shadow:0 0 0 2px var(--success);border-color:var(--success);color:var(--success)}to{box-shadow:none;border-color:transparent;color:inherit}}.field-input--cc-flash,.kl-cc-input--flash{animation:cc-learned .7s ease-out forwards}.app--auto-learn{animation:auto-learn-pulse 2s ease-in-out infinite}@keyframes auto-learn-pulse{0%,to{box-shadow:inset 0 0 0 1px #d264141f,inset 0 0 80px #d264140a}50%{box-shadow:inset 0 0 0 1px #d264146b,inset 0 0 80px #d264141f}}.grace-glow{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999;box-shadow:inset 0 0 90px 30px #e743168c;animation:grace-glow-fade 1s cubic-bezier(.4,0,1,1) forwards}@keyframes grace-glow-fade{0%{opacity:1}40%{opacity:.75}to{opacity:0}}.config-panel{width:clamp(280px,25vw,360px);flex-shrink:0;border-left:1px solid var(--border);background:var(--surface);overflow-y:auto;display:flex;flex-direction:column}.config-panel__header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.config-panel__title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text)}.config-panel__tabs{display:flex;gap:0}.config-panel__tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:4px 10px;cursor:pointer}.config-panel__tab:hover{color:var(--text)}.config-panel__tab--active{color:var(--accent);border-bottom-color:var(--accent)}.config-panel__close{background:none;border:none;color:var(--border-hover);font-size:20px;line-height:1;cursor:pointer;padding:0 2px;transition:color .15s}.config-panel__close:hover{color:var(--danger)}.config-panel__body{flex:1;overflow-y:auto}.config-panel__section{border-bottom:1px solid var(--border)}.config-panel__section-header{display:flex;align-items:center;gap:6px;width:100%;padding:8px 14px;background:var(--surface-raised);border:none;cursor:pointer;text-align:left;transition:background .15s}.config-panel__section-header:hover{background:var(--surface-hover)}.config-panel__section-chevron{font-size:10px;color:var(--text-muted);width:10px}.config-panel__section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.config-panel__section-header--open .config-panel__section-title{color:var(--text)}.config-panel__section-count{font-size:9px;color:var(--text-ghost);margin-left:auto}.global-menu-anchor{position:relative}.global-menu{position:absolute;top:100%;right:0;z-index:600;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:380px;max-height:60vh;display:flex;flex-direction:column;box-shadow:0 8px 30px #00000080;margin-top:6px}.global-menu__header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.global-menu__title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text)}.global-menu__hint{font-size:10px;color:var(--text-ghost)}.global-menu__save-row{padding:8px 14px;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0}.global-menu__list{overflow-y:auto;flex:1;padding:4px 0}.lib-save-btn{font-size:11px;padding:5px 12px;background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent);border-radius:4px;cursor:pointer;transition:background .15s,opacity .15s}.lib-save-btn:hover:not(:disabled){background:var(--accent);color:#fff}.lib-save-btn:disabled{opacity:.4;cursor:default}.lib-empty{padding:20px 16px;font-size:12px;color:var(--text-muted);text-align:center}.lib-entry{padding:8px 14px;border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:5px}.lib-entry:last-child{border-bottom:none}.lib-entry__info{display:flex;align-items:baseline;gap:8px}.lib-entry__name{font-size:12px;font-weight:600;color:var(--text)}.lib-entry__meta{font-size:10px;color:var(--text-muted)}.lib-entry__date{font-size:10px;color:var(--text-ghost);margin-left:auto}.lib-entry__actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.lib-entry__btn{font-size:10px;padding:3px 8px;background:var(--surface-raised);color:var(--text-muted);border:1px solid var(--border);border-radius:4px;cursor:pointer;transition:background .12s,color .12s,border-color .12s;white-space:nowrap}.lib-entry__btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text);border-color:var(--border-hover)}.lib-entry__btn:disabled{opacity:.35;cursor:default}.lib-entry__btn--apply{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.lib-entry__btn--apply:hover{background:var(--accent)!important;color:#fff!important}.lib-entry__btn--danger{color:#fff;background:var(--danger);border-color:var(--danger)}.lib-entry__btn--danger:hover{opacity:.85}.lib-entry__btn--danger-outline{color:var(--danger);border-color:var(--danger);background:transparent}.lib-entry__btn--danger-outline:hover:not(:disabled){background:var(--danger)!important;color:#fff!important}.lib-entry__btn--cancel{color:var(--text-ghost);border-color:transparent;background:transparent}.lib-entry__btn--cancel:hover:not(:disabled){color:var(--text);background:var(--surface-hover)!important}.lib-inline-row{display:inline-flex;align-items:center;gap:4px}.lib-inline-label{font-size:10px;color:var(--text-muted);white-space:nowrap}.lib-list{padding:6px 0}.lib-section-bar{padding:8px 14px;border-bottom:1px solid var(--border-subtle);flex-shrink:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lib-section-hint{font-size:10px;color:var(--text-ghost)}.lib-save-btn--default{background:#ffc8001f;color:#d4a800;border-color:#d4a800}.lib-save-btn--default:hover:not(:disabled){background:#ffc80047!important;color:#d4a800!important}.lib-save-btn--named{background:var(--surface-raised);color:var(--text-muted);border-color:var(--border)}.lib-save-btn--named:hover:not(:disabled){background:var(--surface-hover)!important;color:var(--text)!important}.lib-name-input{font-size:11px;padding:3px 8px;background:var(--bg);color:var(--text);border:1px solid var(--accent);border-radius:4px;outline:none;width:160px}.lib-name-input:focus{box-shadow:0 0 0 2px var(--accent-dim)}.lib-entry--default{background:#ffc8000d}.lib-badge{font-size:9px;font-weight:700;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.06em}.lib-badge--default{background:#ffc8002e;color:#c9a000;border:1px solid rgba(255,200,0,.35)}.lib-entry__name--global{font-size:11px;font-weight:500;color:var(--text)}.no-device-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;flex:1;padding:60px 24px;text-align:center}.no-device-state__icon{font-size:40px;opacity:.2;line-height:1}.no-device-state__msg{font-size:14px;font-weight:600;color:var(--text-muted)}.no-device-state__hint{font-size:12px;color:var(--text-ghost);max-width:340px;line-height:1.6}.no-device-state__hint strong{color:var(--text-muted);font-weight:600}.factory-presets-grid{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:4px}.factory-preset-btn{font-size:12px;padding:6px 14px;border-radius:6px;border:1px solid var(--border);background:var(--surface-raised);color:var(--text);cursor:pointer;transition:border-color .15s,background .15s}.factory-preset-btn:hover{border-color:var(--accent);background:var(--accent-dim)}.factory-save-btn{font-size:11px;padding:3px 8px;border-radius:4px;border:1px dashed var(--warning);background:transparent;color:var(--warning);cursor:pointer;white-space:nowrap;transition:background .15s}.factory-save-btn:hover{background:var(--warning-dim)}.demo-intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20000;display:flex;align-items:center;justify-content:center;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:demo-intro-in .3s ease-out}@keyframes demo-intro-in{0%{opacity:0}to{opacity:1}}.demo-intro__card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:32px 36px;max-width:420px;text-align:center;box-shadow:0 8px 32px #00000080}.demo-intro__title{font-size:28px;font-weight:700;letter-spacing:.04em;color:var(--accent);margin:0 0 4px}.demo-intro__subtitle{font-size:13px;color:var(--text-muted);margin:0 0 24px}.demo-intro__steps{display:flex;flex-direction:column;gap:12px;text-align:left;margin-bottom:24px}.demo-intro__step{display:flex;align-items:flex-start;gap:12px;font-size:13px;color:var(--text);line-height:1.4}.demo-intro__step-num{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--accent-dim);color:var(--accent);font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center}.demo-intro__hint{margin:16px 0 0;padding:10px 12px;border-radius:6px;background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);font-size:12px;line-height:1.45;color:var(--text-muted)}.demo-intro__hint strong{color:var(--text);font-weight:600}.demo-intro__dismiss{padding:8px 32px;border-radius:6px;border:none;background:var(--accent);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s;margin-top:16px}.demo-intro__dismiss:hover{opacity:.85}.demo-layout{display:grid;grid-template-columns:1fr 320px;gap:0;width:100%;height:100vh;overflow:hidden}.demo-layout>.app{min-width:0;min-height:0;overflow:hidden}.app-body__center{display:flex;flex:1;min-width:0;min-height:0;overflow:hidden}@media (max-width: 900px){.demo-layout{grid-template-columns:1fr;grid-template-rows:1fr auto}}.demo-panel{display:flex;flex-direction:column;background:#161616;border-left:2px solid var(--accent, #6c8);min-width:0;min-height:0}.demo-panel__header{font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--accent, #6c8);text-align:center;padding:5px 0;background:#66cc880f;border-bottom:1px solid rgba(102,204,136,.15);flex-shrink:0}.demo-panel__content{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto}.demo-panel--right{gap:0}.midi-controller{background:linear-gradient(180deg,#1e1e1e,#151515);padding:6px;display:flex;flex-direction:column;gap:4px;flex-shrink:0;border-bottom:1px solid #333;box-shadow:inset 0 1px #ffffff0a}.midi-controller__header{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);text-align:center;padding:4px 0;border-bottom:1px solid #333}.midi-controller__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px 2px;padding:4px}.midi-controller__cell{display:flex;flex-direction:column;align-items:center;gap:4px}.midi-knob{display:flex;flex-direction:column;align-items:center;gap:3px;-webkit-user-select:none;user-select:none}.midi-knob__dial{width:36px;height:36px;border-radius:50%;background:radial-gradient(circle at 38% 32%,#4a4a4a,#1e1e1e 70%);box-shadow:0 0 0 2px #333,0 0 0 3px #555,0 3px 8px #0009,inset 0 1px 2px #ffffff14;position:relative;cursor:grab;transition:box-shadow .15s}.midi-knob__dial:hover{box-shadow:0 0 0 2px #444,0 0 0 3px #666,0 3px 10px #000000b3,inset 0 1px 2px #ffffff1a}.midi-knob__dial:active{cursor:grabbing}.midi-knob__indicator{position:absolute;top:50%;left:50%;width:2px;height:20px;margin-left:-1px;margin-top:-20px;background:#fff;border-radius:1px;transform-origin:50% 100%;pointer-events:none}.midi-knob--relative .midi-knob__dial{box-shadow:0 0 0 2px #333,0 0 0 3px #555,0 3px 8px #0009;border:1px dashed #666}.midi-knob--relative .midi-knob__dial:after{content:"";position:absolute;top:50%;left:50%;width:6px;height:6px;margin:-3px 0 0 -3px;background:#888;border-radius:50%}.midi-fader{display:flex;flex-direction:column;align-items:center;gap:3px;-webkit-user-select:none;user-select:none}.midi-fader__track{width:12px;height:56px;background:linear-gradient(180deg,#1a1a1a,#222);border-radius:7px;position:relative;cursor:grab;border:1px solid #444;box-shadow:inset 0 2px 4px #00000080}.midi-fader__track:active{cursor:grabbing}.midi-fader__fill{position:absolute;bottom:0;left:0;right:0;background:var(--fader-color);border-radius:0 0 6px 6px;opacity:.45;pointer-events:none;box-shadow:0 0 6px color-mix(in srgb,var(--fader-color) 30%,transparent)}.midi-fader__thumb{position:absolute;left:-4px;right:-4px;height:12px;margin-bottom:-6px;background:linear-gradient(180deg,#ddd,#aaa);border-radius:3px;box-shadow:0 1px 4px #00000080,inset 0 1px #ffffff4d;pointer-events:none}.midi-button{display:flex;flex-direction:column;align-items:center;gap:3px;-webkit-user-select:none;user-select:none}.midi-button__face{width:28px;height:28px;border-radius:6px;background:linear-gradient(180deg,#333,#222);border:1px solid #444;cursor:pointer;transition:background .12s,box-shadow .12s,border-color .12s;box-shadow:0 2px 4px #0000004d,inset 0 1px #ffffff0d}.midi-button__face:hover{border-color:#666;background:linear-gradient(180deg,#3a3a3a,#282828)}.midi-button--active .midi-button__face{background:var(--button-color);box-shadow:0 0 12px var(--button-shadow),0 0 4px var(--button-color),inset 0 0 6px #ffffff26;border-color:var(--button-color)}.midi-control__label{font-size:9px;color:var(--text-ghost);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60px}.midi-control__value{font-size:10px;font-variant-numeric:tabular-nums;color:var(--text-muted);text-align:center}.midi-control__par{font-size:8px;color:var(--accent);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:64px}.td-mock{display:flex;flex-direction:column;flex:1;min-height:0;background:#1a1a1a;overflow:hidden;border-top:1px solid #444;margin-top:2px}.td-mock__section-header{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#888;text-align:center;padding:4px 0;background:#222;border-bottom:1px solid #333;flex-shrink:0}.td-mock__canvas-wrap{padding:6px;display:flex;flex-direction:column;align-items:center;gap:2px;flex-shrink:0}.td-mock__canvas-label{font-size:10px;color:var(--text-ghost)}.noise-canvas{width:100%;max-width:260px;aspect-ratio:1;image-rendering:pixelated;border-radius:3px;border:1px solid #333}.td-params{flex:1;overflow-y:auto;background:#3a3a3a;font-family:Segoe UI,Helvetica Neue,Arial,sans-serif}.td-params__op-header{display:flex;align-items:center;gap:5px;padding:3px 8px;cursor:pointer;font-size:11px;color:#bbb;background:#333;border-bottom:1px solid #2a2a2a}.td-params__op-header:hover{background:#3a3a3a}.td-params__arrow{font-size:9px;color:#888;width:10px}.td-params__op-name{font-weight:500}.td-params__rows{padding:0}.td-param{display:grid;grid-template-columns:112px 56px 1fr;align-items:center;height:20px;font-size:11px;-webkit-user-select:none;user-select:none;border-bottom:1px solid #353535;background:#3a3a3a}.td-param--disabled{opacity:.45;pointer-events:none}.td-param__label{color:#999;padding:0 8px 0 0;text-align:right;cursor:grab;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:100%;display:flex;align-items:center;justify-content:flex-end;font-size:11px}.td-param__label:hover{color:#ccc}.td-param__label:active{cursor:grabbing}.td-param__value{font-variant-numeric:tabular-nums;color:#ccc;text-align:left;padding:0 4px;font-size:11px;height:100%;display:flex;align-items:center;background:#333;border-left:1px solid #2a2a2a;border-right:1px solid #2a2a2a}.td-param__slider{position:relative;height:100%;background:#4a4a4a;cursor:ew-resize;overflow:hidden}.td-param__slider-fill{position:absolute;left:0;top:0;bottom:0;background:#5a5a5a;pointer-events:none}.td-param__slider-thumb{position:absolute;top:2px;bottom:2px;width:8px;background:#888;border-radius:1px;transform:translate(-4px);pointer-events:none;box-shadow:0 0 1px #00000080}.td-param__slider:hover .td-param__slider-fill{background:#636363}.td-param__slider:hover .td-param__slider-thumb{background:#aaa}.td-param:has(.td-param__toggle-wrap){grid-template-columns:112px 1fr}.td-param__toggle-wrap{display:flex;align-items:center;gap:6px;padding:0 8px;height:100%;background:#333;border-left:1px solid #2a2a2a}.td-param__toggle{background:#4a4a4a;border:1px solid #555;color:#999;font-size:10px;padding:1px 8px;cursor:pointer;border-radius:1px;font-family:inherit;line-height:1.3}.td-param__toggle:hover{background:#555;color:#ccc}.td-param__toggle--on{background:#555;color:#ddd;border-color:#666}.td-param__toggle-swatch{width:14px;height:14px;background:#4a4a4a;border:1px solid #555;border-radius:1px}.td-param__toggle-swatch--on{background:#666;border-color:#777}.param-drag-pill{position:fixed;pointer-events:none;z-index:10000;font-size:11px;padding:3px 8px;border-radius:10px;background:var(--surface-raised);border:1px solid var(--accent);color:var(--accent);white-space:nowrap;box-shadow:0 2px 8px #00000080;font-family:var(--font)}.midi-mgr__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1100}.midi-mgr__backdrop--topmost{z-index:1300}.midi-mgr{display:flex;flex-direction:column;width:min(900px,92vw);max-height:86vh;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 12px 40px #0009;font-family:var(--font);color:var(--text)}.midi-mgr__header{display:flex;align-items:center;padding:6px 8px 6px 14px;border-bottom:1px solid var(--border);flex-shrink:0;gap:8px}.midi-mgr__title{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text)}.midi-mgr__tabs{display:flex;gap:2px}.midi-mgr__tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:8px 12px;cursor:pointer;font-family:var(--font)}.midi-mgr__tab:hover{color:var(--text)}.midi-mgr__tab--active{color:var(--accent);border-bottom-color:var(--accent)}.midi-mgr__close{margin-left:auto;background:transparent;border:none;color:var(--text-muted);font-size:18px;line-height:1;cursor:pointer;padding:2px 8px;border-radius:3px}.midi-mgr__close:hover{color:var(--text);background:var(--surface-hover)}.midi-mgr__section{padding:10px 14px;border-bottom:1px solid var(--border)}.midi-mgr__section:last-child{border-bottom:none}.midi-mgr__table{display:flex;flex-direction:column;gap:2px}.midi-mgr__row{display:grid;grid-template-columns:40px 1fr 1fr 32px;gap:6px;align-items:center;padding:4px 6px;border-radius:3px;background:#181818}.midi-mgr__row--head{background:transparent;color:var(--text-muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em;padding-bottom:2px}.midi-mgr__cell{display:flex;align-items:center;min-width:0}.midi-mgr__cell--id{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:11px}.midi-mgr__cell--remove{justify-content:center}.midi-mgr__select{width:100%;background:#0e0e0e;border:1px solid var(--border-mid);color:var(--text);font-size:11px;padding:4px 6px;border-radius:3px;font-family:var(--font)}.midi-mgr__select:hover{border-color:var(--accent)}.midi-mgr__remove{width:22px;height:22px;background:transparent;border:1px solid var(--border-mid);color:var(--text-muted);border-radius:3px;cursor:pointer;line-height:1;padding:0;display:flex;align-items:center;justify-content:center}.midi-mgr__remove:hover{color:#f87171;border-color:#f87171}.midi-mgr__empty{padding:18px 8px;text-align:center;color:var(--text-muted);font-size:11px;font-style:italic}.midi-mgr__actions{display:flex;gap:8px;margin-top:10px;justify-content:space-between}.midi-mgr__btn{font-size:11px;font-weight:600;padding:6px 12px;border-radius:3px;border:1px solid var(--border-mid);background:#1a1a1a;color:var(--text);cursor:pointer;font-family:var(--font)}.midi-mgr__btn:hover{border-color:var(--accent);color:var(--accent)}.midi-mgr__btn--ghost{background:transparent;color:var(--text-muted)}.midi-mgr__console-section{display:flex;flex-direction:column;overflow:hidden}.midi-mgr__console-header{display:flex;align-items:center;gap:14px;margin-bottom:6px;flex-shrink:0}.midi-mgr__subtitle{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.midi-mgr__console-settings{margin-left:auto;display:flex;align-items:center;gap:12px}.midi-mgr__chk{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:var(--text);cursor:pointer}.midi-mgr__console{display:flex;flex-direction:column;border:1px solid var(--border-mid);border-radius:3px;background:#0e0e0e;overflow:hidden}.midi-mgr__console-row{display:grid;grid-template-columns:36px 70px 60px 60px 60px 1fr;gap:8px;padding:2px 8px;font-size:10px;font-family:ui-monospace,Cascadia Code,monospace;color:var(--text);border-bottom:1px solid #161616}.midi-mgr__console-row--head{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:9px;background:#131313;padding-top:4px;padding-bottom:4px;flex-shrink:0}.midi-mgr__console-body{max-height:260px;overflow-y:auto;font-variant-numeric:tabular-nums}.midi-mgr__console-empty{padding:18px 8px;text-align:center;color:var(--text-muted);font-size:11px;font-style:italic}.midi-mgr__bytes{color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.midi-mgr__dev-table{display:flex;flex-direction:column;gap:2px}.midi-mgr__dev-row{display:grid;grid-template-columns:38px 1fr 48px 1fr 100px 28px 28px;gap:6px;align-items:center;padding:4px 6px;border-radius:3px;background:#181818}.midi-mgr__dev-row--head{background:transparent;color:var(--text-muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em;padding-bottom:2px}.midi-mgr__dev-row--active{background:color-mix(in srgb,var(--accent) 8%,#181818);outline:1px solid color-mix(in srgb,var(--accent) 40%,transparent)}.midi-mgr__dev-cell{display:flex;align-items:center;min-width:0}.midi-mgr__dev-cell--order{flex-direction:column;gap:1px}.midi-mgr__dev-cell--grid{gap:4px}.midi-mgr__dev-x{color:var(--text-muted);font-size:10px}.midi-mgr__dev-cell--active,.midi-mgr__dev-cell--remove{justify-content:center}.midi-mgr__dev-arrow{background:transparent;border:1px solid var(--border-mid);color:var(--text-muted);font-size:8px;padding:0;width:18px;height:11px;border-radius:2px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.midi-mgr__dev-arrow:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.midi-mgr__dev-arrow:disabled{opacity:.25;cursor:not-allowed}.midi-mgr__dev-input{width:100%;background:#0e0e0e;border:1px solid var(--border-mid);color:var(--text);font-size:11px;padding:4px 6px;border-radius:3px;font-family:var(--font);font-variant-numeric:tabular-nums}.midi-mgr__dev-input:hover,.midi-mgr__dev-input:focus{border-color:var(--accent);outline:none}.midi-mgr__dev-input--name{text-align:left}.midi-mgr__dev-input--grid{width:56px;text-align:center;padding:4px 2px}.midi-mgr__dev-select{width:100%;background:#0e0e0e;border:1px solid var(--border-mid);color:var(--text);font-size:11px;padding:4px 6px;border-radius:3px;font-family:var(--font)}.midi-mgr__dev-select:hover{border-color:var(--accent)}.midi-mgr__dev-active{background:transparent;border:1px solid var(--border-mid);color:var(--text-muted);width:22px;height:22px;border-radius:3px;cursor:pointer;font-size:12px;line-height:1;padding:0;display:flex;align-items:center;justify-content:center}.midi-mgr__dev-active:hover{color:var(--accent);border-color:var(--accent)}.midi-mgr__dev-active--on,.midi-mgr__dev-active--on:hover{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,transparent)}.midi-mgr__dev-wrap{display:flex;flex-direction:column;gap:0}.midi-mgr__dev-wrap--active{border-radius:3px}.midi-mgr__dev-wrap .midi-mgr__dev-row--active{outline:none;background:color-mix(in srgb,var(--accent) 8%,#181818);border-radius:3px 3px 0 0}.midi-mgr__dev-keys-row{display:flex;align-items:center;gap:6px;padding:3px 6px 4px 50px;background:#141414;border-radius:0 0 3px 3px;font-size:10px;color:var(--text-muted)}.midi-mgr__dev-wrap--active .midi-mgr__dev-keys-row{background:color-mix(in srgb,var(--accent) 5%,#141414)}.midi-mgr__dev-keys-row--on{padding-bottom:5px}.midi-mgr__dev-keys-label{font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:9px;min-width:32px}.midi-mgr__dev-keys-sublabel{font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-left:4px}.midi-mgr__dev-keys-toggle{background:#0e0e0e;border:1px solid var(--border-mid);color:var(--text-muted);font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:3px;cursor:pointer;font-family:var(--font)}.midi-mgr__dev-keys-toggle:hover{border-color:var(--accent);color:var(--accent)}.midi-mgr__dev-keys-toggle--on,.midi-mgr__dev-keys-toggle--on:hover{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,transparent)}.midi-mgr__dev-keys-note{font-size:10px;font-weight:600;color:var(--accent);font-family:ui-monospace,Cascadia Code,monospace}.new-device__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1100}.new-device__backdrop--topmost{z-index:1300}.new-device{display:flex;flex-direction:column;width:min(540px,92vw);max-height:86vh;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 12px 40px #0009;font-family:var(--font);color:var(--text)}.new-device__header{display:flex;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.new-device__title{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text)}.new-device__close{margin-left:auto;background:transparent;border:none;color:var(--text-muted);font-size:18px;line-height:1;cursor:pointer;padding:2px 8px;border-radius:3px}.new-device__close:hover{color:var(--text);background:var(--surface-hover)}.new-device__body{padding:12px 16px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.new-device__field{display:flex;flex-direction:column;gap:3px}.new-device__label{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.new-device__sublabel{font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-left:4px}.new-device__note{font-size:10px;font-weight:600;color:var(--accent);font-family:ui-monospace,Cascadia Code,monospace;margin-left:-2px}.new-device__hint{font-size:10px;color:var(--text-muted);line-height:1.4}.new-device__hint strong{color:var(--text);font-weight:600}.new-device__input{background:#0e0e0e;border:1px solid var(--border-mid);color:var(--text);font-size:12px;padding:6px 8px;border-radius:3px;font-family:var(--font);width:100%}.new-device__input[type=number]{padding-right:4px}.new-device__input--num{width:70px;text-align:center}.new-device__input:hover,.new-device__input:focus{border-color:var(--accent);outline:none}.new-device__row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.new-device__x{font-size:11px;color:var(--text-muted)}.new-device__toggle{background:#0e0e0e;border:1px solid var(--border-mid);color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:5px 12px;border-radius:3px;cursor:pointer;font-family:var(--font)}.new-device__toggle:hover{border-color:var(--accent);color:var(--accent)}.new-device__toggle--on,.new-device__toggle--on:hover{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,transparent)}.new-device__btn{font-size:11px;font-weight:600;padding:6px 14px;border-radius:3px;border:1px solid var(--border-mid);background:#1a1a1a;color:var(--text);cursor:pointer;font-family:var(--font)}.new-device__btn:hover{border-color:var(--accent);color:var(--accent)}.new-device__btn--ghost{background:transparent;color:var(--text-muted)}.new-device__btn--primary{background:var(--accent);color:#1a1a1a;border-color:var(--accent);font-weight:700}.new-device__btn--primary:hover{background:color-mix(in srgb,var(--accent) 80%,white);color:#1a1a1a}.new-device__footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 14px;border-top:1px solid var(--border);flex-shrink:0}.midi-log-popover{z-index:900;width:260px;background:var(--surface);border:1px solid var(--border);border-radius:4px;box-shadow:0 6px 18px #00000080;font-family:var(--font);color:var(--text)}.midi-log-popover__header{display:flex;align-items:center;padding:6px 8px;border-bottom:1px solid var(--border)}.midi-log-popover__header--drag{cursor:grab;-webkit-user-select:none;user-select:none}.midi-log-popover__header--drag:active{cursor:grabbing}.midi-log-popover__title{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.midi-log-popover__close{margin-left:auto;background:transparent;border:none;color:var(--text-muted);font-size:14px;line-height:1;cursor:pointer;padding:0 4px;border-radius:3px}.midi-log-popover__close:hover{color:var(--text);background:var(--surface-hover)}.midi-log-popover__body{padding:6px 8px;min-height:38px}.midi-log-popover__empty{font-size:10px;color:var(--text-muted);font-style:italic;text-align:center;padding:4px 0}.midi-log-popover__row{display:flex;align-items:center;gap:6px;font-size:10px;font-family:ui-monospace,Cascadia Code,monospace;padding:2px 0}.midi-log-popover__id{color:var(--text-muted);font-variant-numeric:tabular-nums;min-width:24px}.midi-log-popover__kind{color:var(--accent);min-width:56px}.midi-log-popover__triplet{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tut-svg-mask{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:800;pointer-events:none}.tut-hole{transition:x .32s cubic-bezier(.4,0,.2,1),y .32s cubic-bezier(.4,0,.2,1),width .32s cubic-bezier(.4,0,.2,1),height .32s cubic-bezier(.4,0,.2,1)}.tut-ring-svg{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:801;pointer-events:none}.tut-ring{transition:x .32s cubic-bezier(.4,0,.2,1),y .32s cubic-bezier(.4,0,.2,1),width .32s cubic-bezier(.4,0,.2,1),height .32s cubic-bezier(.4,0,.2,1)}.tut-card{position:fixed;z-index:802;width:300px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius);box-shadow:0 12px 40px #000000b8,0 0 0 1px #818cf826;display:flex;flex-direction:column;gap:10px;padding:16px 18px 14px;opacity:1;transform:translateY(0);transition:opacity .18s ease,transform .18s ease;overflow:hidden}.tut-card--transitioning{opacity:0;transform:translateY(6px)}.tut-badge{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}.tut-title{font-size:14px;font-weight:700;color:var(--text);line-height:1.3;margin-top:-4px}.tut-body{font-size:12px;color:var(--text-muted);line-height:1.65;white-space:pre-line;overflow-y:auto;flex-shrink:1;min-height:0}.tut-body code{background:var(--bg-deep);border:1px solid var(--border);border-radius:3px;padding:0 4px;font-size:11px;color:var(--accent);font-family:monospace}.tut-body b{color:var(--text);font-weight:600}.tut-zoom-picker{display:flex;align-items:center;gap:8px;margin-top:12px;padding:8px 10px;background:var(--bg-deep);border:1px solid var(--border);border-radius:6px}.tut-zoom-picker__label{font-size:11px;color:var(--text-muted);white-space:nowrap;min-width:64px}.tut-zoom-picker__reset{font-size:10px;padding:2px 6px;border-radius:3px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;font-family:var(--font);white-space:nowrap}.tut-zoom-picker__reset:hover{color:var(--text);border-color:var(--border-mid)}.tut-progress{display:flex;gap:5px;align-items:center}.tut-dot{width:5px;height:5px;border-radius:50%;background:var(--border-mid);transition:background .2s,transform .2s;flex-shrink:0}.tut-dot--active{background:var(--accent);transform:scale(1.4)}.tut-dot--done{background:color-mix(in srgb,var(--accent) 40%,transparent)}.tut-nav{display:flex;align-items:center;gap:8px;border-top:1px solid var(--border);padding-top:10px;margin-top:2px}.tut-nav__skip{background:none;border:none;color:var(--text-ghost);font-size:11px;cursor:pointer;padding:2px 4px;margin-right:auto;transition:color .15s;font-family:var(--font)}.tut-nav__skip:hover{color:var(--text-muted)}.tut-nav__prev,.tut-nav__next{font-family:var(--font);font-size:11px;border-radius:4px;padding:4px 12px;cursor:pointer;transition:opacity .15s,border-color .15s,color .15s}.tut-nav__prev{background:none;border:1px solid var(--border);color:var(--text-muted)}.tut-nav__prev:hover:not(:disabled){border-color:var(--border-hover);color:var(--text)}.tut-nav__prev:disabled{opacity:.3;cursor:default}.tut-nav__next{background:var(--accent);border:none;color:#fff;font-weight:600;padding:5px 14px}.tut-nav__next:hover{opacity:.85}.tut-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:799;cursor:default}@media (max-width: 640px){.tut-card{width:calc(100vw - 32px);left:16px!important;right:16px!important;top:auto!important;bottom:80px!important}}.first-time-hint{position:fixed;z-index:9999;width:280px;padding:12px 14px 10px;background:var(--surface-raised, #1c1c1c);border:1px solid var(--accent-dim);border-radius:8px;box-shadow:0 8px 24px #00000073;font-size:12px;line-height:1.45;color:var(--text);animation:first-time-hint-in .18s ease-out}@keyframes first-time-hint-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.first-time-hint__title{font-weight:600;color:var(--accent);margin-bottom:4px;font-size:12px}.first-time-hint__body{color:var(--text-muted);margin-bottom:8px}.first-time-hint__body b{color:var(--text);font-weight:600}.first-time-hint__dismiss{display:inline-block;padding:4px 12px;border:1px solid var(--border-mid);border-radius:4px;background:transparent;color:var(--text);font-size:11px;cursor:pointer;transition:background .12s,border-color .12s}.first-time-hint__dismiss:hover{background:var(--accent-dim);border-color:var(--accent)}
