.app-modal-mask[data-v-488b15c8]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000a6;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box}.app-modal-card[data-v-488b15c8]{width:100%;max-width:400px;background:#1a1a2e;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:22px 20px 18px;box-shadow:0 16px 48px #00000073}.app-modal-title[data-v-488b15c8]{margin:0 0 10px;font-size:17px;font-weight:700;color:#fff}.app-modal-msg[data-v-488b15c8]{margin:0 0 16px;font-size:14px;line-height:1.6;color:#bbb;white-space:pre-wrap}.app-modal-input[data-v-488b15c8]{width:100%;height:40px;margin-bottom:16px;padding:0 12px;box-sizing:border-box;background:#00000059;border:1px solid rgba(255,255,255,.12);border-radius:8px;color:#fff;font-size:14px;outline:none}.app-modal-input[data-v-488b15c8]:focus{border-color:#4ade80}.app-modal-actions[data-v-488b15c8]{display:flex;justify-content:flex-end;gap:10px}.app-modal-btn[data-v-488b15c8]{min-width:88px;height:36px;padding:0 14px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;border:none}.app-modal-btn.ghost[data-v-488b15c8]{background:#ffffff14;color:#ccc}.app-modal-btn.primary[data-v-488b15c8]{background:#4ade80;color:#111}.login-page[data-v-c228f74e]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e)}.login-box[data-v-c228f74e]{background:#ffffff0d;border-radius:16px;padding:40px;width:320px;display:flex;flex-direction:column;gap:16px}h1[data-v-c228f74e]{text-align:center;color:#fff;margin-bottom:8px}input[data-v-c228f74e]{height:44px;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:0 14px;color:#fff;font-size:15px;outline:none}input[data-v-c228f74e]:focus{border-color:#e94560}.login-btn[data-v-c228f74e]{height:44px;background:#e94560;color:#fff;border-radius:8px;font-size:16px;font-weight:600}.error[data-v-c228f74e]{color:#e94560;font-size:13px;text-align:center}.layout[data-v-bb02212c]{display:flex;min-height:100vh;background:#0f0f23}.sidebar[data-v-bb02212c]{width:220px;flex-shrink:0;background:#16162e;border-right:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.logo[data-v-bb02212c]{display:flex;align-items:center;gap:10px;padding:20px 18px;border-bottom:1px solid rgba(255,255,255,.06)}.logo-icon[data-v-bb02212c]{font-size:24px}.logo-text[data-v-bb02212c]{display:flex;flex-direction:column;line-height:1.3}.logo-text strong[data-v-bb02212c]{color:#fff;font-size:15px}.logo-text span[data-v-bb02212c]{color:#666;font-size:12px}.menu[data-v-bb02212c]{flex:1;padding:14px 10px;display:flex;flex-direction:column;gap:4px}.menu-item[data-v-bb02212c]{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:8px;color:#999;font-size:14px;text-decoration:none;transition:all .15s}.menu-item[data-v-bb02212c]:hover{background:#ffffff0d;color:#ddd}.menu-item.active[data-v-bb02212c]{background:linear-gradient(135deg,#4ade802e,#4ade8014);color:#4ade80;font-weight:600}.menu-icon[data-v-bb02212c]{width:20px;text-align:center}.sidebar-footer[data-v-bb02212c]{padding:14px 18px;color:#444;font-size:12px;border-top:1px solid rgba(255,255,255,.06)}.main[data-v-bb02212c]{flex:1;display:flex;flex-direction:column;min-width:0}.topbar[data-v-bb02212c]{height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#ffffff05;border-bottom:1px solid rgba(255,255,255,.06);position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.page-title[data-v-bb02212c]{font-size:17px;font-weight:600;color:#fff}.topbar-actions[data-v-bb02212c]{display:flex;align-items:center;gap:8px}.online-dot[data-v-bb02212c]{width:8px;height:8px;border-radius:50%;background:#4ade80;box-shadow:0 0 8px #4ade8099}.online-text[data-v-bb02212c]{color:#4ade80;font-size:12px;margin-right:8px}.btn.logout[data-v-bb02212c]{height:34px;padding:0 14px;background:#ffffff14;color:#bbb;border-radius:6px;font-size:13px}.btn.logout[data-v-bb02212c]:hover{background:#e9456026;color:#e94560}.content[data-v-bb02212c]{flex:1;padding:24px 28px;overflow-y:auto}.dashboard[data-v-c2aef9fe]{display:flex;flex-direction:column;gap:20px}.toolbar[data-v-c2aef9fe]{display:flex;justify-content:space-between;align-items:center}.range-tabs[data-v-c2aef9fe]{display:flex;gap:8px}.range-btn[data-v-c2aef9fe]{padding:8px 18px;border-radius:8px;background:#ffffff0f;color:#aaa;font-size:13px}.range-btn.active[data-v-c2aef9fe]{background:#4ade80;color:#111;font-weight:600}.refresh-btn[data-v-c2aef9fe]{padding:8px 18px;border-radius:8px;background:#60a5fa26;color:#60a5fa;font-size:13px}.refresh-btn[data-v-c2aef9fe]:hover{background:#60a5fa40}.cards[data-v-c2aef9fe]{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.card[data-v-c2aef9fe]{display:flex;align-items:center;gap:14px;padding:18px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:12px;transition:transform .15s}.card[data-v-c2aef9fe]:hover{transform:translateY(-2px)}.card-icon[data-v-c2aef9fe]{width:46px;height:46px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.card-value[data-v-c2aef9fe]{font-size:24px;font-weight:700;color:#fff;line-height:1.2}.card-label[data-v-c2aef9fe]{font-size:12px;color:#888;margin-top:2px}.row[data-v-c2aef9fe]{display:grid;grid-template-columns:2fr 1fr;gap:14px}.panel[data-v-c2aef9fe]{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:18px}.panel-title[data-v-c2aef9fe]{font-size:14px;font-weight:600;color:#ddd;margin-bottom:12px}.chart[data-v-c2aef9fe]{height:280px}.top-list[data-v-c2aef9fe]{display:flex;flex-direction:column;gap:10px}.top-item[data-v-c2aef9fe]{display:flex;align-items:center;gap:12px}.rank[data-v-c2aef9fe]{width:24px;height:24px;border-radius:6px;background:#ffffff0f;color:#999;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.rank.r1[data-v-c2aef9fe]{background:#fbbf2433;color:#fbbf24}.rank.r2[data-v-c2aef9fe]{background:#c0c0c033;color:silver}.rank.r3[data-v-c2aef9fe]{background:#cd7f3233;color:#cd7f32}.top-info[data-v-c2aef9fe]{flex:1;min-width:0}.top-title[data-v-c2aef9fe]{font-size:13px;color:#ddd;display:flex;align-items:center;gap:6px;margin-bottom:5px}.tag[data-v-c2aef9fe]{font-size:10px;padding:1px 6px;border-radius:4px}.tag.official[data-v-c2aef9fe]{background:#4ade8026;color:#4ade80}.tag.user[data-v-c2aef9fe]{background:#8883;color:#aaa}.top-bar[data-v-c2aef9fe]{height:5px;border-radius:3px;background:#ffffff0f;overflow:hidden}.top-bar-fill[data-v-c2aef9fe]{height:100%;border-radius:3px;background:linear-gradient(90deg,#4ade80,#60a5fa);transition:width .3s}.top-score[data-v-c2aef9fe]{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.top-score strong[data-v-c2aef9fe]{color:#fbbf24;font-size:17px;font-weight:700}.top-score span[data-v-c2aef9fe]{color:#666;font-size:10px}.user-list[data-v-c2aef9fe]{display:flex;flex-direction:column;gap:12px}.user-item[data-v-c2aef9fe]{display:flex;align-items:center;gap:10px}.avatar[data-v-c2aef9fe]{width:34px;height:34px;border-radius:50%;object-fit:cover}.avatar.placeholder[data-v-c2aef9fe]{background:linear-gradient(135deg,#4ade80,#60a5fa);color:#111;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:15px}.user-name[data-v-c2aef9fe]{font-size:13px;color:#ddd}.user-time[data-v-c2aef9fe]{font-size:11px;color:#666;margin-top:2px}.more-link[data-v-c2aef9fe]{display:inline-block;margin-top:14px;font-size:13px;color:#60a5fa;text-decoration:none}.more-link[data-v-c2aef9fe]:hover{text-decoration:underline}.empty[data-v-c2aef9fe]{text-align:center;padding:30px 10px;color:#555;font-size:13px}@media (max-width: 1100px){.cards[data-v-c2aef9fe]{grid-template-columns:repeat(2,1fr)}.row[data-v-c2aef9fe]{grid-template-columns:1fr}}.songs-page[data-v-8a7da15c]{display:flex;flex-direction:column;gap:18px}.toolbar[data-v-8a7da15c]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.search-input[data-v-8a7da15c]{width:220px;height:36px;padding:0 12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#eee;font-size:13px}.search-input[data-v-8a7da15c]::placeholder{color:#666}select[data-v-8a7da15c]{height:36px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#bbb;padding:0 10px;font-size:13px}.btn[data-v-8a7da15c]{height:36px;padding:0 16px;border-radius:8px;font-size:13px}.btn.primary[data-v-8a7da15c]{background:#ffffff14;color:#eee}.btn.primary[data-v-8a7da15c]:hover{background:#ffffff21}.btn.add[data-v-8a7da15c]{background:#4ade80;color:#111;font-weight:600}.btn.import-md[data-v-8a7da15c]{background:#a78bfa2e;color:#c4b5fd;border:1px solid rgba(167,139,250,.35)}.btn.import-md[data-v-8a7da15c]:hover{background:#a78bfa47}.btn.seed[data-v-8a7da15c]{background:#60a5fa33;color:#93c5fd;border:1px solid rgba(96,165,250,.35)}.btn.seed[data-v-8a7da15c]:hover:not(:disabled){background:#60a5fa4d}.btn.seed[data-v-8a7da15c]:disabled{opacity:.55;cursor:not-allowed}.btn.batch-on[data-v-8a7da15c]{background:#4ade8033;color:#4ade80;border:1px solid rgba(74,222,128,.35)}.btn.batch-off[data-v-8a7da15c]{background:#fbbf242e;color:#fbbf24;border:1px solid rgba(251,191,36,.35)}.batch-bar[data-v-8a7da15c]{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#60a5fa1a;border:1px solid rgba(96,165,250,.25);border-radius:10px;color:#93c5fd;font-size:13px}.total-text[data-v-8a7da15c]{margin-left:auto;color:#666;font-size:13px}.song-table[data-v-8a7da15c]{background:#ffffff08;border-radius:12px;overflow:hidden}.table-head[data-v-8a7da15c],.table-row[data-v-8a7da15c]{display:grid;grid-template-columns:36px 1.8fr .9fr .7fr .55fr .7fr .7fr .9fr .9fr 2.4fr;padding:13px 16px;align-items:center;gap:10px}.table-head[data-v-8a7da15c]{background:#ffffff0d;color:#888;font-size:12px;font-weight:600}.table-row[data-v-8a7da15c]{border-top:1px solid rgba(255,255,255,.05);color:#ddd;font-size:13px}.table-row[data-v-8a7da15c]:hover{background:#ffffff05}.table-row.disabled-row[data-v-8a7da15c]{opacity:.55}.check-col[data-v-8a7da15c]{display:flex;align-items:center;justify-content:center}.check-col input[data-v-8a7da15c]{width:15px;height:15px;accent-color:#60a5fa;cursor:pointer}.title[data-v-8a7da15c]{color:#fff;font-weight:500;display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px}.dim[data-v-8a7da15c]{color:#999;font-size:12px}.dim.time[data-v-8a7da15c]{color:#666}.tag[data-v-8a7da15c]{padding:2px 8px;border-radius:4px;font-size:11px}.tag.official[data-v-8a7da15c]{background:#4ade8026;color:#4ade80}.tag.user[data-v-8a7da15c]{background:#8883;color:#aaa}.tag.lyrics[data-v-8a7da15c]{background:#60a5fa2e;color:#93c5fd}.switch[data-v-8a7da15c]{padding:2px 8px;border-radius:4px;font-size:11px;border:none;cursor:pointer}.switch.on[data-v-8a7da15c]{background:#4ade8026;color:#4ade80}.switch.off[data-v-8a7da15c]{background:#fbbf2426;color:#fbbf24}.switch[data-v-8a7da15c]:hover{filter:brightness(1.15)}.status[data-v-8a7da15c]{padding:2px 8px;border-radius:4px;font-size:11px}.status.pending[data-v-8a7da15c]{background:#ffc10726;color:#ffc107}.status.approved[data-v-8a7da15c],.status.none[data-v-8a7da15c]{background:#4ade8026;color:#4ade80}.status.rejected[data-v-8a7da15c]{background:#e9456026;color:#e94560}.actions[data-v-8a7da15c]{display:flex;gap:6px;flex-wrap:wrap}.op[data-v-8a7da15c]{padding:4px 10px;background:#ffffff14;color:#ddd;border-radius:4px;font-size:12px}.op[data-v-8a7da15c]:hover{background:#ffffff26}.op.preview[data-v-8a7da15c]{background:#60a5fa26;color:#93c5fd}.op.approve[data-v-8a7da15c]{background:#4ade8026;color:#4ade80}.op.reject[data-v-8a7da15c]{background:#e9456026;color:#e94560}.op.danger[data-v-8a7da15c]{background:#e945601f;color:#e94560}.op.danger[data-v-8a7da15c]:hover{background:#e9456038}.empty[data-v-8a7da15c]{text-align:center;padding:60px;color:#555;font-size:13px}.pagination[data-v-8a7da15c]{display:flex;align-items:center;justify-content:center;gap:16px}.page-btn[data-v-8a7da15c]{padding:8px 16px;background:#ffffff0f;color:#bbb;border-radius:8px;font-size:13px}.page-btn[data-v-8a7da15c]:disabled{opacity:.35;cursor:not-allowed}.page-info[data-v-8a7da15c]{color:#888;font-size:13px}.preview-mask[data-v-8a7da15c]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:24px}.preview-card[data-v-8a7da15c]{width:min(720px,100%);max-height:min(80vh,720px);overflow:auto;background:#1a1d24;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:20px 22px;box-shadow:0 20px 60px #00000073}.preview-head[data-v-8a7da15c]{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.preview-head h3[data-v-8a7da15c]{margin:0;color:#fff;font-size:18px}.preview-meta[data-v-8a7da15c]{margin:6px 0 0;color:#888;font-size:12px}.on-text[data-v-8a7da15c]{color:#4ade80}.off-text[data-v-8a7da15c]{color:#fbbf24}.preview-close[data-v-8a7da15c]{width:32px;height:32px;border-radius:8px;background:#ffffff0f;color:#aaa;font-size:14px}.preview-close[data-v-8a7da15c]:hover{background:#ffffff1f;color:#fff}.preview-loading[data-v-8a7da15c],.preview-error[data-v-8a7da15c]{padding:40px;text-align:center;color:#888;font-size:13px}.preview-error[data-v-8a7da15c]{color:#e94560}.preview-jianpu[data-v-8a7da15c]{display:flex;flex-wrap:wrap;gap:6px;padding:14px;min-height:80px;max-height:280px;overflow:auto;background:#ffffff08;border-radius:10px;margin-bottom:16px}.jp-note[data-v-8a7da15c]{min-width:26px;height:32px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:#ffffff0f;color:#eee;font-size:14px;font-weight:600}.jp-note.rest[data-v-8a7da15c]{color:#777}.jp-note.active[data-v-8a7da15c]{background:#60a5fa59;color:#fff;box-shadow:0 0 0 1px #60a5fa80}.jp-note sup[data-v-8a7da15c]{font-size:10px;margin-left:1px}.preview-controls[data-v-8a7da15c]{display:flex;flex-direction:column;gap:12px}.speed-row[data-v-8a7da15c],.play-row[data-v-8a7da15c]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.speed-row[data-v-8a7da15c]{color:#888;font-size:12px}.speed-row button[data-v-8a7da15c]{height:28px;padding:0 10px;border-radius:6px;background:#ffffff0f;color:#bbb;font-size:12px}.speed-row button.active[data-v-8a7da15c]{background:#60a5fa40;color:#93c5fd}.play-btn[data-v-8a7da15c],.stop-btn[data-v-8a7da15c],.edit-btn[data-v-8a7da15c],.toggle-btn[data-v-8a7da15c]{height:34px;padding:0 14px;border-radius:8px;font-size:13px}.play-btn[data-v-8a7da15c]{background:#4ade80;color:#111;font-weight:600}.play-btn[data-v-8a7da15c]:disabled{opacity:.45;cursor:not-allowed}.stop-btn[data-v-8a7da15c]{background:#ffffff14;color:#ddd}.stop-btn[data-v-8a7da15c]:disabled{opacity:.4;cursor:not-allowed}.edit-btn[data-v-8a7da15c]{background:#60a5fa33;color:#93c5fd}.toggle-btn.on[data-v-8a7da15c]{background:#4ade802e;color:#4ade80}.toggle-btn.off[data-v-8a7da15c]{background:#fbbf242e;color:#fbbf24}.md-import-card[data-v-8a7da15c]{width:min(820px,100%);max-height:min(90vh,860px);overflow:auto;background:#1a1d24;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:20px 22px;box-shadow:0 20px 60px #00000073}.md-import-actions[data-v-8a7da15c]{display:flex;gap:10px;align-items:center;margin-bottom:10px}.file-pick[data-v-8a7da15c]{display:inline-flex;align-items:center;height:36px;padding:0 14px;border-radius:8px;background:#ffffff14;color:#eee;font-size:13px;cursor:pointer}.file-pick input[data-v-8a7da15c]{display:none}.file-pick[data-v-8a7da15c]:hover{background:#ffffff21}.md-textarea[data-v-8a7da15c]{width:100%;min-height:220px;resize:vertical;box-sizing:border-box;padding:12px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:#00000040;color:#e8e8e8;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.5}.md-warnings[data-v-8a7da15c]{margin:10px 0 0;padding-left:18px;color:#fbbf24;font-size:12px;line-height:1.5}.md-result[data-v-8a7da15c]{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}.md-jianpu[data-v-8a7da15c]{max-height:140px;margin:10px 0}.md-result-actions[data-v-8a7da15c]{margin-top:8px}.editor-page[data-v-68f6530a]{height:100vh;display:flex;flex-direction:column;overflow:hidden}.editor-header[data-v-68f6530a]{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.05)}.editor-header h2[data-v-68f6530a]{color:#fff}.back-btn[data-v-68f6530a]{padding:8px 16px;background:#ffffff14;color:#eee;border-radius:6px}.save-btn[data-v-68f6530a]{padding:8px 24px;background:#4ade80;color:#111;border-radius:6px;font-weight:600}.editor-body[data-v-68f6530a]{flex:1;display:grid;grid-template-columns:1fr 400px;gap:20px;padding:20px 24px;overflow-y:auto;min-height:0}.left-panel[data-v-68f6530a],.right-panel[data-v-68f6530a]{display:flex;flex-direction:column;gap:16px}.form-section[data-v-68f6530a],.notes-section[data-v-68f6530a],.control-section[data-v-68f6530a],.piano-section[data-v-68f6530a]{background:#ffffff08;border-radius:12px;padding:16px}.form-row[data-v-68f6530a]{display:flex;align-items:center;gap:12px;margin-bottom:12px}.form-row[data-v-68f6530a]:last-child{margin-bottom:0}.form-row label[data-v-68f6530a]{color:#aaa;font-size:14px;width:50px}.form-row input[data-v-68f6530a],.form-row select[data-v-68f6530a]{flex:1;height:36px;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:0 12px;color:#fff;font-size:14px;outline:none}.section-head[data-v-68f6530a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;color:#aaa;font-size:14px}.head-actions[data-v-68f6530a]{display:flex;gap:8px}.head-actions button[data-v-68f6530a]{padding:4px 10px;background:#ffffff14;color:#eee;border-radius:4px;font-size:12px}.head-actions .danger[data-v-68f6530a]{color:#e94560}.draft-hint[data-v-68f6530a]{margin:0 0 10px;font-size:12px;color:#4ade80}.notes-grid[data-v-68f6530a]{display:flex;flex-wrap:wrap;gap:6px;min-height:120px;max-height:360px;overflow-y:auto;align-items:flex-end}.bar-cell[data-v-68f6530a]{display:flex;align-items:center;justify-content:center;width:14px;height:72px;color:#888;font-size:20px;font-weight:600}.note-cell[data-v-68f6530a]{position:relative;display:flex;flex-direction:column;align-items:center;width:52px;padding:8px 4px 6px;background:#ffffff0d;border-radius:6px;border:2px solid transparent;cursor:pointer}.note-cell.current[data-v-68f6530a]{border-color:#e94560;background:#e9456026}.note-cell.phrase[data-v-68f6530a]{border-bottom-color:#4ade80}.note-cell.rest .note-pitch[data-v-68f6530a]{color:#888;font-size:14px}.note-lyric[data-v-68f6530a]{margin-top:4px;font-size:12px;color:#93c5fd;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lyrics-section[data-v-68f6530a]{background:#ffffff08;border-radius:12px;padding:16px}.lyrics-section .primary-action[data-v-68f6530a]{background:#4ade8033;color:#4ade80}.split-toggle[data-v-68f6530a]{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:4px;font-size:12px;color:#aaa;background:#ffffff0f;cursor:pointer;-webkit-user-select:none;user-select:none}.split-toggle.on[data-v-68f6530a]{background:#60a5fa38;color:#93c5fd}.split-toggle input[data-v-68f6530a]{margin:0;accent-color:#60a5fa}.lyrics-textarea[data-v-68f6530a]{width:100%;min-height:110px;box-sizing:border-box;padding:10px 12px;background:#00000059;border:1px solid rgba(255,255,255,.12);border-radius:8px;color:#eee;font-size:14px;line-height:1.6;resize:vertical;outline:none;font-family:inherit}.lyrics-textarea[data-v-68f6530a]:focus{border-color:#4ade80}.lyrics-hint[data-v-68f6530a]{margin:8px 0 0;font-size:12px;color:#666}.note-pitch[data-v-68f6530a]{font-size:22px;font-weight:700;color:#fff}.note-dot[data-v-68f6530a]{font-size:10px;color:#fff;margin-top:-2px}.note-dur[data-v-68f6530a]{font-size:10px;color:#666;margin-top:2px}.note-del[data-v-68f6530a]{position:absolute;top:2px;right:4px;font-size:10px;color:#666;opacity:0;transition:opacity .15s}.note-cell:hover .note-del[data-v-68f6530a]{opacity:1}.empty-hint[data-v-68f6530a]{width:100%;text-align:center;color:#555;font-size:13px;line-height:1.8;padding:30px 0}.ctrl-label[data-v-68f6530a]{font-size:13px;color:#888;margin-right:8px}.dur-selector[data-v-68f6530a],.octave-selector[data-v-68f6530a],.speed-selector[data-v-68f6530a]{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:12px}.dur-selector button[data-v-68f6530a],.octave-selector button[data-v-68f6530a],.speed-selector button[data-v-68f6530a]{padding:5px 10px;background:#ffffff0f;color:#aaa;border-radius:4px;font-size:12px}.dur-selector button.active[data-v-68f6530a],.octave-selector button.active[data-v-68f6530a],.speed-selector button.active[data-v-68f6530a]{background:#e94560;color:#fff}.play-controls[data-v-68f6530a]{display:flex;gap:8px;margin-top:8px}.play-btn[data-v-68f6530a]{flex:1;padding:8px;background:#4ade8026;color:#4ade80;border-radius:6px;font-size:13px}.stop-btn[data-v-68f6530a]{padding:8px 14px;background:#e9456026;color:#e94560;border-radius:6px;font-size:13px}.piano-bar[data-v-68f6530a]{padding:12px 24px 20px;background:#00000059;border-top:1px solid rgba(255,255,255,.05)}.piano[data-v-68f6530a]{position:relative;width:100%;height:180px;display:flex;background:#0a0a1a;border-radius:8px;overflow:hidden}.white-key[data-v-68f6530a]{flex:1;box-sizing:border-box;background:#f5f5f5;border-right:1px solid #ccc;border-left:none;border-top:none;border-bottom:none;border-radius:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:10px;cursor:pointer;transition:background .08s}.white-key.pressed[data-v-68f6530a]{background:#ccc}.black-key[data-v-68f6530a]{position:absolute;top:0;width:8%;height:58%;background:#222;border-radius:0 0 4px 4px;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:6px;cursor:pointer}.black-key.pressed[data-v-68f6530a]{background:#444}.key-label[data-v-68f6530a]{font-size:14px;font-weight:700;color:#333}.black-key .key-label[data-v-68f6530a]{color:#eee;font-size:12px}.key-dot[data-v-68f6530a]{order:-1;font-size:20px;font-weight:700;line-height:1;color:#333;margin-bottom:-3px}.black-key .key-dot[data-v-68f6530a]{color:#eee;font-size:15px}.key-hint[data-v-68f6530a]{font-size:9px;color:#999;margin-top:4px}.black-key .key-hint[data-v-68f6530a]{color:#666}.keyboard-hint[data-v-68f6530a]{margin-top:10px;font-size:11px;color:#555;text-align:center;line-height:1.6}.users-page[data-v-ae96377e]{display:flex;flex-direction:column;gap:18px}.overview-card[data-v-ae96377e]{background:linear-gradient(135deg,#16162ef2,#0f0f23f2);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:20px 22px;box-shadow:0 8px 32px #00000059}.overview-head[data-v-ae96377e]{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}.overview-head h3[data-v-ae96377e]{color:#fff;font-size:15px;font-weight:600}.active-tabs[data-v-ae96377e]{display:flex;gap:6px}.active-btn[data-v-ae96377e]{padding:5px 12px;border-radius:6px;background:#ffffff0f;color:#999;font-size:12px}.active-btn.active[data-v-ae96377e]{background:#4ade802e;color:#4ade80;font-weight:600}.overview-summary[data-v-ae96377e]{display:flex;gap:18px;margin-left:auto}.overview-summary span[data-v-ae96377e]{color:#888;font-size:12px}.overview-summary span strong[data-v-ae96377e]{color:#4ade80;font-size:15px;margin-left:4px}.overview-body[data-v-ae96377e]{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:22px}.ov-col[data-v-ae96377e]{min-width:0}.ov-title[data-v-ae96377e]{font-size:13px;font-weight:600;color:#ddd;margin-bottom:12px}.ov-chart[data-v-ae96377e]{width:100%;height:250px}.ov-list[data-v-ae96377e]{display:flex;flex-direction:column;gap:8px}.ov-key.model-key[data-v-ae96377e]{width:132px}.ov-row[data-v-ae96377e]{display:flex;align-items:center;gap:10px;font-size:12px}.ov-key[data-v-ae96377e]{width:56px;flex-shrink:0;color:#bbb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ov-bar[data-v-ae96377e]{flex:1;height:7px;border-radius:4px;background:#ffffff0f;overflow:hidden}.ov-fill[data-v-ae96377e]{height:100%;border-radius:4px;background:linear-gradient(90deg,#fbbf24,#e94560)}.ov-fill.blue[data-v-ae96377e]{background:linear-gradient(90deg,#60a5fa,#22d3ee)}.ov-fill.green[data-v-ae96377e]{background:linear-gradient(90deg,#4ade80,#34d399)}.ov-count[data-v-ae96377e]{width:52px;flex-shrink:0;text-align:right;color:#60a5fa;font-weight:600;font-variant-numeric:tabular-nums}.ov-count em[data-v-ae96377e]{color:#666;font-style:normal;font-weight:400;margin-left:4px}.ov-empty[data-v-ae96377e]{text-align:center;padding:28px 8px;color:#555;font-size:12px}.overview-recent[data-v-ae96377e]{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.06)}.dev-grid[data-v-ae96377e]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.dev-row[data-v-ae96377e]{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;background:#ffffff0a;border-radius:8px;min-width:0}.dev-model[data-v-ae96377e]{color:#ddd;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dev-meta[data-v-ae96377e]{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.dev-version[data-v-ae96377e]{color:#fbbf24;font-size:11px;font-weight:600}.dev-version .env[data-v-ae96377e]{color:#888;font-style:normal;font-weight:400;margin-left:4px}.dev-time[data-v-ae96377e]{color:#666;font-size:10px}@media (max-width: 900px){.overview-body[data-v-ae96377e]{grid-template-columns:1fr}.dev-grid[data-v-ae96377e]{grid-template-columns:repeat(2,1fr)}}@media (max-width: 560px){.dev-grid[data-v-ae96377e]{grid-template-columns:1fr}}.toolbar[data-v-ae96377e]{display:flex;align-items:center;gap:10px}.search-input[data-v-ae96377e]{width:260px;height:36px;padding:0 12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#eee;font-size:13px}.search-input[data-v-ae96377e]::placeholder{color:#666}.btn.primary[data-v-ae96377e]{height:36px;padding:0 16px;background:#4ade80;color:#111;border-radius:8px;font-size:13px;font-weight:600}.sort-select[data-v-ae96377e]{height:36px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#bbb;padding:0 10px;font-size:13px}.total-text[data-v-ae96377e]{margin-left:auto;color:#666;font-size:13px}.user-table[data-v-ae96377e]{background:#ffffff08;border-radius:12px;overflow:hidden}.table-head[data-v-ae96377e],.table-row[data-v-ae96377e]{display:grid;grid-template-columns:2.4fr 1.4fr 1.4fr .8fr .8fr 1fr;padding:13px 16px;align-items:center;gap:12px}.table-head[data-v-ae96377e]{background:#ffffff0d;color:#888;font-size:12px;font-weight:600}.table-row[data-v-ae96377e]{border-top:1px solid rgba(255,255,255,.05);color:#bbb;font-size:13px}.table-row[data-v-ae96377e]:hover{background:#ffffff05}.user-cell[data-v-ae96377e]{display:flex;align-items:center;gap:10px}.avatar[data-v-ae96377e]{width:32px;height:32px;border-radius:50%;object-fit:cover}.avatar.placeholder[data-v-ae96377e]{background:linear-gradient(135deg,#4ade80,#60a5fa);color:#111;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:14px}.avatar.placeholder.lg[data-v-ae96377e]{width:44px;height:44px;font-size:18px}.user-meta[data-v-ae96377e]{display:flex;flex-direction:column;gap:2px}.nickname[data-v-ae96377e]{color:#eee;font-weight:500}.openid[data-v-ae96377e]{color:#666;font-size:11px}.num[data-v-ae96377e]{color:#60a5fa;font-weight:600}.active-time[data-v-ae96377e]{color:#4ade80;font-size:12px}.never[data-v-ae96377e]{color:#555;font-size:12px}.btn.small[data-v-ae96377e]{padding:5px 12px;background:#60a5fa26;color:#60a5fa;border-radius:6px;font-size:12px}.btn.small[data-v-ae96377e]:hover{background:#60a5fa40}.empty[data-v-ae96377e]{text-align:center;padding:60px;color:#555;font-size:13px}.empty.small[data-v-ae96377e]{padding:16px}.pagination[data-v-ae96377e]{display:flex;align-items:center;justify-content:center;gap:16px}.page-btn[data-v-ae96377e]{padding:8px 16px;background:#ffffff0f;color:#bbb;border-radius:8px;font-size:13px}.page-btn[data-v-ae96377e]:disabled{opacity:.35;cursor:not-allowed}.page-info[data-v-ae96377e]{color:#888;font-size:13px}.modal-mask[data-v-ae96377e]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.modal[data-v-ae96377e]{width:560px;max-height:82vh;overflow-y:auto;background:#16162e;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:22px 24px}.modal-head[data-v-ae96377e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-head h3[data-v-ae96377e]{color:#fff;font-size:16px}.close-btn[data-v-ae96377e]{width:28px;height:28px;border-radius:6px;background:#ffffff0f;color:#999;font-size:13px}.user-profile[data-v-ae96377e]{display:flex;align-items:center;gap:14px;margin-bottom:18px}.reg-time[data-v-ae96377e]{color:#666;font-size:12px;margin-top:4px}.openid.full[data-v-ae96377e]{color:#888;font-size:11px;word-break:break-all}.stat-grid[data-v-ae96377e]{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:18px}.stat-box[data-v-ae96377e]{background:#ffffff0a;border-radius:10px;padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:4px}.stat-box strong[data-v-ae96377e]{color:#4ade80;font-size:18px}.stat-box span[data-v-ae96377e]{color:#888;font-size:11px}.dist-title[data-v-ae96377e]{font-size:13px;font-weight:600;color:#ddd;margin-bottom:10px}.dist-list[data-v-ae96377e]{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.dist-row[data-v-ae96377e]{display:flex;align-items:center;gap:10px;font-size:12px;color:#aaa}.dist-row span[data-v-ae96377e]:first-child{width:80px;flex-shrink:0}.dist-bar[data-v-ae96377e]{flex:1;height:6px;border-radius:3px;background:#ffffff0f;overflow:hidden}.dist-fill[data-v-ae96377e]{height:100%;border-radius:3px;background:linear-gradient(90deg,#60a5fa,#4ade80)}.dist-count[data-v-ae96377e]{width:36px;text-align:right;color:#60a5fa}.event-list[data-v-ae96377e]{display:flex;flex-direction:column;gap:8px}.event-row[data-v-ae96377e]{display:flex;align-items:center;gap:10px;font-size:12px;color:#aaa}.event-type[data-v-ae96377e]{padding:2px 8px;border-radius:4px;font-size:11px;background:#88888826;color:#aaa;flex-shrink:0}.event-type.song_view[data-v-ae96377e]{background:#60a5fa26;color:#60a5fa}.event-type.practice_start[data-v-ae96377e]{background:#fbbf2426;color:#fbbf24}.event-type.practice_done[data-v-ae96377e]{background:#4ade8026;color:#4ade80}.event-desc[data-v-ae96377e]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-time[data-v-ae96377e]{color:#666;flex-shrink:0}.stats-page[data-v-d05e55fc]{display:flex;flex-direction:column;gap:18px}.toolbar[data-v-d05e55fc]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.range-tabs[data-v-d05e55fc]{display:flex;gap:8px}.range-btn[data-v-d05e55fc]{padding:8px 18px;border-radius:8px;background:#ffffff0f;color:#aaa;font-size:13px}.range-btn.active[data-v-d05e55fc]{background:#4ade80;color:#111;font-weight:600}.sort-select[data-v-d05e55fc]{height:36px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#bbb;padding:0 10px;font-size:13px}.total-text[data-v-d05e55fc]{margin-left:auto;color:#666;font-size:13px}.stats-table[data-v-d05e55fc]{background:#ffffff08;border-radius:12px;overflow:hidden}.table-head[data-v-d05e55fc],.table-row[data-v-d05e55fc]{display:grid;grid-template-columns:.5fr 2fr 1fr .7fr .7fr .7fr .9fr .9fr .9fr 1.2fr .8fr;padding:13px 16px;align-items:center;gap:10px}.table-head[data-v-d05e55fc]{background:#ffffff0d;color:#888;font-size:12px;font-weight:600}.table-row[data-v-d05e55fc]{border-top:1px solid rgba(255,255,255,.05);color:#bbb;font-size:13px}.table-row[data-v-d05e55fc]:hover{background:#ffffff05}.rank[data-v-d05e55fc]{width:26px;height:26px;border-radius:6px;background:#ffffff0f;color:#999;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.rank.top[data-v-d05e55fc]{background:#fbbf2433;color:#fbbf24}.title[data-v-d05e55fc]{color:#eee;font-weight:500}.dim[data-v-d05e55fc]{color:#888;font-size:12px}.num[data-v-d05e55fc]{color:#60a5fa;font-weight:600}.num.warm[data-v-d05e55fc]{color:#fbbf24}.num.green[data-v-d05e55fc]{color:#4ade80}.tag[data-v-d05e55fc]{font-size:11px;padding:2px 8px;border-radius:4px}.tag.official[data-v-d05e55fc]{background:#4ade8026;color:#4ade80}.tag.user[data-v-d05e55fc]{background:#8883;color:#aaa}.score[data-v-d05e55fc]{display:flex;align-items:center;gap:8px}.score strong[data-v-d05e55fc]{color:#fbbf24;font-size:15px;flex-shrink:0}.score-bar[data-v-d05e55fc]{height:6px;border-radius:3px;background:linear-gradient(90deg,#fbbf24,#e94560);transition:width .3s}.btn.small[data-v-d05e55fc]{padding:5px 12px;background:#60a5fa26;color:#60a5fa;border-radius:6px;font-size:12px}.btn.small[data-v-d05e55fc]:hover{background:#60a5fa40}.empty[data-v-d05e55fc]{text-align:center;padding:60px;color:#555;font-size:13px}.modal-mask[data-v-d05e55fc]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.modal[data-v-d05e55fc]{width:640px;background:#16162e;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:22px 24px}.modal-head[data-v-d05e55fc]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-head h3[data-v-d05e55fc]{color:#fff;font-size:15px}.close-btn[data-v-d05e55fc]{width:28px;height:28px;border-radius:6px;background:#ffffff0f;color:#999;font-size:13px}.trend-chart[data-v-d05e55fc]{height:320px}.page[data-v-d1d83ab9]{padding:20px}.toolbar[data-v-d1d83ab9]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.toolbar h2[data-v-d1d83ab9]{margin:0}.filters[data-v-d1d83ab9]{display:flex;gap:8px}.filters select[data-v-d1d83ab9],.filters input[data-v-d1d83ab9]{padding:7px 10px;background:#16213e;border:1px solid #2a3a5e;border-radius:6px;color:#eee;font-size:13px}.filters input[data-v-d1d83ab9]{width:180px}.filters button[data-v-d1d83ab9],.pager button[data-v-d1d83ab9]{padding:7px 14px;background:#e94560;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px}.pager button[data-v-d1d83ab9]:disabled{opacity:.4;cursor:not-allowed}.table-wrap[data-v-d1d83ab9]{background:#16213e;border-radius:10px;overflow:hidden}table[data-v-d1d83ab9]{width:100%;border-collapse:collapse;font-size:13px}th[data-v-d1d83ab9],td[data-v-d1d83ab9]{padding:12px 14px;text-align:left;border-bottom:1px solid rgba(255,255,255,.06);color:#ddd;vertical-align:top}th[data-v-d1d83ab9]{background:#00000040;color:#999;font-weight:500}.title-cell[data-v-d1d83ab9]{font-weight:600;color:#fff;display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px}.mock-tag[data-v-d1d83ab9]{padding:1px 6px;border-radius:4px;font-size:11px;font-weight:500;background:#ffc10726;color:#ffc107}.artist[data-v-d1d83ab9]{font-size:12px;color:#888;margin-top:2px}.note-cell[data-v-d1d83ab9],.reply-cell[data-v-d1d83ab9]{max-width:180px;color:#aaa;word-break:break-all}.reply-cell[data-v-d1d83ab9]{color:#8fd9a8}.status[data-v-d1d83ab9]{padding:2px 10px;border-radius:10px;font-size:12px;background:#ffc10726;color:#ffc107}.status.added[data-v-d1d83ab9]{background:#4ade8026;color:#4ade80}.status.rejected[data-v-d1d83ab9]{background:#96969626;color:#999}.link[data-v-d1d83ab9]{background:none;border:none;color:#64b5f6;cursor:pointer;font-size:13px;padding:0}.empty[data-v-d1d83ab9]{text-align:center;color:#666;padding:40px 0}.pager[data-v-d1d83ab9]{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px;color:#999;font-size:13px}.modal-mask[data-v-d1d83ab9]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal[data-v-d1d83ab9]{width:520px;max-width:92vw;background:#16213e;border-radius:12px;overflow:hidden}.modal-head[data-v-d1d83ab9]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.modal-head h3[data-v-d1d83ab9]{margin:0;font-size:16px}.close[data-v-d1d83ab9]{background:none;border:none;color:#999;font-size:16px;cursor:pointer}.modal-body[data-v-d1d83ab9]{padding:18px 20px;max-height:60vh;overflow-y:auto}.detail-row[data-v-d1d83ab9]{margin-bottom:10px;font-size:13px;color:#ddd}.detail-row label[data-v-d1d83ab9],.detail-block label[data-v-d1d83ab9]{color:#999}.detail-block[data-v-d1d83ab9]{margin-top:14px}.detail-block textarea[data-v-d1d83ab9]{width:100%;box-sizing:border-box;margin-top:6px;background:#0f1a30;border:1px solid #2a3a5e;border-radius:8px;color:#eee;padding:10px;font-size:13px;font-family:inherit;resize:vertical}.char-count[data-v-d1d83ab9]{text-align:right;font-size:11px;color:#666;margin-top:2px}.modal-actions[data-v-d1d83ab9]{display:flex;gap:8px;padding:14px 20px;border-top:1px solid rgba(255,255,255,255,.08);flex-wrap:wrap}.modal-actions button[data-v-d1d83ab9]{padding:8px 14px;border-radius:6px;border:none;cursor:pointer;font-size:13px;color:#fff}.modal-actions button[data-v-d1d83ab9]:disabled{opacity:.5;cursor:not-allowed}.btn-ghost[data-v-d1d83ab9]{background:#3a4a6e}.btn-success[data-v-d1d83ab9]{background:#2e9e5b}.btn-gray[data-v-d1d83ab9]{background:#666}.btn-warn[data-v-d1d83ab9]{background:#b8860b}.page[data-v-9b0ad30f]{padding:20px;max-width:720px}.toolbar h2[data-v-9b0ad30f]{margin:0 0 16px}.card[data-v-9b0ad30f]{background:#16213e;border-radius:10px;padding:20px;margin-bottom:16px}.card h3[data-v-9b0ad30f]{margin:0 0 12px;font-size:15px}.field label[data-v-9b0ad30f]{display:block;font-size:13px;color:#999;margin-bottom:8px}.field input[data-v-9b0ad30f]{width:100%;box-sizing:border-box;padding:10px 12px;background:#0f1a30;border:1px solid #2a3a5e;border-radius:8px;color:#eee;font-size:13px}.hint[data-v-9b0ad30f]{margin:10px 0 0;font-size:12px;color:#777;line-height:1.7}code[data-v-9b0ad30f]{background:#ffffff14;padding:1px 6px;border-radius:4px;color:#9ecbff;font-size:12px}.actions[data-v-9b0ad30f]{display:flex;gap:10px;margin-top:16px}.actions button[data-v-9b0ad30f]{padding:9px 20px;border-radius:8px;border:none;cursor:pointer;font-size:13px;color:#fff}.actions button[data-v-9b0ad30f]:disabled{opacity:.5;cursor:not-allowed}.save[data-v-9b0ad30f]{background:#e94560}.reset[data-v-9b0ad30f]{background:#3a4a6e}.saved-tip[data-v-9b0ad30f]{margin:12px 0 0;color:#4ade80;font-size:13px}.notes[data-v-9b0ad30f]{margin:0;padding-left:18px;color:#aaa;font-size:13px;line-height:2}.notes b[data-v-9b0ad30f]{color:#ddd}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,PingFang SC,Helvetica Neue,sans-serif;background:#0f0f23;color:#eee}button{cursor:pointer;border:none;font-family:inherit}input,select,textarea{font-family:inherit}
