@font-face{font-family:SourceHan;src:url('assets/SourceHanSansSC-Bold.otf')}*{box-sizing:border-box}body{margin:0;background:#f5f6f7;color:#26312f;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;font-size:13px}button,input,textarea{font:inherit}button{border:1px solid #dde2e0;background:white;color:#45524e;border-radius:7px;padding:8px 12px;cursor:pointer}button:hover{background:#eaf3ef;border-color:#9bbfb0}button:disabled{opacity:.35;cursor:default}header{height:76px;padding:0 24px;background:#fff;border-bottom:1px solid #dfe5e2;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#25382f;font-size:13px;letter-spacing:1px}.brand b{font-weight:400;color:#80918a}.brand small{display:block;font-size:9px;letter-spacing:1.5px;margin-top:5px;color:#7c8b84}.brandmark{display:flex;align-items:center;justify-content:center;width:39px;height:39px;border-radius:12px;background:#173e30;color:#d4eb7f;font-size:26px;font-weight:800}.projecttitle{font-size:14px;font-weight:650}.projecttitle span{display:block;color:#8b9791;font-size:11px;font-weight:400;margin-top:5px}.headeractions{display:flex;gap:7px;align-items:center}#saveStatus{font-size:11px;color:#85938b;margin-right:12px}#download{background:#173e30;color:white;border-color:#173e30}main{display:grid;grid-template-columns:225px minmax(400px,1fr) 260px;height:calc(100vh - 420px);min-height:410px;background:#f7f8f8}.library,.inspector{background:#fff;overflow:auto}.library{border-right:1px solid #dfe5e2;display:flex;flex-direction:column}.inspector{border-left:1px solid #dfe5e2}.sectionhead{padding:20px 18px 16px;display:flex;justify-content:space-between;font-weight:600}.sectionhead span{font-size:10px;font-weight:400;background:#f0f3f2;color:#6e8278;padding:3px 6px;border-radius:5px}.tabs{display:flex;padding:0 14px 13px;gap:4px}.tabs button{width:50%;border:0;background:#f1f4f2;color:#718278;padding:7px}.tabs button.active{background:#e3eee7;color:#1d5841;font-weight:600}#scenesList,#textsList{flex:1;overflow:auto;padding:0 10px 10px}.sceneitem{width:100%;display:flex;align-items:center;text-align:left;gap:12px;border:1px solid transparent;padding:10px 8px;background:transparent;margin:2px 0}.sceneitem.active{border-color:#cadfd2;background:#eef5f0}.sceneitem .number{width:32px;height:32px;display:grid;place-items:center;background:#e9eeeb;border-radius:6px;color:#728278;font-size:10px}.sceneitem.active .number{background:#234e3c;color:#d4eb7f}.sceneitem strong{display:block;font-size:12px;font-weight:500}.sceneitem small{display:block;color:#8b9991;font-size:10px;margin-top:4px}.asidefoot{padding:14px;border-top:1px solid #edf0ee;color:#63756a;font-size:11px;line-height:1.8}.asidefoot small{font-size:10px;color:#9aa59f}.asidefoot i{display:inline-block;width:6px;height:6px;background:#70a584;border-radius:50%;margin-right:5px}.center{min-width:0;display:flex;flex-direction:column;padding:0 24px}.previewbar{height:50px;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#7c8a82}.previewbar b{font-weight:400;background:#e7ede8;border-radius:4px;padding:3px 5px;margin-left:10px;font-size:9px}.previewwrap{min-height:0;flex:1;display:flex;align-items:center;justify-content:center}#stage{width:100%;max-height:100%;aspect-ratio:16/9;background:#080a0e;position:relative;overflow:hidden;border-radius:8px;box-shadow:0 12px 30px #263c2b15}#artHost{position:absolute;left:0;top:0;width:1920px;height:1080px;transform-origin:0 0}#artHost svg{display:block}#artHost [data-editable]{cursor:text}#loading{position:absolute;inset:0;background:#122018;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;color:#c4d2c9}#loading small{color:#70897a}.loader{width:28px;height:28px;border:2px solid #42584b;border-top-color:#c7e88c;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.transport{display:flex;justify-content:space-between;align-items:center;padding:14px 0 10px;gap:10px}.transportleft,.transportright{display:flex;align-items:center;gap:8px}.transport button{background:transparent;border-color:transparent;font-size:11px;padding:7px}.transport .play{border-radius:50%;width:36px;height:36px;background:#254c3b;color:#e4f0d4;font-size:13px}code{font-family:monospace;font-size:12px;margin-left:6px}code span{color:#a6afa9;font-size:10px}#volume{width:65px;accent-color:#527963;height:3px}.helpbar{font-size:10px;color:#8b9890;padding-bottom:12px;line-height:1.7}.helpbar span{float:right;color:#a1aca5}.inspector #inspectorContent{padding:16px 20px}.emptyicon{margin:36px auto 20px;background:#eef3ef;border:1px solid #dce6de;border-radius:14px;width:52px;height:52px;text-align:center;line-height:52px;font-family:serif;font-size:28px;color:#53735d}.inspector h2{font-size:15px;text-align:center;font-weight:500}.inspector p{font-size:12px;color:#839187;line-height:1.8;text-align:center}.tip{background:#f4f6f3;border-radius:8px;padding:12px;font-size:11px;color:#88988a;line-height:1.7;margin-top:22px}.field{display:block;margin:18px 0;color:#7c8b81;font-size:11px}.field textarea{display:block;resize:vertical;width:100%;height:90px;padding:10px;margin-top:7px;border:1px solid #d6e1d9;border-radius:7px;color:#203a2b;line-height:1.6}.field input:not([type=color]){width:100%;padding:8px;border:1px solid #d6e1d9;border-radius:6px;margin-top:7px}.field input[type=color]{display:block;width:100%;height:32px;border:1px solid #d6e1d9;background:#fff;padding:3px;margin-top:7px}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:10px}.twocol .field{margin:0 0 16px}#textItems button{display:block;width:100%;text-align:left;border:0;border-radius:5px;padding:11px;background:transparent;font-size:12px;color:#6b7d70}#textItems button:hover,#textItems button.selected{background:#edf4ef;color:#204e36}#textItems small{display:block;font-size:9px;color:#98a499;margin-top:4px}#search{width:100%;border:1px solid #dce5df;padding:8px;border-radius:6px;margin-bottom:9px}.timeline{height:344px;background:white;border-top:1px solid #dde4df}.timelinebar{height:48px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e9eeeb}.timelinebar strong{font-weight:600;font-size:12px}.timelinebar span{font-size:10px;color:#93a197;margin:0 15px}.timelinebar button{border:0;padding:5px 10px;background:#f5f7f5}.timelinebody{display:flex;height:260px}.tracknames{width:150px;flex-shrink:0;border-right:1px solid #dfe6e1;background:#fafbf9}.tracknames>div{height:44px;line-height:1.4;padding:9px 13px;font-size:11px;border-bottom:1px solid #edf1ed}.tracknames small{display:block;font-size:9px;color:#9caaa0;margin-left:15px}.tracknames .rulerlabel{height:30px;padding-top:8px;color:#9aa69d;font-size:9px}.tracknames>div:nth-child(5){height:54px}.dot{width:6px;height:6px;border-radius:50%;display:inline-block;margin-right:8px}.blue{background:#7097b6}.purple{background:#b295c4}.green{background:#7aab8a}.gold{background:#d4b36b}.gray{background:#a0aaa4}#timelineScroll{overflow-x:auto;overflow-y:hidden;flex:1;position:relative}#timelineCanvas{position:relative;min-width:100%;height:260px;user-select:none;background:repeating-linear-gradient(90deg,transparent,transparent 59px,#f0f3f0 60px)}#ruler{height:30px;position:relative;border-bottom:1px solid #e9eeeb;cursor:crosshair}.tick{position:absolute;font-size:9px;color:#9ba89e;top:7px}.lane{height:44px;position:relative;border-bottom:1px solid #edf1ed;cursor:crosshair}.sfxlane{height:54px}.clip{position:absolute;border-radius:5px;top:5px;height:34px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left;border:1px solid #d0dfeb;background:#e8f0f6;color:#5d7c94;font-size:10px;padding:8px 6px}.clip:hover{filter:brightness(.97)}.clip.sceneSelected{border:2px solid #5d8eac}.clip.voice{background:#f0eaf5;border-color:#e4d7ed;color:#9b7caf}.clip.music{background:#eaf3e9;border-color:#d8e7d7;color:#70916e}.clip.locked{background:#eef0ed;border-color:#dfe4dc;color:#899385}.clip canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.55;pointer-events:none}.clip span{position:relative;background:#ffffffb8;border-radius:3px;padding:1px 3px}.clip.sfx{top:7px;height:34px;background:#f7efd9;border-color:#e7d8a9;color:#a28c4b;min-width:4px;padding:0}.clip.sfx.selected{border-color:#9e781d;background:#e4c97d;z-index:3}.clip.sfx:after{content:'';position:absolute;top:2px;bottom:2px;width:1px;background:#bda35b;left:50%}#playhead{position:absolute;top:0;bottom:0;width:1px;background:#df8060;pointer-events:none;z-index:10}#playhead b{position:absolute;width:9px;height:12px;background:#df8060;left:-4px;clip-path:polygon(0 0,100% 0,100% 65%,50% 100%,0 65%)}footer{padding:8px 18px;display:flex;justify-content:space-between;font-size:9px;color:#98a49b;background:#fafbf9;border-top:1px solid #edf1ed}#toast{position:fixed;bottom:32px;left:50%;transform:translateX(-50%);padding:12px 18px;background:#254e3b;color:white;border-radius:9px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:100}#toast.show{opacity:1}#stage:fullscreen{width:100vw;height:100vh;max-height:none;border-radius:0}.inspector .smallbutton{width:100%;font-size:11px}.cueprop{border-bottom:1px solid #e8eee9;padding:10px 0;display:flex;justify-content:space-between;font-size:11px;color:#768b7c}.cueprop b{font-weight:500;color:#314d3a}@media(max-width:1100px){main{grid-template-columns:180px minmax(320px,1fr) 220px}.center{padding:0 14px}.projecttitle{display:none}.helpbar span{display:none}}@media(max-width:760px){header{padding:12px;height:auto;flex-wrap:wrap;gap:10px}.brand{font-size:11px}.brand small{display:none}.headeractions{gap:4px}#saveStatus{display:none}button{padding:7px 9px}.headeractions button{font-size:11px}main{grid-template-columns:1fr;min-height:0;height:auto}.center{grid-row:1;padding:0 12px}.previewwrap{height:auto}.previewbar{height:40px}#stage{max-height:none;aspect-ratio:16/9}.library{grid-row:2;max-height:160px;border-top:1px solid #ddd}.sectionhead{padding:10px 14px}.tabs{position:absolute;right:10px;padding-top:4px;width:150px}#scenesList{display:flex;overflow-x:auto;min-height:72px}.sceneitem{width:150px;flex-shrink:0}.asidefoot{display:none}.inspector{max-height:360px;border-top:1px solid #ddd}.inspector #inspectorContent{padding-top:0}.emptyicon{display:none}.inspector h2{margin:4px}.inspector .tip{margin-top:10px}.timeline{height:344px}.tracknames{width:105px}.tracknames>div{padding-left:8px}.timelinebar{padding:0 10px}#selectionLabel{display:none}footer{line-height:1.6;padding:6px;font-size:8px}.transportright #volume{display:none}}
/* Keep the fixed-height preview inside its grid row. */
.center,.library,.inspector{min-height:0}.previewwrap{overflow:hidden}#stage{flex-shrink:0}.previewbar,.transport,.helpbar{flex-shrink:0}#scenesList[hidden],#textsList[hidden]{display:none}main{min-height:440px}#stage{height:auto}
@media(min-width:761px){main{height:calc(100vh - 366px);min-height:350px}.timeline{height:290px}.timelinebody{height:212px}.tracknames>div,.lane{height:36px}.tracknames>div{padding-top:6px}.tracknames .rulerlabel,#ruler{height:24px}.tracknames>div:nth-child(5),.sfxlane{height:44px}#timelineCanvas{height:212px}.clip{top:3px;height:29px;padding-top:6px}.clip.sfx{height:13px!important}footer{height:30px;align-items:center}.previewbar{height:40px}.transport{padding:9px 0 7px}.helpbar{padding-bottom:8px;font-size:9px}.previewbar{font-size:10px}}
#exportBtn,#startExport{background:#dcefa1;border-color:#ccdf8d;color:#29452b;font-weight:600}dialog{border:1px solid #d9e3da;border-radius:16px;padding:24px;width:520px;max-width:95vw;color:#354c3b;box-shadow:0 30px 90px #15282038}dialog::backdrop{background:#17251f66;backdrop-filter:blur(4px)}.exporthead{display:flex;align-items:center;justify-content:space-between}.exporthead h2{font-size:19px;margin:0}.exporthead button{border:0;font-size:23px;padding:2px 8px}dialog p{font-size:12px;color:#819383;line-height:1.7}.exportsettings{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}.exportsettings label{font-size:11px;color:#819383}.exportsettings select{display:block;width:100%;padding:10px 8px;margin-top:8px;border:1px solid #d5e0d6;border-radius:7px;color:#34503d;background:white;font:inherit}.exportnote{font-size:10px;color:#9aab9b;background:#f4f7f2;border-radius:6px;padding:10px;line-height:1.6}#exportProgress{width:100%;height:6px;accent-color:#538a64;margin-top:20px}#exportStatus{font-size:11px;color:#809885;min-height:24px;margin-top:8px}.exportactions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}#resultVideo{width:100%;max-height:240px;background:#07110b;border-radius:7px;margin-top:16px}#resultDownload{display:block;background:#204a34;color:white;text-align:center;padding:11px;margin-top:10px;border-radius:7px;font-size:12px;text-decoration:none}#resultInfo{font-size:10px;color:#90a194;text-align:center;margin-top:8px}
.inspector{overflow:auto}.layerbutton{display:block;width:100%;text-align:left;margin:6px 0;padding:9px 10px;border:1px solid #e0e7e3;border-radius:8px;background:white;white-space:normal;line-height:1.5}.layerbutton:hover{background:#eff7f0}.image-layer{display:flex;align-items:center;gap:9px}.image-layer img{width:46px;height:40px;object-fit:contain;background:#e9efeb}.image-preview{width:100%;max-height:160px;object-fit:contain;border:1px solid #e0e7e3;border-radius:10px;margin:10px 0}.review-panel{border-top:1px solid #dce6df;padding:16px 18px;margin-top:12px}.review-panel textarea{width:100%;min-height:85px;resize:vertical;margin:8px 0;padding:10px;border:1px solid #d3dfd7;border-radius:8px;font:inherit}.review-panel .primary,.inspector .primary{background:#214d3d;color:white;padding:10px;border-radius:8px;border:0;width:100%}.review-status,.muted{font-size:11px;line-height:1.7;color:#78877e}.review-entry{border-bottom:1px solid #e3e9e4;padding:10px 0;font-size:12px}.review-entry p{white-space:pre-wrap;margin:6px 0}.review-entry small{color:#7c8981;font-size:10px}.inspector h3{font-size:12px;margin:18px 0 8px}.scene-time{font-size:12px;color:#7d8b82}

.review-actions{display:flex;gap:6px}.review-actions .smallbutton{width:auto;flex:1}.review-entry textarea{width:100%;min-height:80px}.review-entry .primary{margin-top:6px}#rateLabel{font-size:11px;color:#476d57;min-width:24px}

.tracknames>div{position:relative}.trackmute{position:absolute;right:7px;top:7px;padding:1px 5px;font-size:9px;border-radius:4px;line-height:16px}.trackmute[aria-pressed="true"]{background:#d5ddd7;color:#607868}.clip[data-audio-track]{cursor:grab;touch-action:none}.clip[data-audio-track].dragging{cursor:grabbing;outline:2px solid #527661;z-index:15}.clip.is-muted{opacity:.45}.audio-offset-preview{font-variant-numeric:tabular-nums}
@media(min-width:761px){main{height:calc(100vh - 330px)}.timeline{height:254px}.timelinebody,#timelineCanvas{height:176px}}

.trackselect{border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer}.trackmute{font-size:8px;max-width:54px}.trackmute[aria-pressed="true"]{background:#e4d9d4;color:#704f44}

#resultAudio{display:block;width:100%;margin:12px 0}#resultAudio[hidden],#resultVideo[hidden]{display:none}.exportsettings{flex-wrap:wrap}
/* Stable pointer controls: no native range thumb or broad .field input sizing. */
.precise-gain{display:grid;gap:6px;max-width:100%;margin-top:6px}.gain-slider{position:relative;height:28px;min-width:72px;touch-action:none;cursor:pointer;outline:none;--gain:.5}.gain-slider:before{content:'';position:absolute;left:8px;right:8px;top:12px;height:4px;background:#dce5df;border-radius:4px}.gain-fill{position:absolute;left:8px;top:12px;height:4px;width:calc((100% - 16px)*var(--gain));background:#527963;border-radius:4px}.gain-thumb{position:absolute;width:16px;height:16px;top:6px;left:calc((100% - 16px)*var(--gain));background:#38674f;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #527963;pointer-events:auto}.gain-slider:focus-visible{outline:2px solid #89af96;border-radius:5px}.gain-number-row{display:grid;grid-template-columns:28px minmax(54px,1fr) 28px 42px;gap:5px;align-items:center}.gain-value{display:flex;align-items:center;border:1px solid #d6e1d9;border-radius:6px;background:white;height:30px;overflow:hidden}.field .gain-value input[type=number],.gain-value input[type=number]{width:100%;min-width:0;margin:0!important;padding:3px 2px!important;border:0!important;border-radius:0;outline:none;text-align:right;appearance:textfield;font-size:12px}.gain-value input::-webkit-inner-spin-button,.gain-value input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.gain-unit{padding:0 6px 0 3px;color:#809185;font-size:11px}.gain-number-row button{height:30px;padding:0!important;min-width:0!important;font-size:12px;border:1px solid #dce4de!important;background:#fff!important}.gain-number-row .gain-reset{font-size:10px;color:#62796b}.precise-gain.compact{display:grid;grid-template-columns:70px 138px;align-items:center;gap:6px}.precise-gain.compact .gain-number-row{grid-template-columns:22px 50px 22px 32px;gap:4px}.precise-gain.compact .gain-value{height:27px}.precise-gain.compact button{height:27px}.transportright{flex-wrap:nowrap;gap:5px}.transport{flex-wrap:wrap}.transportleft{flex-wrap:nowrap}.transport .precise-gain.compact input[type=number]{width:100%}



.live-update-notice{position:fixed;z-index:90;right:24px;bottom:24px;width:min(380px,calc(100vw - 32px));padding:18px;background:#233d39;border:2px solid #71edc2;border-radius:14px;box-shadow:0 10px 45px #0009;color:#edfff8;overflow:visible}.live-update-notice[hidden]{display:none}.live-update-notice strong{font-size:17px}.live-update-notice p{color:#dbf8ec;font-size:13px;margin:10px 0;max-height:90px;overflow:auto}.live-update-notice div{display:flex;gap:8px}.live-update-notice small{display:block;margin-top:8px;color:#bad4c8}.live-update-marks{pointer-events:none;position:fixed;inset:0;z-index:70}.changed-layer-highlight{position:fixed;border:3px solid #70ffca;background:#70ffca16;border-radius:8px;box-shadow:0 0 18px #70ffca77;animation:update-pulse 2s ease-in-out infinite}.just-updated{outline:3px solid #70ffca!important;background-color:#316d59!important;animation:update-pulse 2s ease-in-out infinite}.update-sound-toggle{display:flex!important;align-items:center;gap:8px}.update-sound-toggle input{width:auto!important}@keyframes update-pulse{50%{box-shadow:0 0 4px #70ffca33;border-color:#d6ffee}}@media(prefers-reduced-motion:reduce){.changed-layer-highlight,.just-updated{animation:none}}

.live-overlay-library{padding:12px;border-top:1px solid #d9e2dd}.live-overlay-library>button{margin:3px;padding:7px}.live-update-notice{top:85px;bottom:auto;right:20px;border-width:4px;box-shadow:0 10px 55px #0008}.changed-layer-highlight{border-width:5px}.live-update-notice strong{font-size:21px}

.changed-layer-label{position:absolute;left:-4px;top:-28px;background:#115b46;color:white;padding:3px 9px;border-radius:5px;font-size:14px;white-space:nowrap}
