#video-remix-host{position:fixed;inset:0;z-index:1000;overflow:hidden;background:#090b0e}#video-remix-host[hidden]{display:none}.vr-back{position:fixed;z-index:1003;top:19px;left:18px;height:32px;padding:0 10px;border:1px solid #303943;border-radius:5px;background:#151a20;color:#dce4ea;font:12px system-ui;cursor:pointer}.vr-shell{--bg:#090b0e;--surface:#11151a;--surface2:#161c22;--surface3:#1b232b;--line:#27313a;--text:#ecf1f4;--muted:#85929d;--green:#6ed6ad;--amber:#f2b96d;--blue:#74aee8;--danger:#ef7d7d;height:100vh;min-height:720px;background:var(--bg);color:var(--text);font:13px Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;letter-spacing:0}.vr-shell *{box-sizing:border-box}.vr-topbar{height:70px;padding:0 18px 0 170px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr) minmax(0,auto);align-items:center;gap:18px;min-width:0;background:#11151a}.vr-kicker{color:var(--green);font-size:9px;letter-spacing:.14em;font-weight:800}.vr-topbar h1{margin:3px 0 0;font-size:18px;letter-spacing:0}.vr-top-progress{display:flex;align-items:center;justify-content:center;color:#9ca8b1;font-size:11px;white-space:nowrap}.vr-top-progress i{width:28px;height:1px;margin:0 8px;background:#38444e}.vr-top-actions,.vr-transport-main{display:flex;align-items:center;gap:7px}.vr-btn,.vr-icon-btn{border:1px solid var(--line);border-radius:5px;background:#192027;color:var(--text);font:inherit;cursor:pointer;transition:border-color .15s,background .15s,opacity .15s}.vr-btn{height:32px;padding:0 12px;font-size:12px}.vr-icon-btn{width:28px;height:28px;padding:0;font-size:18px}.vr-btn:hover:not(:disabled),.vr-icon-btn:hover:not(:disabled){border-color:#657481;background:#222b33}.vr-btn:disabled{opacity:.34;cursor:not-allowed}.vr-btn-primary{background:#dfe9e5;border-color:#dfe9e5;color:#101715;font-weight:700}.vr-btn-accent{background:var(--green);border-color:var(--green);color:#071510;font-weight:750}
/* Final workbench layout contract: one bounded shell, local scrolling, no cross-axis growth. */
#video-remix-host{overflow:hidden;background:#080b0e}
.vr-shell{height:100dvh;min-height:0;overflow:hidden;background:#0b0f12;color:#e8eef0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}
.vr-shell *,.vr-shell *::before,.vr-shell *::after{box-sizing:border-box;min-width:0}
.vr-topbar{height:64px;min-height:64px;padding:0 20px 0 148px;display:grid;grid-template-columns:minmax(180px,auto) minmax(0,1fr) minmax(0,auto);gap:16px;align-items:center;border-bottom:1px solid #202a31;background:#11161a;overflow:hidden}
.vr-topbar h1{max-width:28ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:680}
.vr-top-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;min-width:0;overflow:auto hidden;white-space:nowrap}
.vr-top-step,.vr-btn{flex:0 0 auto}
.vr-workspace{width:100%;height:calc(100dvh - 64px);min-width:0;min-height:0;display:grid;grid-template-columns:minmax(196px,var(--left-pane,256px)) 6px minmax(0,1fr) 6px minmax(264px,var(--right-pane,330px));overflow:hidden}
.vr-notes-pane,.vr-stage-pane,.vr-inspector-pane{min-width:0;min-height:0;overflow:hidden}
.vr-notes-pane{display:flex;flex-direction:column;padding:14px 10px;border-right:1px solid #202a31;background:#0f1418}
.vr-pane-head,.vr-inspector-head,.vr-stage-head,.vr-timeline-head{min-width:0}
.vr-note-list{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain}
.vr-stage-pane{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) 7px minmax(136px,var(--timeline-pane,180px));background:#0b0f12}
.vr-notice{max-width:min(520px,calc(100% - 32px));overflow:hidden}
.vr-stage-head{height:56px;min-height:56px;padding:9px 16px;overflow:hidden}
.vr-project-title{max-width:min(44vw,430px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vr-canvas-wrap{min-width:0;min-height:0;padding:16px;display:grid;place-items:center;overflow:hidden;background:#080b0e}
.vr-canvas{width:auto;height:100%;max-width:100%;max-height:100%;aspect-ratio:9 / 16;overflow:hidden}
.vr-timeline-section{min-width:0;min-height:0;padding:10px 14px 12px;display:flex;flex-direction:column;overflow:hidden;border-top:1px solid #202a31;background:#101519}
.vr-timeline{min-width:0;min-height:0;flex:1;overflow:auto hidden;overscroll-behavior:contain}
.vr-timeline-clip{flex:0 0 112px}
.vr-inspector-pane{display:flex;flex-direction:column;border-left:1px solid #202a31;background:#0f1418}
.vr-inspector-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);height:42px;min-height:42px;overflow:hidden;background:#11171b}
.vr-inspector-tabs button{min-width:0;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.vr-inspector{min-width:0;min-height:0;flex:1;overflow:auto;overscroll-behavior:contain;padding:14px}
.vr-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.vr-form-grid>label,.vr-form-grid input,.vr-form-grid select,.vr-form-grid textarea{min-width:0;max-width:100%}
.vr-form-grid textarea{max-height:180px}
.vr-flow-card{flex:0 0 auto;min-width:0;max-width:100%;overflow:hidden;padding:10px 14px;border-top:1px solid #202a31}
.vr-flow-steps{min-width:0;overflow:hidden}
.vr-flow-steps span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vr-resizer{min-width:6px;max-width:6px}
.vr-icon-btn,.vr-btn,.vr-top-step{white-space:nowrap}
.vr-shell input,.vr-shell select,.vr-shell textarea,.vr-shell button{max-width:100%}
.vr-export-controls{display:flex;align-items:end;gap:8px;margin-top:10px}.vr-export-controls label{display:grid;gap:4px;flex:1;min-width:0}.vr-export-controls label span{font-size:10px;color:#85929d}.vr-export-controls select{height:32px;padding:0 8px;border:1px solid #27313a;border-radius:5px;background:#192027;color:#ecf1f4;font:inherit}.vr-export-progress{display:grid;gap:7px;margin-top:8px;padding:9px 10px;border:1px solid #27313a;border-radius:6px;background:#11181c}.vr-export-progress-head{display:flex;justify-content:space-between;gap:8px;font-size:10px}.vr-export-progress-head b{font-weight:600;overflow-wrap:anywhere}.vr-export-progress progress{width:100%;height:6px;accent-color:#6ed6ad}.vr-export-progress .vr-error{margin:0;color:#ffadad;font-size:10px;line-height:1.45;overflow-wrap:anywhere}.vr-export-progress[data-export-state="failed"]{border-color:#704448}.vr-export-progress[data-export-state="completed"]{border-color:#3f7161}
@media(max-width:1180px){
  .vr-topbar{padding-left:132px;grid-template-columns:minmax(150px,auto) minmax(0,1fr) auto;gap:10px}
  .vr-workspace{grid-template-columns:minmax(184px,var(--left-pane,230px)) 6px minmax(0,1fr) 6px minmax(244px,var(--right-pane,300px))}
}
@media(max-width:900px){
  #video-remix-host{overflow:auto}
  .vr-shell{height:auto;min-height:100dvh;overflow:visible}
  .vr-topbar{position:sticky;top:0;z-index:10;height:auto;min-height:64px;padding:10px 14px 10px 112px;grid-template-columns:minmax(0,1fr) auto}
  .vr-top-progress{display:none}
  .vr-top-actions{max-width:52vw}
  .vr-workspace{height:auto;min-height:0;display:grid;grid-template-columns:minmax(180px,34vw) minmax(0,1fr);overflow:visible}
  .vr-resizer{display:none}
  .vr-stage-pane{height:calc(100dvh - 64px);min-height:560px;grid-column:2;grid-row:1}
  .vr-notes-pane{grid-column:1;grid-row:1;height:calc(100dvh - 64px)}
  .vr-inspector-pane{grid-column:1/-1;grid-row:2;height:auto;min-height:420px;border-top:1px solid #202a31;border-left:0}
  .vr-inspector-tabs{position:sticky;top:64px;z-index:3}
}
@media(max-width:620px){
  .vr-topbar{padding-left:72px}
  .vr-topbar h1{font-size:14px}
  .vr-workspace{grid-template-columns:1fr}
  .vr-notes-pane{grid-column:1;grid-row:1;height:auto;max-height:220px}
  .vr-stage-pane{grid-column:1;grid-row:2;height:calc(100dvh - 64px);min-height:520px}
  .vr-inspector-pane{grid-row:3}
  .vr-canvas-wrap{padding:12px}
  .vr-form-grid{grid-template-columns:1fr}
  .vr-form-grid>label.is-wide{grid-column:auto}
}
.vr-project-heading{display:block;max-width:min(42vw,420px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:680}.vr-shot-status{grid-column:1/-1;margin:0 8px 8px 66px;padding:8px 10px;border:1px solid #27343b;border-radius:5px;background:#11191d}.vr-shot-status>div{display:flex;justify-content:space-between;align-items:center;color:#cbd5d9;font-size:10px}.vr-shot-status progress{width:100%;height:5px;margin:7px 0}.vr-shot-status small{color:#8d9aa1}.vr-shot-status p{margin:6px 0 0;line-height:1.45;overflow-wrap:anywhere}.vr-merge-toolbar{display:flex;gap:6px;margin:10px 0}.vr-merge-toolbar .vr-btn{flex:1;height:30px;padding:0 7px;font-size:10px}.vr-merge-list{display:flex;flex-direction:column;gap:5px;min-width:0}.vr-merge-list>div{display:grid;grid-template-columns:minmax(0,1fr) 28px 28px 28px;gap:3px;align-items:center;min-width:0;padding:4px;border:1px solid #27343b;border-radius:5px;background:#11181c}.vr-merge-list>div.is-active{border-color:#4d8d73;background:#15251f}.vr-merge-select{display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto;gap:0 7px;min-width:0;padding:5px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.vr-merge-select b{grid-row:1/3;color:#70d3ae;font-size:11px}.vr-merge-select span,.vr-merge-select small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr-merge-select span{font-size:11px}.vr-merge-select small{color:#87959c;font-size:9px}.vr-danger-btn{color:#ff9b9b}@media(max-width:620px){.vr-project-heading{max-width:62vw}.vr-shot-status{margin-left:8px}.vr-merge-list>div{grid-template-columns:minmax(0,1fr) 26px 26px 26px}}

.vr-subtitle-object{position:absolute;z-index:18;max-width:88%;transform:translate(-50%,-50%) scale(var(--subtitle-object-scale,1));cursor:move;touch-action:none;pointer-events:auto}
.vr-subtitle-object.is-selected{outline:1px dashed rgba(122,219,233,.85);outline-offset:7px;border-radius:8px}
.vr-subtitle-handle{position:absolute;right:-11px;bottom:-11px;width:16px;height:16px;border:2px solid #08121a;border-radius:50%;background:#7adbe9;cursor:nwse-resize;box-shadow:0 0 0 2px rgba(122,219,233,.45)}
.vr-live-subtitle{position:relative;text-align:center;pointer-events:none;color:var(--subtitle-color,#fff);font-size:calc(var(--subtitle-size,48) / 1080 * 100cqw);font-weight:800;line-height:1.35;-webkit-text-stroke:calc(var(--subtitle-stroke,3) * .24px) var(--subtitle-stroke-color,#000);text-shadow:0 3px 10px rgba(0,0,0,.92);padding:.18em .45em;border-radius:.3em;background:color-mix(in srgb,var(--subtitle-bg,transparent) calc(var(--subtitle-bg-opacity,.35) * 100%),transparent);opacity:0;will-change:transform,opacity,filter;backface-visibility:hidden}
.vr-live-subtitle.is-visible{opacity:1}
.vr-live-subtitle[data-animation="fade"]{transition:none}.vr-live-subtitle[data-animation="fade"].is-visible{animation:vr-subtitle-fade .34s ease both}
.vr-live-subtitle[data-animation="none"]{transition:none}.vr-live-subtitle[data-animation="none"].is-visible{animation:none}
.vr-live-subtitle[data-animation="emphasis-pop"].is-visible{animation:vr-subtitle-rise .5s cubic-bezier(.2,.8,.2,1) both}
.vr-live-subtitle[data-animation="rise-fade"].is-visible{animation:vr-subtitle-rise .5s cubic-bezier(.2,.8,.2,1) both}
@keyframes vr-subtitle-rise{from{opacity:0;transform:translateY(58%) scale(.96);filter:blur(6px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
.vr-live-subtitle[data-animation="drop-bounce"].is-visible{animation:vr-subtitle-drop .62s cubic-bezier(.22,1.42,.36,1) both}
@keyframes vr-subtitle-drop{0%{opacity:0;transform:translateY(-130%) scale(1.05)}58%{opacity:1;transform:translateY(7%) scale(.99)}78%{transform:translateY(-4%)}100%{opacity:1;transform:translateY(0) scale(1)}}
.vr-live-subtitle[data-animation="slide-left"].is-visible{animation:vr-subtitle-slide-left .54s cubic-bezier(.2,.86,.2,1) both}
@keyframes vr-subtitle-slide-left{from{opacity:0;transform:translateX(-96%) rotate(-5deg)}to{opacity:1;transform:translateX(0) rotate(0)}}
.vr-live-subtitle[data-animation="slide-right"].is-visible{animation:vr-subtitle-slide-right .54s cubic-bezier(.2,.86,.2,1) both}
@keyframes vr-subtitle-slide-right{from{opacity:0;transform:translateX(96%) rotate(5deg)}to{opacity:1;transform:translateX(0) rotate(0)}}
.vr-live-subtitle[data-animation="scale-pop"].is-visible{animation:vr-subtitle-scale-pop .5s cubic-bezier(.16,1.5,.3,1) both}
@keyframes vr-subtitle-scale-pop{0%{opacity:0;transform:scale(.34)}68%{opacity:1;transform:scale(1.18)}100%{opacity:1;transform:scale(1)}}
.vr-live-subtitle[data-animation="flip-in"].is-visible{animation:vr-subtitle-flip .62s cubic-bezier(.2,.9,.2,1) both}
@keyframes vr-subtitle-flip{from{opacity:0;transform:perspective(620px) rotateX(-88deg)}to{opacity:1;transform:perspective(620px) rotateX(0)}}
.vr-live-subtitle[data-animation="zoom-blur"].is-visible{animation:vr-subtitle-zoom .6s cubic-bezier(.15,.9,.25,1) both}
@keyframes vr-subtitle-zoom{from{opacity:0;transform:scale(1.95);filter:blur(18px)}62%{opacity:1;filter:blur(2px)}to{opacity:1;transform:scale(1);filter:blur(0)}}
.vr-live-subtitle[data-animation="swing-in"].is-visible{animation:vr-subtitle-swing .7s cubic-bezier(.2,.9,.2,1) both}
@keyframes vr-subtitle-swing{0%{opacity:0;transform:translateX(-58%) rotate(-17deg)}60%{opacity:1;transform:translateX(5%) rotate(7deg)}100%{opacity:1;transform:translateX(0) rotate(0)}}
.vr-live-subtitle[data-animation="wipe-right"].is-visible{animation:vr-subtitle-wipe .62s ease-out both}
@keyframes vr-subtitle-wipe{from{opacity:1;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}
.vr-live-subtitle[data-animation="shake-in"].is-visible{animation:vr-subtitle-shake .62s cubic-bezier(.36,.07,.19,.97) both}
@keyframes vr-subtitle-shake{0%{opacity:0;transform:translateX(-16%)}20%{opacity:1;transform:translateX(11%)}40%{transform:translateX(-8%)}60%{transform:translateX(5%)}80%{transform:translateX(-2%)}100%{opacity:1;transform:translateX(0)}}
.vr-live-subtitle[data-animation="typewriter"]{opacity:0}.vr-live-subtitle[data-animation="typewriter"].is-visible{opacity:1;animation:none}
.vr-live-subtitle .vr-type-char{display:inline-block;white-space:pre;opacity:0;animation:vr-subtitle-char .26s ease-out both}
@keyframes vr-subtitle-char{from{opacity:0;transform:translateY(-16%)}to{opacity:1;transform:translateY(0)}}
.vr-live-subtitle .is-emphasis{display:inline-block;color:var(--emphasis-color,#ffd84d);font-size:calc(var(--subtitle-emphasis-size,64) / var(--subtitle-size,48) * 1em);font-weight:900;padding:.01em .1em;border-radius:.16em;background:color-mix(in srgb,var(--emphasis-color,#ffd84d) 14%,transparent);-webkit-text-stroke:calc(var(--subtitle-stroke,1) * .34px) var(--subtitle-stroke-color,#000);text-shadow:0 0 10px color-mix(in srgb,var(--emphasis-color,#ffd84d) 42%,transparent),0 1px 4px rgba(0,0,0,.6);animation:vr-subtitle-emphasis-pulse 1.7s ease-in-out infinite}
.vr-live-subtitle[data-animation="typewriter"] .is-emphasis{animation:none}
@keyframes vr-subtitle-emphasis-pulse{0%,100%{transform:scale(1) translateY(0)}50%{transform:scale(1.07) translateY(-3%)}}
.vr-fixed-engine{display:flex;flex-direction:column;gap:3px;padding:9px 10px;border:1px solid #344149;border-radius:6px;background:#151d22}.vr-fixed-engine b{color:#eef5f2;font-size:12px}.vr-fixed-engine small{color:#84949b;font-size:9px}

/* Clip inspector task status: persistent bottom-of-tab progress and failures. */
.vr-clip-task-status{margin-top:12px;padding:12px;border:1px solid #2b373e;border-radius:8px;background:#10181c;color:#cdd7da}
.vr-clip-task-status.is-active{border-color:#537d67;background:#102019}.vr-clip-task-status.is-failed{border-color:#704448;background:#211517}.vr-clip-task-status.is-done{border-color:#3f7161;background:#10201d}
.vr-clip-task-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;font-size:11px}.vr-clip-task-title>div{display:grid;gap:3px}.vr-clip-task-title small{color:#91a1a8;font-size:10px}.vr-clip-task-title .vr-btn{min-height:26px;padding:0 8px;font-size:10px}
.vr-clip-task-status.is-active .vr-clip-task-title small{color:#77d8af}.vr-clip-task-status.is-failed .vr-clip-task-title small{color:#ffadad}.vr-clip-task-status.is-done .vr-clip-task-title small{color:#86ddbd}
.vr-clip-task-phase{display:flex;align-items:center;gap:7px;margin-top:9px;color:#9ba8ad;font-size:10px;line-height:1.45;overflow-wrap:anywhere}.vr-clip-task-phase b{color:#e5eef0;font-size:11px}.vr-clip-task-phase span{color:#9ba8ad}
.vr-clip-task-progress{display:flex;align-items:center;gap:8px;margin-top:9px}.vr-clip-task-progress progress{width:100%;height:5px;accent-color:#67bf97}.vr-clip-task-progress b{flex:0 0 auto;color:#d9e2e5;font-size:10px}
.vr-clip-task-status .vr-error{margin:8px 0 0;color:#ffb5b5;font-size:10px;line-height:1.5;overflow-wrap:anywhere}.vr-clip-task-hint{margin:8px 0 0;color:#a5b4b8;font-size:10px;line-height:1.5;overflow-wrap:anywhere}
.vr-job-submission,.vr-job-history{margin-top:10px;border-top:1px solid #26343a;padding-top:9px}.vr-job-submission summary,.vr-job-history summary{cursor:pointer;color:#d9e5e8;font-size:11px;font-weight:700}.vr-job-submission dl{display:grid;grid-template-columns:84px minmax(0,1fr);gap:5px 8px;margin:8px 0 0;font-size:10px;line-height:1.45}.vr-job-submission dt{color:#87979d}.vr-job-submission dd{margin:0;color:#c6d2d5;overflow-wrap:anywhere;white-space:pre-wrap}.vr-job-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;margin-top:8px;padding:8px;border-radius:6px;background:#0c1316;border-left:2px solid #46545a}.vr-job-row.is-active{border-left-color:#66bf95}.vr-job-row.is-failed{border-left-color:#db7379}.vr-job-row.is-done{border-left-color:#63c99c}.vr-job-row div{min-width:0;display:grid;gap:2px}.vr-job-row b{font-size:10px;color:#d8e2e4}.vr-job-row small,.vr-job-row span{font-size:9px;color:#87979d;overflow-wrap:anywhere}.vr-job-row strong{font-size:10px;color:#c9d8dc}.vr-job-row>span{grid-column:1/-1}.vr-job-row p{grid-column:1/-1;margin:0;color:#ffb5b5;font-size:10px;line-height:1.45;overflow-wrap:anywhere}.vr-job-row .vr-link-btn{grid-column:1/-1;justify-self:start;padding:0;border:0;background:none;color:#7cd5ad;font-size:10px;cursor:pointer}.vr-job-empty{margin-top:8px;padding:8px;border-radius:6px;background:#0c1316;color:#87979d;font-size:10px;line-height:1.5}

/* Compatibility selectors retained by the final layout contract. */
.vr-row-resizer{min-width:0;min-height:7px;cursor:row-resize;background:#182126}
.vr-row-resizer:hover{background:#3b6c59}
.vr-scale-control{min-width:0}

/* Compact toolbar: remove visual title block and keep template/batch actions on one baseline. */
.vr-topbar{height:52px;min-height:52px;padding:0 14px;border-bottom:1px solid #202a31;display:block;overflow:hidden}
.vr-top-actions{height:100%;width:100%;display:flex;align-items:center;justify-content:flex-start;gap:7px;min-width:0;overflow-x:auto;overflow-y:hidden;white-space:nowrap;scrollbar-width:thin}
.vr-top-actions>*{flex:0 0 auto}
.vr-template-actions,.vr-batch-actions{display:flex;align-items:center;gap:6px;min-width:0;padding-left:8px;border-left:1px solid #26323a}
.vr-template-select{width:clamp(170px,18vw,300px);min-width:0;height:30px;padding:0 28px 0 9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vr-batch-count{height:30px;display:inline-flex;align-items:center;gap:6px;padding:0 7px;border:1px solid #2b3740;border-radius:5px;background:#12191e;color:#aebbc1;font-size:11px;white-space:nowrap}
.vr-batch-count span{display:inline;color:#aebbc1;font-size:11px;line-height:1}
.vr-batch-count input{width:38px;min-width:38px;height:24px;padding:0 2px;border:0;border-left:1px solid #2b3740;border-radius:0;background:transparent;color:#edf4f5;text-align:center;outline:0}
.vr-batch-count input::-webkit-inner-spin-button,.vr-batch-count input::-webkit-outer-spin-button{margin-left:2px;opacity:.75}
.vr-batch-actions .vr-top-step{height:30px;padding:0 10px;border-color:#3e7560;color:#a9e4c9;background:#162820}
.vr-batch-actions .vr-top-step:disabled{border-color:#2d3940;background:#171d21;color:#6e7c83}
@media(max-width:1180px){.vr-topbar{padding:0 12px}.vr-template-select{width:190px}.vr-scale-control{display:none}}
@media(max-width:900px){.vr-topbar{height:52px;min-height:52px;padding:0 10px}.vr-top-actions{max-width:none}.vr-template-select{width:160px}.vr-template-actions,.vr-batch-actions{padding-left:6px;gap:5px}}

/* Media layout guard: imported-library covers and timeline shots are previews, never natural-size images. */
.vr-note{width:100%;min-width:0;display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px;border:1px solid transparent;border-radius:6px;background:transparent;overflow:hidden;text-align:left}
.vr-note:hover{background:#141c21;border-color:#28363e}.vr-note.is-active{background:#17231f;border-color:#3d705b}
.vr-note-cover{width:52px;height:52px;min-width:52px;display:grid;place-items:center;overflow:hidden;border-radius:4px;background:#182128;color:#7f9098}
.vr-note-cover img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:cover;object-position:center}
.vr-note-copy{min-width:0;display:grid;gap:4px}.vr-note-copy strong,.vr-note-copy small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr-note-copy strong{color:#dce6e7;font-size:12px}.vr-note-copy small{color:#809098;font-size:10px}.vr-note-state{color:#8ea39d;font-size:10px;white-space:nowrap}
.vr-timeline{display:flex;align-items:stretch;gap:8px;padding:2px 0 5px}.vr-timeline-clip{width:112px;min-width:112px;max-width:112px;min-height:0;overflow:hidden}.vr-timeline-clip>button{width:100%;height:100%;min-height:104px;display:grid;grid-template-columns:1fr;grid-template-rows:auto 58px auto;gap:4px;align-content:start;padding:6px;overflow:hidden;border:1px solid #2a3840;border-radius:5px;background:#151d22;text-align:left}.vr-timeline-clip.is-active>button{border-color:#4f8a70;background:#172820}
.vr-shot-number,.vr-shot-kind{font-size:9px;line-height:1;color:#92a3aa}.vr-shot-number{color:#72d8ae}.vr-shot-thumb{display:block;width:100%;height:58px;min-width:0;overflow:hidden;border-radius:3px;background:#0c1114}.vr-shot-thumb img,.vr-shot-thumb video{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:cover;object-position:center}.vr-shot-info{min-width:0;display:flex;align-items:baseline;justify-content:space-between;gap:5px;overflow:hidden}.vr-shot-info b,.vr-shot-info small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr-shot-info b{font-size:10px}.vr-shot-info small{font-size:9px}
@media(max-width:900px){.vr-note{grid-template-columns:minmax(0,1fr)}.vr-timeline-clip{width:104px;min-width:104px;max-width:104px}}

/* Stage recovery + aspect-aware timeline: the middle is always a visible editing canvas, not an empty auxiliary frame. */
.vr-stage-pane{display:grid;grid-template-rows:56px minmax(0,1fr) 7px minmax(136px,var(--timeline-pane,180px));min-width:0;min-height:0;overflow:hidden}
.vr-stage-head{grid-row:1;display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;overflow:hidden}
.vr-canvas-wrap{position:relative;grid-row:2;min-width:0;min-height:0;display:grid;place-items:center;padding:12px;overflow:hidden;background:#080b0e}
.vr-canvas-wrap::before{content:attr(data-notice);position:absolute;top:0;left:0;right:0;z-index:4;max-height:0;padding:0 12px;overflow:hidden;color:#ffc0c0;font-size:11px;line-height:26px;text-overflow:ellipsis;white-space:nowrap;background:#2a1719;transition:max-height .15s,padding .15s}
.vr-canvas-wrap[data-notice]:not([data-notice=""])::before{max-height:28px;padding:0 12px}
.vr-canvas{position:relative;display:block;width:min(100%,calc((100dvh - 300px) * 9 / 16));height:auto;max-width:100%;max-height:100%;aspect-ratio:9 / 16;overflow:hidden;background:#121a1f;border:1px solid #2c3a42;border-radius:4px;box-shadow:0 12px 30px rgba(0,0,0,.28);container-type:inline-size}
.vr-canvas>img,.vr-canvas>video{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;background:#090d10}
.vr-canvas-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.12),transparent 25%,transparent 76%,rgba(0,0,0,.2))}
.vr-row-resizer{grid-row:3}.vr-timeline-section{grid-row:4}
.vr-timeline{display:flex;align-items:flex-start;gap:8px;padding:2px 0 5px;overflow-x:auto;overflow-y:hidden}
.vr-timeline-clip{flex:0 0 102px;width:102px;min-width:102px;max-width:102px;transition:width .12s,flex-basis .12s}
.vr-timeline-clip[data-orientation="landscape"]{flex-basis:146px;width:146px;min-width:146px;max-width:146px}
.vr-timeline-clip[data-orientation="portrait"]{flex-basis:76px;width:76px;min-width:76px;max-width:76px}
.vr-timeline-clip[data-orientation="square"]{flex-basis:104px;width:104px;min-width:104px;max-width:104px}
.vr-timeline-clip>button{grid-template-rows:auto 58px auto;min-height:104px}.vr-timeline-clip[data-orientation="portrait"]>button{grid-template-rows:auto 72px auto;min-height:118px}.vr-timeline-clip[data-orientation="landscape"]>button{grid-template-rows:auto 58px auto}
.vr-shot-thumb{height:58px;background:#0b1115}.vr-timeline-clip[data-orientation="portrait"] .vr-shot-thumb{height:72px}
.vr-shot-thumb img,.vr-shot-thumb video{width:100%;height:100%;object-fit:contain;background:#0b1115}
@media(max-width:900px){.vr-canvas{width:min(100%,calc((100dvh - 292px) * 9 / 16))}.vr-timeline-clip[data-orientation="landscape"]{flex-basis:132px;width:132px;min-width:132px;max-width:132px}}

/* Production-style video workspace: deliberate hierarchy, one hero viewer, and a storyboard timeline. */
.vr-shell{background:#101214;color:#f2f4f5;font-family:"PingFang SC","Hiragino Sans GB",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.vr-topbar{height:56px;min-height:56px;padding:0 18px;background:#17191c;border-bottom:1px solid #2b2e33}
.vr-top-actions{gap:8px;justify-content:flex-end}.vr-btn,.vr-top-step{height:32px;border-radius:6px;font-size:12px}.vr-top-step-main{background:#f3f3f0;border-color:#f3f3f0;color:#17191c}.vr-batch-actions .vr-top-step{background:#d9f260;border-color:#d9f260;color:#1a1d0e}.vr-template-actions,.vr-batch-actions{border-left-color:#34383d}
.vr-workspace{background:#101214}.vr-notes-pane{padding:12px;background:#15171a;border-right-color:#2b2e33}.vr-pane-head{padding:4px 6px 10px}.vr-pane-head strong{font-size:14px}.vr-pane-head small{font-size:10px}.vr-source-tabs{margin:0 0 8px;padding:3px;background:#202327;border-radius:7px}.vr-source-tabs button{height:28px;border-radius:5px;font-size:11px}.vr-source-tabs button.is-active{background:#f4f4f0;color:#17191c}
.vr-stage-pane{background:#101214;grid-template-rows:52px minmax(0,1fr) 6px minmax(154px,var(--timeline-pane,190px))}.vr-stage-head{padding:0 20px;border-bottom:1px solid #24272b;background:#15171a}.vr-breadcrumb{display:none}.vr-project-heading{display:block;max-width:42ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600}.vr-stage-meta{gap:6px}.vr-stage-meta span{padding:3px 7px;border:1px solid #363a40;border-radius:999px;color:#aeb4ba;font-size:10px;background:transparent}
.vr-canvas-wrap{padding:22px 28px;background:#0e1012;background-image:radial-gradient(circle at 1px 1px,#25282c 1px,transparent 0);background-size:16px 16px}.vr-canvas{width:min(100%,calc((100dvh - 328px) * 9 / 16));height:auto;aspect-ratio:9 / 16;border:0;border-radius:8px;background:#08090a;box-shadow:0 20px 58px rgba(0,0,0,.48);overflow:hidden}.vr-canvas[data-aspect="landscape"]{width:min(100%,calc((100dvh - 328px) * 16 / 9));aspect-ratio:16 / 9}.vr-canvas-media{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;background:#070809}.vr-canvas-media>img,.vr-canvas-media>video{width:100%;height:100%;object-fit:contain;background:#070809}.vr-canvas-badge{top:12px;left:12px;right:auto;padding:5px 8px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(18,20,22,.72);font-size:10px;backdrop-filter:blur(8px)}
.vr-timeline-section{padding:10px 16px 12px;background:#17191c;border-top-color:#2b2e33}.vr-timeline-head{height:26px;margin-bottom:7px}.vr-timeline-head strong{font-size:12px}.vr-timeline-summary{font-size:10px}.vr-timeline{gap:10px;padding:0 0 4px}.vr-timeline-clip,.vr-timeline-clip[data-orientation="square"]{flex-basis:104px;width:104px;min-width:104px;max-width:104px}.vr-timeline-clip[data-orientation="landscape"]{flex-basis:154px;width:154px;min-width:154px;max-width:154px}.vr-timeline-clip[data-orientation="portrait"]{flex-basis:82px;width:82px;min-width:82px;max-width:82px}.vr-timeline-clip>button{min-height:112px;padding:5px;border-color:#34383d;border-radius:7px;background:#202327;grid-template-rows:17px 66px 18px}.vr-timeline-clip.is-active>button{border-color:#d9f260;box-shadow:0 0 0 1px rgba(217,242,96,.16);background:#252a20}.vr-timeline-clip[data-orientation="portrait"]>button{min-height:128px;grid-template-rows:17px 82px 18px}.vr-shot-number{color:#d9f260}.vr-shot-kind{display:none}.vr-shot-thumb,.vr-timeline-clip[data-orientation="portrait"] .vr-shot-thumb{height:auto;min-height:0;border-radius:4px;background:#0c0e10}.vr-shot-thumb img,.vr-shot-thumb video{object-fit:contain;background:#0c0e10}.vr-shot-info{align-items:center}.vr-shot-info b{color:#f3f4f5;font-size:10px}.vr-shot-info small{font-size:9px}.vr-drag-handle{display:none}
.vr-inspector-pane{background:#15171a;border-left-color:#2b2e33}.vr-inspector-tabs{height:48px;min-height:48px;padding:8px 10px;background:#17191c;border-bottom:1px solid #2b2e33;gap:4px}.vr-inspector-tabs button{border-radius:5px;font-size:11px}.vr-inspector-tabs button.is-active{background:#2a2e33;color:#f2f4f5}.vr-inspector{padding:16px}.vr-flow-card{background:#17191c;border-top-color:#2b2e33}
@media(max-width:1180px){.vr-canvas-wrap{padding:16px}.vr-top-actions{justify-content:flex-start}}@media(max-width:900px){.vr-stage-pane{grid-template-rows:48px minmax(360px,1fr) 6px minmax(146px,var(--timeline-pane,178px))}.vr-canvas-wrap{padding:14px}.vr-canvas{width:min(100%,calc((100dvh - 322px) * 9 / 16))}.vr-canvas[data-aspect="landscape"]{width:100%}.vr-topbar{height:52px;min-height:52px}}

/* Inspector density pass: prioritize the active edit, preserve all controls in compact grouped rows. */
.vr-inspector{display:flex;flex-direction:column;gap:10px;padding:12px 14px}.vr-inspector-head{margin:0;min-height:32px}.vr-inspector-head strong{font-size:13px}.vr-inspector-head small{margin-top:2px;font-size:10px;line-height:1.35}.vr-inspector .vr-form-grid{gap:8px}.vr-inspector .vr-form-grid>label{gap:4px}.vr-inspector .vr-form-grid>label>span{font-size:10px;color:#9aa2a8}.vr-inspector .vr-form-grid input,.vr-inspector .vr-form-grid select{min-height:29px;font-size:11px}.vr-inspector .vr-form-grid textarea{font-size:11px;line-height:1.45}.vr-inspector .vr-btn{min-height:32px}.vr-clip-task-status{order:20;margin-top:4px}.vr-clip-task-status .vr-error{max-height:84px;overflow:auto}
/* Image-backed merge rows disambiguate same-name generation clips without adding another panel. */
.vr-merge-list>div{padding:3px}.vr-merge-select{grid-template-columns:38px 28px minmax(0,1fr);grid-template-rows:auto auto;gap:0 7px;padding:3px}.vr-merge-thumb{grid-row:1/3;width:38px;height:38px;display:grid;place-items:center;overflow:hidden;border-radius:4px;background:#0c0e10}.vr-merge-thumb img,.vr-merge-thumb video{width:100%;height:100%;object-fit:cover}.vr-merge-select b{grid-column:2;grid-row:1/3}.vr-merge-select span:not(.vr-merge-thumb){grid-column:3}.vr-merge-select small{grid-column:3}
/* Timeline tools live above a scroll-only storyboard and are never covered by task diagnostics. */
.vr-timeline-section{display:grid;grid-template-rows:34px minmax(0,1fr);min-height:0;overflow:hidden}.vr-timeline-head{height:34px;min-height:34px;margin:0;display:flex;align-items:center;justify-content:space-between}.vr-media-actions{display:flex;align-items:center;gap:6px;position:relative;z-index:2;flex:0 0 auto}.vr-media-actions .vr-icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:26px;padding:0 7px;border:1px solid #3a3f45;border-radius:5px;background:#24282d;color:#e8ebed;font-size:10px;white-space:nowrap;cursor:pointer}.vr-media-actions .vr-icon-btn:hover{border-color:#d9f260;color:#fff}.vr-media-actions input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.vr-timeline{min-height:0;align-items:flex-start;overflow-x:auto;overflow-y:hidden}.vr-shot-status{display:none}
/* Title editing: its own compact editor, not a long generic form. */
.vr-title-track{display:flex;gap:5px;overflow-x:auto;padding:1px 0 3px}.vr-title-track button{flex:0 0 auto;min-width:68px;padding:5px 7px;border:1px solid #34383d;border-radius:5px;background:#1d2024;color:#aeb5ba;font-size:10px}.vr-title-track button.is-active{border-color:#d9f260;background:#252a20;color:#f3f4f5}.vr-title-track small{display:block;margin-top:2px;font-size:9px;color:#8c969d}.vr-title-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:3px;border-radius:6px;background:#202327}.vr-title-tabs button{height:27px;border:0;border-radius:4px;background:transparent;color:#9aa2a8;font-size:11px}.vr-title-tabs button.is-active{background:#f4f4f0;color:#181a1d}.vr-title-copy textarea{min-height:64px;max-height:92px}.vr-title-section{margin:0;padding:9px;border:1px solid #2c3035;border-radius:6px;background:#191b1f}.vr-title-section>strong,.vr-title-section summary{display:block;margin-bottom:7px;font-size:11px;color:#e6e9ea}.vr-title-section .vr-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.vr-title-section .vr-form-grid>label.is-wide{grid-column:1/-1}.vr-title-section details{padding:0}.vr-title-section summary{cursor:pointer}.vr-preset-toolbar{display:flex;align-items:center;justify-content:space-between;font-size:11px}.vr-preset-toolbar small{font-size:9px;color:#90999f}.vr-title-preset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.vr-title-preset{min-height:44px;padding:6px;border:1px solid #34383d;border-radius:6px;background:#1d2024;text-align:left}.vr-title-preset b{display:block;color:#dfe3e5;font-size:10px}.vr-title-preset i{display:block;margin-top:3px;font-size:15px;font-style:normal;line-height:1}.vr-title-preset.is-active{border-color:#d9f260;background:#252a20}
/* Voice/subtitle editor uses compact controls and grouped progression without hiding advanced fields. */
.vr-inspector .vr-audio-file{margin:0;padding:7px 8px;border:1px dashed #363b40;border-radius:5px;color:#aeb6bb;font-size:10px;line-height:1.45}.vr-inspector .vr-inline-actions{display:flex;flex-wrap:wrap;gap:6px}.vr-inspector .vr-inline-actions .vr-btn{flex:1 1 118px;padding:0 8px;font-size:10px}.vr-cue-list{display:flex;flex-direction:column;gap:5px}.vr-cue-row{display:grid;grid-template-columns:18px 48px 8px 48px minmax(0,1fr);gap:5px;align-items:start;padding:5px;border:1px solid #2d3237;border-radius:5px;background:#191c20}.vr-cue-row b{padding-top:7px;color:#d9f260;font-size:10px}.vr-cue-row input{min-width:0;height:28px}.vr-cue-row textarea{min-width:0;min-height:30px;max-height:54px}
@media(max-width:1080px){.vr-title-section .vr-form-grid{grid-template-columns:1fr}.vr-cue-row{grid-template-columns:18px 45px 8px 45px minmax(0,1fr)}}
/* Final control-density correction: tabs are one line, inspector owns its scroll, and clip diagnostics end the active tab. */
.vr-topbar{justify-content:flex-end}.vr-top-actions{min-width:0;overflow:hidden}.vr-template-actions{min-width:0;display:flex;align-items:center;gap:6px}.vr-template-select{max-width:180px;min-width:0;height:30px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr-template-name{width:170px;min-width:120px;height:30px;padding:0 9px;border:1px solid #3a4046;border-radius:5px;background:#111316;color:#edf1f2;font-size:11px;outline:0}.vr-template-name:focus{border-color:#d9f260}
.vr-inspector-pane{display:grid;grid-template-rows:48px minmax(0,1fr) auto;min-height:0}.vr-inspector-tabs{display:grid;grid-auto-flow:column;grid-template-rows:1fr;grid-auto-columns:minmax(0,1fr);min-width:0;height:48px;min-height:48px;max-height:48px;align-items:center;overflow:hidden;padding:8px 6px;white-space:nowrap;gap:3px}.vr-inspector-tabs button{display:block;min-width:0;width:100%;height:100%;padding:0 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.vr-inspector{min-height:0;overflow:auto;align-content:start}.vr-flow-card{max-height:0;overflow:hidden;border:0;padding:0}.vr-inspector:has(.vr-clip-task-status){display:flex;min-height:0}.vr-inspector:has(.vr-clip-task-status) .vr-clip-task-status{margin-top:auto;flex:0 0 auto;width:100%}
.vr-note-list{display:flex;flex-direction:column;gap:8px}
/* 【关键】.vr-note-list 是 flex column 容器，卡片作为 flex 子项默认 flex-shrink:1，
   会被压扁（实测卡片高度只剩 10px，封面/标题全溢出到卡片外 → 就是用户说的"太窄显示不出来"）。
   必须禁止收缩，让每张卡按内容高度撑开。 */
.vr-note-list > .vr-note{flex:0 0 auto;width:100%}
/* ── 【用户要求】左侧「图文笔记」卡片：图片太小太挤，看不清 ──
   原话：「图片显示得太挤了，看不清楚，也看不到收藏按钮」。
   原来缩略图被锁死 46px（grid-template-columns: 46px ...），
   在 231px 宽的面板里只能显示成 44×44 的小方块，根本看不清。
   改成【大图在上、信息在下】的竖版卡片：
     · 封面按 16:9 铺满整行（231px 宽 → 约 130px 高），一眼能看清
     · 标题/素材数在图片下方，收藏按钮放右上角且加大
   这样每张卡看得清，收藏按钮也显眼。 */
.vr-note{
  position:relative;
  display:block;              /* 卡片本体只用 block，高度由内容撑开 */
  height:auto;
  min-height:0;
  padding:0;
  border:1px solid #292d32;
  border-radius:9px;
  background:#191b1e;
  overflow:hidden;
}
.vr-note:hover{background:#1e2328;border-color:#3a464f}
.vr-note.is-active{background:#17231f;border-color:#3d705b}
.vr-note>.vr-note-main{
  display:block;              /* 内部也用 block，避免 grid 行高算不出来 */
  width:100%;
  min-width:0;
  border:0;
  background:transparent;
  color:inherit;
  text-align:left;
  padding:0;
  cursor:pointer;
}
/* 封面：横排展示 3~4 张图，铺满卡片宽度 —— 原来只显示 1 张、还是被裁切的一部分 */
.vr-note .vr-note-cover,
.vr-note-main .vr-note-cover{
  position:relative;
  width:100%;
  height:120px;
  max-height:120px;
  min-width:0;
  border-radius:0;
  background:#182128;
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:1fr;
  gap:2px;
  overflow:hidden;
}
/* 只有 1 张图时占满整宽；2 张各半；3~4 张等分 */
.vr-note .vr-note-cover[data-count="1"],
.vr-note-main .vr-note-cover[data-count="1"]{grid-auto-columns:100%}
.vr-note .vr-note-cover > b,
.vr-note-main .vr-note-cover > b{grid-column:1 / -1;display:grid;place-items:center;font-size:10px;color:#7f9098}
.vr-note-thumb{position:relative;display:block;width:100%;height:100%;overflow:hidden;background:#141b21}
.vr-note-thumb img{position:absolute;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:cover;object-position:center;display:block}
.vr-note .vr-note-cover img,
.vr-note-main .vr-note-cover img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
/* 标题区：放在图片下方，两侧留内边距 */
.vr-note .vr-note-copy,
.vr-note-main .vr-note-copy{
  display:block;
  padding:8px 10px 10px;
  min-width:0;
}
.vr-note .vr-note-copy strong,
.vr-note-main .vr-note-copy strong{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  color:#e6eeee;
  font-size:12.5px;
  line-height:1.4;
  white-space:normal;
}
.vr-note .vr-note-copy small,
.vr-note-main .vr-note-copy small{
  display:block;
  margin-top:3px;
  color:#8b9ca4;
  font-size:10.5px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
/* 收藏按钮：右上角覆盖在封面上，加大到看得见 */
.vr-note{position:relative}
.vr-note .vr-note-favorite,
.vr-note-main .vr-note-favorite{
  position:absolute;
  top:8px; right:8px;
  z-index:3;
  height:26px;
  min-width:52px;
  padding:0 9px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:14px;
  background:rgba(10,14,17,.72);
  backdrop-filter:blur(6px);
  color:#e8f0ee;
  font-size:11px;
  font-weight:600;
  cursor:pointer;
  white-space:nowrap;
}
.vr-note .vr-note-favorite:hover{border-color:#ff7d95;color:#ff7d95}
.vr-note .vr-note-favorite.is-active{border-color:#d9f260;color:#d9f260;background:rgba(217,242,96,.16)}
/* 左侧「图文笔记」卡片的浅色主题（契约要求：深色底必须配浅色规则） */
.vr-shell[data-theme="light"] .vr-note{background:#ffffff;border-color:#f0dade}
.vr-shell[data-theme="light"] .vr-note:hover{background:#fdf6f6;border-color:#e0c8cd}
.vr-shell[data-theme="light"] .vr-note.is-active{background:#f2fbf7;border-color:#a8d9c4}
.vr-shell[data-theme="light"] .vr-note .vr-note-cover,
.vr-shell[data-theme="light"] .vr-note-main .vr-note-cover{background:#f4f6f6}
.vr-shell[data-theme="light"] .vr-note .vr-note-copy strong{color:#2a2c31}
.vr-shell[data-theme="light"] .vr-note .vr-note-copy small{color:#7b8a90}
.vr-shell[data-theme="light"] .vr-note .vr-note-favorite,
.vr-shell[data-theme="light"] .vr-note-main .vr-note-favorite{
  border-color:#eccdd3;background:rgba(255,255,255,.92);color:#5d6167;
}
.vr-shell[data-theme="light"] .vr-note .vr-note-favorite:hover{border-color:#e8452f;color:#e8452f}
.vr-shell[data-theme="light"] .vr-note .vr-note-favorite.is-active{border-color:#1f9d6d;color:#1f9d6d;background:rgba(31,157,109,.12)}
.vr-inspector-tabs::-webkit-scrollbar{height:3px}.vr-inspector-tabs::-webkit-scrollbar-thumb{background:#3a3f45;border-radius:4px}
/* Keep title controls in normal flow: adding a title must never collapse the inspector header/track. */
.vr-inspector:has(.vr-title-track){display:block;overflow-y:auto}.vr-inspector:has(.vr-title-track)>.vr-inspector-head,.vr-inspector:has(.vr-title-track)>.vr-title-track,.vr-inspector:has(.vr-title-track)>.vr-title-tabs{display:flex;flex:0 0 auto;min-height:max-content}.vr-inspector:has(.vr-title-track)>.vr-title-tabs{display:grid}.vr-inspector:has(.vr-title-track)>.vr-title-section,.vr-inspector:has(.vr-title-track)>.vr-title-copy{display:block;min-height:max-content}.vr-number{display:block}.vr-number input{width:100%}
/*剪映式预览控制与故事板轨道*/
.vr-preview-stack{display:grid;grid-template-rows:26px minmax(0,1fr) 38px;gap:8px;width:min(100%,1000px);height:100%;min-height:0;place-items:center}
.vr-preview-stack .vr-preview-toolbar{grid-row:1}.vr-preview-stack .vr-canvas{grid-row:2;min-width:0;min-height:0;width:auto;height:min(100%,calc(100% - 4px));max-width:100%;max-height:100%;aspect-ratio:9 / 16}.vr-preview-stack .vr-transport{grid-row:3}
.vr-preview-stack .vr-canvas[data-aspect="landscape"]{aspect-ratio:16 / 9}
.vr-transport{width:min(100%,720px);display:grid;grid-template-columns:32px 92px minmax(0,1fr);align-items:center;gap:10px;padding:0 10px;border:1px solid #2b3136;border-radius:7px;background:#171a1d;color:#aeb6bc}
.vr-transport-button{width:27px;height:27px;border:1px solid #485057;border-radius:50%;background:#252a2f;color:#f3f5f5;font-size:11px;cursor:pointer}
.vr-transport-button:hover:not(:disabled){border-color:#d9f260;color:#d9f260}.vr-transport-button:disabled{opacity:.35;cursor:not-allowed}
.vr-timecode{font-variant-numeric:tabular-nums;font-size:10px;white-space:nowrap}.vr-scrubber{width:100%;accent-color:#d9f260}
.vr-timeline{display:block;overflow:auto hidden}.vr-timeline-ruler{display:grid;grid-template-columns:repeat(var(--tick-count),minmax(0,1fr));height:18px;color:#78838a;font-size:9px;font-variant-numeric:tabular-nums;align-items:start}.vr-timeline-ruler span{border-left:1px solid #30383d;padding-left:3px}.vr-track{display:flex;align-items:stretch;gap:8px;min-width:max-content;padding-bottom:5px}.vr-track-video .vr-timeline-clip{flex-basis:calc(var(--clip-duration) / var(--timeline-total) * 680px);width:calc(var(--clip-duration) / var(--timeline-total) * 680px);min-width:94px;max-width:260px}.vr-track-video .vr-timeline-clip[data-orientation="portrait"]{min-width:82px}.vr-track-video .vr-timeline-clip[data-orientation="landscape"]{min-width:126px}.vr-track-video .vr-timeline-clip>button{height:100%}
@media(max-width:900px){.vr-preview-stack{width:100%}.vr-track-video .vr-timeline-clip{flex-basis:calc(var(--clip-duration) / var(--timeline-total) * 560px);width:calc(var(--clip-duration) / var(--timeline-total) * 560px)}}
/* Keep the production state visible: it explains disabled actions and render progress. */
.vr-flow-card{max-height:164px;overflow:auto;border-top:1px solid #2b3136;padding:10px 14px;background:#171a1d}
.vr-flow-card>strong{display:block;margin-bottom:7px;color:#e8edf0;font-size:11px}.vr-duration-check{display:flex;align-items:center;gap:8px;min-width:0;margin-bottom:8px;color:#8f9aa1;font-size:10px}.vr-duration-check b{margin-left:auto;color:#78d6ad;font-weight:600}.vr-duration-check.is-overflow b{color:#ff9f9f}.vr-flow-steps{display:grid;gap:4px}.vr-flow-steps span{display:block;padding-left:13px;position:relative;color:#8b979e;font-size:10px;line-height:1.35}.vr-flow-steps span::before{content:'';position:absolute;left:0;top:4px;width:6px;height:6px;border-radius:50%;background:#39434a}.vr-flow-steps span.done{color:#cfe7dc}.vr-flow-steps span.done::before{background:#74d2a9}.vr-flow-card .vr-btn{margin-top:8px}
.vr-timeline-ruler{padding-left:2px;border-bottom:1px solid #252d32;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(8.333% - 1px),#242c31 calc(8.333% - 1px),#242c31 8.333%)}
.vr-track-video{position:relative;padding-top:4px}.vr-track-video::before{content:'视频';position:absolute;left:0;top:0;color:#68747b;font-size:8px;transform:translateY(-2px)}
.vr-preview-toolbar{width:min(100%,720px);display:flex;align-items:center;justify-content:space-between;gap:12px;color:#8f9ba2;font-size:10px}.vr-ratio-toggle{display:flex;gap:4px;padding:3px;border:1px solid #2c343a;border-radius:6px;background:#171b1e}.vr-ratio-toggle button{min-width:64px;padding:4px 8px;border:0;border-radius:4px;background:transparent;color:#8d989f;font:inherit;cursor:pointer}.vr-ratio-toggle button.is-active{background:#d9f260;color:#161a10;font-weight:700}.vr-ratio-toggle small{margin-left:4px;font-size:9px}
.vr-timeline-section{min-height:0}.vr-timeline{padding:3px 0 8px}.vr-track-row{display:grid;grid-template-columns:34px minmax(680px,1fr);align-items:center;min-height:27px;gap:5px}.vr-track-label{color:#77838b;font-size:9px;text-align:right}.vr-track-lane{position:relative;height:22px;min-width:680px;border-top:1px solid #20282d;background:repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0,rgba(255,255,255,.025) calc(8.333% - 1px),transparent calc(8.333% - 1px),transparent 8.333%)}.vr-track-item{position:absolute;left:calc(var(--track-start) / var(--track-total) * 100%);width:calc(var(--track-length) / var(--track-total) * 100%);top:3px;height:16px;min-width:42px;overflow:hidden;padding:2px 7px;border-radius:3px;color:#e7eef1;font-size:9px;line-height:12px;text-overflow:ellipsis;white-space:nowrap;background:#33464d;border:1px solid #4c6972}.vr-track-title .vr-track-item{background:#53442b;border-color:#836d43}.vr-track-subtitle .vr-track-item{background:#314b55;border-color:#4b7785}.vr-track-narration .vr-track-item{background:#3d4c39;border-color:#637d5e}.vr-track-music .vr-track-item{background:#493d56;border-color:#715f81}
/* Canvas title overlay: keep it above media and make title position/scale directly editable. */
.vr-canvas{position:relative;isolation:isolate;container-type:inline-size;border:1px solid #29333a;border-radius:10px;background:#070809;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.vr-canvas[data-aspect="landscape"]{aspect-ratio:16 / 9;width:auto;height:min(100%,calc(100% - 4px));max-width:100%;max-height:100%}
.vr-canvas-media{z-index:0}.vr-canvas-shade{z-index:1}.vr-canvas-badge{position:absolute;z-index:5}.vr-title-object{position:absolute;z-index:3;display:block;width:max-content;max-width:none;align-items:flex-start;justify-content:center;transform:translate(-50%,-50%) scale(var(--title-object-scale,1));transform-origin:center;touch-action:none;cursor:grab;user-select:none;outline:1px solid transparent;border-radius:4px}.vr-title-object:active{cursor:grabbing}.vr-title-object.is-selected{outline:1px dashed #d9f260;box-shadow:0 0 0 4px rgba(217,242,96,.12)}.vr-live-title{display:block;width:max-content;max-width:none;padding:calc(var(--title-padding,0px) + 2px) calc(var(--title-padding,0px) + 5px);white-space:pre;overflow:visible;line-height:1.16}.vr-title-object.is-selected .vr-live-title{min-width:42px}.vr-title-index{position:absolute;top:-18px;left:-1px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#d9f260;color:#10140e;font-size:9px;line-height:16px;text-align:center;pointer-events:none}.vr-title-handle{position:absolute;right:-8px;bottom:-8px;width:14px;height:14px;border:2px solid #111;background:#d9f260;border-radius:3px;box-shadow:0 1px 5px rgba(0,0,0,.7);cursor:nwse-resize;touch-action:none}.vr-title-handle::after{content:'';position:absolute;inset:3px;border-right:1px solid #172011;border-bottom:1px solid #172011}.vr-title-object:not(.is-selected) .vr-title-index{display:none}
.vr-clip-mode-note{display:flex;gap:8px;align-items:flex-start;padding:8px 9px;border:1px solid #2e4149;border-radius:7px;background:#111a1e;color:#aebdc3;font-size:10px;line-height:1.45}.vr-clip-mode-note i{display:block;flex:0 0 auto;width:7px;height:7px;margin-top:4px;border-radius:50%;background:#71d8e9;box-shadow:0 0 10px #3ac5dc}.vr-reference-section{grid-column:1/-1;padding:9px;border:1px solid #303941;border-radius:8px;background:#15191d}.vr-reference-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}.vr-reference-heading strong{display:block;color:#ebeff0;font-size:11px}.vr-reference-heading small{display:block;max-width:240px;margin-top:2px;color:#8d989f;font-size:9px;line-height:1.35}.vr-reference-heading>b{padding:3px 6px;border-radius:4px;background:#202c32;color:#8ee4f1;font-size:10px}.vr-reference-list{display:flex;flex-wrap:wrap;gap:6px}.vr-reference-item,.vr-reference-add{position:relative;display:flex;flex:0 0 58px;width:58px;height:72px;overflow:hidden;align-items:center;justify-content:center;border:1px solid #3a4146;border-radius:6px;background:#1a1e22}.vr-reference-item.is-primary{border-color:#75dce8;box-shadow:inset 0 0 0 1px #27606a}.vr-reference-item img{width:100%;height:100%;object-fit:cover}.vr-reference-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:2px;text-align:center;background:rgba(5,9,12,.76);color:#dceff1;font-size:8px}.vr-reference-item button{position:absolute;right:2px;top:2px;width:16px;height:16px;border:0;border-radius:50%;background:rgba(14,18,21,.88);color:#fff;line-height:14px}.vr-reference-add{box-sizing:border-box;padding:4px;border-style:dashed;color:#8ea2a7;font-size:9px;text-align:center;line-height:1.3;cursor:pointer}.vr-reference-add input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.vr-ratio-section{grid-column:1/-1;min-width:0;padding:9px;border:1px solid #303941;border-radius:8px;background:#15191d}.vr-ratio-heading{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}.vr-ratio-heading strong{display:block;color:#ebeff0;font-size:11px}.vr-ratio-heading small{display:block;margin-top:2px;color:#8d989f;font-size:9px;line-height:1.35}.vr-ratio-heading>b{flex:0 0 auto;padding:3px 6px;border-radius:4px;background:#202c32;color:#8ee4f1;font-size:10px}.vr-ratio-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.vr-ratio-option{min-width:0;min-height:65px;padding:6px 3px;border:1px solid #363d43;border-radius:6px;background:#1a1e22;color:#aeb7bb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.vr-ratio-option:hover{border-color:#568a95;color:#e1f1f3}.vr-ratio-option.is-active{border-color:#72dce9;background:#143239;color:#e5fbff;box-shadow:inset 0 0 0 1px #225866}.vr-ratio-option span{font-size:11px;font-weight:750;line-height:1}.vr-ratio-option small{font-size:9px;color:#849097;line-height:1}.vr-ratio-option.is-active small{color:#a4dce4}.vr-ratio-icon{display:block;box-sizing:border-box;border:2px solid currentColor;border-radius:2px;opacity:.9}.vr-ratio-icon.is-portrait{width:14px;height:25px}.vr-ratio-icon.is-landscape{width:26px;height:15px}.vr-ratio-icon.is-square{width:18px;height:18px}.vr-ratio-icon.is-standard{width:23px;height:17px}.vr-ratio-icon.is-portrait-wide{width:17px;height:23px}@media(max-width:1080px){.vr-ratio-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.vr-ratio-option{min-height:56px}}


/* Merged authoring track and generated narration preview */
.vr-track-merged .vr-track-item.is-merged{background:linear-gradient(90deg,rgba(56,189,248,.22),rgba(34,197,94,.18));border:1px solid rgba(56,189,248,.55);display:flex;align-items:center;gap:10px;overflow:hidden}
.vr-track-merged .vr-track-item.is-merged b{color:#dff7ff;white-space:nowrap}
.vr-track-merged .vr-track-item.is-merged small{color:#92a9b9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vr-field-hint{display:block;margin-top:5px;color:#8ba3b4;font-size:11px;line-height:1.35}
.vr-narration-preview{display:block;width:100%;height:34px;margin-top:8px;accent-color:#38bdf8}
.vr-narration-status{display:grid;gap:6px;margin:8px 0;padding:9px 10px;border:1px solid #32414a;border-radius:8px;background:#11191e}.vr-narration-status>div{display:flex;justify-content:space-between;gap:10px}.vr-narration-status b{font-size:11px;color:#dce7eb}.vr-narration-status span{font-size:10px;color:#89a1ad}.vr-narration-status progress{width:100%;height:6px;accent-color:#79ddec}.vr-narration-status.stage-completed{border-color:#416747;background:#122018}.vr-narration-status.stage-completed progress{accent-color:#70d77c}.vr-narration-status.stage-failed{border-color:#713a45;background:#241318}.vr-narration-status.stage-failed b{color:#ff9baa}
.vr-subtitle-style-tags{display:flex;flex-wrap:wrap;gap:6px}.vr-subtitle-style-tags button{padding:6px 9px;border:1px solid #38474f;border-radius:999px;background:#172026;color:#c8d5da;font:inherit;cursor:pointer}.vr-subtitle-style-tags button:hover{border-color:#7adbe9;color:#ecfbff}
.vr-subtitle-tags{display:grid;gap:5px;max-height:210px;overflow:auto;margin:8px 0}.vr-subtitle-tag{display:grid;grid-template-columns:24px 82px minmax(0,1fr);align-items:center;gap:6px;padding:6px 8px;border:1px solid #2d383e;border-radius:7px;background:#141a1e}.vr-subtitle-tag b{font-size:9px;color:#6fd5e4}.vr-subtitle-tag span{font-size:9px;color:#788b95}.vr-subtitle-tag p{min-width:0;margin:0;color:#d7e0e3;font-size:10px;line-height:1.35}



/* Durable panel save + batch output workspace */
.vr-autosave-state{font-size:11px;color:#86a1b4;white-space:nowrap}
.vr-batch-panel{display:grid;gap:10px;margin:12px 0;padding:12px;border:1px solid rgba(80,128,156,.34);border-radius:12px;background:rgba(8,20,29,.72)}
.vr-batch-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:8px}
.vr-batch-grid label{display:grid;gap:5px;font-size:11px;color:#9cb1bf}.vr-batch-grid input,.vr-batch-grid select{width:100%}
.vr-batch-panel>small{color:#8299a8;line-height:1.45}
.vr-batch-output-list{display:grid;gap:6px;max-height:220px;overflow:auto}
.vr-batch-output-project{display:grid;grid-template-columns:minmax(0,1fr) 86px 34px auto;align-items:center;gap:8px;padding:8px;border-radius:8px;background:rgba(255,255,255,.035)}
.vr-batch-output-project div{min-width:0}.vr-batch-output-project b,.vr-batch-output-project small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr-batch-output-project small{color:#8299a8;margin-top:2px}.vr-batch-output-project progress{width:86px}.vr-batch-output-project>a{color:#7dd3fc}.vr-batch-output-project p{grid-column:1/-1;color:#fb7185;margin:0}
.vr-batch-empty{padding:10px;text-align:center;color:#708794;border:1px dashed rgba(120,150,165,.25);border-radius:8px}
/* 时长对齐 + 字幕画布编辑 */
.vr-duration-board{display:grid;gap:6px;padding:9px 10px;border:1px solid #2f3b42;border-radius:8px;background:#121a1f}
.vr-duration-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:1px 8px;align-items:baseline}
.vr-duration-row>span{grid-row:1/3;color:#8fa6b2;font-size:10px;align-self:center}
.vr-duration-row>b{color:#e2edf1;font-size:12px;font-weight:640}
.vr-duration-row>small{color:#7d919c;font-size:9px;line-height:1.4}
.vr-duration-alert{display:grid;gap:7px;margin:8px 0;padding:10px;border:1px solid #7c4a26;border-radius:8px;background:linear-gradient(180deg,#241a12,#1a1310)}
.vr-duration-alert>b{color:#ffc98a;font-size:11px}
.vr-duration-alert>small{color:#d6b693;font-size:10px;line-height:1.5}
.vr-pos-grid{display:grid;gap:6px}
.vr-pos-grid label{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:6px;font-size:10px;color:#96a9b3}
.vr-animation-tags button.is-active{border-color:#7adbe9;background:#17313a;color:#e9fcff}

/* 标题显示时间：全程 / 开头几秒 / 指定时间段 */
.vr-title-when{display:grid;gap:6px;padding:8px 9px;margin:6px 0;border:1px solid var(--line,#27313a);border-radius:8px;background:var(--surface2,#161c22)}
.vr-title-when-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.vr-title-when-head > span{font-size:10.5px;font-weight:600;color:var(--text,#ecf1f4)}
.vr-title-when-head > small{font-size:9px;color:var(--muted,#85929d)}
.vr-title-when-tags{display:flex;gap:5px;flex-wrap:wrap}
.vr-title-when-tags button{flex:0 0 auto;height:24px;padding:0 10px;border:1px solid var(--line,#27313a);border-radius:6px;background:var(--surface3,#1b232b);color:var(--text-2,#9aa6b2);font:11px inherit;cursor:pointer;transition:all .15s}
.vr-title-when-tags button:hover{border-color:#3a4756;color:var(--text,#ecf1f4)}
.vr-title-when-tags button.is-active{border-color:var(--accent,#7adbe9);background:color-mix(in srgb,var(--accent,#7adbe9) 14%,var(--surface2,#161c22));color:#e9fcff}
.vr-title-when-fields{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:2px}
.vr-title-when-fields label{display:flex;align-items:center;gap:4px;font-size:10px;color:#96a9b3}
.vr-title-when-fields input[type="number"]{width:62px;height:24px;padding:0 5px;border:1px solid var(--line,#27313a);border-radius:5px;background:var(--surface3,#1b232b);color:var(--text,#ecf1f4);font:11px inherit}
.vr-title-when-fields em{font-style:normal;font-size:9.5px;color:var(--muted,#85929d)}
.vr-title-when-fields small{font-size:9px;color:var(--muted,#85929d);margin-left:auto}
.vr-shell[data-theme="light"] .vr-title-when{background:var(--l-inset);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-title-when-head > span{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-title-when-tags button{background:var(--l-panel);border-color:var(--l-line);color:var(--l-text2)}
.vr-shell[data-theme="light"] .vr-title-when-tags button.is-active{border-color:var(--l-accent);background:var(--l-accent-soft);color:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-title-when-fields input[type="number"]{background:var(--l-panel);border-color:var(--l-line);color:var(--l-text)}
/* 字幕排版：先定每行字数与分行，再调大小 */
.vr-layout-board{display:grid;gap:6px;padding:8px 9px;margin:6px 0;border:1px solid var(--line,#27313a);border-radius:8px;background:var(--surface2,#161c22)}
.vr-layout-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.vr-layout-head > span{font-size:10.5px;font-weight:600;color:var(--text,#ecf1f4)}
.vr-layout-head > small{font-size:9px;color:var(--muted,#85929d)}
.vr-layout-row{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
.vr-layout-row .vr-quick-slider{flex:1 1 auto;min-width:0}
.vr-layout-row .vr-btn{flex:0 0 auto}
.vr-layout-board .vr-field-hint{margin:0;font-size:9px;line-height:1.45;color:var(--muted,#85929d)}
.vr-shell[data-theme="light"] .vr-layout-board{background:var(--l-inset);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-layout-head > span{color:var(--l-text)}
/* 标题在播放区间之外：只在预览里淡化，提示"这段时间不显示"，不影响导出 */
.vr-title-object.is-out-range{opacity:.28;filter:saturate(.4)}
.vr-title-object.is-out-range::after{content:'此时间段不显示';position:absolute;left:50%;top:100%;transform:translateX(-50%);margin-top:4px;padding:1px 6px;border-radius:4px;background:rgba(0,0,0,.62);color:#ffd9a0;font-size:9px;white-space:nowrap;pointer-events:none}
.vr-shell[data-theme="light"] .vr-title-object.is-out-range::after{background:rgba(255,255,255,.9);color:var(--l-warn);box-shadow:0 1px 4px rgba(0,0,0,.12)}

/* ── 花字（标题与旁白字幕通用） ──
   预览底色跟随整个工作台的 UI 令牌（--surface/--line），不再用固定的黑色渐变 —— 
   原来深色卡片让白色/浅色花字显得"糊在黑底上"，与整体风格脱节。 */
@keyframes vr-subtitle-fade{from{opacity:0}to{opacity:1}}
.vr-huazi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px}
.vr-huazi-card{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 4px 6px;border:1px solid var(--line,#27313a);border-radius:9px;background:var(--surface2,#161c22);cursor:pointer;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.vr-huazi-card:hover{border-color:#3a4756;background:var(--surface3,#1b232b)}
.vr-huazi-card.is-active{border-color:var(--accent,#7adbe9);background:color-mix(in srgb,var(--accent,#7adbe9) 10%,var(--surface2,#161c22));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent,#7adbe9) 45%,transparent),0 4px 12px rgba(0,0,0,.22)}
/* 花字样张：给一块中性的"预览底"，让白字/深字、描边、发光都能看清，而不是压在重黑底上 */
.vr-huazi-card i{font-style:normal;font-weight:900;font-size:19px;line-height:1.15;letter-spacing:0;display:flex;align-items:center;justify-content:center;width:100%;min-height:30px;padding:2px 3px;border-radius:6px;background:var(--surface3,#1b232b)}
.vr-huazi-card b{font-size:11px;font-weight:600;color:var(--text-2,#9aa6b2);white-space:nowrap}
.vr-huazi-card.is-active b{color:var(--text-1,#e7edf3)}
.vr-emphasis-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px}
.vr-emphasis-board label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-2,#9aa6b2)}
.vr-emphasis-board input[type="color"]{width:34px;height:22px;padding:0;border:1px solid var(--line,#2a3038);border-radius:5px;background:none}
.vr-emphasis-board input[type="range"]{flex:1;min-width:60px}
.vr-inline-pair{display:inline-flex;align-items:center;gap:6px}
.vr-inline-pair input[type="color"]{width:34px;height:24px;padding:0;border:1px solid var(--line,#2a3038);border-radius:5px;background:none}
.vr-inline-pair input[type="number"]{width:72px}
.vr-live-subtitle .is-emphasis{will-change:transform,text-shadow}
@media (prefers-reduced-motion: reduce){.vr-live-subtitle .is-emphasis{animation:none}}

/* 产物待更新提示条：合成后的成片/合并视频不会因为改字幕、标题而消失，只在原处提醒重新合成 */
.vr-stale-notice{display:flex;align-items:center;gap:10px;margin-top:10px;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,196,90,.38);background:rgba(255,178,52,.10);color:#ffe0b0}
.vr-stale-notice b{flex:0 0 auto;font-size:12.5px;color:#ffd07a;white-space:nowrap}
.vr-stale-notice small{flex:1;min-width:0;font-size:12px;line-height:1.5;color:rgba(255,240,214,.78)}
.vr-stale-notice .vr-btn{flex:0 0 auto}

/* 简化面板：快捷行 + 折叠的精细设置（默认只留最常用的几项） */
.vr-quick-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0}
.vr-quick-group{display:flex;align-items:center;gap:6px}
.vr-quick-group>span,.vr-quick-slider>span{font-size:12px;color:#8d989f;white-space:nowrap}
.vr-quick-chip{padding:5px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);color:inherit;font-size:12px;cursor:pointer}
.vr-quick-chip.is-active{border-color:rgba(120,190,255,.6);background:rgba(90,160,255,.18);color:#dff0ff}
.vr-quick-slider{display:flex;align-items:center;gap:8px;flex:1;min-width:180px}
.vr-quick-slider input[type=range]{flex:1;min-width:0}
.vr-adv{margin:10px 0;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.02)}
.vr-adv>summary{cursor:pointer;padding:9px 12px;font-size:12.5px;font-weight:600;list-style:none;display:flex;align-items:center;gap:8px}
.vr-adv>summary::-webkit-details-marker{display:none}
.vr-adv>summary::before{content:'\25B8';color:#8d989f;font-size:11px}
.vr-adv[open]>summary::before{content:'\25BE'}
.vr-adv>summary small{font-weight:400;color:#8d989f;font-size:11.5px}
.vr-adv>.vr-form-grid{padding:2px 12px 12px}
.vr-title-input{width:100%;margin:8px 0;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.25);color:inherit;padding:9px 11px;font-size:13.5px;line-height:1.5;resize:vertical}
.vr-subsection{margin:12px 0;border-top:1px solid rgba(255,255,255,.08);padding-top:10px}
.vr-subsection-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.vr-duration-board.is-compact{display:flex;flex-wrap:wrap;gap:6px 14px;padding:8px 10px}
.vr-duration-board.is-compact>span{font-size:12px;color:#8d989f}
.vr-duration-board.is-compact>span b{color:#e8f1ff;font-weight:600}
.vr-duration-board.is-compact>span.is-over b,.vr-duration-board.is-compact>span.is-over small{color:#ffb4a2}

/* 批量生成专属面板 + 制作状态里的入口 */
.vr-batch-blocked{margin:2px 0;padding:8px 10px;border:1px solid rgba(212,148,88,.42);border-radius:8px;background:rgba(60,40,20,.45);color:#f0c48d;font-size:11.5px;line-height:1.5}
.vr-batch-ready{margin:2px 0;padding:8px 10px;border:1px solid rgba(84,148,116,.42);border-radius:8px;background:rgba(20,44,34,.45);color:#a9e4c9;font-size:11.5px}
.vr-batch-history-row{display:grid;grid-template-columns:minmax(0,1fr) 80px 34px;align-items:center;gap:8px;padding:8px;border:1px solid rgba(120,150,165,.18);border-radius:8px;background:rgba(18,26,32,.5)}
.vr-batch-history-row div{min-width:0}
.vr-batch-history-row b{display:block;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vr-batch-history-row small{display:block;color:#8299a8;font-size:11px}
.vr-batch-panel>strong{font-size:12.5px}
.vr-batch-steps{display:grid;gap:6px;margin:0 0 2px;padding:0;list-style:none}
.vr-batch-steps li{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 9px;border:1px solid rgba(120,150,165,.18);border-radius:8px;background:rgba(18,26,32,.5)}
.vr-batch-steps li>i{display:grid;place-items:center;width:16px;height:16px;border-radius:50%;font-size:10px;font-style:normal;font-weight:700}
.vr-batch-steps li.is-done>i{background:rgba(110,214,173,.18);color:#6ed6ad}
.vr-batch-steps li.is-todo>i{background:rgba(242,185,109,.2);color:#f2b96d}
.vr-batch-steps li div{min-width:0}
.vr-batch-steps li b{display:block;font-size:11.5px}
.vr-batch-steps li small{display:block;margin-top:2px;font-size:11px;line-height:1.4;color:#8299a8}
.vr-batch-steps li .vr-btn{flex:0 0 auto;height:26px;padding:0 9px;font-size:11px}
.vr-batch-jump{flex:0 0 auto;height:26px;padding:0 9px;border:1px solid rgba(120,150,165,.28);border-radius:6px;background:transparent;color:#9cb1bf;font:inherit;font-size:11px;cursor:pointer}
.vr-batch-jump:hover{border-color:#657481;color:#ecf1f4}
.vr-batch-snapshot{display:grid;gap:4px;margin:0;padding:0;list-style:none}
.vr-batch-snapshot li{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:11px;color:#8299a8}
.vr-batch-snapshot li b{min-width:0;color:#dfe7ec;font-size:11.5px;font-weight:600;text-align:right;overflow:hidden;text-overflow:ellipsis}
.vr-batch-diff{margin:0 0 2px;padding:8px 10px;border:1px solid rgba(242,185,109,.35);border-radius:8px;background:rgba(242,185,109,.1)}
.vr-batch-diff b{display:block;font-size:11.5px;color:#f2b96d}
.vr-batch-diff ul{margin:4px 0 0;padding-left:16px;display:grid;gap:2px;list-style:disc}
.vr-batch-diff li{font-size:11px;line-height:1.45;color:#dfe7ec}
.vr-batch-diff.is-same{border-color:rgba(110,214,173,.3);background:rgba(110,214,173,.08);color:#6ed6ad;font-size:11px}

/* ═══ 日夜转换（白天模式：浅粉白底 + 红色主色，对齐参考模板） ═══ */
.vr-shell[data-theme="light"]{
  --l-bg:#fdf3f4; --l-panel:#ffffff; --l-inset:#fbf0f1; --l-inset2:#f7e6e8;
  --l-line:#f2dade; --l-line2:#eecdd3; --l-text:#2a2c31; --l-text2:#5d6167; --l-muted:#8d9099;
  --l-accent:#e8452f; --l-accent-soft:rgba(232,69,47,.10); --l-pink:#ff7d95;
  --l-ok:#1f9d6d; --l-warn:#c8801f; --l-danger:#d8402f;
  background:var(--l-bg); color:var(--l-text);
}
.vr-shell[data-theme="light"] .vr-topbar{background:var(--l-panel);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-topbar h1,.vr-shell[data-theme="light"] .vr-project-heading,.vr-shell[data-theme="light"] .vr-project-title{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-workspace,.vr-shell[data-theme="light"] .vr-preview-stack,.vr-shell[data-theme="light"] .vr-timeline-section{background:var(--l-bg)}
.vr-shell[data-theme="light"] .vr-notes-pane,.vr-shell[data-theme="light"] .vr-stage-pane,.vr-shell[data-theme="light"] .vr-inspector-pane,.vr-shell[data-theme="light"] .vr-timeline{background:var(--l-panel);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-pane-head,.vr-shell[data-theme="light"] .vr-inspector-head,.vr-shell[data-theme="light"] .vr-stage-head,.vr-shell[data-theme="light"] .vr-timeline-head{background:var(--l-panel);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-pane-head strong,.vr-shell[data-theme="light"] .vr-inspector-head strong,.vr-shell[data-theme="light"] .vr-stage-head strong,.vr-shell[data-theme="light"] .vr-timeline-head strong{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-pane-head small,.vr-shell[data-theme="light"] .vr-inspector-head small,.vr-shell[data-theme="light"] .vr-kicker,.vr-shell[data-theme="light"] .vr-breadcrumb,.vr-shell[data-theme="light"] .vr-timeline-summary,.vr-shell[data-theme="light"] .vr-track-label{color:var(--l-muted)}
.vr-shell[data-theme="light"] .vr-resizer,.vr-shell[data-theme="light"] .vr-row-resizer{background:var(--l-line)}
.vr-shell[data-theme="light"] .vr-resizer:hover,.vr-shell[data-theme="light"] .vr-row-resizer:hover{background:var(--l-line2)}
/* 选项卡 */
.vr-shell[data-theme="light"] .vr-inspector-tabs,.vr-shell[data-theme="light"] .vr-source-tabs,.vr-shell[data-theme="light"] .vr-title-tabs,.vr-shell[data-theme="light"] .vr-ratio-toggle{background:var(--l-inset);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-inspector-tabs button,.vr-shell[data-theme="light"] .vr-source-tabs button,.vr-shell[data-theme="light"] .vr-title-tabs button,.vr-shell[data-theme="light"] .vr-ratio-toggle button{background:transparent;border-color:transparent;color:var(--l-text2)}
.vr-shell[data-theme="light"] .vr-inspector-tabs button.is-active{background:var(--l-accent);border-color:var(--l-accent);color:#fff}
.vr-shell[data-theme="light"] .vr-source-tabs button.is-active,.vr-shell[data-theme="light"] .vr-title-tabs button.is-active,.vr-shell[data-theme="light"] .vr-ratio-toggle button.is-active{background:var(--l-panel);border-color:var(--l-line2);color:var(--l-accent)}
/* 按钮 */
.vr-shell[data-theme="light"] .vr-btn,.vr-shell[data-theme="light"] .vr-icon-btn,.vr-shell[data-theme="light"] .vr-top-step{background:var(--l-panel);color:var(--l-text);border-color:var(--l-line2)}
.vr-shell[data-theme="light"] .vr-btn:hover:not(:disabled),.vr-shell[data-theme="light"] .vr-icon-btn:hover:not(:disabled){background:var(--l-inset);border-color:var(--l-line2)}
.vr-shell[data-theme="light"] .vr-btn-primary,.vr-shell[data-theme="light"] .vr-btn-accent,.vr-shell[data-theme="light"] .vr-top-step-main{background:var(--l-accent);color:#fff;border-color:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-btn-primary:hover:not(:disabled),.vr-shell[data-theme="light"] .vr-btn-accent:hover:not(:disabled),.vr-shell[data-theme="light"] .vr-top-step-main:hover:not(:disabled){background:#d63a25;color:#fff}
.vr-shell[data-theme="light"] .vr-btn-warm{background:#fff4f2;color:#d63a25;border-color:#f4c8c3}
.vr-shell[data-theme="light"] .vr-btn:disabled,.vr-shell[data-theme="light"] .vr-top-step:disabled{background:var(--l-inset);color:#b9bdc3;border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-danger-btn{background:#fff2f1;color:var(--l-danger);border-color:#f2c9c5}
.vr-shell[data-theme="light"] .vr-link-btn{color:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-theme-toggle{background:var(--l-accent-soft);border-color:#f3b8b2;color:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-autosave-state{color:var(--l-muted)}
/* 表单 */
.vr-shell[data-theme="light"] input,.vr-shell[data-theme="light"] select,.vr-shell[data-theme="light"] textarea{background:var(--l-panel);color:var(--l-text);border-color:var(--l-line2)}
.vr-shell[data-theme="light"] .vr-template-name{background:var(--l-inset);border-color:var(--l-line2);color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-inspector .vr-form-grid>label>span,.vr-shell[data-theme="light"] .vr-form-grid>label>span,.vr-shell[data-theme="light"] .vr-field-hint,.vr-shell[data-theme="light"] .vr-quick-group>span,.vr-shell[data-theme="light"] .vr-quick-slider>span,.vr-shell[data-theme="light"] .vr-batch-panel>small{color:var(--l-muted)}
.vr-shell[data-theme="light"] .vr-quick-chip{background:var(--l-panel);border-color:var(--l-line2);color:var(--l-text2)}
.vr-shell[data-theme="light"] .vr-quick-chip.is-active{background:var(--l-accent-soft);border-color:var(--l-accent);color:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-adv{background:var(--l-panel);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-adv>summary{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-adv>summary small{color:var(--l-muted)}
.vr-shell[data-theme="light"] .vr-subsection,.vr-shell[data-theme="light"] .vr-title-section details{border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-title-input,.vr-shell[data-theme="light"] .vr-title-copy textarea{background:var(--l-panel);border-color:var(--l-line2);color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-fixed-engine{background:var(--l-inset);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-fixed-engine b{color:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-fixed-engine small{color:var(--l-muted)}
/* 花字库 */
.vr-shell[data-theme="light"] .vr-huazi-card,.vr-shell[data-theme="light"] .vr-title-preset{background:var(--l-panel);border-color:var(--l-line);color:var(--l-text2)}
.vr-shell[data-theme="light"] .vr-huazi-card i{background:var(--l-inset)}
.vr-shell[data-theme="light"] .vr-huazi-card b,.vr-shell[data-theme="light"] .vr-title-preset b{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-huazi-card:hover,.vr-shell[data-theme="light"] .vr-title-preset:hover{background:var(--l-inset)}
.vr-shell[data-theme="light"] .vr-huazi-card.is-active,.vr-shell[data-theme="light"] .vr-title-preset.is-active{border-color:var(--l-accent);background:var(--l-accent-soft)}
.vr-shell[data-theme="light"] .vr-huazi-card.is-active b,.vr-shell[data-theme="light"] .vr-title-preset.is-active b{color:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-subtitle-style-tags button,.vr-shell[data-theme="light"] .vr-animation-tags button{background:var(--l-panel);border-color:var(--l-line2);color:var(--l-text2)}
.vr-shell[data-theme="light"] .vr-animation-tags button.is-active,.vr-shell[data-theme="light"] .vr-subtitle-style-tags button.is-active{background:var(--l-accent-soft);border-color:var(--l-accent);color:var(--l-accent)}
/* 时长 / 状态面板 */
.vr-shell[data-theme="light"] .vr-duration-board,.vr-shell[data-theme="light"] .vr-duration-row,.vr-shell[data-theme="light"] .vr-emphasis-board,.vr-shell[data-theme="light"] .vr-duration-check{background:var(--l-inset);border-color:var(--l-line);color:var(--l-text2)}
.vr-shell[data-theme="light"] .vr-duration-row>b,.vr-shell[data-theme="light"] .vr-duration-board.is-compact>span b{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-duration-check b{color:var(--l-ok)}
.vr-shell[data-theme="light"] .vr-duration-check.is-overflow b,.vr-shell[data-theme="light"] .vr-duration-board.is-compact>span.is-over b,.vr-shell[data-theme="light"] .vr-duration-board.is-compact>span.is-over small{color:#c0392b}
.vr-shell[data-theme="light"] .vr-duration-alert{background:#fff3f2;border-color:#f3c6c1;color:#b93a2c}
.vr-shell[data-theme="light"] .vr-duration-alert>b{color:#b93a2c}
.vr-shell[data-theme="light"] .vr-stale-notice{background:#fff8ea;border-color:#f0dcae;color:#8a6520}
.vr-shell[data-theme="light"] .vr-stale-notice b{color:#8a6520}
.vr-shell[data-theme="light"] .vr-stale-notice .vr-btn{background:var(--l-accent);border-color:var(--l-accent);color:#fff}
/* 批量生成 */
.vr-shell[data-theme="light"] .vr-batch-panel{background:var(--l-inset);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-batch-panel>strong{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-batch-grid input,.vr-shell[data-theme="light"] .vr-batch-grid select{background:var(--l-panel);border-color:var(--l-line2);color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-batch-blocked{background:#fff6ea;border-color:#f0d6ae;color:#8a5d1c}
.vr-shell[data-theme="light"] .vr-batch-ready{background:#eefaf3;border-color:#bfe6d2;color:#1c7d58}
.vr-shell[data-theme="light"] .vr-batch-output-project,.vr-shell[data-theme="light"] .vr-batch-history-row{background:var(--l-panel);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-batch-output-project b,.vr-shell[data-theme="light"] .vr-batch-history-row b{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-batch-output-project small,.vr-shell[data-theme="light"] .vr-batch-history-row small,.vr-shell[data-theme="light"] .vr-batch-empty{color:var(--l-muted)}
.vr-shell[data-theme="light"] .vr-batch-empty{border-color:var(--l-line2)}
.vr-shell[data-theme="light"] .vr-batch-output-project>a{color:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-batch-steps li{background:var(--l-panel);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-batch-steps li.is-done>i{background:rgba(31,157,109,.14);color:#1f9d6d}
.vr-shell[data-theme="light"] .vr-batch-steps li.is-todo>i{background:rgba(200,128,31,.16);color:#a5701a}
.vr-shell[data-theme="light"] .vr-batch-steps li small,.vr-shell[data-theme="light"] .vr-batch-snapshot li{color:var(--l-muted)}
.vr-shell[data-theme="light"] .vr-batch-steps li b,.vr-shell[data-theme="light"] .vr-batch-snapshot li b{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-batch-jump{border-color:var(--l-line2);color:var(--l-text2)}
.vr-shell[data-theme="light"] .vr-batch-diff{border-color:rgba(200,128,31,.3);background:rgba(200,128,31,.08)}
.vr-shell[data-theme="light"] .vr-batch-diff b{color:#a5701a}
.vr-shell[data-theme="light"] .vr-batch-diff li{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-batch-diff.is-same{border-color:rgba(31,157,109,.28);background:rgba(31,157,109,.08);color:#1f9d6d}
.vr-shell[data-theme="light"] .vr-batch-jump:hover{border-color:var(--l-accent);color:var(--l-accent)}
/* 制作状态 */
.vr-shell[data-theme="light"] .vr-flow-card{background:var(--l-inset);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-flow-card>strong{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-flow-steps span{color:var(--l-muted)}
.vr-shell[data-theme="light"] .vr-flow-steps span.done{color:var(--l-ok)}
/* 预览区 */
.vr-shell[data-theme="light"] .vr-preview-toolbar,.vr-shell[data-theme="light"] .vr-transport{background:var(--l-panel);border-color:var(--l-line);color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-transport-button{background:var(--l-panel);border-color:var(--l-line2);color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-transport-button:hover:not(:disabled){background:var(--l-inset)}
.vr-shell[data-theme="light"] .vr-canvas-wrap,.vr-shell[data-theme="light"] .vr-preview-stack .vr-canvas{background:#f7eef0}
.vr-shell[data-theme="light"] .vr-canvas-badge{background:rgba(255,255,255,.9);color:#3a3c42}
.vr-shell[data-theme="light"] .vr-media-actions .vr-icon-btn{background:var(--l-panel);border-color:var(--l-line2);color:var(--l-text)}
/* 素材列表 */
.vr-shell[data-theme="light"] .vr-note{background:var(--l-panel);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-note:hover{background:var(--l-inset)}
.vr-shell[data-theme="light"] .vr-note.is-active{border-color:var(--l-accent);background:var(--l-accent-soft)}
.vr-shell[data-theme="light"] .vr-note-copy strong{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-note-copy small,.vr-shell[data-theme="light"] .vr-note-state{color:var(--l-muted)}
.vr-shell[data-theme="light"] .vr-note-cover{background:var(--l-inset)}
/* 时间线 */
.vr-shell[data-theme="light"] .vr-timeline-ruler span{color:var(--l-muted)}
.vr-shell[data-theme="light"] .vr-timeline-clip>button,.vr-shell[data-theme="light"] .vr-track-item{background:var(--l-inset);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-timeline-clip.is-active>button{border-color:var(--l-accent);box-shadow:0 0 0 2px var(--l-accent-soft)}
.vr-shell[data-theme="light"] .vr-shot-info b{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-shot-info small,.vr-shell[data-theme="light"] .vr-shot-number,.vr-shell[data-theme="light"] .vr-shot-kind,.vr-shell[data-theme="light"] .vr-timecode{color:var(--l-muted)}
.vr-shell[data-theme="light"] .vr-track-video::before{background:var(--l-line)}
.vr-shell[data-theme="light"] .vr-scrubber{background:var(--l-line2)}
/* 任务状态 / 作业记录 */
.vr-shell[data-theme="light"] .vr-clip-task-status,.vr-shell[data-theme="light"] .vr-job-row,.vr-shell[data-theme="light"] .vr-narration-status,.vr-shell[data-theme="light"] .vr-notice{background:var(--l-panel);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-clip-task-status.is-done{border-color:#bfe6d2;background:#f3fbf7}
.vr-shell[data-theme="light"] .vr-clip-task-status.is-failed{border-color:#f2c9c5;background:#fff5f4}
.vr-shell[data-theme="light"] .vr-clip-task-status.is-active{border-color:#f3b8b2;background:#fff6f5}
.vr-shell[data-theme="light"] .vr-clip-task-title small,.vr-shell[data-theme="light"] .vr-job-row small,.vr-shell[data-theme="light"] .vr-job-row span,.vr-shell[data-theme="light"] .vr-job-empty,.vr-shell[data-theme="light"] .vr-narration-status span{color:var(--l-muted)}
.vr-shell[data-theme="light"] .vr-job-row b,.vr-shell[data-theme="light"] .vr-clip-task-title b,.vr-shell[data-theme="light"] .vr-narration-status b{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-narration-preview,.vr-shell[data-theme="light"] .vr-audio-file{background:var(--l-inset);border-color:var(--l-line);color:var(--l-muted)}
.vr-shell[data-theme="light"] .vr-narration-status.stage-completed{border-color:#bfe6d2}
.vr-shell[data-theme="light"] .vr-narration-status.stage-failed{border-color:#f2c9c5}
.vr-shell[data-theme="light"] .vr-narration-status.stage-failed b,.vr-shell[data-theme="light"] .vr-error{color:#c0392b}
.vr-shell[data-theme="light"] .vr-clip-task-status .vr-error{color:#c0392b}
.vr-shell[data-theme="light"] .vr-top-progress i{background:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-job-submission summary,.vr-shell[data-theme="light"] .vr-job-history summary{color:var(--l-text2)}
.vr-shell[data-theme="light"] .vr-cue-row,.vr-shell[data-theme="light"] .vr-subtitle-tag,.vr-shell[data-theme="light"] .vr-reference-item,.vr-shell[data-theme="light"] .vr-merge-select,.vr-shell[data-theme="light"] .vr-merge-toolbar{background:var(--l-panel);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-cue-row b,.vr-shell[data-theme="light"] .vr-subtitle-tag b,.vr-shell[data-theme="light"] .vr-merge-select b{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-reference-heading small,.vr-shell[data-theme="light"] .vr-preset-toolbar small{color:var(--l-muted)}
.vr-shell[data-theme="light"] .vr-ratio-option{background:var(--l-panel);border-color:var(--l-line);color:var(--l-text2)}
.vr-shell[data-theme="light"] .vr-ratio-option.is-active{border-color:var(--l-accent);background:var(--l-accent-soft);color:var(--l-accent)}
.vr-shell[data-theme="light"] ::placeholder{color:#b0b4ba}

/* 白天模式补充：缩略图/占位块不能停在深色 */
.vr-shell[data-theme="light"] .vr-shot-thumb,.vr-shell[data-theme="light"] .vr-merge-thumb{background:#f6e6e8;border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-shot-thumb img,.vr-shell[data-theme="light"] .vr-shot-thumb video,.vr-shell[data-theme="light"] .vr-merge-thumb img,.vr-shell[data-theme="light"] .vr-merge-thumb video{background:#f6e6e8}
.vr-shell[data-theme="light"] .vr-canvas,.vr-shell[data-theme="light"] .vr-canvas-media{background:#f4e8ea}
.vr-shell[data-theme="light"] .vr-merge-thumb,.vr-shell[data-theme="light"] .vr-ratio-icon{background:#f6e6e8;border-color:var(--l-line2)}
.vr-shell[data-theme="light"] .vr-number input,.vr-shell[data-theme="light"] .vr-inline-pair input,.vr-shell[data-theme="light"] .vr-scale-control input{background:var(--l-panel);color:var(--l-text);border-color:var(--l-line2)}
.vr-shell[data-theme="light"] .vr-preset-toolbar,.vr-shell[data-theme="light"] .vr-media-actions input,.vr-shell[data-theme="light"] .vr-reference-add{border-color:var(--l-line2);color:var(--l-text2)}
.vr-shell[data-theme="light"] .vr-title-handle,.vr-shell[data-theme="light"] .vr-subtitle-handle{border-color:var(--l-accent);background:rgba(232,69,47,.14)}
.vr-shell[data-theme="light"] .vr-subtitle-object.is-selected,.vr-shell[data-theme="light"] .vr-title-object.is-selected{outline-color:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-empty{color:var(--l-muted)}

/* ===== 本轮新增：AI 改写 / 旁白 AI 重点 / 字幕时间轴编辑 ===== */
.vr-ai-panel{margin:8px 0;padding:8px;border:1px solid #2d383e;border-radius:8px;background:#141a1e;display:grid;gap:7px}
.vr-ai-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.vr-ai-panel-head b{font-size:11px;color:#d9f260}
.vr-ai-panel-head small{font-size:9px;color:#788b95}
.vr-ai-tags{display:flex;flex-wrap:wrap;gap:5px}
.vr-ai-tag{height:24px;padding:0 9px;border:1px solid #2d383e;border-radius:12px;background:#191c20;color:#aeb6bb;font-size:10px;cursor:pointer}
.vr-ai-tag.is-active{border-color:#d9f260;background:rgba(217,242,96,.12);color:#d9f260}
.vr-ai-extra{width:100%;min-height:44px;padding:6px 8px;border:1px solid #2d383e;border-radius:6px;background:#0f1214;color:#dfe7ec;font-size:10.5px;line-height:1.45;resize:vertical}
.vr-ai-actions{display:flex;flex-wrap:wrap;gap:6px}
.vr-ai-actions .vr-btn{flex:1 1 120px;padding:0 8px;font-size:10px}
.vr-ai-preview{margin:0;padding:8px;border:1px solid #2d383e;border-radius:6px;background:#0f1214;display:grid;gap:7px;min-width:0}
.vr-ai-preview textarea{width:100%;min-height:120px;max-height:260px;padding:7px 8px;border:1px solid #2d383e;border-radius:5px;background:#0b0f11;color:#dfe7ec;font-size:11px;line-height:1.6;resize:vertical}
.vr-ai-preview.is-empty{color:#788b95;font-size:10px}
.vr-ai-inline{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:6px 0 0}
.vr-ai-inline small{flex:1 1 100%;font-size:9px;line-height:1.45;color:#788b95}
.vr-emphasis-notice{flex:1 1 100%;margin:0;font-size:9.5px;line-height:1.45;color:#6ed6ad}
.vr-emphasis-notice.is-error{color:#f08a7a}
.vr-subtitle-board{display:grid;gap:6px;margin:8px 0}
/* 花字折叠：12 款平铺本身占 365px，是音字面板最占地方的一块 → 默认收起，summary 显示当前款名 */
.vr-huazi-fold{display:block;border:1px solid #2b3238;border-radius:8px;background:#131a1f;margin:6px 0}
.vr-huazi-fold > summary{cursor:pointer;list-style:none;padding:7px 9px;display:flex;align-items:center;gap:8px;border-radius:8px;user-select:none}
.vr-huazi-fold > summary::-webkit-details-marker{display:none}
.vr-huazi-fold > summary > strong{font-size:10.5px;color:#6fd5e4;font-weight:600}
.vr-huazi-fold > summary > small{font-size:9px;color:#8d9099;margin-left:auto}
.vr-huazi-fold > summary::after{content:'▾';font-size:9px;color:#788b95;transition:transform .15s ease}
.vr-huazi-fold:not([open]) > summary::after{transform:rotate(-90deg)}
.vr-huazi-fold > summary:hover{background:#1a2329}
.vr-huazi-fold[open] > summary{border-bottom:1px solid #232b31}
.vr-huazi-fold > .vr-huazi-grid{padding:6px 7px}
.vr-shell[data-theme="light"] .vr-huazi-fold{background:var(--l-panel);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-huazi-fold > summary:hover{background:var(--l-inset)}
.vr-shell[data-theme="light"] .vr-huazi-fold[open] > summary{border-bottom-color:var(--l-line)}
/* 置顶描边条：贴在音字面板最上方，不用滚动就能改（原来在面板 1458px 处，必须滚 600+ 像素才看得到） */
.vr-stroke-quick.is-pinned{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;padding:8px 9px;margin:0 0 8px;
  border:1px solid #3a4a52;border-radius:8px;background:#16222a}
.vr-stroke-quick.is-pinned > label{display:flex;align-items:center;gap:6px;flex:1 1 auto;min-width:0}
.vr-stroke-quick.is-pinned > label > span{font-size:10px;color:#9fb6c0;white-space:nowrap}
.vr-stroke-quick.is-pinned input[type="range"]{flex:1 1 auto;min-width:60px}
.vr-stroke-quick.is-pinned em{font-style:normal;font-size:11px;color:#6fd5e4;font-weight:600;min-width:18px;text-align:center}
.vr-stroke-quick.is-pinned input[type="color"]{flex:0 0 auto;width:26px;height:24px}
.vr-stroke-quick.is-pinned .vr-btn{flex:0 0 auto}
.vr-shell[data-theme="light"] .vr-stroke-quick.is-pinned{background:var(--l-inset);border-color:var(--l-line2)}
.vr-shell[data-theme="light"] .vr-stroke-quick.is-pinned > label > span{color:var(--l-text2)}
.vr-shell[data-theme="light"] .vr-stroke-quick.is-pinned em{color:var(--l-accent)}
/* 字幕时间轴折叠区块：默认收起，避免 13 条字幕把音字面板撑到 1997px（可视仅 792px），
   导致下面的描边控件需要滚动 600+ 像素才能看到，用户误以为「值被改回去了」。 */
.vr-subtitle-board-fold{display:block;border:1px solid #2b3238;border-radius:8px;background:#131a1f;margin:8px 0}
.vr-subtitle-board-fold > summary.vr-subtitle-board-head{cursor:pointer;list-style:none;padding:7px 9px;border-radius:8px;user-select:none}
.vr-subtitle-board-fold > summary.vr-subtitle-board-head::-webkit-details-marker{display:none}
.vr-subtitle-board-fold > summary.vr-subtitle-board-head::after{content:'▾';font-size:9px;color:#788b95;margin-left:auto;transition:transform .15s ease}
.vr-subtitle-board-fold:not([open]) > summary.vr-subtitle-board-head::after{transform:rotate(-90deg)}
.vr-subtitle-board-fold > summary.vr-subtitle-board-head:hover{background:#1a2329}
.vr-subtitle-board-fold[open] > summary.vr-subtitle-board-head{border-bottom:1px solid #232b31}
.vr-subtitle-board-fold > .vr-cue-list,
.vr-subtitle-board-fold > .vr-subtitle-board-body{padding:6px 7px}
.vr-shell[data-theme="light"] .vr-subtitle-board-fold{background:var(--l-panel);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-subtitle-board-fold > summary.vr-subtitle-board-head:hover{background:var(--l-inset)}
.vr-shell[data-theme="light"] .vr-subtitle-board-fold[open] > summary.vr-subtitle-board-head{border-bottom-color:var(--l-line)}
.vr-subtitle-board-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.vr-subtitle-board-head b{font-size:11px;color:#6fd5e4}
.vr-subtitle-board-head small{font-size:9px;color:#788b95}
.vr-cue-rows{display:grid;gap:6px;max-height:340px;overflow:auto}
/* 每条字幕一行卡片：序号 + 正文区（时间行 / 多行文字 / 描边与动画工具行），时间与「秒」永不分家 */
.vr-cue-row{display:grid;grid-template-columns:22px minmax(0,1fr);gap:7px;align-items:start;padding:6px 7px;border:1px solid #2d3237;border-radius:6px;background:#191c20}
.vr-cue-row.is-active{border-color:#d9f260;background:rgba(217,242,96,.07)}
.vr-cue-row.is-playing{border-color:#5aa9e6;background:rgba(90,169,230,.09)}
.vr-cue-row.is-active.is-playing{border-color:#d9f260}
.vr-cue-body{display:grid;gap:5px;min-width:0}
.vr-cue-index{height:22px;padding:0;border:1px solid #2d383e;border-radius:11px;background:#22262b;color:#aeb6bb;font-size:9.5px;cursor:pointer}
.vr-cue-row.is-active .vr-cue-index{border-color:#d9f260;color:#d9f260}
.vr-cue-times{display:flex;flex-wrap:wrap;align-items:center;gap:4px}
/* 「秒」跟数字同在一个 label 里、inline 排列，不会被挤到下一行；输入框定宽不溢出 */
.vr-cue-time{display:inline-flex;align-items:center;gap:3px;min-width:0}
.vr-cue-time input{width:58px;min-width:0;height:24px;padding:0 4px;border:1px solid #2d383e;border-radius:4px;background:#0f1214;color:#dfe7ec;font-size:10px;font-variant-numeric:tabular-nums}
.vr-cue-unit{font-size:9px;color:#788b95;white-space:nowrap}
.vr-cue-arrow{font-size:9px;color:#5d6a72}
.vr-cue-duration{font-size:9px;color:#788b95;white-space:nowrap}
/* 字幕正文：多行输入，按回车真换行，随内容自动长高（1~4 行内） */
.vr-cue-text{width:100%;min-width:0;min-height:46px;max-height:96px;padding:5px 7px;border:1px solid #2d383e;border-radius:4px;background:#0f1214;color:#dfe7ec;font-size:10.5px;line-height:1.5;resize:vertical;font-family:inherit}
.vr-cue-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.vr-cue-stroke{display:inline-flex;align-items:center;gap:5px;flex:1 1 150px;min-width:0}
.vr-cue-stroke span{font-size:9px;color:#788b95;white-space:nowrap}
.vr-cue-stroke input[type="range"]{flex:1 1 auto;min-width:56px}
.vr-cue-stroke em{font-size:9px;color:#d9f260;font-style:normal;min-width:12px;text-align:right;font-variant-numeric:tabular-nums}
.vr-cue-animation{min-width:0;flex:1 1 110px;height:26px;padding:0 4px;border:1px solid #2d383e;border-radius:4px;background:#0f1214;color:#dfe7ec;font-size:10px}
.vr-cue-animation option{background:#0f1214;color:#dfe7ec}
/* 主面板里的描边快捷调节：描边是字幕里改得最多的一项 */
.vr-stroke-quick{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:7px;padding:6px 8px;border:1px solid #2d3237;border-radius:6px;background:#191c20}
.vr-stroke-quick label{display:inline-flex;align-items:center;gap:6px;flex:1 1 180px;min-width:0}
.vr-stroke-quick span{font-size:9.5px;color:#9aa6ad;white-space:nowrap}
.vr-stroke-quick input[type="range"]{flex:1 1 auto;min-width:70px}
.vr-stroke-quick em{font-size:9.5px;color:#d9f260;font-style:normal;min-width:14px;text-align:right;font-variant-numeric:tabular-nums}
.vr-stroke-quick input[type="color"]{width:30px;height:24px;padding:0;border:1px solid #2d383e;border-radius:4px;background:#0f1214}
.vr-stroke-quick small{flex:1 1 100%;font-size:9px;color:#788b95;line-height:1.45}
/* 旁白文案：加大、可换行、好编辑 */
.vr-narration-text{width:100%;min-height:112px;min-width:0;padding:8px 9px;border:1px solid #2d383e;border-radius:5px;background:#0f1214;color:#dfe7ec;font-size:11px;line-height:1.65;resize:vertical;font-family:inherit}
.vr-narration-count{font-size:9.5px;color:#788b95;white-space:nowrap;font-variant-numeric:tabular-nums}
@media(max-width:1080px){.vr-cue-row{grid-template-columns:22px minmax(0,1fr)}}

.vr-shell[data-theme="light"] .vr-ai-panel,.vr-shell[data-theme="light"] .vr-subtitle-board{background:var(--l-panel);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-ai-panel-head b,.vr-shell[data-theme="light"] .vr-subtitle-board-head b{color:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-ai-panel-head small,.vr-shell[data-theme="light"] .vr-subtitle-board-head small,.vr-shell[data-theme="light"] .vr-ai-inline small,.vr-shell[data-theme="light"] .vr-cue-times span{color:var(--l-muted)}
.vr-shell[data-theme="light"] .vr-ai-tag,.vr-shell[data-theme="light"] .vr-cue-index{background:var(--l-inset);border-color:var(--l-line2);color:var(--l-text2)}
.vr-shell[data-theme="light"] .vr-ai-tag.is-active,.vr-shell[data-theme="light"] .vr-cue-row.is-active .vr-cue-index{border-color:var(--l-accent);background:var(--l-accent-soft);color:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-ai-extra,.vr-shell[data-theme="light"] .vr-ai-preview,.vr-shell[data-theme="light"] .vr-ai-preview textarea,.vr-shell[data-theme="light"] .vr-cue-times input,.vr-shell[data-theme="light"] .vr-cue-text,.vr-shell[data-theme="light"] .vr-cue-animation,.vr-shell[data-theme="light"] .vr-narration-text{background:var(--l-inset);border-color:var(--l-line2);color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-stroke-quick{background:var(--l-panel);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-stroke-quick span,.vr-shell[data-theme="light"] .vr-stroke-quick small,.vr-shell[data-theme="light"] .vr-cue-unit,.vr-shell[data-theme="light"] .vr-cue-duration,.vr-shell[data-theme="light"] .vr-cue-stroke span,.vr-shell[data-theme="light"] .vr-cue-arrow,.vr-shell[data-theme="light"] .vr-narration-count{color:var(--l-muted)}
.vr-shell[data-theme="light"] .vr-stroke-quick em,.vr-shell[data-theme="light"] .vr-cue-stroke em{color:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-stroke-quick input[type="color"]{background:var(--l-inset);border-color:var(--l-line2)}
.vr-shell[data-theme="light"] .vr-cue-row.is-playing{border-color:var(--l-accent);background:var(--l-accent-soft)}
.vr-shell[data-theme="light"] .vr-cue-animation option{background:var(--l-inset);color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-ai-preview textarea{background:var(--l-panel)}
.vr-shell[data-theme="light"] .vr-ai-preview.is-empty{color:var(--l-muted)}
.vr-shell[data-theme="light"] .vr-cue-row.is-active{border-color:var(--l-accent);background:var(--l-accent-soft)}
.vr-shell[data-theme="light"] .vr-emphasis-notice{color:var(--l-ok)}
.vr-shell[data-theme="light"] .vr-emphasis-notice.is-error{color:var(--l-danger)}

/* ===== 模板库（左侧栏「模板」）：把当前面板设定存下来、一键套用 ===== */
.vr-template-note{display:grid;gap:7px;padding:9px 10px;border:1px solid #2d3237;border-radius:7px;background:#191c20}
.vr-template-note .vr-template-body{display:grid;gap:2px;min-width:0}
.vr-template-note strong{font-size:11.5px;color:#e7eef2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vr-template-note small{font-size:9px;color:#788b95}
.vr-template-note .vr-template-actions{display:flex;gap:6px}
.vr-template-note .vr-template-actions .vr-btn{flex:1 1 0;padding:0 6px;font-size:10px}
.vr-template-save{margin-top:10px;padding:9px 10px;border:1px dashed #344149;border-radius:7px;background:#141a1e;display:grid;gap:7px}
.vr-template-save strong{font-size:11px;color:#d9f260}
.vr-template-preview{margin:0;padding-left:15px;display:grid;gap:2px;list-style:disc}
.vr-template-preview li{font-size:9.5px;line-height:1.5;color:#8b979e}
.vr-emphasis-auto{display:grid;gap:5px}

.vr-shell[data-theme="light"] .vr-template-note,.vr-shell[data-theme="light"] .vr-template-save{background:var(--l-panel);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-template-note strong{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-template-note small,.vr-shell[data-theme="light"] .vr-template-preview li{color:var(--l-muted)}
.vr-shell[data-theme="light"] .vr-template-save{border-style:dashed;border-color:var(--l-line2)}
.vr-shell[data-theme="light"] .vr-template-save strong{color:var(--l-accent)}

/* 逐镜头来源留痕（哪张图 / 哪段视频 + 提示词来源） */
.vr-clip-trace{display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px;align-items:center;padding:8px;margin:0 0 10px;background:var(--vr-inset,#171a1f);border:1px solid var(--vr-line,#2a2f36);border-radius:10px}
.vr-clip-trace-thumb{width:56px;height:56px;border-radius:8px;overflow:hidden;background:#0d0f12;display:flex;align-items:center;justify-content:center}
.vr-clip-trace-thumb img{width:100%;height:100%;object-fit:cover}
.vr-clip-trace-thumb span{font-size:10px;color:var(--vr-muted,#8d9099)}
.vr-clip-trace-body{min-width:0}
.vr-clip-trace-body b{display:block;font-size:12px;color:var(--vr-text,#e8eaed);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vr-clip-trace-body small{display:block;margin-top:3px;font-size:11px;color:var(--vr-muted,#8d9099)}
/* 片段轨道头：合并前按段落显示，合并后可收起 */
.vr-segment-row{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:8px;margin:8px 0 4px}
.vr-segment-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.vr-segment-head small{font-size:11px;color:var(--vr-muted,#8d9099)}
.vr-shell[data-theme="light"] .vr-clip-trace{background:#fbf0f1;border-color:#f2dade}
.vr-shell[data-theme="light"] .vr-clip-trace-thumb{background:#f7e6e8}
.vr-shell[data-theme="light"] .vr-clip-trace-body b{color:#2a2c31}

/* ══════════════════════════════════════════════════════════════════════
   视口高度自适应（实测修复）
   ══════════════════════════════════════════════════════════════════════
   问题：在 1440×820 这类常见笔记本窗口下，底部时间线轨道被裁掉
   （实测 vr-track-subtitle 被切掉 86px、vr-track-row 59px、片段行 27px），
   而 .vr-workspace 是 overflow:hidden，用户【没有任何办法滚到底部】。

   根因：.vr-stage-pane 的网格行是写死的像素下限
     grid-template-rows: 52px minmax(0,1fr) 6px minmax(154px, var(--timeline-pane,190px))
   其中时间线那行下限 154px + 画布行 minmax(0,1fr)，在矮窗口下
   总需求高度超过可用高度 → 底部被 overflow:hidden 裁掉。

   修法：把「时间线行」的下限改成【可压缩】，并把整个轨道区做成
   可纵向滚动（overflow-y:auto）作为兜底 —— 矮窗口下先把时间线压小，
   实在不够时用户还能滚。高窗口下一切照旧（用 min() 保住原来的舒适高度）。
   ══════════════════════════════════════════════════════════════════════ */
/* ── 批量任务进度（与「镜头」面板的任务状态同一套观感）── */
.vr-inspector-tabs button{position:relative}
.vr-inspector-tabs button.is-running{border-color:#3c5a66;color:#9fe6f2}
.vr-tab-badge{position:absolute;top:-5px;right:-4px;min-width:26px;padding:0 4px;height:13px;border-radius:7px;background:#7adbe9;color:#08181c;font-size:8.5px;font-weight:800;font-style:normal;line-height:13px;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.35)}
.vr-shell[data-theme="light"] .vr-inspector-tabs button.is-running{border-color:var(--l-accent);color:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-tab-badge{background:var(--l-accent);color:#fff}
.vr-batch-task-status{display:grid;gap:7px;padding:9px 10px;margin:0 0 8px;border:1px solid var(--line,#27313a);border-radius:8px;background:var(--surface2,#161c22)}
.vr-batch-task-status.is-running{border-color:#3c5a66;background:linear-gradient(180deg,#16242b,#161c22)}
.vr-batch-task-status.is-done{border-color:#2f5a48;background:linear-gradient(180deg,#16271f,#161c22)}
.vr-batch-task-status.is-danger{border-color:#6a3a34;background:linear-gradient(180deg,#2a1b19,#161c22)}
.vr-batch-task-title{display:flex;align-items:center;justify-content:space-between;gap:8px}
.vr-batch-task-title > div:first-child{display:grid;gap:1px;min-width:0}
.vr-batch-task-title b{font-size:10.5px;color:var(--text,#ecf1f4);font-weight:600}
.vr-batch-task-title small{font-size:9px;color:var(--muted,#85929d)}
.vr-batch-task-count{font-size:11px;font-weight:700;color:var(--accent,#7adbe9);padding:1px 7px;border-radius:9px;background:color-mix(in srgb,var(--accent,#7adbe9) 14%,transparent)}
.vr-batch-task-progress{display:flex;align-items:center;gap:7px}
.vr-batch-task-progress progress{flex:1 1 auto;height:7px;min-width:0;border-radius:4px;overflow:hidden;appearance:none;background:#232c33;border:none}
.vr-batch-task-progress progress::-webkit-progress-bar{background:#232c33;border-radius:4px}
.vr-batch-task-progress progress::-webkit-progress-value{background:linear-gradient(90deg,#5fc7d8,#7adbe9);border-radius:4px}
.vr-batch-task-progress b{font-size:11px;color:#7adbe9;font-weight:700;min-width:34px;text-align:right}
.vr-batch-task-phase{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.vr-batch-task-phase b{font-size:10px;color:var(--text-2,#9aa6b2)}
.vr-batch-task-phase span{font-size:9px;color:var(--muted,#85929d)}
.vr-batch-task-empty{font-size:9px;line-height:1.5;color:var(--muted,#85929d)}
.vr-batch-task-steps{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.vr-batch-task-steps li{display:grid;grid-template-columns:18px minmax(0,1fr) 40px auto;align-items:center;gap:7px;padding:4px 6px;border-radius:6px;background:var(--surface3,#1b232b)}
.vr-batch-task-steps li > i{font-style:normal;font-size:11px;text-align:center;color:var(--muted,#85929d)}
.vr-batch-task-steps li.state-completed > i{color:#6ed6ad}
.vr-batch-task-steps li.state-failed > i{color:#ef7d7d}
.vr-batch-task-steps li.state-running > i,.vr-batch-task-steps li.state-queued > i{color:#7adbe9}
.vr-batch-task-steps li > div{display:grid;gap:2px;min-width:0}
.vr-batch-task-steps li b{font-size:10px;color:var(--text,#ecf1f4)}
.vr-batch-task-steps li small{font-size:9px;color:var(--muted,#85929d);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vr-batch-task-steps li em{font-style:normal;font-size:9px;color:#ef7d7d;line-height:1.4}
.vr-batch-task-steps li progress{height:4px;border-radius:2px;appearance:none;background:#232c33;border:none}
.vr-batch-task-steps li progress::-webkit-progress-bar{background:#232c33;border-radius:2px}
.vr-batch-task-steps li progress::-webkit-progress-value{background:#7adbe9;border-radius:2px}
.vr-batch-task-steps li > strong{font-size:10px;color:var(--text-2,#9aa6b2);text-align:right}
.vr-batch-task-steps li > a{font-size:9px;color:#7adbe9;text-decoration:none;white-space:nowrap}
.vr-batch-task-steps li > a:hover{text-decoration:underline}
.vr-shell[data-theme="light"] .vr-batch-task-status{background:var(--l-panel);border-color:var(--l-line)}
.vr-shell[data-theme="light"] .vr-batch-task-status.is-running{background:var(--l-inset);border-color:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-batch-task-status.is-done{background:var(--l-inset);border-color:#9dd6b8}
.vr-shell[data-theme="light"] .vr-batch-task-status.is-danger{background:var(--l-inset);border-color:#e9a99c}
.vr-shell[data-theme="light"] .vr-batch-task-title b{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-batch-task-count{color:var(--l-accent);background:var(--l-accent-soft)}
.vr-shell[data-theme="light"] .vr-batch-task-progress b{color:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-batch-task-progress progress{background:var(--l-inset2)}
.vr-shell[data-theme="light"] .vr-batch-task-progress progress::-webkit-progress-bar{background:var(--l-inset2)}
.vr-shell[data-theme="light"] .vr-batch-task-progress progress::-webkit-progress-value{background:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-batch-task-steps li{background:var(--l-inset)}
.vr-shell[data-theme="light"] .vr-batch-task-steps li b{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-batch-task-steps li > strong{color:var(--l-text2)}
.vr-shell[data-theme="light"] .vr-batch-task-steps li progress{background:var(--l-inset2)}
.vr-shell[data-theme="light"] .vr-batch-task-steps li progress::-webkit-progress-bar{background:var(--l-inset2)}
.vr-shell[data-theme="light"] .vr-batch-task-steps li progress::-webkit-progress-value{background:var(--l-accent)}
.vr-shell[data-theme="light"] .vr-batch-task-steps li > a{color:var(--l-accent)}

/* ── 成片轨道：要与片段轨道等高（原来只有 16px 一条细缝，用户看不清成片内容）──
   片段卡片实测高 137px，所以成片这块也给足同样的高度，能放下缩略视频 + 说明文字。
   用 min-height 跟着片段卡片走，两边始终保持一致。 */
.vr-track-row-merged{display:block}
.vr-track-row-merged .vr-track-row{grid-template-columns:34px minmax(680px,1fr);align-items:stretch;min-height:var(--vr-clip-card-h,132px)}
.vr-track-row-merged .vr-track-lane{height:auto;min-height:var(--vr-clip-card-h,132px);border-top:1px solid #20282d;padding:4px 0 5px;display:block}
.vr-track-item.is-merged{
  position:relative;left:auto;top:auto;height:100%;min-height:var(--vr-clip-card-h,132px);
  display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;
  padding:6px 10px;border-radius:6px;background:#33464d;border:1px solid #4c6972;
  cursor:pointer;transition:border-color .15s ease,background .15s ease;
}
.vr-track-item.is-merged:hover{border-color:#79a8b8;background:#3a5059}
.vr-shell[data-theme="light"] .vr-track-item.is-merged:hover{background:#f4dde1;border-color:var(--l-accent)}
.vr-track-item.is-merged .vr-track-thumb{width:auto;height:100%;max-height:calc(var(--vr-clip-card-h,132px) - 12px);aspect-ratio:9/16;object-fit:cover;border-radius:4px;background:#141b21;flex:0 0 auto}
.vr-track-item.is-merged .vr-track-caption{display:grid;gap:3px;min-width:0}
.vr-track-item.is-merged .vr-track-caption b{font-size:12px;color:#e7eef1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vr-track-item.is-merged .vr-track-caption small{font-size:9.5px;color:#a8bcc4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 还没有成片时：一条占满整宽的提示条，高度同样与片段行一致，不再是细缝 */
.vr-track-row-merged .vr-track-item.is-empty{
  position:relative;left:auto;top:auto;width:100%!important;height:100%;min-height:var(--vr-clip-card-h,132px);min-width:0;
  display:grid;align-content:center;gap:3px;padding:8px 12px;border-radius:6px;
  background:#232c33;border:1px dashed #3c4a54;color:#8b9aa3;
}
.vr-track-row-merged .vr-track-item.is-empty b{font-size:12px;color:#b6c6ce;font-weight:600}
.vr-track-row-merged .vr-track-item.is-empty small{font-size:9.5px;color:#8b9aa3;line-height:1.45}
.vr-shell[data-theme="light"] .vr-track-item.is-merged{background:var(--l-inset);border-color:var(--l-line2)}
.vr-shell[data-theme="light"] .vr-track-item.is-merged .vr-track-caption b{color:var(--l-text)}
.vr-shell[data-theme="light"] .vr-track-item.is-merged .vr-track-caption small{color:var(--l-text2)}
.vr-shell[data-theme="light"] .vr-track-row-merged .vr-track-item.is-empty{background:var(--l-inset);border-color:var(--l-line2)}
.vr-shell[data-theme="light"] .vr-track-row-merged .vr-track-item.is-empty b{color:var(--l-text2)}
.vr-shell[data-theme="light"] .vr-track-row-merged .vr-track-item.is-empty small{color:var(--l-muted)}

/* 时间线行：取「舒适高度」与「视口可分配高度的 40%」中的较小值，不再写死下限。
   成片轨道改成与片段等高后，时间线整体需要更多空间，基线从 190px 提到 250px。 */
.vr-stage-pane {
  grid-template-rows: 52px minmax(0, 1fr) 6px minmax(160px, min(var(--timeline-pane, 250px), 46dvh)) !important;
}
/* 轨道区兜底可滚：矮窗口下仍能看到/摸到最底下的字幕轨。
   ⚠️ 关键：真正装轨道的是 .vr-timeline（里面叠了 标题/字幕/旁白/音乐 四条轨道
   + 标尺，实测内容高 283px 却只有 108px 可视高），它原来是
   `overflow-x:auto; overflow-y:hidden` —— 纵向被【硬裁掉且无法滚动】。
   所以必须把它也放开成可纵向滚动。 */
.vr-timeline-section { overflow: hidden !important; }
/* 画布行允许在矮窗口下收缩（原来 minmax(0,1fr) 已经可以，这里确保不会被内容顶开） */
.vr-canvas-wrap { min-height: 0; }

/* 极矮窗口（< 720px 可视高）：进一步压缩时间线与画布留白，保证信息可见 */
@media (max-height: 760px) {
  .vr-stage-pane { grid-template-rows: 48px minmax(0, 1fr) 6px minmax(104px, 34dvh) !important; }
  .vr-canvas-wrap { padding: 10px 16px; }
  .vr-timeline-section { padding: 6px 12px 8px; }
  .vr-timeline-clip > button { min-height: 84px; }
}
@media (max-height: 660px) {
  .vr-stage-pane { grid-template-rows: 44px minmax(0, 1fr) 6px minmax(92px, 30dvh) !important; }
  .vr-timeline-clip > button { min-height: 74px; }
}
/* 取消 .vr-shell 曾经写死的 min-height（会把内容顶出视口） */
.vr-shell { min-height: 0 !important; }

/* ══ 时间线纵向可滚（真正生效的一条，放在文件最末以确保赢得层叠）══
   实测：.vr-timeline 的子元素合计 272px（标尺18 + 视频轨146 + 标题27 + 字幕27
   + 旁白27 + 音乐27），但只有 108px 可视高。原规则
   `overflow: auto hidden` 是简写，会把 overflow-y 重置成 hidden →
   底部的 字幕/旁白/音乐 三条轨道被裁掉且【无法滚动到】。
   这里用 .vr-shell 前缀提高优先级 + !important，确保覆盖那条简写。 */
.vr-shell .vr-timeline { overflow-x: auto !important; overflow-y: auto !important; overscroll-behavior: contain; }
.vr-shell .vr-timeline-section { overflow: hidden !important; }

/* 矮窗口下给时间线多分一点高度（原来 180px 装不下 272px 的轨道内容，
   现在可滚了，但把可视高度提高能少滚一些），并加一条淡淡的滚动提示。 */
@media (max-height: 900px) {
  .vr-shell .vr-stage-pane { grid-template-rows: 52px minmax(0, 1fr) 6px minmax(150px, min(var(--timeline-pane, 210px), 46dvh)) !important; }
}
@media (max-height: 760px) {
  .vr-shell .vr-stage-pane { grid-template-rows: 48px minmax(0, 1fr) 6px minmax(132px, 42dvh) !important; }
}
/* 视频轨在矮窗口下别太高（它 146px，是挤掉其它轨道的主因） */
@media (max-height: 820px) {
  .vr-shell .vr-track.vr-track-video { max-height: 108px; }
  .vr-shell .vr-track-video .vr-timeline-clip > button { min-height: 92px; }
}

/* ══════════════════════════════════════════════════════════════════════
   中栏空间利用（实测优化 · 修正版）
   ══════════════════════════════════════════════════════════════════════
   实测问题：中栏宽 1082px，画布只有 299px —— 两侧空掉 783px（占 72%）。
   根因（两条叠加）：
     ① .vr-canvas 的宽度被写死成 min(100%, calc((100dvh - 300px) * 9/16))
        —— 拿【视口高度】减固定值换算宽度，而中栏可用高度远小于它，
        于是宽度被过度限制；
     ② 更靠后的 `.vr-preview-stack .vr-canvas`（两个类，优先级更高）
        把高度定成 min(100%, calc(100% - 4px))，我的单类规则赢不了它，
        所以画布既没吃满高度、也没因此变宽。

   修法：用【同等或更高优先级】的选择器，让画布以容器可用高度为准
   （height:100%），宽度交给 aspect-ratio 自动算。
   只在窗口够宽时这么做（>=1180px），窄屏维持原有保守尺寸。
   ══════════════════════════════════════════════════════════════════════ */
@media (min-width: 1180px) {
  .vr-shell .vr-canvas-wrap { padding: 14px 18px; }
  .vr-shell .vr-canvas-wrap .vr-canvas,
  .vr-shell .vr-preview-stack .vr-canvas {
    width: auto !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
  }
  /* 横版 / 方版 / 4:3 / 3:4 同理：尺寸全交给 aspect-ratio */
  .vr-shell .vr-canvas-wrap .vr-canvas[data-aspect="landscape"],
  .vr-shell .vr-preview-stack .vr-canvas[data-aspect="landscape"] {
    width: auto !important;
    height: 100% !important;
  }
  /* 中栏变宽后，预览工具条也跟着放宽，避免按钮挤在窄条里 */
  .vr-shell .vr-preview-stack { padding-left: 0; padding-right: 0; }
}

/* ══════════════════════════════════════════════════════════════════════
   补回 .vr-btn-ghost（实测：CSS 被截断时丢失的规则）
   ══════════════════════════════════════════════════════════════════════
   实测：JS 里用了 13 次 class="vr-btn vr-btn-ghost"，但 video-remix.css
   里【没有任何 .vr-btn-ghost 规则】—— 因为该文件第 1 行曾在 2013 字符处
   被截断（截断点正好落在 `.vr-b...`），把这条以及后面若干规则一起弄丢了。
   结果这 13 个按钮只能继承 .vr-btn 的基础样式，看不出「次要操作」的层级。
   这里按项目既有的视觉语言补回：透明底 + 细描边 + 次要文字色。
   ══════════════════════════════════════════════════════════════════════ */
.vr-btn-ghost {
  background: transparent;
  border-color: rgba(255, 255, 255, .16);
  color: #aeb7be;
}
.vr-btn-ghost:hover:not(:disabled) {
  border-color: rgba(110, 214, 173, .55);
  background: rgba(110, 214, 173, .1);
  color: #d6f3e6;
}
.vr-btn-ghost:disabled { opacity: .38; cursor: not-allowed; }
html[data-vr-theme="light"] .vr-btn-ghost {
  border-color: #eccdd3; background: transparent; color: #5d6167;
}
html[data-vr-theme="light"] .vr-btn-ghost:hover:not(:disabled) {
  border-color: #35a97a; background: #effaf5; color: #1f7a58;
}
