.piano-container[data-v-5ec7c283]{width:100%;padding:10px 0 20px;background:#2a2a2a}.piano[data-v-5ec7c283]{position:relative;display:flex;height:160px;width:100%;margin:0 auto}.white-key[data-v-5ec7c283]{position:relative;height:100%;background:linear-gradient(to bottom,#fff,#f0f0f0);border:1px solid #ccc;border-radius:0 0 4px 4px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:10px;transition:all .05s ease;box-shadow:0 2px 5px #0000001a}.white-key[data-v-5ec7c283]:hover{background:linear-gradient(to bottom,#f8f8f8,#e8e8e8)}.white-key.active.hand-right[data-v-5ec7c283]{background:linear-gradient(to bottom,#74b9ff,#0984e3);box-shadow:0 2px 10px #0984e380;transform:translateY(2px)}.white-key.active.hand-left[data-v-5ec7c283]{background:linear-gradient(to bottom,#55efc4,#00b894);box-shadow:0 2px 10px #00b89480;transform:translateY(2px)}.white-key.active.clicked[data-v-5ec7c283]{background:linear-gradient(to bottom,#fc6,#fb4);box-shadow:0 2px 10px #fb49;transform:translateY(2px)}.black-keys[data-v-5ec7c283]{position:absolute;top:0;left:0;width:100%;height:60%;pointer-events:none}.black-key[data-v-5ec7c283]{position:absolute;height:100%;background:linear-gradient(to bottom,#333,#111);border-radius:0 0 3px 3px;box-shadow:0 3px 8px #0000004d;transition:all .05s ease;pointer-events:auto}.black-key[data-v-5ec7c283]:hover{background:linear-gradient(to bottom,#444,#222)}.black-key.active.hand-right[data-v-5ec7c283]{background:linear-gradient(to bottom,#74b9ff,#0984e3);box-shadow:0 3px 10px #0984e399;transform:translateY(2px)}.black-key.active.hand-left[data-v-5ec7c283]{background:linear-gradient(to bottom,#55efc4,#00b894);box-shadow:0 3px 10px #00b89499;transform:translateY(2px)}.black-key.active.clicked[data-v-5ec7c283]{background:linear-gradient(to bottom,#fc6,#fb4);box-shadow:0 3px 10px #ffbb44b3;transform:translateY(2px)}.key-label[data-v-5ec7c283]{font-size:11px;font-weight:700;color:#333;pointer-events:none;white-space:nowrap;padding:2px 4px;border-radius:3px;margin-bottom:5px}.shortcut-label[data-v-5ec7c283]{position:absolute;top:66%;left:50%;transform:translate(-50%);font-size:9px;font-weight:600;color:#0000004d;background:#0000000f;padding:1px 4px;border-radius:3px;pointer-events:none;line-height:1.4;white-space:nowrap}.shortcut-label--black[data-v-5ec7c283]{position:absolute;top:auto;bottom:6px;left:50%;transform:translate(-50%);color:#ffffff73;background:#ffffff1a;font-size:9px}.shortcut-row--lower[data-v-5ec7c283]{color:#00b894b3;background:#00b8941a}.shortcut-label--black.shortcut-row--lower[data-v-5ec7c283]{color:#00b894bf;background:#00b89426}.shortcut-row--upper[data-v-5ec7c283]{color:#0984e3b3;background:#0984e31a}.shortcut-label--black.shortcut-row--upper[data-v-5ec7c283]{color:#0984e3bf;background:#0984e326}.octave-indicator[data-v-5ec7c283]{display:flex;justify-content:center;align-items:center;gap:8px;padding:4px 0 6px;-webkit-user-select:none;user-select:none}.octave-btn[data-v-5ec7c283]{font-size:11px;color:#ffffff80;cursor:pointer;padding:2px 6px;border-radius:3px;transition:color .15s}.octave-btn[data-v-5ec7c283]:hover{color:#fff;background:#ffffff1a}.octave-label[data-v-5ec7c283]{font-size:11px;color:#ffffffb3;font-weight:600;letter-spacing:.5px}.key-label[data-octave="-1"][data-v-5ec7c283],.key-label[data-octave="0"][data-v-5ec7c283]{background:#dfe6e9}.key-label[data-octave="1"][data-v-5ec7c283]{background:#ffeaa7}.key-label[data-octave="2"][data-v-5ec7c283]{background:#e8f4f8}.key-label[data-octave="3"][data-v-5ec7c283]{background:#d4edda}.key-label[data-octave="4"][data-v-5ec7c283]{background:#fff3cd}.key-label[data-octave="5"][data-v-5ec7c283]{background:#f8d7da}.key-label[data-octave="6"][data-v-5ec7c283]{background:#e2d4f0}.key-label[data-octave="7"][data-v-5ec7c283]{background:#cce5ff}.key-label[data-octave="8"][data-v-5ec7c283]{background:#ffc8dd}.jianpu-panel[data-v-f2f80c96]{padding:20px;max-width:1200px;margin:0 auto}.jianpu-score[data-v-f2f80c96]{background:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:24px 28px}.jianpu-header[data-v-f2f80c96]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid #eee;gap:12px;flex-wrap:wrap}.jianpu-title[data-v-f2f80c96]{font-size:20px;font-weight:700;color:#222}.jianpu-info[data-v-f2f80c96]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.info-tag[data-v-f2f80c96]{font-size:11px;color:#888;background:#f4f4f4;padding:2px 8px;border-radius:4px;font-family:Courier New,monospace;white-space:nowrap}.info-tag--key[data-v-f2f80c96]{color:#c0392b;background:#c0392b14;font-weight:600}.jianpu-body[data-v-f2f80c96]{display:flex;flex-direction:column;gap:0}.score-row[data-v-f2f80c96]{display:flex;width:100%}.score-row .measure[data-v-f2f80c96]{flex:1}.score-row.last-row .measure[data-v-f2f80c96]{flex:0 0 25%}.measure[data-v-f2f80c96]{display:flex;align-items:flex-start;padding:16px 0}.measure-inner[data-v-f2f80c96]{display:flex;align-items:flex-start;flex:1;justify-content:space-evenly}.measure.active-measure[data-v-f2f80c96]{background:#4a90d90f}.beat-group[data-v-f2f80c96]{display:inline-flex;flex-direction:column;align-items:stretch;margin:0 2px;min-width:26px}.beat-notes[data-v-f2f80c96]{display:flex;align-items:flex-start;justify-content:center;gap:0}.note-cell[data-v-f2f80c96]{display:inline-flex;flex-direction:column;align-items:center;min-width:16px;padding:0 1px}.cell-top[data-v-f2f80c96]{height:12px;display:flex;align-items:flex-end;justify-content:center}.cell-mid[data-v-f2f80c96]{display:inline-flex;align-items:baseline;justify-content:center;height:22px;line-height:22px;position:relative}.cell-bot[data-v-f2f80c96]{height:10px;display:flex;align-items:flex-start;justify-content:center}.num[data-v-f2f80c96]{font-size:20px;font-weight:600;color:#222;font-family:Times New Roman,Georgia,serif}.is-hold .num[data-v-f2f80c96]{font-weight:400;color:#444}.is-rest .num[data-v-f2f80c96]{color:#999}.active-note .num[data-v-f2f80c96]{color:#d63031;font-weight:800}.acc[data-v-f2f80c96]{font-size:9px;color:#e67e22;font-weight:700;position:absolute;top:-2px;left:-4px}.dur-dot[data-v-f2f80c96]{font-size:22px;font-weight:900;color:#222;line-height:0;margin-left:0;position:relative;top:4px}.oct-dots[data-v-f2f80c96]{display:flex;justify-content:center;gap:2px}.dot-circle[data-v-f2f80c96]{display:block;width:4px;height:4px;border-radius:50%;background:#222}.underlines[data-v-f2f80c96]{display:flex;flex-direction:column;gap:3px;margin-top:2px}.uline[data-v-f2f80c96]{display:block;height:2px;background:#222;border-radius:1px;width:100%}.barline[data-v-f2f80c96]{font-size:22px;color:#444;margin:0 1px;-webkit-user-select:none;user-select:none;align-self:center;line-height:44px;font-weight:300}.app-shell[data-v-9c37a3cc]{display:flex;flex-direction:column;height:100vh;overflow:hidden;font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:#f7f4f0}.control-bar[data-v-9c37a3cc]{flex-shrink:0;background:#1c1c1e;border-bottom:1px solid rgba(255,255,255,.06);z-index:300}.control-bar__inner[data-v-9c37a3cc]{display:flex;align-items:center;gap:16px;padding:10px 20px}.bar-right[data-v-9c37a3cc]{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0}.bar-brand[data-v-9c37a3cc]{display:flex;align-items:center;gap:8px;color:#ffffffe6;font-size:14px;font-weight:600;letter-spacing:.5px;flex-shrink:0}.bar-brand svg[data-v-9c37a3cc]{color:#d4a574}.bar-controls[data-v-9c37a3cc],.bar-progress[data-v-9c37a3cc]{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.bar-volume[data-v-9c37a3cc]{display:flex;align-items:center;gap:6px;color:#ffffff80;flex-shrink:0}.bar-volume input[type=range][data-v-9c37a3cc]{width:72px;height:5px;cursor:pointer;accent-color:#d4a574}.bili-link[data-v-9c37a3cc]{display:flex;align-items:center;color:#fff6;transition:color .18s}.bili-link[data-v-9c37a3cc]:hover{color:#00a1d6}.inst-select[data-v-9c37a3cc]{padding:5px 24px 5px 10px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:#ffffffd9;font-size:12px;font-weight:500;cursor:pointer;outline:none;transition:all .18s;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.5)' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.inst-select[data-v-9c37a3cc]:hover{border-color:#d4a57466;background-color:#ffffff14}.inst-select[data-v-9c37a3cc]:focus{border-color:#d4a574}.inst-select option[data-v-9c37a3cc]{background:#2c2c2e;color:#fff}.btn-toggle.btn-toggle[data-v-9c37a3cc]{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:8px;background:#ffffff0f;color:#fff9;cursor:pointer;transition:all .2s;flex-shrink:0}.btn-toggle[data-v-9c37a3cc]:hover,.btn-toggle.active[data-v-9c37a3cc]{background:#d4a57426;color:#d4a574}.status-dot[data-v-9c37a3cc]{width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-dot--loading[data-v-9c37a3cc]{background:#f0c040;animation:pulse-9c37a3cc 1.2s ease-in-out infinite}.status-dot--ready[data-v-9c37a3cc]{background:#4cd964}@keyframes pulse-9c37a3cc{0%,to{opacity:1}50%{opacity:.4}}.error-toast[data-v-9c37a3cc]{padding:6px 20px;font-size:12px;color:#ff6b6b;background:#ff444414;text-align:center}.network-tip[data-v-9c37a3cc]{display:flex;align-items:center;gap:8px;padding:8px 20px;font-size:12px;color:#f0c040;background:#f0c04014;line-height:1.4}.network-tip svg[data-v-9c37a3cc]{flex-shrink:0}.network-tip__close[data-v-9c37a3cc]{margin-left:auto;border:none;background:none;color:#f0c04099;font-size:18px;cursor:pointer;padding:0 4px;line-height:1}.network-tip__close[data-v-9c37a3cc]:hover{color:#f0c040}.btn-transport[data-v-9c37a3cc]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:#ffffff0f;color:#ffffffb3;cursor:pointer;transition:all .15s;flex-shrink:0}.btn-transport[data-v-9c37a3cc]:hover:not(:disabled){background:#ffffff1f;color:#fff}.btn-transport--play[data-v-9c37a3cc]{background:#d4a574;color:#1c1c1e}.btn-transport--play[data-v-9c37a3cc]:hover:not(:disabled){background:#e0b68a;color:#1c1c1e}.btn-transport[data-v-9c37a3cc]:disabled{opacity:.3;cursor:not-allowed}.progress-track[data-v-9c37a3cc]{flex:1;height:3px;background:#ffffff14;border-radius:2px;overflow:hidden;cursor:pointer}.progress-track__fill[data-v-9c37a3cc]{height:100%;background:#d4a574;border-radius:2px;transition:width .1s linear}.time-label[data-v-9c37a3cc]{font-size:11px;color:#ffffff59;font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.side-panel[data-v-9c37a3cc]{position:fixed;top:54px;right:0;bottom:0;width:320px;background:#3a3f47;z-index:250;display:flex;flex-direction:column;box-shadow:-4px 0 24px #0006}.panel-header[data-v-9c37a3cc]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;flex-shrink:0}.panel-title[data-v-9c37a3cc]{display:flex;align-items:center;gap:8px;color:#fff;font-size:16px;font-weight:700}.panel-title svg[data-v-9c37a3cc]{color:#fff}.btn-open-file[data-v-9c37a3cc]{display:inline-flex;align-items:center;padding:6px 14px;border-radius:4px;font-size:12px;font-weight:600;color:#fff;background:#4a9cf5;cursor:pointer;transition:background .15s;white-space:nowrap}.btn-open-file[data-v-9c37a3cc]:hover{background:#3b8de6}.btn-open-file input[data-v-9c37a3cc]{display:none}.panel-divider[data-v-9c37a3cc]{height:2px;margin:0 20px;border-top:2px dotted rgba(255,255,255,.15)}.song-list[data-v-9c37a3cc]{flex:1;overflow-y:auto;padding:4px 0}.song-item[data-v-9c37a3cc]{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;cursor:pointer;transition:background .12s;border-bottom:1px solid rgba(255,255,255,.04)}.song-item[data-v-9c37a3cc]:hover{background:#ffffff0f}.song-item.active[data-v-9c37a3cc]{background:#4a9cf51f}.song-name[data-v-9c37a3cc]{font-size:15px;color:#ffffffd9;font-weight:500}.song-item.active .song-name[data-v-9c37a3cc]{color:#4a9cf5}.overlay[data-v-9c37a3cc]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:200}.slide-enter-active[data-v-9c37a3cc],.slide-leave-active[data-v-9c37a3cc]{transition:transform .28s cubic-bezier(.4,0,.2,1)}.slide-enter-from[data-v-9c37a3cc],.slide-leave-to[data-v-9c37a3cc]{transform:translate(100%)}.fade-enter-active[data-v-9c37a3cc],.fade-leave-active[data-v-9c37a3cc]{transition:opacity .25s ease}.fade-enter-from[data-v-9c37a3cc],.fade-leave-to[data-v-9c37a3cc]{opacity:0}.score-area[data-v-9c37a3cc]{flex:1;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.empty-state[data-v-9c37a3cc]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;color:#aaa;font-size:14px}.empty-state__icon[data-v-9c37a3cc]{opacity:.6}.piano-dock[data-v-9c37a3cc]{position:relative;flex-shrink:0;border-top:1px solid rgba(0,0,0,.08);box-shadow:0 -2px 12px #0000000f}.shortcut-chip[data-v-9c37a3cc]{position:absolute;top:6px;right:12px;z-index:10;display:flex;align-items:center;gap:4px;padding:3px 10px 3px 8px;font-size:11px;color:#fff6;background:#00000059;border-radius:20px;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:all .18s;border:1px solid transparent}.shortcut-chip[data-v-9c37a3cc]:hover{color:#ffffffb3;background:#00000073}.shortcut-chip.active[data-v-9c37a3cc]{color:#d4a574;background:#d4a57426;border-color:#d4a5744d}
