/* SPDX-License-Identifier: GPL-3.0-only */
/* Instrument shell: horizontal hardware layout, fixed rails and keybed. */
.instrument-app .utility-parking[hidden]{display:none!important}
.instrument-app,.instrument-app body{height:100%;overflow:hidden;background:#000}.instrument-app .masthead,.instrument-app .intro,.instrument-app .desktop,.instrument-app .port-notes,.instrument-app .footer,.instrument-app .scope{display:none}.instrument-app main{max-width:none;padding:0;height:100dvh}.instrument-app .instrument{height:100%;margin:0;border:0;display:flex;flex-direction:column;box-shadow:none;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.instrument-app .instrument-head{height:48px;min-height:48px;padding:2px 12px;display:flex;gap:12px;align-items:center;background:#111;border-bottom:1px solid #4a5c00}.instrument-app .product-lockup{font-size:24px;letter-spacing:1px}.instrument-app .product-lockup span{display:none}.instrument-app .patch-heading{flex:1;min-width:80px;min-height:0;display:flex;align-items:center;gap:8px}.instrument-app .patch-heading>div{min-width:0}.instrument-app .patch-heading h2{font:700 22px var(--display);margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.instrument-app .patch-heading .eyebrow,.instrument-app #patch-desc,.instrument-app .audition span{display:none}.instrument-app .audition{width:40px;height:40px;min-width:40px;font-size:17px}.rail-button{min-height:40px;font:10px var(--mono);color:var(--text);padding:6px;border:1px solid var(--line);border-radius:3px}.rail-button[aria-pressed=true]{color:#ff7a45;border-color:#ff7a45}.instrument-app .audio-controls{flex-direction:row;gap:8px}.instrument-app .quality{font-size:0}.instrument-app .quality select{font-size:10px;max-width:74px;margin:0;height:36px}.instrument-app .start{min-height:40px;padding:6px 10px;font-size:11px}.instrument-app .instrument-body{flex:1;min-height:0;display:block}.instrument-app .console{height:100%;padding:0 10px;display:grid;grid-template-rows:40px minmax(0,1fr) 96px;gap:0}.instrument-app.no-keybed .console{grid-template-rows:40px minmax(0,1fr)}.instrument-app .tabs{margin:0;align-items:center;justify-content:space-between;gap:14px;min-height:40px;overflow-y:hidden}.instrument-app .tabs button{min-height:40px;font:11px var(--mono);padding:10px 0}.workspace{min-height:0;overflow:hidden;display:flex;flex-direction:column}.instrument-app .view{flex:1;min-height:0;height:100%;overflow:auto;padding:8px 4px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#4a5c00 #0a0a0a}.instrument-app .address-bar{display:none;margin:2px 0;max-height:50%;overflow:auto;flex-shrink:0}.instrument-app[data-active-view=modulation] .address-bar,.instrument-app.midi-learning .address-bar{display:flex}.instrument-app .address-bar button{min-height:40px;padding:6px 10px}.instrument-app .library{display:none;position:absolute;z-index:10;left:0;top:48px;bottom:20px;width:300px;max-width:80vw;min-height:0;background:#111;padding:16px;border:1px solid #4a5c00;box-shadow:12px 0 30px #000a}.instrument-app.library-open .library{display:flex}.instrument-app .preset-list{display:block;flex:1;height:auto;overflow:auto}.instrument-app .preset{display:block;width:100%;min-width:0}.instrument-app .library .search-label{display:flex}.instrument-app .categories{flex-wrap:wrap}.instrument-app .instrument-foot{height:20px;min-height:20px;padding:2px 12px;display:flex;flex-direction:row;gap:10px;background:#111;align-items:center;font:9px var(--mono)}.instrument-app #message{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.instrument-app .scope-label{position:static;display:flex;gap:12px;font:8px var(--mono);white-space:nowrap}.instrument-app #local-keys{display:grid;grid-template-columns:90px minmax(0,1fr) 86px;grid-template-rows:88px;gap:8px;min-height:0;padding:4px 0}.instrument-app #local-keys[hidden]{display:none}.instrument-app .keyboard{grid-column:2;grid-row:1;height:100%}.instrument-app .keyboard-head{grid-column:3;grid-row:1;display:flex;flex-direction:column;justify-content:center;padding:0;gap:6px;border:0}.instrument-app .keyboard-head>span{display:none}.instrument-app .keyboard-head select{min-height:32px;font-size:11px}.instrument-app .keyboard-head button{min-height:32px;font-size:9px}.instrument-app .performance-wheels{grid-column:1;grid-row:1;margin:0;display:flex;justify-content:space-around;gap:6px;font-size:9px}.instrument-app .performance-wheels label{display:flex;align-items:center;flex-direction:column;gap:2px}.instrument-app .performance-wheels input[type=range]{writing-mode:vertical-lr;direction:rtl;height:66px;min-height:0;width:30px}.instrument-app .performance-wheels label:last-child{display:none}.instrument-app .knobs{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.instrument-app .view-caption,.instrument-app .perform-note{font:10px/1.5 var(--mono);margin:6px 0}.instrument-app .control-section{margin:8px 0}.instrument-app .control-section>h3{font-size:10px;margin:0 0 8px}.instrument-app .deep-controls{grid-template-columns:repeat(auto-fit,minmax(106px,1fr));gap:8px}.instrument-app .choice-controls{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:10px}.instrument-app .subtabs{margin-bottom:8px;gap:6px}.instrument-app .subtabs button{min-height:36px}.instrument-app .fx-slot{padding:10px;margin:8px 0}.instrument-app .knob>label{font:9px var(--mono);min-height:20px}.instrument-app .knob-value{margin-top:4px}.instrument-app .bus-controls{grid-template-columns:1fr 1fr;max-width:430px}.instrument-app .bus-controls>h3{display:none}.instrument-app .connection-controls{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}.instrument-app .connection-controls button,.instrument-app .connection-controls .file-button{display:flex;align-items:center;min-height:44px;padding:10px 14px;font:11px var(--mono);color:var(--text);border:1px solid var(--line)}.license-text{font:11px/1.6 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text);margin:12px 0}.midi-badge{font:9px var(--mono);color:#ff7a45;border:1px solid #60351d;border-radius:3px;min-height:32px;padding:4px;margin-top:5px}.midi-badge[hidden]{display:none}.midi-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:8px;border:1px solid #ff7a45;margin-top:8px}.midi-actions button{min-height:44px;padding:8px;color:#ff7a45;font:11px var(--mono)}.has-midi>label:after,.has-midi>.field-head:after{content:none}.midi-learning [data-param]{outline:1px dashed #ff7a45;outline-offset:2px}.midi-learning [data-param].learning{outline:2px solid #ff7a45}.midi-map input{width:64px;min-height:40px;background:#111;color:var(--text);border:1px solid var(--line)}.instrument-app .cabine-headers,.instrument-app .cabine-grid{max-width:none;grid-template-columns:repeat(8,minmax(0,1fr))}.instrument-app .cabine-grid{row-gap:12px}.instrument-app .cabine-pad{aspect-ratio:auto;min-height:32px}.instrument-app .cabine-headers{margin:6px 0 16px}.instrument-app.controller-mode .patch-heading,.instrument-app.controller-mode #presets-toggle{display:none}.instrument-app.controller-mode .mpe-controller{display:grid;grid-template-columns:minmax(0,1fr) 200px;grid-template-rows:44px minmax(0,1fr) 60px 22px;gap:6px;padding:4px}.instrument-app.controller-mode .mpe-controller h2,.instrument-app.controller-mode .mpe-controller>.perform-note{display:none}.instrument-app.controller-mode .mpe-connection{grid-column:1/-1;grid-row:1;display:flex;margin:0;gap:8px}.instrument-app.controller-mode .mpe-connection select{flex:1;min-width:80px}.instrument-app.controller-mode .mpe-settings{grid-column:2;grid-row:2;margin:0;gap:4px;align-content:start;font-size:10px}.instrument-app.controller-mode .mpe-surface{grid-column:1;grid-row:2/4;height:100%;min-height:100px;margin:0}.instrument-app.controller-mode .mpe-timbre{grid-column:2;grid-row:3;font-size:10px;gap:0}.instrument-app.controller-mode .mpe-state{grid-column:1/-1;grid-row:4;font-size:10px;min-height:0;margin:0}@media(max-width:650px) and (orientation:portrait){.instrument-app .console{grid-template-rows:42px minmax(0,1fr) 108px}.instrument-app .knobs{grid-template-columns:repeat(3,minmax(0,1fr))}.instrument-app .product-lockup{font-size:19px}.instrument-app .instrument-head{gap:6px;padding:2px 6px}.instrument-app .quality{display:none}.instrument-app .patch-heading h2{font-size:18px}}
/* The CABINE can occupy the whole panel. Its toolbar retains a visible way back. */
.instrument-app.cabine-expanded .instrument-head,.instrument-app.cabine-expanded .tabs,.instrument-app.cabine-expanded .instrument-foot,.instrument-app.cabine-expanded .address-bar{display:none}
.instrument-app.cabine-expanded .console{display:block;padding:0 8px;height:100%}
.instrument-app.cabine-expanded .workspace{height:100%}
.instrument-app.cabine-expanded #view{display:grid;grid-template-rows:44px 20px minmax(0,1fr);gap:4px;padding:0 0 4px;overflow:hidden}
.instrument-app.cabine-expanded #view>.perform-note,.instrument-app.cabine-expanded .cabine-source-labels{display:none}
.instrument-app.cabine-expanded #view>.subtabs{margin:0;align-items:center}
.instrument-app.cabine-expanded #view>.subtabs button{min-height:40px;padding:8px 14px}
.instrument-app.cabine-expanded .cabine-headers{margin:0;align-items:center;font-size:9px}
.instrument-app.cabine-expanded .cabine-grid{margin:0;min-height:0;grid-template-rows:repeat(8,minmax(0,1fr));gap:3px}
.instrument-app.cabine-expanded .cabine-pad{min-height:0;height:100%;padding:2px;font-size:10px;border-radius:3px}
.instrument-app.cabine-expanded .cabine-pad[data-source]:before{font-size:8px;top:2px;left:3px}
.cabine-expand{margin-left:auto}
.instrument-app.modulation-addressing .address-bar{display:flex}
.instrument-app.controller-mode #quick-learn{display:none}
.instrument-app .subtabs select{min-height:36px;max-width:170px;background:#161616;color:var(--text);border:1px solid var(--line);font:10px var(--mono);padding:4px}
.instrument-app .cabine-key.active{background:#e8e8e3;color:#111;border-color:#fff}
.instrument-app .cabine-user{font-size:9px;overflow-wrap:anywhere;white-space:normal;line-height:1.25}
.cabine-sequence-controls{display:flex;gap:6px;align-items:center;overflow-x:auto;font:10px var(--mono)}
.cabine-sequence-controls button{min-height:40px;white-space:nowrap;padding:6px 9px;border:1px solid var(--line)}
.cabine-sequence-controls span{white-space:nowrap}.cabine-sequence-controls button.active,.cabine-sequence-controls button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}
.instrument-app.cabine-expanded #view.cabine-sequencing{grid-template-rows:44px 44px minmax(0,1fr)}
.cabine-pad.outside-length{opacity:.25}.cabine-pad.muted-lane{filter:brightness(.3)}.cabine-pad.chosen-step{outline:2px solid #25e0c4;outline-offset:-3px}.cabine-pad.cursor{background:#fff!important;color:#111!important;filter:none}
.instrument-app .cabine-user.active{background:#e8e8e3;color:#111;border-color:#fff}
.cabine-pad.muted-lane.cursor{filter:brightness(.3)}
.credit-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:16px 0}
.credit-list li{display:flex;flex-direction:column;gap:5px;font:11px/1.5 var(--mono);padding:10px 0;border-bottom:1px solid var(--line)}.credit-list strong{color:var(--text)}.credit-list a{color:var(--accent)}
.mapping-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0}.mapping-actions button,.mapping-actions select,.mapping-actions .file-button{min-height:44px;border:1px solid var(--line);padding:8px 12px;background:#161616;color:var(--text);font:11px var(--mono)}.mapping-actions input[type=file]{display:none}.mapping-actions output{font:11px var(--mono);color:var(--accent)}
/* Context actions are anchored to the viewport and never resize the parameter's grid cell. */
.midi-actions{position:fixed;z-index:1000;display:flex;flex-wrap:nowrap;width:max-content;max-width:calc(100vw - 16px);gap:8px;margin:0;padding:8px;background:#161616;box-shadow:0 8px 28px #000b;border:1px solid #ff7a45;border-radius:4px}.midi-actions button{min-height:44px;padding:8px 12px;white-space:nowrap}
/* One compact rail; preset details are revealed explicitly. */
.instrument-app.panel-collapsed .instrument-head{display:none}.instrument-toolbar{display:flex;align-items:center;gap:8px;min-width:0;height:40px;border-bottom:1px solid var(--line)}.instrument-app .instrument-toolbar .tabs{flex:1;min-width:0;gap:12px;justify-content:flex-start}.instrument-access{display:flex;gap:6px;align-items:center;flex:none}.instrument-access .rail-button{min-height:36px}.instrument-access #presets-toggle{max-width:115px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.instrument-access #panel-toggle{width:36px;font-size:20px}.instrument-app .instrument-access .start{min-height:36px;font-size:10px;padding:6px 8px}.instrument-access #quick-learn{font-size:9px}
.instrument-app.library-open .library{display:grid;grid-template-columns:150px minmax(0,1fr);grid-template-rows:24px 42px minmax(0,1fr);gap:10px;width:min(700px,calc(100vw - 24px));max-width:none;top:88px;left:8px;bottom:24px;padding:12px}.instrument-app.panel-collapsed .library{top:40px}.instrument-app .library .section-caption{grid-column:1/-1}.instrument-app .library .search-label{grid-column:1/-1;margin:0}.instrument-app .library .categories{grid-row:3;display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;overflow:auto;gap:2px;margin:0}.instrument-app .library .categories button{min-height:36px;text-align:left;padding:8px;font-size:11px}.instrument-app .library .preset-list{grid-column:2;grid-row:3;overflow:auto;min-height:0}.instrument-app .library-foot{display:none}.instrument-app .library .preset{min-height:44px;padding:8px 10px}.instrument-app .library .preset strong{font-size:15px}
.instrument-app[data-active-view=operators] .control-section{border:1px solid var(--line);padding:10px;margin:8px 0;background:#101010}.instrument-app[data-active-view=operators] .control-section h3{font:10px var(--mono);color:var(--muted)}
.instrument-app.cabine-expanded .instrument-toolbar{display:none}
/* Native bipolar pie appearance with a larger independent touch target. */
.mod-route{border:0;border-radius:0;padding:0;min-width:64px;grid-template-columns:44px 20px;grid-template-rows:auto 44px auto}.mod-route .mod-source{font-size:8px}.mod-mini{background:none;border-radius:0}.mod-mini:before{inset:10px;border:1px solid var(--route-color);background:conic-gradient(from 0deg,#131313 0deg var(--mini-low),var(--route-color) var(--mini-low) var(--mini-high),#131313 var(--mini-high) 360deg)}.mod-mini:after{display:none}.mod-route output{font-size:9px}.mod-tray{gap:4px;margin-top:6px}
.source-popover{position:fixed;z-index:1001;width:min(520px,calc(100vw - 16px));max-height:calc(100dvh - 16px);overflow:auto;margin:0;background:#161616;box-shadow:0 10px 28px #000b;padding:10px}.source-popover .source-families{flex-wrap:wrap;overflow:visible}.source-popover .source-families button{min-height:40px}.source-popover .source-chips{grid-template-columns:repeat(auto-fit,minmax(80px,1fr))}
.operator-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:start}.instrument-app .operator-board .control-section{margin:0}.instrument-app .operator-board .deep-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.instrument-app .operator-board .choice-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.operator-board .field{min-width:0}.operator-board .field select{max-width:100%}
.operator-board .field:has(select) .field-head output{display:none}.instrument-app .operator-board .choice-controls{margin-bottom:8px}.instrument-app .operator-board .field select{min-height:36px;padding:6px 8px;font-size:11px}.instrument-app .operator-board .control-section>h3{margin-bottom:6px}
.instrument-app .field>.mod-add{width:44px;max-width:44px;align-self:flex-end;justify-self:end;margin-left:auto}.instrument-app .mod-add{border-color:transparent;background:transparent;color:#8a8a86}.instrument-app .mod-add:focus-visible,.instrument-app .mod-add:hover{border-color:var(--accent);color:var(--accent);background:#171717}

.instrument-app .instrument-access #panel-toggle{flex:0 0 40px;width:40px;min-width:40px;padding:0;display:grid;place-items:center;line-height:1;font-size:20px;letter-spacing:0;overflow:visible}.panel-dots{display:flex;gap:3px;align-items:center;justify-content:center}.panel-dots i{width:3px;height:3px;border-radius:50%;background:currentColor;display:block}
.mod-board:has(>.source-scope){display:grid;grid-template-columns:minmax(160px,.8fr) minmax(0,1.2fr);gap:8px;align-items:start}.mod-board:has(>.source-scope)>.subtabs{grid-column:1/-1}.mod-board:has(>.source-scope)>.control-section{grid-column:2;grid-row:2/4}.mod-board>.source-scope{grid-column:1;grid-row:2;position:sticky;top:0;margin-top:0}.mod-board>.source-scope svg{height:150px}.mod-board:has(>.scope-indicator)>.function-editor{grid-column:1;grid-row:2}.mod-board>.scope-indicator{grid-row:3}.mod-board:has(>.source-scope) .choice-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.mod-board:has(>.source-scope) .deep-controls{grid-template-columns:repeat(3,minmax(0,1fr))}
.source-scope{margin:8px 0 0;border:1px solid var(--line);background:#080808;padding:8px;color:var(--source-color);min-width:0}.source-scope figcaption{display:flex;justify-content:space-between;font:10px var(--mono)}.source-scope svg{width:100%;height:106px;display:block;margin-top:5px}.source-scope path{fill:none;stroke:var(--source-color);stroke-width:1.5;vector-effect:non-scaling-stroke}.source-scope line{stroke:#333;stroke-width:1;vector-effect:non-scaling-stroke}.source-scope small{font:9px var(--mono);color:#aaa}.function-live{stroke:#9d4edd;stroke-width:1;stroke-dasharray:3 3;pointer-events:none;vector-effect:non-scaling-stroke}

.matrix-header-viewport{overflow:hidden;min-width:0}.matrix-header-viewport .cabine-headers{transform-origin:0 50%}
.matrix-viewport{overflow:hidden;min-height:0;position:relative;height:360px;touch-action:none;overscroll-behavior:none;border:1px solid #313827;border-radius:3px}
.instrument-app .matrix-viewport .cabine-grid{height:100%;margin:0;transform-origin:0 0;grid-template-rows:repeat(8,minmax(0,1fr));gap:4px}
.instrument-app .matrix-viewport .cabine-pad{min-height:0;height:100%;touch-action:none}
.instrument-app.cabine-expanded .matrix-viewport{height:100%;border:0}.instrument-app.cabine-expanded .matrix-header-viewport .cabine-headers{height:100%;margin:0}

.matrix-source-label{position:absolute;left:3px;z-index:5;pointer-events:none;transform:translateY(-50%);background:#090a08e8;padding:3px 5px;border-radius:3px;font:10px var(--mono);box-shadow:0 1px 4px #0008}.matrix-source-label[hidden]{display:none}

.scope-view-tools{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:4px;font:9px var(--mono);color:#a8ad97}.instrument-app .scope-view-tools button{min-height:36px;padding:3px 8px;font:10px var(--mono);color:var(--source-color);border:1px solid var(--line)}.scope-view-tools output{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}

.mod-board>.source-scope{top:48px}
.fx-routing .deep-controls{display:flex;align-items:center;gap:12px}.fx-routing .field{min-width:160px}.fx-routing .knob{width:90px}
.fx-board{display:grid;grid-template-columns:minmax(200px,240px) minmax(0,1fr);gap:12px;align-items:start}.fx-rack{border:1px solid var(--line);padding:8px;background:#0c0e08}.fx-rack .bus-controls{display:block;max-width:none}.fx-rack .bus-controls .deep-controls{display:flex;gap:5px;flex-wrap:wrap}.fx-rack .bus-controls .knob{width:64px}.fx-rack .bus-controls .field{max-width:100%}
.fx-slot-row{display:grid;grid-template-columns:36px minmax(0,1fr) 60px;gap:5px;padding:6px 3px;align-items:center;border:1px solid transparent}.fx-slot-row.selected{border-color:var(--accent);background:#202509}.fx-slot-row .field-head{display:none}.fx-slot-row .field{margin:0;min-width:0}.fx-slot-row select{width:100%;min-width:0;font:11px var(--mono);min-height:40px}.instrument-app .fx-slot-row button{min-height:40px;padding:4px;font:10px var(--mono)}.fx-slot-focus[aria-pressed=true]{color:var(--accent)}.fx-editor{border:1px solid var(--line);padding:10px;background:#0b0c08}.fx-editor>h3{font:12px var(--mono);color:var(--accent);margin:0 0 8px}.fx-editor .control-section{margin-top:0}.fx-editor .deep-controls{grid-template-columns:repeat(auto-fit,minmax(86px,1fr))}.fx-editor .choice-controls{grid-template-columns:repeat(auto-fit,minmax(125px,1fr))}
@media(max-width:600px){.fx-board{grid-template-columns:1fr}.fx-rack{position:static}}

.fx-routing{display:flex;align-items:center;gap:10px;margin:0 0 6px}.fx-routing>h3{margin:0;font:10px var(--mono)}.fx-routing .choice-controls{display:flex;gap:8px;margin:0}.fx-routing .field{min-width:110px;max-width:220px}.fx-rack .bus-controls>h3{display:none}

.fx-slot-focus{touch-action:none;cursor:grab}.fx-slot-row.drop-target{outline:2px solid var(--accent);outline-offset:-2px}

.fx-view .field-head output{display:none}.fx-editor .choice-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px}.fx-editor .choice-controls .field:has(.param-toggle){flex:0 0 74px;min-width:0}.fx-editor .choice-controls .field:has(select){flex:1 1 112px;min-width:100px;max-width:200px}.fx-editor .field-head{font-size:9px}.fx-editor .choice-controls select,.fx-editor .param-toggle{min-height:36px;font-size:11px;padding:5px}
.fx-rack .bus-controls{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.fx-rack .bus-controls .choice-controls{display:flex;flex-direction:column;margin:0;max-width:86px}.fx-rack .bus-controls .field{width:80px}.fx-rack .bus-controls .deep-controls{flex-wrap:nowrap}.fx-rack .bus-controls .param-toggle{font:10px var(--mono);min-height:36px;padding:4px}
.fx-view>.subtabs{position:sticky;top:0;z-index:4;background:#080a06;padding:4px 0}.fx-editor{scroll-margin-top:48px}

.fx-editor{position:relative}.fx-editor .delay-tap{position:absolute;right:10px;top:6px;min-width:64px;min-height:40px;padding:5px 10px;border:1px solid var(--accent);color:var(--accent);font:11px var(--mono)}

.cabine-sequencing .cabine-pad[data-accent]::after{content:"";position:absolute;right:2px;bottom:2px;width:3px;height:var(--accent-height,0%);max-height:calc(100% - 4px);border-radius:2px;background:var(--pad-color);opacity:.65;pointer-events:none}

.fx-drop-grid{position:fixed;max-height:calc(100dvh - 88px);overflow:auto;z-index:6;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:8px;border:1px solid var(--accent);background:#0c0e08;box-shadow:0 8px 22px #000b}.fx-drop-grid[hidden]{display:none}.fx-drop-bus{min-width:0}.fx-drop-bus h4{margin:0 0 6px;font:11px var(--mono);color:var(--accent)}.fx-drop-slot{display:flex;align-items:center;justify-content:center;min-height:44px;margin-top:4px;border:1px solid var(--line);font:10px var(--mono);text-align:center;color:var(--text);padding:3px;overflow-wrap:anywhere}.fx-drop-slot.drop-target{border-color:var(--accent);background:#333d0d;box-shadow:inset 0 0 0 1px var(--accent)}.fx-editor:has(.fx-drop-grid:not([hidden])){min-height:214px}

.fx-texture-board{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:8px;align-items:start}.fx-texture-board>.control-section{min-width:0;margin:0;border:1px solid var(--line);padding:8px}.fx-texture-board>.control-section>h3{margin:0 0 6px;color:var(--accent);font:10px var(--mono)}.fx-texture-board .deep-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.fx-texture-board [data-texture-group=GRAINS] .deep-controls{grid-template-columns:repeat(4,minmax(0,1fr))}.fx-texture-board .choice-controls{display:flex;flex-direction:column;align-items:stretch}.fx-texture-board .choice-controls .field:has(select),.fx-texture-board .choice-controls .field:has(.param-toggle){flex:none;max-width:none;width:100%}.fx-texture-board .knob-value{font-size:11px;white-space:nowrap}.fx-view .param-toggle{white-space:nowrap}

.mod-board:has(>.lfo-actions)>.lfo-actions{grid-column:1;grid-row:3}.lfo-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;align-self:start}.instrument-app .lfo-actions button{min-height:40px;padding:5px;font:10px var(--mono);border:1px solid var(--line)}.lfo-actions .tap-control{grid-column:1/-1;color:#25e0c4}.lfo-actions .lfo-shape[aria-pressed=true]{border-color:#25e0c4;color:#25e0c4;background:#0b2622}
.mod-board:has(>.lfo-actions)>.source-scope{position:static;align-self:start}
.instrument-app .envelope-link{min-height:40px;padding:6px 12px;margin:6px 0;border:1px solid var(--line);font:11px var(--mono)}.envelope-link[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:#20280a}

.fx-editor-layout{container-type:inline-size;display:grid;gap:8px}.fx-editor-layout .fx-control-row{margin:0;align-items:flex-end}.fx-editor-layout .fx-control-row>.field{min-width:0}.fx-editor-layout .fx-knob-row{display:grid;grid-template-columns:repeat(var(--fx-columns),minmax(104px,1fr));gap:6px;align-items:start}.fx-editor-layout .fx-knob-row>.knob{min-width:0}.fx-editor-layout .fx-room-body{display:flex;gap:16px;align-items:flex-start}.fx-room-body>.knob{flex:0 0 86px}.fx-room-body>.field{flex:0 1 160px;min-width:100px}.fx-editor .fx-editor-layout .delay-tap{position:static;align-self:flex-end;min-height:36px;margin:0;font-size:11px}.fx-control-row .field-head{min-height:14px}.fx-editor-layout .knob-value{white-space:nowrap}
@container(max-width:660px){.fx-editor-layout .fx-knob-row[data-columns="6"]{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container(max-width:550px){.fx-editor-layout .fx-knob-row[data-columns="5"]{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container(max-width:440px){.fx-editor-layout .fx-knob-row[data-columns="4"]{grid-template-columns:repeat(2,minmax(0,1fr))}}

@container(max-width:330px){.fx-editor-layout .fx-knob-row[data-columns="5"],.fx-editor-layout .fx-knob-row[data-columns="6"]{grid-template-columns:repeat(2,minmax(0,1fr))}}

.fx-control-row>[data-fx-caption=inline]>.field-head{display:none}
.filter-board .filter-type-controls{margin-top:10px;border-top:1px solid var(--line)}.filter-board .filter-type-controls>h3{color:var(--accent)}.filter-board [data-param]:not([data-param=flt_drive]).inactive-param,.filter-board .envelope-viewport.inactive-param{opacity:.4}
.operator-native-layout{container-type:inline-size;display:grid;gap:6px}.instrument-app .native-operator-board .operator-native-layout .operator-native-row{display:grid;grid-template-columns:repeat(var(--operator-columns),minmax(104px,1fr));gap:6px;align-items:start}.instrument-app .native-operator-board .operator-native-controls{display:flex;flex-wrap:wrap;gap:6px;margin:0}.operator-native-controls>.field{flex:1 1 112px;min-width:0;max-width:250px}.instrument-app .native-operator-board .operator-choice-stack{display:flex;flex-direction:column;gap:4px;margin:0;min-width:0}.operator-choice-stack>.field{min-width:0;max-width:100%}.operator-native-layout .operator-material{grid-column:2/-1;align-self:center}.instrument-app .native-operator-board .operator-native-layout .mod-add{width:44px;min-width:44px;max-width:44px}.operator-native-row>.velocity-coarse{grid-column:1/-1}
@container(max-width:660px){.instrument-app .native-operator-board .operator-native-layout .operator-native-row[data-columns="6"]{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container(max-width:440px){.instrument-app .native-operator-board .operator-native-layout .operator-native-row[data-columns="4"]{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container(max-width:330px){.instrument-app .native-operator-board .operator-native-layout .operator-native-row[data-columns="3"],.instrument-app .native-operator-board .operator-native-layout .operator-native-row[data-columns="6"]{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Filter response is an editing surface; the dot's height is RESO, the curve uses the dB grid. */
.filter-response{min-width:0;display:grid;gap:5px;margin:10px 0 4px}
.filter-response-head{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font:11px var(--mono,monospace)}
.filter-response-head output{color:var(--accent,#c9ef00)}
.filter-response-head span,.filter-response-help{color:#a6aaa2;font-size:10px}
.filter-response-plot{display:block;width:100%;height:170px;touch-action:none;user-select:none;background:#080a08;border:1px solid #34382e;border-radius:4px}
.filter-response-grid line{stroke:#292e25;stroke-width:.6}.filter-response-grid text{fill:#787f72;font:9px monospace}
.filter-response-curve{fill:none;stroke:var(--accent,#c9ef00);stroke-width:1.8;vector-effect:non-scaling-stroke;pointer-events:none}
.filter-response-cut,.filter-response-hp{stroke:var(--accent,#c9ef00);stroke-width:1;stroke-dasharray:3 4;opacity:.5;pointer-events:none}
.filter-response-hp{stroke:#79c6b5}.filter-response-handle{fill:var(--accent,#c9ef00);stroke:#060806;stroke-width:2;pointer-events:none}

/* Preserve FilterPanel sections while redistributing native rows for landscape touch. */
.native-filter-board>[data-filter-section=main]{grid-column:1;grid-row:1/span 2}
.native-filter-board>[data-filter-section=envelope]{grid-column:2;grid-row:1}
.filter-output-column{grid-column:2;grid-row:2;display:grid;gap:8px;min-width:0}
.instrument-app .native-filter-board .operator-native-row{display:grid;grid-template-columns:repeat(var(--operator-columns),minmax(104px,1fr));align-items:start;gap:6px}
.instrument-app .native-filter-board .operator-native-controls{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.instrument-app .native-filter-board .operator-choice-stack{display:flex;flex-direction:column;gap:4px;margin:0;min-width:0}
.native-filter-board .operator-choice-stack>.field{width:100%}
.native-filter-board .operator-native-layout .mod-add{width:44px;min-width:44px;max-width:44px}
@container(max-width:800px){.instrument-app .native-filter-board .operator-native-row[data-columns="7"]{grid-template-columns:repeat(4,minmax(0,1fr))}}
@container(max-width:660px){.instrument-app .native-filter-board .operator-native-row[data-columns="6"]{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container(max-width:550px){.instrument-app .native-filter-board .operator-native-row[data-columns="5"]{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container(max-width:440px){.instrument-app .native-filter-board .operator-native-row[data-columns="7"]{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container(max-width:330px){.instrument-app .native-filter-board .operator-native-row[data-columns="3"],.instrument-app .native-filter-board .operator-native-row[data-columns="5"],.instrument-app .native-filter-board .operator-native-row[data-columns="7"]{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1400px){.native-filter-board{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(150px,.42fr)}.native-filter-board>[data-filter-section=main]{grid-row:1}.filter-output-column{grid-column:3;grid-row:1}}
@media(max-width:600px){.native-filter-board{grid-template-columns:minmax(0,1fr)}.native-filter-board>[data-filter-section=main],.native-filter-board>[data-filter-section=envelope],.filter-output-column{grid-column:1;grid-row:auto}}

.instrument-app .native-filter-board .operator-native-row[data-columns="1"]{grid-template-columns:104px;justify-content:start}
.native-filter-board .field:has(.param-toggle) .field-head output{display:none}
.native-filter-board .operator-native-controls>.field:has(.param-toggle){flex:0 0 74px;max-width:74px}

/* Same two visual layers as the VST: possible reach inside the track, current value on the track. */
.dial .mod-feedback{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3;overflow:visible}
.mod-feedback-range{fill:none;stroke:var(--feedback-color);stroke-width:1.6;stroke-linecap:round;opacity:.9}
.mod-feedback-dot{fill:var(--feedback-color);stroke:#e3eee5;stroke-width:.6}
.instrument-app .has-modulation .dial{box-shadow:none}

/* Native bus captions and switches; the rack keeps touch targets clear of its knobs. */
.instrument-app .fx-routing .field-head{display:none}
.instrument-app .fx-rack .bus-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.instrument-app .fx-rack .bus-controls>h3{display:block;grid-column:1;grid-row:1;margin:0;font:10px var(--mono);color:var(--accent)}
.instrument-app .fx-rack .bus-controls>.choice-controls{grid-column:2;grid-row:1;display:flex;flex-direction:row;max-width:none;gap:4px}
.instrument-app .fx-rack .bus-controls>.deep-controls{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin:0}
.instrument-app .fx-rack .bus-controls .field{width:auto;min-width:0}.instrument-app .fx-rack .bus-controls .field-head{display:none}
.instrument-app .fx-rack .bus-controls .knob{width:auto;min-width:0}.instrument-app .fx-rack .bus-controls .param-toggle{min-width:44px;min-height:44px}
.instrument-app .fx-rack .bus-controls .deep-controls>.knob:only-child{grid-column:1}
@media(pointer:fine){.instrument-app .fx-rack .bus-controls .param-toggle{min-width:36px;min-height:26px}}

/* ROUTING occupies the native left column, leaving the effect editor at the top. */
.instrument-app .fx-rack>.fx-routing{display:block;margin:0 0 8px;padding:0 0 8px;border-bottom:1px solid var(--line)}
.instrument-app .fx-rack>.fx-routing>h3{margin:0 0 6px;font:10px var(--mono)}
.instrument-app .fx-rack>.fx-routing>.choice-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.instrument-app .fx-rack>.fx-routing .field{min-width:0;max-width:none;margin:0}
.instrument-app .fx-rack>.fx-routing button,.instrument-app .fx-rack>.fx-routing select{min-height:44px;width:100%;padding:4px;font:10px var(--mono)}
@media(pointer:fine){.instrument-app .fx-rack>.fx-routing button,.instrument-app .fx-rack>.fx-routing select{min-height:26px;height:26px}}
/* File actions share button semantics and metrics; labels do not stand in for buttons. */
.instrument-app .mapping-file-actions>button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:44px;margin:0;padding:8px 12px;font:11px/1.2 var(--mono);white-space:nowrap}

/* Explicit CABINE surfaces share a fixed navigation row; utility actions stay separate. */
.cabine-toolbar{min-width:0;margin-bottom:8px}
.cabine-surfaces{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:4px}
.cabine-surfaces>button{min-width:0;min-height:44px;padding:6px 4px;border:1px solid var(--line);color:var(--text);font:11px var(--mono);white-space:nowrap}
.cabine-surfaces>button[aria-pressed=true]{color:#080a00;background:var(--accent);border-color:var(--accent)}
.cabine-surfaces>button:focus-visible{outline:2px solid var(--text);outline-offset:-4px}
.instrument-app .cabine-toolbar>.cabine-tools{margin:0;align-items:center;gap:4px}
.instrument-app .cabine-tools>button,.instrument-app .cabine-tools>select{min-height:40px;padding:6px 10px}
.instrument-app.cabine-expanded #view,.instrument-app.cabine-expanded #view.cabine-sequencing{grid-template-rows:auto 20px minmax(0,1fr)}
.instrument-app.cabine-expanded #view.cabine-sequencing{grid-template-rows:auto auto minmax(0,1fr)}
.instrument-app.cabine-expanded .cabine-toolbar{margin:0}
.instrument-app.cabine-expanded .cabine-sequence-controls{min-width:0}
@media(max-width:600px){.cabine-surfaces{grid-template-columns:repeat(4,minmax(0,1fr))}.cabine-surfaces>button{font-size:10px}}
