:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Helvetica Neue",sans-serif;color:#23372d;background:#f5f6f2;font-synthesis:none;--green:#28603c;--line:#e1e6df;--muted:#78847c}
.layout>.stage{position:relative;top:0}.layout>.stage .viewport{height:clamp(270px,38vh,460px);min-height:270px}.layout>.controls{max-height:calc(clamp(270px,38vh,460px) + 210px);overflow:auto;scrollbar-width:thin}.timeline-studio{grid-column:1/-1;margin:0;padding:20px 24px;min-width:0;box-shadow:0 8px 35px #233c2a06}.editor-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.editor-header h2{font-size:16px;letter-spacing:1px}.editor-header #studio-badge{display:block;margin:6px 0 0;font-size:10px}.editor-toolbar{display:flex;align-items:center;gap:8px;margin:18px 0 12px;flex-wrap:wrap}.editor-toolbar .primary{flex:0 0 auto;min-width:85px}.editor-toolbar .volume-label{margin-left:auto}.editor-toolbar button{padding:8px 12px}.tool-separator{height:20px;border-left:1px solid var(--line);margin:0 5px}.editor-toolbar kbd{background:#edf2e7;border-radius:3px;margin-left:4px;padding:1px 4px;font-size:9px;color:#7c8d70}.timeline-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.timeline-meta #music-name{flex:1;font-size:11px}.timeline-meta label{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:10px;color:var(--muted)}.timeline-meta input{width:90px;margin:0}.timeline-scroll{overflow-x:auto;border:1px solid #dce4d5;border-radius:9px;scrollbar-width:thin;background:#f7f9f4}#timeline-surface{position:relative;min-width:100%;padding-bottom:8px}#timeline-surface:after{content:'';position:absolute;left:var(--playhead,20px);top:126px;height:34px;border-left:1px solid #ce7959;pointer-events:none;z-index:2}.timeline-studio #score-waveform{width:100%;height:126px;touch-action:none;cursor:crosshair}.timeline-studio #segment-list{display:flex;flex-wrap:nowrap;margin:0 20px;gap:0;overflow:visible;height:34px;max-height:none}.timeline-studio #segment-list button{flex:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:5px;border:1px solid #cedcbd;background:#e9f0de;text-align:left;font-size:10px;padding:5px 10px}.timeline-studio #segment-list button[aria-pressed=true]{background:#568248;color:white;border-color:#568248}.trim-tools{display:flex;align-items:center;gap:14px;padding:10px 0;font-size:10px;color:var(--muted);flex-wrap:wrap}.trim-tools label{display:flex;align-items:center;gap:7px}.trim-tools input{width:70px}.trim-tools strong{font-variant-numeric:tabular-nums;font-size:11px;color:#456b36}.trim-tools button{margin-left:auto;background:#eff4e8;padding:7px 13px}.timeline-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:10px 0 16px;font-size:10px;color:var(--muted)}.timeline-footer label{display:flex;gap:8px;align-items:center;flex:1;max-width:500px;white-space:nowrap}.timeline-footer #studio-seek{width:100%;margin:0}.curve-editor{border-top:1px solid var(--line);padding-top:15px}.curve-heading{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.curve-heading h3{font-size:12px;font-weight:550;flex:1;margin:0}.curve-heading .check-line{margin:0}.curve-heading select{font-size:11px}.curve-workspace{display:grid;grid-template-columns:minmax(0,1fr) 215px;gap:20px;margin-top:14px}.timeline-studio #segment-curve-preview{height:220px;margin:0;touch-action:none;cursor:ns-resize;border-color:#e0e7d9}.curve-knobs{padding:0 4px;font-size:10px;color:var(--muted)}.curve-knobs>label,.curve-knobs #wave-controls>label{display:grid;grid-template-columns:1fr auto;align-items:center;margin:7px 0}.curve-knobs input[type=range]{grid-column:1/-1;grid-row:2;margin:5px 0}.curve-knobs output{font-size:11px;color:#376a38;font-variant-numeric:tabular-nums}.curve-knobs .check-line{display:flex;margin-top:14px}.curve-knobs button{padding:6px;font-size:10px}#segment-curve-note{font-size:10px;color:var(--muted);margin:10px 0 0}.editor-bottom{display:flex;align-items:center;gap:20px;margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.editor-bottom #studio-message{flex:1;margin:0}.editor-bottom #export-performance{width:auto;flex:none;background:#f2f6ec}.timeline-studio #exported-video{max-height:400px}.timeline-studio.is-busy canvas{pointer-events:none;opacity:.6}@media(max-width:700px){.timeline-studio{padding:16px;grid-row:2}.editor-header{align-items:flex-start;flex-wrap:wrap}.curve-workspace{grid-template-columns:1fr}.curve-knobs{display:flex;flex-wrap:wrap;gap:15px}.curve-knobs>label{min-width:180px}.curve-knobs #wave-controls{display:flex;gap:14px;flex-wrap:wrap}.curve-knobs #wave-controls>label{width:130px}.editor-toolbar .volume-label{margin-left:0}.timeline-footer{flex-wrap:wrap;gap:8px}.timeline-footer label{order:3;flex-basis:100%;max-width:none}.editor-bottom{flex-wrap:wrap;gap:10px}.editor-bottom #studio-message{flex-basis:100%}.trim-tools{gap:8px}.trim-tools>span{flex-basis:100%}.layout>.controls{max-height:none}.curve-heading h3{flex-basis:100%}}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:8px;background:white;color:#365340;padding:9px 13px;transition:background .15s}button:hover{background:#edf2e9}button:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid #70bf52;outline-offset:3px}button:disabled{opacity:.4;cursor:default}.header{max-width:1560px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:27px 34px 23px}.identity{display:flex;align-items:center;gap:15px}.mark{font-size:40px;font-weight:300;color:var(--green);line-height:1}h1{font-size:21px;letter-spacing:1px;font-weight:550;margin:0}.identity p{color:var(--muted);font-size:12px;margin:6px 0 0;letter-spacing:1px}.header-right{display:flex;align-items:center;gap:14px}.pill{font-size:11px;color:var(--muted);letter-spacing:.8px}.quiet{font-size:12px}.layout{max-width:1560px;margin:auto;padding:0 26px;display:grid;grid-template-columns:minmax(0,1fr) 332px;gap:22px;align-items:start}.stage{background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden;position:sticky;top:16px}.stage-toolbar{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #f0f2ee}.tabs{display:flex;gap:7px}.tabs button{font-size:12px;border-color:transparent;background:transparent;color:var(--muted);padding:8px 12px}.tabs button[aria-selected=true]{background:#edf3e9;color:#31563b}.status{font-size:11px;color:var(--muted)}.status.playing{color:#397945}.viewport{height:min(70vw,calc(100vh - 268px));min-height:460px;position:relative;background:white;touch-action:none}.viewport canvas{width:100%;height:100%;display:block;cursor:grab}.viewport canvas.dragging{cursor:grabbing}#loading{position:absolute;top:45%;width:100%;text-align:center;color:var(--muted);font-size:13px}.hint{position:absolute;bottom:19px;left:21px;font-size:10px;letter-spacing:.6px;color:#909b92;pointer-events:none}.view-tools{position:absolute;right:16px;bottom:12px;display:flex;align-items:center;gap:3px;border:1px solid var(--line);background:#fffffff2;border-radius:9px;padding:3px}.view-tools button{border:0;padding:7px 9px;font-size:12px}.view-tools span{font-size:10px;color:var(--muted);min-width:39px;text-align:center}.telemetry{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #f0f2ee;margin:0 20px;padding:17px 0}.telemetry div{padding-left:18px;border-right:1px solid #eef1ec}.telemetry div:first-child{padding-left:0}.telemetry div:last-child{border:0}.telemetry span{display:block;color:var(--muted);font-size:10px;margin-bottom:6px}.telemetry strong{font-size:17px;font-weight:500;font-variant-numeric:tabular-nums}.telemetry small{font-size:9px;color:var(--muted);margin-left:4px}.legend{display:flex;justify-content:center;gap:22px;padding:0 10px 17px;font-size:10px;color:#68796d}.legend span{display:flex;align-items:center;gap:7px}.legend i{display:block;width:12px;height:12px;border-radius:50%;border:1px solid #0000000b}.controls{background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden}.control-section{padding:21px 20px;border-bottom:1px solid #edf0e9}.control-section:last-child{border:0}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}h2{font-size:13px;font-weight:550;margin:0;letter-spacing:.7px}.section-title>span{font-size:10px;font-variant-numeric:tabular-nums;color:#91a094}.play-row{display:flex;gap:8px}.primary{flex:1;background:var(--green);color:white;border-color:var(--green);font-size:12px}.primary:hover{background:#397a4a}.direction{border:0;margin:18px 0;padding:0;display:flex;gap:24px}.direction legend{font-size:10px;color:var(--muted);margin-bottom:10px}.direction label{display:flex;align-items:center;gap:5px;font-size:11px}input[type=radio],input[type=checkbox]{accent-color:var(--green);margin:0}.label-row{display:flex;align-items:center;justify-content:space-between;font-size:11px}.label-row>span{color:var(--muted);font-size:10px}.label-row input[type=number]{width:56px;padding:5px 4px;text-align:center;border:1px solid var(--line);border-radius:5px;color:var(--green);font-size:11px}input[type=range]{width:100%;accent-color:var(--green);height:20px;margin:8px 0 5px}.presets{display:flex;gap:5px;flex-wrap:wrap}.presets button{font-size:10px;padding:6px 8px;color:#66786b}.angle-label{margin-top:20px}.steps{display:flex;align-items:center;gap:5px}.steps button{font-size:10px;padding:5px 9px}.steps span{font-size:9px;margin-left:5px;color:var(--muted)}.display-presets{margin-bottom:14px}.part-group{border-top:1px solid #eef1ec;padding:10px 0;font-size:11px}.part-group:first-child{border:0}.part-group summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none}.part-group summary:after{content:"＋";margin-left:auto;color:#91a094}.part-group[open] summary:after{content:"−"}.group-check{display:flex;align-items:center;gap:8px;flex:1}.group-count{font-size:9px;color:#9aa49b;margin-left:auto}.individual-parts{padding:9px 0 0 21px}.individual-parts label{display:flex;align-items:center;gap:8px;padding:6px 0;color:#7a887d;font-size:10px}.individual-parts label.selected{color:#28603c;background:#f0f5ea;border-radius:4px;font-weight:600}.selection{color:var(--muted);font-size:10px;line-height:1.6;margin:10px 0 0}.colour-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin:13px 0}.colour-row input{width:39px;height:27px;border:1px solid var(--line);border-radius:5px;background:white;padding:2px;cursor:pointer}.text-button{border:0;background:none;padding:0;font-size:10px;color:#81917f}.check-line{display:flex;gap:7px;align-items:center;margin-top:17px;font-size:10px;color:#657668}.subtle{font-size:10px;color:#8a948c;line-height:1.8;margin:11px 0 0}.export-button{width:100%;font-size:11px;padding:11px}.sources{font-size:11px}.sources a{color:#3b7850}footer{max-width:1560px;margin:auto;padding:21px 30px;font-size:10px;letter-spacing:.5px;color:#929d93;display:flex;justify-content:space-between}dialog{width:min(550px,90vw);border:1px solid var(--line);border-radius:16px;padding:27px;color:#36513d;box-shadow:0 20px 70px #243f3520}dialog::backdrop{background:#263e3440;backdrop-filter:blur(4px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between}.dialog-heading button{border:0;font-size:22px;padding:0 6px}dialog p{font-size:12px;line-height:1.9}.formula{font-size:12px;font-family:monospace;line-height:1.9;padding:15px;background:#f1f5ec;border-radius:8px}body.static-mode .motion-controls{opacity:.45;pointer-events:none}body.static-mode .hint{font-size:0}body.static-mode .hint:before{content:"V10 定稿 · 滚轮放大 · 拖动查看局部";font-size:10px}body.static-mode .telemetry{opacity:.4}
[hidden]{display:none!important}.camera-toolbar{padding:10px 20px;border-bottom:1px solid #f0f2ee;display:flex;gap:10px;align-items:center;font-size:11px}.camera-toolbar span{margin-left:auto;font-size:9px;color:var(--muted)}select{font:inherit;border:1px solid var(--line);background:white;border-radius:6px;padding:7px;color:#365340}.viewport{min-height:420px;height:min(65vw,calc(100vh - 310px))}.video-settings{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.video-settings label{display:flex;flex-direction:column;gap:6px;color:#78847c;font-size:10px}.video-settings label:first-child{grid-column:1/-1}.video-settings input{border:1px solid var(--line);padding:7px;border-radius:6px;width:100%;color:#365340}#record-progress{width:100%;height:8px;accent-color:#28603c;margin-top:14px}#cancel-record{margin-top:10px;width:100%;pointer-events:auto}.spatial-mode .legend{opacity:.5}.spatial-mode .hint{font-size:0}.spatial-mode .hint:before{content:"真实 CAD 网格 · 拖动旋转 · 右键平移";font-size:10px}body.recording canvas{pointer-events:none}.stage-toolbar{gap:5px}.tabs{gap:1px}.tabs button{padding:8px 9px}
.timeline-studio .curve-workspace{grid-template-columns:190px minmax(0,1fr) 200px;gap:18px}.live-monitor{border:1px solid var(--line);border-radius:8px;background:white;overflow:hidden;align-self:start}.live-monitor canvas{display:block;width:100%;aspect-ratio:1}.live-monitor span{display:block;font-size:9px;color:var(--muted);text-align:center;padding:8px;border-top:1px solid #edf1e7}@media(max-width:950px){.timeline-studio .curve-workspace{grid-template-columns:140px minmax(0,1fr) 160px;gap:10px}}@media(max-width:700px){.timeline-studio .curve-workspace{grid-template-columns:1fr}.live-monitor{width:150px}.timeline-studio .curve-knobs{display:flex}}
.viewport canvas{position:absolute;inset:0;user-select:none;-webkit-user-select:none;touch-action:none}#loading{pointer-events:none}
.stage-column{min-width:0}.stage-column .stage{position:relative;top:0}.studio{background:#fff;border:1px solid var(--line);border-radius:14px;margin-top:18px;padding:20px}.studio-heading{display:flex;gap:14px;align-items:center;justify-content:space-between}.studio-heading h2{font-size:16px}.studio-heading p{font-size:11px;color:var(--muted);margin:8px 0 16px}#studio-badge{font-size:10px;color:var(--muted);white-space:nowrap}.studio-music,.studio-transport,.performance-pads,.score-editor-tools,.score-file-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.studio button,.file-button{font-size:11px}.file-button{display:inline-block;cursor:pointer;border:1px solid var(--line);border-radius:8px;padding:9px 13px;background:#f4f7ef;color:#365340}.file-button:focus-within{outline:2px solid #70bf52}.studio input[type=file]{display:block;position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#music-name{font-size:10px;color:var(--muted);flex:1;min-width:130px;overflow-wrap:anywhere}.studio-transport{margin:15px 0 10px}.studio-transport .primary{flex:0 1 auto}#studio-time{font-size:11px;font-variant-numeric:tabular-nums;margin-left:auto}.volume-label{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted)}.volume-label input{width:70px;margin:0}.performance-pads button{flex:1;background:#f4f7ef;min-width:90px}.performance-pads button:active{background:#dceacb}.performance-pads button[data-action=stop]{background:#fff}.score-timeline{margin-top:16px;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fbfcf8}#score-waveform{display:block;width:100%;height:100px}#studio-seek{width:calc(100% - 20px);margin:0 10px 3px}.score-legend{display:flex;justify-content:space-between;gap:10px;font-size:9px;color:var(--muted);padding:7px 10px;border-top:1px solid var(--line)}#studio-message{font-size:11px;color:#637568;line-height:1.7;margin:12px 0}.studio.is-capturing #studio-record{background:#9e4338;color:#fff;border-color:#9e4338}#score-editor{border-top:1px solid var(--line);padding-top:12px;font-size:11px}#score-editor summary{cursor:pointer;display:flex;justify-content:space-between;color:var(--green);padding:5px 0}#score-count{color:var(--muted);font-size:10px}.score-editor-tools{margin-top:12px}.score-editor-tools label{display:flex;align-items:center;gap:6px;color:var(--muted)}.score-editor-tools input{width:64px}.studio input[type=number]{font-size:11px;border:1px solid var(--line);border-radius:5px;padding:6px;color:#365340}.score-nodes{max-height:210px;overflow:auto;margin:12px 0}.score-node{display:grid;grid-template-columns:25px minmax(75px,1fr) minmax(95px,1fr) 35px;align-items:center;gap:8px;margin:6px 0;color:var(--muted)}.score-node label{display:flex;gap:5px;align-items:center;font-size:10px}.score-node input{width:100%;min-width:0}.score-node button{padding:5px}.score-file-tools{margin:10px 0}.studio-export{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.studio-export>span{display:block;font-size:10px;color:var(--muted);margin-top:8px}.studio.is-busy{opacity:.65}.studio.is-busy button,.studio.is-busy label{pointer-events:none}@media(max-width:700px){.studio{padding:15px}.studio-heading{align-items:flex-start}#studio-badge{font-size:9px}.studio-transport{gap:6px}.studio-transport button{padding:8px}#studio-time{margin-left:0}.score-legend{font-size:8px}.performance-pads button{min-width:75px}.volume-label{margin-left:auto}}
.controls .studio{border:0;border-bottom:1px solid var(--line);border-radius:0;margin:0;padding:21px 20px}.studio-heading{display:block}#studio-badge{display:block;margin-bottom:12px}.studio-transport .primary{flex:1 1 100%}.studio-transport #studio-record{flex:1}.studio-transport #studio-time{margin-left:0}.performance-pads button{min-width:75px}#music-name{flex:1 1 100%;line-height:1.7}.score-legend{display:block;line-height:1.7}.score-legend span{display:block}.score-node{grid-template-columns:16px minmax(65px,1fr) minmax(80px,1fr) 25px;gap:4px}.score-node button{padding:4px}.score-node input[type=number]{padding:5px 3px}#studio-playback-score{width:100%}
#video-preview{border-top:1px solid var(--line);padding-top:12px;margin-top:14px;font-size:11px;color:var(--green)}#video-preview summary{cursor:pointer}#exported-video{width:100%;background:white;border-radius:6px;margin-top:10px}#video-download{display:inline-block;color:var(--green);margin-top:8px}
.workflow-steps{display:flex;gap:6px;margin:14px 0}.workflow-steps span{flex:1;font-size:11px;text-align:center;padding:8px 2px;border-radius:6px;background:#f3f5ee;color:#899780}.workflow-steps .current{background:#e2edcf;color:#315e39}.workflow-panel{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.workflow-panel h3{font-size:12px;font-weight:550;margin:0 0 12px}.workflow-panel h4{font-size:11px;font-weight:500;margin:14px 0 10px}.trim-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.trim-fields label,.segment-fields label{display:flex;flex-direction:column;gap:6px;font-size:10px;color:var(--muted)}.trim-fields input,.segment-fields input{width:100%;min-width:0}.trim-markers{display:flex;gap:6px;margin-top:9px}.trim-markers button{flex:1;padding:7px 4px;font-size:9px}#selection-length,#split-count{font-size:11px;color:#637758;margin:12px 0}.workflow-next{width:100%;margin-top:7px;font-size:11px}.workflow-back{margin-top:12px;display:block;padding:5px 0}.cut-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;margin:5px 0}.cut-row button{font-size:9px;padding:4px 6px}#cut-list{max-height:150px;overflow:auto}#segment-list{display:flex;flex-wrap:wrap;gap:5px;max-height:180px;overflow:auto}#segment-list button{padding:7px 9px;font-size:10px}#segment-list button[aria-pressed=true]{background:#e6efda;border-color:#b9ce9f;color:#28603c}.segment-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.segment-fields label:nth-child(2){grid-column:1/-1;grid-row:2}.segment-fields select{width:100%;font-size:11px}.segment-fields label:first-child{grid-column:1/-1}#segment-curve-preview{width:100%;height:90px;display:block;margin-top:12px;border:1px solid var(--line);border-radius:7px}
@media(min-width:1550px){.viewport{max-height:850px}}@media(max-width:920px){.layout{grid-template-columns:minmax(0,1fr) 290px;gap:13px;padding:0 15px}.header{padding:22px}.control-section{padding:18px 15px}.viewport{min-height:400px}.hint,.camera-toolbar span{display:none}.telemetry strong{font-size:14px}}@media(max-width:700px){.header{padding:20px 17px}.header-right .pill{display:none}h1{font-size:17px}.mark{font-size:32px}.layout{grid-template-columns:1fr}.stage{position:relative;top:0}.viewport{height:85vw;min-height:310px}.stage-toolbar{padding:12px}.tabs button{padding:7px;font-size:11px}.telemetry{margin:0 13px}.telemetry div{padding-left:10px}.telemetry strong{font-size:13px}.telemetry small{display:block;margin:2px 0 0}.controls{display:grid;grid-template-columns:1fr}.legend{gap:16px}footer{padding:19px 17px;line-height:1.9;display:block}footer span{display:block}.hint{display:none}.camera-toolbar{padding:10px 12px}.controls .studio{padding:18px 15px}}
