.piano-container[data-v-a4032adb]{width:100%;overflow:hidden;background:linear-gradient(to bottom,#f5f5fa,#e8e8f2);border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:1px solid var(--border)}.piano-container.scrollable[data-v-a4032adb]{overflow-x:auto}.piano-keyboard[data-v-a4032adb]{position:relative;height:200px;background:linear-gradient(to bottom,#e0e0ea,#c8c8d8);border-radius:8px;box-shadow:inset 0 4px 16px #0000001a}.piano-key[data-v-a4032adb]{position:absolute;box-sizing:border-box;transition:all .08s ease;cursor:pointer;user-select:none;top:0;touch-action:none}.piano-key.white[data-v-a4032adb]{height:100%;background:linear-gradient(to bottom,#ffffff,#f0f0f5);border:1px solid #ccc;border-bottom:4px solid #999;border-radius:0 0 5px 5px;box-shadow:0 2px 6px #00000014}.piano-key.white[data-v-a4032adb]:hover{background:linear-gradient(to bottom,#fefefe,#ffeaa7)}.piano-key.white.active[data-v-a4032adb]{background:linear-gradient(to bottom,#fd79a8,#e84393);border-bottom-color:#d63031;transform:translateY(3px);box-shadow:0 1px 3px #0000001a,0 0 20px #fd79a84d}.piano-key.black[data-v-a4032adb]{height:60%;background:linear-gradient(to bottom,#555,#222);border:1px solid #111;border-bottom:3px solid #000;border-radius:0 0 4px 4px;box-shadow:0 4px 8px #0000004d}.piano-key.black[data-v-a4032adb]:hover{background:linear-gradient(to bottom,#666,#444)}.piano-key.black.active[data-v-a4032adb]{background:linear-gradient(to bottom,#e84393,#d63031);border-bottom-color:#c0392b;transform:translateY(2px);box-shadow:0 2px 6px #0003,0 0 20px #fd79a84d}.key-label-container[data-v-a4032adb]{position:absolute;bottom:6px;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.piano-key.white .key-name[data-v-a4032adb]{color:#555;font-size:10px;font-weight:700}.piano-key.white .key-midi[data-v-a4032adb]{color:#888;font-size:9px}.piano-key.black .key-name[data-v-a4032adb]{color:#ccc;font-size:9px;font-weight:700}.piano-key.black .key-midi[data-v-a4032adb]{color:#999;font-size:8px}.piano-key.white.active .key-name[data-v-a4032adb],.piano-key.white.active .key-midi[data-v-a4032adb],.piano-key.black.active .key-name[data-v-a4032adb],.piano-key.black.active .key-midi[data-v-a4032adb]{color:#fff}@media (max-width: 480px){.piano-container[data-v-a4032adb]{overflow-x:auto;-webkit-overflow-scrolling:touch}.piano-key.white[data-v-a4032adb]{height:100px}.piano-key.black[data-v-a4032adb]{height:60px}.key-name[data-v-a4032adb]{font-size:9px}}.piano-container[data-v-a4032adb]{background:linear-gradient(to bottom,#0b1120,#080d18);border:1px solid var(--nb-line);box-shadow:inset 0 1px #00eaff0f,0 10px 30px #00000080}.piano-keyboard[data-v-a4032adb]{background:linear-gradient(to bottom,#060a12,#0a0f1a);box-shadow:inset 0 4px 16px #0009}.piano-key.white[data-v-a4032adb]{background:linear-gradient(to bottom,#1b2438,#121a2a);border:1px solid rgba(136,146,176,.22);border-bottom:4px solid rgba(0,234,255,.35);box-shadow:0 2px 6px #00000059}.piano-key.white[data-v-a4032adb]:hover{background:linear-gradient(to bottom,#23304a,#172136)}.piano-key.white.active[data-v-a4032adb]{background:linear-gradient(to bottom,rgba(0,234,255,.75),rgba(0,180,220,.55));border-bottom-color:#00eaff;box-shadow:0 0 20px #00eaff8c}.piano-key.black[data-v-a4032adb]{background:linear-gradient(to bottom,#0a0e18,#05070d);border:1px solid rgba(0,234,255,.18);border-bottom:3px solid #000}.piano-key.black[data-v-a4032adb]:hover{background:linear-gradient(to bottom,#131a2b,#0a0f1a)}.piano-key.black.active[data-v-a4032adb]{background:linear-gradient(to bottom,rgba(0,234,255,.85),rgba(0,180,220,.7));border-bottom-color:#00eaff;box-shadow:0 0 20px #00eaff8c}.piano-key.white .key-name[data-v-a4032adb]{color:var(--nb-muted)}.piano-key.white .key-midi[data-v-a4032adb]{color:#8892b099}.piano-key.black .key-name[data-v-a4032adb]{color:#e8ecf4bf}.sound-selector[data-v-f34f4e5f]{display:flex;align-items:center;gap:10px;padding:4px 0}.sound-icon[data-v-f34f4e5f]{width:28px;height:28px;fill:var(--text-muted);flex-shrink:0;margin-bottom:4px;transition:transform .2s}.icon-item[data-v-f34f4e5f]{display:flex;flex-direction:column;align-items:center;width:56px;cursor:pointer;transition:transform .2s}.icon-item[data-v-f34f4e5f]:hover{transform:translateY(-2px)}.icon-item:hover .sound-icon[data-v-f34f4e5f]{transform:scale(1.15)}.icon-twrap[data-v-f34f4e5f]{display:contents}.icon-label[data-v-f34f4e5f]{font-size:10px;font-weight:600;line-height:1.2;color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase;white-space:nowrap}.sound-selector label[data-v-f34f4e5f]{font-size:13px;font-weight:600;color:var(--text-secondary)}.login-modal-overlay[data-v-f34f4e5f]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999}.login-modal[data-v-f34f4e5f]{background:white;border-radius:16px;padding:32px 28px;text-align:center;max-width:360px;width:90%;box-shadow:0 20px 60px #0003;animation:modalIn-f34f4e5f .3s ease}@keyframes modalIn-f34f4e5f{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.login-modal-icon[data-v-f34f4e5f]{font-size:48px;margin-bottom:12px}.login-modal h3[data-v-f34f4e5f]{margin:0 0 8px;font-size:18px;color:#2d2d3a}.login-modal p[data-v-f34f4e5f]{margin:0 0 24px;font-size:14px;color:#6b6b80}.login-modal-btns[data-v-f34f4e5f]{display:flex;gap:12px;justify-content:center}.btn-cancel[data-v-f34f4e5f],.btn-login[data-v-f34f4e5f]{padding:10px 24px;border-radius:8px;border:none;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-cancel[data-v-f34f4e5f]{background:#f0f0f5;color:#6b6b80}.btn-cancel[data-v-f34f4e5f]:hover{background:#e2e2ec}.btn-login[data-v-f34f4e5f]{background:linear-gradient(135deg,#35b8e0,#2d9dc5);color:#fff}.btn-login[data-v-f34f4e5f]:hover{box-shadow:0 4px 16px #35b8e04d;transform:translateY(-1px)}.icon-item[data-v-f34f4e5f]{position:relative}.icon-item.selected .sound-icon[data-v-f34f4e5f]{fill:var(--accent)}.icon-item.selected .icon-label[data-v-f34f4e5f]{color:var(--accent)}.icon-item.selected[data-v-f34f4e5f]:after{content:"";position:absolute;bottom:-5px;left:8px;right:8px;height:2px;background:var(--accent);border-radius:1px}.sound-selector[data-loading=true] .icon-item.selected .sound-icon[data-v-f34f4e5f]{animation:pulse-f34f4e5f 1s ease-in-out infinite}@keyframes pulse-f34f4e5f{0%,to{opacity:1}50%{opacity:.5}}@media (max-width: 480px){.sound-selector[data-v-f34f4e5f]{gap:6px}}.login-modal[data-v-f34f4e5f]{background:linear-gradient(180deg,#0c101c,#090d17);border:1px solid rgba(0,234,255,.18);border-radius:10px;box-shadow:inset 0 1px #00eaff1a,0 10px 34px #0000009e}.login-modal h3[data-v-f34f4e5f]{color:var(--nb-cyan);font-family:var(--daw-font-display);font-size:13px;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 0 10px rgba(0,234,255,.55)}.login-modal p[data-v-f34f4e5f]{color:var(--nb-muted)}.btn-cancel[data-v-f34f4e5f],.btn-login[data-v-f34f4e5f]{border-radius:6px;border:1px solid var(--nb-line);background:var(--nb-solid);color:var(--nb-muted);font-size:12px;letter-spacing:.08em}.btn-cancel[data-v-f34f4e5f]:hover{border-color:#00eaff99;color:var(--nb-cyan);background:rgba(0,234,255,.1)}.btn-login[data-v-f34f4e5f]{border-color:#00eaffb3;background:rgba(0,234,255,.2);color:var(--nb-cyan);box-shadow:var(--nb-glow-cyan-strong)}.icon-label[data-v-f34f4e5f]{letter-spacing:.12em}.icon-item.selected .sound-icon[data-v-f34f4e5f]{fill:var(--nb-cyan);filter:drop-shadow(0 0 6px rgba(0,234,255,.7))}.icon-item.selected .icon-label[data-v-f34f4e5f]{color:var(--nb-cyan);text-shadow:0 0 8px rgba(0,234,255,.5)}.icon-item.selected[data-v-f34f4e5f]:after{background:var(--nb-cyan);box-shadow:0 0 8px #00eaffcc}.lp-panel{display:flex;flex-direction:column;gap:6px}.lp-section{padding:0}.lp-section.disabled{opacity:.45;pointer-events:none}.lp-heading{display:flex;align-items:center;gap:6px;margin:14px 0 8px;font-size:12px;font-weight:600;color:var(--text-secondary, #4a4a5a);letter-spacing:.2px}.lp-heading:before{content:"";width:3px;height:12px;border-radius:2px;background:var(--accent, #35b8e0);flex-shrink:0}.lp-heading--inline{margin:14px 0 0;flex:1}.lp-heading-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 8px}.lp-pin-count-inline{margin-left:auto;font-size:11px;font-weight:400;color:#b0b0bc;font-variant-numeric:tabular-nums;letter-spacing:.2px}.lp-divider{height:1px;background:#eeeef2;margin:14px 0 0}.lp-card-header,.lp-card-title,.lp-card-icon,.lp-card-count,.lp-card-body{display:none}.lp-row{display:flex;align-items:center;gap:10px}.lp-setting-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px;transition:opacity .2s ease}.lp-setting-grid.disabled{opacity:.45;pointer-events:none}.lp-setting{display:flex;flex-direction:column;gap:5px;min-width:0}.lp-setting-label{display:flex;align-items:baseline;justify-content:space-between;gap:6px;padding:0 2px}.lp-setting-name{font-size:11px;font-weight:600;color:#3a3a4a;letter-spacing:.3px}.lp-setting-hint{font-size:10px;color:#b0b0bc;font-weight:400;letter-spacing:.2px}.lp-color-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:2px 0}.lp-color-chip{position:relative;width:30px;height:30px;border-radius:6px;border:1.5px solid rgba(0,0,0,.08);cursor:pointer;box-shadow:inset 0 1px #ffffff38;transition:transform .15s ease,border-color .15s ease}.lp-color-chip:hover{transform:scale(1.08);border-color:#0000002e}.lp-color-chip:active{transform:scale(.95)}.lp-chip-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;background:none}.lp-chip-num{position:absolute;bottom:-4px;right:-4px;width:14px;height:14px;background:#2d2d3a;color:#fff;border-radius:50%;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;border:1.5px solid #fff;pointer-events:none;z-index:2}.lp-chip-del{position:absolute;top:-5px;right:-5px;width:15px;height:15px;border-radius:50%;background:#e17055;color:#fff;border:1.5px solid #fff;font-size:11px;line-height:1;cursor:pointer;display:none;align-items:center;justify-content:center;z-index:3;padding:0}.lp-color-chip:hover .lp-chip-del{display:flex}.lp-add-chip{width:30px;height:30px;border-radius:6px;border:1.5px dashed #d5d5e0;background:transparent;color:#b0b0bc;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;padding:0}.lp-add-chip:hover{border-color:#35b8e0;color:#35b8e0;border-style:solid}.lp-save-preset{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;height:30px;border-radius:6px;border:1.5px solid #d5d5e0;background:transparent;color:#888898;font-size:12px;cursor:pointer;margin-left:auto;white-space:nowrap;transition:border-color .15s ease,color .15s ease,background .15s ease;font-family:inherit}.lp-save-preset:hover{border-color:#35b8e0;color:#35b8e0;background:#f0f7fe}.lp-del-preset{width:18px;height:18px;border:none;border-radius:50%;background:rgba(200,50,50,.15);color:#c33;font-size:12px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;opacity:0;transition:opacity .15s;flex-shrink:0}.lp-custom-select-opt:hover .lp-del-preset{opacity:1}.lp-duration{display:flex;align-items:center;gap:4px;height:28px;padding:0 8px;background:#fff;border:1px solid #e2e2ec;border-radius:6px;transition:border-color .15s}.lp-duration:focus-within{border-color:#35b8e0}.lp-duration input{flex:1;width:100%;min-width:0;border:none;background:none;font-size:12px;color:#1a1a2a;font-weight:500;font-variant-numeric:tabular-nums;outline:none;padding:0;-moz-appearance:textfield}.lp-duration input::-webkit-outer-spin-button,.lp-duration input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.lp-duration-unit{font-size:10px;color:#b0b0bc;font-weight:500;flex-shrink:0;letter-spacing:.3px}.lp-custom-select{position:relative;min-width:0}.lp-custom-select-trigger{display:flex;align-items:center;gap:6px;height:28px;padding:0 8px;border-radius:6px;border:1px solid #e2e2ec;background:#fff;cursor:pointer;font-size:12px;color:#1a1a2a;transition:border-color .15s;user-select:none;width:100%;box-sizing:border-box}.lp-custom-select-trigger:hover{border-color:#c8c8d0}.lp-custom-select-text{white-space:nowrap;font-weight:500;color:#1a1a2a;flex-shrink:0}.lp-custom-select-bar{flex:1;height:8px;min-width:24px;border-radius:4px;box-shadow:inset 0 0 0 1px #0000000f}.lp-custom-select-bar--empty{background:repeating-linear-gradient(45deg,#f0f0f5,#f0f0f5 4px,#fff 4px,#fff 8px)}.lp-custom-select-arrow{color:#b0b0bc;flex-shrink:0;transition:transform .2s}.lp-custom-select-arrow.open{transform:rotate(180deg)}.lp-custom-select-drop{background:#fff;border-radius:8px;border:1px solid #e2e2ec;box-shadow:0 8px 24px #0000001f;max-height:280px;overflow-y:auto;padding:4px}.lp-custom-select-opt{display:flex;align-items:center;gap:8px;padding:7px 10px;cursor:pointer;font-size:12px;color:#1a1a2a;border-radius:5px;transition:background .1s}.lp-custom-select-opt:hover{background:#f0f5ff}.lp-custom-select-opt-text{font-weight:500;flex-shrink:0}.lp-custom-select-opt-sub{font-size:10px;color:#b0b0bc;margin-left:4px}.lp-custom-select-opt .lp-custom-select-bar{height:8px;flex:1;min-width:30px}.lp-toggle{display:flex;align-items:center;cursor:pointer;flex-shrink:0}.lp-toggle-track{width:34px;height:20px;border-radius:10px;background:#d8d8e0;position:relative;transition:background .22s ease}.lp-toggle-track.on{background:var(--accent, #35b8e0)}.lp-toggle-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000026;transition:transform .22s cubic-bezier(.4,0,.2,1)}.lp-toggle-track.on .lp-toggle-knob{transform:translate(14px)}.lp-segment{display:flex;align-items:center;gap:0;background:#f3f3f7;border:1px solid #e2e2ec;border-radius:6px;padding:2px;height:28px}.lp-segment-item{flex:1;min-width:0;height:100%;padding:0 8px;background:transparent;border:none;border-radius:4px;color:#6a6a7a;font-size:11.5px;font-weight:500;cursor:pointer;transition:all .18s ease;font-family:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.2px}.lp-segment-item:hover{color:#1a1a2a}.lp-segment-item.active{background:#fff;color:#1a1a2a;font-weight:600}.lp-segment--fps .lp-segment-item{font-variant-numeric:tabular-nums;padding:0 4px}.lp-pin-count,.lp-fps-select{display:none}.lp-panel{background:linear-gradient(180deg,#0c101c 0%,#090d17 100%);border:1px solid rgba(0,234,255,.18);border-radius:10px;box-shadow:inset 0 1px #00eaff1a,0 10px 34px #0000009e;color:var(--nb-ink)}.lp-card-header,.lp-card-body{background:transparent;border-color:var(--nb-line)}.lp-card-title,.lp-heading{color:var(--nb-cyan);font-family:var(--daw-font-display);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;text-shadow:0 0 10px rgba(0,234,255,.45)}.lp-card-count,.lp-duration,.lp-pin-count{color:var(--nb-muted);font-family:var(--daw-font-display);letter-spacing:.08em}.lp-divider{background:var(--nb-line)}.lp-custom-select-trigger,.lp-custom-select-drop,.lp-custom-select-bar{background:rgba(10,14,24,.92);border:1px solid var(--nb-line);color:var(--nb-ink);border-radius:6px}.lp-custom-select-opt:hover{background:rgba(0,234,255,.12);color:var(--nb-cyan)}.lp-custom-select-text,.lp-custom-select-opt-text{color:inherit}.lp-chip-input,.lp-color-chip,.lp-add-chip{border:1px solid var(--nb-line);background:rgba(10,14,24,.6);border-radius:6px}.midi-connector{display:flex;align-items:center;justify-content:space-between;padding:0 0 12px;background:none;border:none;border-bottom:1px solid var(--border);box-shadow:none;gap:8px;width:100%;flex-wrap:wrap;position:relative;overflow:hidden}.midi-left{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand-icon{color:var(--text-primary);flex-shrink:0}@keyframes block-shift{0%,to{fill:var(--text-primary)}10%{fill:#ff4757}20%{fill:#ff6b81}30%{fill:#ffa502}40%{fill:#ffdd59}50%{fill:#2ed573}60%{fill:#1e90ff}70%{fill:#5352ed}80%{fill:#a855f7}90%{fill:#ff6eb4}}.brand-name{font-size:15px;font-weight:700;letter-spacing:.5px;display:inline-flex}.brand-char{animation:neon-glow 3s ease-in-out infinite}@keyframes neon-glow{0%,to{color:#ff4757}25%{color:#f59e0b}50%{color:#1e90ff}75%{color:#a855f7}}.changelog-btn{padding:2px 8px;border-radius:5px;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-muted);font-size:10px;cursor:pointer;transition:all .2s}.changelog-btn:hover{color:var(--accent);border-color:var(--accent)}.midi-icon-bar{display:flex;align-items:center;gap:11px;line-height:1;flex-shrink:0;position:relative}.device-name{font-size:13px;font-weight:600;color:#999;letter-spacing:.3px;display:flex;align-items:center;height:17px}.loaded-song-name{font-size:13px;font-weight:600;color:#999;letter-spacing:.3px;display:flex;align-items:center;height:17px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 8px 0 4px;border-right:1px solid var(--border, #e2e2ec)}.midi-indicators{display:flex;flex-direction:column;justify-content:center;gap:2px;height:14px}.midi-dot{width:6px;height:6px;border-radius:1px;background:#ccc;transition:background .15s,box-shadow .15s}.midi-dot.active{background:#f59e0b;box-shadow:0 0 4px #f59e0b99}.icon-btn{position:relative;width:24px;height:32px;border:none;background:none;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.icon-btn:hover{color:var(--accent)}.icon-btn--gear{margin-left:-3px}.status-dot{position:absolute;top:1px;right:1px;width:7px;height:7px;border-radius:50%;background:#ccc;border:1px solid #fff;transition:all .3s}.status-dot.connected{background:var(--success);box-shadow:0 0 6px #34d39980}.status-dot.connecting{background:#f59e0b;animation:dot-pulse .8s infinite}@keyframes dot-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.5}}.icon-btn--light-on{animation:sun-spin 3s linear infinite}.icon-btn--light-on .sun-rays{animation:sun-glow 4s ease-in-out infinite}@keyframes sun-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.icon-btn--light-on .sun-center{fill:#f44;animation:sun-glow 4s ease-in-out infinite}@keyframes sun-glow{0%,to{fill:#f33;color:#f33}20%{fill:#f90;color:#f90}40%{fill:#fd0;color:#fd0}60%{fill:#3c3;color:#3c3}80%{fill:#39f;color:#39f}}.icon-btn--light-on:hover .sun-center,.icon-btn--light-on:hover .sun-rays{animation-duration:1.2s}.icon-btn--light-off{color:var(--text-secondary)}.icon-btn--lp-on{color:#35b8e0}.icon-btn--light-off:hover{color:var(--accent, #35b8e0)}.icon-btn--light-off:hover .sun-center{fill:var(--accent, #35b8e0);transition:fill .3s}.connection-toggle-container{display:flex;align-items:center;gap:10px}.toggle-label{font-size:13px;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.toggle-switch{position:relative;width:110px;height:28px;background:#e8e8f0;border-radius:14px;border:1px solid #d0d0e0;box-shadow:inset 0 1px 3px #0000001a;cursor:pointer;transition:all var(--transition)}.toggle-switch:hover{border-color:var(--accent)}.toggle-switch.active{background:linear-gradient(135deg,var(--accent),#2d9dc5);border-color:var(--accent);box-shadow:0 0 14px var(--accent-glow)}.toggle-switch:disabled{opacity:.5;cursor:not-allowed}.toggle-knob{position:absolute;left:3px;top:3px;width:20px;height:20px;background:linear-gradient(135deg,#fff,#f0f0f5);border-radius:50%;box-shadow:0 2px 6px #00000026;transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:2}.toggle-switch.active .toggle-knob{transform:translate(82px);box-shadow:0 2px 8px #0003}.toggle-status{position:absolute;width:100%;text-align:center;font-size:10px;font-weight:600;color:var(--text-secondary);transition:color var(--transition);z-index:1;line-height:28px}.toggle-switch.active .toggle-status{color:#fff}.connection-status-text{margin-left:10px;font-size:13px;color:var(--text-secondary)}.no-device-alert{display:flex;align-items:center;gap:8px;margin-top:8px;padding:10px 14px;background:#fff8e6;border-radius:var(--radius-sm);border:1px solid #ffd700;font-size:13px;color:#e67e22}.alert-icon{font-size:16px}.device-control-area{display:flex;flex-direction:column;gap:12px;padding:14px;background:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--border)}.device-selection-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.device-group{display:flex;align-items:center;gap:8px;flex:1;min-width:200px}.device-group label{margin-right:5px;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.midi-channel-selector{padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);width:65px;font-size:13px;transition:all var(--transition)}.channel-label{font-size:11px;color:var(--text-muted);margin-right:6px;font-weight:600;text-transform:uppercase}.no-devices{font-size:13px;color:var(--text-muted);padding:0 8px}.error-message{color:var(--danger);font-size:13px;padding:10px 14px;background:#fff0f0;border-radius:var(--radius-sm);border:1px solid #ffd0d0}.last-note-info{margin-top:8px;padding:10px 14px;background:rgba(255,255,255,.6);border-radius:10px;font-size:13px;border:1px solid rgba(180,190,220,.25);backdrop-filter:blur(4px);color:#4a4e63}.knob-container{display:flex;flex-direction:column;align-items:center;margin-left:12px}.knob-label{font-size:11px;color:var(--text-muted);margin-top:5px;font-weight:600;display:flex;align-items:center}.shift-value{margin-left:5px;font-weight:700;color:var(--accent);min-width:30px;text-align:center}.knob{position:relative;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#ffffff,#f0f0f5);border:2px solid #d0d0e0;box-shadow:0 3px 10px #00000014,inset 0 1px 2px #ffffffe6;cursor:ns-resize;display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.knob-mark{position:absolute;top:4px;left:50%;width:5px;height:5px;margin-left:-2.5px;background:var(--accent);border-radius:50%;transform-origin:center 16px;box-shadow:0 0 5px var(--accent-glow),0 0 10px var(--accent-glow);z-index:2}.toggle-container{display:flex;align-items:center;margin-left:12px}.toggle-container .toggle-label{font-size:11px;color:var(--text-muted);margin-right:6px;font-weight:600}.toggle-container .toggle-switch.small{width:36px;height:18px;border-radius:9px}.toggle-container .toggle-switch.small .toggle-knob{width:14px;height:14px;top:1px;left:1px}.toggle-container .toggle-switch.small.active .toggle-knob{transform:translate(18px)}.mapping-status{margin-left:6px;font-size:11px;color:var(--accent);font-weight:600}.device-status-indicator{margin-left:10px;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;background-color:var(--success);color:#fff}.device-status-indicator.disconnected{background-color:var(--danger)}.shift-selector-container{display:flex;align-items:center;margin-left:8px}.shift-selector-container label{margin-right:5px;font-size:11px;color:var(--text-muted);font-weight:600}.semitone-shift-selector{padding:5px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);font-size:12px;min-width:60px;transition:all var(--transition)}.semitone-shift-selector:hover{border-color:var(--border-light)}.semitone-shift-selector:focus{border-color:var(--accent);outline:none}.mc-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.3);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:10000;animation:mc-fade-in .15s ease}@keyframes mc-fade-in{0%{opacity:0}to{opacity:1}}.mc-modal-box{background:linear-gradient(145deg,#ffffff,#fafafe);border-radius:18px;border:1px solid var(--border, #e2e2ec);width:min(92vw,480px);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 40px #00000026;position:relative;animation:mc-modal-in .3s cubic-bezier(.34,1.56,.64,1)}@keyframes mc-modal-in{0%{opacity:0;transform:scale(.92) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.mc-modal-box--light{width:min(92vw,640px)!important;height:min(82vh,540px);max-height:82vh;border-radius:18px;overflow:hidden;display:flex;flex-direction:column}.mc-modal-box--midi,.mc-modal-box--song{width:min(92vw,560px)!important;height:min(82vh,480px);max-height:82vh;border-radius:18px;overflow:hidden;display:flex;flex-direction:column}.mc-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 22px 14px;background:transparent;flex-shrink:0;position:relative}.mc-modal-header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,#b450dc 0%,#6c5ce7 50%,#35b8e0 100%)}.mc-modal-title{display:flex;align-items:center;gap:9px}.mc-modal-icon{display:none}.mc-modal-header h2{margin:0;font-size:14px;font-weight:600;color:#1a1a2a;letter-spacing:.2px}.mc-modal-close{width:28px;height:28px;border:none;background:rgba(0,0,0,.04);color:#888;font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease;padding:0;backdrop-filter:blur(4px)}.mc-modal-close:hover{color:#fff;background:#e74c3c;transform:rotate(90deg) scale(1.08);box-shadow:0 4px 12px #e74c3c59}.mc-modal-body{padding:12px 22px 20px;overflow-y:auto;max-height:65vh;background:transparent}.lp-setting-list{display:flex;flex-direction:column;gap:0;margin-bottom:4px}.lp-setting-list+.lp-heading{margin-top:18px}.lp-setting-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid #f3f3f7}.lp-setting-row:last-child{border-bottom:none}.lp-setting-row-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.lp-setting-row-name{font-size:12.5px;font-weight:500;color:#1a1a2a;letter-spacing:.1px}.lp-setting-row-hint{font-size:11px;color:#8a8a9c;line-height:1.3}.lp-setting-row-empty{font-size:11px;color:#b0b0bc;font-style:italic}.mc-status-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:10px;font-size:11.5px;font-weight:600;letter-spacing:.2px;background:#f3f3f7;color:#8a8a9c;white-space:nowrap;flex-shrink:0}.mc-status-pill.on{background:#e8f7f0;color:#00a381}.mc-status-pill.off{background:#f3f3f7;color:#8a8a9c}.mc-status-pill.busy{background:#fff4e0;color:#d68a00}.mc-status-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.mc-status-pill.busy .mc-status-dot{animation:mc-status-blink 1s ease-in-out infinite}@keyframes mc-status-blink{0%,to{opacity:1}50%{opacity:.3}}.mc-btn{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 14px;border-radius:6px;border:1px solid transparent;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s ease;white-space:nowrap;flex-shrink:0;letter-spacing:.2px}.mc-btn--primary{background:var(--accent, #35b8e0);color:#fff;border-color:var(--accent, #35b8e0)}.mc-btn--primary:hover:not(:disabled){filter:brightness(1.05)}.mc-btn--primary:disabled{opacity:.5;cursor:not-allowed}.mc-alert{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 12px;background:#fff8e6;border:1px solid #ffe2a8;border-radius:6px;font-size:12px;color:#b4690e;line-height:1.4}.mc-alert--error{background:#fff0f0;border-color:#ffd0d0;color:#c4392b}.mc-alert svg{flex-shrink:0}.mc-select{height:28px;padding:0 24px 0 10px;border-radius:6px;border:1px solid #e2e2ec;background:#fff;color:#1a1a2a;font-size:12px;font-family:inherit;font-weight:500;cursor:pointer;transition:border-color .15s;min-width:120px;max-width:200px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3e%3cpath d='M3 5l3 3 3-3' stroke='%23b0b0bc' fill='none' stroke-width='1.6' stroke-linecap='round'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 8px center;background-size:10px 10px}.mc-select:hover{border-color:#c8c8d0}.mc-select:focus{border-color:var(--accent, #35b8e0);outline:none}.mc-select:disabled{opacity:.5;cursor:not-allowed}.mc-select--narrow{min-width:80px;max-width:100px;text-align:center;font-variant-numeric:tabular-nums}.mc-light-colors{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #eeeef2}.mc-color-group{display:flex;align-items:center;gap:8px;width:100%}.mc-color-label{font-size:12px;font-weight:600;color:var(--text-secondary);white-space:nowrap;min-width:62px}.mc-light-layout{display:flex;flex:1;min-height:0}.mc-light-nav{width:170px;flex-shrink:0;background:rgba(10,14,24,.55);border-right:1px solid var(--nb-line);padding:10px 0 0;display:flex;flex-direction:column;overflow-y:auto}.mc-light-nav-item{display:flex;align-items:center;gap:8px;padding:7px 22px;border:none;background:transparent;color:var(--nb-muted);font-size:12.5px;font-weight:500;cursor:pointer;text-align:left;transition:background .12s ease,color .12s ease;position:relative;font-family:inherit;border-left:3px solid transparent}.mc-light-nav-item:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.mc-light-nav-item.active{background:rgba(0,234,255,.14);color:var(--nb-cyan);font-weight:600;border-left:3px solid #00eaff;box-shadow:inset 0 0 18px #00eaff14}.mc-light-nav-item.active:before{display:none}.mc-light-nav-item svg{flex-shrink:0;opacity:.85}.mc-light-nav-item.active svg{opacity:1;color:#00eaff}.mc-light-nav-footer{margin-top:auto;padding:10px 16px 12px}.mc-light-nav-divider{height:1px;background:var(--nb-line);margin:4px 0 10px}.mc-light-nav-summary{display:flex;flex-direction:column;gap:7px}.mc-light-nav-summary-row{display:flex;align-items:center;gap:8px}.mc-light-nav-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0;box-shadow:0 0 0 1px #0000000f}.mc-light-nav-dot.on{background:#00a381;box-shadow:0 0 0 1px #0000000f,0 0 6px #00a38173}.mc-light-nav-dot.busy{background:#f59e0b;box-shadow:0 0 0 1px #0000000f,0 0 6px #f59e0b66;animation:mc-nav-dot-pulse 1s ease-in-out infinite}@keyframes mc-nav-dot-pulse{0%,to{opacity:1}50%{opacity:.4}}.mc-light-nav-summary-label{font-size:11px;color:#8a8a9c;font-weight:500;letter-spacing:.2px}.mc-light-main{flex:1;min-width:0;display:flex;flex-direction:column;background:#ffffff}.mc-light-main-inner{flex:1;overflow-y:auto;padding:22px 26px 18px;min-height:0}.mc-light-section{display:flex;flex-direction:column;gap:22px}.mc-light-section--lp{gap:14px}.mc-light-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--nb-line)}.mc-light-section-header h3{margin:0 0 4px;font-size:14px;font-weight:600;color:#1a1a2a;letter-spacing:.2px}.mc-light-section-header p{margin:0;font-size:12px;color:#8a8a9c;line-height:1.5}.mc-light-group{display:flex;flex-direction:column;gap:10px}.mc-light-group-meta{display:flex;align-items:center;gap:10px;padding-left:2px}.mc-light-group-name{font-size:12px;font-weight:600;color:#3a3a4a;letter-spacing:.3px}.mc-light-group-preview{width:14px;height:14px;border-radius:4px;box-shadow:0 0 0 1px #00000014,0 1px 4px #0000001f}.mc-swatch-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:4px 0 2px}.mc-swatch{width:26px;height:26px;border-radius:6px;border:1.5px solid rgba(0,0,0,.08);cursor:pointer;position:relative;box-shadow:0 1px 2px #00000014,inset 0 1px #ffffff2e;transition:all .18s cubic-bezier(.4,0,.2,1);padding:0;display:flex;align-items:center;justify-content:center;color:#fff}.mc-swatch:hover{transform:translateY(-1px) scale(1.08);box-shadow:0 4px 12px #0000002e;z-index:1}.mc-swatch.selected{border-color:transparent;box-shadow:0 0 0 2px #fff,0 0 0 3.5px #35b8e0;transform:scale(1.05)}.mc-swatch-check{filter:drop-shadow(0 0 2px rgba(0,0,0,.5))}.mc-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 22px;border-top:1px solid var(--nb-line);background:rgba(10,14,24,.55);flex-shrink:0}.mc-confirm-btn{padding:7px 24px;border-radius:6px;border:none;background:var(--accent);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.mc-confirm-btn:hover{opacity:.85}.mc-footer-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:7px;border:1px solid transparent;font-size:12.5px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s ease;letter-spacing:.2px}.mc-footer-btn--ghost{margin-right:8px;background:transparent;color:#6a6a7a;border-color:transparent}.mc-footer-btn--ghost:hover{color:#1a1a2a;background:#eaeaef}.mc-footer-btn--save-server{margin-right:8px;background:#f4f5f8;color:#4a4a5a;border-color:#d8d8e4;display:inline-flex;align-items:center;gap:6px}.mc-footer-btn--save-server:hover{background:#eaebf0;border-color:#c4c4d4;color:#2a2a3a}.mc-footer-btn--primary{background:var(--accent, #35b8e0);color:#fff}.mc-footer-btn--primary:hover{filter:brightness(1.05)}.mc-footer-btn--primary:active{filter:brightness(.95)}.mc-modal-hint{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 20px;color:var(--text-muted);font-size:14px;gap:8px}.mc-modal-hint-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:#f5f5f9;color:#b0b0bc;margin-bottom:4px}.mc-modal-hint p{margin:0;font-size:13px;font-weight:500;color:#4a4a5a}.mc-modal-hint-sub{font-size:12px;color:#9a9aac;font-weight:400}.mc-modal-box--tutorial{width:min(92vw,800px)}.tutorial-body{padding:0;background:#000;border-radius:0 0 14px 14px;overflow:hidden;min-height:200px;display:flex;align-items:center;justify-content:center}.tutorial-video-wrap{width:100%;line-height:0}.tutorial-video{width:100%;max-height:80vh;display:block}@media (max-width: 480px){.connection-toggle-container{flex-wrap:wrap;gap:8px}.toggle-switch{min-width:auto;padding:6px 12px}.toggle-label{font-size:12px}.device-control-area{flex-direction:column;gap:8px}.device-selection-row{flex-direction:column;gap:6px}.device-group{width:100%}.device-group label{font-size:11px;min-width:40px}.knob{width:32px;height:32px}.knob-control{gap:4px;margin-right:0}.knob-label,.knob-value{font-size:10px}.shift-selector-container{margin-left:0}}.mc-brightness-val{font-size:11px;font-weight:700;color:var(--accent, #35b8e0);min-width:32px;text-align:right}.mc-brightness-slider{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;background:#d8dae6;outline:none;cursor:pointer;margin:4px 0}.mc-brightness-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:linear-gradient(135deg,#35b8e0,#b450dc);border:2px solid #fff;box-shadow:0 1px 4px #0003;cursor:pointer;transition:transform .12s}.mc-brightness-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.mc-brightness-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:linear-gradient(135deg,#35b8e0,#b450dc);border:2px solid #fff;box-shadow:0 1px 4px #0003;cursor:pointer}.mc-light-msg{font-size:12px;font-weight:600;color:var(--accent, #35b8e0);margin:0 auto 0 8px;flex-shrink:0}.mc-select{background-color:#0a0e18cc;border-color:var(--nb-line);color:var(--nb-ink)}.mc-select:hover{border-color:#00eaff66}.no-device-alert{background:rgba(255,209,102,.08);border-color:#ffd16659;color:#ffd166}.mc-alert{background:rgba(255,209,102,.08);border-color:#ffd1664d;color:#ffd166}.mc-alert--error{background:rgba(255,77,109,.1);border-color:#ff4d6d66;color:var(--nb-danger)}.last-note-info{background:rgba(14,18,32,.7);border:1px solid var(--nb-line)}.mc-status-pill,.mc-status-pill.off{background:rgba(10,14,24,.7);color:var(--nb-muted);border:1px solid var(--nb-line)}.mc-status-pill.on{background:rgba(0,255,163,.12);color:var(--success);border:1px solid rgba(0,255,163,.35)}.mc-status-pill.busy{background:rgba(255,209,102,.12);color:#ffd166;border:1px solid rgba(255,209,102,.35)}.mc-light-section-header h3{color:var(--nb-ink);font-family:var(--daw-font-display);font-size:12px;letter-spacing:.12em;text-transform:uppercase}.mc-light-section-header p{color:var(--nb-muted)}.mc-light-main{background:transparent}.mc-light-nav-item:hover{background:rgba(0,234,255,.1);color:var(--nb-cyan)}.mc-light-section-header{border-bottom-color:var(--nb-line)}.mc-light-nav-summary-label{color:var(--nb-muted)}.mc-modal-body{background:transparent;color:var(--nb-ink)}.mc-modal-footer{background:transparent;border-top:1px solid var(--nb-line)}.mc-modal-hint{background:rgba(0,234,255,.06);border:1px solid rgba(0,234,255,.22);color:var(--nb-muted)}.connection-toggle-container,.device-group,.device-control-area{background:rgba(10,14,24,.5);border:1px solid var(--nb-line);border-radius:6px}.connection-status-text,.device-name,.channel-label,.knob-label{color:var(--nb-muted);letter-spacing:.1em;text-transform:uppercase;font-size:10px}.error-message{color:var(--nb-danger)}.device-status-indicator[data-v-ffda346f]{margin-left:10px;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;background-color:#00b894;color:#fff}.device-status-indicator.disconnected[data-v-ffda346f]{background-color:#e17055}.midi-device-selector option[data-v-ffda346f]:disabled{color:#999}.shift-selector-container[data-v-ffda346f]{display:flex;align-items:center;margin-left:8px}.shift-selector-container label[data-v-ffda346f]{margin-right:5px;font-size:11px;color:#9e9eb0;font-weight:600;white-space:nowrap}.semitone-shift-selector[data-v-ffda346f]{padding:5px 8px;border-radius:8px;border:1px solid var(--nb-line);background:rgba(14,18,32,.85);color:var(--nb-ink);font-size:12px;min-width:60px;transition:all .25s}.semitone-shift-selector[data-v-ffda346f]:hover{border-color:#d0d0e0}.semitone-shift-selector[data-v-ffda346f]:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #35b8e01a}.device-group[data-v-ffda346f]{display:flex;align-items:center;margin-right:15px;gap:8px}.device-group label[data-v-ffda346f]{margin-right:5px;font-size:11px;color:#9e9eb0;font-weight:600;white-space:nowrap}.midi-device-selector[data-v-ffda346f]{padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);min-width:160px;flex:1;font-size:13px;transition:all var(--transition)}.midi-device-selector[data-v-ffda346f]:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #35b8e01a}.midi-device-selector[data-v-ffda346f]:hover{border-color:var(--border-light)}.midi-device-selector option[data-v-ffda346f]:disabled{color:var(--text-muted)}.midi-channel-selector[data-v-ffda346f]{padding:8px 10px;border-radius:8px;border:1px solid var(--nb-line);background:rgba(14,18,32,.85);color:var(--nb-ink);font-size:12px;min-width:50px;margin-right:10px;transition:all .25s}.mc-song-btn-wrap[data-v-ffda346f]{display:flex}.mc-song-btn[data-v-ffda346f]{background:none;border:none;border-radius:6px;cursor:pointer;padding:4px;display:flex;align-items:center;color:var(--nb-muted);transition:all .2s}.mc-song-btn[data-v-ffda346f]:hover{border-color:#35b8e0;color:#35b8e0}.mc-song-btn.disabled[data-v-ffda346f]{opacity:.35;cursor:not-allowed;pointer-events:auto}.mc-modal-box--song[data-v-ffda346f]{width:min(92vw,728px)!important;height:min(82vh,480px);max-height:82vh;border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.mc-song-search[data-v-ffda346f]{display:flex;align-items:center;gap:8px;margin:14px 22px 12px;padding:0 12px;height:36px;background:rgba(255,255,255,.6);border:1px solid rgba(180,190,220,.25);border-radius:10px;transition:all .2s;flex-shrink:0;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.mc-song-search[data-v-ffda346f]:focus-within{background:rgba(255,255,255,.9);border-color:var(--accent, #35b8e0);box-shadow:0 0 0 3px #35b8e01f}.mc-song-search-icon[data-v-ffda346f]{flex-shrink:0;color:#9ca3af}.mc-song-search-input[data-v-ffda346f]{flex:1;min-width:0;border:none;background:none;font-size:13px;color:#1a1a2a;font-family:inherit;outline:none;padding:0}.mc-song-search-input[data-v-ffda346f]::placeholder{color:#b0b0bc}.mc-song-search-clear[data-v-ffda346f]{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:rgba(0,0,0,.06);color:#8a8a9c;border-radius:50%;cursor:pointer;padding:0;flex-shrink:0;transition:all .15s}.mc-song-search-clear[data-v-ffda346f]:hover{background:rgba(0,0,0,.1);color:#4a4a5a;transform:rotate(90deg)}.mc-song-modal-body[data-v-ffda346f]{display:flex;gap:0;overflow:hidden;flex:1;min-height:0;padding:4px 22px 14px}.mc-song-list[data-v-ffda346f]{flex:1;padding:0 4px;min-width:0;display:flex;flex-direction:column}.mc-song-list-divider[data-v-ffda346f]{display:none}.mc-song-list-header[data-v-ffda346f]{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:10px 10px 8px;flex-shrink:0;color:#888;border-bottom:1px dashed rgba(180,190,220,.45);margin-bottom:4px}.mc-song-list-title[data-v-ffda346f]{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:#4a4e63;letter-spacing:.4px}.mc-song-list-title svg[data-v-ffda346f]{color:#b0b0bc}.mc-song-list-icon[data-v-ffda346f]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;color:#fff;flex-shrink:0}.mc-song-list-icon--single[data-v-ffda346f],.mc-song-list-icon--multi[data-v-ffda346f]{background:rgba(10,14,24,.8);border:1px solid var(--nb-line)}.mc-song-count[data-v-ffda346f]{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:18px;padding:0 6px;font-size:10px;font-weight:600;color:#6b7088;background:rgba(180,190,220,.18);border-radius:9px;font-variant-numeric:tabular-nums}.mc-song-items[data-v-ffda346f]{overflow-y:auto;flex:1;padding:4px 0}.mc-song-item[data-v-ffda346f]{display:flex;align-items:center;gap:8px;padding:9px 10px 9px 14px;margin:4px 2px;cursor:pointer;font-size:12.5px;color:#4a4a5a;border-radius:6px;transition:all .15s;position:relative;user-select:none;background:rgba(180,190,220,.06)}.mc-song-item[data-v-ffda346f]:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:0;border-radius:2px;background:linear-gradient(180deg,#35b8e0,#b450dc);transition:height .18s ease}.mc-song-item[data-v-ffda346f]:hover:before,.mc-song-item.active[data-v-ffda346f]:before{height:60%}.mc-song-item[data-v-ffda346f]:hover{background:rgba(255,255,255,.85);color:#1a1a2a}.mc-song-item.active[data-v-ffda346f]{background:linear-gradient(135deg,rgba(53,184,224,.14),rgba(180,80,220,.14));color:#1a1a2a;font-weight:500;box-shadow:inset 0 0 0 1px #35b8e040}.mc-song-item--multi.active[data-v-ffda346f]{background:linear-gradient(135deg,rgba(53,184,224,.12),rgba(180,80,220,.12))}.mc-song-name[data-v-ffda346f]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.1px}.mc-song-bpm[data-v-ffda346f]{display:inline-flex;align-items:baseline;gap:2px;padding:2px 8px;font-size:11px;font-weight:600;color:#6b7088;background:rgba(180,190,220,.18);border-radius:6px;font-variant-numeric:tabular-nums;flex-shrink:0}.mc-song-bpm small[data-v-ffda346f]{font-size:9px;font-weight:500;color:#b0b0bc;letter-spacing:.2px}.mc-song-item--multi.active .mc-song-bpm[data-v-ffda346f]{background:linear-gradient(90deg,#d8ebf7 0%,#ead4f0 100%);color:#4a4a6a}.mc-song-item--multi.active .mc-song-bpm small[data-v-ffda346f]{color:#8a8a9c}.mc-song-check[data-v-ffda346f]{flex-shrink:0;color:inherit;margin-left:2px;opacity:0;transform:scale(.5);transition:opacity .18s,transform .18s}.mc-song-item.active .mc-song-check[data-v-ffda346f]{opacity:1;transform:scale(1)}.mc-song-empty[data-v-ffda346f]{font-size:12px;color:#9ca3af;padding:24px 8px;text-align:center;font-style:italic}.midi-device-selector{padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);min-width:160px;flex:1;font-size:13px;transition:all var(--transition)}.midi-device-selector:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #35b8e01a}.midi-device-selector option:disabled{color:var(--text-muted)}.midi-file-selector[data-v-f2c0fce3]{display:flex;align-items:center;gap:10px}.file-input-hidden[data-v-f2c0fce3]{position:absolute;width:.1px;height:.1px;opacity:0;overflow:hidden;z-index:-1}.file-upload-btn[data-v-f2c0fce3]{display:inline-flex;flex-direction:column;align-items:center;padding:4px 10px;background:none;color:var(--accent);border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;white-space:nowrap;transition:all .2s}.file-upload-btn[data-v-f2c0fce3]:hover{transform:translateY(-1px)}.upload-icon[data-v-f2c0fce3]{width:28px;height:28px;margin-bottom:4px}.upload-label[data-v-f2c0fce3]{font-size:10px;line-height:1.2;font-weight:600;color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase}.midi-device-selector[data-v-f2c0fce3]{padding:4px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);font-size:12px;cursor:pointer;min-width:120px;transition:all var(--transition);margin-left:auto;height:28px}.midi-device-selector[data-v-f2c0fce3]:hover{border-color:var(--border-light)}.midi-device-selector[data-v-f2c0fce3]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #35b8e026}.midi-info-row[data-v-f2c0fce3]{display:flex;align-items:center;gap:2px;white-space:nowrap;margin-left:6px}.midi-info-row .info-label[data-v-f2c0fce3]{font-size:11px;font-weight:600;color:var(--accent)}.midi-info-row .info-value[data-v-f2c0fce3]{font-size:11px;font-weight:600;color:var(--text-primary);margin-left:2px}.midi-info-row .info-sep[data-v-f2c0fce3]{color:var(--border-light);margin:0 8px;font-size:11px}.loading-text[data-v-f2c0fce3]{margin-left:10px;font-size:12px;color:var(--text-secondary)}.file-upload-btn[data-v-f2c0fce3]{background:rgba(14,18,32,.7);border:1px solid var(--nb-line);border-radius:6px;color:var(--nb-muted);transition:all .18s var(--nb-ease)}.file-upload-btn[data-v-f2c0fce3]:hover{border-color:#00eaff99;background:rgba(0,234,255,.1);box-shadow:var(--nb-glow-cyan)}.upload-label[data-v-f2c0fce3]{letter-spacing:.12em}.loading-text[data-v-f2c0fce3]{color:var(--nb-cyan)}.jiaoxue-container{margin:0 auto;padding:20px;background-color:#fff;border-radius:8px;box-shadow:0 2px 15px #00000014;border:1px solid #e1e1e1;font-family:Segoe UI,Arial,sans-serif}.jiaoxue-wrapper{display:flex;justify-content:center}.jiaoxue-keyboard{flex:0 0 auto;background-color:#5d5d5d;padding:20px;border-radius:8px;box-shadow:0 2px 15px #00000014;border:1px solid #e1e1e1;height:610px}.top-buttons,.bottom-buttons{display:flex;justify-content:center;gap:20px;margin-bottom:10px;margin-top:10px}.button-matrix{display:flex;flex-direction:column;gap:10px;align-items:center}.button-row{display:flex;gap:10px}.square-button{width:50px;height:50px;background-color:#f8f8f8;border-radius:5px;cursor:pointer;transition:all .1s ease;border:1px solid #e0e0e0;box-shadow:0 1px 3px #0000001a}.square-button:hover{background-color:#f0f0f0}.square-button.active{box-shadow:0 0 15px #5aa0f080}.round-button{width:40px;height:40px;background-color:#f8f8f8;border-radius:50%;cursor:pointer;transition:all .1s ease;border:1px solid #e0e0e0;box-shadow:0 1px 3px #0000001a}.round-button:hover{background-color:#f0f0f0}.round-button.active{box-shadow:0 0 15px #5aa0f080}.jiaoxue-container,.jiaoxue-wrapper{background:linear-gradient(180deg,#0c101c 0%,#090d17 100%);border:1px solid rgba(0,234,255,.18);border-radius:10px;color:var(--nb-ink);box-shadow:inset 0 1px #00eaff1a,0 10px 34px #0000009e}.jiaoxue-keyboard{background:rgba(10,14,24,.7);border:1px solid var(--nb-line);border-radius:6px}.jiaoxue-keyboard .active{color:var(--nb-cyan);box-shadow:var(--nb-glow-cyan-strong)}.jiaoxue-container[data-v-daec6e8a]{display:flex;flex-direction:column;align-items:center;padding:20px;gap:20px}.offset-controls[data-v-daec6e8a]{display:flex;align-items:center;gap:10px;margin-top:10px}.offset-select[data-v-daec6e8a]{padding:6px 12px;border-radius:6px;border:1px solid #ddd;background:rgba(14,18,32,.9);font-size:14px}.export-controls[data-v-daec6e8a]{margin:20px 0;padding:15px;background-color:#f5f5f5;border-radius:8px;width:100%;max-width:800px}.exported-text-container[data-v-daec6e8a]{margin-top:15px}.exported-textarea[data-v-daec6e8a]{width:100%;height:150px;padding:10px;border:1px solid #ddd;border-radius:4px;font-family:monospace;resize:vertical;margin-bottom:10px;background:rgba(14,18,32,.9);color:#333}.copy-button[data-v-daec6e8a]{padding:8px 15px;background-color:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .2s}.copy-button[data-v-daec6e8a]:hover{background-color:#0b7dda}.empty-tip[data-v-daec6e8a]{color:#666;font-size:14px;padding:10px;text-align:center}.jiaoxue-keyboard[data-v-daec6e8a]{margin-top:20px;background:rgba(10,14,24,.6);padding:20px;border-radius:12px;box-shadow:0 2px 8px #0000000f}.top-buttons[data-v-daec6e8a],.bottom-buttons[data-v-daec6e8a]{display:flex;justify-content:center;gap:20px;margin:10px 0}.button-matrix[data-v-daec6e8a]{display:flex;flex-direction:column;gap:10px}.button-row[data-v-daec6e8a]{display:flex;align-items:center;gap:10px}.round-button[data-v-daec6e8a],.square-button[data-v-daec6e8a]{cursor:pointer;border:none;transition:all .1s ease}.round-button[data-v-daec6e8a]{width:40px;height:40px;border-radius:50%;background:#444}.square-button[data-v-daec6e8a]{width:50px;height:50px;border-radius:8px;background:#444;position:relative}.active[data-v-daec6e8a]{transform:scale(.95)}.pagination-controls[data-v-daec6e8a]{display:flex;align-items:center;gap:20px;margin-top:10px}.page-btn[data-v-daec6e8a]{padding:8px 16px;background-color:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer}.page-btn[data-v-daec6e8a]:disabled{background-color:#ccc;cursor:not-allowed}.page-info[data-v-daec6e8a]{color:#666;font-size:14px}.button-text[data-v-daec6e8a]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:12px;color:#333;font-weight:700;pointer-events:none;word-wrap:break-word;max-width:90%;text-align:center}.modal-overlay[data-v-e592dc6f]{position:fixed;inset:0;background:rgba(15,20,35,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:999999;animation:md-overlay-in-e592dc6f .25s ease-out}@keyframes md-overlay-in-e592dc6f{0%{opacity:0;backdrop-filter:blur(0px)}to{opacity:1;backdrop-filter:blur(6px)}}.modal-box[data-v-e592dc6f]{background:linear-gradient(180deg,#0c101c 0%,#090d17 100%);border-radius:10px;border:1px solid rgba(0,234,255,.18);max-width:400px;width:88%;box-shadow:inset 0 1px #00eaff1a,0 10px 34px #0000009e,0 0 24px #00eaff14;display:flex;flex-direction:column;overflow:hidden;animation:md-box-in-e592dc6f .3s cubic-bezier(.34,1.56,.64,1)}@keyframes md-box-in-e592dc6f{0%{opacity:0;transform:scale(.92) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-body[data-v-e592dc6f]{font-size:14px;line-height:1.7;color:#4a4e63;padding:24px 28px 20px;white-space:pre-line;text-align:center}.modal-footer[data-v-e592dc6f]{display:flex;gap:10px;justify-content:center;padding:0 22px 18px}.modal-btn[data-v-e592dc6f]{padding:8px 28px;border-radius:10px;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.modal-btn--confirm[data-v-e592dc6f]{background:linear-gradient(135deg,#2b8cf0,#35b8e0);color:#fff;box-shadow:0 3px 10px #2b8cf047}.modal-btn--confirm[data-v-e592dc6f]:hover{background:linear-gradient(135deg,#2079d6,#2ba3cc);transform:translateY(-1px);box-shadow:0 5px 14px #2b8cf061}.modal-btn--confirm[data-v-e592dc6f]:active{transform:scale(.98)}.modal-btn--cancel[data-v-e592dc6f]{background:rgba(232,234,245,.9);color:#5a5e72;border:1px solid rgba(180,190,220,.35)}.modal-btn--cancel[data-v-e592dc6f]:hover{background:#e0e3f0;color:#2a2e45;transform:translateY(-1px);box-shadow:0 3px 8px #00000014}.modal-btn--cancel[data-v-e592dc6f]:active{transform:scale(.98)}.container{margin:0 auto;padding:4px 12px 0;max-width:1440px;width:100%;font-family:Segoe UI,system-ui,-apple-system,sans-serif}.controls-row{display:flex;flex-wrap:wrap;gap:0;align-items:center;width:100%}.file-upload-container{padding:12px;background:var(--bg-elevated);border-radius:var(--radius-sm);border:1px solid var(--border);transition:border-color var(--transition)}.file-upload-container:hover{border-color:var(--accent)}.file-upload-label{gap:10px;display:flex;align-items:center;justify-content:center;min-height:60px}.file-input{position:absolute;width:.1px;height:.1px;opacity:0;overflow:hidden;z-index:-1}.file-upload-button{padding:6px 14px;background:var(--nb-solid);color:var(--nb-muted);border:1px solid var(--nb-line);border-radius:6px;cursor:pointer;font-family:var(--daw-font-display);font-size:11px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;transition:all .18s var(--nb-ease)}.file-upload-button:hover{border-color:#00eaff99;background:rgba(0,234,255,.1);color:var(--nb-cyan);box-shadow:var(--nb-glow-cyan)}.midi-file-selector{display:contents}.midi-style{padding:12px;border-radius:8px;gap:10px;display:flex;align-items:center;justify-content:center;min-height:60px}.file-name{font-size:13px;color:var(--text-secondary);max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.last-note-info{padding:8px 12px;background:var(--bg-elevated);border-radius:var(--radius-sm);font-size:13px;border:1px solid var(--border)}.last-note-info .note-name{font-weight:700;color:var(--accent)}.last-note-info .note-details{color:var(--text-secondary);margin-left:8px}.duration-control{display:flex;gap:8px;flex-direction:row;margin-right:0;margin-left:auto}.duration-control label{font-size:13px;color:var(--text-secondary);white-space:nowrap;font-weight:500}.midi-device-selector{padding:4px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);min-width:100px;font-size:12px;height:28px;transition:all var(--transition)}.midi-device-selector:focus{border-color:var(--accent);outline:none}.midi-device-selector:hover{border-color:var(--border-light)}.audio-controls{display:flex;flex-wrap:wrap;align-items:flex-start;gap:25px;margin-bottom:12px;margin-top:12px;padding:20px;background:#fff;border-radius:8px;border:1px solid var(--border)}.knob-control{display:flex;flex-direction:column;align-items:center;min-width:80px}.knob-label{font-size:10px;color:var(--text-muted);margin-bottom:3px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:0 2px}.knob{position:relative;width:34px;height:34px;border-radius:50%;background:linear-gradient(180deg,#131a2b,#0a0e18);border:1px solid rgba(0,234,255,.28);box-shadow:inset 0 1px #00eaff1f,0 3px 10px #0000008c;cursor:ns-resize;display:flex;align-items:center;justify-content:center;transition:all .18s var(--nb-ease);user-select:none}.knob:hover{border-color:#00eaffb3;box-shadow:inset 0 1px #00eaff33,0 0 16px #00eaff59}.knob:active{transform:scale(.95)}.knob:before{content:"";position:absolute;top:3px;left:3px;right:3px;bottom:3px;border-radius:50%;background:linear-gradient(135deg,rgba(0,234,255,.06),transparent 70%)}.knob:after{content:"";position:absolute;top:6px;left:6px;right:6px;bottom:6px;border-radius:50%;border:1px solid rgba(136,146,176,.16)}.knob-mark{position:absolute;top:4px;left:50%;width:4px;height:4px;margin-left:-2px;background:#00eaff;border-radius:50%;transform-origin:center 13px;box-shadow:0 0 6px #00eaffcc,0 0 14px #00eaff73;z-index:2}.launchpad-info{font-size:11px;color:var(--success);padding:2px 8px;margin-top:-6px;margin-bottom:6px;font-weight:600}.debug-info{font-size:12px;color:#e67e22;padding:2px 8px;margin-top:4px;font-family:monospace;background:rgba(230,126,34,.08);border-radius:4px}.metro-fader{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:80px}.metro-btn{font-size:14px;color:var(--text-secondary);margin-bottom:2px;cursor:pointer}.metro-btn:before,.metro-btn:after{display:none}.metro-btn:hover{border-color:var(--accent);color:var(--accent)}.metro-btn.metro-active{background:rgba(0,234,255,.15);border-color:#00eaffb3;color:var(--nb-cyan);box-shadow:var(--nb-glow-cyan-strong)}.fader-track{position:relative;width:8px;height:52px;background:linear-gradient(180deg,#04070e,#0a0e18);border-radius:4px;box-shadow:inset 0 0 0 1px #8892b029;cursor:pointer;overflow:hidden}.fader-fill{position:absolute;bottom:0;width:100%;background:linear-gradient(180deg,rgba(0,234,255,.9),rgba(0,234,255,.45));box-shadow:0 0 10px #00eaff80;border-radius:4px;transition:height .05s linear}.fader-thumb{position:absolute;left:50%;transform:translate(-50%,50%);width:18px;height:10px;background:#0e1220;border:1px solid rgba(0,234,255,.8);border-radius:3px;box-shadow:0 0 10px #00eaff99;pointer-events:none}.knob-divider{width:1px;background:var(--border);align-self:stretch;margin:4px 2px}.knob-value{margin-top:8px;font-size:10px;font-weight:600;color:var(--accent);letter-spacing:.5px;text-transform:uppercase;padding:0 2px}.mute-button{margin-top:5px;background:none;border:none;cursor:pointer;color:var(--text-secondary);font-size:16px;transition:color var(--transition)}.mute-button:hover{color:var(--accent)}.playback-controls{display:flex;gap:10px;flex-direction:column;align-items:center;justify-content:center}.control-button{padding:10px 22px;border-radius:var(--radius-sm);border:none;cursor:pointer;font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px;transition:all var(--transition);letter-spacing:.3px}.play-button{background:linear-gradient(135deg,var(--success),#00a381);color:#fff}.play-button:hover:not(:disabled){background:linear-gradient(135deg,#00d2a8,var(--success));transform:translateY(-2px)}.play-button:disabled{background:#d0d0e0;color:#999;cursor:not-allowed}.stop-button{background:linear-gradient(135deg,var(--danger),#d35400);color:#fff}.stop-button:hover:not(:disabled){background:linear-gradient(135deg,#eb8168,var(--danger));transform:translateY(-2px)}.stop-button:disabled{background:#d0d0e0;color:#999;cursor:not-allowed}.play-bar,.record-bar{display:flex;align-items:center;gap:16px;padding:12px 20px;background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border);margin-bottom:12px;margin-top:12px;min-height:72px}.record-left{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:56px}.record-right{display:flex;flex-direction:column;align-items:center;gap:4px}.record-btn{width:40px;height:40px;border-radius:50%;border:1px solid rgba(0,234,255,.35);background:linear-gradient(180deg,#131a2b,#0a0e18);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .18s var(--nb-ease);color:var(--nb-cyan);flex-shrink:0}.record-btn:hover:not(:disabled){border-color:#00eaffbf;box-shadow:var(--nb-glow-cyan)}.record-btn:active{transform:scale(.95)}.record-btn.metro-active{background:rgba(0,234,255,.15);border-color:#00eaffbf;color:var(--nb-cyan);box-shadow:var(--nb-glow-cyan-strong);animation:metroPulse .6s ease-in-out infinite}.record-btn.playing{background:rgba(0,255,163,.14);border-color:#00ffa3b3;color:var(--success);box-shadow:0 0 0 1px #00ffa366,0 0 18px #00ffa347}.record-btn:disabled{background:rgba(14,18,32,.7);color:var(--text-muted);border-color:var(--nb-line);cursor:not-allowed}.record-btn.recording{background:rgba(255,77,109,.16);border-color:#ff4d6dbf;color:var(--danger);box-shadow:var(--nb-glow-danger);animation:recordPulse 1.2s ease-in-out infinite}.record-bar .knob-value{font-size:10px;font-weight:700;color:var(--text-muted);text-align:center;white-space:nowrap}.record-bar .knob-value.recording{color:var(--danger)!important}.wave-canvas{flex:1;height:60px;min-height:30px;background:#f5f5fa;border-radius:6px;border:1px solid var(--border);cursor:pointer}.recording-list{background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border);margin-bottom:12px;margin-top:6px;padding:12px 16px}.recording-title{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.recording-item{display:flex;align-items:center;justify-content:space-between;min-height:28px;padding:0 8px;margin-bottom:3px;border-radius:6px;transition:background var(--transition)}.recording-item:hover{background:var(--bg-elevated)}.recording-item.active{background:rgba(53,184,224,.08)}.rec-name{flex:1;font-size:13px;color:var(--text-primary);font-weight:500;text-align:left}.rec-actions{display:flex;gap:4px;flex-shrink:0}.rec-duration{font-size:12px;color:var(--text-muted);font-family:JetBrains Mono,monospace}.rec-play-btn,.rec-dl-btn,.rec-del-btn{width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:var(--bg-input);cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:all var(--transition);color:var(--text-secondary)}.rec-play-btn:hover{border-color:var(--accent);color:var(--accent)}.rec-play-btn.playing{background:var(--accent);color:#fff;border-color:var(--accent)}.rec-dl-btn:hover{border-color:var(--accent);color:var(--accent)}.rec-del-btn:hover{border-color:var(--danger);color:var(--danger)}@keyframes recordPulse{}@keyframes metroPulse{}.player-container{margin-top:12px;margin-bottom:12px}.preview-container{color:var(--text-primary);display:flex;min-width:160px;flex:1;flex-direction:column;flex-wrap:nowrap;justify-content:center}.preview-canvas{width:100%;height:78px;background-color:#f5f5fa;border-radius:var(--radius-sm);cursor:pointer;touch-action:none;border:1px solid var(--border)}.time-display{display:flex;justify-content:space-between;margin-top:6px;font-size:12px;color:var(--text-secondary);font-family:JetBrains Mono,monospace}.load-container{display:flex;flex-direction:column;gap:12px;margin-bottom:12px;margin-top:12px}.track-controls{margin:20px 0;padding:15px;background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid var(--border)}.track-control-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.track-control-header h3{margin:0;font-size:16px;color:var(--text-primary)}.track-control-actions{display:flex;gap:10px}.track-control-button{padding:5px 10px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:12px;color:var(--text-secondary);transition:all var(--transition)}.track-control-button:hover{background:var(--bg-elevated);border-color:var(--accent)}.track-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.track-item{padding:8px;background:var(--bg-surface);border-radius:var(--radius-sm);border:1px solid var(--border)}.track-toggle{display:flex;align-items:center;cursor:pointer;font-size:14px}.track-toggle input{margin-right:8px}.track-name{font-weight:700;margin-right:8px;color:var(--text-primary)}.track-instrument{flex-grow:1;color:var(--text-secondary);font-size:12px}.track-note-count{color:var(--text-muted);font-size:11px}@media (max-width: 768px){.container{padding:0}.controls-row{flex-direction:column;align-items:stretch;gap:8px}.card-divider{display:none}.midi-file-selector{width:100%;flex-wrap:wrap}.midi-device-selector{min-width:auto;flex:1}.midi-info-row{flex-wrap:wrap}.audio-controls{flex-wrap:wrap;gap:12px;padding:12px}.knob-control{flex:1 1 auto;min-width:70px}.knob{width:30px;height:30px}.control-button{padding:6px 12px;font-size:12px}.record-bar{flex-direction:column;align-items:stretch;gap:8px;padding:10px 14px;min-height:auto}.record-left{flex-direction:row;gap:8px}.wave-canvas{min-height:40px}.preview-canvas{height:58px}.time-display{font-size:13px}}@media (max-width: 480px){.controls-row{gap:6px}.card-divider{display:none}.midi-file-selector{gap:6px}.midi-device-selector{font-size:12px;padding:6px 8px}.file-upload-button{font-size:12px;padding:6px 14px}.audio-controls{gap:8px;padding:10px}.knob{width:26px;height:26px}.knob-label,.knob-value{font-size:10px}.playback-controls{gap:6px}.control-button{padding:5px 10px;font-size:11px;border-radius:6px}.record-btn{width:38px;height:38px}.wave-canvas{min-height:30px}.recording-list{padding:8px 12px}.rec-name{font-size:12px}.rec-play-btn,.rec-dl-btn,.rec-del-btn{width:24px;height:24px;font-size:10px}.duration-control{flex-wrap:wrap;gap:4px}.duration-control label{font-size:11px}.duration-control .midi-device-selector{min-width:auto}.hold-toggle-label{font-size:10px!important}.toggle-switch.small{width:30px;height:16px}.toggle-switch.small .toggle-knob{width:12px;height:12px}.toggle-switch.small.active .toggle-knob{transform:translate(14px)}}.lp-diag-panel{position:fixed;top:6px;left:6px;z-index:9999;padding:6px 8px;border-radius:6px;background:rgba(0,0,0,.72);color:#7fe3ff;font:11px/1.5 ui-monospace,Consolas,monospace;pointer-events:none;white-space:nowrap}.page-footer{position:fixed;bottom:4px;left:0;right:0;text-align:center}.velo-bar{position:fixed;bottom:26px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.85);backdrop-filter:blur(6px);border:1px solid var(--border,#e2e2ec);border-radius:8px;padding:4px 12px;z-index:998;font-size:12px;pointer-events:none}.velo-label{color:var(--text-muted,#9e9eb0);font-weight:600}.velo-track{width:100px;height:6px;background:#e8e8f0;border-radius:3px;overflow:hidden}.velo-fill{height:100%;border-radius:3px;transition:width .1s}.velo-val{font-weight:700;min-width:28px;text-align:right;font-family:monospace}.upload-divider{width:1px;height:40px;background:var(--border, #e2e2ec);flex-shrink:0}.part-upload-btn{display:inline-flex;flex-direction:column;align-items:center;padding:4px 12px;background:none;border:none;color:var(--accent);cursor:pointer;transition:all .2s}.duration-row .part-upload-btn{padding:4px 8px;color:var(--text-muted);position:relative}.duration-row .part-upload-btn:hover .part-icon{transform:scale(1.15)}.duration-row .duration-selected{color:var(--accent)!important}.duration-row .duration-selected:after{content:"";position:absolute;bottom:0;left:4px;right:4px;width:auto;height:2px;background:var(--accent);border-radius:1px}.duration-row .part-icon{margin-bottom:4px;transition:transform .2s}.duration-row .part-label{letter-spacing:0}.part-upload-btn:hover{transform:translateY(-1px)}.part-upload-btn:hover .part-icon{transform:scale(1.1)}.duration-selected{color:var(--accent)!important}.duration-selected .part-icon{fill:var(--accent);stroke:var(--accent)}.part-icon{width:28px;height:28px;transition:transform .2s;margin-bottom:4px}.part-label{font-size:10px;font-weight:600;line-height:1.2;white-space:nowrap;color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase}.part-upload-group{display:flex;flex-direction:column;align-items:center;padding:6px 10px;background:#fff;border:1px solid var(--border);border-radius:8px;width:auto;flex-shrink:0;flex:1 0 auto}.card-divider{width:2px;align-self:center;height:32px;background:var(--border, #e2e2ec);border-radius:1px;flex-shrink:0;margin:0 6.5px}.midi-style{padding:6px 10px;background:#fff;border:1px solid var(--border);border-radius:8px}.single-track-group{display:flex;flex-direction:column;align-items:flex-start;padding:6px 10px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px}.single-track-label,.part-upload-title{font-size:10px;color:var(--text-muted);font-weight:600;letter-spacing:.5px;text-transform:uppercase;margin-bottom:3px;padding:0 2px}.part-upload-row{display:flex;align-items:center;gap:0;flex-wrap:wrap}.play-bar-top{display:flex;align-items:center;gap:12px;margin-bottom:6px}.ctrl-btn{cursor:pointer;width:35px;height:35px;border-radius:50%;border:2px solid var(--border, #d0d0e0);background:var(--bg, #fff);display:flex;align-items:center;justify-content:center;position:relative}.ctrl-btn:hover{border-color:var(--accent, #35b8e0);box-shadow:0 2px 10px #00eaff40}.ctrl-btn:disabled{opacity:.3;cursor:not-allowed;box-shadow:none}.ctrl-btn.active{background:var(--accent, #35b8e0);border-color:var(--accent, #35b8e0)}.ctrl-btn.active .rec-dot{background:#fff}.midi-editor{display:flex;flex-direction:column;width:100%;border:1px solid var(--border,#d5d8e0);border-radius:8px;overflow:hidden;margin-top:8px;background:#ffffff}.editor-toolbar{display:flex;align-items:center;gap:5px;padding:5px 8px;flex-shrink:0;flex-wrap:wrap;background:#fff;border-bottom:1px solid var(--border,#e2e2ec);border-radius:8px 8px 0 0}.toolbar-spacer{flex:1;min-width:8px}.midi-info-tags{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-muted,#9e9eb0);white-space:nowrap}.mi-tag{font-weight:600;color:var(--accent,#35b8e0)}.mi-label{color:var(--text-muted,#9e9eb0);font-weight:400}.mi-sep{color:var(--border,#e2e2ec);font-size:10px}.et-divider{width:1px;height:20px;background:var(--border,#e2e2ec);align-self:center}.et-btn{padding:4px 10px;height:26px;font-size:12px;border:none;border-radius:5px;background:#f0f2f7;color:#666;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all .15s}.et-btn:hover{background:#e4e8f0;color:#333}.et-btn.active{background:var(--accent,#35b8e0);color:#fff}.track-btn{border-color:var(--track-color);color:var(--track-color)}.track-btn.muted{border-color:var(--border,#e2e2ec);color:#999;background:#f5f5fa}.editor-body{display:flex;flex:1;min-height:0}.live-piano{width:64px;flex-shrink:0;border-right:1px solid var(--border,#e2e2ec)}.live-ruler{height:19px;background:#f8f8fc;border-bottom:1px solid var(--border,#e2e2ec)}.live-keys-wrap{overflow:hidden}.live-key-row{display:flex;align-items:center;justify-content:flex-end;padding-right:3px;cursor:pointer;font-size:7px;color:#bbb;background:#fafafe;border-bottom:1px solid var(--border,#e2e2ec)}.live-key-row:nth-child(even){background:#f4f5f9}.live-key-row.black{background:#edeef2;font-size:7px;color:#999}.live-key-row:hover{background:#eaeaf2!important}.live-key-label{pointer-events:none}.editor-canvas{flex:1;min-width:0}.rec-dot{width:10px;height:10px;border-radius:50%;background:#e04040;display:block}.wave-canvas{width:120px;height:60px;margin:0 auto;align-self:center;min-width:120px}.rec-midi-check{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--accent);cursor:pointer;white-space:nowrap;margin-top:9px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;padding:0 2px}.rec-midi-check input{width:12px;height:12px;cursor:pointer;accent-color:var(--accent)}.ctrl-btn:disabled{opacity:.25;cursor:not-allowed}.ctrl-btn.active{border-color:var(--accent, #35b8e0)!important}.play-triangle{width:0;height:0;border-style:solid;border-width:6px 0 6px 11px;border-color:transparent transparent transparent var(--accent, #35b8e0);border-radius:2px;position:relative;z-index:2;top:0;left:1px;transition:border-color .15s;filter:drop-shadow(0 0 2px rgba(0,0,0,.08))}.ctrl-btn.active .play-triangle{border-left-color:#fff}.ctrl-btn:hover .play-triangle{border-left-color:var(--accent, #35b8e0)}.ctrl-btn.active:hover .play-triangle{border-left-color:#fff}.pause-icon{display:flex;gap:2px;align-items:center;justify-content:center;position:relative;z-index:2}.pause-bar{display:block;width:3px;height:8px;border-radius:1px;background:var(--accent, #35b8e0);transition:background .15s;position:relative;z-index:3}.ctrl-btn.active .pause-bar{background:#fff}.ctrl-btn:hover .pause-bar{background:var(--accent, #35b8e0)}.ctrl-btn.active:hover .pause-bar{background:#fff}.stop-square{display:block;width:8px;height:8px;border-radius:2px;background:var(--accent, #35b8e0);transition:background .15s;position:relative;z-index:2}.ctrl-btn:hover .stop-square{background:var(--accent, #35b8e0)}.ctrl-btn:disabled .stop-square{background:var(--text-muted, #9e9eb0)}.bpm-input{width:44px;padding:2px;border-radius:4px;border:1px solid transparent;background:transparent;color:var(--accent);font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;text-align:center;margin-top:8px;transition:all .15s}.bpm-input.editing,.bpm-input:focus{border-color:var(--accent);background:var(--bg-input, #fff);outline:none}.page-footer{font-size:11px;z-index:999;pointer-events:none}.page-footer a{pointer-events:auto}.footer-label{color:var(--text-muted, #9e9eb0)}.footer-link{color:var(--accent, #35b8e0);text-decoration:none;font-weight:600}.footer-link:hover{text-decoration:underline}.lp-overlay{position:fixed;inset:0;background:transparent;z-index:9999;display:flex;align-items:center;justify-content:center;pointer-events:none}.lp-wrapper{position:relative;user-select:none;pointer-events:auto}.lp-card{background:linear-gradient(145deg,#ffffff,#fafafe);border-radius:18px;border:1px solid var(--border,#e2e2ec);box-shadow:0 8px 40px #00000026;overflow:hidden;position:relative;animation:mapBoxIn .3s cubic-bezier(.34,1.56,.64,1)}.lp-header{display:flex;align-items:center;justify-content:space-between;padding:16px 22px 12px;background:transparent;cursor:grab;position:relative}.lp-header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,#b450dc 0%,#6c5ce7 50%,#35b8e0 100%)}.lp-header:active{cursor:grabbing}.lp-header-title{font-size:15px;font-weight:600;color:#999;letter-spacing:.3px;display:flex;align-items:center;height:17px;white-space:nowrap}.lp-header-hint{margin-left:auto;margin-right:10px;font-size:11px;color:var(--text-muted,#999);white-space:nowrap}.lp-header-close{width:28px;height:28px;border:none;border-radius:50%;background:rgba(0,0,0,.04);color:#888;font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:0;backdrop-filter:blur(4px)}.lp-header-close:hover{background:#e74c3c;color:#fff;transform:rotate(90deg) scale(1.08);box-shadow:0 4px 12px #e74c3c59}.lp-topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 22px;background:transparent}.lp-page-controls{display:flex;align-items:center;gap:6px}.lp-nav-btn{width:28px;height:28px;border:1px solid #d8d8e4;border-radius:7px;background:#fff;color:#777;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.lp-nav-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:#f5fcff;box-shadow:0 0 8px #35b8e026}.lp-nav-btn:disabled{opacity:.2;cursor:default}.lp-nav-info{display:flex;align-items:center;gap:4px;margin:0 4px}.lp-nav-dot{width:8px;height:8px;border-radius:50%;background:#d0d0e0;cursor:pointer;transition:all .25s;border:1px solid transparent}.lp-nav-dot:hover{background:#b0b0c8;transform:scale(1.15)}.lp-nav-dot.active{background:var(--accent);border-color:#35b8e04d;box-shadow:0 0 6px #35b8e059;transform:scale(1.1)}.lp-nav-text{font-size:11px;color:#aab;margin-left:4px;letter-spacing:.3px;font-weight:500}.lp-map-btn{width:32px;height:28px;border:1px solid #d8d8e4;border-radius:7px;background:#fff;color:#888;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.lp-map-btn:hover{border-color:var(--accent);color:var(--accent);background:#f5fcff;box-shadow:0 0 8px #35b8e026}.lp-map-btn.active{border-color:var(--accent);color:#fff;background:var(--accent);box-shadow:0 0 8px #35b8e040}.lp-grid{display:flex;flex-direction:column;gap:4px;padding:12px 22px;background:transparent}.lp-row{display:flex;gap:3px;justify-content:center}.lp-cell{width:52px;height:52px;border-radius:5px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .12s}.lp-cell--melody{background:linear-gradient(145deg,#e9f4fc,#e0eef8);border:1px solid #c5dcec}.lp-cell--melody:hover{background:linear-gradient(145deg,#d4ecf8,#c5e2f2);border-color:var(--accent);transform:translateY(-1px);box-shadow:0 2px 8px #35b8e02e}.lp-cell--melody .lp-cell-num{color:#2a8bb5}.lp-cell--harmony{background:linear-gradient(145deg,#f4ebf8,#ede2f3);border:1px solid #d4bce0}.lp-cell--harmony:hover{background:linear-gradient(145deg,#eedff5,#e5d2ef);border-color:#b450dc;transform:translateY(-1px);box-shadow:0 2px 8px #b450dc2e}.lp-cell--harmony .lp-cell-num{color:#9638c0}.lp-cell--melody.lp-cell--current{background:linear-gradient(145deg,#1a7aa0,#156588)!important;border-color:#156588!important;box-shadow:0 0 10px #1a7aa073!important;transform:translateY(-1px)}.lp-cell--harmony.lp-cell--current{background:linear-gradient(145deg,#7b2d9c,#682885)!important;border-color:#682885!important;box-shadow:0 0 10px #7b2d9c73!important;transform:translateY(-1px)}.lp-cell--current .lp-cell-num{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.2)}.lp-cell--disabled{background:#e8e8ec!important;border-color:#d5d5e0!important;cursor:default!important;pointer-events:none}.lp-cell--disabled:hover{transform:none!important;box-shadow:none!important}.lp-cell--disabled .lp-cell-num{color:#bbb!important}.lp-cell--current.lp-cell--disabled{background:#e8e8ec!important;border-color:#d5d5e0!important;box-shadow:none!important;transform:none!important}.lp-cell--current.lp-cell--disabled .lp-cell-num{color:#bbb!important;text-shadow:none!important}.lp-cell-num{font-size:11px;font-weight:700;text-align:center;line-height:1.15;pointer-events:none}.lp-reveal-bar{display:flex;align-items:center;gap:8px;padding:10px 22px 14px;background:transparent}.lp-step-btn{width:26px;height:26px;border:1px solid #d8d8e4;border-radius:6px;background:#fff;color:#777;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.lp-step-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:#f5fcff;box-shadow:0 0 8px #35b8e026}.lp-step-btn:disabled{opacity:.2;cursor:default}.lp-reveal-slider{-webkit-appearance:none;width:100%;height:5px;border-radius:3px;background:linear-gradient(90deg,#e0e0ea,#d4d4e2);outline:none;cursor:pointer}.lp-reveal-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:linear-gradient(145deg,var(--accent),#2a9dc5);border:2px solid #fff;box-shadow:0 1px 4px #00000026;cursor:pointer;transition:all .15s}.lp-reveal-slider::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 1px 8px #35b8e059}.lp-reveal-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:linear-gradient(145deg,var(--accent),#2a9dc5);border:2px solid #fff;box-shadow:0 1px 4px #00000026;cursor:pointer}.lp-reveal-val{font-size:12px;font-weight:600;color:var(--accent);min-width:32px;text-align:center;flex-shrink:0;letter-spacing:.5px}.modal-overlay{position:fixed;inset:0;background:rgba(15,20,35,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:99999;animation:mapOverlayIn .25s ease-out}@keyframes mapOverlayIn{0%{opacity:0;backdrop-filter:blur(0px)}to{opacity:1;backdrop-filter:blur(6px)}}.map-modal-box{background:linear-gradient(145deg,#ffffff,#fafafe);border-radius:18px;max-width:488px;width:92%;box-shadow:0 8px 40px #00000026;border:1px solid var(--border,#e2e2ec);position:relative;overflow:hidden;display:flex;flex-direction:column;animation:mapBoxIn .3s cubic-bezier(.34,1.56,.64,1)}@keyframes mapBoxIn{0%{opacity:0;transform:scale(.92) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.map-modal-close{width:26px;height:26px;border:none;border-radius:50%;background:rgba(0,0,0,.04);color:#888;font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:0;flex-shrink:0;backdrop-filter:blur(4px)}.map-modal-close:hover{background:#e74c3c;color:#fff;transform:rotate(90deg) scale(1.08);box-shadow:0 4px 12px #e74c3c59}.map-header{display:flex;align-items:center;justify-content:space-between;padding:16px 22px 12px;background:linear-gradient(180deg,#fafbff 0%,rgba(255,255,255,0) 100%);position:relative;flex-shrink:0}.map-header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,#b450dc 0%,#6c5ce7 50%,#35b8e0 100%)}.map-header-title{font-size:15px;font-weight:600;color:#4a4e63;letter-spacing:.3px}.map-header-actions{display:flex;align-items:center;gap:12px}.map-legend{font-size:11px;font-weight:500;color:#6b7088;display:flex;align-items:center;gap:10px}.map-legend-item{display:inline-flex;align-items:center;gap:5px}.map-dot{display:inline-block;width:10px;height:10px;border-radius:2px}.map-dot--harmony{background:#f3e8f8;border:1px solid #b450dc}.map-dot--melody{background:#e6f4fb;border:1px solid #35b8e0}.map-topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 22px;background:transparent}.map-checkboxes{display:flex;align-items:center;gap:14px}.map-check-label{font-size:12px;color:#4a4e63;display:flex;align-items:center;gap:5px;cursor:pointer;user-select:none;font-weight:500;transition:color .15s}.map-check-label:hover{color:#1a1d2e}.map-check-label input{accent-color:#2b8cf0;width:14px;height:14px;cursor:pointer}.arrow-row{display:flex;gap:4px;align-items:center}.arr-btn:hover{border-color:#2b8cf0;color:#fff;background:linear-gradient(135deg,#2b8cf0,#35b8e0);box-shadow:0 3px 10px #2b8cf052;transform:translateY(-1px)}.map-grid{display:flex;flex-direction:column;gap:3px;padding:12px 22px;background:transparent}.map-row{display:flex;gap:4px;justify-content:center}.map-cell{width:52px;height:52px;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10px;cursor:pointer;position:relative;transition:all .12s}.map-cell--harmony{background:linear-gradient(145deg,#f4ebf8,#ede2f3);border:1px solid #d4bce0;color:#9638c0}.map-cell--harmony:hover{background:linear-gradient(145deg,#eedff5,#e5d2ef);border-color:#b450dc;transform:translateY(-1px);box-shadow:0 2px 8px #b450dc2e}.map-cell--melody{background:linear-gradient(145deg,#e9f4fc,#e0eef8);border:1px solid #c5dcec;color:#2a8bb5}.map-cell--melody:hover{background:linear-gradient(145deg,#d4ecf8,#c5e2f2);border-color:var(--accent);transform:translateY(-1px);box-shadow:0 2px 8px #35b8e02e}.map-cell--empty{opacity:.25}.map-cell-key{font-weight:700;font-size:11px;line-height:1.2}.map-cell-note{font-size:9px;opacity:.75}.map-cell--selected{outline:2px solid #ff6600;outline-offset:-2px;box-shadow:0 0 10px #ff660059;transform:translateY(-1px)}.map-cell--current{box-shadow:0 0 0 2px var(--accent, #35b8e0),0 0 14px #00eaff80;transform:translateY(-1px)}.map-cell--current.map-cell--harmony{box-shadow:0 0 0 2px #b450dc,0 0 14px #b450dc80}.map-cell--current .map-cell-key,.map-cell--current .map-cell-note{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.25)}.map-cell--modified{outline:2px solid #e74c3c;outline-offset:-2px;box-shadow:0 0 8px #e74c3c33}.map-cell--modified .map-cell-note{opacity:1}.map-cell--modified .map-cell-note:after{content:" \2726";color:#e74c3c;font-size:8px}.map-cell-pair{position:absolute;top:-4px;right:-4px;background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;font-size:8px;font-weight:700;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 1px 4px #e74c3c59}.map-cell-count{position:absolute;bottom:1px;right:2px;font-size:9px;font-weight:700;color:#555;line-height:1;background:rgba(255,255,255,.5);padding:0 2px;border-radius:2px}.map-modified-info{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 14px;background:#f3e8f8;border:1px solid #d4bce0;border-radius:8px;font-size:12px;color:#9638c0;line-height:1.4}.map-modified-info:before{content:"\2726";color:#b450dc;font-size:13px;flex-shrink:0}.map-modified-info strong{color:#b450dc;font-weight:700}.map-source-label{color:#b69cc8}.map-source-label{color:#999;font-weight:400;font-size:11px}.map-modal-footer{display:flex;gap:10px;justify-content:flex-end;padding:10px 22px 14px;background:transparent}.map-modal-footer .modal-btn{padding:8px 22px;border-radius:10px;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;gap:6px}.map-modal-footer .modal-btn--secondary{background:rgba(232,234,245,.9);color:#5a5e72;border:1px solid rgba(180,190,220,.35)}.map-modal-footer .modal-btn--secondary:hover{background:#e0e3f0;color:#2a2e45;transform:translateY(-1px);box-shadow:0 3px 8px #00000014}.map-modal-footer .modal-btn--primary{background:linear-gradient(135deg,#2b8cf0,#35b8e0);color:#fff;box-shadow:0 3px 10px #2b8cf047}.map-modal-footer .modal-btn--primary:hover{background:linear-gradient(135deg,#2079d6,#2ba3cc);transform:translateY(-1px);box-shadow:0 5px 14px #2b8cf061}.map-modal-footer .modal-btn:active{transform:translateY(0) scale(.98)}.arrow-row:before{content:"\6574\4f53\504f\79fb";font-size:11px;color:#8a8fa3;margin-right:6px;font-weight:500}.arr-btn{width:24px;height:24px;border:1px solid rgba(180,190,220,.4);border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .18s;padding:0;color:#2b8cf0;background:rgba(255,255,255,.7);box-shadow:0 1px 3px #0000000d}.arr-btn:hover{border-color:#2b8cf0;color:#fff;background:#2b8cf0;box-shadow:0 2px 8px #2b8cf040;transform:translateY(-1px)}.arr-btn:active{transform:scale(.9);box-shadow:none}.part-upload-group,.midi-style{background:rgba(10,14,24,.55);border:1px solid var(--nb-line);border-radius:6px}.part-upload-group:hover,.midi-style:hover{border-color:#00eaff52}.part-upload-btn{border-radius:6px}.part-label{font-family:var(--daw-font-display);letter-spacing:.06em}.midi-editor{background:#080d18;border:1px solid var(--nb-line);border-radius:10px;box-shadow:inset 0 1px #00eaff0f,0 10px 30px #00000080}.editor-toolbar{background:linear-gradient(180deg,#111c31 0%,#0c1322 100%);border-bottom:1px solid rgba(0,234,255,.22);border-radius:10px 10px 0 0}.live-piano{border-right:1px solid var(--nb-line)}.live-ruler{background:#0c1322;border-bottom:1px solid var(--nb-line)}.live-key-row{background:#0b1120;color:var(--nb-muted);border-bottom:1px solid rgba(136,146,176,.12)}.live-key-row:nth-child(even){background:#0e1626}.live-key-row.black{background:#131a2b;color:var(--nb-muted)}.live-key-row:hover{background:rgba(0,234,255,.16)!important}.et-divider,.mi-sep{background:var(--nb-line);color:var(--nb-line)}.mi-tag{color:var(--nb-cyan);text-shadow:0 0 10px rgba(0,234,255,.35)}.mi-label{color:var(--nb-muted)}.bpm-input{color:var(--nb-cyan);background:transparent}.bpm-input.editing,.bpm-input:focus{background:rgba(10,14,24,.9);border-color:#00eaffb3}.track-btn.muted{border-color:var(--nb-line);color:var(--nb-muted);background:rgba(10,14,24,.6)}.lp-card{background:linear-gradient(180deg,#0c101c 0%,#090d17 100%);border:1px solid rgba(0,234,255,.18);border-radius:10px;box-shadow:inset 0 1px #00eaff1a,0 10px 34px #0000009e,0 0 24px #00eaff14}.lp-header:after,.map-header:after{background:linear-gradient(90deg,transparent,rgba(0,234,255,.45) 20%,rgba(0,234,255,.45) 80%,transparent);height:1px}.lp-header-title,.map-header-title{color:var(--nb-cyan);font-family:var(--daw-font-display);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;text-shadow:0 0 10px rgba(0,234,255,.55)}.lp-header-hint,.map-legend,.map-check-label,.arrow-row:before,.map-source-label{color:var(--nb-muted);font-size:10.5px;letter-spacing:.08em}.map-check-label:hover{color:var(--nb-cyan)}.map-check-label input{accent-color:#00eaff}.lp-header-close,.map-modal-close{background:rgba(14,18,32,.7);border:1px solid var(--nb-line);color:var(--nb-muted)}.lp-header-close:hover,.map-modal-close:hover{background:rgba(255,34,153,.16);border-color:#ff2299b3;color:var(--nb-pink);box-shadow:var(--nb-glow-pink)}.lp-nav-dot{background:rgba(136,146,176,.35)}.lp-nav-dot:hover{background:rgba(0,234,255,.6)}.lp-nav-dot.active{background:var(--nb-cyan);border-color:#00eaff66;box-shadow:0 0 8px #00eaffb3}.lp-nav-text,.lp-reveal-val{color:var(--nb-cyan);font-family:var(--daw-font-display);letter-spacing:.1em}.lp-cell--melody,.map-cell--melody{background:linear-gradient(145deg,rgba(0,234,255,.1),rgba(0,234,255,.04));border:1px solid rgba(0,234,255,.28);color:var(--nb-cyan)}.lp-cell--melody:hover,.map-cell--melody:hover{background:linear-gradient(145deg,rgba(0,234,255,.2),rgba(0,234,255,.08));border-color:#00eaffbf;box-shadow:var(--nb-glow-cyan)}.lp-cell--melody .lp-cell-num{color:var(--nb-cyan)}.lp-cell--harmony,.map-cell--harmony{background:linear-gradient(145deg,rgba(255,34,153,.1),rgba(255,34,153,.04));border:1px solid rgba(255,34,153,.3);color:var(--nb-pink)}.lp-cell--harmony:hover,.map-cell--harmony:hover{background:linear-gradient(145deg,rgba(255,34,153,.2),rgba(255,34,153,.08));border-color:#ff2299bf;box-shadow:var(--nb-glow-pink)}.lp-cell--harmony .lp-cell-num{color:var(--nb-pink)}.lp-cell--melody.lp-cell--current,.map-cell--current{background:linear-gradient(145deg,rgba(0,234,255,.38),rgba(0,234,255,.2))!important;border-color:#00eaffe6!important;box-shadow:var(--nb-glow-cyan-strong)!important}.lp-cell--harmony.lp-cell--current{background:linear-gradient(145deg,rgba(255,34,153,.38),rgba(255,34,153,.2))!important;border-color:#ff2299e6!important;box-shadow:var(--nb-glow-pink)!important}.lp-cell--current .lp-cell-num,.map-cell--current .map-cell-key,.map-cell--current .map-cell-note{color:#fff!important;text-shadow:0 0 10px rgba(0,234,255,.6)}.lp-cell--disabled,.lp-cell--current.lp-cell--disabled{background:rgba(10,14,24,.6)!important;border-color:#8892b029!important;box-shadow:none!important}.lp-cell--disabled .lp-cell-num,.lp-cell--current.lp-cell--disabled .lp-cell-num{color:#8892b059!important;text-shadow:none!important}.lp-reveal-slider{background:linear-gradient(90deg,#04070e,#0a0e18);box-shadow:inset 0 1px 3px #000c,inset 0 0 0 1px #8892b024}.lp-reveal-slider::-webkit-slider-thumb{background:#00eaff;border:1px solid rgba(0,234,255,.8);box-shadow:0 0 10px #00eaffd9}.lp-reveal-slider::-moz-range-thumb{background:#00eaff;border:1px solid rgba(0,234,255,.8);box-shadow:0 0 10px #00eaffd9}.map-modal-box{background:linear-gradient(180deg,#0c101c 0%,#090d17 100%);border:1px solid rgba(0,234,255,.18);border-radius:10px;box-shadow:inset 0 1px #00eaff1a,0 10px 34px #0000009e,0 0 24px #00eaff14}.map-header{background:linear-gradient(180deg,#111c31 0%,#0c1322 100%)}.map-dot--melody{background:rgba(0,234,255,.18);border:1px solid rgba(0,234,255,.7)}.map-dot--harmony{background:rgba(255,34,153,.18);border:1px solid rgba(255,34,153,.7)}.map-cell-count{color:var(--nb-muted);background:rgba(10,14,24,.65)}.map-cell--selected{outline:2px solid rgba(255,34,153,.9);box-shadow:var(--nb-glow-pink)}.map-cell--modified{outline:2px solid rgba(255,77,109,.9);box-shadow:var(--nb-glow-danger)}.map-cell--modified .map-cell-note:after{color:var(--nb-danger)}.map-cell-pair{background:linear-gradient(135deg,#ff4d6d,#c0392b);box-shadow:0 0 10px #ff4d6d80}.map-modified-info{background:rgba(255,34,153,.08);border:1px solid rgba(255,34,153,.3);color:var(--nb-pink);border-radius:6px}.map-modified-info:before,.map-modified-info strong{color:var(--nb-pink)}.map-modal-footer .modal-btn--secondary{background:var(--nb-solid);border:1px solid var(--nb-line);color:var(--nb-muted)}.map-modal-footer .modal-btn--secondary:hover{background:rgba(0,234,255,.1);border-color:#00eaff99;color:var(--nb-cyan)}.map-modal-footer .modal-btn--primary{background:rgba(0,234,255,.2);border:1px solid rgba(0,234,255,.7);color:var(--nb-cyan);box-shadow:var(--nb-glow-cyan-strong)}.map-modal-footer .modal-btn--primary:hover{background:rgba(0,234,255,.3)}.page-footer{font-family:var(--daw-font-display);font-size:10px!important;letter-spacing:.12em;color:var(--nb-muted);padding:6px 0 8px;background:linear-gradient(to top,rgba(8,13,24,.94),rgba(8,13,24,0))}.footer-link{color:var(--nb-cyan)!important;text-shadow:0 0 10px rgba(0,234,255,.5)}.velo-bar{background:rgba(10,14,24,.9)!important;border:1px solid var(--nb-line)!important;border-radius:6px!important;color:var(--nb-ink)!important;box-shadow:0 6px 24px #0009!important;backdrop-filter:blur(6px)}.velo-bar button{border-radius:4px}#app{font-family:Segoe UI,system-ui,-apple-system,sans-serif;max-width:1440px;margin:0 auto;padding:0;position:relative;z-index:1}@media (max-width: 768px){#app{padding:0}.container{padding:12px 8px!important}}@media (max-width: 480px){#app{padding:0;font-size:13px}.container{padding:8px 4px!important}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f0f0f5;border-radius:3px}::-webkit-scrollbar-thumb{background:#c0c0d0;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}::selection{background:var(--accent);color:#fff}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239e9eb0' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px!important}html,body{background:var(--bg-primary, #0c101c);color:var(--text-primary, #e8ecf4)}::selection{background:rgba(0,234,255,.28);color:#fff}:focus-visible{outline:none;box-shadow:0 0 0 1px #00eaffbf,0 0 16px #00eaff59}*{scrollbar-width:thin;scrollbar-color:rgba(0,234,255,.35) rgba(10,14,24,.6)}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:rgba(10,14,24,.6);border-radius:6px}*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(0,234,255,.55),rgba(0,234,255,.22));border:1px solid rgba(0,234,255,.35);border-radius:6px;box-shadow:0 0 8px #00eaff59}*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(0,234,255,.9),rgba(0,234,255,.45));box-shadow:0 0 14px #00eaff99}*::-webkit-scrollbar-thumb:active{background:var(--nb-cyan, #00eaff)}*::-webkit-scrollbar-corner{background:transparent}input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="button"]):not([type="submit"]):not([type="hidden"]),textarea{background:rgba(10,14,24,.8)!important;border:1px solid var(--nb-line, rgba(136, 146, 176, .22))!important;border-radius:6px!important;color:var(--nb-ink, #e8ecf4)!important;font-family:var(--daw-font-display)!important;caret-color:#00eaff!important;box-shadow:inset 0 1px 3px #00000080!important;transition:border-color .18s var(--nb-ease),box-shadow .18s var(--nb-ease)!important}input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):hover,textarea:hover{border-color:#00eaff66!important}input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):focus,textarea:focus{outline:none!important;border-color:#00eaffb3!important;box-shadow:var(--nb-glow-cyan)!important}::placeholder{color:#8892b080!important}select{appearance:none!important;-webkit-appearance:none!important;background-color:#0a0e18cc!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2300eaff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 5px center!important;border:1px solid var(--nb-line)!important;border-radius:6px!important;color:var(--nb-ink)!important;padding-right:18px!important;box-shadow:inset 0 1px 3px #00000080!important;transition:border-color .18s var(--nb-ease),box-shadow .18s var(--nb-ease)!important}select:hover{border-color:#00eaff66!important}select:focus{outline:none!important;border-color:#00eaffb3!important;box-shadow:var(--nb-glow-cyan)!important}select option{background:#0a0e18!important;color:var(--nb-ink)!important}input[type=range]{-webkit-appearance:none!important;appearance:none!important;height:14px!important;background:transparent!important;border:none!important;box-shadow:none!important;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:4px!important;border-radius:6px!important;background:linear-gradient(180deg,#04070e,#0a0e18)!important;box-shadow:inset 0 1px 3px #000c,inset 0 0 0 1px #8892b024!important}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none!important;width:12px!important;height:12px!important;margin-top:-4px!important;border-radius:3px!important;background:#00eaff!important;border:1px solid rgba(0,234,255,.8)!important;box-shadow:0 0 10px #00eaffd9!important;cursor:pointer}input[type=range]::-moz-range-track{height:4px!important;border-radius:6px!important;background:linear-gradient(180deg,#04070e,#0a0e18)!important}input[type=range]::-moz-range-thumb{width:12px!important;height:12px!important;border-radius:3px!important;background:#00eaff!important;border:1px solid rgba(0,234,255,.8)!important;box-shadow:0 0 10px #00eaffd9!important}input[type=checkbox]{accent-color:#00eaff}.daw-panel{background:rgba(14,18,32,.9);border:1px solid var(--nb-line);border-radius:6px;box-shadow:0 10px 34px #0000008c;transition:border-color .18s var(--nb-ease),box-shadow .18s var(--nb-ease)}.daw-panel:hover{border-color:#00eaff59;box-shadow:0 10px 34px #0009,0 0 18px #00eaff1f}.daw-inset{background:linear-gradient(180deg,rgba(4,7,14,.9),rgba(10,14,24,.75));box-shadow:inset 0 1px 3px #000c,inset 0 0 0 1px #8892b024;border-radius:6px}.daw-text-glow{text-shadow:0 0 8px rgba(0,234,255,.55),0 0 20px rgba(0,234,255,.25)}.daw-hairline{background:linear-gradient(90deg,transparent,rgba(0,234,255,.35) 20%,rgba(0,234,255,.35) 80%,transparent)}.daw-num{font-family:var(--daw-font-display);font-variant-numeric:tabular-nums;letter-spacing:.06em}.daw-cjk{font-family:var(--daw-font-mono);letter-spacing:.02em}button:not(.piano-white-key):not(.piano-black-key){background-color:var(--nb-solid)!important;background-image:none!important;border:1px solid var(--nb-line)!important;border-radius:6px!important;color:var(--nb-muted)!important;box-shadow:none!important;transition:all .18s var(--nb-ease)!important;cursor:pointer}button:not(.piano-white-key):not(.piano-black-key):hover:not(:disabled){border-color:#00eaff99!important;background-color:#00eaff1a!important;color:var(--nb-cyan)!important;box-shadow:var(--nb-glow-cyan)!important}button:not(.piano-white-key):not(.piano-black-key):active:not(:disabled){transform:scale(.96);filter:brightness(1.2)}button:disabled{opacity:.45;cursor:not-allowed}button:is(.active,.on,.selected,.is-active,.primary,.modal-btn--primary,.duration-selected):not(.piano-white-key):not(.piano-black-key){border-color:#00eaffb3!important;background-color:#00eaff26!important;color:var(--nb-cyan)!important;box-shadow:var(--nb-glow-cyan-strong)!important}button:is(.mc-modal-close,.map-modal-close,.danger,.rec-del-btn):hover{border-color:#ff2299b3!important;color:var(--nb-pink)!important;background-color:#ff22991f!important;box-shadow:var(--nb-glow-pink)!important}:is(.modal-overlay,.mc-modal-overlay,.login-modal-overlay,.lp-overlay,.color-picker-overlay){background:rgba(12,16,28,.62)!important;backdrop-filter:blur(3px)!important;-webkit-backdrop-filter:blur(3px)!important}:is(.modal-box,.mc-modal-box,.map-modal-box,.login-modal){background:linear-gradient(180deg,#0c101c 0%,#090d17 100%)!important;border:1px solid rgba(0,234,255,.18)!important;border-radius:10px!important;color:var(--text-primary)!important;box-shadow:inset 0 1px #00eaff1a,0 10px 34px #0000009e,0 0 24px #00eaff14!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}:is(.mc-modal-header,.modal-header){display:flex!important;align-items:center!important;height:36px!important;min-height:36px!important;padding:0 12px!important;gap:8px!important;background:linear-gradient(180deg,#111c31 0%,#0c1322 100%)!important;border-bottom:1px solid rgba(0,234,255,.22)!important;box-shadow:none!important}:is(.mc-modal-header,.modal-header):before{content:""!important;flex:none!important;display:block!important;width:3px!important;height:14px!important;border-radius:2px!important;background:#00eaff!important;box-shadow:0 0 8px #00eaff,0 0 16px #00eaff80!important}:is(.mc-modal-header,.modal-header) :is(h1,h2,h3,.mc-modal-title){margin:0!important;font-family:var(--daw-font-display)!important;font-size:11px!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.16em!important;color:var(--nb-cyan)!important;text-shadow:0 0 10px rgba(0,234,255,.55)!important}.midi-connector{background:linear-gradient(180deg,rgba(53,53,63,.6) 0%,transparent 44%),linear-gradient(180deg,#32323b 0%,#27272f 55%,#1f1f26 100%)!important;border-bottom:1px solid #0d0d11!important;box-shadow:inset 0 1px #ffffff14,inset 0 -1px #00000080,0 3px 10px #00000080!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.midi-left .brand-name,.brand-name{font-family:var(--daw-font-display)!important;font-size:15px!important;font-weight:800!important;letter-spacing:.06em!important;line-height:26px!important;color:var(--txt-1, #e8ecf4)!important;text-shadow:0 1px 0 rgba(0,0,0,.6)!important}.brand-name .brand-char{animation:neon-glow 3s ease-in-out infinite!important}@keyframes neon-glow{0%,to{color:#00eaff}50%{color:#f29}}.brand-icon{color:var(--txt-1, #e8ecf4)!important;filter:drop-shadow(0 0 5px rgba(0,234,255,.35))}.brand-blocks .b-block{animation:block-shift 3s ease-in-out infinite}.brand-blocks .b2{animation-duration:3.7s;animation-delay:-.5s}.brand-blocks .b3{animation-duration:4.3s;animation-delay:-1.2s}.brand-blocks .b4{animation-duration:3.3s;animation-delay:-2.1s}@keyframes block-shift{0%,to{fill:#e8ecf4}10%,20%{fill:#ff4d6d}30%{fill:#ffa502}40%{fill:#ffdd59}50%{fill:#29e6a0}60%{fill:#00eaff}70%{fill:#5352ed}80%,90%{fill:#f29}}.loaded-song-name{color:#8792ad!important;font-family:var(--font-ui)!important;font-size:11.5px!important;font-weight:500!important;letter-spacing:.06em!important;text-shadow:none!important}.device-name{color:#6b7694!important;font-family:var(--font-ui)!important;font-size:10.5px!important;letter-spacing:.08em!important;text-transform:none!important}:is(.load-container,.audio-controls,.play-bar,.record-bar,.recording-list,.track-controls,.player-container,.lp-card,.lp-panel){background:linear-gradient(180deg,rgba(14,18,32,.92) 0%,rgba(9,13,23,.92) 100%)!important;border:1px solid var(--nb-line)!important;border-radius:10px!important;box-shadow:inset 0 1px #00eaff0f,0 10px 30px #00000080!important}:is(.part-upload-title,.recording-title,.knob-label){font-family:var(--daw-font-display)!important;font-size:10px!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.18em!important;color:var(--nb-muted)!important}.card-divider{background:linear-gradient(180deg,transparent,rgba(0,234,255,.35),transparent)!important;opacity:.9}.knob-divider{background:linear-gradient(180deg,transparent,rgba(136,146,176,.45),transparent)!important}:is(.knob-value,.time-display,.rec-duration,.mi-tag){font-family:var(--daw-font-display)!important;letter-spacing:.08em!important}.knob-value{color:var(--nb-cyan)!important;font-size:9.5px!important;text-transform:uppercase!important}.time-display{color:var(--nb-muted)!important}:is(.wave-canvas,.preview-canvas){background-color:#080d18!important;border:1px solid var(--nb-line)!important;border-radius:6px!important;box-shadow:inset 0 1px 3px #000000b3!important}.recording-item:hover{background:rgba(0,234,255,.08)!important}.recording-item.active{background:rgba(0,234,255,.12)!important;box-shadow:inset 0 0 0 1px #00eaff59!important}.container{max-width:1680px!important;padding:0 16px 24px!important;font-family:var(--daw-font-display)!important;font-size:12px!important}.container{max-width:1560px!important;width:100%;margin:0 auto!important;padding:0 14px 40px!important;display:flex;flex-direction:column;gap:10px;font-family:var(--daw-font-display);font-size:11px}.container>.midi-connector{position:sticky;top:0;z-index:60;margin:0 -14px;height:52px;padding:0 14px!important;display:flex!important;align-items:center!important;justify-content:space-between;backdrop-filter:none;-webkit-backdrop-filter:none}.midi-connector .midi-left{display:flex;align-items:center;gap:10px;min-width:0}.midi-connector .brand-icon{width:26px!important;height:26px!important;flex:none}.midi-connector .brand-name{white-space:nowrap}.nav-sep{flex:none;width:1px;height:22px;background:linear-gradient(180deg,transparent 0%,rgba(136,146,176,.62) 50%,transparent 100%)}.midi-connector .changelog-btn,.midi-connector .icon-btn,.midi-connector .mc-song-btn{height:26px!important;min-width:26px!important;padding:0 8px!important;display:inline-flex!important;align-items:center;justify-content:center;gap:5px;border:0!important;border-radius:4px!important;background:none!important;box-shadow:none!important;color:#8792ad!important;font-family:var(--font-ui)!important;font-size:11.5px!important;font-weight:500!important;letter-spacing:.08em!important;line-height:1!important;white-space:nowrap;flex:none;transition:color .14s ease,background-color .14s ease!important;-webkit-tap-highlight-color:transparent}.midi-connector .icon-btn,.midi-connector .mc-song-btn{padding:0 5px!important}.midi-connector .changelog-btn:hover,.midi-connector .icon-btn:hover,.midi-connector .mc-song-btn:hover{color:#fff!important;background-color:#ffffff12!important;box-shadow:none!important;border:0!important}.midi-connector .changelog-btn:active,.midi-connector .icon-btn:active,.midi-connector .mc-song-btn:active{color:#00eaff!important;background-color:#00eaff1a!important}.midi-connector .icon-btn svg,.midi-connector .mc-song-btn svg{stroke:currentColor;opacity:.85;transition:opacity .14s ease}.midi-connector .icon-btn:hover svg,.midi-connector .mc-song-btn:hover svg{opacity:1}.midi-connector .icon-btn--light-on{color:#7fe9ff!important}.midi-connector .icon-btn--light-on:hover{color:#fff!important}.midi-connector .icon-btn--light-off{color:#586279!important}.midi-connector .midi-icon-bar{margin-left:auto;display:flex;align-items:center;gap:6px}.midi-connector .loaded-song-name{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:4px}.midi-connector .midi-dot{width:5px;height:5px}.midi-connector .midi-indicators{display:inline-flex;align-items:center;gap:4px;margin-right:4px}.load-container,.audio-controls,.midi-editor{position:relative;margin:0!important;border-radius:6px!important;background:rgba(14,18,32,.9)!important;border:1px solid rgba(136,146,176,.22)!important;box-shadow:0 10px 34px #0000008c!important}.load-container{padding:9px 10px 10px!important}.controls-row{display:grid!important;grid-template-columns:118px 104px minmax(0,1fr) 305px;align-items:stretch!important;gap:8px!important;flex-wrap:nowrap!important}.controls-row>.card-divider{display:none!important}.part-upload-group{display:flex!important;flex-direction:column;align-items:stretch!important;justify-content:flex-start;gap:5px;padding:6px 7px 7px!important;min-width:0;flex:none!important;background:rgba(8,12,21,.55)!important;border:1px solid rgba(136,146,176,.16)!important;border-radius:8px!important}.part-upload-group:hover{border-color:#00eaff4d!important}.part-upload-title{font-size:8.5px!important;font-weight:600!important;letter-spacing:.2em!important;text-transform:uppercase;color:#8892b0d9!important;padding-left:2px;line-height:1;flex:none}.part-upload-row{display:flex!important;flex-wrap:nowrap!important;align-items:center;gap:3px!important;min-width:0}.part-upload-group{overflow:hidden;min-width:0}.part-upload-group .sound-selector,.part-upload-group .duration-row{width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;padding-bottom:2px;scrollbar-width:thin}.part-upload-group:nth-child(3){min-width:0}.part-upload-btn{width:44px!important;min-width:44px!important;height:50px!important;padding:3px 2px!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:7px!important;background:rgba(14,18,32,.6)!important;border:1px solid transparent!important;color:var(--nb-muted)!important;transition:all .18s var(--nb-ease)!important}.part-upload-btn:hover{background:rgba(0,234,255,.08)!important;border-color:#00eaff66!important;color:var(--nb-cyan)!important}.part-upload-btn .part-icon{width:18px!important;height:18px!important;flex:none}.part-upload-btn .part-label{font-size:8px!important;line-height:1.1;letter-spacing:.02em;white-space:nowrap}.part-upload-btn:is(.duration-selected,.active){background:rgba(0,234,255,.16)!important;border-color:#00eaffb3!important;color:var(--nb-cyan)!important;box-shadow:var(--nb-glow-cyan)!important}.duration-row .part-upload-btn{width:42px!important;min-width:42px!important}.sound-selector{display:flex!important;align-items:center;gap:3px!important;flex-wrap:nowrap!important}.sound-selector .icon-item{width:44px!important;min-width:44px!important;height:50px!important;padding:3px 2px!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:7px!important;border:1px solid transparent!important;background:rgba(14,18,32,.6)!important;color:var(--nb-muted)!important;transition:all .18s var(--nb-ease)!important}.sound-selector .icon-item:hover{background:rgba(0,234,255,.08)!important;border-color:#00eaff66!important;color:var(--nb-cyan)!important}.sound-selector .icon-item .sound-icon{width:18px;height:18px;flex:none}.sound-selector .icon-item .icon-label{font-size:8px!important;line-height:1.1;letter-spacing:.02em;white-space:nowrap;color:inherit!important}.sound-selector .icon-item.selected,.sound-selector .icon-item.active{background:rgba(0,234,255,.16)!important;border-color:#00eaffb3!important;color:var(--nb-cyan)!important;box-shadow:var(--nb-glow-cyan)!important}.audio-controls{display:flex!important;flex-wrap:nowrap!important;align-items:center!important;gap:10px!important;padding:10px 12px 12px!important;min-height:84px}.audio-controls>.knob-control{display:grid;grid-template-rows:12px 38px 12px;align-content:center;justify-items:center;gap:3px;min-width:50px!important;padding:0!important;position:relative}.audio-controls>.knob-control:first-of-type{margin-left:2px}.audio-controls>.knob-control:nth-of-type(-n + 3) .ctrl-btn{border-radius:9px!important}.audio-controls>.knob-control:nth-of-type(3){margin-right:4px}.knob-label{font-size:8px!important;letter-spacing:.16em!important;text-transform:uppercase;color:#8892b0e6!important;margin:0!important;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.knob-value{font-size:9px!important;letter-spacing:.04em!important;color:var(--nb-cyan)!important;font-variant-numeric:tabular-nums;margin:0!important;white-space:nowrap}.audio-controls .ctrl-btn{width:38px!important;height:38px!important;border-radius:10px!important;border:1px solid rgba(136,146,176,.22)!important;background:linear-gradient(180deg,#131a2b,#0a0e18)!important;display:flex!important;align-items:center;justify-content:center;transition:all .18s var(--nb-ease)!important}.audio-controls .ctrl-btn:hover{border-color:#00eaff99!important;box-shadow:var(--nb-glow-cyan)!important}.audio-controls .ctrl-btn.active{background:rgba(0,234,255,.18)!important;border-color:#00eaffbf!important;box-shadow:var(--nb-glow-cyan-strong)!important}.audio-controls .knob{width:32px!important;height:32px!important}.audio-controls .knob.metro-btn{width:34px!important;height:34px!important;font-size:13px!important;color:var(--nb-cyan)}.audio-controls .wave-canvas{flex:1 1 220px!important;width:auto!important;min-width:160px!important;height:52px!important;margin:0 6px!important;border-radius:6px!important}.audio-controls .knob-divider{display:block;width:1px!important;height:42px!important;align-self:center;background:linear-gradient(180deg,transparent,rgba(136,146,176,.35),transparent)!important;flex:none}.audio-controls .rec-midi-check{font-size:8px!important;letter-spacing:.04em;color:#8892b0d9;white-space:nowrap;gap:3px;display:inline-flex;align-items:center;margin:0!important}.audio-controls .rec-midi-check input{width:9px;height:9px;margin:0}.audio-controls .bpm-input{width:46px!important;height:16px;text-align:center;font-size:9.5px!important;padding:0!important;border:none!important;border-bottom:1px solid rgba(136,146,176,.25)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:var(--nb-cyan)!important}.audio-controls .bpm-input:focus{border-bottom-color:#00eaffcc!important;box-shadow:none!important}.audio-controls .mute-button{position:absolute;top:50%;right:-10px;transform:translateY(-50%);width:16px;height:16px;padding:0!important;border:none!important;background:transparent!important;box-shadow:none!important;color:#8892b0b3!important;font-size:9px}.audio-controls .mute-button:hover{color:var(--nb-cyan)!important;background:transparent!important;box-shadow:none!important}.midi-editor{flex:1 1 auto;min-height:460px;display:flex;flex-direction:column}.editor-toolbar{height:40px!important;min-height:40px;padding:0 10px!important;gap:4px!important;flex-wrap:nowrap!important;align-items:center!important;background:linear-gradient(180deg,#141926 0%,#0e131f 100%)!important;border-bottom:1px solid rgba(0,0,0,.55)!important;border-radius:6px 6px 0 0!important;box-shadow:inset 0 1px #ffffff0d}.editor-toolbar .et-btn{height:24px!important;padding:0 9px!important;font-size:9.5px!important;letter-spacing:.1em;text-transform:uppercase;border-radius:5px!important;border:1px solid transparent!important;background:transparent!important;color:#8892b0f2!important;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;box-shadow:none!important}.editor-toolbar .et-btn:hover{background:rgba(0,234,255,.08)!important;border-color:#00eaff4d!important;color:var(--nb-cyan)!important;box-shadow:none!important}.editor-toolbar .et-btn.active,.editor-toolbar .et-btn.is-active{background:rgba(0,234,255,.14)!important;border-color:#00eaff8c!important;color:var(--nb-cyan)!important;box-shadow:inset 0 0 14px #00eaff1f!important}.editor-toolbar .et-divider{width:1px!important;height:16px!important;background:rgba(136,146,176,.25)!important;margin:0 4px}.midi-editor .live-piano{width:54px!important;flex:none;background:#0a0f1a}.midi-editor .live-ruler{height:20px!important}.midi-editor .live-key-row{font-size:8px!important;padding-right:4px!important;letter-spacing:.02em}.midi-editor .editor-body{background:#080d18}.editor-toolbar .midi-info-tags{gap:10px!important;font-size:9px!important;letter-spacing:.14em;text-transform:uppercase;color:#8892b0cc!important}.editor-toolbar .mi-label{font-size:8.5px!important;letter-spacing:.16em;color:#8892b0bf!important}.editor-toolbar .mi-tag{font-size:10px!important;color:var(--nb-ink)!important;font-variant-numeric:tabular-nums;letter-spacing:.04em}.editor-toolbar .mi-sep{display:none!important}.page-footer{position:fixed!important;left:0;right:0;bottom:0;z-index:55;display:flex!important;align-items:center;justify-content:flex-end;gap:6px;height:26px;padding:0 16px!important;background:linear-gradient(180deg,rgba(9,13,23,.88),rgba(6,9,16,.97))!important;border-top:1px solid rgba(0,234,255,.16);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:8.5px!important;letter-spacing:.16em;text-transform:uppercase;color:#8892b0bf}.page-footer .footer-link{letter-spacing:.1em}.page-footer:before{content:"MIDIFOX PIANO \b7  ONLINE";margin-right:auto;color:#00eaff80;letter-spacing:.22em;order:-1}@media (max-width: 1024px){.controls-row{grid-template-columns:112px 100px minmax(0,1fr)}.controls-row>.part-upload-group:last-of-type{grid-column:1 / -1}.controls-row>.part-upload-group:last-of-type .part-upload-row{justify-content:flex-start;padding-left:2px}.audio-controls{flex-wrap:wrap!important}.audio-controls .wave-canvas{flex:1 1 100%!important;order:9;min-width:100%!important;margin:2px 0 0!important;height:40px!important}}@media (max-width: 760px){.container{padding:0 8px 40px!important;gap:8px}.container>.midi-connector{margin:0 -8px;padding:0 8px!important}.controls-row{grid-template-columns:1fr}.controls-row>.part-upload-group,.controls-row>.part-upload-group:last-of-type{grid-column:auto}.part-upload-row{flex-wrap:wrap!important}.audio-controls>.knob-control{min-width:44px!important}.midi-connector .loaded-song-name{max-width:110px}.editor-toolbar{overflow-x:auto}}
