body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;overflow:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box}.app{height:100vh}.toolbar{align-items:center;background:#fff;border-bottom:1px solid #d9d9d9;box-shadow:0 2px 4px #0000001a;display:flex;flex-wrap:wrap;gap:8px;padding:8px 16px}.main-content{align-items:flex-start;background:#0000;display:flex;flex:1 1;gap:20px;justify-content:center;margin:0 auto;overflow:hidden;padding:20px}.editor-panel{box-shadow:0 4px 20px #00000026;padding-bottom:80px;width:210mm}.editor-panel,.properties-panel{background:#fff;border-radius:8px;display:flex;flex-direction:column;max-height:80vh;overflow-y:auto}.properties-panel{box-shadow:0 2px 8px #0000001a;height:-webkit-fit-content;height:fit-content;width:280px}.canvas-container{flex:1 1;overflow:auto;padding:12px;position:relative}.note-button{font-size:18px;font-weight:700;height:40px;min-width:60px}.note-button.active{box-shadow:0 0 0 2px #1890ff}.note-b,.note-dollar,.note-s,.note-t{background-color:#fff;border-color:#000;color:#000}.tempo-input,.time-signature-select{width:80px}.measures-input{width:60px}.playback-controls{align-items:center;display:flex;gap:8px;margin-left:auto}.status-bar{background:#fafafa;border-top:1px solid #d9d9d9;justify-content:space-between;padding:4px 16px}.canvas-wrapper{background:#fff;border:1px solid #d9d9d9;border-radius:4px;min-height:400px;position:relative}.measure{border-right:1px solid #e8e8e8;display:inline-block;min-height:60px;padding:8px;position:relative;vertical-align:top}.measure:last-child{border-right:none}.beat{border:1px dashed #d9d9d9;border-radius:4px;cursor:pointer;display:inline-block;height:40px;margin:2px;position:relative;transition:all .2s;width:40px}.beat:hover{background-color:#f0f8ff;border-color:#1890ff}.beat.has-note{align-items:center;border:2px solid;color:#fff;display:flex;font-size:14px;font-weight:700;justify-content:center}.beat.note-b{background-color:#1890ff;border-color:#1890ff}.beat.note-t{background-color:#52c41a;border-color:#52c41a}.beat.note-s{background-color:#faad14;border-color:#faad14}.beat.note-dollar{background-color:#ff7a45;border-color:#ff7a45}.beat.selected{box-shadow:0 0 0 2px #722ed1}.measure-number{color:#666;font-size:12px;font-weight:700;left:4px;position:absolute;top:-20px}.properties-section{border-bottom:1px solid #f0f0f0;padding:16px}.properties-section:last-child{border-bottom:none}.properties-section h3{color:#262626;font-size:14px;font-weight:600;margin:0 0 12px}.form-item{margin-bottom:12px}.form-item label{color:#666}.keyboard-shortcuts{color:#999;font-size:11px;margin-top:8px}.keyboard-shortcuts div{margin-bottom:2px}.export-buttons{display:flex;flex-direction:column;gap:8px}.export-buttons .ant-btn{justify-content:flex-start}@media (max-width:768px){.main-content{flex-direction:column}.properties-panel{height:auto;margin:0 8px 8px;max-height:70vh;overflow-y:auto;width:auto}.toolbar{padding:4px 8px}.note-button{font-size:14px;height:36px;min-width:50px}}.app{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;min-height:100vh;padding:20px}.toolbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-bottom:1px solid #0000000f;border-radius:12px;box-shadow:0 2px 8px #00000014;margin-bottom:20px;padding:12px 20px;position:-webkit-sticky;position:sticky;top:0;width:100%;z-index:100}.toolbar .ant-space{display:flex!important;flex-wrap:wrap!important;justify-content:flex-start;width:100%}.toolbar .ant-space-item{flex-shrink:0}.toolbar .note-category-button{flex-basis:auto;max-width:200px!important;white-space:nowrap;width:auto!important}.toolbar .ant-btn,.toolbar .note-category-button{flex-grow:0;flex-shrink:1;min-width:auto!important}.toolbar .ant-btn{border-radius:8px;box-shadow:0 1px 3px #0000001a;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1)}.toolbar .ant-btn:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.toolbar .ant-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none}.toolbar .ant-btn-primary:hover{background:linear-gradient(135deg,#5a6fd8,#6a4190)}.score-editor{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:0;box-shadow:none;display:flex;flex-direction:column;height:100%;margin:0;overflow:hidden}.score-header{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-bottom:1px solid #0000000f;padding:12px 16px}.score-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#1a1a1a;font-size:20px;font-weight:600;margin:0}.score-info{color:#666;font-size:13px;font-weight:400;margin-top:6px}.score-canvas{background:#fff;flex:1 1;overflow-x:hidden;overflow-y:auto;padding:24px}.measure-grid{display:flex;flex-direction:column;gap:0;justify-content:flex-start;padding:10px}.measure-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#ffffffe6,#f8fafce6);border:1px dashed #00000014;border-radius:10px;box-shadow:0 4px 16px #0000000f;flex:1 1;padding:12px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.measure-2-4{max-width:120px;min-width:120px}.measure-3-4,.measure-4-4{max-width:220px;min-width:220px}.measure-6-8{max-width:320px;min-width:320px}.app.playing .measure-container{transition:none}.app.playing .measure-container:hover{border-color:#00000014;box-shadow:0 4px 16px #0000000f;transform:none}.app:not(.playing) .measure-container:hover{border-color:#667eea4d;box-shadow:0 8px 24px #0000001f;transform:translateY(-2px)}.measure-header{align-items:center;border-bottom:1px solid #0000000f;display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:8px}.measure-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#4a5568;font-size:13px;font-weight:600}.beats-container{display:grid}.beat-slot{align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#fffc;border:2px dashed #667eea4d;border-radius:8px;cursor:pointer;display:flex;height:50px;justify-content:center;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);width:48px}.measure-row-container{margin-bottom:10px}.score-page{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000001a;margin:0 auto 20mm;max-height:297mm;min-height:297mm;overflow:hidden;padding:20mm;page-break-after:always;position:relative;width:210mm}.score-page:last-child{margin-bottom:0}.page-number{bottom:10mm;color:#666;font-size:12px;font-weight:500;left:50%;position:absolute;transform:translateX(-50%)}.page-separator{background:linear-gradient(90deg,#0000,#667eea4d,#0000);height:2px;margin:10mm 0;position:relative;width:100%}.page-separator:before{background:#fff;color:#666;content:"--- 第 " attr(data-page) " 页 ---";font-size:12px;left:50%;padding:0 10px;position:absolute;top:-10px;transform:translateX(-50%)}.page-content{display:flex;flex-direction:column;height:257mm}.page-header{border-bottom:1px solid #0000001a;margin-bottom:8mm;padding-bottom:5mm}.measure-rows-container{display:flex;flex:1 1;flex-direction:column;justify-content:flex-start}.lyrics-input-container{margin-bottom:8px;padding:0 5px}.lyrics-input{border-bottom:1px dashed #0000001a!important;color:#666;font-size:14px;text-align:left;transition:all .3s ease;width:100%}.lyrics-input:hover{border-bottom-color:#0003!important}.lyrics-input:focus{border-bottom-color:#1890ff!important;box-shadow:none!important}.beat-slot:hover{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-color:#667eea;box-shadow:0 4px 12px #667eea33;transform:scale(1.05)}.beat-slot.selected{background:linear-gradient(135deg,#667eea26,#764ba226);border-color:#667eea;box-shadow:0 0 0 3px #667eea66}.beat-slot.current{animation:modernPulse .6s ease-in-out}@keyframes modernPulse{0%{box-shadow:0 0 0 0 #667eeab3;transform:scale(1)}50%{box-shadow:0 0 0 8px #667eea33;transform:scale(1.1)}to{box-shadow:0 0 0 0 #667eea00;transform:scale(1)}}@keyframes noteBounce{0%{transform:scale(1) translateY(0)}25%{transform:scale(1.2) translateY(-8px)}50%{transform:scale(1.15) translateY(-4px)}75%{transform:scale(1.1) translateY(-2px)}to{transform:scale(1) translateY(0)}}.notes-container{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;position:relative;width:100%}.beat-slot.has-multiple-notes{padding:1px}.draggable-note.multi-note{margin:0;width:100%}.draggable-note.multi-note .note{border-radius:2px;font-size:8px;line-height:1;margin:1px 0;min-height:12px;padding:1px 3px}.notes-container.has-beam{position:relative}.notes-container.has-beam:before{background:linear-gradient(180deg,#2d3748,#4a5568 50%,#2d3748);border-radius:2px;bottom:20%;box-shadow:1px 0 2px #0000004d;content:"";position:absolute;right:-2px;top:20%;width:4px;z-index:3}.note-button.note-bb,.note-button.note-bdollar,.note-button.note-bs,.note-button.note-bt{background-color:#fff;border:none;color:#000;font-size:21px;padding:4px 6px;text-decoration:underline;text-underline-offset:2px}.note-button.note-bdollar{letter-spacing:2px}.note-button.note-ts,.note-button.note-tt{background-color:#fff;border:none;color:#000;font-size:21px;padding:4px 6px;text-decoration:underline;text-underline-offset:2px}.note-button.note-dollardollar,.note-button.note-tdollar{letter-spacing:2px}.note-button.note-dollardollar,.note-button.note-ss,.note-button.note-tdollar{background-color:#fff;border:none;color:#000;font-size:21px;padding:4px 6px;text-decoration:underline;text-underline-offset:2px}.note-button.note-ss-quarter{background-color:#fff;border:none;color:#000;font-size:21px;padding:4px 6px 4px 8px;position:relative}.note-button.note-ss-quarter:before{color:#333;content:"s";font-size:10px;left:2px;position:absolute;top:-5px}.note-button.note-dollarb,.note-button.note-sb,.note-button.note-sdollar,.note-button.note-tb{background-color:#fff;border:none;color:#000;font-size:21px;padding:4px 6px;text-decoration:underline;text-underline-offset:2px}.note-button.note-dollarb{letter-spacing:2px}.note-button.note-st{background-color:#fff;border:none;color:#000;font-size:21px;padding:4px 6px;text-decoration:underline;text-underline-offset:2px}.note.note-bb,.note.note-bdollar,.note.note-bs,.note.note-bt{color:#000;font-size:20px;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}.note.note-bdollar{letter-spacing:2px}.note.note-ts,.note.note-tt{color:#000;font-size:20px;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}.note.note-dollardollar,.note.note-tdollar{letter-spacing:2px}.note.note-dollardollar,.note.note-ss,.note.note-tdollar{color:#000;font-size:20px;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}.note.note-ss-quarter{color:#000;font-size:20px;padding-left:8px;position:relative}.note.note-ss-quarter:before{color:#333;content:"s";font-size:12px;left:2px;position:absolute;top:-3px}.note.note-dollarb,.note.note-sb,.note.note-sdollar,.note.note-tb{color:#000;font-size:20px;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}.note.note-dollarb{letter-spacing:2px}.note.note-st{color:#000;font-size:20px;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}.note.note-rest{color:#333;font-size:21px;font-weight:700}.note.note-0b,.note.note-0dollar,.note.note-0s,.note.note-0t{color:#333;font-size:21px;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}.note-button.note-bbbb,.note-button.note-ssss,.note-button.note-tttt{background:#fff;border:none;color:#000;font-size:21px;font-weight:700;padding:4px 6px;-webkit-text-decoration:underline double;text-decoration:underline double;text-underline-offset:3px}.score-editor .note-0b0b,.score-editor .note-0dollar0dollar,.score-editor .note-0s0s,.score-editor .note-0t0t{background-color:#fff;border-radius:3px;color:#000;font-size:21px;font-weight:700;padding:1px 2px;-webkit-text-decoration:underline double;text-decoration:underline double;text-underline-offset:2px}.score-editor .note-0b0dollar,.score-editor .note-0b0s,.score-editor .note-0b0t,.score-editor .note-0bbb,.score-editor .note-0sss,.score-editor .note-0t0dollar,.score-editor .note-0t0s,.score-editor .note-0ttt{background-color:#fff;border-radius:3px;color:#000;font-size:21px;font-weight:700;padding:1px 2px;-webkit-text-decoration:underline double;text-decoration:underline double;text-underline-offset:1px}.score-editor .note-bbbb,.score-editor .note-ssss,.score-editor .note-tttt{-webkit-text-decoration:underline double;text-decoration:underline double;text-underline-offset:3px}.score-editor .note-0-bb,.score-editor .note-0-dollardollar,.score-editor .note-0-ss,.score-editor .note-0-tt,.score-editor .note-b-bb,.score-editor .note-b-dollardollar,.score-editor .note-b-ss,.score-editor .note-b-tt,.score-editor .note-bbbb,.score-editor .note-dollar-dollardollar,.score-editor .note-s-dollardollar,.score-editor .note-s-ss,.score-editor .note-ssss,.score-editor .note-t-dollardollar,.score-editor .note-t-ss,.score-editor .note-t-tt,.score-editor .note-tttt{background-color:#fff;border-radius:3px;color:#000;font-size:21px;font-weight:700;padding:1px 2px}.score-editor .note-0b0b--,.score-editor .note-0b0dollar--,.score-editor .note-0b0s--,.score-editor .note-0b0t--,.score-editor .note-0bbb--,.score-editor .note-0dollar0dollar--,.score-editor .note-0s0s--,.score-editor .note-0sss--,.score-editor .note-0t0dollar--,.score-editor .note-0t0s--,.score-editor .note-0t0t--,.score-editor .note-0ttt--{background-color:#fff;border-radius:3px;color:#000;font-size:21px;font-weight:700;padding:1px 2px;-webkit-text-decoration:underline double;text-decoration:underline double;text-underline-offset:1px}.score-editor .note-0bb--,.score-editor .note-0dollardollar--,.score-editor .note-0ss--,.score-editor .note-0tt--,.score-editor .note-bbb,.score-editor .note-ssb,.score-editor .note-sss,.score-editor .note-ttb,.score-editor .note-ttt{background-color:#fff;border-radius:3px;color:#000;font-size:21px;font-weight:700;padding:1px 2px}.score-editor .note-b-st--,.score-editor .note-b-ts--,.score-editor .note-t-ts--{letter-spacing:3px}.score-editor .note-b-bb--,.score-editor .note-b-st--,.score-editor .note-b-ts--,.score-editor .note-dollar-dollardollar--,.score-editor .note-s-ss--,.score-editor .note-t-ts--,.score-editor .note-t-tt--{background-color:#fff;border-radius:3px;color:#000;font-size:21px;font-weight:700;padding:1px 2px}.note-button.note-0b,.note-button.note-0dollar,.note-button.note-0s,.note-button.note-0t{background-color:#fff;border:none;color:#000;font-size:21px;padding:4px 6px;text-decoration:underline;text-underline-offset:2px}.note-button.note-0b0b,.note-button.note-0b0dollar,.note-button.note-0b0s,.note-button.note-0b0t,.note-button.note-0dollar0dollar,.note-button.note-0s0s,.note-button.note-0t0dollar,.note-button.note-0t0s,.note-button.note-0t0t{background:#fff;border:none;color:#000;font-size:21px;text-decoration:underline}.note-button.note-0bbb,.note-button.note-0sss,.note-button.note-0ttt{background:#fff;border:none;color:#000;font-size:21px;-webkit-text-decoration:underline double;text-decoration:underline double}.note.playing{animation:noteBounce .6s ease-out;box-shadow:0 8px 25px #0000004d,0 0 20px #667eea80;z-index:10}.beat-slot.playing{background:linear-gradient(135deg,#667eea33,#764ba233);border-color:#667eea;border-style:solid;box-shadow:0 0 20px #667eea66}.note{align-items:center;color:#000;cursor:pointer;display:flex;font-size:20px;font-weight:700;height:auto;justify-content:center;padding:2px 4px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);width:auto}.note:hover{transform:scale(1.1)}.note.note-b,.note.note-dollar,.note.note-s,.note.note-t{color:#000;font-size:21px;font-weight:700}.beat-number{bottom:-18px;color:#8b9dc3;font-size:11px;font-weight:500;left:50%;position:absolute;transform:translateX(-50%)}.empty-score{align-items:center;background:linear-gradient(135deg,#667eea0d,#764ba20d);border:2px dashed #667eea33;border-radius:16px;color:#8b9dc3;display:flex;flex-direction:column;font-size:15px;height:240px;justify-content:center;margin:20px 0}.empty-score-icon{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:56px;margin-bottom:20px;opacity:.6}.draggable-note{cursor:grab;transition:all .3s cubic-bezier(.4,0,.2,1)}.draggable-note:active{cursor:grabbing;transform:scale(.95)}.beat-slot.dragging-from{background:linear-gradient(135deg,#ff6b6b1a,#ff6b6b0d);border-color:#ff6b6b;border-style:solid;box-shadow:0 2px 8px #ff6b6b4d;opacity:.6;transform:scale(.95)}.beat-slot.drag-over{background:linear-gradient(135deg,#51cf6626,#51cf6614);border-color:#51cf66;border-style:solid;box-shadow:0 4px 16px #51cf664d;transform:scale(1.1)}.beat-slot.has-note,.beat-slot.has-note:hover{background:#0000;border:none}.draggable-note:hover .note{box-shadow:0 4px 16px #0003;transform:scale(1.1) rotate(2deg)}@keyframes modernDragPulse{0%{box-shadow:0 4px 16px #51cf664d;transform:scale(1.1)}50%{box-shadow:0 6px 20px #51cf6666;transform:scale(1.15)}to{box-shadow:0 4px 16px #51cf664d;transform:scale(1.1)}}.beat-slot.drag-over{animation:modernDragPulse .8s ease-in-out infinite}.tempo-controls{display:flex;flex-direction:column;gap:8px}.tempo-input{width:100%}.tempo-slider{margin:8px 0}.tempo-presets{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.tempo-presets .ant-btn{flex:1 1;font-size:11px;height:24px;min-width:0;padding:2px 6px}.measures-input,.time-signature-select{width:100%}.form-item{margin-bottom:16px}.form-item label{color:#333;display:block;font-size:12px;font-weight:500;margin-bottom:4px}@media (max-width:768px){.measure-container{min-width:160px}.beats-container{gap:4px;grid-template-columns:repeat(2,1fr)}.beat-slot{height:36px;width:36px}.note{font-size:12px;height:32px;width:32px}}@media (max-width:480px){.measure-grid{gap:8px}.measure-container{min-width:140px;padding:8px}.beat-slot{height:32px;width:32px}.note{font-size:11px;height:28px;width:28px}}.auto-save-dialog{animation:dialogFadeIn .3s ease-out;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #ffffff4d;border-radius:16px;box-shadow:0 16px 48px #0003;left:50%;min-width:320px;padding:24px;position:fixed;top:50%;transform:translate(-50%,-50%);z-index:1000}.auto-save-dialog h3{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#1a1a1a;font-size:18px;font-weight:600;margin:0 0 16px}.auto-save-dialog p{color:#666;font-size:14px;line-height:1.5;margin:0 0 20px}.auto-save-dialog .ant-btn{border-radius:8px;font-weight:500;margin-right:8px}.auto-save-dialog .ant-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none}@keyframes dialogFadeIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.auto-save-overlay{animation:overlayFadeIn .3s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000004d;bottom:0;left:0;position:fixed;right:0;top:0;z-index:999}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.status-bar{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:12px;border-top:1px solid #0000000f;bottom:20px;box-shadow:0 4px 12px #0000001a;color:#666;display:flex;font-size:12px;justify-content:center;left:50%;padding:8px 20px;position:fixed;transform:translateX(-50%);z-index:50}.pagination-controls{align-items:center;display:flex;gap:8px;margin-top:4px}.page-info{color:#666;font-size:12px;min-width:80px;text-align:center;white-space:nowrap}.status-bar span:first-child{color:#4a5568;font-weight:500}.status-bar span:last-child{color:#8b9dc3}.shortcuts{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #0000000f;border-radius:12px;box-shadow:0 4px 16px #0000000f;margin:16px 0;padding:16px}.shortcuts h4{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#4a5568;font-size:14px;font-weight:600;margin:0 0 12px}.shortcuts div{color:#666;font-size:12px;line-height:1.6;margin-bottom:4px}.export-btn{background:#1890ff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;margin:5px;padding:8px 16px}.export-btn:hover{background:#40a9ff}.video-record-btn{background:#52c41a!important}.video-record-btn:hover{background:#73d13d!important}.video-record-btn.recording{animation:pulse 1s infinite;background:#ff4d4f!important}.video-record-btn.recording:hover{background:#ff7875!important}.video-record-btn:disabled{background:#d9d9d9!important;cursor:not-allowed}@keyframes pulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}.recording-controls{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.recording-controls .ant-btn{border-radius:6px;font-weight:500;transition:all .3s ease}.recording-controls .ant-btn:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.recording-controls .ant-btn[disabled]{cursor:not-allowed;opacity:.6}.recording-status{background:#fff2f0;border:1px solid #ffccc7;border-radius:4px;margin-top:10px;padding:8px}.recording-indicator{align-items:center;color:#ff4d4f;display:flex;font-size:14px;font-weight:500}.recording-dot{animation:blink 1s infinite;background:#ff4d4f;border-radius:50%;height:8px;margin-right:8px;width:8px}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.processing-status{background:#f6ffed;border:1px solid #b7eb8f;border-radius:4px;margin-top:10px;padding:8px}.processing-indicator{color:#52c41a;font-size:14px;font-weight:500;margin-bottom:8px}.progress-bar{background:#f0f0f0;border-radius:3px;height:6px;overflow:hidden;width:100%}.progress-fill{background:#52c41a;border-radius:3px;height:100%;transition:width .3s ease}.note-button.note-bttt{padding:4px 6px}.note-button.note-bbdollardollar,.note-button.note-bbss,.note-button.note-bbtt,.note-button.note-bdollardollardollar,.note-button.note-bsss,.note-button.note-bttt,.note-button.note-ssdollardollar,.note-button.note-ttdollardollar,.note-button.note-ttss{background:#fff;border:none;color:#000;font-size:21px;font-weight:700;-webkit-text-decoration:underline double;text-decoration:underline double;text-underline-offset:3px}.note.note-bbdollardollar,.note.note-bbss,.note.note-bbtt,.note.note-bdollardollardollar,.note.note-bsss,.note.note-bttt,.note.note-ssdollardollar,.note.note-ttdollardollar,.note.note-ttss{background:#fff;border:none;color:#000;font-size:21px;-webkit-text-decoration:underline double;text-decoration:underline double;text-underline-offset:3px}.note-button.note-bb-b,.note-button.note-dollardollar-dollar,.note-button.note-dollardollardollar,.note-button.note-ss-b,.note-button.note-ss-s,.note-button.note-tt-b,.note-button.note-tt-t{background:#fff;border:none;color:#000;font-size:21px}.note-button.note-bss,.note-button.note-btt{background:#fff}.note-button.note-0bb,.note-button.note-0dollardollar,.note-button.note-0ss,.note-button.note-0tt,.note-button.note-btdollar,.note-button.note-bts{background:#fff;border:none;color:#000;font-size:21px}.note.note-bb-b,.note.note-dollardollar-dollar,.note.note-dollardollardollar,.note.note-ss-b,.note.note-ss-s,.note.note-tt-b,.note.note-tt-t{color:#000;font-size:21px;text-decoration:underline}.note.note-bss,.note.note-btt{text-decoration:underline}.note.note-0bb,.note.note-0dollardollar,.note.note-0ss,.note.note-0tt,.note.note-btdollar,.note.note-bts{color:#000;font-size:21px;text-decoration:underline}.note-button.note-dollart{background:#fff;border:none;color:#000;font-size:21px;letter-spacing:2px;text-decoration:underline;text-underline-offset:4px}.note.note-dollart{color:#000;font-size:21px;letter-spacing:2px;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}.note-button.note-0bb-b,.note-button.note-0bb-dollar,.note-button.note-0bb-s,.note-button.note-0bb-t,.note-button.note-0dollardollar-b,.note-button.note-0dollardollar-dollar,.note-button.note-0dollardollar-t,.note-button.note-0ss-b,.note-button.note-0ss-s,.note-button.note-0ss-t,.note-button.note-0tt-b,.note-button.note-0tt-t,.note-button.note-bbb-b,.note-button.note-bdollardollar-dollar,.note-button.note-bss-s,.note-button.note-btt-s,.note-button.note-btt-t,.note-button.note-dollarbb-b,.note-button.note-dollardollardollar-dollar,.note-button.note-dollarss-dollar,.note-button.note-dollartt-t,.note-button.note-sss-s,.note-button.note-tbb-b,.note-button.note-tbb-s,.note-button.note-tbb-t,.note-button.note-tdollardollar-dollar,.note-button.note-tss-b,.note-button.note-tss-s,.note-button.note-ttt-b,.note-button.note-ttt-t{background:#fff;border:none;color:#000;font-size:21px;padding:4px 6px}.note-button.note-b-st--,.note-button.note-b-ts--,.note-button.note-t-ts--{background:#fff;border:none;color:#000;font-size:21px;font-weight:700;letter-spacing:3px}.note.note-b-st--,.note.note-b-ts--,.note.note-t-ts--{color:#000;font-size:21px;font-weight:700;letter-spacing:3px}.score-editor .note-0bb-b,.score-editor .note-0bb-dollar,.score-editor .note-0bb-s,.score-editor .note-0bb-t,.score-editor .note-0dollardollar-b,.score-editor .note-0dollardollar-dollar,.score-editor .note-0dollardollar-t,.score-editor .note-0ss-b,.score-editor .note-0ss-s,.score-editor .note-0ss-t,.score-editor .note-0tt-b,.score-editor .note-0tt-t,.score-editor .note-bbb-b,.score-editor .note-bdollardollar-dollar,.score-editor .note-bss-s,.score-editor .note-btt-s,.score-editor .note-btt-t,.score-editor .note-dollarbb-b,.score-editor .note-dollardollardollar-dollar,.score-editor .note-dollarss-dollar,.score-editor .note-dollartt-t,.score-editor .note-sss-s,.score-editor .note-tbb-b,.score-editor .note-tbb-s,.score-editor .note-tbb-t,.score-editor .note-tdollardollar-dollar,.score-editor .note-tss-b,.score-editor .note-tss-s,.score-editor .note-ttt-b,.score-editor .note-ttt-t{background-color:#fff;border-radius:3px;color:#000;font-size:21px;font-weight:700;padding:1px 2px}.music-info{background:#f5f5f5;border-radius:6px;margin-bottom:16px;padding:12px}.music-filename{color:#333;font-size:14px;margin-bottom:8px;word-break:break-all}.music-controls{display:flex;gap:8px}.offset-controls{align-items:center;display:flex;gap:12px}.offset-description{color:#666;font-size:12px;min-width:80px}.note-button.note-0-dot-b,.note-button.note-0-dot-dollar,.note-button.note-0-dot-s,.note-button.note-0-dot-t,.note-button.note-b-dot-b,.note-button.note-b-dot-dollar,.note-button.note-b-dot-s,.note-button.note-b-dot-t,.note-button.note-dollar-dot-dollar,.note-button.note-s-dot-b,.note-button.note-s-dot-dollar,.note-button.note-s-dot-s,.note-button.note-s-dot-t,.note-button.note-t-dot-b,.note-button.note-t-dot-dollar,.note-button.note-t-dot-s,.note-button.note-t-dot-t{background-color:#fff;border:none;color:#000;font-size:21px;padding:4px 6px}.note.note-0-dot-b,.note.note-0-dot-dollar,.note.note-0-dot-s,.note.note-0-dot-t,.note.note-b-dot-b,.note.note-b-dot-dollar,.note.note-b-dot-s,.note.note-b-dot-t,.note.note-dollar-dot-dollar,.note.note-s-dot-b,.note.note-s-dot-dollar,.note.note-s-dot-s,.note.note-s-dot-t,.note.note-t-dot-b,.note.note-t-dot-dollar,.note.note-t-dot-s,.note.note-t-dot-t{color:#000;font-size:21px}.note-button.note-bbb,.note-button.note-bsb,.note-button.note-bss,.note-button.note-btb,.note-button.note-btt,.note-button.note-dollar-bb,.note-button.note-dollar-dollar-dollar,.note-button.note-dollar-ss,.note-button.note-dollar-tt,.note-button.note-sbb,.note-button.note-sbt,.note-button.note-sss,.note-button.note-stb,.note-button.note-sts,.note-button.note-stt,.note-button.note-tbb,.note-button.note-tbt,.note-button.note-tss,.note-button.note-tst,.note-button.note-ttb,.note-button.note-tts,.note-button.note-ttt{background-color:#fff;border:none;color:#000;font-size:21px;padding:4px 6px}.note.note-bbb,.note.note-bsb,.note.note-bss,.note.note-btb,.note.note-btt,.note.note-dollar-bb,.note.note-dollar-dollar-dollar,.note.note-dollar-ss,.note.note-dollar-tt,.note.note-sbb,.note.note-sbt,.note.note-sss,.note.note-stb,.note.note-sts,.note.note-stt,.note.note-tbb,.note.note-tbt,.note.note-tss,.note.note-tst,.note.note-ttb,.note.note-tts,.note.note-ttt{color:#000;font-size:21px}.note-button.note-bbbbb,.note-button.note-sssss,.note-button.note-ttttt{background-color:#fff;border:none;color:#000;font-size:21px;padding:4px 6px}.note.note-bbbbb,.note.note-sssss,.note.note-ttttt{color:#000;font-size:21px}.note-button.note-bbbs,.note-button.note-bbbt,.note-button.note-bbsb,.note-button.note-bbtb,.note-button.note-bsbb,.note-button.note-btbb,.note-button.note-sbss,.note-button.note-ssbs,.note-button.note-sssb,.note-button.note-ssst,.note-button.note-ssts,.note-button.note-stss,.note-button.note-tbtt,.note-button.note-tstt,.note-button.note-ttbt,.note-button.note-ttst,.note-button.note-tttb,.note-button.note-ttts{background-color:#fff;border:none;color:#000;font-size:21px;font-weight:700;padding:4px 6px;-webkit-text-decoration:underline double;text-decoration:underline double;text-underline-offset:2px}.note-button.note-b-ss-bs,.note-button.note-b-ss-bt,.note-button.note-b-tt-bb,.note-button.note-b-tt-bs,.note-button.note-b-tt-bt,.note-button.note-s-ss-ss,.note-button.note-s-tt-bt,.note-button.note-s-tt-ss,.note-button.note-s-tt-st,.note-button.note-s-tt-st-2,.note-button.note-s-tt-tt,.note-button.note-t-ss-bt,.note-button.note-t-tt-bs,.note-button.note-t-tt-bs-2,.note-button.note-t-tt-ts,.note-button.note-t-tt-tt{background-color:#fff;border:none;color:#000;font-size:18px;font-weight:700;padding:4px 6px;-webkit-text-decoration:underline wavy;text-decoration:underline wavy;text-underline-offset:2px}.note.note-bbbs,.note.note-bbbt,.note.note-bbsb,.note.note-bbtb,.note.note-bsbb,.note.note-btbb,.note.note-sbss,.note.note-ssbs,.note.note-sssb,.note.note-ssst,.note.note-ssts,.note.note-stss,.note.note-tbtt,.note.note-tstt,.note.note-ttbt,.note.note-ttst,.note.note-tttb,.note.note-ttts{color:#000;font-size:21px;font-weight:700;-webkit-text-decoration:underline double;text-decoration:underline double;text-underline-offset:2px}.note.note-b-ss-bs,.note.note-b-ss-bt,.note.note-b-tt-bb,.note.note-b-tt-bs,.note.note-b-tt-bt,.note.note-s-ss-ss,.note.note-s-tt-bt,.note.note-s-tt-ss,.note.note-s-tt-st,.note.note-s-tt-st-2,.note.note-s-tt-tt,.note.note-t-ss-bt,.note.note-t-tt-bs,.note.note-t-tt-bs-2,.note.note-t-tt-ts,.note.note-t-tt-tt{color:#000;font-size:18px;font-weight:700;letter-spacing:0}.group-create-controls{align-items:center;display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.group-list{margin-top:8px}.group-item{align-items:center;background:#00000005;border:1px solid #0000000f;border-radius:4px;display:flex;justify-content:space-between;margin-bottom:4px;padding:8px}.group-info{color:#666;flex:1 1;font-size:12px}.group-controls{align-items:center;display:flex;gap:4px}.group-item:hover{background:#0000000a}.score-editor .note-b--b-b--,.score-editor .note-s--s-s--,.score-editor .note-t--t-t--{background-color:#fff;border-radius:3px;color:#000;font-size:21px;font-weight:700;padding:1px 2px}.score-editor .note-0--b-b--,.score-editor .note-0--b-dollar--,.score-editor .note-0--b-s--,.score-editor .note-0--b-t--,.score-editor .note-0--dollar-b--,.score-editor .note-0--dollar-dollar--,.score-editor .note-0--dollar-t-,.score-editor .note-0--s-b--,.score-editor .note-0--s-s--,.score-editor .note-0--s-t--,.score-editor .note-0--t-b--,.score-editor .note-0--t-t--,.score-editor .note-b--dollar-dollar--,.score-editor .note-b--s-s--,.score-editor .note-b--t-s--,.score-editor .note-b--t-t--,.score-editor .note-dollar--b-b--,.score-editor .note-dollar--dollar-dollar--,.score-editor .note-dollar--s-dollar--,.score-editor .note-dollar--t-t--,.score-editor .note-t--b-b--,.score-editor .note-t--b-s--,.score-editor .note-t--b-t--,.score-editor .note-t--dollar-dollar--,.score-editor .note-t--s-b--,.score-editor .note-t--s-s--,.score-editor .note-t--t-b--{background-color:#fff;border-radius:3px;color:#000;font-size:21px;font-weight:700;padding:1px 2px;-webkit-text-decoration:underline double;text-decoration:underline double;text-underline-offset:3px}.note-button.note-ss-tt{background-color:#f9f9f9;border:1px solid #ccc;color:#333;font-size:14px;padding:4px 8px;position:relative}.note-button.note-ss-tt:before{color:#333;content:"s";font-size:10px;left:2px;position:absolute;top:-5px}.note-button.note-ss-bb{background-color:#f9f9f9;border:1px solid #ccc;color:#333;font-size:14px;padding:4px 8px;position:relative}.note-button.note-ss-bb:before{color:#333;content:"s";font-size:10px;left:2px;position:absolute;top:-5px}.note-button.note-ss-ss{background-color:#f9f9f9;border:1px solid #ccc;color:#333;font-size:14px;padding:4px 8px;position:relative}.note-button.note-ss-ss:before{color:#333;content:"s";font-size:10px;left:2px;position:absolute;top:-5px}.score-editor .note-ss-tt{background-color:#fff;border-radius:3px;color:#000;font-size:21px;font-weight:700;padding:1px 2px 1px 12px;position:relative}.score-editor .note-ss-tt:before{color:#000;content:"s";font-size:14px;left:3px;position:absolute;top:-8px}.score-editor .note-ss-bb{background-color:#fff;border-radius:3px;color:#000;font-size:21px;font-weight:700;padding:1px 2px 1px 12px;position:relative}.score-editor .note-ss-bb:before{color:#000;content:"s";font-size:14px;left:3px;position:absolute;top:-8px}.score-editor .note-ss-ss{background-color:#fff;border-radius:3px;color:#000;font-size:21px;font-weight:700;padding:1px 2px 1px 12px;position:relative}.score-editor .note-ss-ss:before{color:#000;content:"s";font-size:14px;left:3px;position:absolute;top:-8px}.region-selector-overlay{background:#000000b3;bottom:0;cursor:crosshair;left:0;position:fixed;right:0;top:0;z-index:10000}.region-selector-content,.region-selector-overlay{align-items:center;display:flex;justify-content:center}.region-selector-content{background:#ffffff1a;border:2px dashed #ffffff80;border-radius:8px;flex-direction:column;height:90vh;position:relative;width:90vw}.region-selector-instructions{background:#000c;border-radius:8px;box-shadow:0 4px 12px #0000004d;color:#fff;left:50%;padding:20px;position:absolute;text-align:center;top:20px;transform:translateX(-50%);z-index:10001}.region-selector-instructions h3{font-size:18px;font-weight:700;margin:0 0 10px}.region-selector-instructions p{font-size:14px;margin:5px 0;opacity:.9}.region-selector-area{bottom:0;cursor:crosshair;left:0;position:absolute;right:0;top:0}.selection-rectangle{background:#1890ff1a;border:2px solid #1890ff;box-shadow:0 0 10px #1890ff80;pointer-events:none;position:absolute;z-index:10002}.selection-rectangle:before{border:1px dashed #1890ff80;bottom:-5px;content:"";left:-5px;pointer-events:none;position:absolute;right:-5px;top:-5px}.selection-info{background:#000c;border-radius:4px;color:#fff;font-size:12px;padding:5px 10px;pointer-events:none;top:-30px;white-space:nowrap}.region-selector-controls,.selection-info{left:50%;position:absolute;transform:translateX(-50%)}.region-selector-controls{bottom:20px;z-index:10003}.region-selector-cancel{background:#ff4d4f;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px;transition:all .3s ease}.region-selector-cancel:hover{background:#ff7875;box-shadow:0 2px 8px #ff4d4f4d;transform:translateY(-1px)}.region-selector-cancel:active{box-shadow:0 1px 4px #ff4d4f4d;transform:translateY(0)}@media (max-width:768px){.region-selector-content{height:95vh;width:95vw}.region-selector-instructions{font-size:12px;padding:15px}.region-selector-instructions h3{font-size:16px}.region-selector-instructions p{font-size:12px}}.region-selector-overlay{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.selection-rectangle{animation:selectionPulse .5s ease}@keyframes selectionPulse{0%{opacity:.7;transform:scale(.95)}to{opacity:1;transform:scale(1)}}body,html{height:100%;width:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0);font-family:sans-serif;line-height:1.15}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:initial;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{font-weight:500;margin-bottom:.5em;margin-top:0}p{margin-bottom:1em;margin-top:0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-bottom:1em;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}code,kbd,pre,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-bottom:1em;margin-top:0;overflow:auto}figure{margin:0 0 1em}img{border-style:none;vertical-align:middle}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{caption-side:bottom;padding-bottom:.3em;padding-top:.75em;text-align:left}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{color:inherit;display:block;font-size:1.5em;line-height:inherit;margin-bottom:.5em;max-width:100%;padding:0;white-space:normal;width:100%}progress{vertical-align:initial}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:none;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{background-color:#feffe6;padding:.2em}
/*# sourceMappingURL=main.52002264.css.map*/