.field label,.li .name,.sc .n{text-overflow:ellipsis;white-space:nowrap}#bankManagerCard,.card,.welcome{margin-bottom:10px}.bank-empty,.bank-handle,.bank-program,.bank-target,.bank-type,.sc.add-sample-card,.welcome{text-align:center}.bank-handle,.check,.hold-btn{user-select:none}#footerInfo,.bank-order,.bank-original,.bank-program,.bank-target,.breakdown-row .size,.freq-label,.midi-time-labels{font-family:ui-monospace,monospace}:root{color-scheme:dark;--bg:#070b14;--card:#0f172a;--card2:#111c33;--line:#1e2d4a;--text:#e2e8f0;--muted:#94a3b8;--dim:#64748b;--accent:#38bdf8;--accent2:#a78bfa;--ok:#34d399;--bad:#f87171}*{box-sizing:border-box}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#0a1222}::-webkit-scrollbar-track:active,::-webkit-scrollbar-track:hover{background:#0a1222}::-webkit-scrollbar-thumb{background:#1e2d4a;border-radius:6px;border:2px solid #0a1222}::-webkit-scrollbar-thumb:hover{background:#2b446b}::-webkit-scrollbar-thumb:active{background:#38bdf8}::-webkit-scrollbar-corner{background:#0a1222}html{scrollbar-width:thin;scrollbar-color:#1e2d4a #0a1222}body{margin:0;height:100vh;overflow:hidden;background:radial-gradient(1200px 800px at 20% -10%,#12203a,#070b14 55%);color:var(--text);font:13px ui-sans-serif,system-ui,sans-serif;display:flex;flex-direction:column}.list,aside,main{overflow:auto}.icon{width:1.1em;height:1.1em;vertical-align:-.15em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.btn,header{align-items:center}.btn{display:inline-flex;justify-content:center;gap:.4em}.icon-btn .icon{width:1.2em;height:1.2em;vertical-align:middle;margin:0}button,input,select{font:inherit}header{height:56px;display:flex;gap:10px;padding:0 14px;background:#080d18;border-bottom:1px solid var(--line);flex:none}.brand{display:flex;align-items:center;gap:9px;min-width:200px}.logo{width:30px;height:30px;border-radius:5px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:grid;place-items:center;color:#06111f;font-weight:900}.brand b{font-size:13px}.brand span{display:block;font-size:9px;color:var(--dim);letter-spacing:.12em;text-transform:uppercase}.actions{display:flex;gap:7px;margin-left:auto;flex-wrap:wrap;align-items:center}.language-label{color:var(--muted);font-size:11px}#languageSelect,.btn{background:var(--card2);color:var(--text);cursor:pointer;transition:.15s}#languageSelect{min-height:32px;padding:5px 28px 5px 9px;border:1px solid var(--line);border-radius:5px;outline:0}#languageSelect:hover,.btn:hover{background:#16233d;border-color:#2b446b}#languageSelect:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px rgb(56 189 248 / 20%)}.btn{border:1px solid var(--line);padding:7px 11px;border-radius:5px}.card h3,.icon-btn,.welcome{color:var(--muted)}.btn.primary{background:linear-gradient(135deg,#0ea5e9,#6366f1);border:0;color:#fff;font-weight:600}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.small{padding:4px 8px;font-size:11px}.btn.danger,.icon-btn.danger:hover{color:var(--bad);border-color:#4a2029}.btn.active{background:rgba(56,189,248,.15);border-color:var(--accent)}.icon-btn{padding:0 5px;font-size:11px;line-height:18px;height:20px;border-radius:4px;background:0 0;border:1px solid transparent;cursor:pointer;flex:none}.icon-btn:hover{background:#16233d;border-color:#2b446b;color:var(--text)}.app{flex:1;display:flex;min-height:0}aside{width:310px;border-right:1px solid var(--line);padding:10px;background:rgba(8,13,24,.45);flex:none}main{flex:1;padding:12px 14px 30px;min-width:0}.card{background:linear-gradient(180deg,rgba(17,28,51,.95),rgba(15,23,42,.95));border:1px solid var(--line);border-radius:10px;padding:11px}.li,.stat{padding:6px 8px;background:#0a1222}.card:last-child{margin-bottom:0}.card h3{margin:0 0 8px;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.bank-group-header,.stat label{letter-spacing:.08em;text-transform:uppercase}.stats{display:grid;grid-template-columns:1fr 1fr;gap:6px}.li,.li .tools,.list,.welcome{display:flex}.stat{border:1px solid #172541;border-radius:7px}.stat label{display:block;font-size:9px;color:var(--dim)}.li,.stat b{font-size:12px}.list{flex-direction:column;gap:4px;max-height:180px}.field label,.li .name,.sc .n,.wave-wrap{overflow:hidden}.li{border:1px solid transparent;border-radius:5px;cursor:pointer;justify-content:space-between;gap:6px;align-items:center}.bank-row:hover,.li:hover{background:#101c33}.li.active{border-color:var(--accent);background:rgba(56,189,248,.1)}.sc.active,.sc.add-sample-card:hover{background:rgba(56,189,248,.07)}.li .meta{color:var(--dim);font-size:10px;flex:none}.li .name{flex:1;min-width:0}.li .tools{gap:2px;flex:none}.field,.welcome{flex-direction:column}.welcome{min-height:200px;align-items:center;justify-content:center;gap:12px;border:1px dashed #1e3357;border-radius:10px;padding:20px}.welcome h1{margin:0;color:var(--text);font-size:24px}.field label,.hint,footer{color:var(--dim)}.welcome p{margin:0;max-width:900px;line-height:1.7}.grid{display:grid;gap:8px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.g6{grid-template-columns:repeat(6,1fr)}.field{display:flex;gap:3px;min-width:0}.field label{font-size:9px;text-transform:uppercase;letter-spacing:.05em}.card input,.card select,.modal-overlay input,.modal-overlay select{background:#080f1e;border:1px solid #1d2e4d;color:var(--text);border-radius:6px;padding:5px 7px;outline:0;width:100%;min-width:0;transition:border-color 50ms ease-in-out}.card input:focus,.modal-overlay input:focus{border-color:#335f70}.hint{font-size:10px;line-height:1.5}.samples{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px}.sc{background:#0a1222;border:1px solid #172541;border-radius:7px;padding:8px;cursor:pointer;transition:.14s}.sc:hover{border-color:#2b446b;transform:translateY(-1px)}.sc.active{border-color:var(--accent)}.sc.add-sample-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:72px;color:var(--accent)}.sc .m,.toolbar{flex-wrap:wrap;display:flex}.sc.add-sample-card:disabled{cursor:not-allowed;opacity:.5;transform:none}.add-sample-plus{font-size:22px;font-weight:500;line-height:1}.sc .n{font-weight:600;margin-bottom:4px;font-size:12px}.sc .m{gap:3px}.tag{font-size:9px;padding:1px 4px;border-radius:3px;background:#13213a;color:var(--muted);border:1px solid #1d2e4d}.tag.loop{color:var(--accent);border-color:#1e4a6b}.wave-wrap{position:relative;border:1px solid #1a2b49;border-radius:5px;background:#060c17}#waveCanvas{display:block;width:100%;height:200px;cursor:crosshair;touch-action:none}.wave-overlay{position:absolute;left:8px;top:6px;display:flex;gap:4px;pointer-events:none}.wave-overlay span{background:rgba(6,12,23,.72);border:1px solid #1d3050;border-radius:4px;padding:1px 5px;font-size:10px;color:var(--muted)}.toolbar{gap:4px;margin:6px 0;align-items:center}.sep{width:1px;background:var(--line);margin:0 3px}.play-row,.sample-modal-panel .subhead{margin-bottom:8px}.play-row{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.hold-btn{background:linear-gradient(135deg,#059669,#10b981);border:0;color:#fff;font-weight:700;padding:8px 14px;border-radius:5px;cursor:pointer}.hold-btn:active{transform:scale(.98)}.divider{height:1px;background:var(--line);margin:10px 0}.subhead{display:flex;align-items:center;gap:8px;margin:0 0 8px}.subhead h2{margin:0}.subhead .spacer{flex:1}.pill{font-size:10px;padding:2px 6px;border-radius:99px;background:#101d34;border:1px solid #1e3253;color:var(--muted)}.card .pill{margin-top:-3px}.check-row{display:flex;flex-wrap:wrap;gap:5px}.check,footer{display:flex;align-items:center;font-size:11px}.check{gap:5px;background:#0a1222;border:1px solid #1b2b49;border-radius:5px;padding:4px 7px;cursor:pointer}.modal-footer,footer{border-top:1px solid var(--line)}.check input{accent-color:var(--accent);width:12px;height:12px}footer{height:28px;gap:10px;padding:0 12px;background:#060a12;flex:none}.midi-box,.modal-overlay{display:flex;align-items:center}.midi-box{gap:5px;background:var(--card);border:1px solid var(--line);padding:4px 6px;border-radius:8px}.midi-box select{background:0 0;border:0;color:var(--text);max-width:140px;font-size:11px;outline:0}.dot{width:7px;height:7px;border-radius:50%;background:#475569}.modal-panel{border:1px solid var(--line)}.dot.on{background:var(--ok);box-shadow:0 0 0 3px rgba(52,211,153,.16)}.modal-overlay{position:fixed;inset:0;z-index:1000;justify-content:center;padding:16px;background:rgba(2,6,23,.3);backdrop-filter:blur(1px)}.modal-overlay[hidden],.svg-sprite{display:none}.modal-panel{background:var(--card);color:var(--text)}.sample-modal-panel{max-height:min(90vh,900px);overflow:auto}.sample-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sample-preview,.sample-source-card{min-width:0;padding:14px;border:1px solid var(--line);border-radius:9px;background:#0a1222}.sample-preview h3,.sample-source-card h3{margin:0 0 8px;font-size:12px}.sample-source-card .btn{width:100%;margin-top:12px}.sample-source-status{min-height:18px;margin-top:8px;color:var(--muted);font-size:11px;overflow-wrap:anywhere}.sample-record-controls{display:flex;align-items:center;gap:6px}.sample-record-controls .btn{flex:1;width:auto;margin-top:12px}.sample-record-controls .pill{flex:none}.modal-field-spaced,.sample-preview{margin-top:14px}.sample-preview output{min-height:30px;padding:7px;border:1px solid #1d2e4d;border-radius:6px;background:#080f1e;color:var(--text);font-size:11px}.sample-preview>h3:not(:first-child){margin-top:16px}.modal-panel{width:min(400px,100%);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;border-radius:12px;background:var(--card);color:var(--text);box-shadow:0 24px 80px rgba(0,0,0,.55);overflow:hidden}.freq-map-modal,.sample-modal-panel{width:min(900px,100%)}.modal-content{display:flex;flex-direction:column;flex:1;min-height:0;padding:0}.modal-header{flex:none;display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid var(--line)}.modal-header h2{margin:0;font-size:16px;flex:1;min-width:0}.modal-header button.icon-btn{width:22px;height:22px;padding:0!important}.modal-body{flex:1;min-height:0;overflow-y:auto;padding:16px 18px}.modal-footer{flex:none;display:flex;justify-content:flex-end;gap:8px;padding:12px 18px}.modal-message{margin:0 0 6px;color:var(--dim);font-size:12px;line-height:1.5}.alert-message{white-space:pre-wrap}@media (max-width:640px){.sample-source-grid{grid-template-columns:1fr}.sample-modal-panel .grid.g6{grid-template-columns:repeat(3,minmax(0,1fr))}}.add-patch-choice{margin:14px 0 0}#btnExportInst,#btnLibraryScope,.add-patch-choice button{width:100%}.add-patch-divider{display:flex;align-items:center;gap:10px;margin:12px 0;color:var(--dim);font-size:11px}.add-patch-divider::after,.add-patch-divider::before{content:"";flex:1;height:1px;background:var(--line)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.modal-error{min-height:15px;margin-top:5px;color:var(--bad);font-size:11px}@media(max-width:900px){.g4,.g6{grid-template-columns:repeat(2,1fr)}aside{width:260px}}@media(max-width:720px){.app{flex-direction:column}aside{width:100%;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:8px}aside .card{margin:0}body{overflow:auto}main{overflow:visible}}.bank-toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}.bank-toolbar .hint{flex:1;min-width:200px}.bank-list{display:flex;flex-direction:column;gap:3px;max-height:200px;overflow-y:auto;border:1px solid var(--line);border-radius:7px;padding:6px;background:#060c17}.bank-name,.breakdown-row .name,.subhead h2{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bank-group-header{display:flex;align-items:center;gap:6px;padding:4px 6px;margin-top:6px;font-size:10px;color:var(--accent);border-bottom:1px solid #1a2b49}.bank-row.drag-over,.bank-target:focus{border-color:var(--accent)}.bank-group-header:first-child{margin-top:0}.bank-row{display:grid;grid-template-columns:18px 14px 26px 46px 1fr 50px 46px 70px;gap:6px;align-items:center;padding:4px 6px;border-radius:5px;background:#0a1222;border:1px solid transparent;font-size:11px;cursor:default;transition:background .1s}.bank-row.dragging{opacity:.4}.bank-row.drag-over{background:rgba(56,189,248,.08)}.bank-row.disabled{opacity:.45}.bank-handle{cursor:grab;color:var(--dim);font-size:14px;line-height:1}.bank-handle:active{cursor:grabbing}.bank-type{font-size:9px;font-weight:700;padding:1px 0;border-radius:3px}.bank-type.melodic{color:var(--accent);background:rgba(56,189,248,.15)}.bank-type.drum{color:var(--accent2);background:rgba(167,139,250,.15)}.bank-order,.bank-original{color:var(--muted);text-align:center;font-size:10px}.bank-order{color:var(--accent);font-weight:600}.bank-name{color:var(--text)}.bank-program{color:var(--dim);font-size:10px}.bank-empty,.bank-item-info{font-size:11px;color:var(--dim)}.bank-target{width:100%;padding:3px 5px;background:#080f1e;border:1px solid #1d2e4d;color:var(--text);border-radius:4px;font-size:11px;outline:0}.bank-target.changed{border-color:var(--accent2)}.bank-row input[type=checkbox]{accent-color:var(--accent);width:14px;height:14px}.bank-empty{padding:12px}.subhead h2{font-size:13px}.bank-item-row{display:flex;justify-content:space-between;align-items:center;width:100%}.bank-item-info{margin-right:8px}.breakdown-list{display:flex;flex-direction:column;gap:4px;max-height:400px;overflow-y:auto;margin-top:10px}.breakdown-row{display:flex;justify-content:space-between;padding:6px 10px;background:#0a1222;border:1px solid var(--line);border-radius:4px;font-size:12px}.breakdown-row.heavy{border-color:var(--bad);background:rgba(248,113,113,.1)}.breakdown-row .name{flex:1}.breakdown-row .size{color:var(--accent)}.bank-item-row.disabled .name{color:var(--bad);font-weight:700}.bank-item-broken-row,.bank-item-row.disabled{opacity:.7}.breakdown-row .btn-delete-patch{padding:2px 8px;height:22px;font-size:10px;background:0 0;border:1px solid var(--bad);color:var(--bad);border-radius:4px;cursor:pointer;transition:.15s;margin-left:8px;flex-shrink:0}.bank-info-btn .icon,.welcome-tip .icon{width:16px;height:16px}.bank-item-actions,.breakdown-actions{align-items:center;display:flex}.breakdown-row .btn-delete-patch:hover{background:var(--bad);color:#fff}.bank-broken{color:#f87171!important;font-weight:700}.bank-info-btn{padding:2px;margin-left:4px;color:var(--accent)}.breakdown-row.broken{border:1px solid #f87171;background-color:rgba(248,113,113,.1)}.breakdown-actions{flex-shrink:0}.breakdown-size{margin-right:12px}.btn-delete-patch{padding:4px 10px;font-size:11px;background:var(--bad);color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:700;transition:background .2s}.btn-delete-patch:hover{background:#ef4444}.export-banks-panel{width:min(800px,100%)}.export-table-container{max-height:400px;overflow-y:auto;border:1px solid var(--line);border-radius:6px;background:var(--bg)}.export-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px;text-align:left}#midiStatus,.export-col-check,.export-table td.text-center{text-align:center}.export-table th{padding:10px;position:sticky;top:0;background-color:#0f172a!important;z-index:10;box-shadow:inset 0 -1px 0 var(--line)}.export-table td{padding:10px;border-bottom:1px solid var(--line);background-color:var(--bg)}.export-col-check{width:50px}.export-col-target{width:120px}.export-header-action{display:flex;align-items:center;gap:8px;margin-top:12px;margin-bottom:8px}.freq-map-container,.inline-actions{gap:4px;display:flex}.export-select-all-label{font-weight:700;cursor:pointer;user-select:none}.export-banks-error{margin-top:8px}.export-table td.text-dim{color:var(--dim);color:var(--muted)}.export-type-tag{font-size:10px}.export-target-input{width:80px;padding:4px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:4px}.freq-map-container{position:relative;width:100%;height:400px;background:var(--bg);border:1px solid var(--line);border-radius:6px;overflow-y:auto;padding:10px;flex-direction:column}#patchNameSide,.freq-map-bar{white-space:nowrap;overflow:hidden}.freq-map-row{display:flex;align-items:center;height:24px;width:100%}.freq-label{flex:0 0 80px;text-align:right;padding-right:12px;font-size:11px;color:var(--dim);white-space:nowrap}.freq-bar-wrapper{position:relative;flex:1;height:100%;background:rgba(255,255,255,.03);border-radius:4px}.freq-map-bar{position:absolute;height:100%;top:0;background:linear-gradient(90deg,var(--accent2),var(--accent));border-radius:4px;opacity:.85;display:flex;align-items:center;padding-left:6px;font-size:10px;color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.5);transition:opacity .2s}.freq-map-bar:hover{opacity:1;z-index:10}#patchNameSide{text-align:right;text-overflow:ellipsis;max-width:75%}.project-actions{margin-top:4px}#btnExportInst,.library-actions,.piano-row,.project-secondary-actions{margin-top:6px}.project-list{max-height:160px}.midi-preview-controls{display:flex;flex-direction:column;gap:6px}.midi-seek-controls{display:flex;flex-direction:column;gap:2px}.midi-seek,.midi-volume-slider{height:12px;accent-color:var(--accent)}.midi-seek{width:100%;cursor:pointer}.midi-time-labels{display:flex;justify-content:space-between;color:var(--dim);font-size:9px}.midi-volume-row{display:flex;align-items:center;gap:6px;margin-top:2px;font-size:10px}.midi-volume-label{display:flex;align-items:center;gap:2px;color:var(--dim)}.midi-volume-value{min-width:24px;color:var(--accent);text-align:right}#midiStatus{margin-top:4px;color:var(--dim);font-size:10px}#libCount,#patchNameSide{float:right}#btnLibraryScope,.card h3.editor-subsection-heading-compact{margin:0 0 6px}.library-filter{width:100%;margin-bottom:6px;padding:4px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--text);font-size:11px}.patch-list{max-height:200px}.midi-monitor{color:var(--dim);font:11px/1.6 ui-monospace,monospace}.welcome-tip{display:flex;align-items:center;gap:8px;margin-bottom:4px;padding:8px 12px;border:1px solid rgba(56,189,248,.3);border-radius:8px;background:rgba(56,189,248,.1);color:var(--muted);font-size:12px}.welcome-tip .icon{color:var(--accent)}.welcome-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.bank-management-hint{margin:0 0 8px}#footerInfo,.bank-select-all{margin-left:auto}.grid-span-2{grid-column:span 2}.grid-span-4{grid-column:span 4}.sample-action{margin-right:8px}.zoom-level{margin-left:4px;line-height:20px}.card h3.editor-subsection-heading{margin:12px 0 6px;color:var(--muted);font-size:10px;text-transform:uppercase}.bank-select-list{max-height:300px;overflow:auto}#bankLoadingStatus{display:none;margin-top:12px;font-size:12px;font-weight:500}.bank-breakdown-modal{width:min(500px,100%)}.midi-used-patches-list{max-height:400px;overflow-y:auto}