:root{color-scheme:dark;--bg-0: #0a0a0b;--bg-1: #111114;--bg-2: #18181c;--bg-3: #1f1f25;--bg-4: #26262e;--border: #2a2a34;--border-hi: #3a3a48;--text-0: #e8e8f0;--text-1: #9090a8;--text-2: #8888a0;--accent: #e8c840;--accent-dim: #8c7a28;--green: #40c878;--green-dim: #1a5430;--red: #e84040;--red-dim: #5c1a1a;--blue: #4080e8;--mono: "IBM Plex Mono", "Courier New", monospace;--sans: "IBM Plex Sans", system-ui, sans-serif;--status-h: 32px;--signal-h: 60px;--state-h: 64px;--ctrl-w: 320px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:var(--bg-0);color:var(--text-0);font-family:var(--sans);font-size:13px;line-height:1.4;-webkit-font-smoothing:antialiased;color-scheme:dark}select{background-color:var(--bg-1, #111114)!important;color:var(--text-0, #e8e8f0)!important;color-scheme:dark}select:hover{background-color:var(--bg-4, #26262e)!important}option,optgroup{background-color:var(--bg-1, #111114)!important;color:var(--text-0, #e8e8f0)!important}button{background:none;border:none;color:inherit;font:inherit;cursor:pointer;padding:0}#status-bar{position:fixed;top:0;left:0;right:0;height:var(--status-h);background:var(--bg-2);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px;padding:0 12px;z-index:100;font-family:var(--mono);font-size:12px;user-select:none}#status-name{font-weight:500;color:var(--accent);letter-spacing:.08em}#status-fps{color:var(--text-1);min-width:52px}#status-bank{color:var(--text-0)}#status-state{color:var(--text-1)}.indicator{font-size:10px;font-weight:500;letter-spacing:.1em;padding:2px 6px;border-radius:3px;background:var(--bg-4);color:var(--text-2);border:1px solid var(--border);transition:color .1s,background .1s}.indicator.active{color:var(--green);background:var(--green-dim);border-color:var(--green)}.indicator.learning{color:var(--accent);border-color:var(--accent);animation:learn-pulse .5s ease-in-out infinite alternate}@keyframes learn-pulse{0%{background:transparent}to{background:color-mix(in srgb,var(--accent-dim) 60%,transparent)}}.status-right{margin-left:auto;display:flex;gap:8px}.status-right button{font-family:var(--mono);font-size:13px;color:var(--text-1);padding:2px 8px;border:1px solid var(--border);border-radius:3px;background:var(--bg-3);transition:color .1s,border-color .1s}.status-right button:hover{color:var(--text-0);border-color:var(--border-hi)}#btn-record.recording{color:var(--red);border-color:var(--red);background:var(--red-dim)}#btn-keylock.active{color:var(--accent);border-color:var(--accent-dim)}.res-btn{font-size:11px!important;padding:2px 6px!important}.res-btn.active{color:var(--accent)!important;border-color:var(--accent-dim)!important}#btn-second-screen.active{color:var(--green)!important;border-color:var(--green)!important}.status-sep{width:1px;height:16px;background:var(--border);align-self:center;flex-shrink:0}#app{position:fixed;top:var(--status-h);left:0;right:0;bottom:calc(var(--signal-h) + var(--state-h));display:flex;gap:0}#output-panel{flex:1;background:#000;position:relative;overflow:hidden;border-right:1px solid var(--border);display:flex;align-items:center;justify-content:center}#output-canvas{display:block;width:100%;height:100%}#warp-grid-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5}#feedback-overlay{position:absolute;inset:0;pointer-events:none;font-family:var(--mono);font-size:12px;color:var(--accent)}.feedback-item{position:absolute;cursor:move;pointer-events:all;white-space:nowrap;text-shadow:0 0 8px rgba(0,0,0,.8),0 1px 3px rgba(0,0,0,.9);user-select:none;line-height:1;padding:1px 4px;border-radius:2px;background:#0000004d}#video-spy{position:absolute;bottom:8px;right:8px;border:1px solid var(--border);background:var(--bg-2);padding:2px;font-family:var(--mono);font-size:10px;color:var(--text-2);text-align:center;cursor:pointer;user-select:none;border-radius:2px;box-shadow:0 2px 8px #00000080}#video-spy:hover{border-color:var(--border-hi)}#video-spy canvas{display:block}#control-panel{width:var(--ctrl-w);flex-shrink:0;background:var(--bg-2);display:flex;flex-direction:column;overflow:hidden}#tab-bar{display:flex;gap:0;border-bottom:1px solid var(--border);flex-shrink:0;overflow-x:auto}.tab{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.05em;color:var(--text-2);padding:7px 10px;border-bottom:2px solid transparent;transition:color .1s,border-color .1s;white-space:nowrap;flex-shrink:0}.tab:hover{color:var(--text-1)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-content{display:none;flex:1;overflow-y:auto;overflow-x:hidden}.tab-content.active{display:block}.tab-content::-webkit-scrollbar{width:4px}.tab-content::-webkit-scrollbar-track{background:var(--bg-2)}.tab-content::-webkit-scrollbar-thumb{background:var(--border-hi);border-radius:2px}.panel-section{border-bottom:1px solid var(--border)}.section-header{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.1em;color:var(--text-2);padding:6px 10px 5px;background:var(--bg-1);text-transform:uppercase;user-select:none;cursor:pointer;position:sticky;top:0;z-index:1}.section-header:hover{color:var(--text-1)}#current-bank-name{color:var(--accent);font-weight:400}.section-header.collapsed{color:var(--text-2);opacity:.6}.param-row.param-locked{opacity:.55}.param-row.param-locked:after{content:"🔒";font-size:9px;margin-left:3px}.section-header.collapsed:after{content:" ▸"}.section-header:not(.collapsed):after{content:" ▾"}.panel-section.collapsed>*:not(.section-header){display:none!important}.section-header-btns{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;gap:4px;opacity:0;transition:opacity .1s}.section-header:hover .section-header-btns{opacity:1}.section-header-btns button{background:none;border:1px solid var(--border);border-radius:2px;color:var(--text-2);font-size:10px;padding:0 4px;cursor:pointer;line-height:14px}.section-header-btns button:hover{color:var(--accent);border-color:var(--accent-dim)}.cp-sub-header{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);padding:6px 10px 2px;border-top:1px solid var(--border);margin-top:2px;opacity:.75}.detached-panel{position:fixed;z-index:900;min-width:280px;min-height:80px;background:var(--bg-2);border:1px solid var(--border-hi);border-radius:4px;box-shadow:0 4px 24px #0009;overflow:auto;resize:both}.detached-panel-title{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;background:var(--bg-4);border-bottom:1px solid var(--border);cursor:move;user-select:none;font-family:var(--mono);font-size:11px;color:var(--text-1);text-transform:uppercase;letter-spacing:.08em}.detached-panel-title button{background:none;border:none;color:var(--text-2);cursor:pointer;font-size:13px;padding:0 2px;line-height:1}.detached-panel-title button:hover{color:var(--text-0)}.detached-panel-body{overflow-y:auto;max-height:85vh}.source-select{grid-column:2 / 4;min-width:0;align-self:stretch}.source-select .imw-sel-trigger{height:100%;box-sizing:border-box}.blend-select{min-width:100px}.param-row{display:grid;grid-template-columns:1fr 52px 36px 36px 58px;align-items:center;padding:0 10px;height:28px;border-bottom:1px solid var(--bg-1);gap:4px;cursor:default;touch-action:manipulation;transition:background .05s}.param-row:hover{background:var(--bg-4)}.param-row.active{background:color-mix(in srgb,var(--accent-dim) 40%,var(--bg-3))}.param-label{font-size:12px;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none}.param-row.active .param-label{color:var(--accent)}.param-ctrl{font-family:var(--mono);font-size:10px;color:var(--text-2);text-align:center;white-space:nowrap;user-select:none}.param-ctrl.assigned{color:var(--blue)}.param-ctrl.lfo{color:var(--green)}.param-ctrl.midi{color:#c878e8}.param-ctrl.mouse{color:#e88040}.param-ctrl.sound{color:#40c8e8}.param-value{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--text-0);text-align:right;user-select:none}.param-range{font-family:var(--mono);font-size:10px;color:var(--text-2);text-align:right;white-space:nowrap;overflow:hidden;cursor:pointer;user-select:none;border-bottom:1px dashed transparent}.param-range:hover{color:var(--text-1);border-bottom-color:var(--border)}.param-range.overridden{color:var(--accent)}.param-row.toggle-row .param-value,.param-row.select-row .param-value,.param-row.trigger-row .param-value{grid-column:3 / -1}.param-row.toggle-row,.param-row.trigger-row{cursor:pointer}.param-row.toggle-row .param-value{text-align:right}.toggle-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--bg-4);border:1px solid var(--border-hi);transition:background .1s,border-color .1s}.toggle-dot.on{background:var(--green);border-color:var(--green)}.param-row.has-slider{height:auto;grid-template-rows:28px 4px;padding-bottom:4px}.param-slider{-webkit-appearance:none;grid-column:1 / -1;width:100%;height:3px;background:var(--bg-4);border-radius:2px;cursor:pointer;outline:none;margin:0}.param-slider::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;border-radius:50%;background:var(--accent);cursor:pointer}.param-slider::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:var(--accent);border:none;cursor:pointer}.param-select{width:100%}select.param-select{background:var(--bg-3);border:1px solid var(--border);color:var(--text-0);font-family:var(--mono);font-size:11px;padding:2px 4px;border-radius:2px;cursor:pointer;outline:none;color-scheme:dark}select.param-select:focus{border-color:var(--accent)}select.param-select option,select.param-select optgroup{background:var(--bg-1);color:var(--text-1)}div.param-select .imw-sel-trigger{width:100%;box-sizing:border-box}.imw-sel{position:relative;display:inline-flex;flex-direction:column;min-width:72px;user-select:none}.imw-sel-trigger{display:flex;align-items:center;justify-content:space-between;gap:4px;background:var(--bg-3);border:1px solid var(--border);border-radius:2px;padding:3px 6px 3px 7px;cursor:pointer;font:11px/1.5 var(--mono);color:var(--text-1);white-space:nowrap;transition:border-color .1s,color .1s}.imw-sel-trigger:hover{border-color:var(--border-hi);color:var(--text-0)}.imw-sel-chev{color:var(--accent);font-size:9px;flex-shrink:0}.imw-sel-menu{position:absolute;top:calc(100% + 2px);left:0;z-index:9999;background:var(--bg-2);border:1px solid var(--border-hi);border-radius:3px;min-width:100%;box-shadow:0 6px 16px #0009;overflow:hidden}.imw-sel-item{padding:5px 12px 5px 10px;font:11px/1.5 var(--mono);color:var(--text-1);cursor:pointer;white-space:nowrap;transition:background .08s}.imw-sel-item:hover{background:var(--bg-3);color:var(--text-0)}.imw-sel-item.sel{color:var(--accent)}.param-btn-group{display:flex;flex-wrap:wrap;gap:2px;width:100%}.param-opt-btn{flex:1 1 auto;padding:2px 3px;background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);font-family:var(--mono);font-size:9px;cursor:pointer;border-radius:2px;white-space:nowrap;text-align:center;min-width:0;line-height:1.4}.param-opt-btn:hover{background:var(--bg-4);color:var(--text-0);border-color:var(--border-hi)}.param-opt-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}#buffer-canvas{display:block;margin:8px auto;border:1px solid var(--border);background:#000;image-rendering:pixelated;max-width:100%}#geometry-controls{padding:8px 10px;display:flex;flex-wrap:wrap;gap:4px}.geo-btn{font-family:var(--mono);font-size:11px;padding:4px 8px;background:var(--bg-3);border:1px solid var(--border);border-radius:3px;color:var(--text-1);cursor:pointer;transition:all .1s}.geo-btn:hover{color:var(--text-0);border-color:var(--border-hi)}.geo-btn.active{color:var(--accent);border-color:var(--accent-dim);background:color-mix(in srgb,var(--accent-dim) 40%,var(--bg-3))}#model-import{padding:8px 10px;display:flex;flex-direction:column;gap:6px}.import-btn{font-family:var(--mono);font-size:11px;padding:5px 10px;background:var(--bg-3);border:1px solid var(--border);border-radius:3px;color:var(--text-1);cursor:pointer;text-align:left;transition:all .1s}.import-btn:hover{color:var(--text-0);border-color:var(--border-hi)}.import-btn.active{color:var(--accent);border-color:var(--accent);background:#e8c84014}.cap-btn.pinned{color:#60a0e0;border-color:#60a0e0;background:#60a0e014}.slot-picker{position:fixed;z-index:2000;background:var(--bg-3);border:1px solid var(--border-hi);border-radius:5px;padding:6px;box-shadow:0 4px 16px #0009;min-width:140px}.slot-picker.hidden{display:none}.slot-picker-auto{display:block;width:100%;font-family:var(--mono);font-size:11px;padding:4px 8px;margin-bottom:6px;background:var(--bg-4);border:1px solid var(--border);border-radius:3px;color:var(--text-1);cursor:pointer;text-align:left}.slot-picker-auto:hover{border-color:var(--border-hi);color:var(--text-0)}.slot-picker-auto.active{color:var(--accent);border-color:var(--accent)}.slot-picker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}.slot-picker-slot{font-family:var(--mono);font-size:10px;padding:5px 2px;background:var(--bg-4);border:1px solid var(--border);border-radius:2px;color:var(--text-2);cursor:pointer;text-align:center}.slot-picker-slot:hover{color:var(--text-0);border-color:var(--border-hi)}.slot-picker-slot.filled{border-color:#404060;color:var(--text-1)}.slot-picker-slot.active{color:#60a0e0;border-color:#60a0e0;background:#60a0e01f}.import-note{font-size:11px;color:var(--text-2);font-family:var(--mono)}body.dnd-active:after{content:"Drop file to load";position:fixed;inset:0;background:#e8c8400f;border:2px dashed var(--accent-dim);border-radius:6px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:18px;color:var(--accent);pointer-events:none;z-index:9000}#warp-editor-container{padding:8px 10px 10px;display:flex;flex-direction:column;gap:6px}.warp-canvas{width:100%;aspect-ratio:288 / 200;border:1px solid var(--border);border-radius:3px;cursor:crosshair;display:block;background:#0d0d14}.warp-canvas:hover{border-color:var(--border-hi)}.warp-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.warp-ctrl-label{font-family:var(--mono);font-size:10px;color:var(--text-2);white-space:nowrap}.warp-slider{flex:1;min-width:60px;height:3px;accent-color:var(--accent)}.warp-presets{display:flex;flex-wrap:wrap;gap:4px}.warp-preset-btn{font-family:var(--mono);font-size:10px;padding:3px 7px;background:var(--bg-3);border:1px solid var(--border);border-radius:3px;color:var(--text-2);cursor:pointer;transition:all .1s}.warp-preset-btn:hover{color:var(--text-0);border-color:var(--border-hi)}.warp-slots{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.warp-slot-btn{font-family:var(--mono);font-size:10px;padding:3px 8px;background:var(--bg-3);border:1px solid var(--border);border-radius:3px;color:var(--text-1);cursor:pointer;transition:all .1s}.warp-slot-btn:hover{color:var(--accent);border-color:var(--accent-dim)}.table-list-row{display:flex;align-items:center;padding:3px 8px;border-radius:3px;cursor:pointer;font-family:var(--mono);font-size:11px;color:var(--text-1)}.table-list-row:hover{background:var(--bg-4)}.table-list-row.active{background:var(--bg-4);color:var(--accent)}#table-editor{display:block;width:calc(100% - 20px);margin:0 10px 8px;cursor:default;border:1px solid var(--border);border-radius:3px}#table-preset-strip{display:flex;flex-wrap:wrap;gap:3px;padding:4px 10px 6px}.table-preset-btn{font-size:9px;font-family:var(--mono);padding:2px 6px;background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);border-radius:2px;cursor:pointer;line-height:1.4}.table-preset-btn:hover:not(:disabled){border-color:var(--border-hi);color:var(--text-1)}.table-preset-btn:disabled{opacity:.35;cursor:default}#btn-add-clip{display:block;margin:8px 10px;font-family:var(--mono);font-size:11px;padding:5px 10px;background:var(--bg-3);border:1px solid var(--border);border-radius:3px;color:var(--text-1);cursor:pointer;transition:all .1s}#btn-add-clip:hover{color:var(--text-0);border-color:var(--border-hi)}.clip-empty{padding:12px 10px;font-family:var(--mono);font-size:10px;color:var(--text-2);text-align:center}.clip-item{display:flex;align-items:center;gap:8px;padding:5px 8px;border-bottom:1px solid var(--bg-1);cursor:pointer;transition:background .05s}.clip-item:hover{background:var(--bg-4)}.clip-item.active{background:var(--bg-3)}.clip-thumb{position:relative;flex-shrink:0;width:80px;height:45px;background:var(--bg-0);border:1px solid var(--border);border-radius:2px;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--text-2)}.clip-thumb img{width:100%;height:100%;object-fit:cover;display:block}.clip-item.active .clip-thumb{border-color:var(--accent-dim)}.clip-thumb-playing{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0a0a0b73;color:var(--accent);font-size:18px}.clip-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.clip-name{font-family:var(--mono);font-size:11px;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clip-item.active .clip-name{color:var(--accent)}.clip-meta{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10px;color:var(--text-2)}.clip-key{background:var(--bg-4);border:1px solid var(--border);border-radius:2px;padding:0 3px;font-size:9px;font-family:var(--mono);color:var(--text-2)}.clip-remove{margin-left:auto;font-size:10px;color:var(--text-2);padding:1px 4px;border-radius:2px;opacity:0;transition:opacity .1s,color .1s}.clip-item:hover .clip-remove{opacity:1}.clip-remove:hover{color:var(--red)!important}#ctrl-map-panel{position:fixed;z-index:900;min-width:260px;max-width:340px;max-height:420px;background:var(--bg2);border:1px solid var(--border);border-radius:4px;box-shadow:0 4px 20px #0009;font-size:11px;display:flex;flex-direction:column}.cm-titlebar{display:flex;align-items:center;gap:4px;padding:5px 8px;background:var(--bg3);border-bottom:1px solid var(--border);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--fg2)}.cm-titlebar span{flex:1}.cm-titlebar button{background:none;border:1px solid var(--border);color:var(--fg2);border-radius:2px;padding:1px 5px;font-size:10px;cursor:pointer}.cm-titlebar button:hover{background:var(--accent);color:#fff}.cm-list{overflow-y:auto;flex:1;padding:4px 0}.cm-empty{padding:12px;color:var(--fg3);text-align:center;font-style:italic}.cm-group{border-bottom:1px solid var(--border);padding:2px 0}.cm-group:last-child{border-bottom:none}.cm-row{display:flex;align-items:center;gap:6px;padding:3px 8px;cursor:default}.cm-row:hover{background:var(--bg3)}.cm-pid{flex:1;color:var(--fg1);font-family:monospace;font-size:10px}.cm-type{color:var(--accent);min-width:52px}.cm-detail{color:var(--fg3);min-width:44px;font-size:10px}.cm-remove{background:none;border:none;color:var(--fg3);cursor:pointer;font-size:10px;padding:0 2px;opacity:.5}.cm-remove:hover{color:#f55;opacity:1}#signal-path{position:fixed;bottom:var(--state-h);left:0;right:0;height:var(--signal-h);background:var(--bg-1);border-top:1px solid var(--border);display:flex;align-items:flex-start;padding:4px 12px;overflow:hidden;z-index:80}body.sp-floating #signal-path-docked-space{height:0}#signal-path.sp-float-panel{position:fixed;bottom:auto;left:auto;right:auto;width:auto;min-width:400px;max-width:90vw;height:auto;min-height:28px;border:1px solid var(--border);border-radius:4px;overflow:visible;padding:0;flex-direction:column;align-items:stretch;z-index:300;box-shadow:0 4px 20px #0009}#signal-path.sp-float-panel .sp-float-titlebar{display:flex;align-items:center;justify-content:space-between;padding:3px 8px;background:var(--bg-3);border-bottom:1px solid var(--border);cursor:move;user-select:none;font-family:var(--mono);font-size:10px;color:var(--text-2);text-transform:uppercase;letter-spacing:.08em}#signal-path.sp-float-panel .sp-float-titlebar button{font-size:11px;padding:0 4px;color:var(--text-2);line-height:1}#signal-path.sp-float-panel .sp-float-body{padding:6px 12px 8px;overflow-x:auto;overflow-y:hidden}#signal-path.sp-float-panel #signal-path-display{padding:0}#signal-path-display{display:flex;flex-direction:column;align-items:flex-start;gap:0;font-family:var(--mono);font-size:11px;color:var(--text-1);white-space:nowrap}.sp-node{padding:3px 8px;border:1px solid var(--border);border-radius:3px;background:var(--bg-3);color:var(--text-1);transition:all .1s}.sp-node.active{color:var(--accent);border-color:var(--accent-dim)}.sp-node.source{color:var(--text-0);background:var(--bg-4)}.sp-arrow{color:var(--text-2);font-size:10px}.sp-merge{color:var(--text-2)}.sp-node.draggable{cursor:grab}.sp-node.draggable:active{cursor:grabbing}.sp-node.drag-over{outline:1px solid var(--accent);background:var(--accent-dim)}.seq-card{border-bottom:1px solid var(--border);padding:6px 10px 8px}.seq-card:last-child{border-bottom:none}.seq-card-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.seq-card-label{font-family:var(--mono);font-size:11px;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em}.seq-rec-btn{font-family:var(--mono);font-size:10px;padding:2px 7px;border:1px solid var(--border);border-radius:3px;background:var(--bg-4);color:var(--text-2);cursor:pointer;transition:color .1s,border-color .1s,background .1s}.seq-rec-btn.active{color:var(--red);border-color:var(--red);background:var(--red-dim)}.seq-rec-btn:hover{color:var(--text-0);border-color:var(--border-hi)}.seq-row-label{font-family:var(--mono);font-size:10px;color:var(--text-2);margin-bottom:3px}.seq-src-row{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:4px}.seq-src-btn{font-family:var(--mono);font-size:10px;padding:2px 7px;border:1px solid var(--border);border-radius:3px;background:var(--bg-4);color:var(--text-1);cursor:pointer;transition:color .1s,border-color .1s}.seq-src-btn:hover{color:var(--text-0);border-color:var(--border-hi)}.seq-src-btn.active{color:var(--accent);border-color:var(--accent-dim)}.seq-mem-hint{font-family:var(--mono);font-size:10px;color:var(--text-2);padding:2px 0 0;text-align:right}.sp-seq-row{display:flex;align-items:center;gap:3px;margin-top:3px;padding-top:3px;border-top:1px solid var(--bg-4);opacity:.85}.sp-seq-source{font-family:var(--mono);font-size:10px;background:var(--bg-4);border:1px solid var(--border);border-radius:3px;color:var(--text-1);padding:2px 4px;cursor:pointer;height:20px;outline:none}.sp-seq-source:focus{border-color:var(--accent-dim)}.sp-seq-source:hover{color:var(--text-0);border-color:var(--border-hi)}#state-bar{position:fixed;bottom:0;left:0;right:0;height:var(--state-h);background:var(--bg-2);border-top:1px solid var(--border);display:flex;align-items:center;padding:0 6px;gap:6px;z-index:100}#state-grid{flex:1;display:grid;grid-template-columns:repeat(16,1fr);grid-template-rows:repeat(2,26px);gap:2px;min-width:0}.state-tile{background:var(--bg-4);border:1px solid var(--border);border-radius:2px;cursor:pointer;position:relative;overflow:hidden;background-size:cover;background-position:center;color:#ffffff4d;font-size:9px;display:flex;align-items:flex-end;justify-content:flex-start;padding:1px 2px;transition:border-color .1s;min-width:0}.state-tile:hover{border-color:var(--border-hi)}.state-tile--empty{cursor:default}.state-tile--empty:hover{border-color:var(--border)}.state-tile--stored{border-color:var(--border-hi)}.state-tile--active{border:2px solid var(--accent)!important}.state-tile--morphing{border:2px solid #4a9eff!important;box-shadow:0 0 5px #4a9eff66}.state-tile--neutral{width:36px;flex-shrink:0;align-self:stretch;color:var(--accent-dim);font-size:16px;justify-content:center;align-items:center;padding:0;border-radius:3px;background:var(--bg-3)}.state-tile--neutral:hover{color:var(--accent);border-color:var(--accent-dim)}.state-tile-num{font-size:8px;color:#ffffff59;line-height:1;pointer-events:none;user-select:none}@keyframes state-tile-flash{0%{border-color:var(--accent);box-shadow:0 0 6px var(--accent)}to{border-color:var(--border-hi);box-shadow:none}}.state-tile--flash{animation:state-tile-flash .4s ease-out forwards}#morph-ctrl{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:var(--bg-3);border:1px solid var(--border);border-radius:3px;padding:2px 8px;cursor:ns-resize;user-select:none;min-width:44px}#morph-ctrl:hover{border-color:var(--border-hi)}#morph-ctrl.morph-active{border-color:var(--accent)}.morph-label{font-size:8px;color:var(--text-2);letter-spacing:.05em;line-height:1}#morph-speed-val{font-size:11px;color:var(--text-1);font-variant-numeric:tabular-nums;line-height:1}#morph-ctrl.morph-active #morph-speed-val{color:var(--accent)}#bank-nav{flex-shrink:0;position:relative;align-self:stretch;display:flex;align-items:center}#btn-save-project{background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);font-size:12px;padding:4px 7px;border-radius:3px;cursor:pointer;height:100%;line-height:1}#btn-save-project:hover{border-color:var(--accent);color:var(--accent)}#btn-save-project:active{background:var(--bg-4)}#bank-name-btn{background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);font-size:11px;padding:4px 10px;border-radius:3px;cursor:pointer;white-space:nowrap;height:100%}#bank-name-btn:hover{border-color:var(--border-hi)}#bank-dropdown{position:absolute;bottom:calc(100% + 4px);right:0;min-width:150px;background:var(--bg-2);border:1px solid var(--border-hi);border-radius:4px;padding:4px 0;z-index:300;box-shadow:0 4px 16px #00000080}#bank-dropdown.hidden{display:none}.bank-dropdown-item{display:block;width:100%;padding:6px 14px;font-size:11px;color:var(--text-1);background:none;border:none;cursor:pointer;text-align:left}.bank-dropdown-item:hover{background:var(--bg-4)}.bank-dropdown-item.active{color:var(--accent)}.bank-dropdown-item.new-bank{color:var(--text-2)}.bank-dropdown-divider{height:1px;background:var(--border);margin:4px 0}#state-tile-menu{position:fixed;background:var(--bg-2);border:1px solid var(--border-hi);border-radius:4px;padding:4px 0;z-index:400;min-width:140px;box-shadow:0 4px 16px #00000080}#state-tile-menu.hidden{display:none}.state-tile-menu-item{display:block;width:100%;padding:6px 14px;font-size:11px;color:var(--text-1);background:none;border:none;cursor:pointer;text-align:left}.state-tile-menu-item:hover{background:var(--bg-4)}.state-tile-menu-item.danger{color:#e06060}.memory-empty{padding:8px;font-size:11px;color:var(--text-2);font-style:italic}.memory-state-row{display:flex;align-items:center;gap:6px;padding:4px 8px;border-bottom:1px solid var(--bg-3);transition:background .1s}.memory-state-row:hover{background:var(--bg-3)}.memory-state-row.active{background:var(--bg-3);border-left:2px solid var(--accent)}.memory-state-thumb{width:44px;min-width:44px;height:30px;flex-shrink:0;background:var(--bg-4);border:1px solid var(--border);border-radius:2px;background-size:cover;background-position:center;cursor:pointer}.memory-state-thumb:hover{border-color:var(--border-hi)}.memory-state-num{font-size:10px;color:var(--text-2);width:18px;flex-shrink:0;text-align:right}.memory-state-name{flex:1;font-size:11px;color:var(--text-1);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.memory-state-name:hover{color:var(--accent)}.memory-state-name-input{flex:1;font-size:11px;background:var(--bg-4);border:1px solid var(--accent-dim);color:var(--text-1);padding:1px 4px;border-radius:2px;outline:none}.memory-state-btn{background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);font-size:11px;padding:2px 6px;border-radius:2px;cursor:pointer;flex-shrink:0}.memory-state-btn:hover{color:var(--text-1);border-color:var(--border-hi)}.memory-state-btn--danger:hover{color:#e06060;border-color:#e06060}.btn-danger{color:#c05050!important;border-color:#6a3030!important}.btn-danger:hover{color:#e06060!important;border-color:#e06060!important;background:#2a1a1a!important}#bank-list{padding:4px 0;border-bottom:1px solid var(--bg-3)}.bank-list-item{display:block;width:100%;padding:5px 12px;font-size:11px;color:var(--text-1);background:none;border:none;border-left:2px solid transparent;cursor:pointer;text-align:left;transition:background .1s}.bank-list-item:hover{background:var(--bg-3)}.bank-list-item.active{color:var(--accent);border-left-color:var(--accent);background:var(--bg-3)}.context-menu{position:fixed;background:var(--bg-3);border:1px solid var(--border-hi);border-radius:4px;min-width:180px;z-index:1000;box-shadow:0 8px 24px #0009;font-family:var(--mono);font-size:12px;overflow:hidden}.context-menu.hidden{display:none}.menu-header{padding:6px 10px;color:var(--accent);font-weight:500;font-size:11px;border-bottom:1px solid var(--border);background:var(--bg-2)}.menu-section{padding:4px 10px 2px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);margin-top:2px}.menu-item{display:block;width:100%;text-align:left;padding:5px 10px;color:var(--text-1);font-family:var(--mono);font-size:12px;transition:all .05s}.menu-item:hover{background:var(--bg-4);color:var(--text-0)}.menu-item.active{color:var(--accent)}#param-search{position:fixed;top:60px;left:50%;transform:translate(-50%);width:400px;max-width:90vw;background:var(--bg-2);border:1px solid var(--accent-dim);border-radius:6px;box-shadow:0 8px 32px #0009;z-index:2000;overflow:hidden}#param-search-input{display:block;width:100%;background:var(--bg-3);border:none;border-bottom:1px solid var(--border);color:var(--text-0);font-family:var(--mono);font-size:13px;padding:10px 14px;outline:none;box-sizing:border-box}#param-search-results{max-height:300px;overflow-y:auto}.psearch-item{display:flex;align-items:center;gap:10px;padding:7px 14px;cursor:pointer;font-family:var(--mono);font-size:12px;border-bottom:1px solid var(--bg-4)}.psearch-item:hover,.psearch-item.selected{background:var(--bg-4);color:var(--accent)}.psearch-item .pi-id{color:var(--text-2);flex:1}.psearch-item .pi-val{color:var(--accent);min-width:60px;text-align:right}.psearch-item .pi-ctrl{color:var(--text-2);font-size:10px}#kb-help{position:fixed;inset:0;background:#000000b3;z-index:3000;display:flex;align-items:center;justify-content:center}#kb-help.hidden{display:none}#kb-help-box{background:var(--bg-2);border:1px solid var(--accent-dim);border-radius:8px;padding:20px 24px;box-shadow:0 12px 48px #000c;min-width:460px;max-width:90vw}#kb-help-title{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--accent);text-transform:uppercase;letter-spacing:.12em;margin-bottom:16px;text-align:center}#kb-help-cols{display:flex;gap:24px}.kb-col{flex:1}.kb-section{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);margin:10px 0 5px}.kb-section:first-child{margin-top:0}.kb-row{display:flex;align-items:center;gap:8px;margin:3px 0;font-family:var(--mono);font-size:12px;color:var(--text-1)}.kb-row kbd{display:inline-block;background:var(--bg-4);border:1px solid var(--border);border-radius:3px;padding:1px 6px;font-family:var(--mono);font-size:11px;color:var(--text-0);min-width:28px;text-align:center}#glsl-editor{font-family:Courier New,monospace;font-size:11px;line-height:1.5;color:#c8c8d8;background:#07070e;border:1px solid var(--border);border-top:none;padding:6px 8px;box-sizing:border-box;tab-size:2;caret-color:var(--accent);resize:vertical}#glsl-editor:focus{outline:none;border-color:var(--accent)}#glsl-error{font-family:monospace;font-size:10px;color:#e84040;background:#e8404012;border-left:2px solid #e84040;padding:4px 8px;white-space:pre-wrap;word-break:break-all}#onboarding{position:fixed;inset:0;background:#000000d1;z-index:4000;display:flex;align-items:center;justify-content:center}#onboarding.hidden{display:none}#onboarding-box{background:var(--bg-2);border:1px solid var(--accent-dim);border-radius:8px;padding:28px 32px;box-shadow:0 16px 64px #000000e6;max-width:460px;width:90vw;text-align:center}#onboarding-title{font-family:var(--mono);font-size:22px;font-weight:600;color:var(--accent);letter-spacing:.15em;text-transform:uppercase;margin-bottom:4px}.splash-version{font-size:11px;color:var(--text-2);letter-spacing:.08em;margin-top:4px;font-variant-numeric:tabular-nums}#onboarding-sub{font-size:11px;color:var(--text-2);letter-spacing:.08em;margin-bottom:24px}#onboarding-gestures{display:flex;flex-direction:column;gap:14px;margin-bottom:24px;text-align:left}.ob-gesture{display:flex;gap:14px;align-items:flex-start}.ob-icon{font-family:var(--mono);font-size:13px;color:var(--accent);min-width:36px;padding-top:2px;text-align:center}.ob-desc{font-size:12px;color:var(--text-1);line-height:1.55}.ob-desc strong{color:var(--text-0)}#onboarding-dismiss{font-family:var(--mono);font-size:12px;color:var(--bg-1);background:var(--accent);border:none;border-radius:4px;padding:7px 32px;cursor:pointer;letter-spacing:.1em;text-transform:uppercase}#onboarding-dismiss:hover{background:var(--text-0)}#projmap-overlay{position:absolute;inset:0;pointer-events:none;z-index:6}.corner-handle{position:absolute;width:18px;height:18px;margin:-9px 0 0 -9px;border:2px solid var(--accent);border-radius:50%;background:#00000080;cursor:crosshair;pointer-events:all;touch-action:none;box-shadow:0 0 6px #000000b3;transition:border-color .1s,transform .1s}.corner-handle:hover{border-color:#fff;transform:scale(1.3)}.corner-handle:active{border-color:#fff;transform:scale(1.2);background:#ffffff26}#btn-projmap.active{color:var(--accent)!important;border-color:var(--accent-dim)!important}.clip-error-toast{position:fixed;bottom:48px;left:50%;transform:translate(-50%);background:#7a1a1a;border:1px solid #c03030;color:#fcc;font-size:11px;padding:7px 14px;border-radius:4px;z-index:9999;pointer-events:none;max-width:380px;text-align:center;animation:toast-in .15s ease}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(6px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.ctx-menu{background:var(--bg-2);border:1px solid var(--border);border-radius:4px;padding:4px 0;min-width:170px;box-shadow:0 4px 16px #00000080;user-select:none}.ctx-item{padding:6px 14px;font-size:11px;color:var(--text-1);cursor:pointer}.ctx-item:hover{background:var(--bg-4)}.ctx-item.ctx-danger{color:#e05050}.ctx-item.ctx-danger:hover{background:#c8282826}.hidden{display:none!important}body.ghost-mode #output-canvas{visibility:hidden}body.ghost-mode #ghost-label{display:flex}#ghost-label{display:none;position:absolute;inset:0;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-family:var(--mono);font-size:11px;color:var(--text-2);pointer-events:none;letter-spacing:.06em;background:#0a0a0b8c}#ghost-label span{font-size:22px;opacity:.5}#btn-ghost-mode.active{color:var(--green)!important;border-color:var(--green)!important}body.fullscreen-output #app{right:0}body.fullscreen-output #control-panel{display:none}body.fullscreen-output #signal-path{display:none!important}body.fullscreen-output #state-bar,body.fullscreen-output #status-bar{display:none}body.fullscreen-output #app{top:0;bottom:0}*{scrollbar-width:thin;scrollbar-color:var(--border-hi) var(--bg-2)}@keyframes lfo-pulse{0%,to{opacity:.6}50%{opacity:1}}.param-ctrl.lfo{animation:lfo-pulse 2s ease-in-out infinite}.ai-settings-panel{position:fixed;top:var(--status-h);right:8px;width:280px;background:var(--bg-2);border:1px solid var(--border-hi);border-radius:4px;box-shadow:0 8px 24px #000000b3;z-index:500;padding:10px 12px 12px;font-family:var(--mono);font-size:11px}.ai-settings-panel.hidden{display:none}.ai-settings-hdr{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border)}.ai-key-status{font-size:11px;color:var(--text-2);margin-bottom:6px;min-height:16px}.ai-key-status.ok{color:var(--green)}.ai-key-status.error{color:var(--red)}.ai-key-input{width:100%;background:var(--bg-3);border:1px solid var(--border);border-radius:3px;color:var(--text-0);font-family:var(--mono);font-size:11px;padding:5px 8px;outline:none;box-sizing:border-box;margin-bottom:4px}.ai-key-input:focus{border-color:var(--accent-dim)}.ai-settings-note{font-size:10px;color:var(--text-2);margin-top:8px;line-height:1.5;padding-top:8px;border-top:1px solid var(--border)}#ai-preset-ui{padding:8px 10px;border-bottom:1px solid var(--border);background:var(--bg-3)}.ai-section-hdr{font-family:var(--mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.ai-text-input{width:100%;background:var(--bg-2);border:1px solid var(--border);border-radius:3px;color:var(--text-0);font-family:var(--mono);font-size:11px;padding:5px 8px;outline:none;resize:vertical;min-height:44px;box-sizing:border-box;margin-bottom:5px;line-height:1.4}.ai-text-input:focus{border-color:var(--accent-dim)}.ai-text-input::placeholder{color:var(--text-2)}.ai-result{font-family:var(--mono);font-size:11px;color:var(--text-1);background:var(--bg-2);border:1px solid var(--border);border-radius:3px;padding:6px 8px;margin-top:5px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.ai-result.hidden{display:none}.ai-result.error{color:var(--red);border-color:var(--red-dim)}#ai-narrator-overlay{position:absolute;bottom:12px;left:50%;transform:translate(-50%);max-width:80%;background:#0000008c;color:var(--accent);font-family:var(--mono);font-size:12px;padding:5px 12px;border-radius:3px;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:50;letter-spacing:.04em;border:1px solid var(--accent-dim);text-shadow:0 1px 4px rgba(0,0,0,.8)}#ai-narrator-overlay.hidden{display:none}@keyframes coach-fade{0%{opacity:1;transform:translateY(0)}70%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}.ai-coach-notif{position:fixed;top:calc(var(--status-h) + 8px);left:50%;transform:translate(-50%);background:var(--bg-3);border:1px solid var(--accent-dim);border-radius:4px;color:var(--accent);font-family:var(--mono);font-size:12px;padding:7px 16px;pointer-events:none;white-space:nowrap;z-index:600;box-shadow:0 4px 16px #00000080;letter-spacing:.04em;transition:opacity .6s ease}#btn-ai-narrator.active{color:var(--accent)!important;border-color:var(--accent-dim)!important}#btn-ai-coach.active{color:var(--green)!important;border-color:var(--green-dim)!important}#btn-ai-settings.active{color:var(--accent)!important}.ai-prov-row{display:flex;align-items:center;gap:6px;margin:5px 0}.ai-prov-label{font-size:10px;color:var(--text-2);min-width:52px;flex-shrink:0}.ai-prov-note{font-size:10px;color:var(--text-2);opacity:.7}.ai-prov-select{flex:1;background:var(--bg-3);border:1px solid var(--border);border-radius:3px;color:var(--text-1);font-family:var(--mono);font-size:10px;padding:2px 4px;min-width:0}.ai-prov-select:focus{outline:none;border-color:var(--accent-dim)}.ai-prov-link{display:block;font-size:10px;color:var(--accent-dim);text-decoration:none;padding:2px 0 4px;transition:color .15s}.ai-prov-link:hover{color:var(--accent);text-decoration:underline}#capture-panel{position:fixed;top:var(--status-h);right:4px;z-index:1200;background:var(--bg-2);border:1px solid var(--border);border-radius:4px;padding:8px 10px;display:flex;flex-direction:column;gap:6px;min-width:230px;font-size:11px;color:var(--text-1)}#capture-panel.hidden{display:none}.cap-row{display:flex;align-items:center;gap:6px}#capture-panel input[type=number]{width:52px;background:var(--bg-4);border:1px solid var(--border);color:var(--text-1);padding:2px 4px;border-radius:3px;font-size:11px}#capture-panel button{background:var(--bg-4);border:1px solid var(--border);color:var(--text-1);padding:3px 8px;border-radius:3px;cursor:pointer;font-size:11px}#capture-panel button:hover{background:var(--bg-3);color:var(--accent)}#cap-frame-label{font-variant-numeric:tabular-nums;flex:1;color:var(--accent)}#cap-close{align-self:flex-end;font-size:10px;color:var(--text-2)}#panel-overlay{display:none;position:fixed;inset:0;background:#00000073;z-index:199}#panel-overlay:not(.hidden){display:block}@media (min-width: 2560px){:root{--ctrl-w: 380px}body{font-size:14px}.param-row{height:32px}}@media (max-width: 1200px){:root{--ctrl-w: 280px}}@media (max-width: 900px){:root{--ctrl-w: 300px}#app{flex-direction:column}#output-panel{width:100%;flex:1}#control-panel{position:fixed;top:var(--status-h, 36px);right:0;bottom:0;z-index:200;transform:translate(100%);transition:transform .2s ease;box-shadow:-4px 0 24px #0009}#control-panel.panel-open{transform:translate(0)}#btn-panel-toggle{display:flex!important;align-items:center;justify-content:center;padding:0 10px;font-size:16px;background:transparent;border:none;color:var(--text-1);cursor:pointer;height:100%}#btn-panel-toggle:hover{color:var(--accent)}}@media (max-width: 600px){:root{--ctrl-w: 100vw}#control-panel{width:100vw}}@media (pointer: coarse){.param-row{min-height:44px}.tab{padding:10px 12px}.import-btn{padding:8px 12px}}.tab-content,.detached-panel-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}#vkbd-panel{position:fixed;bottom:44px;left:50%;transform:translate(-50%);z-index:5000;background:#12121aed;border:1px solid var(--border-hi);border-radius:8px;padding:6px 8px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);user-select:none;touch-action:none;cursor:move}#vkbd-panel.hidden{display:none}.vkbd-handle{font-size:10px;color:var(--text-1);text-align:center;padding:0 0 4px;cursor:move}.vkbd-row{display:flex;gap:2px;margin-bottom:2px;justify-content:center}.vkbd-key{background:var(--bg-3);border:1px solid var(--border);color:var(--text-0);border-radius:4px;padding:0 4px;min-width:26px;height:30px;font-size:10px;font-family:var(--mono);cursor:pointer;touch-action:none;display:flex;align-items:center;justify-content:center;transition:background .08s}.vkbd-key:active,.vkbd-key.pressed{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-dim)}.vkbd-key-wide{min-width:46px}.vkbd-key-xl{min-width:80px}.clip-lib-header{display:flex;align-items:center;gap:6px;padding:4px 8px;flex-wrap:wrap}.clip-lib-title{font-family:var(--mono);font-size:11px;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;flex:0 0 auto}.clip-rec-btn{font-family:var(--mono);font-size:10px;padding:2px 7px;border:1px solid var(--border);border-radius:3px;background:var(--bg-4);color:var(--text-2);cursor:pointer;transition:color .1s,border-color .1s,background .1s}.clip-rec-btn.recording{color:var(--red);border-color:var(--red);background:var(--red-dim);animation:clip-record-pulse .6s infinite}.clip-rec-btn:hover{color:var(--text-0);border-color:var(--border-hi)}@keyframes clip-record-pulse{0%,to{opacity:1}50%{opacity:.4}}.clip-lib-bank-row{display:flex;gap:3px;padding:2px 8px 4px}.clip-bank-btn{font-family:var(--mono);font-size:10px;padding:2px 6px;border:1px solid var(--border);border-radius:3px;background:var(--bg-4);color:var(--text-1);cursor:pointer;transition:color .1s,border-color .1s}.clip-bank-btn:hover{color:var(--text-0);border-color:var(--border-hi)}.clip-bank-btn.active{color:var(--accent);border-color:var(--accent-dim)}.clip-slot-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;padding:4px 8px 6px}.clip-slot{width:28px;height:28px;font-family:var(--mono);font-size:9px;border:1px solid var(--bg-4);border-radius:3px;background:var(--bg-3);color:var(--text-2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .1s,box-shadow .1s;background-size:cover;background-position:center;user-select:none;touch-action:none}.clip-slot:hover{border-color:var(--border-hi);color:var(--text-0)}.clip-slot.filled{border-color:var(--accent-dim);color:var(--accent)}.clip-slot.active{border-color:var(--accent);box-shadow:0 0 4px var(--accent);color:var(--accent)}.clip-slot.recording{border-color:var(--red);animation:clip-record-pulse .6s infinite}.clip-lib-status{font-family:var(--mono);font-size:10px;color:var(--text-2);padding:0 8px 6px;min-height:14px}.cp-tab-row{display:flex;gap:3px;padding:6px 10px 4px;border-bottom:1px solid var(--border)}.cp-tab{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.08em;padding:3px 12px;background:var(--bg-3);border:1px solid var(--border);border-radius:2px;color:var(--text-1);cursor:pointer;transition:color .1s,border-color .1s,background .1s}.cp-tab:hover{color:var(--text-0);border-color:var(--border-hi)}.cp-tab.cp-tab-active{color:var(--accent);border-color:var(--accent-dim);background:#e8c84012}.cp-panel{padding:6px 10px 4px}.cp-sv{display:block;width:100%;height:130px;border-radius:3px;cursor:crosshair;border:1px solid var(--border);box-sizing:border-box}.cp-hue{display:block;width:100%;height:14px;border-radius:2px;cursor:ew-resize;margin-top:5px;border:1px solid var(--border);box-sizing:border-box}.cp-inputs{display:flex;gap:4px;margin-top:5px}.cp-input-group{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1;min-width:0}.cp-input-group label{font-family:var(--mono);font-size:9px;color:var(--text-2);letter-spacing:.06em;user-select:none}.cp-input-group input{width:100%;box-sizing:border-box;font-family:var(--mono);font-size:11px;background:var(--bg-3);border:1px solid var(--border);border-radius:2px;color:var(--text-0);padding:2px 3px;text-align:center;-moz-appearance:textfield}.cp-input-group input::-webkit-inner-spin-button,.cp-input-group input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cp-input-group input:focus{outline:none;border-color:var(--accent-dim);color:var(--text-0)}.cp-param-rows{margin-top:4px;border-top:1px solid var(--border);padding-top:2px}.cp-preset-area{padding:6px 10px 8px;border-top:1px solid var(--border)}.cp-preset-header{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);margin-bottom:5px}.cp-preset-save-row{display:flex;gap:4px;margin-bottom:6px}.cp-preset-name-inp{flex:1;min-width:0;font-family:var(--mono);font-size:11px;background:var(--bg-3);border:1px solid var(--border);border-radius:2px;color:var(--text-0);padding:3px 6px}.cp-preset-name-inp::placeholder{color:var(--text-2)}.cp-preset-name-inp:focus{outline:none;border-color:var(--accent-dim)}.cp-preset-save-btn{font-family:var(--mono);font-size:10px;padding:3px 9px;background:var(--bg-3);border:1px solid var(--border);border-radius:2px;color:var(--text-1);cursor:pointer;flex-shrink:0;transition:color .1s,border-color .1s}.cp-preset-save-btn:hover{color:var(--accent);border-color:var(--accent-dim)}.cp-preset-list{display:flex;flex-wrap:wrap;gap:4px;min-height:20px}.cp-preset-chip{font-family:var(--mono);font-size:10px;padding:3px 8px;background:var(--bg-3);border:1px solid var(--border);border-radius:2px;color:var(--text-1);cursor:pointer;transition:color .1s,border-color .1s,background .1s}.cp-preset-chip:hover{color:var(--text-0);border-color:var(--border-hi)}.cp-preset-chip.active{color:var(--accent);border-color:var(--accent-dim);background:#e8c84012}.cp-preset-empty{font-family:var(--mono);font-size:10px;color:var(--text-2);font-style:italic}.atv-preset-area{padding:6px 10px 8px}.atv-preset-header{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);margin-bottom:5px}.atv-preset-row{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.atv-preset-sep{height:1px;background:var(--border);margin:6px 0 8px}.atv-preset-save-row{display:flex;gap:4px;margin-bottom:6px}.atv-preset-name-inp{flex:1;min-width:0;font-family:var(--mono);font-size:11px;background:var(--bg-3);border:1px solid var(--border);border-radius:2px;color:var(--text-0);padding:3px 6px}.atv-preset-name-inp::placeholder{color:var(--text-2)}.atv-preset-name-inp:focus{outline:none;border-color:var(--accent-dim)}.atv-preset-save-btn{font-family:var(--mono);font-size:10px;padding:3px 9px;background:var(--bg-3);border:1px solid var(--border);border-radius:2px;color:var(--text-1);cursor:pointer;flex-shrink:0;transition:color .1s,border-color .1s}.atv-preset-save-btn:hover{color:var(--accent);border-color:var(--accent-dim)}.atv-preset-list{display:flex;flex-wrap:wrap;gap:4px;min-height:20px}.atv-preset-chip{font-family:var(--mono);font-size:10px;padding:3px 8px;background:var(--bg-3);border:1px solid var(--border);border-radius:2px;color:var(--text-1);cursor:pointer;transition:color .1s,border-color .1s,background .1s}.atv-preset-chip:hover{color:var(--text-0);border-color:var(--border-hi)}.atv-preset-chip.active{color:var(--accent);border-color:var(--accent-dim);background:#e8c84012}.atv-preset-empty{font-family:var(--mono);font-size:10px;color:var(--text-2);font-style:italic}.tt-nav{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.tt-nav-btn{font-family:var(--mono);font-size:10px;padding:3px 8px;background:var(--bg-3);border:1px solid var(--border);border-radius:2px;color:var(--text-1);cursor:pointer;transition:color .1s,border-color .1s,background .1s}.tt-nav-btn:hover{color:var(--text-0);border-color:var(--border-hi)}.tt-nav-btn.active{color:var(--accent);border-color:var(--accent-dim);background:#e8c84012}.tt-subpage{display:flex;align-items:center;gap:4px;margin-bottom:6px}.tt-subpage.idle{opacity:.35;pointer-events:none}.tt-subpage-btn{font-family:var(--mono);font-size:10px;padding:3px 6px;background:var(--bg-3);border:1px solid var(--border);border-radius:2px;color:var(--text-1);cursor:pointer;transition:color .1s,border-color .1s}.tt-subpage-btn:hover{color:var(--accent);border-color:var(--accent-dim)}.tt-subpage-btn:disabled{opacity:.35;cursor:default}.tt-subpage-label{font-family:var(--mono);font-size:10px;color:var(--text-1);min-width:32px;text-align:center}.tt-rss-row{display:flex;gap:4px;margin-top:4px}.tt-rss-url{flex:1;min-width:0;font-family:var(--mono);font-size:10px;background:var(--bg-3);border:1px solid var(--border);border-radius:2px;color:var(--text-0);padding:3px 6px}.tt-rss-url::placeholder{color:var(--text-2)}.tt-rss-url:focus{outline:none;border-color:var(--accent-dim)}.tt-connect-btn{font-family:var(--mono);font-size:10px;padding:3px 9px;background:var(--bg-3);border:1px solid var(--border);border-radius:2px;color:var(--text-1);cursor:pointer;flex-shrink:0;transition:color .1s,border-color .1s}.tt-connect-btn:hover{color:var(--accent);border-color:var(--accent-dim)}.tt-rss-preset-row{margin-bottom:4px}.tt-rss-preset{width:100%;font-family:var(--mono);font-size:10px;padding:3px 6px;background:var(--bg-3);border:1px solid var(--border);border-radius:2px;color:var(--text-1);cursor:pointer}.tt-rss-preset:focus{outline:none;border-color:var(--accent-dim)}
