:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.card{padding:2em}#app{width:100%;margin:0;padding:0;text-align:center}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{box-sizing:border-box;margin:0;padding:0}#app{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;background:#f5f5f5}.main-nav{background:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 2px 4px #0000000d;position:sticky;top:0;z-index:1000}.nav-container{max-width:1400px;margin:0 auto;padding:0 20px;display:flex;justify-content:space-between;align-items:center;height:60px}.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:#333;font-weight:600;font-size:1.1rem}.nav-logo .logo-img{height:35px;width:auto}.logo-text{font-weight:700;color:#2c3e50}.nav-links{display:flex;gap:5px}.nav-link{padding:8px 16px;text-decoration:none;color:#666;border-radius:6px;font-weight:500;font-size:.95rem;transition:all .2s;display:flex;align-items:center;gap:6px}.nav-link:hover{background:#f5f5f5;color:#333}.nav-link.active{background:#3498db;color:#fff}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}@media(max-width:768px){.nav-container{flex-direction:column;height:auto;padding:10px 20px;gap:10px}.nav-links{width:100%;justify-content:space-around}.nav-link{flex:1;text-align:center;justify-content:center}}.bluetooth-container[data-v-3bad07ab]{display:flex;align-items:center;gap:8px}.bluetooth-btn[data-v-3bad07ab]{position:relative;width:42px;height:42px;border-radius:10px;border:1px solid rgba(48,54,61,.8);background:#2196f326;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .2s ease}.bluetooth-btn[data-v-3bad07ab]:hover{background:#2196f340;border-color:#2196f3}.bluetooth-btn.connecting[data-v-3bad07ab]{animation:pulse-3bad07ab 1s infinite}@keyframes pulse-3bad07ab{0%,to{opacity:1}50%{opacity:.5}}.bt-icon[data-v-3bad07ab]{width:22px;height:22px;fill:#58a6ff}.status-dot[data-v-3bad07ab]{position:absolute;bottom:4px;right:4px;width:8px;height:8px;border-radius:50%;background:#3fb950;border:1px solid rgba(22,27,34,.8);display:none;box-shadow:0 0 4px #3fb950}.status-dot.connected[data-v-3bad07ab]{display:block}.battery-indicator[data-v-3bad07ab]{display:flex;align-items:center;gap:4px;font-size:12px;color:#8b949e}.battery-indicator.high[data-v-3bad07ab]{color:#3fb950}.battery-indicator.medium[data-v-3bad07ab]{color:#d29922}.battery-indicator.low[data-v-3bad07ab]{color:#f85149}.battery-icon[data-v-3bad07ab]{width:16px;height:16px}.battery-text[data-v-3bad07ab]{font-weight:500}.usb-midi-container[data-v-de899d81]{display:flex;align-items:center;gap:4px}.usb-btn[data-v-de899d81]{display:flex;align-items:center;gap:4px;padding:6px 10px;border-radius:8px;border:1px solid rgba(48,54,61,.8);background:#64646426;cursor:pointer;transition:all .2s ease;color:#8b949e}.usb-btn[data-v-de899d81]:hover{background:#64646440;border-color:#8b949e}.usb-btn.connected[data-v-de899d81]{background:#3fb95026;border-color:#3fb95080;color:#3fb950}.usb-btn.connected[data-v-de899d81]:hover{background:#3fb95040}.usb-icon[data-v-de899d81]{width:18px;height:18px;fill:currentColor}.status-text[data-v-de899d81]{font-size:12px;font-weight:500}.bootloader-btn[data-v-de899d81]{width:32px;height:32px;border-radius:8px;border:1px solid rgba(48,54,61,.8);background:#ff980026;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .2s ease}.bootloader-btn[data-v-de899d81]:hover{background:#ff980059;border-color:#ff9800}.bootloader-icon[data-v-de899d81]{width:18px;height:18px;fill:#ff9800}.soundfont-player[data-v-c5ba697b]{position:fixed;bottom:100px;right:10px;display:flex;flex-direction:column;gap:8px;align-items:flex-end;z-index:9999}.loading-text[data-v-c5ba697b]{padding:8px 12px;background:#000000b3;color:#fff;border-radius:4px;font-size:12px}.resume-warning[data-v-c5ba697b]{padding:12px 20px;background:#f85149;color:#fff;border-radius:8px;font-weight:700;cursor:pointer;box-shadow:0 4px 12px #0000004d;animation:pulse-c5ba697b 2s infinite}@keyframes pulse-c5ba697b{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.soundfont-selector[data-v-d5e02eb0]{display:flex;align-items:center;gap:8px}.soundfont-selector label[data-v-d5e02eb0]{font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:.5px;font-weight:500}.soundfont-selector select[data-v-d5e02eb0]{background:#161b22cc;color:#e6edf3;border:1px solid rgba(48,54,61,.8);border-radius:8px;padding:8px 12px;font-size:13px;cursor:pointer;min-width:160px;transition:all .2s ease}.soundfont-selector select[data-v-d5e02eb0]:hover{border-color:#58a6ff;background:#161b22}.soundfont-selector select[data-v-d5e02eb0]:focus{outline:none;border-color:#58a6ff;box-shadow:0 0 0 3px #58a6ff26}.loading[data-v-d5e02eb0]{font-size:11px;color:#58a6ff;animation:pulse-d5e02eb0 1s infinite}@keyframes pulse-d5e02eb0{0%,to{opacity:1}50%{opacity:.4}}@media(max-width:1200px){.soundfont-selector select[data-v-d5e02eb0]{min-width:140px;padding:6px 10px;font-size:12px}}@media(max-height:700px){.soundfont-selector[data-v-d5e02eb0]{gap:6px}.soundfont-selector label[data-v-d5e02eb0]{font-size:10px}.soundfont-selector select[data-v-d5e02eb0]{padding:5px 8px;font-size:11px;min-width:120px}}.instrument-selector[data-v-d85f96eb]{display:flex;align-items:center;gap:8px}.instrument-selector select[data-v-d85f96eb]{background:#161b22cc;color:#e6edf3;border:1px solid rgba(48,54,61,.8);border-radius:8px;padding:8px 12px;font-size:13px;cursor:pointer;transition:all .2s ease}.bank-select[data-v-d85f96eb]{min-width:90px}.instrument-select[data-v-d85f96eb]{min-width:180px}.instrument-selector select[data-v-d85f96eb]:hover{border-color:#58a6ff;background:#161b22}.instrument-selector select[data-v-d85f96eb]:focus{outline:none;border-color:#58a6ff;box-shadow:0 0 0 3px #58a6ff26}.single-instrument[data-v-d85f96eb]{background:#161b22cc;color:#e6edf3;border:1px solid rgba(48,54,61,.8);border-radius:8px;padding:8px 12px;font-size:13px}@media(max-width:1200px){.instrument-selector select[data-v-d85f96eb]{padding:6px 10px;font-size:12px}.bank-select[data-v-d85f96eb]{min-width:80px}.instrument-select[data-v-d85f96eb]{min-width:150px}}@media(max-height:700px){.instrument-selector[data-v-d85f96eb]{gap:6px}.instrument-selector select[data-v-d85f96eb]{padding:5px 8px;font-size:11px}.bank-select[data-v-d85f96eb]{min-width:70px}.instrument-select[data-v-d85f96eb]{min-width:130px}.single-instrument[data-v-d85f96eb]{padding:5px 8px;font-size:11px}}.synth-controls[data-v-030fa602]{display:flex;align-items:center;gap:20px}.control-item[data-v-030fa602]{display:flex;align-items:center;gap:8px}.control-item label[data-v-030fa602]{font-size:11px;color:#8b949e;text-transform:uppercase;letter-spacing:.5px;font-weight:500;min-width:45px}.control-item input[type=range][data-v-030fa602]{-webkit-appearance:none;appearance:none;width:80px;height:6px;background:#30363dcc;border-radius:3px;cursor:pointer;outline:none;border:none}.control-item input[type=range][data-v-030fa602]::-webkit-slider-runnable-track{width:100%;height:6px;background:#30363dcc;border-radius:3px;cursor:pointer}.control-item input[type=range][data-v-030fa602]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;background:#58a6ff;border-radius:50%;cursor:pointer;transition:transform .1s ease;margin-top:-4px}.control-item input[type=range][data-v-030fa602]::-webkit-slider-thumb:hover{transform:scale(1.15)}.control-item input[type=range][data-v-030fa602]::-moz-range-thumb{width:14px;height:14px;background:#58a6ff;border-radius:50%;cursor:pointer;border:none}.control-item .value[data-v-030fa602]{font-size:12px;color:#58a6ff;font-weight:600;font-family:SF Mono,Monaco,Consolas,monospace;min-width:28px;text-align:right}@media(max-width:1200px){.synth-controls[data-v-030fa602]{gap:14px}.control-item input[type=range][data-v-030fa602]{width:60px}}@media(max-height:700px){.synth-controls[data-v-030fa602]{gap:12px}.control-item[data-v-030fa602]{gap:6px}.control-item label[data-v-030fa602]{font-size:10px;min-width:40px}.control-item input[type=range][data-v-030fa602]{width:50px;height:5px}.control-item input[type=range][data-v-030fa602]::-webkit-slider-thumb{width:12px;height:12px}.control-item .value[data-v-030fa602]{font-size:11px;min-width:24px}}.accordion-container[data-v-e0a2caa5]{position:relative;display:flex;flex-direction:column;align-items:center;padding-top:40px}.controls[data-v-e0a2caa5]{position:absolute;top:0;right:0}.rotate-btn[data-v-e0a2caa5]{background:transparent;border:1px solid rgba(48,54,61,.8);color:#8b949e;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;padding:0}.rotate-btn[data-v-e0a2caa5]:hover{background:#30363d66;color:#58a6ff;border-color:#58a6ff}.rotate-btn[data-v-e0a2caa5]:active{transform:translateY(1px);background:#30363d99}.rotate-btn.active[data-v-e0a2caa5]{background:#58a6ff26;color:#58a6ff;border-color:#58a6ff}.accordion[data-v-e0a2caa5]{display:flex;flex-direction:column;align-items:center}.row[data-v-e0a2caa5]{display:flex;gap:4.7mm}.button[data-v-e0a2caa5]{width:14.3mm;height:14.3mm;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .1s,box-shadow .1s;box-shadow:0 2mm 4mm #0000004d;font-size:10px;text-align:center}.button.white[data-v-e0a2caa5]{background-color:#fff;border:1px solid #000;color:#000}.button.black[data-v-e0a2caa5]{background-color:#000;border:1px solid #fff;color:#fff}.button[data-v-e0a2caa5]:active,.button.active[data-v-e0a2caa5]{transform:translateY(1mm);box-shadow:0 1mm 2mm #00000080}.button.wrong-active[data-v-e0a2caa5]{outline:4px solid #fc5454;box-shadow:0 0 8px #fc5454,0 0 12px #ff3636cc}.button.highlight-green[data-v-e0a2caa5]{outline:4px solid #a6ef9f;box-shadow:0 0 8px #a6ef9f,0 0 12px #a6ef9fcc}.button.highlight-red[data-v-e0a2caa5]{outline:4px solid #fc5454;box-shadow:0 0 8px #fc5454,0 0 12px #ff3636cc}.button.highlight-orange[data-v-e0a2caa5]{box-shadow:0 0 0 4px #ffc107,0 0 15px #ffc107cc;z-index:10}.note-label[data-v-e0a2caa5]{line-height:1}.fingering[data-v-e0a2caa5]{font-size:22px;font-weight:900;line-height:1}.button.white .fingering[data-v-e0a2caa5]{color:#000;text-shadow:none}.button.black .fingering[data-v-e0a2caa5]{color:#fff;text-shadow:0 0 4px rgba(0,0,0,.8)}.button.white.highlight-orange .fingering[data-v-e0a2caa5]{color:#000;text-shadow:none}.button.black.highlight-orange .fingering[data-v-e0a2caa5]{color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.5)}.accordion.rotated[data-v-e0a2caa5]{transform:rotate(-90deg);transform-origin:center center}.accordion-container.mode-3d[data-v-e0a2caa5]{perspective:800px;perspective-origin:center bottom}.accordion.perspective3d[data-v-e0a2caa5]{transform:rotateX(55deg);transform-origin:center bottom;transform-style:preserve-3d}.accordion.perspective3d .row[data-v-e0a2caa5]{gap:3mm}.accordion.perspective3d .button[data-v-e0a2caa5]{width:6.5mm;height:6.5mm;font-size:6px;box-shadow:0 1mm 2mm #0006}.accordion.perspective3d .fingering[data-v-e0a2caa5]{font-size:8px}@media(max-height:900px){.button[data-v-e0a2caa5]{width:12mm;height:12mm;font-size:9px}.row[data-v-e0a2caa5]{gap:4mm}.fingering[data-v-e0a2caa5]{font-size:13px}}@media(max-height:800px){.button[data-v-e0a2caa5]{width:11mm;height:11mm;font-size:8px}.row[data-v-e0a2caa5]{gap:3.5mm}.fingering[data-v-e0a2caa5]{font-size:12px}.accordion-container[data-v-e0a2caa5]{padding-top:32px}}@media(max-height:700px){.button[data-v-e0a2caa5]{width:10mm;height:10mm;font-size:7px;box-shadow:0 1.5mm 3mm #0000004d}.row[data-v-e0a2caa5]{gap:3mm}.fingering[data-v-e0a2caa5]{font-size:10px}.accordion-container[data-v-e0a2caa5]{padding-top:28px}.rotate-btn[data-v-e0a2caa5]{width:28px;height:28px}}@media(max-width:1200px){.button[data-v-e0a2caa5]{width:12mm;height:12mm;font-size:9px}.row[data-v-e0a2caa5]{gap:4mm}}@media(max-width:900px){.button[data-v-e0a2caa5]{width:11mm;height:11mm;font-size:8px}.row[data-v-e0a2caa5]{gap:3.5mm}.accordion-container[data-v-e0a2caa5]{padding-top:30px}}@media(max-width:700px){.button[data-v-e0a2caa5]{width:9mm;height:9mm;font-size:7px;box-shadow:0 1.5mm 2.5mm #0000004d}.row[data-v-e0a2caa5]{gap:2.5mm}.fingering[data-v-e0a2caa5]{font-size:10px}.rotate-btn[data-v-e0a2caa5]{width:26px;height:26px}}@media(max-width:480px){.button[data-v-e0a2caa5]{width:7mm;height:7mm;font-size:6px;box-shadow:0 1mm 2mm #0000004d}.row[data-v-e0a2caa5]{gap:2mm}.fingering[data-v-e0a2caa5]{font-size:8px}}.mxl-parser[data-v-66b7cb5a]{display:flex;align-items:center}.control-btn[data-v-66b7cb5a]{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#8b5cf626;border:1px solid rgba(139,92,246,.4);color:#a78bfa;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s ease}.control-btn[data-v-66b7cb5a]:hover{background:#8b5cf640;border-color:#8b5cf699}.control-btn .icon[data-v-66b7cb5a]{font-size:14px}.control-btn .text[data-v-66b7cb5a]{font-weight:600}.osmd-wrapper[data-v-b74debb2]{width:100%;background:#0d1117;border:1px solid rgba(48,54,61,.8);border-radius:10px;padding:10px;box-shadow:inset 0 0 20px #00000080}.playback-controls[data-v-b74debb2]{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:8px;background:#0000004d;border-radius:6px;flex-wrap:wrap}.control-btn[data-v-b74debb2]{width:32px;height:32px;border:none;border-radius:6px;background:linear-gradient(135deg,#2c3e50,#34495e);color:#fff;font-size:14px;cursor:pointer;transition:all .2s;box-shadow:0 2px 6px #0000004d;display:flex;align-items:center;justify-content:center;padding:0}.btn-icon[data-v-b74debb2]{display:flex;align-items:center;justify-content:center;width:100%;height:100%;line-height:1}.control-btn[data-v-b74debb2]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0006}.control-btn[data-v-b74debb2]:active{transform:translateY(0)}.stop-btn[data-v-b74debb2]{background:linear-gradient(135deg,#7f8c8d,#95a5a6)}.loop-btn.active[data-v-b74debb2]{background:linear-gradient(135deg,#3498db,#2980b9)}.control-separator[data-v-b74debb2]{width:1px;height:32px;background:#fff3;margin:0 8px}.step-mode-btn[data-v-b74debb2]{background:linear-gradient(135deg,#9b59b6,#8e44ad)}.step-mode-btn.active[data-v-b74debb2]{background:linear-gradient(135deg,#27ae60,#2ecc71);box-shadow:0 0 12px #2ecc7180}.play-btn[data-v-b74debb2]{background:linear-gradient(135deg,#27ae60,#2ecc71);width:36px;height:36px}.play-btn[data-v-b74debb2]:hover{background:linear-gradient(135deg,#2ecc71,#27ae60)}.play-btn.playing[data-v-b74debb2]{background:linear-gradient(135deg,#e74c3c,#c0392b)}.reset-btn[data-v-b74debb2]{background:linear-gradient(135deg,#7f8c8d,#95a5a6)}.tempo-inline[data-v-b74debb2]{display:flex;align-items:center;gap:4px}.tempo-btn[data-v-b74debb2]{width:28px;height:28px;background:linear-gradient(135deg,#3498db,#2980b9)}.tempo-btn[data-v-b74debb2]:hover{background:linear-gradient(135deg,#2980b9,#3498db)}.tempo-display[data-v-b74debb2]{color:#ecf0f1;font-size:11px;font-weight:700;min-width:40px;text-align:center}.step-btn[data-v-b74debb2]{background:linear-gradient(135deg,#16a085,#1abc9c);width:28px;height:28px}.step-btn[data-v-b74debb2]:hover{background:linear-gradient(135deg,#1abc9c,#16a085)}.predict-btn[data-v-b74debb2]{background:linear-gradient(135deg,#9b59b6,#8e44ad);width:28px;height:28px}.predict-btn[data-v-b74debb2]:hover{background:linear-gradient(135deg,#8e44ad,#9b59b6)}.predict-btn.has-predictions[data-v-b74debb2]{background:linear-gradient(135deg,#27ae60,#2ecc71)}.prediction-status[data-v-b74debb2]{font-size:10px;color:#9b59b6;margin-left:4px}.step-info[data-v-b74debb2]{color:#ffffffb3;font-size:11px;margin-left:6px;white-space:nowrap;flex:1}.a4-btn[data-v-b74debb2]{background:linear-gradient(135deg,#34495e,#2c3e50);margin-left:auto}.a4-btn[data-v-b74debb2]:hover{background:linear-gradient(135deg,#3498db,#2980b9)}.a4-btn.active[data-v-b74debb2]{background:linear-gradient(135deg,#e67e22,#d35400);box-shadow:0 0 12px #e67e2280}.osmd-wrapper.a4-mode[data-v-b74debb2]{max-width:1100px;margin:0 auto;background:#fff;box-shadow:0 4px 20px #0000004d}.osmd-wrapper.a4-mode .osmd-container[data-v-b74debb2]{background:#fff;padding:30px 40px;min-height:1000px;overflow-x:hidden}.control-btn[data-v-b74debb2]:disabled{opacity:.4;cursor:not-allowed;transform:none}.control-btn[data-v-b74debb2]:disabled:hover{transform:none;box-shadow:0 2px 8px #0000004d}.tempo-control[data-v-b74debb2]{display:flex;flex-direction:column;gap:4px;flex:1;max-width:300px}.tempo-control label[data-v-b74debb2]{color:#ecf0f1;font-size:14px;font-weight:500}.tempo-slider[data-v-b74debb2]{width:100%;height:6px;border-radius:3px;background:#ffffff1a;outline:none;-webkit-appearance:none;appearance:none}.tempo-slider[data-v-b74debb2]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#3498db;cursor:pointer;box-shadow:0 2px 4px #0000004d}.tempo-slider[data-v-b74debb2]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#3498db;cursor:pointer;border:none;box-shadow:0 2px 4px #0000004d}.osmd-container[data-v-b74debb2]{width:100%;height:auto;overflow-x:auto;overflow-y:hidden;background-color:#fffbf0;border-radius:4px;box-shadow:0 2px 8px #0000004d;padding:0;scrollbar-width:thin;scrollbar-color:rgba(110,118,129,.4) transparent}.osmd-container[data-v-b74debb2]::-webkit-scrollbar{height:8px}.osmd-container[data-v-b74debb2]::-webkit-scrollbar-track{background:transparent}.osmd-container[data-v-b74debb2]::-webkit-scrollbar-thumb{background:#6e768166;border-radius:4px}.osmd-container[data-v-b74debb2]::-webkit-scrollbar-thumb:hover{background:#6e768199}@media(max-width:1200px){.osmd-wrapper[data-v-b74debb2]{padding:10px;border-radius:8px}.playback-controls[data-v-b74debb2]{gap:6px;padding:6px}.control-btn[data-v-b74debb2]{width:30px;height:30px;font-size:13px}.step-btn[data-v-b74debb2]{width:26px;height:26px}}@media(max-width:900px){.osmd-wrapper[data-v-b74debb2]{padding:8px;border-radius:6px}.playback-controls[data-v-b74debb2]{gap:5px;padding:5px;margin-bottom:8px}.control-btn[data-v-b74debb2]{width:28px;height:28px;font-size:12px}.step-btn[data-v-b74debb2]{width:24px;height:24px}.step-info[data-v-b74debb2]{font-size:10px}}@media(max-width:700px){.osmd-wrapper[data-v-b74debb2]{padding:6px;border-radius:5px}.playback-controls[data-v-b74debb2]{gap:4px;padding:4px;margin-bottom:6px}.control-btn[data-v-b74debb2]{width:26px;height:26px;font-size:11px;border-radius:4px}.step-btn[data-v-b74debb2]{width:22px;height:22px}.step-info[data-v-b74debb2]{font-size:9px;margin-left:3px}.osmd-container[data-v-b74debb2]{padding:4px}}@media(max-width:480px){.osmd-wrapper[data-v-b74debb2]{padding:4px}.playback-controls[data-v-b74debb2]{gap:3px;padding:3px}.control-btn[data-v-b74debb2]{width:24px;height:24px;font-size:10px}.step-btn[data-v-b74debb2]{width:20px;height:20px}.step-info[data-v-b74debb2]{font-size:8px}}@media(max-height:800px){.osmd-wrapper[data-v-b74debb2]{padding:10px}.playback-controls[data-v-b74debb2]{margin-bottom:8px;padding:6px}.control-btn[data-v-b74debb2]{width:28px;height:28px}}@media(max-height:700px){.osmd-wrapper[data-v-b74debb2]{padding:8px}.playback-controls[data-v-b74debb2]{margin-bottom:6px;padding:5px;gap:5px}.control-btn[data-v-b74debb2]{width:26px;height:26px;font-size:12px}.step-btn[data-v-b74debb2]{width:22px;height:22px}}.chord-identifier[data-v-c1f7d6b6]{display:flex;justify-content:center;align-items:center;pointer-events:none;height:40px;margin-bottom:8px}.chord-display[data-v-c1f7d6b6]{display:flex;align-items:center;justify-content:center}.chord-text[data-v-c1f7d6b6]{font-size:28px;font-weight:600;color:#58a6ff;text-shadow:0 0 20px rgba(88,166,255,.4);letter-spacing:.5px}.fade-enter-active[data-v-c1f7d6b6],.fade-leave-active[data-v-c1f7d6b6]{transition:opacity .2s ease}.fade-enter-from[data-v-c1f7d6b6],.fade-leave-to[data-v-c1f7d6b6]{opacity:0}.video-room[data-v-f9d762fc]{width:100%;height:100%;background:#161b22fa;border-left:1px solid rgba(48,54,61,.8);display:flex;flex-direction:column}.panel-header[data-v-f9d762fc]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#30363d66;border-bottom:1px solid rgba(48,54,61,.8)}.panel-title[data-v-f9d762fc]{font-weight:600;color:#e6edf3}.connect-form[data-v-f9d762fc]{padding:16px}.form-group[data-v-f9d762fc]{margin-bottom:12px}.form-group label[data-v-f9d762fc]{display:block;font-size:12px;color:#8b949e;margin-bottom:4px}.form-group .hint[data-v-f9d762fc]{opacity:.7}.form-group input[data-v-f9d762fc]{width:100%;padding:8px 12px;background:#0d1117cc;border:1px solid rgba(48,54,61,.8);border-radius:6px;color:#e6edf3;font-size:14px}.form-group input[data-v-f9d762fc]:focus{outline:none;border-color:#58a6ff}.error-message[data-v-f9d762fc]{margin-bottom:12px;padding:8px 12px;background:#f8514926;border:1px solid rgba(248,81,73,.4);border-radius:6px;color:#ff7b72;font-size:13px}.join-btn[data-v-f9d762fc]{width:100%;padding:10px;background:#238636;border:none;border-radius:6px;color:#fff;font-weight:600;cursor:pointer;transition:background .2s}.join-btn[data-v-f9d762fc]:hover:not(:disabled){background:#2ea043}.join-btn[data-v-f9d762fc]:disabled{opacity:.5;cursor:not-allowed}.help-text[data-v-f9d762fc]{margin-top:12px;font-size:11px;color:#8b949e;text-align:center}.help-text a[data-v-f9d762fc]{color:#58a6ff}.room-view[data-v-f9d762fc]{display:flex;flex-direction:column;flex:1;overflow:hidden}.participants-grid[data-v-f9d762fc]{display:grid;grid-template-columns:1fr;gap:8px;padding:8px;flex:1;overflow-y:auto}.participant[data-v-f9d762fc]{position:relative;aspect-ratio:16/9;background:#0d1117;border-radius:8px;overflow:hidden}.participant video[data-v-f9d762fc]{width:100%;height:100%;object-fit:cover}.participant.local video[data-v-f9d762fc]{transform:scaleX(-1)}.participant-name[data-v-f9d762fc]{position:absolute;bottom:4px;left:4px;font-size:10px;color:#fff;background:#0009;padding:2px 6px;border-radius:4px}.room-controls[data-v-f9d762fc]{display:flex;justify-content:center;gap:8px;padding:12px;border-top:1px solid rgba(48,54,61,.8)}.control-btn[data-v-f9d762fc]{padding:8px 16px;border-radius:6px;border:none;background:#30363d99;color:#e6edf3;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;font-size:13px;font-weight:600;min-width:80px}.control-btn[data-v-f9d762fc]:hover{background:#30363de6}.control-btn.off[data-v-f9d762fc]{background:#f851494d;color:#f85149}.control-btn.leave[data-v-f9d762fc]{background:#da3633}.control-btn.leave[data-v-f9d762fc]:hover{background:#f85149}.room-info[data-v-f9d762fc]{display:flex;justify-content:space-between;padding:8px 12px;font-size:11px;color:#8b949e;background:#30363d33}.keyboard-piano-wrapper[data-v-bd38af48]{width:100%;background:#161b22;border-top:1px solid rgba(48,54,61,.8);position:relative}.collapse-toggle[data-v-bd38af48]{position:absolute;top:-24px;right:16px;display:flex;align-items:center;gap:6px;padding:4px 12px;background:#30363de6;border:1px solid rgba(88,166,255,.3);border-bottom:none;border-radius:6px 6px 0 0;color:#8b949e;font-size:11px;cursor:pointer;transition:all .2s ease;z-index:10;outline:none}.collapse-toggle[data-v-bd38af48]:focus{outline:none}.collapse-toggle[data-v-bd38af48]:hover{background:#30363d;color:#58a6ff}.toggle-icon[data-v-bd38af48]{font-size:10px}.toggle-text[data-v-bd38af48]{display:inline}.keyboard-piano-container[data-v-bd38af48]{width:100%;padding:10px 0;overflow-x:auto;overflow-y:hidden;display:flex;justify-content:center}.keyboard-scroll[data-v-bd38af48]{overflow-x:auto;max-width:100%}.keyboard[data-v-bd38af48]{position:relative;height:120px}.key[data-v-bd38af48]{position:absolute;border-radius:0 0 4px 4px;cursor:pointer;box-sizing:border-box;transition:background-color .1s,transform .1s;-webkit-user-select:none;user-select:none}.key.white[data-v-bd38af48]{width:35px;height:120px;background:#fff;border:1px solid #ccc;z-index:1;color:#333;display:flex;align-items:flex-end;justify-content:center;padding-bottom:5px}.key.white[data-v-bd38af48]:hover{background:#f0f0f0}.key.white.active[data-v-bd38af48]{background:#ddd;transform:scale(.98);transform-origin:top}.key.black[data-v-bd38af48]{width:21px;height:75px;background:#000;border:1px solid #000;z-index:2}.key.black[data-v-bd38af48]:hover{background:#333}.key.black.active[data-v-bd38af48]{background:#444;transform:scale(.98);transform-origin:top}.key.wrong-active[data-v-bd38af48]{background:#fc5454!important}.key.highlight-green[data-v-bd38af48]{background:#a6ef9f!important}.key.highlight-red[data-v-bd38af48]{background:#fc5454!important}.key.highlight-orange[data-v-bd38af48]{box-shadow:0 0 0 2px #ffc107,0 0 10px #ffc107cc}.key.white.highlight-orange[data-v-bd38af48]{background:linear-gradient(to bottom,#fff5cc,#ffe680)!important;border-color:#ffc107}.key.black.highlight-orange[data-v-bd38af48]{background:linear-gradient(to bottom,#ffc107,#e6a800)!important;z-index:3}.note-label[data-v-bd38af48]{font-size:10px;pointer-events:none}.keyboard-scroll[data-v-bd38af48]::-webkit-scrollbar{height:6px}.keyboard-scroll[data-v-bd38af48]::-webkit-scrollbar-track{background:#0d1117}.keyboard-scroll[data-v-bd38af48]::-webkit-scrollbar-thumb{background:#30363d;border-radius:3px}@media(max-width:900px){.collapse-toggle[data-v-bd38af48]{padding:3px 8px;font-size:10px}.toggle-text[data-v-bd38af48]{display:none}.key.white[data-v-bd38af48]{width:28px}.key.black[data-v-bd38af48]{width:17px}}@media(max-height:800px){.keyboard-piano-container[data-v-bd38af48]{padding:8px 0}.keyboard[data-v-bd38af48],.key.white[data-v-bd38af48]{height:100px}.key.black[data-v-bd38af48]{height:62px}}@media(max-height:700px){.keyboard-piano-container[data-v-bd38af48]{padding:6px 0}.keyboard[data-v-bd38af48],.key.white[data-v-bd38af48]{height:85px}.key.black[data-v-bd38af48]{height:52px}.note-label[data-v-bd38af48]{font-size:8px}.collapse-toggle[data-v-bd38af48]{top:-20px;padding:2px 8px}}@media(max-width:600px){.key.white[data-v-bd38af48]{width:22px}.key.black[data-v-bd38af48]{width:13px}.note-label[data-v-bd38af48]{display:none}}.rhythm-trainer[data-v-da41c95e]{display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px;background:#161b22cc;border:1px solid rgba(48,54,61,.8);border-radius:12px;min-width:180px;width:100%;max-width:220px}.rhythm-header[data-v-da41c95e]{width:100%;padding-bottom:8px;border-bottom:1px solid rgba(48,54,61,.6)}.title[data-v-da41c95e]{font-size:14px;font-weight:600;color:#8b949e;text-transform:uppercase;letter-spacing:.5px}.rhythm-selector[data-v-da41c95e]{display:flex;flex-direction:column;gap:6px;width:100%}.rhythm-select[data-v-da41c95e]{padding:8px 10px;background:#1e232ae6;border:1px solid rgba(48,54,61,.8);border-radius:6px;color:#e6edf3;font-size:13px;width:100%;cursor:pointer}.rhythm-select[data-v-da41c95e]:focus{outline:none;border-color:#8b5cf699}.sequence-input[data-v-da41c95e]{display:flex;flex-direction:column;gap:6px;width:100%}.input-label[data-v-da41c95e]{font-size:12px;color:#8b949e}.chord-input[data-v-da41c95e]{flex:1;padding:8px 10px;background:#1e232ae6;border:1px solid rgba(48,54,61,.8);border-radius:6px;color:#e6edf3;font-size:13px;width:100%;box-sizing:border-box}.chord-input[data-v-da41c95e]:focus{outline:none;border-color:#8b5cf699}.apply-btn[data-v-da41c95e]{padding:6px 12px;background:#8b5cf633;border:1px solid rgba(139,92,246,.4);color:#a78bfa;border-radius:4px;cursor:pointer;font-size:12px;font-weight:600;margin-top:4px}.apply-btn[data-v-da41c95e]:hover{background:#8b5cf64d}.current-sequence[data-v-da41c95e]{display:flex;flex-wrap:wrap;gap:6px;width:100%}.chord-chip[data-v-da41c95e]{padding:4px 10px;background:#30363d99;border:1px solid rgba(48,54,61,.8);border-radius:12px;font-size:12px;color:#8b949e;transition:all .2s ease}.chord-chip.active[data-v-da41c95e]{background:#8b5cf64d;border-color:#8b5cf6;color:#e6edf3;box-shadow:0 0 8px #8b5cf666}.rhythm-btn[data-v-da41c95e]{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;background:#8b5cf626;border:1px solid rgba(139,92,246,.4);color:#a78bfa;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s ease;width:100%}.rhythm-btn[data-v-da41c95e]:hover{background:#8b5cf640;border-color:#8b5cf699}.rhythm-btn.playing[data-v-da41c95e]{background:#8b5cf659;border-color:#8b5cf6;box-shadow:0 0 12px #8b5cf666}.beat-indicator[data-v-da41c95e]{font-size:18px;transition:transform .1s ease}.rhythm-btn.beat .beat-indicator[data-v-da41c95e]{transform:scale(1.3)}.beat-indicator.bass[data-v-da41c95e]{color:#f59e0b}.beat-indicator.chord[data-v-da41c95e]{color:#10b981}.bpm-control[data-v-da41c95e]{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#1e232acc;padding:4px 8px;border-radius:6px;border:1px solid rgba(48,54,61,.8);width:100%}.bpm-btn[data-v-da41c95e]{width:28px;height:28px;border:none;background:#8b5cf633;color:#a78bfa;border-radius:4px;cursor:pointer;font-size:16px;font-weight:700;transition:all .2s ease;display:flex;align-items:center;justify-content:center;line-height:1}.bpm-btn[data-v-da41c95e]:hover{background:#8b5cf666}.bpm-value[data-v-da41c95e]{font-size:13px;font-weight:600;color:#e6edf3;min-width:65px;text-align:center}.timing-feedback[data-v-da41c95e]{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;min-height:40px}.timing-label[data-v-da41c95e]{font-size:12px;font-weight:600;padding:2px 8px;border-radius:4px;transition:all .2s ease}.timing-label.perfect[data-v-da41c95e]{color:#10b981;background:#10b98133}.timing-label.early[data-v-da41c95e]{color:#f59e0b;background:#f59e0b33}.timing-label.late[data-v-da41c95e]{color:#ef4444;background:#ef444433}.timing-bar[data-v-da41c95e]{width:100%;height:8px;background:#30363dcc;border-radius:4px;position:relative;overflow:hidden}.timing-center[data-v-da41c95e]{position:absolute;left:50%;top:0;bottom:0;width:2px;background:#ffffff4d;transform:translate(-50%)}.timing-marker[data-v-da41c95e]{position:absolute;top:50%;width:8px;height:8px;background:#a78bfa;border-radius:50%;transform:translate(-50%,-50%);transition:left .1s ease}@media(max-width:1400px){.rhythm-trainer[data-v-da41c95e]{max-width:200px;padding:10px;gap:8px}}@media(max-width:1200px){.rhythm-trainer[data-v-da41c95e]{max-width:180px;padding:8px;gap:6px}.rhythm-header .title[data-v-da41c95e]{font-size:12px}.input-label[data-v-da41c95e]{font-size:11px}.chord-input[data-v-da41c95e],.rhythm-select[data-v-da41c95e]{padding:6px 8px;font-size:12px}.rhythm-btn[data-v-da41c95e]{padding:6px 12px;font-size:12px}.chord-chip[data-v-da41c95e]{padding:3px 8px;font-size:11px}}@media(max-height:800px){.rhythm-trainer[data-v-da41c95e]{padding:10px;gap:8px}.rhythm-header .title[data-v-da41c95e]{font-size:13px}.chord-input[data-v-da41c95e]{padding:6px 10px;font-size:12px}.apply-btn[data-v-da41c95e]{padding:6px 12px;font-size:12px}.rhythm-btn[data-v-da41c95e]{padding:8px 14px;font-size:12px}.bpm-btn[data-v-da41c95e]{width:24px;height:24px;font-size:14px}.bpm-value[data-v-da41c95e]{font-size:12px}}@media(max-height:700px){.rhythm-trainer[data-v-da41c95e]{padding:8px;gap:6px}.rhythm-header[data-v-da41c95e]{margin-bottom:4px}.rhythm-header .title[data-v-da41c95e]{font-size:12px}.sequence-input[data-v-da41c95e]{gap:6px}.input-label[data-v-da41c95e]{font-size:10px}.chord-input[data-v-da41c95e]{padding:5px 8px;font-size:11px}.apply-btn[data-v-da41c95e]{padding:5px 10px;font-size:11px}.chord-chip[data-v-da41c95e]{padding:2px 6px;font-size:10px}.rhythm-select[data-v-da41c95e]{padding:4px 8px;font-size:11px}.rhythm-btn[data-v-da41c95e]{padding:6px 12px;font-size:11px}.bpm-control[data-v-da41c95e]{padding:3px 6px}.bpm-btn[data-v-da41c95e]{width:22px;height:22px;font-size:13px}.bpm-value[data-v-da41c95e]{font-size:11px;min-width:55px}.timing-feedback[data-v-da41c95e]{min-height:32px;gap:3px}.timing-label[data-v-da41c95e]{font-size:10px}}.rhythm-builder[data-v-68397418]{display:flex;flex-direction:column;gap:16px;padding:20px;background:#161b22e6;border:1px solid rgba(48,54,61,.8);border-radius:12px;max-width:900px;margin:20px auto}.builder-header[data-v-68397418]{padding-bottom:12px;border-bottom:1px solid rgba(48,54,61,.6)}.title[data-v-68397418]{font-size:18px;font-weight:600;color:#e6edf3;text-transform:uppercase;letter-spacing:.5px}.control-row[data-v-68397418]{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.time-signature[data-v-68397418],.tempo-control[data-v-68397418]{display:flex;align-items:center;gap:8px}.input-label[data-v-68397418]{font-size:13px;color:#8b949e}.time-select[data-v-68397418]{padding:6px 10px;background:#1e232ae6;border:1px solid rgba(48,54,61,.8);border-radius:6px;color:#e6edf3;font-size:14px;cursor:pointer}.bpm-btn[data-v-68397418]{width:28px;height:28px;border:none;background:#8b5cf633;color:#a78bfa;border-radius:4px;cursor:pointer;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center}.bpm-btn[data-v-68397418]:hover{background:#8b5cf666}.bpm-value[data-v-68397418]{font-size:14px;font-weight:600;color:#e6edf3;min-width:40px;text-align:center}.play-btn[data-v-68397418]{padding:8px 20px;background:#10b98133;border:1px solid rgba(16,185,129,.4);color:#10b981;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s ease}.play-btn[data-v-68397418]:hover{background:#10b9814d}.play-btn.playing[data-v-68397418]{background:#ef444433;border-color:#ef444466;color:#ef4444}.grid-container[data-v-68397418]{display:flex;gap:8px}.grid-labels[data-v-68397418]{display:flex;flex-direction:column;gap:2px;min-width:50px}.row-label[data-v-68397418]{height:40px;display:flex;align-items:center;font-size:12px;color:#8b949e;font-weight:600}.beat-grid[data-v-68397418]{display:grid;grid-template-rows:repeat(4,40px);gap:2px;flex:1;position:relative}.grid-box[data-v-68397418]{background:#30363d66;border:1px solid rgba(48,54,61,.6);border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:transparent;transition:all .15s ease}.grid-box.beat-start[data-v-68397418]{border-left:3px solid rgba(139,92,246,.5)}.grid-box[data-v-68397418]:hover{background:#8b5cf633;border-color:#8b5cf666}.grid-box.active[data-v-68397418]{background:#8b5cf666;border-color:#8b5cf6;color:#e6edf3}.grid-box.current[data-v-68397418]{box-shadow:0 0 8px #10b98199;border-color:#10b981}.grid-box.active.current[data-v-68397418]{background:#10b98180}.beat-numbers[data-v-68397418]{margin-top:4px}.beat-num[data-v-68397418]{font-size:10px;color:#6e7681;text-align:center}.beat-num.downbeat[data-v-68397418]{color:#8b949e;font-weight:600}.json-output[data-v-68397418]{display:flex;flex-direction:column;gap:8px}.json-textarea[data-v-68397418]{width:100%;height:120px;padding:10px;background:#0d1117cc;border:1px solid rgba(48,54,61,.8);border-radius:6px;color:#7ee787;font-family:Monaco,Menlo,monospace;font-size:11px;resize:vertical}.copy-btn[data-v-68397418]{align-self:flex-end;padding:6px 12px;background:#58a6ff26;border:1px solid rgba(88,166,255,.4);color:#58a6ff;border-radius:4px;cursor:pointer;font-size:12px;font-weight:600}.copy-btn[data-v-68397418]:hover{background:#58a6ff40}.measure-line[data-v-68397418]{position:absolute;width:2px;background:#8b5cf64d;pointer-events:none}.metronome[data-v-23588c9d]{display:flex;align-items:center;gap:8px}.metronome-btn[data-v-23588c9d]{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#3b82f626;border:1px solid rgba(59,130,246,.4);color:#60a5fa;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s ease}.metronome-btn[data-v-23588c9d]:hover{background:#3b82f640;border-color:#3b82f699}.metronome-btn.playing[data-v-23588c9d]{background:#3b82f659;border-color:#3b82f6;box-shadow:0 0 12px #3b82f666}.icon[data-v-23588c9d]{font-size:16px}.bpm-control[data-v-23588c9d]{display:flex;align-items:center;justify-content:center;gap:4px}.bpm-btn[data-v-23588c9d]{width:28px;height:28px;border:none;background:#3b82f633;color:#60a5fa;border-radius:4px;cursor:pointer;font-size:16px;font-weight:700;transition:all .2s ease;display:flex;align-items:center;justify-content:center;line-height:1}.bpm-btn[data-v-23588c9d]:hover{background:#3b82f666}@media(max-height:700px){.metronome[data-v-23588c9d]{gap:6px}.metronome-btn[data-v-23588c9d]{padding:6px 12px;font-size:12px;gap:6px}.icon[data-v-23588c9d]{font-size:14px}.bpm-btn[data-v-23588c9d]{width:24px;height:24px;font-size:14px}}.recording-editor-overlay[data-v-949d4738]{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.recording-editor[data-v-949d4738]{background:#1a1a2e;border-radius:16px;width:90%;max-width:800px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080;border:1px solid rgba(255,255,255,.1)}.editor-header[data-v-949d4738]{display:flex;align-items:center;padding:16px 20px;background:#0000004d;border-bottom:1px solid rgba(255,255,255,.1);gap:16px}.title-input[data-v-949d4738]{flex:1;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:10px 14px;font-size:16px;color:#fff;outline:none}.title-input[data-v-949d4738]:focus{border-color:#4caf50;background:#ffffff26}.title-input[data-v-949d4738]::placeholder{color:#fff6}.header-actions[data-v-949d4738]{display:flex;gap:8px}.btn[data-v-949d4738]{padding:10px 20px;border-radius:8px;border:none;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.save-btn[data-v-949d4738]{background:#4caf50;color:#fff}.save-btn[data-v-949d4738]:hover{background:#45a049}.close-btn[data-v-949d4738]{background:#ffffff1a;color:#fff;font-size:20px;padding:8px 14px}.close-btn[data-v-949d4738]:hover{background:#fff3}.editor-content[data-v-949d4738]{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:20px}.preview-section[data-v-949d4738]{background:#0003;border-radius:12px;padding:16px}.preview-header[data-v-949d4738]{margin-bottom:12px;font-size:14px;color:#ffffffb3}.note-info[data-v-949d4738]{display:flex;align-items:center;gap:8px}.notes-list[data-v-949d4738]{color:#4caf50;font-weight:600}.row-info[data-v-949d4738]{color:#ffffff80;font-size:12px}.accordion-preview[data-v-949d4738]{display:flex;flex-direction:column;gap:4px;padding:12px;background:#0000004d;border-radius:8px;overflow-x:auto}.preview-row[data-v-949d4738]{display:flex;gap:3px;justify-content:center}.preview-row[data-v-949d4738]:nth-child(odd){margin-left:12px}.preview-button[data-v-949d4738]{width:20px;height:20px;border-radius:50%;position:relative;transition:all .15s}.preview-button.white[data-v-949d4738]{background:#e8e8e8;border:1px solid #ccc}.preview-button.black[data-v-949d4738]{background:#333;border:1px solid #555}.preview-button.active[data-v-949d4738]{background:#4caf50;border-color:#4caf50;box-shadow:0 0 12px #4caf5099;transform:scale(1.2)}.fingering-badge[data-v-949d4738]{position:absolute;top:-8px;right:-8px;background:#ff9800;color:#000;font-size:10px;font-weight:700;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center}.fingering-section[data-v-949d4738]{background:#0003;border-radius:12px;padding:16px}.fingering-label[data-v-949d4738]{font-size:14px;color:#ffffffb3;margin-bottom:12px}.fingering-inputs[data-v-949d4738]{display:flex;flex-direction:column;gap:12px}.finger-input-group[data-v-949d4738]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.note-label[data-v-949d4738]{min-width:50px;font-weight:600;color:#4caf50;display:flex;align-items:center;gap:6px}.row-selector[data-v-949d4738]{display:flex;gap:4px}.row-btn[data-v-949d4738]{width:32px;height:32px;border-radius:6px;border:2px solid rgba(76,175,80,.3);background:transparent;color:#4caf5099;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.row-btn[data-v-949d4738]:hover{background:#4caf5033;border-color:#4caf5080}.row-btn.active[data-v-949d4738]{background:#4caf50;border-color:#4caf50;color:#fff}.row-btn.helper[data-v-949d4738]{border-color:#ff98004d;color:#ff980099}.row-btn.helper[data-v-949d4738]:hover{background:#ff980033;border-color:#ff980080}.row-btn.helper.active[data-v-949d4738]{background:#ff9800;border-color:#ff9800;color:#fff}.row-badge[data-v-949d4738]{font-size:10px;padding:2px 6px;border-radius:4px;background:#4caf504d;color:#4caf50}.row-badge.helper[data-v-949d4738]{background:#ff98004d;color:#ff9800}.fingering-display[data-v-949d4738]{font-size:14px;color:#ff9800;font-weight:600;min-width:40px}.finger-buttons[data-v-949d4738]{display:flex;gap:6px}.finger-btn[data-v-949d4738]{width:36px;height:36px;border-radius:8px;border:2px solid rgba(255,255,255,.2);background:#ffffff1a;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.finger-btn[data-v-949d4738]:hover{background:#fff3;border-color:#fff6}.finger-btn.active[data-v-949d4738]{background:#4caf50;border-color:#4caf50}.fingering-hint[data-v-949d4738]{margin-top:12px;font-size:12px;color:#fff6;text-align:left}.timeline-section[data-v-949d4738]{background:#0003;border-radius:12px;padding:16px}.timeline-controls[data-v-949d4738]{display:flex;justify-content:center;gap:12px;margin-bottom:16px}.nav-btn[data-v-949d4738],.play-btn[data-v-949d4738]{padding:8px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;color:#fff;font-size:14px;cursor:pointer;transition:all .15s}.nav-btn[data-v-949d4738]:hover:not(:disabled),.play-btn[data-v-949d4738]:hover{background:#fff3}.nav-btn[data-v-949d4738]:disabled{opacity:.3;cursor:not-allowed}.play-btn[data-v-949d4738]{background:#4caf50;border-color:#4caf50}.play-btn[data-v-949d4738]:hover{background:#45a049}.timeline-wrapper[data-v-949d4738]{overflow-x:auto;overflow-y:hidden;padding:10px 0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}.timeline-wrapper[data-v-949d4738]::-webkit-scrollbar{height:8px}.timeline-wrapper[data-v-949d4738]::-webkit-scrollbar-track{background:#ffffff1a;border-radius:4px}.timeline-wrapper[data-v-949d4738]::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}.timeline[data-v-949d4738]{position:relative;height:70px;background:#ffffff0d;border-radius:12px;min-width:100%}.timeline-progress[data-v-949d4738]{position:absolute;top:0;left:0;height:100%;background:#4caf5026;border-radius:12px 0 0 12px;transition:width .15s}.timeline-item[data-v-949d4738]{position:absolute;top:50%;transform:translate(-50%,-50%);cursor:pointer;z-index:1;display:flex;flex-direction:column;align-items:center;gap:4px}.timeline-dot[data-v-949d4738]{width:16px;height:16px;border-radius:50%;background:#ffffff4d;transition:all .15s;border:2px solid transparent}.timeline-item:hover .timeline-dot[data-v-949d4738]{transform:scale(1.2);background:#ffffff80}.timeline-item.active .timeline-dot[data-v-949d4738]{background:#4caf50;box-shadow:0 0 12px #4caf5099;transform:scale(1.3);border-color:#fff}.timeline-item.has-fingering .timeline-dot[data-v-949d4738]{background:#4caf5099}.timeline-item.has-fingering.active .timeline-dot[data-v-949d4738]{background:#4caf50}.timeline-label[data-v-949d4738]{font-size:10px;color:#fff9;white-space:nowrap;max-width:50px;overflow:hidden;text-overflow:ellipsis}.timeline-item.active .timeline-label[data-v-949d4738]{color:#4caf50;font-weight:600}.timeline-index[data-v-949d4738]{font-size:9px;color:#fff6}.timeline-item.active .timeline-index[data-v-949d4738]{color:#4caf50cc}.timeline-stats[data-v-949d4738]{display:flex;justify-content:space-between;font-size:12px;color:#ffffff80;margin-top:8px}.shortcuts-hint[data-v-949d4738]{padding:12px 20px;background:#0000004d;border-top:1px solid rgba(255,255,255,.1);font-size:12px;color:#fff6;text-align:center;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.done-btn[data-v-949d4738]{background:#4caf50;color:#fff;border:none;padding:8px 20px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;margin-left:16px;transition:all .2s}.done-btn[data-v-949d4738]:hover{background:#45a049;transform:scale(1.05)}kbd[data-v-949d4738]{background:#ffffff26;padding:2px 6px;border-radius:4px;margin:0 2px;font-family:monospace}.midi-recorder[data-v-7a1f723c]{display:flex;align-items:center}.recorder-controls[data-v-7a1f723c]{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#161b22cc;border:1px solid rgba(48,54,61,.8);border-radius:8px}.recorder-controls.recording[data-v-7a1f723c]{border-color:#ef444499;background:#ef44441a}.recording-indicator[data-v-7a1f723c]{color:#ef4444;font-size:16px;animation:blink-7a1f723c 1s infinite}@keyframes blink-7a1f723c{0%,to{opacity:1}50%{opacity:.3}}.time[data-v-7a1f723c]{font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px;color:#8b949e;min-width:70px}.control-btn[data-v-7a1f723c]{display:flex;align-items:center;justify-content:center;gap:6px;width:32px;height:32px;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease;background:#30363d99;color:#8b949e}.control-btn[data-v-7a1f723c]:hover{background:#30363de6;color:#e6edf3}.control-btn.active[data-v-7a1f723c]{background:#58a6ff4d;color:#58a6ff}.control-btn .icon[data-v-7a1f723c]{font-size:12px;line-height:1}.control-btn .text[data-v-7a1f723c]{font-size:12px;font-weight:600}.record-btn[data-v-7a1f723c]{background:#ef444433;color:#ef4444}.record-btn[data-v-7a1f723c]:hover{background:#ef444466}.stop-btn[data-v-7a1f723c]{background:#ef44444d;color:#ef4444}.stop-btn[data-v-7a1f723c]:hover{background:#ef444480}.loop-btn .icon[data-v-7a1f723c]{font-size:18px}.loop-btn.active[data-v-7a1f723c]{background:#22c55e4d;color:#22c55e}.edit-btn[data-v-7a1f723c]{background:#ff980033;color:#ff9800}.edit-btn[data-v-7a1f723c]:hover{background:#ff980066}.edit-btn .icon[data-v-7a1f723c]{font-size:14px}.tempo-select[data-v-7a1f723c]{background:#30363d99;border:1px solid rgba(48,54,61,.8);border-radius:6px;color:#8b949e;font-size:12px;padding:4px 8px;cursor:pointer;outline:none}.tempo-select[data-v-7a1f723c]:hover{background:#30363de6;color:#e6edf3}.tempo-select[data-v-7a1f723c]:focus{border-color:#58a6ff}.upload-btn[data-v-7a1f723c]{background:#58a6ff33;color:#58a6ff}.upload-btn[data-v-7a1f723c]:hover{background:#58a6ff66}.upload-btn .icon[data-v-7a1f723c]{font-size:14px}.step-mode-btn[data-v-7a1f723c]{background:#9b59b64d;color:#9b59b6}.step-mode-btn[data-v-7a1f723c]:hover{background:#9b59b680}.step-mode-btn.active[data-v-7a1f723c]{background:#2ecc714d;color:#2ecc71;box-shadow:0 0 8px #2ecc7166}.step-mode-btn .icon[data-v-7a1f723c]{font-size:14px}.step-btn[data-v-7a1f723c]{background:#1abc9c4d;color:#1abc9c}.step-btn[data-v-7a1f723c]:hover{background:#1abc9c80;color:#1abc9c}.step-btn .icon[data-v-7a1f723c]{font-size:10px}.step-info[data-v-7a1f723c]{font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;color:#2ecc71;min-width:50px;text-align:center}.control-btn[data-v-7a1f723c]:disabled{opacity:.4;cursor:not-allowed}.control-btn[data-v-7a1f723c]:disabled:hover{background:#30363d99;color:#8b949e}.idle .control-btn[data-v-7a1f723c]{width:auto;padding:0 12px}@media(max-height:700px){.recorder-controls[data-v-7a1f723c]{padding:4px 10px;gap:6px}.control-btn[data-v-7a1f723c]{width:28px;height:28px}.time[data-v-7a1f723c]{font-size:11px;min-width:60px}.idle .control-btn[data-v-7a1f723c]{padding:0 10px}}.accordion-3d-container[data-v-20d32b4d]{width:100%;flex:1;min-height:250px;position:relative;border-radius:8px;overflow:hidden}canvas[data-v-20d32b4d]{width:100%;height:100%;display:block}@media(max-height:900px){.accordion-3d-container[data-v-20d32b4d]{min-height:220px}}@media(max-height:800px){.accordion-3d-container[data-v-20d32b4d]{min-height:180px}}@media(max-height:700px){.accordion-3d-container[data-v-20d32b4d]{min-height:150px}}@media(max-height:600px){.accordion-3d-container[data-v-20d32b4d]{min-height:120px}}@media(max-width:900px){.accordion-3d-container[data-v-20d32b4d]{min-height:180px}}@media(max-width:700px){.accordion-3d-container[data-v-20d32b4d]{min-height:150px}}@media(max-width:480px){.accordion-3d-container[data-v-20d32b4d]{min-height:150px;max-height:250px}}.fingering-timeline[data-v-c0eea2c8]{display:flex;flex-direction:column;align-items:center;background:#161b22cc;border:1px solid rgba(48,54,61,.8);border-radius:12px;padding:12px 20px;margin-bottom:12px}.fingering-title[data-v-c0eea2c8]{font-size:14px;font-weight:600;color:#ffffffb3;margin-bottom:8px;text-transform:uppercase;letter-spacing:1px}.timeline-grid[data-v-c0eea2c8]{display:grid;grid-template-columns:repeat(9,50px);gap:8px;align-items:center;justify-items:center;min-height:80px}.grid-slot[data-v-c0eea2c8]{display:flex;align-items:center;justify-content:center;width:50px;height:70px}.grid-slot.center[data-v-c0eea2c8]{width:60px}.fingering-item[data-v-c0eea2c8]{display:flex;flex-direction:column;align-items:center;gap:4px}.fingering-item.faded[data-v-c0eea2c8]{opacity:.5}.finger-badge[data-v-c0eea2c8]{display:flex;align-items:center;justify-content:center;font-weight:700;border-radius:8px;background:#4caf504d;color:#4caf50;border:2px solid #4CAF50}.finger-badge.small[data-v-c0eea2c8]{width:32px;height:32px;font-size:14px;border-radius:6px;background:transparent;border-color:#ffffff4d;color:#fff9}.finger-badge.small.empty[data-v-c0eea2c8]{border-color:#ffffff26;border-style:dashed}.finger-badge.large[data-v-c0eea2c8]{width:52px;height:52px;font-size:22px;background:#4caf50;color:#fff;box-shadow:0 4px 20px #4caf5080}.note-name[data-v-c0eea2c8]{font-size:12px;color:#ffffffb3}.note-name.small[data-v-c0eea2c8]{font-size:10px;color:#ffffff80}*{box-sizing:border-box}#app{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:linear-gradient(135deg,#0d1117,#161b22);color:#e6edf3;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:#161b22f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(48,54,61,.8);z-index:100;gap:24px;flex-wrap:wrap}.header-left{flex-shrink:0}.logo-img{height:40px;width:auto;display:block}.header-center{display:flex;align-items:center;gap:16px;flex:1;justify-content:center;flex-wrap:wrap;min-width:0}.header-right{flex-shrink:0;display:flex;align-items:center;gap:12px}.header-btn{background:#2196f326;border:1px solid rgba(48,54,61,.8);color:#58a6ff;height:36px;padding:0 16px;border-radius:6px;display:flex;align-items:center;gap:8px;cursor:pointer;transition:all .2s ease;font-weight:600;font-size:14px}.header-btn:hover{background:#2196f340;border-color:#2196f3}.header-btn.active{background:#2196f359;border-color:#2196f3;box-shadow:0 0 8px #2196f366}.header-btn .icon{font-size:16px}.main-grid{flex:1;display:flex;flex-direction:row;gap:0;overflow:hidden;min-height:0}.left-column{flex-shrink:1;flex-grow:0;width:240px;min-width:180px;padding:12px 8px;overflow:visible;border-right:1px solid rgba(48,54,61,.5);display:flex;flex-direction:column;align-items:center}.rhythm-wrapper{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}.builder-toggle-btn{padding:8px 16px;background:#8b5cf633;border:1px solid rgba(139,92,246,.4);color:#a78bfa;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s ease;text-align:center;width:100%}.builder-toggle-btn:hover{background:#8b5cf64d}.builder-section{width:100%;max-width:900px;margin-bottom:16px}.rhythm-section{width:100%;display:flex;justify-content:center}.middle-column{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:16px;padding:16px 24px;overflow-y:auto}.accordion-section{width:100%;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center}.accordion-header{width:100%;display:flex;justify-content:center;align-items:center;gap:16px;margin-bottom:8px}.view-toggle-btn{padding:6px 14px;background:#58a6ff33;border:1px solid rgba(88,166,255,.4);color:#58a6ff;border-radius:6px;cursor:pointer;font-size:13px;font-weight:700;transition:all .2s ease}.view-toggle-btn:hover{background:#58a6ff4d;border-color:#58a6ff}.sheet-section{width:100%;max-width:1200px;display:flex;flex-direction:column;gap:16px}.right-column{flex-shrink:1;flex-grow:0;width:400px;min-width:250px;border-left:1px solid rgba(48,54,61,.8);background:#0d1117f2;overflow-y:auto}.keyboard-row{flex-shrink:0;width:100%;border-top:1px solid rgba(48,54,61,.8)}.footer{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:24px;padding:16px 24px;background:#161b22f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid rgba(48,54,61,.8);z-index:50;flex-wrap:wrap}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#6e768166;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#6e768199}@media(max-width:1400px){.header{padding:12px 16px;gap:16px}.logo-img{height:32px}.header-center{gap:12px}.footer{padding:12px 16px;gap:16px}.left-column{width:220px;min-width:160px;padding:10px 6px}.middle-column{padding:12px 16px;gap:12px}.right-column{width:320px;min-width:200px}.builder-section{max-width:700px}}@media(max-width:1200px){.header{padding:10px 12px;gap:12px}.logo-img{height:28px}.left-column{width:200px;min-width:140px;padding:8px 4px}.right-column{position:fixed;right:0;top:0;bottom:0;z-index:200;width:320px;min-width:280px}.middle-column{padding:10px 12px;gap:10px}.footer{padding:10px 12px;gap:12px}.builder-toggle-btn{padding:6px 12px;font-size:12px}.view-toggle-btn{padding:5px 10px;font-size:12px}.header-btn{height:32px;padding:0 12px;font-size:13px}}@media(max-width:900px){.header{justify-content:center;gap:8px;padding:8px 10px}.header-left{width:100%;display:flex;justify-content:center}.logo-img{height:26px}.header-center,.header-right{width:100%;justify-content:center;gap:6px}.header-btn{height:30px;padding:0 10px;font-size:12px}.left-column{display:none}.middle-column{padding:10px;gap:10px}.right-column{width:280px;min-width:240px}.footer{justify-content:center;padding:8px 10px;gap:10px}.accordion-header{gap:10px;margin-bottom:6px}.builder-section{max-width:100%;margin-bottom:10px}.sheet-section{gap:10px}}@media(max-width:700px){.header{padding:6px 8px;gap:6px}.header-left{width:auto}.logo-img{height:22px}.header-center{gap:4px}.header-right{width:auto}.header-btn{height:28px;padding:0 8px;font-size:11px}.header-btn .text{display:none}.middle-column{padding:8px;gap:8px}.right-column{width:100%;height:50vh;position:fixed;inset:auto 0 0;border-left:none;border-top:1px solid rgba(48,54,61,.8)}.footer{padding:6px 8px;gap:8px}.view-toggle-btn{padding:4px 8px;font-size:11px}.accordion-header{gap:8px}}@media(max-width:480px){.header{padding:4px 6px}.logo-img{height:20px}.header-btn{height:26px;padding:0 6px;font-size:10px}.middle-column{padding:6px;gap:6px}.footer{padding:4px 6px;gap:6px}}@media(max-height:900px){.header,.footer{padding:10px 16px}.middle-column{gap:10px;padding:10px 16px}}@media(max-height:800px){.header{padding:8px 12px}.logo-img{height:28px}.footer{padding:8px 12px;gap:12px}.middle-column{padding:8px 12px;gap:8px}.left-column{padding:8px}.accordion-header{margin-bottom:4px}}@media(max-height:700px){.header{padding:6px 10px}.logo-img{height:24px}.header-btn{height:28px;padding:0 10px;font-size:12px}.footer{padding:6px 10px;gap:10px}.middle-column{padding:6px 10px;gap:6px}.left-column{padding:6px}.builder-toggle-btn{padding:5px 10px;font-size:11px}.view-toggle-btn{padding:4px 10px;font-size:11px}}@media(max-height:600px){.header{padding:4px 8px}.logo-img{height:20px}.header-btn{height:24px;padding:0 8px;font-size:11px}.footer{padding:4px 8px;gap:8px}.middle-column{padding:4px 8px;gap:4px}}@media(max-width:900px)and (max-height:700px){.header-center{display:none}.accordion-header{gap:6px}}.course-recorder[data-v-621466e9]{max-width:2000px;margin:0 auto;padding:20px}.recorder-header[data-v-621466e9]{text-align:center;margin-bottom:30px}.recorder-header h1[data-v-621466e9]{margin:0;font-size:2rem;color:#333}.subtitle[data-v-621466e9]{margin:5px 0 0;color:#666;font-size:.9rem}.recorder-layout[data-v-621466e9]{display:flex;gap:20px;align-items:flex-start}.left-column[data-v-621466e9]{flex:1;min-width:1024px;display:flex;flex-direction:column;gap:15px}.right-column[data-v-621466e9]{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:20px}.section-title[data-v-621466e9]{margin:0 0 15px;font-size:1.1rem;color:#333;border-bottom:2px solid #e0e0e0;padding-bottom:8px}.device-selection[data-v-621466e9]{display:flex;flex-direction:column;gap:15px;padding:20px;background:#f5f5f5;border-radius:8px}.device-group[data-v-621466e9]{display:flex;flex-direction:column;gap:5px}.device-group label[data-v-621466e9]{font-weight:500;font-size:.9rem;color:#555}.device-group select[data-v-621466e9],.device-group input[type=text][data-v-621466e9],.device-group input[type=number][data-v-621466e9],.device-group textarea[data-v-621466e9]{padding:8px;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.device-group input[type=checkbox][data-v-621466e9]{margin-right:8px}.preview-area[data-v-621466e9]{position:relative;background:#000;border-radius:8px;overflow:hidden;width:100%;display:flex;align-items:center;justify-content:center}.preview-area.landscape[data-v-621466e9]{aspect-ratio:16 / 9;width:100%}.preview-area.portrait[data-v-621466e9]{aspect-ratio:9 / 16;width:100%;max-width:1000px;margin:0 auto}.preview-area.recording[data-v-621466e9]{border:3px solid #e74c3c;box-shadow:0 0 20px #e74c3c80}.preview-area video[data-v-621466e9]{width:100%;height:100%;object-fit:contain}.preview-area video.hidden[data-v-621466e9]{display:none}.preview-placeholder[data-v-621466e9]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#666}.preview-placeholder p[data-v-621466e9]:first-child{font-size:4rem;margin:0}.recording-indicator[data-v-621466e9]{position:absolute;top:15px;right:15px;background:#e74c3cf2;color:#fff;padding:8px 15px;border-radius:20px;font-weight:700;display:flex;align-items:center;gap:8px;font-size:.9rem}.rec-dot[data-v-621466e9]{width:12px;height:12px;background:#fff;border-radius:50%;animation:pulse-621466e9 1s infinite}@keyframes pulse-621466e9{0%,to{opacity:1}50%{opacity:.3}}.controls[data-v-621466e9]{display:flex;gap:10px;justify-content:center}.btn[data-v-621466e9]{padding:12px 24px;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px}.btn[data-v-621466e9]:disabled{opacity:.5;cursor:not-allowed}.btn span[data-v-621466e9]{font-size:1.2rem}.btn-record[data-v-621466e9]{background:#e74c3c;color:#fff}.btn-record[data-v-621466e9]:hover:not(:disabled){background:#c0392b}.btn-stop[data-v-621466e9]{background:#95a5a6;color:#fff}.btn-stop[data-v-621466e9]:hover:not(:disabled){background:#7f8c8d}.btn-review[data-v-621466e9]{background:#3498db;color:#fff}.btn-review[data-v-621466e9]:hover:not(:disabled){background:#2980b9}.btn-save[data-v-621466e9]{background:#27ae60;color:#fff}.btn-save[data-v-621466e9]:hover:not(:disabled){background:#229954}.status-bar[data-v-621466e9]{display:flex;gap:20px;justify-content:center;padding:15px;background:#f8f9fa;border-radius:6px;font-size:.9rem;margin-bottom:20px}.status-item[data-v-621466e9]{color:#666}.status-ok[data-v-621466e9]{color:#27ae60}.status-error[data-v-621466e9]{color:#e74c3c}.modal-overlay[data-v-621466e9]{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal[data-v-621466e9]{background:#fff;border-radius:8px;max-width:800px;width:100%;max-height:90vh;overflow:auto}.modal-header[data-v-621466e9]{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #eee}.modal-header h2[data-v-621466e9]{margin:0;font-size:1.5rem}.close-btn[data-v-621466e9]{background:none;border:none;font-size:2rem;cursor:pointer;color:#999;line-height:1;padding:0;width:30px;height:30px}.close-btn[data-v-621466e9]:hover{color:#333}.modal-content[data-v-621466e9]{padding:20px}.review-video[data-v-621466e9]{width:100%;border-radius:4px;background:#000}.review-info[data-v-621466e9]{margin-top:15px;padding:15px;background:#f5f5f5;border-radius:4px}.review-info p[data-v-621466e9]{margin:5px 0;font-size:.9rem}.modal-actions[data-v-621466e9]{padding:15px 20px;border-top:1px solid #eee;display:flex;gap:10px;justify-content:flex-end}.form-group[data-v-621466e9]{margin-bottom:20px}.form-group label[data-v-621466e9]{display:block;margin-bottom:5px;font-weight:500;color:#555}.form-group input[data-v-621466e9],.form-group textarea[data-v-621466e9]{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-size:1rem;font-family:inherit}.form-group textarea[data-v-621466e9]{resize:vertical}.form-group input[data-v-621466e9]:focus,.form-group textarea[data-v-621466e9]:focus{outline:none;border-color:#3498db}.course-playback[data-v-b582f7b4]{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:linear-gradient(135deg,#0d1117,#161b22);color:#e6edf3;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.playback-header[data-v-b582f7b4]{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:#161b22f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(48,54,61,.8);z-index:100;gap:24px;flex-wrap:wrap}.header-left[data-v-b582f7b4]{flex-shrink:0}.logo-img[data-v-b582f7b4]{height:40px;width:auto;display:block}.header-center[data-v-b582f7b4]{display:flex;align-items:center;flex:1;justify-content:center}.playback-header h1[data-v-b582f7b4]{margin:0;font-size:1.5rem;color:#e6edf3;font-weight:600}.resize-handle[data-v-b582f7b4]{width:8px;background:#30363d80;cursor:ew-resize;position:relative;flex-shrink:0;transition:background .2s;display:flex;align-items:center;justify-content:center}.resize-handle[data-v-b582f7b4]:hover{background:#30363dcc}.resize-handle.resizing[data-v-b582f7b4]{background:#2188ff4d}.resize-grip[data-v-b582f7b4]{width:4px;height:40px;background:linear-gradient(to bottom,transparent 0%,rgba(88,166,255,.4) 15%,rgba(88,166,255,.4) 35%,transparent 40%,transparent 60%,rgba(88,166,255,.4) 65%,rgba(88,166,255,.4) 85%,transparent 100%);border-radius:2px;pointer-events:none}.resize-handle:hover .resize-grip[data-v-b582f7b4]{background:linear-gradient(to bottom,transparent 0%,rgba(88,166,255,.7) 15%,rgba(88,166,255,.7) 35%,transparent 40%,transparent 60%,rgba(88,166,255,.7) 65%,rgba(88,166,255,.7) 85%,transparent 100%)}.header-right[data-v-b582f7b4]{flex-shrink:0;display:flex;align-items:center;gap:12px}.midi-output-select[data-v-b582f7b4]{background:#161b22f2;border:1px solid rgba(48,54,61,.8);color:#e6edf3;padding:8px 12px;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s ease;min-width:180px}.midi-output-select[data-v-b582f7b4]:hover{border-color:#2196f3;background:#2196f31a}.midi-output-select[data-v-b582f7b4]:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px #2196f333}.header-btn[data-v-b582f7b4]{background:#2196f326;border:1px solid rgba(48,54,61,.8);color:#58a6ff;height:36px;padding:0 16px;border-radius:6px;display:flex;align-items:center;gap:8px;cursor:pointer;transition:all .2s ease;font-weight:600;font-size:14px}.header-btn[data-v-b582f7b4]:hover:not(:disabled){background:#2196f340;border-color:#2196f3}.header-btn[data-v-b582f7b4]:disabled{opacity:.5;cursor:not-allowed}.empty-state[data-v-b582f7b4]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#8b949e;gap:20px}.empty-icon[data-v-b582f7b4]{font-size:5rem;margin:0}.btn-primary[data-v-b582f7b4]{background:#2196f340;color:#58a6ff;border:1px solid #2196F3;font-size:1rem;padding:12px 24px;border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s}.btn-primary[data-v-b582f7b4]:hover{background:#2196f359}.playback-content[data-v-b582f7b4]{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.main-grid[data-v-b582f7b4]{flex:1;display:flex;flex-direction:row;gap:0;overflow:hidden;min-height:0}.middle-column[data-v-b582f7b4]{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:16px;padding:16px 24px;overflow-y:auto}.accordion-section[data-v-b582f7b4]{width:100%;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center}.accordion-header[data-v-b582f7b4]{width:100%;display:flex;justify-content:center;align-items:center;gap:16px;margin-bottom:8px}.view-toggle-btn[data-v-b582f7b4]{padding:6px 14px;background:#58a6ff33;border:1px solid rgba(88,166,255,.4);color:#58a6ff;border-radius:6px;cursor:pointer;font-size:13px;font-weight:700;transition:all .2s ease}.view-toggle-btn[data-v-b582f7b4]:hover{background:#58a6ff4d;border-color:#58a6ff}.course-info[data-v-b582f7b4]{width:100%;max-width:600px;padding:12px 16px;background:#161b2299;border:1px solid rgba(48,54,61,.5);border-radius:8px;display:flex;justify-content:space-around;gap:16px}.course-info p[data-v-b582f7b4]{margin:0;font-size:.85rem;color:#8b949e}.course-info strong[data-v-b582f7b4]{color:#e6edf3}.right-column[data-v-b582f7b4]{flex-shrink:1;flex-grow:0;width:400px;min-width:300px;border-left:1px solid rgba(48,54,61,.8);background:#0d1117f2;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:16px;transition:width .3s ease}.right-column.video-expanded[data-v-b582f7b4]{width:700px}.video-header[data-v-b582f7b4]{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;border-bottom:1px solid rgba(48,54,61,.5)}.video-header h3[data-v-b582f7b4]{margin:0;font-size:1rem;color:#e6edf3;font-weight:600}.video-expand-btn[data-v-b582f7b4]{padding:6px 12px;background:#58a6ff33;border:1px solid rgba(88,166,255,.4);color:#58a6ff;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:700;transition:all .2s ease}.video-expand-btn[data-v-b582f7b4]:hover{background:#58a6ff4d;border-color:#58a6ff}.video-container[data-v-b582f7b4]{position:relative;background:#000;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:300px}.video-container video[data-v-b582f7b4]{width:100%;height:auto;max-height:80vh;object-fit:contain}.loading-overlay[data-v-b582f7b4]{position:absolute;inset:0;background:#000c;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff}.spinner[data-v-b582f7b4]{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-b582f7b4 1s linear infinite}@keyframes spin-b582f7b4{to{transform:rotate(360deg)}}.video-info[data-v-b582f7b4]{padding:12px;background:#161b2299;border:1px solid rgba(48,54,61,.5);border-radius:6px;font-size:.85rem}.video-info p[data-v-b582f7b4]{margin:4px 0;color:#8b949e}.video-info strong[data-v-b582f7b4]{color:#e6edf3}.timeline-section[data-v-b582f7b4]{flex-shrink:0;display:flex;flex-direction:column;gap:12px;padding:16px 24px;background:#161b22f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid rgba(48,54,61,.8)}.timeline-container[data-v-b582f7b4]{display:flex;flex-direction:column;gap:8px}.timeline-track[data-v-b582f7b4]{position:relative;height:48px;background:#30363d99;border-radius:24px;cursor:pointer;overflow:visible;border:1px solid rgba(48,54,61,.8);box-shadow:inset 0 2px 6px #0000004d}.timeline-progress[data-v-b582f7b4]{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,#58a6ff,#2ea043);border-radius:20px;transition:width .1s linear}.loop-marker[data-v-b582f7b4]{position:absolute;top:-8px;transform:translate(-50%);width:4px;height:calc(100% + 16px);background:linear-gradient(180deg,#ffd700e6,#ffa500e6);border-radius:2px;cursor:grab;z-index:10;box-shadow:0 0 12px #ffd70099,0 0 20px #ffd7004d;display:flex;align-items:flex-start;justify-content:center;font-size:.9rem;font-weight:700;color:gold;text-shadow:0 0 8px rgba(0,0,0,1),0 2px 4px rgba(0,0,0,.7);padding-top:2px}.loop-marker[data-v-b582f7b4]:hover{width:6px;box-shadow:0 0 16px #ffd700cc,0 0 28px #ffd70066}.loop-start[data-v-b582f7b4]{background:#f85149}.loop-end[data-v-b582f7b4]{background:#a371f7}.custom-marker[data-v-b582f7b4]{position:absolute;top:0;bottom:0;width:2px;background:#f0883e;transform:translate(-50%)}.timeline-time[data-v-b582f7b4]{text-align:center;font-family:Courier New,monospace;font-size:.9rem;color:#8b949e}.transport-controls[data-v-b582f7b4]{display:flex;justify-content:center;align-items:center;gap:30px;padding:12px;background:#0d111799;border:1px solid rgba(48,54,61,.5);border-radius:12px}.control-group[data-v-b582f7b4]{display:flex;align-items:center;gap:10px}.btn-transport[data-v-b582f7b4]{width:50px;height:50px;border:none;border-radius:50%;background:linear-gradient(145deg,#21262de6,#161b22e6);color:#e6edf3;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000004d,inset 0 1px #ffffff1a;position:relative}.btn-transport svg[data-v-b582f7b4]{width:28px;height:28px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.btn-transport[data-v-b582f7b4]:hover{transform:scale(1.05);background:linear-gradient(145deg,#30363de6,#21262de6);box-shadow:0 4px 12px #58a6ff4d,inset 0 1px #ffffff26;color:#58a6ff}.btn-transport[data-v-b582f7b4]:active{transform:scale(.95);box-shadow:0 1px 4px #0006,inset 0 2px 4px #0003}.btn-play[data-v-b582f7b4]{width:60px;height:60px;background:linear-gradient(145deg,#2196f34d,#2188ff33);box-shadow:0 4px 12px #2196f366,inset 0 1px #fff3;color:#58a6ff}.btn-play svg[data-v-b582f7b4]{width:34px;height:34px}.btn-play[data-v-b582f7b4]:hover{background:linear-gradient(145deg,#2196f366,#2188ff4d);box-shadow:0 6px 16px #2196f380,inset 0 1px #ffffff40;color:#79c0ff}.tempo-control[data-v-b582f7b4]{min-width:250px}.tempo-control label[data-v-b582f7b4]{font-weight:500;color:#8b949e;font-size:.9rem}.tempo-control input[type=range][data-v-b582f7b4]{flex:1;cursor:pointer;accent-color:#58a6ff}.tempo-display[data-v-b582f7b4]{font-weight:700;color:#58a6ff;min-width:50px;text-align:right;font-size:.9rem}.loop-control[data-v-b582f7b4]{gap:8px}.btn-loop[data-v-b582f7b4]{padding:8px 16px;border:1px solid rgba(48,54,61,.8);border-radius:6px;background:#161b22cc;color:#8b949e;cursor:pointer;font-size:.85rem;font-weight:500;transition:all .2s}.btn-loop[data-v-b582f7b4]:hover:not(:disabled){border-color:#58a6ff;background:#21262de6;color:#58a6ff}.btn-loop.active[data-v-b582f7b4]{background:#2196f340;color:#58a6ff;border-color:#2196f3}.btn-loop[data-v-b582f7b4]:disabled{opacity:.3;cursor:not-allowed}.loop-info[data-v-b582f7b4]{display:flex;justify-content:center;gap:30px;padding:12px;background:#58a6ff1a;border:1px solid rgba(88,166,255,.3);border-radius:6px;font-size:.9rem;color:#58a6ff}.loop-info span[data-v-b582f7b4]{font-weight:500}@media(max-width:1024px){.main-grid[data-v-b582f7b4]{flex-direction:column}.right-column[data-v-b582f7b4]{width:100%;border-left:none;border-top:1px solid rgba(48,54,61,.8)}}[data-v-b582f7b4]::-webkit-scrollbar{width:8px;height:8px}[data-v-b582f7b4]::-webkit-scrollbar-track{background:transparent}[data-v-b582f7b4]::-webkit-scrollbar-thumb{background:#6e768166;border-radius:4px}[data-v-b582f7b4]::-webkit-scrollbar-thumb:hover{background:#6e768199}
