@font-face{font-family:"IBM Plex Sans";src:url("fonts/ibm-plex-sans-latin.woff2") format("woff2");font-weight:100 700;font-style:normal;font-display:swap}
:root{
  --bg:#050607;--panel:#0b0e11;--panel2:#11151a;--line:rgba(255,255,255,.09);--line2:rgba(255,255,255,.16);
  --text:#f5f7f8;--muted:#8d979f;--muted2:#667079;--cyan:#65ecff;--pink:#ff5ebd;--yellow:#f5e766;--lime:#a7f26a;
  --orange:#ff9966;--violet:#a98cff;--danger:#ff5b62;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;width:100%;min-height:100%;background:var(--bg);color:var(--text);font-family:"IBM Plex Sans",system-ui,sans-serif;overscroll-behavior:none}
body{overflow:hidden;touch-action:manipulation;-webkit-user-select:none;user-select:none}
button,input,select{font:inherit;color:inherit}
button{border:0;cursor:pointer}
button:disabled{cursor:default;opacity:.38}
input[type="range"]{width:100%;accent-color:var(--cyan);touch-action:none}
input[type="number"]{-moz-appearance:textfield}
input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.visually-hidden{position:fixed;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.app-shell{width:100vw;height:100dvh;padding:calc(8px + var(--safe-top)) 10px calc(8px + var(--safe-bottom));background:
  radial-gradient(circle at 50% -30%,rgba(101,236,255,.06),transparent 48%),
  linear-gradient(180deg,#07090b 0,#040506 100%);overflow:hidden}
.nt-app{height:100%;display:grid;grid-template-rows:58px minmax(0,1fr) 48px;gap:8px}
.topbar,.bottombar,.side-panel,.program-strip,.pads-panel{border:1px solid var(--line);background:rgba(10,13,16,.94);box-shadow:inset 0 1px 0 rgba(255,255,255,.03),0 15px 45px rgba(0,0,0,.22)}
.topbar{display:grid;grid-template-columns:210px minmax(450px,1fr) auto;align-items:center;gap:10px;padding:6px 8px;border-radius:9px}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.brand img{width:104px;height:auto;display:block}.brand strong{font-size:10px;letter-spacing:.14em;color:var(--muted);white-space:nowrap}
.transport{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0}
.ctrl,.icon-btn,.tab-btn,.program-btn,.chip,.fx-toggle,.nudge-btn,.small-btn,.project-btn,.history-btn,.stop-all-btn{background:#101419;border:1px solid var(--line);border-radius:6px;min-height:34px;color:#dce2e5;transition:transform .06s ease,background .12s ease,border-color .12s ease,box-shadow .12s ease}
.ctrl:active,.icon-btn:active,.tab-btn:active,.program-btn:active,.chip:active,.fx-toggle:active,.nudge-btn:active,.small-btn:active,.project-btn:active,.history-btn:active,.stop-all-btn:active{transform:translateY(1px);background:#171d23}
.icon-btn{width:38px;font-size:14px}.icon-btn.primary{background:#dfe7ea;color:#050607;font-weight:700}.icon-btn.running{background:var(--cyan);color:#061014;box-shadow:0 0 18px rgba(101,236,255,.22)}.history-btn{width:32px;min-height:34px;padding:0;font-size:15px}.stop-all-btn{height:34px;min-height:34px;padding:0 9px;font-size:7px;letter-spacing:.08em;color:#ffb2b5;border-color:rgba(255,91,98,.3);background:rgba(255,91,98,.08)}
.tempo-box{display:flex;align-items:center;gap:5px;padding:0 7px;height:36px;background:#080a0d;border:1px solid var(--line);border-radius:6px}
.tempo-box span{font-size:8px;color:var(--muted);letter-spacing:.12em}.tempo-box input{width:52px;padding:0;background:transparent;border:0;outline:0;font-size:18px;font-variant-numeric:tabular-nums;font-weight:600;text-align:right}
.quantize-select{height:36px;background:#080a0d;border:1px solid var(--line);border-radius:6px;padding:0 26px 0 9px;font-size:10px;letter-spacing:.07em;outline:0}
.transport-readout{display:flex;align-items:baseline;gap:5px;min-width:122px;justify-content:center;padding:0 8px}.transport-readout strong{font-size:18px;font-variant-numeric:tabular-nums;letter-spacing:.04em}.transport-readout small{font-size:8px;color:var(--muted);letter-spacing:.08em}
.level-meter{width:72px;height:7px;background:#050607;border:1px solid var(--line);border-radius:20px;overflow:hidden}.level-meter i{display:block;width:0;height:100%;background:linear-gradient(90deg,#20d66b 0%,#63df65 52%,#f0d64b 72%,#ff9b38 86%,#ff3b45 100%);transition:width .05s linear}
.status-cluster{display:flex;align-items:center;gap:7px;justify-content:flex-end}.status-pill{font-size:8px;letter-spacing:.08em;color:var(--muted);padding:8px;border:1px solid var(--line);border-radius:6px;background:#080a0d}.status-pill.ready{color:var(--lime)}
.workspace{display:grid;grid-template-columns:72px minmax(0,1fr) 342px;gap:8px;min-height:0}
.program-strip{border-radius:9px;padding:7px;display:flex;flex-direction:column;gap:5px;min-height:0}.program-label{font-size:8px;color:var(--muted);letter-spacing:.13em;text-align:center;margin-bottom:2px}.program-btn{height:calc((100% - 28px)/8);min-height:38px;padding:0;display:grid;place-items:center;position:relative;font-size:11px;font-weight:600}.program-btn.active{border-color:rgba(101,236,255,.72);background:rgba(101,236,255,.12);color:var(--cyan);box-shadow:inset 3px 0 0 var(--cyan)}.program-btn .dot{position:absolute;right:5px;top:5px;width:4px;height:4px;border-radius:50%;background:var(--muted2)}.program-btn.has-data .dot{background:var(--lime)}
.pads-panel{border-radius:9px;padding:7px;min-width:0;min-height:0;display:grid}.pads-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:6px;min-height:0}
.pad{position:relative;min-width:0;min-height:0;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,#12171c,#0b0f13);overflow:hidden;text-align:left;padding:10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04);touch-action:none;contain:layout paint}
.pad::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--pad-color,var(--cyan));opacity:.5}.pad::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 110%,color-mix(in srgb,var(--pad-color) 16%,transparent),transparent 58%);opacity:.38;pointer-events:none}
.pad.active{border-color:color-mix(in srgb,var(--pad-color) 78%,white);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pad-color) 35%,transparent),0 0 24px color-mix(in srgb,var(--pad-color) 18%,transparent)}.pad.selected{outline:2px solid rgba(255,255,255,.8);outline-offset:-3px}.pad.empty{background:#090b0e;border-style:dashed}.pad.pending{box-shadow:inset 0 0 0 2px var(--yellow);animation:pending .7s infinite alternate}
@keyframes pending{from{filter:brightness(1)}to{filter:brightness(1.25)}}
.pad-num{position:absolute;left:9px;top:8px;font-size:9px;color:var(--muted);font-variant-numeric:tabular-nums;z-index:2}.pad-mode{position:absolute;right:8px;top:7px;font-size:7px;letter-spacing:.08em;color:color-mix(in srgb,var(--pad-color) 80%,white);z-index:2}.pad-name{position:absolute;left:9px;right:9px;bottom:22px;font-size:12px;line-height:1.05;font-weight:560;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:2}.pad-meta{position:absolute;left:9px;right:9px;bottom:7px;display:flex;justify-content:space-between;gap:5px;font-size:7px;color:var(--muted);z-index:2}.pad-wave{position:absolute;left:9px;right:9px;top:28px;bottom:42px;display:flex;gap:1px;align-items:center;opacity:.7}.pad-wave i{flex:1;min-width:1px;background:color-mix(in srgb,var(--pad-color) 70%,white);border-radius:1px;transform-origin:center}.pad-progress{position:absolute;left:0;top:0;bottom:0;width:0;background:color-mix(in srgb,var(--pad-color) 12%,transparent);pointer-events:none}.empty .pad-name{color:var(--muted2);bottom:50%;transform:translateY(50%);text-align:center;font-size:10px;letter-spacing:.1em}.empty .pad-meta{display:none}
.side-panel{border-radius:9px;display:grid;grid-template-rows:40px minmax(0,1fr);overflow:hidden;min-height:0}.tabs{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--line)}.tab-btn{border:0;border-right:1px solid var(--line);border-radius:0;background:#0c1014;font-size:8px;letter-spacing:.1em;padding:0}.tab-btn:last-child{border-right:0}.tab-btn.active{background:#151b21;color:var(--cyan);box-shadow:inset 0 -2px 0 var(--cyan)}.panel-body{overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:10px;min-height:0}.section{padding:0 0 12px;margin:0 0 12px;border-bottom:1px solid var(--line)}.section:last-child{border-bottom:0;margin-bottom:0}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.section-head h3{margin:0;font-size:10px;letter-spacing:.11em;font-weight:600}.section-head small{color:var(--muted);font-size:8px}.help{font-size:9px;line-height:1.45;color:var(--muted);margin:0 0 9px}
.library-actions{display:grid;grid-template-columns:1fr auto;gap:6px;margin-bottom:8px}.search{height:36px;border:1px solid var(--line);background:#07090b;border-radius:6px;padding:0 10px;outline:0;font-size:10px;width:100%}.search:focus{border-color:rgba(101,236,255,.55)}.small-btn{padding:0 10px;font-size:8px;letter-spacing:.08em}.file-list{display:grid;gap:5px}.file-item{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:7px;align-items:center;min-height:44px;padding:5px 6px;border:1px solid var(--line);border-radius:6px;background:#0b0e12}.file-item.local{border-color:rgba(167,242,106,.2)}.file-play{width:32px;height:32px;border-radius:5px;background:#141a20;color:var(--cyan);font-size:11px}.file-copy{min-width:0}.file-copy strong{display:block;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-copy small{font-size:7px;color:var(--muted)}.file-assign{height:31px;padding:0 8px;border-radius:5px;background:#12181d;border:1px solid var(--line);font-size:7px;color:var(--muted)}.file-item.previewing .file-play{background:var(--cyan);color:#061014}.file-item .preview-line{position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--cyan)}
.pad-inspector-empty{height:100%;display:grid;place-items:center;text-align:center;color:var(--muted);font-size:10px;line-height:1.5;padding:30px}.pad-title{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.pad-title h2{margin:2px 0 0;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:235px}.pad-title small{font-size:8px;color:var(--muted);letter-spacing:.08em}.danger-btn{background:rgba(255,91,98,.09);border:1px solid rgba(255,91,98,.28);color:#ff9ca0;border-radius:5px;min-height:30px;padding:0 8px;font-size:8px}
.mode-row{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.mode-row.two{grid-template-columns:repeat(2,1fr)}.trigger-timing-head{margin-top:10px}.chip{padding:8px 4px;font-size:7px;letter-spacing:.08em}.chip.active{background:rgba(101,236,255,.13);border-color:rgba(101,236,255,.45);color:var(--cyan)}
.param-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 9px}.param{display:grid;gap:5px}.param.wide{grid-column:1/-1}.param label{display:flex;justify-content:space-between;gap:5px;font-size:8px;color:var(--muted);letter-spacing:.07em}.param label strong{color:#e7ecee;font-variant-numeric:tabular-nums;font-weight:500}.param input[type="range"]{height:18px}.toggle-line{display:flex;align-items:center;justify-content:space-between;font-size:8px;color:var(--muted)}.switch{width:40px;height:22px;border-radius:20px;background:#0a0c0e;border:1px solid var(--line);padding:2px}.switch i{display:block;width:16px;height:16px;border-radius:50%;background:#56616a;transition:transform .15s ease,background .15s ease}.switch.on i{transform:translateX(17px);background:var(--cyan)}
.fx-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.fx-toggle{padding:10px 8px;text-align:left}.fx-toggle strong{display:block;font-size:9px;letter-spacing:.08em}.fx-toggle small{display:block;margin-top:3px;font-size:7px;color:var(--muted)}.fx-toggle.on{border-color:rgba(101,236,255,.45);background:rgba(101,236,255,.09)}
.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.project-btn{min-height:48px;padding:8px;font-size:8px;letter-spacing:.08em}.project-btn.primary{background:#dce5e8;color:#050607;font-weight:650}.project-info{font-size:8px;line-height:1.5;color:var(--muted)}
.bottombar{border-radius:9px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:5px 8px}.pattern-steps{display:grid;grid-template-columns:repeat(16,1fr);gap:2px;height:24px}.step{border:1px solid var(--line);border-radius:3px;background:#090c0f;position:relative}.step.beat{border-color:rgba(255,255,255,.18)}.step.current{background:rgba(101,236,255,.17);box-shadow:inset 0 -2px 0 var(--cyan)}.step.has-event::after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:var(--yellow);left:50%;top:50%;transform:translate(-50%,-50%)}
.pattern-controls{display:flex;align-items:center;gap:5px}.record-pattern{height:34px;padding:0 10px;border:1px solid rgba(255,91,98,.28);background:rgba(255,91,98,.08);color:#ff9ca0;border-radius:6px;font-size:8px;letter-spacing:.08em}.record-pattern.on{background:var(--danger);color:white;box-shadow:0 0 18px rgba(255,91,98,.2)}.bars-select{height:34px;background:#080a0d;border:1px solid var(--line);border-radius:6px;font-size:8px;padding:0 6px}.message{min-width:0;font-size:8px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message.ok{color:var(--lime)}.message.warn{color:var(--yellow)}
.editor-backdrop{position:fixed;z-index:60;inset:0;background:rgba(0,0,0,.72);display:grid;place-items:center;padding:12px calc(12px + env(safe-area-inset-right)) calc(12px + var(--safe-bottom)) calc(12px + env(safe-area-inset-left));backdrop-filter:blur(8px)}.editor{width:min(1040px,96vw);height:min(650px,92dvh);border:1px solid var(--line2);border-radius:10px;background:#080b0e;box-shadow:0 35px 100px rgba(0,0,0,.6);padding:14px;display:grid;grid-template-rows:auto minmax(170px,1fr) auto auto;gap:10px}.editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.editor-head h2{margin:3px 0 0;font-size:18px}.editor-head small{color:var(--muted);font-size:8px;letter-spacing:.09em}.close-editor{width:36px;height:32px;border:1px solid var(--line);border-radius:6px;background:#11161b}.wave-editor{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:#030405;touch-action:none}.wave-editor canvas{display:block;width:100%;height:100%}.wave-selection{position:absolute;top:0;bottom:0;border-top:2px solid var(--cyan);border-bottom:2px solid var(--cyan);background:rgba(101,236,255,.035);pointer-events:none}.wave-mask{position:absolute;top:0;bottom:0;background:rgba(0,0,0,.69);pointer-events:none}.trim-handle{position:absolute;z-index:5;top:0;bottom:0;width:22px;transform:translateX(-11px);touch-action:none;cursor:ew-resize}.trim-handle::before{content:"";position:absolute;left:10px;top:0;bottom:0;width:2px;background:var(--pink);box-shadow:0 0 9px rgba(255,94,189,.45)}.trim-handle.out::before{background:var(--yellow);box-shadow:0 0 9px rgba(245,231,102,.4)}.trim-handle::after{content:"";position:absolute;left:5px;top:8px;width:12px;height:22px;border-radius:4px;background:var(--pink)}.trim-handle.out::after{background:var(--yellow)}.editor-playhead{position:absolute;z-index:4;top:0;bottom:0;width:1px;background:white;pointer-events:none;opacity:.9}.wave-ruler{position:absolute;left:0;right:0;bottom:0;height:20px;background:linear-gradient(transparent,rgba(0,0,0,.7));pointer-events:none}.wave-ruler span{position:absolute;bottom:2px;font-size:7px;color:var(--muted);transform:translateX(-50%)}
.precision-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end}.precision-box{display:grid;grid-template-columns:auto 1fr auto auto;gap:4px;align-items:center}.precision-box label{font-size:8px;color:var(--muted);letter-spacing:.08em}.time-input{height:34px;min-width:0;background:#050709;border:1px solid var(--line);border-radius:5px;padding:0 7px;font-size:12px;font-variant-numeric:tabular-nums;text-align:right;outline:0}.nudge-btn{height:34px;width:34px;padding:0;font-size:9px}.snap-btn{height:34px;padding:0 8px;font-size:8px;letter-spacing:.06em;background:#11161b;color:#dce2e5;border:1px solid var(--line);border-radius:6px}.snap-btn.on{color:var(--lime);border-color:rgba(167,242,106,.35);background:rgba(167,242,106,.07)}
.editor-controls{display:grid;grid-template-columns:1.1fr 1fr auto;gap:10px;align-items:end}.zoom-control{display:grid;gap:4px}.zoom-control label{font-size:8px;color:var(--muted)}.editor-actions{display:flex;gap:5px}.editor-actions button{height:36px;padding:0 12px;border-radius:6px;border:1px solid var(--line);background:#11161b;color:#dce2e5;font-size:8px;letter-spacing:.07em}.editor-actions .audition-btn.on{border-color:rgba(101,236,255,.5);color:var(--cyan);background:rgba(101,236,255,.08)}.editor-actions .audition-loop.on{border-color:rgba(167,242,106,.45);color:var(--lime);background:rgba(167,242,106,.07)}.editor-actions .apply{background:#dfe7ea;color:#050607;font-weight:650}
.splash{width:100%;height:100%;display:grid;place-items:center;background:#050607}.splash-card{text-align:center}.splash-card img{width:min(330px,55vw)}.splash-card h1{font-size:14px;letter-spacing:.22em;font-weight:500;margin:24px 0 8px}.splash-card p{color:var(--muted);font-size:10px;max-width:460px;line-height:1.5;margin:0 auto 20px}.start-btn{height:48px;padding:0 30px;border-radius:7px;background:#e2e9eb;color:#050607;font-size:10px;letter-spacing:.12em;font-weight:650}.startup-meta{margin-top:12px;color:var(--muted2);font-size:8px}
.portrait-lock{display:none}
@media (orientation:portrait) and (pointer:coarse){.app-shell{display:none}.portrait-lock{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#050607;padding:35px;color:white}.portrait-lock img{width:min(320px,70vw);margin-bottom:35px}.portrait-lock strong{font-size:15px;letter-spacing:.18em}.portrait-lock span{margin-top:9px;font-size:10px;color:var(--muted);max-width:300px}}
@media (max-width:1100px){.topbar{grid-template-columns:150px 1fr auto}.brand img{width:82px}.brand strong{display:none}.workspace{grid-template-columns:60px minmax(0,1fr) 300px}.transport-readout{min-width:100px}.pad-name{font-size:10px}.side-panel{font-size:9px}}
@media (max-width:900px),(max-height:620px){.app-shell{padding-top:6px;padding-bottom:6px}.nt-app{grid-template-rows:50px minmax(0,1fr) 42px;gap:5px}.topbar{padding:4px 6px}.status-pill{display:none}.workspace{gap:5px;grid-template-columns:54px minmax(0,1fr) 270px}.program-strip,.pads-panel{padding:5px}.pads-grid{gap:4px}.pad{padding:7px}.pad-wave{left:7px;right:7px;top:24px;bottom:37px}.pad-name{left:7px;right:7px;bottom:18px;font-size:9px}.pad-meta{left:7px;right:7px;bottom:5px;font-size:6px}.side-panel{grid-template-rows:34px minmax(0,1fr)}.panel-body{padding:8px}.bottombar{padding:4px 6px}.pattern-steps{height:20px}.record-pattern,.bars-select{height:30px}.editor{height:95dvh;padding:10px;gap:7px}.editor-head h2{font-size:14px}.precision-row{gap:5px}.time-input,.nudge-btn,.snap-btn{height:30px}.editor-actions button{height:32px;padding:0 9px}}

/* 2.1 performance + sequencer */
.tabs{grid-template-columns:repeat(5,1fr)}
.fx-grid-advanced{grid-template-columns:repeat(2,1fr)}
.osc-steps{display:grid;grid-template-columns:repeat(8,1fr);gap:5px;margin-top:10px}.osc-steps label{display:grid;gap:3px;font-size:7px;color:var(--muted);text-align:center}.osc-steps input{width:100%;height:30px;background:#07090b;border:1px solid var(--line);border-radius:4px;text-align:center;outline:0}
.step-slicer-grid{display:grid;grid-template-columns:repeat(16,1fr);gap:3px;height:74px;margin-top:10px;align-items:stretch}.step-slicer-grid input{writing-mode:vertical-lr;direction:rtl;width:100%;height:70px;margin:0;accent-color:var(--cyan)}
.pattern-edit-btn{height:34px;padding:0 11px;border:1px solid rgba(101,236,255,.28);background:rgba(101,236,255,.07);color:var(--cyan);border-radius:6px;font-size:8px;letter-spacing:.08em}.pattern-length{font-size:8px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.pattern-overview{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(3px,1fr);gap:2px;overflow:hidden}.pattern-overview .step{min-width:2px}

.pattern-backdrop,.mapping-backdrop{z-index:80}.pattern-modal,.mapping-modal{width:min(1480px,97vw);height:min(860px,94dvh);border:1px solid var(--line2);border-radius:10px;background:#080b0e;box-shadow:0 35px 100px rgba(0,0,0,.65);overflow:hidden}.pattern-modal{display:grid;grid-template-rows:auto minmax(0,1fr) auto}.pattern-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--line)}.pattern-head h2{font-size:18px;margin:3px 0 0}.pattern-head small{font-size:8px;color:var(--muted);letter-spacing:.1em}.pattern-head-actions{display:flex;align-items:center;gap:6px}.pattern-head-actions label{height:34px;display:flex;align-items:center;gap:5px;padding:0 8px;border:1px solid var(--line);border-radius:6px;color:var(--muted);font-size:8px}.pattern-head-actions input{width:46px;background:transparent;border:0;outline:0;text-align:right;font-size:12px}.pattern-scroll{overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:#050709}.pattern-rack{display:grid;grid-template-columns:160px max-content;grid-auto-rows:31px;min-width:max-content;padding-bottom:8px}.seq-corner,.seq-label{position:sticky;left:0;z-index:5;background:#0e1216;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.seq-corner{top:0;z-index:8;display:flex;align-items:center;padding:0 10px;font-size:8px;color:var(--muted);letter-spacing:.1em}.seq-header{position:sticky;top:0;z-index:7;display:grid;grid-template-columns:repeat(var(--seq-steps),22px);gap:2px;padding:4px;background:#0b0f13;border-bottom:1px solid var(--line)}.seq-tick{height:22px;display:grid;place-items:center;border-radius:3px;background:#11161b;border:1px solid var(--line);font-size:6px;color:var(--muted)}.seq-tick.beat{border-left-color:rgba(255,255,255,.28)}.seq-tick.bar{border-left:2px solid var(--cyan)}.seq-tick.current{background:rgba(101,236,255,.16);color:var(--cyan)}.seq-label{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:6px;width:160px;padding:0 8px;text-align:left;color:var(--text)}.seq-label b{font-size:8px;color:var(--cyan)}.seq-label span{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}.seq-row{display:grid;grid-template-columns:repeat(var(--seq-steps),22px);gap:2px;padding:4px;background:#080b0e;border-bottom:1px solid rgba(255,255,255,.035)}.seq-cell{height:22px;padding:0;border-radius:3px;background:#161b20;border:1px solid rgba(255,255,255,.06);touch-action:none}.seq-cell.beat{border-left-color:rgba(255,255,255,.25)}.seq-cell.bar{border-left:2px solid rgba(101,236,255,.58)}.seq-cell.on{background:var(--pink);border-color:#ff8aca;box-shadow:0 0 10px rgba(255,94,189,.18)}.seq-cell.current{box-shadow:inset 0 -2px 0 var(--cyan)}.seq-cell.on.current{box-shadow:inset 0 -2px 0 white,0 0 12px rgba(255,94,189,.2)}.pattern-footer{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;border-top:1px solid var(--line);font-size:7px;color:var(--muted)}

.mapping-modal{display:grid;grid-template-rows:auto auto minmax(0,1fr);padding:12px}.mapping-top-actions{display:flex;gap:6px;align-items:center}.mapping-top-actions button,.mapping-row button{min-height:30px;padding:0 8px;border:1px solid var(--line);border-radius:5px;background:#11161b;font-size:7px}.mapping-status{margin:10px 0;padding:8px 10px;border:1px solid var(--line);border-radius:5px;background:#050709;font-size:8px;color:var(--muted)}.mapping-list{overflow:auto;display:grid;align-content:start;border:1px solid var(--line);border-radius:6px}.mapping-row{display:grid;grid-template-columns:minmax(190px,1.5fr) minmax(90px,.8fr) 54px 32px minmax(90px,.8fr) 54px 32px;gap:5px;align-items:center;padding:6px;border-bottom:1px solid var(--line)}.mapping-row:last-child{border-bottom:0}.mapping-row.armed{background:rgba(101,236,255,.08)}.mapping-name{min-width:0}.mapping-name b{display:block;font-size:8px}.mapping-name small{display:block;margin-top:2px;font-size:6px;color:var(--muted)}.mapping-value{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:7px;color:var(--cyan)}.mapping-row .map-clear{padding:0;color:#ff9ca0}

@media (max-width:1100px){.pattern-rack{grid-template-columns:125px max-content}.seq-label{width:125px}.seq-header,.seq-row{grid-template-columns:repeat(var(--seq-steps),20px)}.seq-cell,.seq-tick{height:20px}.mapping-row{grid-template-columns:minmax(150px,1.4fr) minmax(70px,.7fr) 46px 28px minmax(70px,.7fr) 46px 28px}}
@media (max-width:900px),(max-height:620px){.pattern-edit-btn,.record-pattern{height:30px}.pattern-head{padding:8px}.pattern-modal,.mapping-modal{height:96dvh}.pattern-footer{padding:5px 8px}.mapping-modal{padding:8px}.osc-steps{grid-template-columns:repeat(8,1fr)}}

/* 2.2 MPC-style pads + sync grid */
.pads-panel{container-type:size;place-items:center}
.pads-grid{width:min(100cqw,100cqh);height:min(100cqw,100cqh);max-width:100%;max-height:100%;grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(4,1fr);gap:7px}
.pad{border-radius:5px;aspect-ratio:1/1;background:linear-gradient(145deg,#171c21,#0c1014);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),inset 0 -4px 8px rgba(0,0,0,.25),0 2px 5px rgba(0,0,0,.35)}
.pad.selected{outline:2px solid rgba(255,255,255,.92);outline-offset:-4px}.pad.active{transform:translateY(1px);filter:brightness(1.16)}
.sync-box{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;align-items:center;margin-top:8px;padding:8px;border:1px solid var(--line);border-radius:6px;background:#080b0e}.sync-box label{font-size:7px;color:var(--muted);display:grid;gap:3px}.sync-box input{height:29px;width:100%;min-width:0;background:#050709;border:1px solid var(--line);border-radius:4px;padding:0 6px;outline:0}.sync-box small{grid-column:1/-1;font-size:7px;color:var(--muted2)}
.wave-grid{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}.wave-grid i{position:absolute;top:0;bottom:0;width:1px;background:rgba(245,231,102,.2)}.wave-grid i:nth-child(4n+1){background:rgba(245,231,102,.42);width:2px}.wave-grid b{position:absolute;top:4px;left:3px;color:rgba(245,231,102,.66);font-size:6px;font-weight:500}
.splash-card h1{margin:24px 0 26px}.splash-card p,.startup-meta{display:none!important}
@media (max-width:900px),(max-height:620px){.pads-grid{gap:5px}.sync-box{padding:6px;gap:4px}}

/* 2.3 performance racks, master dynamics, visual learn, library folders */
.master-compact{display:grid;grid-template-columns:auto 92px auto;align-items:center;gap:6px;padding:4px 7px;border:1px solid var(--line);border-radius:6px;background:#080a0d;min-width:190px}
.master-compact span{font-size:7px;letter-spacing:.1em;color:var(--muted)}
.master-compact input{width:92px;margin:0}
.master-compact b{font-size:7px;font-variant-numeric:tabular-nums;color:var(--cyan);min-width:45px;text-align:right}
.library-actions{grid-template-columns:minmax(110px,1fr) auto auto auto}
.folder-strip{display:flex;gap:5px;overflow-x:auto;padding:1px 0 8px;scrollbar-width:thin;overscroll-behavior-x:contain}
.folder-chip{flex:0 0 auto;height:27px;padding:0 9px;border:1px solid var(--line);border-radius:14px;background:#0c1115;color:var(--muted);font-size:7px;letter-spacing:.05em;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.folder-chip.active{border-color:rgba(101,236,255,.55);background:rgba(101,236,255,.09);color:var(--cyan)}
.file-item{grid-template-columns:34px minmax(0,1fr) auto auto}.file-move{height:31px;padding:0 7px;border-radius:5px;background:#0c1115;border:1px solid var(--line);font-size:6px;color:var(--muted)}
.io-learn-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
.learn-toolbar{position:fixed;z-index:1400;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);display:grid;grid-template-columns:auto minmax(180px,1fr) auto;align-items:center;gap:10px;width:min(720px,calc(100vw - 20px));min-height:54px;padding:8px 10px;border:1px solid var(--cyan);border-radius:9px;background:rgba(6,9,11,.97);box-shadow:0 14px 48px rgba(0,0,0,.72),0 0 22px rgba(101,236,255,.15)}
.learn-toolbar strong{font-size:9px;letter-spacing:.12em;color:var(--cyan);white-space:nowrap}.learn-toolbar>span{font-size:8px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.learn-toolbar-actions{display:flex;gap:5px}.learn-toolbar button{min-height:34px;padding:0 10px;border:1px solid var(--line2);border-radius:5px;background:#10151a;font-size:7px;color:var(--text)}.learn-toolbar button.active{border-color:var(--danger);color:#ff9ca0;background:rgba(255,91,98,.08)}
.learn-active .learn-target{outline:1px dashed rgba(101,236,255,.9)!important;outline-offset:2px;cursor:crosshair!important}.learn-active .learn-target.learn-mapped{outline-style:solid!important;outline-color:var(--lime)!important}.learn-active .learn-target.learn-armed{outline:2px solid var(--yellow)!important;outline-offset:3px;box-shadow:0 0 16px rgba(245,231,102,.26)!important;animation:nt-learn-pulse .65s ease-in-out infinite alternate}.learn-active.learn-remove .learn-target{outline-color:var(--danger)!important;cursor:not-allowed!important}
@keyframes nt-learn-pulse{from{outline-offset:2px}to{outline-offset:6px}}
@media(max-width:1100px){.master-compact{grid-template-columns:auto 72px;min-width:125px}.master-compact input{width:72px}.master-compact b{display:none}.library-actions{grid-template-columns:minmax(90px,1fr) auto auto}.library-actions [data-new-folder]{grid-column:2/4}}
@media(max-width:900px),(max-height:620px){.master-compact{min-width:105px;padding:3px 5px;gap:4px}.master-compact span{font-size:6px}.master-compact input{width:60px}.level-meter{width:44px}.library-actions{grid-template-columns:1fr auto auto}.library-actions [data-new-folder]{grid-column:2/4}.file-item{grid-template-columns:30px minmax(0,1fr) auto}.file-move{display:none}.learn-toolbar{min-height:48px;padding:6px 8px;width:calc(100vw - 14px)}}

/* 2.4 · pad FX surface, I/O master FX, DAW-style sample browser */
.fx-settings{margin-top:2px;padding:10px;border:1px solid rgba(101,236,255,.11);border-radius:7px;background:linear-gradient(180deg,rgba(101,236,255,.025),rgba(255,255,255,.012))}
.fx-settings .section-head{margin-bottom:10px}.fx-help{margin:9px 0 0}.master-fx-section{padding-top:3px}
.pad-osc-steps{margin-top:10px}
.program-btn.learn-target{position:relative}

.library-section{min-height:100%}.library-actions-v24{grid-template-columns:minmax(100px,1fr) auto auto auto;margin-bottom:6px}
.library-filterbar{display:grid;grid-template-columns:minmax(0,1fr) 82px;gap:6px;margin-bottom:6px}.library-source-tabs{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:5px;overflow:hidden;background:#07090b}.library-source-tabs button{height:29px;padding:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);font-size:6px;letter-spacing:.08em}.library-source-tabs button:last-child{border-right:0}.library-source-tabs button.active{background:rgba(101,236,255,.1);color:var(--cyan)}.library-filterbar select,.file-toolbar select{min-width:0;height:31px;border:1px solid var(--line);border-radius:5px;background:#080b0e;color:var(--muted);padding:0 5px;font-size:6px;outline:0}
.library-breadcrumb{display:flex;align-items:center;gap:3px;min-height:28px;margin-bottom:6px;padding:3px 5px;overflow-x:auto;border:1px solid var(--line);border-radius:5px;background:#06080a;white-space:nowrap}.library-breadcrumb button{height:20px;padding:0 5px;border-radius:3px;background:#10151a;color:var(--muted);font-size:6px}.library-breadcrumb button:last-of-type{color:var(--cyan)}.library-breadcrumb i{font-size:8px;color:var(--muted2);font-style:normal}
.library-browser{display:grid;grid-template-columns:112px minmax(0,1fr);gap:6px;min-height:260px;max-height:calc(100dvh - 335px)}.folder-tree,.file-pane{min-height:0;border:1px solid var(--line);border-radius:6px;background:#070a0d;overflow:hidden}.folder-tree{overflow-y:auto;padding:4px}.folder-tree-row{width:100%;height:28px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px;padding:0 5px 0 calc(6px + var(--depth,0)*10px);border-radius:4px;background:transparent;color:var(--muted);text-align:left}.folder-tree-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:6.5px}.folder-tree-row b{font-size:6px;color:var(--muted2);font-weight:500}.folder-tree-row.active{background:rgba(101,236,255,.09);color:var(--cyan)}.folder-tree-row.active b{color:var(--cyan)}
.file-pane{display:grid;grid-template-rows:auto minmax(0,1fr)}.file-toolbar{display:grid;grid-template-columns:minmax(52px,1fr) minmax(68px,1fr) 36px 25px;gap:3px;align-items:center;padding:4px;border-bottom:1px solid var(--line);background:#0a0e12}.file-toolbar>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:6px;color:var(--muted)}.file-toolbar button{height:30px;padding:0;border:1px solid var(--line);border-radius:4px;background:#10151a;color:var(--muted);font-size:6px}.file-toolbar button:disabled,.file-toolbar select:disabled{opacity:.35}.file-list{overflow-y:auto;padding:4px;align-content:start}.file-item{grid-template-columns:22px 28px minmax(0,1fr) 25px 39px;gap:4px;min-height:39px;padding:4px;border-radius:4px}.file-item.selected{border-color:rgba(101,236,255,.55);background:rgba(101,236,255,.055)}.file-select{width:22px;height:28px;padding:0;border:1px solid var(--line);border-radius:4px;background:#090c0f;color:var(--cyan);font-size:8px}.file-select.on{background:rgba(101,236,255,.12);border-color:rgba(101,236,255,.45)}.file-play{width:28px;height:28px}.file-copy strong{font-size:8px}.file-copy small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:5.8px}.file-more{height:28px;padding:0;border:1px solid var(--line);border-radius:4px;background:#0d1217;color:var(--muted);font-size:10px}.file-assign{height:28px;padding:0 4px;font-size:6px}.file-empty{padding:10px}.library-help{margin:7px 0 0;font-size:6.5px}

@media(max-width:1100px){.library-browser{grid-template-columns:96px minmax(0,1fr)}.folder-tree-row{padding-left:calc(4px + var(--depth,0)*8px)}.library-actions-v24{grid-template-columns:1fr auto auto}.library-actions-v24 [data-new-folder]{grid-column:2/4}.file-toolbar{grid-template-columns:minmax(45px,1fr) minmax(58px,1fr) 34px 23px}.file-item{grid-template-columns:20px 27px minmax(0,1fr) 36px}.file-more{display:none}}
@media(max-width:900px),(max-height:620px){.library-browser{grid-template-columns:82px minmax(0,1fr);max-height:calc(100dvh - 270px)}.folder-tree-row{height:25px;padding-left:calc(3px + var(--depth,0)*7px)}.folder-tree-row span{font-size:5.8px}.library-filterbar{grid-template-columns:1fr 68px}.file-toolbar{grid-template-columns:minmax(42px,1fr) minmax(54px,1fr) 31px 21px}.file-item{grid-template-columns:19px 25px minmax(0,1fr) 34px;gap:3px;min-height:35px}.file-select{width:19px;height:25px}.file-play{width:25px;height:25px}.file-assign{height:25px}.library-help{display:none}.fx-settings{padding:7px}}

/* 2.5 · cyberpunk browser, pattern bank, readable tablet typography */
.tabs{grid-template-columns:repeat(5,1fr)}
.pattern-slot-select{height:30px;min-width:76px;border:1px solid rgba(101,236,255,.24);border-radius:4px;background:#071015;color:var(--cyan);padding:0 22px 0 7px;font-size:8px;letter-spacing:.07em;outline:0}
.pattern-controls{gap:5px}.pattern-controls .small-btn{min-height:30px;height:30px}
.pattern-head-actions select{height:31px;min-width:64px;border:1px solid var(--line2);border-radius:4px;background:#080c10;color:var(--cyan);padding:0 6px;font-size:9px}

.library-section{--browser-bg:#05080b;--browser-row:#090e13;--browser-line:rgba(101,236,255,.13)}
.browser-title{margin-bottom:7px}.browser-title h3{font-size:11px;color:#eafcff;text-shadow:0 0 12px rgba(101,236,255,.22)}
.browser-title small{font-size:8px}
.library-actions-v25{display:grid;grid-template-columns:minmax(130px,1fr) auto auto auto;gap:5px;margin-bottom:6px}
.browser-search{height:36px;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;background:#05090c;border-bottom:1px solid rgba(101,236,255,.3);box-shadow:inset 0 -1px 0 rgba(255,94,189,.06)}
.browser-search>span{display:grid;place-items:center;color:var(--cyan);font-size:17px}.browser-search .search{height:34px;border:0!important;border-radius:0;background:transparent;padding:0 5px;font-size:10px;letter-spacing:.04em}
.browser-action{height:36px;min-height:36px;border-radius:3px!important;border-color:rgba(101,236,255,.18)!important;background:linear-gradient(180deg,#101820,#080d12)!important;font-size:8px!important;color:#d8f7ff!important}
.library-filterbar{grid-template-columns:minmax(0,1fr) 92px;gap:5px;margin-bottom:4px}.library-source-tabs{border:0;border-bottom:1px solid var(--browser-line);border-radius:0;background:transparent}.library-source-tabs button{height:31px;border:0!important;background:transparent;font-size:8px;letter-spacing:.09em;color:#778894}.library-source-tabs button.active{background:linear-gradient(180deg,rgba(101,236,255,.08),transparent);color:var(--cyan);box-shadow:inset 0 -2px 0 var(--cyan)}.library-filterbar select{height:31px;border:0;border-bottom:1px solid var(--browser-line);border-radius:0;background:#05090c;color:#a8bdc8;padding:0 6px;font-size:8px}
.library-breadcrumb{min-height:28px;margin-bottom:4px;padding:2px 0;border:0;border-radius:0;border-bottom:1px solid rgba(255,255,255,.06);background:transparent}.library-breadcrumb button{height:23px;padding:0 7px;border-radius:2px;background:transparent;color:#95aab5;font-size:8px}.library-breadcrumb button:hover,.library-breadcrumb button:last-of-type{background:rgba(101,236,255,.06);color:var(--cyan)}.library-breadcrumb i{font-size:10px;color:#45545e}
.library-browser{grid-template-columns:142px minmax(0,1fr);gap:0;min-height:290px;max-height:calc(100dvh - 300px);background:var(--browser-bg);border-top:1px solid rgba(101,236,255,.12);border-bottom:1px solid rgba(255,94,189,.1)}
.folder-tree,.file-pane{border:0;border-radius:0;background:transparent}.folder-tree{padding:3px 5px 3px 0;border-right:1px solid rgba(101,236,255,.12)}
.folder-tree-row{height:34px;border-radius:2px;padding:0 7px 0 calc(7px + var(--depth,0)*12px);color:#93a8b4}.folder-tree-row span{font-size:9px;letter-spacing:.015em}.folder-tree-row b{font-size:8px;color:#53636d}.folder-tree-row:hover{background:rgba(101,236,255,.045);color:#d5f8ff}.folder-tree-row.active{background:linear-gradient(90deg,rgba(101,236,255,.13),rgba(101,236,255,.025));color:var(--cyan);box-shadow:inset 2px 0 0 var(--cyan)}.folder-tree-row.drag-over{background:rgba(255,94,189,.14)!important;color:#ffd3ed!important;box-shadow:inset 2px 0 0 var(--pink)!important}
.file-pane{grid-template-rows:auto minmax(0,1fr)}.file-toolbar{grid-template-columns:minmax(100px,1fr) 72px 54px;gap:4px;min-height:38px;padding:4px 6px;border:0;border-bottom:1px solid rgba(255,255,255,.06);background:#060b0f}.file-toolbar>span{font-size:8px;color:#8295a0;letter-spacing:.05em}.file-toolbar button{height:30px;border:1px solid rgba(101,236,255,.13);border-radius:3px;background:#0a1218;color:#a9c0cb;font-size:7px;letter-spacing:.05em}.file-toolbar .toolbar-move:not(:disabled){color:var(--cyan);border-color:rgba(101,236,255,.28)}
.file-list{padding:2px 0;gap:0;background:#05080b}.file-item{grid-template-columns:30px 34px minmax(0,1fr) 48px 45px;gap:4px;min-height:45px;padding:3px 5px;border:0;border-bottom:1px solid rgba(255,255,255,.045);border-radius:0;background:transparent}.file-item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:transparent}.file-item.local::before{background:rgba(167,242,106,.35)}.file-item.server::before{background:rgba(169,140,255,.32)}.file-item:hover{background:linear-gradient(90deg,rgba(101,236,255,.055),rgba(255,94,189,.025))}.file-item.selected{border:0;border-bottom:1px solid rgba(101,236,255,.12);background:rgba(101,236,255,.075)}.file-select{width:28px;height:30px;border:0;border-radius:2px;background:#080d11;color:var(--cyan);font-size:10px}.file-select.on{background:rgba(101,236,255,.15);box-shadow:inset 0 0 0 1px rgba(101,236,255,.28)}.file-play{width:32px;height:32px;border-radius:2px;background:#0a151c;color:var(--cyan);font-size:12px}.file-copy strong{font-size:10.5px;line-height:1.2;font-weight:540;color:#e8f1f5}.file-copy small{margin-top:3px;font-size:7.5px;color:#71838e}.file-copy small i{font-style:normal;color:#9eafba}.file-more,.file-assign{height:31px;border-radius:2px;font-size:7px;letter-spacing:.045em}.file-more{border:0;background:#0b1116;color:#80919b}.file-assign{border:1px solid rgba(101,236,255,.18);background:#09161d;color:#bfeef7}.file-item.previewing{background:rgba(101,236,255,.065)}.file-item.previewing .file-play{background:var(--cyan);color:#041014}.library-help{margin:7px 0 0;font-size:8px;line-height:1.35;color:#71828c}

.move-backdrop{z-index:1550}.move-modal{width:min(620px,calc(100vw - 24px));max-height:min(72dvh,650px);display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:8px;padding:14px;border:1px solid rgba(101,236,255,.3);background:linear-gradient(160deg,#071016,#050709 60%,#0a0710);box-shadow:0 24px 90px rgba(0,0,0,.8),0 0 36px rgba(101,236,255,.08)}.move-modal header{display:flex;align-items:center;justify-content:space-between}.move-modal header small{font-size:8px;letter-spacing:.13em;color:var(--cyan)}.move-modal h2{margin:3px 0 0;font-size:15px;letter-spacing:.05em}.move-new{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.move-new input{height:38px;border:0;border-bottom:1px solid rgba(101,236,255,.3);background:#05090c;padding:0 9px;font-size:10px;outline:0}.move-new button{padding:0 12px;background:#10212a;color:var(--cyan);font-size:8px}.move-destinations{overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;align-content:start}.move-destinations button{height:40px;display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;text-align:left;background:#080d12;border-bottom:1px solid rgba(255,255,255,.055);color:#aabac3}.move-destinations button:hover{background:rgba(101,236,255,.07);color:#e8fbff}.move-destinations span{color:var(--cyan);text-align:center}.move-destinations b{font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}

@media(max-width:1100px){.library-browser{grid-template-columns:124px minmax(0,1fr)}.folder-tree-row span{font-size:8.5px}.file-copy strong{font-size:10px}.file-copy small{font-size:7px}.file-item{grid-template-columns:28px 32px minmax(0,1fr) 43px}.file-more{display:none}.library-actions-v25{grid-template-columns:minmax(120px,1fr) auto auto}.library-actions-v25 [data-new-folder]{display:none}}
@media(max-width:900px),(max-height:620px){.library-browser{grid-template-columns:112px minmax(0,1fr);max-height:calc(100dvh - 245px)}.folder-tree-row{height:31px}.folder-tree-row span{font-size:8px}.file-item{min-height:42px;grid-template-columns:27px 30px minmax(0,1fr) 42px}.file-copy strong{font-size:9.5px}.file-copy small{font-size:6.8px}.file-select{width:26px;height:29px}.file-play{width:29px;height:29px}.file-assign{height:29px;font-size:7px}.browser-action{font-size:7px!important}.library-help{display:none}.pattern-slot-select{min-width:70px;font-size:7px}}


/* 2.6 program control, resizable inspector and denser browser */
.workspace{grid-template-columns:96px minmax(0,1fr) 7px var(--side-w,342px);gap:6px}
.side-resizer{position:relative;min-width:7px;cursor:col-resize;touch-action:none;align-self:stretch;border-radius:4px;background:transparent}
.side-resizer::before{content:"";position:absolute;left:3px;top:8px;bottom:8px;width:1px;background:rgba(101,236,255,.18);box-shadow:0 0 8px rgba(101,236,255,.08)}
.side-resizer:hover::before,.side-resizer.dragging::before{left:2px;width:3px;background:var(--cyan);box-shadow:0 0 12px rgba(101,236,255,.35)}
.program-strip{padding:6px 5px;gap:5px;align-content:start;overflow-y:auto;scrollbar-width:none}.program-strip::-webkit-scrollbar{display:none}
.program-slot{display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:3px;min-height:43px}.program-slot .program-btn{min-height:43px;height:43px;width:100%;padding:0 7px;display:flex;align-items:center;justify-content:center;font-size:11px}.program-number{position:relative;z-index:2}.program-vu{position:absolute;left:7px;right:7px;bottom:5px;height:3px;border-radius:4px;overflow:hidden;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.035)}.program-vu i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),var(--lime),var(--yellow));transition:width .045s linear}.program-slot.muted .program-btn{background:#0c0f12;color:#7e878d}.program-slot.muted .program-number,.program-slot.muted .program-btn .dot{opacity:.5}.program-slot.muted .program-vu{background:rgba(255,255,255,.045)}.program-slot.muted .program-vu i{filter:grayscale(1);opacity:.72;background:linear-gradient(90deg,#6e767c,#b2b7bb)}.program-actions{display:grid;grid-template-rows:1fr 1fr;gap:2px}.program-actions button{min-width:20px;min-height:20px;padding:0;border:1px solid rgba(255,255,255,.08);border-radius:3px;background:#0b0f13;color:#71818b;font-size:7px;line-height:1}.program-actions button:first-child{color:#ff9a9e}.program-actions button.on{background:rgba(255,94,189,.18);border-color:rgba(255,94,189,.4);color:#ffb7df;box-shadow:inset 0 0 0 1px rgba(255,94,189,.08)}
.file-item{min-height:36px;grid-template-columns:26px 26px minmax(0,1fr) 44px 42px;padding:2px 5px}.file-select{width:24px;height:25px}.file-play{width:24px;height:24px;font-size:9px}.file-more,.file-assign{height:25px}.file-copy strong{font-size:10px}.file-copy small{margin-top:1px;font-size:7px}
@media(max-width:1100px){.workspace{grid-template-columns:88px minmax(0,1fr) 7px var(--side-w,300px)}.program-slot{grid-template-columns:minmax(0,1fr) 18px}.program-actions button{min-width:18px}.file-item{min-height:34px;grid-template-columns:24px 24px minmax(0,1fr) 40px}.file-play{width:22px;height:22px}.file-select{width:22px;height:23px}.file-more{display:none}}
@media(max-width:900px),(max-height:620px){.workspace{grid-template-columns:78px minmax(0,1fr) 6px var(--side-w,270px);gap:4px}.side-resizer{min-width:6px}.program-strip{padding:4px 3px;gap:3px}.program-slot{min-height:39px;grid-template-columns:minmax(0,1fr) 17px;gap:2px}.program-slot .program-btn{height:39px;min-height:39px;padding:0 5px}.program-vu{left:5px;right:5px;bottom:4px}.program-actions{gap:1px}.program-actions button{min-width:17px;min-height:18px;font-size:6px}.file-item{min-height:32px;grid-template-columns:22px 22px minmax(0,1fr) 38px}.file-play{width:20px;height:20px;font-size:8px}.file-select{width:20px;height:21px}.file-assign{height:23px}}

/* 2.6.2 · taller programs, independent browser tree, visual pattern bank */
.transport-glyph{position:relative;display:block;width:15px;height:16px;margin:auto}.transport-glyph.play::before{content:"";position:absolute;left:4px;top:2px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid currentColor}.transport-glyph.pause::before,.transport-glyph.pause::after{content:"";position:absolute;top:2px;width:4px;height:12px;border-radius:1px;background:currentColor}.transport-glyph.pause::before{left:2px}.transport-glyph.pause::after{right:2px}
.program-strip{display:grid;grid-template-rows:auto repeat(8,minmax(0,1fr));overflow:hidden;align-content:stretch}.program-slot{min-height:0;height:auto}.program-slot .program-btn{height:100%;min-height:0}.program-actions{min-height:0}.program-actions button{min-height:0}.program-number{font-size:13px}.program-vu{height:4px}
.panel-body:has(.library-section){overflow:hidden;display:flex;min-height:0}.library-section{display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr) auto;min-height:0;height:100%;width:100%;padding-bottom:0;margin-bottom:0}.library-browser{min-height:0;max-height:none;height:auto;overflow:hidden}.folder-tree,.file-list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.folder-tree{overflow-y:auto}.file-list{overflow-y:auto}.folder-tree-node{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;padding-left:calc(var(--depth,0)*12px)}.folder-tree-node.root-node{padding-left:0}.folder-spacer{width:22px}.folder-toggle{width:22px;height:32px;padding:0;border:0;background:transparent;color:#6f838e;font-size:11px}.folder-toggle.has-kids{color:var(--cyan)}.folder-toggle:disabled{opacity:.45}.folder-tree-node .folder-tree-row{padding-left:4px}.folder-tree-row{height:32px}
.pattern-bar{grid-template-columns:minmax(360px,auto) minmax(260px,1fr) minmax(120px,.75fr) minmax(100px,.45fr);gap:8px}.pattern-main-controls{display:flex;align-items:center;gap:5px;min-width:0}.pattern-name-wrap{height:34px;min-width:150px;max-width:240px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;padding:0 7px;border:1px solid rgba(101,236,255,.2);border-radius:5px;background:#071015}.pattern-name-wrap span{font-size:7px;color:var(--cyan);white-space:nowrap}.pattern-name-input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:#e9fbff;font-size:9px}.pattern-copy-control{height:34px;display:flex;align-items:center;gap:4px;padding-left:6px;border:1px solid var(--line);border-radius:5px;background:#080c10}.pattern-copy-control>span{font-size:6px;color:var(--muted);white-space:nowrap}.pattern-copy-control select{height:28px;width:46px;border:0;background:#0c1217;color:var(--cyan);font-size:8px}.pattern-copy-control .small-btn{height:28px;min-height:28px}.pattern-bank{display:flex;gap:3px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;overscroll-behavior-x:contain;min-width:0;height:34px;padding-bottom:1px}.pattern-bank-item{position:relative;flex:0 0 82px;height:32px;display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:4px;padding:0 6px;border:1px solid rgba(255,255,255,.07);border-radius:4px;background:#090d11;color:#73828b;text-align:left}.pattern-bank-item b{font-size:8px;color:#8c9aa2}.pattern-bank-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:7px}.pattern-bank-item.exists{color:#c2d5dd;border-color:rgba(101,236,255,.13)}.pattern-bank-item.active{background:rgba(101,236,255,.12);border-color:rgba(101,236,255,.55);color:#effcff;box-shadow:inset 0 -2px 0 var(--cyan)}.pattern-bank-item.active b{color:var(--cyan)}.pattern-bank-item i{position:absolute;right:4px;top:4px;width:4px;height:4px;border-radius:50%;background:var(--pink)}
@media(max-width:1100px){.pattern-bar{grid-template-columns:minmax(300px,auto) minmax(210px,1fr) minmax(100px,.55fr)}.pattern-bar>.message{display:none}.pattern-name-wrap{min-width:120px;max-width:170px}.pattern-bank-item{flex-basis:68px}.program-number{font-size:12px}}
@media(max-width:900px),(max-height:620px){.program-strip{padding:4px 3px;gap:3px}.program-slot{min-height:0}.program-slot .program-btn{height:100%;min-height:0}.program-number{font-size:11px}.pattern-bar{grid-template-columns:minmax(270px,auto) minmax(180px,1fr) minmax(90px,.45fr);padding:3px 5px}.pattern-main-controls{gap:3px}.pattern-name-wrap{height:30px;min-width:110px;max-width:145px;padding:0 5px}.pattern-copy-control{height:30px}.pattern-copy-control select{height:25px}.pattern-copy-control .small-btn{height:25px;min-height:25px}.pattern-bank{height:30px}.pattern-bank-item{height:28px;flex-basis:62px;padding:0 4px}.pattern-bank-item span{font-size:6px}.library-section{grid-template-rows:auto auto auto auto minmax(0,1fr)}.library-help{display:none}}

/* 2.7.0 · iPad performance UI */
:root{
  --accent:#ff293d;
  --accent-2:#ff5567;
  --accent-soft:rgba(255,41,61,.16);
  --accent-line:rgba(255,41,61,.5);
  --pad-accent:#ff293d;
  --browser-bg:#07090c;
}
:root[data-theme="red-nt"]{
  --bg:#050405;--panel:#0c090b;--panel2:#151013;--text:#fff7f7;--muted:#aa9297;--muted2:#765f64;
  --cyan:#ff293d;--pink:#ff293d;--yellow:#ffb4bd;--lime:#ff6274;--danger:#ff293d;
  --accent:#ff293d;--accent-2:#ff6475;--accent-soft:rgba(255,41,61,.17);--accent-line:rgba(255,41,61,.56);--pad-accent:#ff293d;--browser-bg:#080506;
}
:root[data-theme="ocean"]{
  --bg:#03070b;--panel:#071019;--panel2:#0c1a26;--text:#f0fbff;--muted:#8299aa;--muted2:#526b7d;
  --cyan:#34cfff;--pink:#3a8cff;--yellow:#9feaff;--lime:#45d6ff;--danger:#ff667b;
  --accent:#2bc8ff;--accent-2:#4d8dff;--accent-soft:rgba(43,200,255,.16);--accent-line:rgba(43,200,255,.5);--pad-accent:#25bfff;--browser-bg:#030b12;
}
:root[data-theme="minimal"]{
  --bg:#e8e5dd;--panel:#f5f2ea;--panel2:#eae6dc;--text:#171717;--muted:#66635e;--muted2:#8e8a82;
  --cyan:#181818;--pink:#181818;--yellow:#4a4742;--lime:#181818;--danger:#b32932;
  --accent:#171717;--accent-2:#46433e;--accent-soft:rgba(0,0,0,.08);--accent-line:rgba(0,0,0,.35);--pad-accent:#1e1e1e;--browser-bg:#efebe2;
  --line:rgba(0,0,0,.11);--line2:rgba(0,0,0,.22);
}
:root[data-theme="minimal"] .app-shell{background:linear-gradient(180deg,#f1eee6,#e2ded4)}
:root[data-theme="minimal"] .topbar,:root[data-theme="minimal"] .bottombar,:root[data-theme="minimal"] .side-panel,:root[data-theme="minimal"] .program-strip,:root[data-theme="minimal"] .pads-panel{background:rgba(247,244,236,.96);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 12px 35px rgba(0,0,0,.08)}
:root[data-theme="minimal"] .pad{background:linear-gradient(145deg,#faf7ef,#e8e4da);box-shadow:inset 0 1px 0 #fff,inset 0 -3px 8px rgba(0,0,0,.06),0 2px 4px rgba(0,0,0,.08)}
:root[data-theme="minimal"] .pad.empty{background:#eeeae1}
:root[data-theme="minimal"] .side-panel button,:root[data-theme="minimal"] .program-strip button,:root[data-theme="minimal"] .topbar button,:root[data-theme="minimal"] select,:root[data-theme="minimal"] input{color:var(--text)}

/* Transport: clearer PLAY / PAUSE states */
.transport-main{width:56px;min-width:56px;height:42px;min-height:42px;display:grid;grid-template-rows:22px auto;place-items:center;padding:3px 0 2px;border-radius:7px;background:rgba(255,255,255,.08);color:var(--text)}
.transport-main small{font-size:6px;letter-spacing:.12em;line-height:1}
.transport-main .transport-glyph{width:20px;height:19px;margin:0}
.transport-main .transport-glyph.play::before{left:6px;top:2px;border-top-width:7px;border-bottom-width:7px;border-left-width:11px}
.transport-main .transport-glyph.pause::before,.transport-main .transport-glyph.pause::after{top:1px;width:5px;height:16px;border-radius:1px}
.transport-main .transport-glyph.pause::before{left:3px}.transport-main .transport-glyph.pause::after{right:3px}
.transport-main.running{background:var(--accent);color:#fff;border-color:color-mix(in srgb,var(--accent) 82%,white);box-shadow:0 0 18px color-mix(in srgb,var(--accent) 45%,transparent),inset 0 0 0 1px rgba(255,255,255,.12)}
:root[data-theme="minimal"] .transport-main.running{color:#fff}

/* Topbar theme and side-panel controls */
.theme-select,.panel-toggle{height:32px;border:1px solid var(--line);border-radius:5px;background:#0a0d10;padding:0 8px;font-size:7px;letter-spacing:.08em;white-space:nowrap}
.panel-toggle{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}
:root[data-theme="minimal"] .theme-select,:root[data-theme="minimal"] .panel-toggle{background:#ebe7de}

/* Programs: larger target, VU and fader are both vertical */
.workspace{grid-template-columns:122px minmax(0,1fr) 7px var(--side-w,342px);gap:7px}
.workspace.side-hidden{grid-template-columns:122px minmax(0,1fr);}
.program-strip{padding:6px 5px;gap:4px;grid-template-rows:18px repeat(8,minmax(0,1fr));}
.program-slot{position:relative;display:grid;grid-template-columns:minmax(48px,1fr) 8px 18px 24px;gap:3px;align-items:stretch;min-height:0;border:1px solid rgba(255,255,255,.045);border-radius:5px;padding:3px;background:rgba(255,255,255,.018)}
.program-slot .program-btn{height:100%;min-height:0;border-radius:4px;font-size:13px;background:#0d0f12;border-color:rgba(255,255,255,.08)}
.program-slot .program-btn.active{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent),0 0 12px color-mix(in srgb,var(--accent) 15%,transparent)}
.program-btn.has-data .dot{background:var(--accent);box-shadow:0 0 8px color-mix(in srgb,var(--accent) 65%,transparent)}
.program-vu{position:relative;inset:auto;width:8px;height:100%;min-height:34px;border-radius:4px;overflow:hidden;align-self:stretch;background:rgba(255,255,255,.055);box-shadow:inset 0 0 0 1px rgba(255,255,255,.045)}
.program-vu i{position:absolute;left:0;right:0;bottom:0;width:100%;height:0;border-radius:3px;background:linear-gradient(to top,#20d66b 0%,#63df65 52%,#f0d64b 72%,#ff9b38 86%,#ff3b45 100%);transition:height .045s linear;box-shadow:0 0 8px rgba(32,214,107,.22)}
.program-fader{min-width:18px;display:grid;grid-template-rows:minmax(0,1fr) 10px;justify-items:center;align-items:center;gap:1px;overflow:hidden}
.program-fader input{writing-mode:vertical-lr;direction:rtl;width:14px;height:100%;min-height:31px;margin:0;accent-color:var(--accent)}
.program-fader small{font-size:5.5px;color:var(--muted);font-variant-numeric:tabular-nums;line-height:1}
.program-actions{display:grid;grid-template-rows:1.15fr 1fr 1fr;gap:2px;min-height:0}
.program-actions button{min-width:24px;min-height:0;border-radius:4px;background:#0c0e11;border-color:rgba(255,255,255,.1);font-size:7px}
.program-actions button:first-child{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 28%,transparent);background:color-mix(in srgb,var(--accent) 8%,#0c0e11)}
.program-stop-glyph{display:block;position:relative;width:11px;height:11px;margin:auto;background:currentColor;border-radius:1px;box-shadow:0 0 7px color-mix(in srgb,currentColor 45%,transparent)}
.program-actions button.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}
.program-slot.muted .program-vu i,.program-slot.solo-muted .program-vu i{filter:grayscale(1);opacity:.72;background:linear-gradient(0deg,#52575b,#c4c7c9);box-shadow:none}
.program-slot.muted .program-btn,.program-slot.solo-muted .program-btn{opacity:.64}
.program-slot.soloed .program-btn{box-shadow:inset 3px 0 0 var(--accent),0 0 15px color-mix(in srgb,var(--accent) 22%,transparent)}
.program-slot.sequencing .program-number::after{content:"•";margin-left:3px;color:#20d66b;text-shadow:0 0 6px rgba(32,214,107,.7)}
:root[data-theme="minimal"] .program-slot,:root[data-theme="minimal"] .program-slot .program-btn,:root[data-theme="minimal"] .program-actions button{background:#eeebe3}

/* Pads: one bright neon accent per theme */
.pad{border-color:color-mix(in srgb,var(--pad-accent) 22%,var(--line));background:linear-gradient(145deg,color-mix(in srgb,var(--pad-accent) 6%,#15191d),#090b0e)}
.pad::before{height:4px;opacity:1;background:var(--pad-accent);box-shadow:0 0 12px color-mix(in srgb,var(--pad-accent) 80%,transparent)}
.pad::after{background:radial-gradient(circle at 50% 110%,color-mix(in srgb,var(--pad-accent) 26%,transparent),transparent 63%);opacity:.56}
.pad.active{border-color:color-mix(in srgb,var(--pad-accent) 86%,white);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pad-accent) 50%,transparent),0 0 28px color-mix(in srgb,var(--pad-accent) 34%,transparent)}
.pad.selected{outline-color:color-mix(in srgb,var(--pad-accent) 56%,white)}
.pad-mode{color:color-mix(in srgb,var(--pad-accent) 75%,white)}
.pad-wave{opacity:.82;display:block}
.pad-wave svg{width:100%;height:100%;display:block;overflow:visible}
.pad-wave path{fill:color-mix(in srgb,var(--pad-accent) 32%,transparent);stroke:color-mix(in srgb,var(--pad-accent) 88%,white);stroke-width:.85;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 2px color-mix(in srgb,var(--pad-accent) 55%,transparent))}
.pad-wave line{stroke:color-mix(in srgb,var(--pad-accent) 36%,transparent);stroke-width:.5;vector-effect:non-scaling-stroke}

/* Compact bottom bar. Full sequencing lives in the modal. */
.compact-pattern-bar{grid-template-columns:minmax(220px,340px) minmax(120px,1fr) minmax(80px,.45fr);gap:8px;min-height:42px}
.pattern-launch-summary{display:grid;grid-template-columns:minmax(0,1fr) 48px 58px;gap:5px;align-items:center;min-width:0}
.pattern-launch-main{height:34px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;text-align:left;padding:0 9px;background:var(--accent-soft);border-color:var(--accent-line);color:var(--text)}
.pattern-launch-main b{font-size:9px;color:var(--accent)}.pattern-launch-main span{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pattern-launch-main small{font-size:6px;color:var(--muted)}
.pattern-overview .step.has-event{background:var(--accent)}.pattern-overview .step.current{box-shadow:0 0 8px var(--accent)}

/* Pattern launcher/editor modal */
.pattern-modal{width:min(1540px,98vw);height:min(900px,96dvh);background:color-mix(in srgb,var(--panel) 96%,black)}
.pattern-heading{min-width:230px}.pattern-heading small{display:block}.pattern-modal-name{width:min(390px,34vw);height:31px;margin-top:4px;border:0;border-bottom:1px solid var(--accent-line);outline:0;background:transparent;color:var(--text);font-size:15px;font-weight:600}
.pattern-head-actions{flex-wrap:wrap;justify-content:flex-end}.pattern-head-actions select{height:28px;min-width:52px;border:0;background:transparent;color:var(--text)}
.pattern-modal-body{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:0;overflow:hidden}
.pattern-launcher{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);border-right:1px solid var(--line);background:color-mix(in srgb,var(--panel2) 65%,black)}
.pattern-launcher-head{height:40px;padding:0 9px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.pattern-launcher-head b{font-size:9px;letter-spacing:.1em;color:var(--accent)}.pattern-launcher-head span{font-size:6px;color:var(--muted)}
.pattern-launch-grid{overflow-y:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;align-content:start;padding:6px;overscroll-behavior:contain}
.pattern-launch-slot{position:relative;min-height:45px;padding:5px;border:1px solid rgba(255,255,255,.07);border-radius:4px;background:#0c1014;color:var(--muted);display:grid;align-content:center;text-align:left;gap:2px}
.pattern-launch-slot b{font-size:9px;color:var(--muted)}.pattern-launch-slot span{font-size:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pattern-launch-slot i{position:absolute;right:5px;top:5px;width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px var(--accent)}
.pattern-launch-slot.exists{border-color:color-mix(in srgb,var(--accent) 18%,var(--line));color:var(--text)}.pattern-launch-slot.active{background:var(--accent-soft);border-color:var(--accent-line);box-shadow:inset 0 -3px 0 var(--accent)}.pattern-launch-slot.active b{color:var(--accent)}
.seq-cell.on{background:var(--accent);border-color:color-mix(in srgb,var(--accent) 75%,white);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 28%,transparent)}
.seq-tick.bar{border-left-color:var(--accent)}.seq-label b{color:var(--accent)}

/* Library: independent folder width + larger typography */
.library-browser{grid-template-columns:var(--folder-w,168px) 7px minmax(0,1fr)!important;gap:0!important}
.folder-resizer{position:relative;cursor:col-resize;touch-action:none;background:transparent;min-width:7px}
.folder-resizer::before{content:"";position:absolute;left:3px;top:7px;bottom:7px;width:1px;background:color-mix(in srgb,var(--accent) 24%,transparent)}
.folder-resizer.dragging::before,.folder-resizer:hover::before{left:2px;width:3px;background:var(--accent);box-shadow:0 0 8px color-mix(in srgb,var(--accent) 42%,transparent)}
.folder-tree{border-radius:6px 0 0 6px}.file-pane{border-radius:0 6px 6px 0}
.folder-tree-row span{font-size:10px!important}.folder-tree-row b{font-size:8px!important}.folder-toggle{font-size:12px}.file-copy strong{font-size:10.5px}.file-copy small{font-size:7.5px}
.folder-tree-row.active{background:var(--accent-soft);color:var(--accent)}.folder-toggle.has-kids{color:var(--accent)}
.file-play{color:var(--accent)}.file-item.previewing .file-play{background:var(--accent);color:#fff}.file-assign{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 20%,var(--line))}

@media(max-width:1100px){
  .workspace{grid-template-columns:108px minmax(0,1fr) 7px var(--side-w,300px)}.workspace.side-hidden{grid-template-columns:108px minmax(0,1fr)}
  .program-slot{grid-template-columns:minmax(42px,1fr) 7px 16px 21px}.program-actions button{min-width:21px}
  .pattern-modal-body{grid-template-columns:205px minmax(0,1fr)}.pattern-launch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .theme-select{max-width:78px}.panel-toggle{padding:0 6px}.master-compact{min-width:160px;grid-template-columns:auto 70px auto}.master-compact input{width:70px}
}
@media(max-width:900px),(max-height:620px){
  .workspace{grid-template-columns:96px minmax(0,1fr) 6px var(--side-w,270px);gap:4px}.workspace.side-hidden{grid-template-columns:96px minmax(0,1fr)}
  .program-strip{padding:4px 3px;gap:2px}.program-slot{grid-template-columns:minmax(37px,1fr) 6px 14px 19px;gap:2px;padding:2px}.program-number{font-size:11px}.program-actions button{min-width:19px}.program-fader small{display:none}.program-fader{grid-template-rows:1fr}.program-vu{width:6px}
  .transport-main{width:48px;min-width:48px;height:38px;min-height:38px}.theme-select{width:64px;padding:0 4px}.panel-toggle{width:58px;font-size:6px}
  .compact-pattern-bar{grid-template-columns:minmax(190px,290px) minmax(90px,1fr)}.compact-pattern-bar>.message{display:none}.pattern-launch-summary{grid-template-columns:minmax(0,1fr) 42px 48px}.pattern-launch-main small{display:none}
  .pattern-modal-body{grid-template-columns:170px minmax(0,1fr)}.pattern-launch-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:4px}.pattern-launch-slot{min-height:40px}
  .folder-tree-row span{font-size:9px!important}.file-copy strong{font-size:9.5px}
}

/* 2.7.3 - persistent skins, multi-program transport, solo, fixed VU palette */
:root{
  --vu-low:#32d879;--vu-mid:#d8ea4b;--vu-high:#ffb02e;--vu-peak:#ff384f;
}
.level-meter i{background:linear-gradient(90deg,var(--vu-low) 0 52%,var(--vu-mid) 68%,var(--vu-high) 84%,var(--vu-peak) 100%)!important;box-shadow:0 0 8px rgba(50,216,121,.22)!important}
.program-vu i{background:linear-gradient(0deg,var(--vu-low) 0 52%,var(--vu-mid) 68%,var(--vu-high) 84%,var(--vu-peak) 100%)!important;box-shadow:0 0 7px rgba(50,216,121,.2)!important}
.program-slot.muted .program-vu i{background:linear-gradient(0deg,#565c61,#bfc4c8)!important;filter:grayscale(1);box-shadow:none!important}

.transport-main .transport-glyph.pause::before{content:"";inset:0!important;width:100%!important;height:100%!important;background:currentColor!important;border-radius:0!important;-webkit-mask:url("assets/pause.svg") center/contain no-repeat;mask:url("assets/pause.svg") center/contain no-repeat}
.transport-main .transport-glyph.pause::after{display:none!important}

.fx-rack{padding-bottom:9px}
.fx-chain{display:grid;gap:5px;margin-top:7px}
.fx-chain-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;min-height:42px;border:1px solid var(--line);border-radius:6px;background:color-mix(in srgb,var(--panel2) 84%,transparent);overflow:hidden}
.fx-chain-item.on{border-color:var(--accent-line);box-shadow:inset 3px 0 0 var(--accent)}
.fx-chain-open{display:grid;grid-template-columns:24px minmax(0,1fr);grid-template-rows:1fr 1fr;column-gap:7px;align-items:center;text-align:left;border:0!important;background:transparent!important;padding:5px 7px!important;color:var(--text)!important}
.fx-chain-open span{grid-row:1/3;font-size:7px;color:var(--muted);font-variant-numeric:tabular-nums}
.fx-chain-open strong{font-size:9px;line-height:1.05}.fx-chain-open small{font-size:6px;letter-spacing:.08em;color:var(--muted)}
.fx-chain-item.on .fx-chain-open strong{color:var(--accent)}
.fx-chain-actions{display:grid;grid-template-columns:28px 28px 30px;align-items:stretch}
.fx-chain-actions button{min-width:0!important;border:0!important;border-left:1px solid var(--line)!important;border-radius:0!important;background:transparent!important;color:var(--muted)!important;font-size:11px!important}
.fx-chain-actions button:hover{color:var(--text)!important;background:var(--accent-soft)!important}.fx-chain-actions button:disabled{opacity:.22}.fx-chain-actions .remove{color:var(--danger)!important;font-size:16px!important}
.fx-chain-empty{height:46px;display:grid;place-items:center;border:1px dashed var(--line);border-radius:6px;color:var(--muted);font-size:7px;letter-spacing:.12em}
.fx-chain-add{display:grid;grid-template-columns:minmax(0,1fr) 82px;gap:5px;margin-top:7px}
.fx-chain-add select,.fx-chain-add button{height:31px;border:1px solid var(--line);border-radius:5px;background:var(--panel2);color:var(--text);font-size:7px}.fx-chain-add button{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}
.fx-settings{margin-top:7px}.fx-settings .section-head h3{color:var(--accent)}

:root[data-theme="minimal"]{
  --text:#161616;--muted:#595650;--muted2:#767168;--line:rgba(0,0,0,.16);--line2:rgba(0,0,0,.28);
}
:root[data-theme="minimal"] .status-pill,:root[data-theme="minimal"] .section-head small,:root[data-theme="minimal"] .help,:root[data-theme="minimal"] .project-info,:root[data-theme="minimal"] .pad-meta,:root[data-theme="minimal"] .file-copy small{color:#55514b}
:root[data-theme="minimal"] .quantize-select,:root[data-theme="minimal"] .theme-select,:root[data-theme="minimal"] .param input,:root[data-theme="minimal"] .param select{background:#e2ded4;color:#151515;border-color:rgba(0,0,0,.16)}
:root[data-theme="minimal"] .fx-chain-item{background:#e7e2d8}

:root[data-theme="minimal-invert"]{
  --bg:#151515;--panel:#1b1a18;--panel2:#24221f;--text:#f2eee5;--muted:#b6afa4;--muted2:#827b72;
  --cyan:#f2eee5;--pink:#f2eee5;--yellow:#c7c0b6;--lime:#f2eee5;--danger:#ff6672;
  --accent:#f2eee5;--accent-2:#c8c0b6;--accent-soft:rgba(242,238,229,.1);--accent-line:rgba(242,238,229,.34);--pad-accent:#f2eee5;--browser-bg:#11100f;
  --line:rgba(242,238,229,.12);--line2:rgba(242,238,229,.24);
}
:root[data-theme="minimal-invert"] .topbar,:root[data-theme="minimal-invert"] .bottombar,:root[data-theme="minimal-invert"] .side-panel,:root[data-theme="minimal-invert"] .program-strip,:root[data-theme="minimal-invert"] .pads-panel{background:#1b1a18}
:root[data-theme="minimal-invert"] .pad{background:linear-gradient(145deg,#292724,#171614);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),inset 0 -3px 8px rgba(0,0,0,.24),0 2px 4px rgba(0,0,0,.28)}
:root[data-theme="minimal-invert"] .pad.empty{background:#201f1c}
:root[data-theme="minimal-invert"] .program-slot,:root[data-theme="minimal-invert"] .program-slot .program-btn,:root[data-theme="minimal-invert"] .program-actions button{background:#211f1c}
:root[data-theme="minimal-invert"] .theme-select,:root[data-theme="minimal-invert"] .panel-toggle,:root[data-theme="minimal-invert"] select,:root[data-theme="minimal-invert"] input{color:var(--text)}


/* 2.7.3 theme-state interaction safety */
:root[data-theme="minimal"] .ctrl:active,:root[data-theme="minimal"] .icon-btn:active,:root[data-theme="minimal"] .tab-btn:active,:root[data-theme="minimal"] .program-btn:active,:root[data-theme="minimal"] .chip:active,:root[data-theme="minimal"] .fx-toggle:active,:root[data-theme="minimal"] .nudge-btn:active,:root[data-theme="minimal"] .small-btn:active,:root[data-theme="minimal"] .project-btn:active,:root[data-theme="minimal"] .history-btn:active,:root[data-theme="minimal"] .stop-all-btn:active{background:#ded9cf;color:#161616}
:root[data-theme="minimal"] .tab-btn{background:#e8e4da;color:#4f4c47}
:root[data-theme="minimal"] .tab-btn.active{background:#dcd7cd;color:#161616;box-shadow:inset 0 -2px 0 #161616}
:root[data-theme="minimal"] .fx-settings{background:#e8e3d9;border-color:rgba(0,0,0,.12)}
:root[data-theme="minimal"] .fx-toggle.on,:root[data-theme="minimal"] .chip.active{background:rgba(0,0,0,.08);border-color:rgba(0,0,0,.3);color:#161616}
:root[data-theme="minimal-invert"] .ctrl:active,:root[data-theme="minimal-invert"] .icon-btn:active,:root[data-theme="minimal-invert"] .tab-btn:active,:root[data-theme="minimal-invert"] .program-btn:active,:root[data-theme="minimal-invert"] .chip:active,:root[data-theme="minimal-invert"] .fx-toggle:active,:root[data-theme="minimal-invert"] .nudge-btn:active,:root[data-theme="minimal-invert"] .small-btn:active,:root[data-theme="minimal-invert"] .project-btn:active,:root[data-theme="minimal-invert"] .history-btn:active,:root[data-theme="minimal-invert"] .stop-all-btn:active{background:#302e2a;color:#f2eee5}
:root[data-theme="minimal-invert"] .fx-settings{background:#201f1c;border-color:var(--line)}

/* 2.7.4 - UI isolation, focused FX editor, lower-cost visuals */
.fx-chain-item.selected{
  border-color:color-mix(in srgb,var(--accent) 72%,var(--line));
  background:color-mix(in srgb,var(--accent-soft) 46%,var(--panel2));
  box-shadow:inset 3px 0 0 var(--accent),0 0 0 1px color-mix(in srgb,var(--accent) 10%,transparent);
}
.fx-chain-actions{grid-template-columns:28px 28px 28px 30px}
.fx-chain-actions .power{font-size:9px!important;color:var(--muted)!important}
.fx-chain-actions .power.on{color:var(--accent)!important;text-shadow:0 0 7px color-mix(in srgb,var(--accent) 55%,transparent)}
.fx-chain-open{touch-action:manipulation}
.fx-settings{contain:layout paint}

.pad-wave{opacity:.88}
.pad-wave path{
  fill:none!important;
  stroke:color-mix(in srgb,var(--pad-accent) 90%,white)!important;
  stroke-width:1.15!important;
  stroke-linecap:round;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 0 1.5px color-mix(in srgb,var(--pad-accent) 42%,transparent))!important;
}
.pad-wave line{opacity:.34}
.pad-wave.pending{display:grid;place-items:center;opacity:.42}
.pad-wave.pending i{display:block;width:100%;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--pad-accent) 60%,transparent) 15%,color-mix(in srgb,var(--pad-accent) 80%,white) 50%,color-mix(in srgb,var(--pad-accent) 60%,transparent) 85%,transparent);border-radius:1px}

.footer-telemetry{justify-self:end;display:flex;align-items:center;gap:7px;min-width:148px;white-space:nowrap;font-size:7px;letter-spacing:.06em;color:var(--muted);font-variant-numeric:tabular-nums}
.footer-telemetry b{font-size:7px;color:var(--vu-low);font-weight:600;letter-spacing:.1em}
.compact-pattern-bar{grid-template-columns:minmax(220px,340px) minmax(120px,1fr) minmax(70px,.34fr) auto}

.panel-body{contain:layout paint}
.side-panel{will-change:auto}

:root[data-theme="minimal"] .fx-chain-item.selected{background:#dcd7cd;border-color:rgba(0,0,0,.32)}
:root[data-theme="minimal"] .footer-telemetry{color:#55514b}
:root[data-theme="minimal-invert"] .fx-chain-item.selected{background:#2b2925}

@media(max-width:900px),(max-height:620px){
  .compact-pattern-bar{grid-template-columns:minmax(185px,285px) minmax(80px,1fr) auto}
  .compact-pattern-bar>.message{display:none}
  .footer-telemetry{min-width:118px;font-size:6px;gap:5px}
  .footer-telemetry b{font-size:6px}
}


/* 2.7.5 - stable theme ownership, deterministic FX selection, audio-first UI */
.fx-chain-item{cursor:pointer}
.fx-chain-item.selected .fx-chain-open strong{color:var(--accent)}
.fx-editor-host{min-height:0;contain:layout paint}
.pad-wave path{
  fill:color-mix(in srgb,var(--pad-accent) 20%,transparent)!important;
  stroke:color-mix(in srgb,var(--pad-accent) 86%,white)!important;
  stroke-width:.72!important;
  stroke-linejoin:round;
  stroke-linecap:round;
  vector-effect:non-scaling-stroke;
  filter:none!important;
}
.pad-wave line{opacity:.2}

/* 2.7.8 · iPad Web MIDI Browser: touch sample routing + system audio route */
.file-item{grid-template-columns:26px 26px minmax(0,1fr) 24px 44px 42px}
.file-drag{width:24px;height:24px;padding:0;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));border-radius:3px;background:color-mix(in srgb,var(--panel) 88%,#000);color:var(--accent);font-size:10px;line-height:1;touch-action:none;user-select:none;-webkit-user-select:none}
.file-drag:active{background:color-mix(in srgb,var(--accent) 18%,var(--panel));transform:scale(.96)}
.pad.drag-target{outline:2px solid var(--accent);outline-offset:-3px;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 30%,transparent),0 0 18px color-mix(in srgb,var(--accent) 22%,transparent)}
.sample-drag-ghost{position:fixed;left:0;top:0;z-index:99999;max-width:210px;padding:7px 9px;border:1px solid var(--accent);border-radius:4px;background:#05090d;color:#eafcff;font:600 10px/1.2 "IBM Plex Sans",sans-serif;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;box-shadow:0 6px 20px rgba(0,0,0,.45);will-change:transform}
.io-audio-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}
.system-audio-route{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;margin-top:8px;padding:9px 10px;border:1px solid var(--line);border-radius:4px;background:color-mix(in srgb,var(--panel) 90%,#000)}
.system-audio-route b{font-size:8px;letter-spacing:.08em;color:var(--muted)}
.system-audio-route span{font-size:9px;color:var(--text);text-align:right}
@media(max-width:1100px){.file-item{grid-template-columns:24px 24px minmax(0,1fr) 22px 40px}.file-drag{width:22px;height:22px}.file-more{display:none}}
@media(max-width:900px),(max-height:620px){.file-item{grid-template-columns:22px 22px minmax(0,1fr) 22px 38px}.file-drag{width:21px;height:21px}.io-audio-actions{grid-template-columns:1fr}}

/* 2.8.0 · sequential program pages + iPad master export */
.program-strip{grid-template-rows:28px repeat(8,minmax(0,1fr));}
.program-nav{display:grid;grid-template-columns:26px minmax(0,1fr) 26px;gap:3px;align-items:center;min-height:0}
.program-nav .program-label{display:grid;place-items:center;margin:0;height:100%;font-size:8px;color:var(--muted);letter-spacing:.13em;text-align:center}
.program-page-btn{height:24px;min-height:0;padding:0;border:1px solid rgba(101,236,255,.2);border-radius:4px;background:#0a0f13;color:var(--cyan);font-size:17px;line-height:1;font-weight:500}
.program-page-btn:active,.program-page-btn.learn-armed{background:rgba(101,236,255,.16);border-color:rgba(101,236,255,.62)}
.master-export-modal{width:min(620px,calc(100vw - 24px));max-height:calc(100vh - 28px);overflow:auto;padding:16px;border:1px solid rgba(101,236,255,.34);border-radius:10px;background:#080c10;box-shadow:0 24px 80px rgba(0,0,0,.72)}
.master-export-modal header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.master-export-modal header small{font-size:8px;letter-spacing:.12em;color:var(--cyan)}.master-export-modal h2{margin:3px 0 0;font-size:18px}.master-export-file{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:7px;background:#05080a}.master-export-file b{font-size:11px;word-break:break-word}.master-export-file span{font-size:8px;color:var(--muted)}.master-export-modal p{font-size:9px;line-height:1.55;color:var(--muted);margin:12px 0}.master-export-actions{display:grid;grid-template-columns:1.35fr 1fr .8fr;gap:7px}
@media(max-width:900px),(max-height:620px){.program-strip{grid-template-rows:25px repeat(8,minmax(0,1fr))}.program-nav{grid-template-columns:22px minmax(0,1fr) 22px;gap:2px}.program-page-btn{height:22px;font-size:15px}.master-export-modal{padding:12px}.master-export-actions{grid-template-columns:1fr 1fr}.master-export-actions [data-master-export-download]{grid-column:1/-1}.master-export-modal h2{font-size:15px}.master-export-modal p{font-size:8px}}
