.pipeline-workbench { padding:20px; border:1px solid var(--hair); border-radius:14px; margin-bottom:20px; background:var(--surface); }
.pipeline-workbench h3,.pipeline-batch h4 { margin:0; }.pipeline-batch { padding-top:18px; margin-top:14px; border-top:1px solid var(--hair); }
.pipeline-stages { display:flex; gap:8px; flex-wrap:wrap; margin:16px 0; }.pipeline-stage { padding:8px 12px; border-radius:8px; background:var(--surface-sunken); font-size:12px; }.pipeline-stage.is-completed { color:#268649; }.pipeline-stage.is-waiting_review { color:#a76905; }.pipeline-stage.is-blocked { color:#be3a30; }
.pipeline-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(245px,1fr)); gap:14px; margin:16px 0; }
.pipeline-scene-title { grid-column:1/-1; margin:12px 0 0; font-size:16px; }
.pipeline-clip { padding:14px; border:1px solid var(--hair); border-radius:12px; min-width:0; }.pipeline-clip p { font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.pipeline-player { display:block; width:100%; aspect-ratio:4/3; object-fit:contain; background:#171717; margin:10px 0; }.pipeline-player:fullscreen { width:100%!important; height:100%!important; object-fit:contain!important; }
.pipeline-feedback { color:#a65c17; }.pipeline-feedback-input { width:100%; box-sizing:border-box; min-height:110px; font:inherit; padding:12px; }
.pipeline-scene-pick { display:grid; gap:10px; margin:18px 0; max-height:35vh; overflow:auto; }
@media(max-width:600px){.pipeline-workbench{padding:12px}.pipeline-grid{grid-template-columns:1fr}.pipeline-stages{display:grid;grid-template-columns:1fr 1fr}}

.pipeline-prompt { white-space:pre-wrap; font-size:12px; max-height:260px; overflow:auto; }

.pipeline-batch > .btn { max-width:100%; white-space:normal; height:auto; text-align:left; }
/* Review workspace: summary → scene → unit → current clip. */
.pipeline-workbench {--pipeline-blue:#0766da;--pipeline-ink:#1d2939;--pipeline-muted:#667085;color:var(--pipeline-ink);padding:24px;box-shadow:0 2px 8px #13243a05}
.pipeline-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pipeline-header h3{flex:1;min-width:200px;font-size:21px;letter-spacing:-.4px}.pipeline-header .btn{white-space:nowrap}
.pipeline-batch>.seed-actions h4{font-size:15px}.pipeline-batch>.seed-muted{font-size:12px;margin:7px 0}.pipeline-process{font-size:12px;color:var(--pipeline-muted);margin:12px 0}.pipeline-process summary{cursor:pointer;width:fit-content}
.pipeline-metrics{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid #e6eaf0;border-radius:12px;background:#fafbfd;margin:18px 0;overflow:hidden}.pipeline-metric{display:flex;align-items:baseline;gap:10px;padding:18px 20px;border-right:1px solid #e6eaf0}.pipeline-metric:last-child{border:0}.pipeline-metric strong{font-size:28px;font-weight:650;font-variant-numeric:tabular-nums}.pipeline-metric span{font-size:13px;color:var(--pipeline-muted)}.pipeline-metric.is-review strong{color:#996b08}.pipeline-metric.is-issue strong{color:#c23d35}.pipeline-metric.is-done strong{color:#218150}
.pipeline-scenes{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:20px 0 24px}.pipeline-scene-tab{appearance:none;text-align:left;display:flex;flex-direction:column;gap:9px;padding:16px;border:1px solid #e0e5ec;border-radius:12px;background:white;color:inherit;cursor:pointer;font:inherit;min-width:0}.pipeline-scene-tab strong{font-size:15px}.pipeline-scene-tab>span{font-size:12px;color:var(--pipeline-muted)}.pipeline-scene-tab[aria-pressed=true]{border-color:var(--pipeline-blue);background:#f4f8ff;box-shadow:0 0 0 1px var(--pipeline-blue)}.pipeline-mini-track{display:flex;gap:4px;margin-top:3px}.pipeline-mini-track i{height:4px;flex:1;background:#cad2dd;border-radius:3px}.pipeline-mini-track .is-review{background:#e8b450}.pipeline-mini-track .is-continue,.pipeline-mini-track .is-done{background:#62a585}.pipeline-mini-track .is-issue{background:#d97570}.pipeline-mini-track .is-running{background:#7ba8e4}
.pipeline-scene-title{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.pipeline-scene-title h4{font-size:18px}.pipeline-scene-title p{font-size:12px;margin:6px 0 0;color:var(--pipeline-muted)}.pipeline-scene-title>.btn{flex-shrink:0;white-space:normal;text-align:center}
.pipeline-workspace{display:grid;grid-template-columns:250px minmax(0,1fr);gap:20px;align-items:start}.pipeline-unit-sidebar{min-width:0}.pipeline-filters{display:flex;padding:4px;background:#f0f3f7;border-radius:9px;margin-bottom:10px;gap:3px}.pipeline-filters .btn{flex:1;padding:7px 5px!important;font-size:12px!important;border:0!important;background:transparent!important;color:#667085!important;box-shadow:none!important}.pipeline-filters .btn[aria-pressed=true]{background:white!important;color:#1d2939!important;box-shadow:0 1px 3px #16243a15!important}
.pipeline-unit-row{font:inherit;text-align:left;width:100%;display:block;padding:13px 12px;margin:0 0 7px;background:white;border:1px solid #e6eaf0;border-radius:10px;cursor:pointer;color:inherit}.pipeline-unit-row[aria-pressed=true]{background:#f4f8ff;border-color:#95b8ed;box-shadow:inset 3px 0 0 var(--pipeline-blue)}.pipeline-unit-row>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:8px}.pipeline-unit-row strong{font-size:13px}.pipeline-badge{font-size:11px;padding:3px 7px;border-radius:5px;white-space:nowrap;background:#eef2f7;color:#5b6c82}.pipeline-badge.is-review{background:#fff2d7;color:#986407}.pipeline-badge.is-issue{background:#fff0ee;color:#bb493f}.pipeline-badge.is-continue,.pipeline-badge.is-done{background:#eaf6ef;color:#2b8151}.pipeline-badge.is-running{background:#eaf1fc;color:#3f74b7}
.pipeline-unit-track{display:flex;gap:5px;margin-top:12px}.pipeline-unit-track span{flex:1;font-size:10px;color:#98a2b3;border-top:3px solid #e8ecf2;padding-top:5px;text-align:center}.pipeline-unit-track .is-done{color:#428362;border-color:#72ae8a}.pipeline-unit-track .is-current{color:#3266ad;border-color:#7ca4dd}
.pipeline-inspector{padding:20px;background:white;border-color:#e1e7ef;box-shadow:0 3px 12px #15273e05}.pipeline-clip-tabs{display:flex;gap:5px;border-bottom:1px solid #edf0f5;padding-bottom:12px;margin-bottom:18px}.pipeline-clip-tabs .btn{border:0!important;box-shadow:none!important;background:transparent!important;color:#697586!important;font-size:12px!important}.pipeline-clip-tabs .btn[aria-pressed=true]{background:#eef4ff!important;color:#1761c7!important}.pipeline-inspector>strong{font-size:17px}.pipeline-inspector>.seed-muted{margin:6px 0 14px}.pipeline-player{max-height:470px;border-radius:10px}.pipeline-media-empty{aspect-ratio:4/3;max-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#f2f5f9;border:1px dashed #cdd6e2;border-radius:10px;margin:16px 0;color:#8995a6}.pipeline-media-empty strong{font-size:19px;font-weight:500}.pipeline-media-empty span{font-size:12px}.pipeline-prompt-details{font-size:12px;color:#667085;cursor:pointer;padding:12px 0;border-top:1px solid #edf0f5}.pipeline-review-actions{padding-top:14px;border-top:1px solid #edf0f5;display:flex;gap:8px;flex-wrap:wrap}.pipeline-review-actions .btn-primary{min-width:120px}.pipeline-review-hint{color:#667085;font-size:12px!important;margin-bottom:0}.pipeline-empty{padding:60px 24px;text-align:center;color:#7a8799;background:#f8fafc;border-radius:12px}
.pipeline-workbench button:focus-visible{outline:3px solid #81b5ff;outline-offset:3px}
@media(max-width:850px){.pipeline-workspace{grid-template-columns:210px minmax(0,1fr)}.pipeline-metric{padding:15px 12px;gap:7px}.pipeline-metric strong{font-size:23px}.pipeline-metric span{font-size:11px}.pipeline-inspector{padding:14px}}
@media(max-width:600px){.pipeline-workbench{padding:14px}.pipeline-metrics{grid-template-columns:repeat(2,1fr)}.pipeline-metric{border-bottom:1px solid #e6eaf0}.pipeline-scenes{display:flex;overflow-x:auto;padding:2px 2px 6px}.pipeline-scene-tab{min-width:205px;flex:0 0 205px}.pipeline-workspace{grid-template-columns:minmax(0,1fr)}.pipeline-unit-sidebar{display:flex;gap:7px;flex-wrap:wrap}.pipeline-filters{width:100%}.pipeline-unit-row{width:calc(50% - 4px);margin:0}.pipeline-unit-track span{font-size:9px}.pipeline-scene-title{align-items:stretch;flex-direction:column;gap:12px}.pipeline-scene-title>.btn{width:100%}.pipeline-header h3{font-size:18px;min-width:100%}.pipeline-header{gap:8px}.pipeline-inspector{padding:14px}}

.pipeline-media-empty{width:100%;height:clamp(220px,28vw,340px);aspect-ratio:auto;box-sizing:border-box}.pipeline-metric.is-continue strong{color:#287959}
.pipeline-existing-assets{margin-top:24px;border-top:1px solid var(--hair);padding-top:18px}.pipeline-existing-assets>summary{cursor:pointer;font-weight:600;padding:12px 0}.pipeline-existing-assets .scene-card{margin-top:12px}
.pipeline-plan{padding:18px 0}.pipeline-plan>p{line-height:1.7;color:#526075}.pipeline-plan-row{display:flex;align-items:baseline;gap:12px;padding:15px 0;border-top:1px solid #edf0f5}.pipeline-plan-row input{width:17px;height:17px;flex-shrink:0}.pipeline-plan-row details{flex:1;min-width:0}.pipeline-plan-row summary{cursor:pointer;font-size:14px;font-weight:550;line-height:1.6}.pipeline-plan-row p{font-size:13px;line-height:1.7;white-space:pre-wrap}.pipeline-plan>.btn{margin:16px 0}.pipeline-badge.is-planned{color:#7a8594;background:#f0f2f5}.pipeline-unit-track{flex-wrap:wrap}.pipeline-clip-tabs{flex-wrap:wrap}

/* One project inventory; batches only appear in generation history. */
.pipeline-overview-summary{display:flex;flex-direction:column;gap:8px;margin:24px 0 16px}.pipeline-overview-summary strong{font-size:18px}
.pipeline-workbench .pipeline-metrics{grid-template-columns:repeat(6,minmax(0,1fr));border:0;background:transparent;gap:8px}
.pipeline-workbench .pipeline-metric{font:inherit;cursor:pointer;text-align:left;border:1px solid #e5e9f0;border-radius:12px;background:#f8fafc;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:16px}
.pipeline-metric[aria-pressed=true]{box-shadow:inset 0 0 0 2px #2874dc;background:#f1f6ff}.pipeline-metric strong{font-size:26px}
.pipeline-review-queue{display:flex;gap:8px;flex-wrap:wrap;padding:16px;background:#f7f9fc;border:1px solid #e2e8f0;border-radius:12px;margin:14px 0;max-height:210px;overflow:auto}.pipeline-review-queue>strong{width:100%;font-size:13px}.pipeline-review-queue .btn{white-space:normal;text-align:left}
.pipeline-scene-trash{margin-top:8px;font-size:12px;padding:4px 8px;border-radius:6px;border:.5px solid var(--hair,#e5e7eb);background:transparent;color:var(--text-2,#666);cursor:pointer;width:100%}.pipeline-scene-trash:hover{color:#c62828;border-color:#c62828}.pipeline-workbench .scene-trash{margin:4px 0 14px}.pipeline-scene-thumb-wrap{position:relative;height:94px;display:flex;justify-content:center;background:var(--panel-2,#f3f4f6);border-radius:7px;overflow:hidden}.pipeline-scene-thumb{height:94px;width:auto;max-width:100%;object-fit:cover;border-radius:7px}.pipeline-ratio-badge{position:absolute;right:6px;bottom:6px;font-size:10px;line-height:16px;padding:0 6px;border-radius:4px;background:rgba(0,0,0,.6);color:#fff}.pipeline-ratio-badge:empty{display:none}.pipeline-workbench .pipeline-scenes{grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:12px}.pipeline-scene-tab{padding:12px;overflow:hidden}
.pipeline-asset-title{font-size:12px;line-height:1.6;color:#526075;margin:9px 0 5px;overflow-wrap:anywhere}.pipeline-unit-row>.seed-muted{font-size:11px}
.pipeline-asset-writing{padding:18px 20px;margin-bottom:12px;border-radius:12px;background:#f7f9fc;border:1px solid #e7ecf2}.pipeline-asset-writing h4{margin:0;font-size:16px}.pipeline-asset-writing p{font-size:13px;line-height:1.7;white-space:pre-wrap}
.pipeline-group-plan{border:1px solid #e4e9f0;border-radius:10px;margin:16px 0;padding:14px}.pipeline-group-plan>summary{cursor:pointer;font-size:13px;font-weight:600}.pipeline-workspace .pipeline-unit-sidebar{max-height:850px;overflow:auto;padding:2px}
@media(max-width:850px){.pipeline-workbench .pipeline-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.pipeline-workbench .pipeline-metric{padding:12px}.pipeline-workspace .pipeline-unit-sidebar{max-height:650px}}
@media(max-width:600px){.pipeline-overview-summary strong{font-size:15px}.pipeline-workbench .pipeline-scenes{display:flex}.pipeline-workbench .pipeline-scene-tab{min-width:160px;flex-basis:160px}.pipeline-workspace .pipeline-unit-sidebar{max-height:320px}.pipeline-workbench .pipeline-metric{padding:10px}.pipeline-workbench .pipeline-metric strong{font-size:22px}.pipeline-asset-writing{padding:14px}}

.pipeline-special{color:#854d0e;background:#fef3c7;border-left:3px solid #d97706;padding:8px 12px;border-radius:6px;font-weight:600;white-space:pre-wrap}
.pipeline-badge.is-discarded{background:#e5e7eb;color:#4b5563}
.pipeline-metric.is-special strong{color:#a16207}
/* 播放速度在播放器右上角（video-playback.js 给每个 video 套一层框） */
.studio-video-frame{display:block;position:relative;margin:10px 0}
.studio-video-frame>video{display:block;margin-top:0!important;margin-bottom:0!important}
.wb-review-body .studio-video-frame,.library-stage .studio-video-frame{margin:0}
.library-stage .studio-video-frame{margin-top:10px}
.studio-playback-speed{position:absolute;top:8px;right:8px;z-index:2;margin:0;display:flex;align-items:center;opacity:.85}
.studio-video-frame:hover .studio-playback-speed,.studio-playback-speed:focus-within{opacity:1}
.studio-playback-speed select{padding:2px 6px;border:0;border-radius:6px;background:rgba(15,20,25,.62);color:#fff;font-size:12px;cursor:pointer}
.pipeline-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-top:16px}
.pipeline-library-card{padding:18px;border:1px solid #e0e6ee;border-radius:16px;background:white;min-width:0}
.pipeline-library-card .pipeline-player{width:100%;max-height:360px;object-fit:contain;background:#101112}
.pipeline-library-card h4{margin:10px 0}
@media(max-width:420px){.pipeline-library-grid{grid-template-columns:1fr}}

.pipeline-stage{display:flex;align-items:center;gap:9px;font-weight:600;color:#245eaa}
.pipeline-stage.is-active::before{content:"";width:14px;height:14px;border:2px solid #c5d7ef;border-top-color:#2563eb;border-radius:50%;animation:clip-spin .8s linear infinite;flex-shrink:0}
@keyframes clip-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.pipeline-stage.is-active::before{animation:none}}
.pipeline-library-card{position:relative}
.pipeline-library-card:has(.enhance-check){padding-top:42px}
.pipeline-library-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}

.pipeline-unit-track .is-review{color:#986407;border-color:#e8b450}.pipeline-unit-track .is-issue{color:#bb493f;border-color:#d97570}.pipeline-unit-track small{display:block;margin-top:3px;font-size:9px;line-height:1.3}
/* Execution/review colours are separate from the selected tab's blue outline. */
.pipeline-unit-track .tone-success{color:#428362;border-color:#72ae8a}
.pipeline-unit-track .tone-review{color:#986407;border-color:#e8b450}
.pipeline-unit-track .tone-danger{color:#bb493f;border-color:#d97570}
.pipeline-unit-track .tone-active{color:#74519b;border-color:#a38aba}
.pipeline-unit-summary{border:1px solid #dce4ef;border-radius:10px;padding:14px;margin:12px 0 20px;background:#f7f9fc}
.pipeline-unit-summary .btn{margin:4px 8px 0 0}
.pipeline-badge{white-space:normal;max-width:70%;line-height:1.5}

.pipeline-library-scene{margin-top:28px;border:1px solid #dce3ed;border-radius:18px;overflow:hidden;background:#fff}
.pipeline-library-scene-header{padding:20px 24px;background:#edf3fb;border-bottom:1px solid #dce3ed}
.pipeline-library-scene-header h3{margin:0 0 8px;font-size:20px;color:#18283f}
.pipeline-library-counts{margin:0;color:#405572;font-weight:600}
.pipeline-library-type{padding:20px 24px}
.pipeline-library-type+.pipeline-library-type{border-top:1px solid #e5eaf1}
.pipeline-library-type-title{margin:0;font-size:16px;color:#263b56}
.pipeline-library-empty{margin:0;padding:14px 0;color:#68768a}
.pipeline-library-scene .pipeline-library-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));margin-top:14px}
.pipeline-library-scene .enhance-tabs{display:flex;flex-wrap:wrap;gap:6px}
@media(max-width:600px){.pipeline-library-scene-header,.pipeline-library-type{padding:16px}}
.pipeline-scene-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.pipeline-scene-actions .pipeline-scene-trash{margin-top:0;flex:1 1 auto;width:auto;white-space:nowrap}.pipeline-scene-name{display:flex;align-items:center;gap:10px;min-width:0}
.pipeline-library-scene-header .pipeline-library-enhance{margin-top:10px}
/* 成品库：场景可折叠 · 一个场景一个视频窗口 · 成片一行一条 */
.pipeline-library-scene{margin-top:14px;border-radius:14px}
.pipeline-library-scene-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 18px;background:#f5f8fc}
.pipeline-library-scene:not(.is-open) .pipeline-library-scene-header{border-bottom:0}
.library-toggle{display:flex;align-items:center;gap:10px;flex:1;min-width:0;background:none;border:0;padding:4px 0;cursor:pointer;text-align:left;font:inherit;color:inherit}
.library-caret{width:16px;color:#41526a;font-size:18px;line-height:1}
.library-scene-name{font-size:17px;color:#18283f}
.library-toggle .pipeline-library-counts{font-weight:500;font-size:13px;color:#5b6b80}
.library-scene-tools{display:flex;gap:8px;flex-wrap:wrap}
.pipeline-library-scene-header .pipeline-library-enhance{margin-top:0}
.library-scene-body{padding:16px 18px 6px}
.library-stage{max-width:640px;margin:0 auto 6px;padding:12px;border:1px solid #e3e8ef;border-radius:12px;background:#fafbfd}
.library-stage-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:14px}
.library-stage .pipeline-player{margin:10px 0 0;max-height:420px}
.library-scene-body .pipeline-library-type{padding:14px 0}
.library-scene-body .pipeline-library-type-title{font-size:14px;color:#41526a;margin-bottom:6px}
.library-rows{display:flex;flex-direction:column}
.library-row{display:grid;grid-template-columns:auto 28px minmax(120px,1fr) 44px 150px 320px;align-items:center;gap:10px;padding:8px 10px;border:0;border-radius:8px;border-bottom:1px solid #eef1f5}
.library-row:not(:has(.enhance-check)){grid-template-columns:28px minmax(120px,1fr) 44px 150px 320px}
.pipeline-library-card.library-row:has(.enhance-check){padding-top:8px}
.library-row .enhance-check{position:static}
.library-row:hover{background:#f6f8fb}
.library-row.is-playing{background:#eef4ff}
.library-no{font-variant-numeric:tabular-nums;color:#6b778a;font-size:13px}
.library-title{font-size:14px;color:#1d2a3c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.library-dur{font-size:13px;color:#5b6b80;font-variant-numeric:tabular-nums}
.library-tags{display:flex;gap:6px;flex-wrap:wrap}
.library-tag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;line-height:20px;background:#eef1f5;color:#4a5668;white-space:nowrap}
.library-tag.is-ok{background:#e8f6ec;color:#1d7a3a}
.library-tag.is-bad{background:#fdecec;color:#c01a1a;font-weight:600}
.library-tag.is-hd{background:#e9f1ff;color:#1761c7}
.library-tag.is-busy{background:#fff4e0;color:#a35a00}
.library-tag.is-special{margin-left:6px;background:#f4ecfb;color:#7a3aa8}
.library-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end}
.library-actions .btn{white-space:nowrap}
.library-more{position:relative}
.library-more>summary{list-style:none;cursor:pointer;min-width:34px;text-align:center}
.library-more>summary::-webkit-details-marker{display:none}
.library-more-pop{position:fixed;left:0;top:0;z-index:1000;display:flex;flex-direction:column;gap:4px;min-width:190px;padding:6px;background:#fff;border:1px solid #dfe5ee;border-radius:10px;box-shadow:0 8px 24px #15273e1f}
.library-more-pop .btn{justify-content:flex-start;text-align:left;border:0!important;box-shadow:none!important}
@media(max-width:720px){.library-row,.library-row:not(:has(.enhance-check)){grid-template-columns:28px 1fr auto}.library-dur,.library-tags{grid-column:2}.library-actions{grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap}}
/* 场景一行两个（芦嘉怡 10/22 11:40）：场景卡两两并排，折叠的也一样；卡变窄后成片行把按钮挪到第二行。 */
.library-scene-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;margin-top:14px}
.library-scene-grid .pipeline-library-scene{margin-top:0;container-type:inline-size;min-width:0}
@media(max-width:1000px){.library-scene-grid{grid-template-columns:minmax(0,1fr)}}
.library-scene-grid .pipeline-library-scene-header{padding:10px 14px}
.library-scene-grid .library-scene-body{padding:14px 14px 4px}
@container (max-width:860px){
 .library-row,.library-row:not(:has(.enhance-check)){grid-template-columns:28px minmax(0,1fr) 40px auto;grid-template-areas:"no title dur tags" ". actions actions actions";row-gap:6px}
 .library-row:has(.enhance-check){grid-template-columns:auto 28px minmax(0,1fr) 40px auto;grid-template-areas:"check no title dur tags" ". . actions actions actions"}
 .library-row .enhance-check{grid-area:check}
 .library-no{grid-area:no}.library-title{grid-area:title}.library-dur{grid-area:dur}.library-tags{grid-area:tags;flex-wrap:nowrap}
 .library-actions{grid-area:actions;justify-content:flex-start;flex-wrap:wrap}
}
.library-scene-grid .library-scene-name{white-space:nowrap}
.library-stage-open{margin-top:8px}
.library-more-pop .enhance-action{justify-content:flex-start}
.library-more-pop:not([data-placed]){visibility:hidden}
.library-more-pop .library-reopen{color:#b42318!important}
.library-actions .library-enhanced{opacity:1;color:#1761c7;background:#eef4ff;border-color:#d6e4ff;cursor:default}
/* ── 制作中：故事板 + 逐条审阅（芦嘉怡 10/23）。场景卡、标题行、成片行和成品库共用同一套样式。── */
.making-overview{display:flex;flex-direction:column;gap:10px;margin:12px 0 4px;padding:14px 16px;border:1px solid #dce3ed;border-radius:14px;background:#fff}
.making-ov-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.making-ov-row>strong{font-size:15px;color:#18283f}
.making-tag{border:1px solid #dde3ec;background:#f6f8fb;color:#41526a;border-radius:999px;padding:3px 11px;font-size:13px;line-height:20px;cursor:pointer}
.making-tag[aria-pressed=true]{background:#1d2a3c;border-color:#1d2a3c;color:#fff}
.making-tag.is-review:not([aria-pressed=true]){background:#fff6e6;border-color:#f3d9a6;color:#8a5a00}
.making-tag.is-issue:not([aria-pressed=true]){background:#fdecec;border-color:#f5c2c2;color:#b42318}
.making-tag.is-continue:not([aria-pressed=true]){background:#e8f6ec;border-color:#bfe3c9;color:#1d7a3a}
.making-tag.is-running:not([aria-pressed=true]){background:#e9f1ff;border-color:#c9dbfb;color:#1761c7}
.making-tag.is-stopped:not([aria-pressed=true]),.making-tag.is-discarded:not([aria-pressed=true]){background:#f1f2f4;color:#6b7280}
.making-tag.is-special:not([aria-pressed=true]){background:#f4ecfb;border-color:#e2d0f2;color:#7a3aa8}
.making-scene-cards{align-items:stretch;flex-wrap:nowrap}
.making-cards{display:flex;gap:8px;overflow-x:auto;flex:1;min-width:0;padding-bottom:2px;contain:inline-size}
.making-card{display:flex;align-items:center;gap:8px;flex:0 0 auto;width:230px;padding:6px 6px 6px 6px;border:1px solid #e3e8ef;border-radius:10px;background:#fafbfd;cursor:pointer}
.making-card:hover{border-color:#b9c7da}
.making-card-thumb{width:56px;height:42px;object-fit:cover;border-radius:6px;flex:none;background:#e9edf2}
.making-card-text{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}
.making-card-text strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.making-review-start{flex:none;align-self:center;white-space:nowrap}
.making-progress{display:inline-flex;height:6px;min-width:80px;width:100%;max-width:220px;border-radius:999px;overflow:hidden;background:#eef1f5}
.library-toggle .making-progress{width:160px;flex:none}
.making-progress i{display:block;flex-basis:0;min-width:3px}
.making-progress .is-done{background:#34a853}.making-progress .is-continue{background:#7ccf93}.making-progress .is-review{background:#f2b33d}
.making-progress .is-running{background:#5b9cf5}.making-progress .is-waiting{background:#c9d1dc}.making-progress .is-issue{background:#e5484d}
.making-progress .is-stopped,.making-progress .is-other{background:#d9dce1}
.making-scene .library-scene-tools{align-items:center}
/* 成片行：编号 · 标题 · 秒数 ｜ 段块 ｜ 下一步 ｜ ⋯ */
.library-row.making-row,.library-row.making-row:not(:has(.enhance-check)){grid-template-columns:28px minmax(140px,1fr) 44px minmax(220px,auto) 150px 36px;cursor:pointer}
.making-row.is-stopped{opacity:.6;filter:grayscale(1)}
.making-segs{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.making-seg{border:1px solid transparent;border-radius:6px;padding:2px 8px;font-size:12px;line-height:18px;cursor:pointer;background:#eef1f5;color:#4a5668;white-space:nowrap}
.making-seg:hover{border-color:#9fb0c6}
.making-seg.is-done{background:#e8f6ec;color:#1d7a3a}.making-seg.is-review{background:#fff4dc;color:#8a5a00}
.making-seg.is-running{background:#e9f1ff;color:#1761c7}.making-seg.is-issue{background:#fdecec;color:#c01a1a}
.making-seg.is-discarded{background:#f1f2f4;color:#8a8f98;text-decoration:line-through}
.making-seg-arrow{color:#a3adbb;font-size:11px}
.making-next{display:flex;justify-content:flex-end}
.making-next .btn{white-space:nowrap}
.making-state{font-size:12px;color:#5b6b80;white-space:nowrap}
.making-state.is-running{color:#1761c7}.making-state.is-discarded,.making-state.is-stopped{color:#8a8f98}
.making-stopped{margin:6px 0 10px;border-top:1px dashed #dfe4ea;padding-top:8px}
.making-stopped>summary{cursor:pointer;color:#6b7280;font-size:13px;padding:4px 0;list-style:none}
.making-stopped>summary::-webkit-details-marker{display:none}
.making-stopped>summary::after{content:' ▸'}.making-stopped[open]>summary::after{content:' ▾'}
@container (max-width:860px){.library-row.making-row,.library-row.making-row:not(:has(.enhance-check)){grid-template-columns:28px minmax(0,1fr) 40px auto;grid-template-areas:"no title dur more" ". segs segs segs" ". next next next"}.making-row .making-segs{grid-area:segs}.making-row .making-next{grid-area:next;justify-content:flex-start}.making-row .library-more{grid-area:more}}
@media(max-width:720px){.library-row.making-row,.library-row.making-row:not(:has(.enhance-check)){grid-template-columns:28px minmax(0,1fr) 40px auto;grid-template-areas:"no title dur more" ". segs segs segs" ". next next next"}.making-row .making-segs{grid-area:segs}.making-row .making-next{grid-area:next;justify-content:flex-start}.making-row .library-more{grid-area:more}}
/* 右侧抽屉（成片 / 整组方案） */
.wb-drawer{position:fixed;top:0;right:0;bottom:0;width:min(45vw,760px);min-width:min(100vw,420px);z-index:900;display:flex;flex-direction:column;background:#fff;border-left:1px solid #dfe5ee;box-shadow:-12px 0 32px #15273e24;animation:wb-slide .18s ease-out}
@keyframes wb-slide{from{transform:translateX(24px);opacity:.4}to{transform:none;opacity:1}}
.wb-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid #edf0f5}
.wb-drawer-titles{display:flex;flex-direction:column;gap:3px;min-width:0}.wb-drawer-titles h3{margin:0;font-size:16px}
.wb-drawer-body{flex:1;overflow:auto;padding:14px 18px 40px}
.wb-drawer-body .pipeline-inspector{padding:14px;margin-bottom:12px}
@media(max-width:720px){.wb-drawer{width:100vw;min-width:0}}
/* 逐条审阅（全屏） */
.wb-review{position:fixed;inset:0;z-index:1500;display:flex;flex-direction:column;background:#0f1419;color:#e8edf3}
.wb-review-head{display:flex;align-items:center;gap:14px;padding:12px 20px;border-bottom:1px solid #26303b}
.wb-review-head .wb-review-progress{margin-left:auto;font-variant-numeric:tabular-nums;color:#aab6c5}
.wb-review-body{flex:1;overflow:auto;display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 20px 40px}
.wb-review-body>*{width:min(100%,980px)}
.wb-review-where{margin:0;font-size:15px;color:#cfd8e3}
.wb-review-player{max-height:62vh!important;background:#000;border-radius:10px;margin:0}
.wb-review-body .pipeline-special,.wb-review-body p{color:#cfd8e3}
.wb-review-body .pipeline-prompt-details{color:#aab6c5;border-top-color:#26303b}
.wb-review-body .pipeline-prompt{color:#e8edf3;background:#18202a}
.wb-review-actions{display:flex;gap:10px;flex-wrap:wrap}
.wb-review-actions .btn{min-width:110px}
.wb-review-reject{display:flex;flex-direction:column;gap:8px}
.wb-review-reject textarea{min-height:90px;background:#18202a;color:#e8edf3;border:1px solid #33404f;border-radius:8px;padding:8px}
.wb-review-reject{flex-direction:row;flex-wrap:wrap;align-items:flex-start}.wb-review-reject textarea{flex:1 1 100%}
.wb-review-done{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:18vh}
.wb-review-done h2{margin:0;font-size:28px}
/* 回收站：自己一块，和「旧版视频素材」分开（芦嘉怡 10/23 15:30） */
.pipeline-workbench .scene-trash{margin:18px 0 6px;padding:10px 14px;border:1px dashed #d5dbe3;border-radius:12px;background:#fafbfc}
.scene-trash>summary{cursor:pointer;display:flex;align-items:baseline;gap:10px;list-style:none}
.scene-trash>summary::-webkit-details-marker{display:none}
.scene-trash>summary::before{content:'🗑';font-size:13px}
.scene-trash-title{font-weight:600;color:#41526a}
.scene-trash-hint{font-size:12px;color:#7a8799}
.pipeline-existing-assets>summary{color:#41526a}
/* ── 制作中第三轮（芦嘉怡 10/23 16:02）：状态文字、缩略图、大屏审阅页 ── */
.making-status{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.making-status .is-total{color:#41526a;font-weight:600}.making-status .is-ok{color:#1d7a3a}.making-status .is-review{color:#a86a00}
.making-status .is-issue{color:#c01a1a}.making-status .is-waiting{color:#8a8f98}.making-status-dot{color:#b8c0cc}
.making-scene-thumb{flex:none;width:160px;height:90px;border-radius:8px;overflow:hidden;background:#e9edf2;display:block}
.making-scene-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.making-card{width:auto;max-width:380px;gap:10px;padding:6px}
.making-card .making-card-text{min-width:120px}
.making-scene-head{display:flex;flex-direction:column;gap:6px;min-width:0}
.making-scene .library-toggle{gap:12px}
.making-thumb{display:block;width:80px;height:45px;border-radius:6px;overflow:hidden;background:#e9edf2}
.making-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.library-row.making-row,.library-row.making-row:not(:has(.enhance-check)){grid-template-columns:80px 24px minmax(140px,1fr) 40px auto 150px 36px;padding:8px 10px}
.making-seg{display:flex;flex-direction:column;align-items:center;gap:3px;padding:0;border:0;background:none;cursor:pointer}
.making-seg-pic{position:relative;display:block;width:64px;height:36px;border-radius:5px;overflow:hidden;background:#e3e7ed;border:2px solid transparent}
.making-seg-pic img,.making-seg-pic video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.making-seg-name{position:absolute;left:3px;bottom:2px;z-index:1;font-size:10px;line-height:12px;padding:0 3px;border-radius:3px;background:rgba(15,20,25,.6);color:#fff}
.making-seg-state{font-size:11px;line-height:14px;color:#6b7280;white-space:nowrap}
.making-seg.is-done .making-seg-pic{border-color:#7ccf93}.making-seg.is-done .making-seg-state{color:#1d7a3a}
.making-seg.is-review .making-seg-pic{border-color:#f2b33d}.making-seg.is-review .making-seg-state{color:#a86a00}
.making-seg.is-issue .making-seg-pic{border-color:#e5484d}.making-seg.is-issue .making-seg-state{color:#c01a1a}
.making-seg.is-running .making-seg-state{color:#1761c7}
.making-seg.is-discarded .making-seg-pic{opacity:.5}.making-seg.is-discarded .making-seg-state{color:#8a8f98;text-decoration:line-through}
.making-seg:hover .making-seg-pic{border-color:#5b6b80}
.making-segs{gap:6px;flex-wrap:nowrap}
@container (max-width:860px){.library-row.making-row,.library-row.making-row:not(:has(.enhance-check)){grid-template-columns:80px minmax(0,1fr) 40px auto;grid-template-areas:"thumb title dur more" "thumb segs segs segs" ". next next next"}.making-row .making-thumb{grid-area:thumb}.making-row .library-no{display:none}}
/* 大屏审阅页 */
.wb-detail{position:fixed;inset:0;z-index:950;background:rgba(15,20,25,.45);display:flex;align-items:stretch;justify-content:center;padding:18px}
.wb-detail-panel{flex:1;max-width:1680px;display:flex;flex-direction:column;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 20px 60px #0004}
.wb-detail-bar{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid #edf0f5;flex:none}
.wb-detail-crumbs{color:#6b7787;font-size:13px;white-space:nowrap}
.wb-detail-title{font-size:16px;color:#18283f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.wb-detail-spacer{flex:1}
.wb-detail-progress{font-size:13px;color:#41526a;font-variant-numeric:tabular-nums;white-space:nowrap}
.wb-detail-main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,65fr) minmax(320px,35fr)}
.wb-detail-left{min-width:0;overflow:auto;padding:14px 16px;background:#0f1419;display:flex;flex-direction:column;gap:12px}
.wb-detail-stage .studio-video-frame{margin:0}
.wb-detail-player,.wb-detail-still{width:100%;max-height:calc(100vh - 340px)!important;object-fit:contain;background:#000;border-radius:10px;display:block}
.wb-detail-caption{margin:6px 0 0;color:#aab6c5;font-size:12px}
.wb-detail-empty{aspect-ratio:16/9;max-height:calc(100vh - 340px);display:flex;align-items:center;justify-content:center;color:#aab6c5;border:1px dashed #33404f;border-radius:10px}
.wb-film{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.wb-film-head{flex:1 1 100%;color:#aab6c5;font-size:12px}
.wb-film-row{display:flex;gap:8px;flex-wrap:wrap}
.wb-film-cell{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:4px;border-radius:8px;border:2px solid transparent;background:#18202a;color:#e8edf3;cursor:pointer;font:inherit}
.wb-film-cell.is-current{border-color:#5b9cf5}
.wb-film-pic{display:block;width:128px;height:72px;border-radius:5px;overflow:hidden;background:#26303b}
.wb-film-pic img{width:100%;height:100%;object-fit:cover;display:block}
.wb-film-name{font-size:12px;font-weight:600}
.wb-film-state{font-size:11px;color:#aab6c5}
.wb-film-cell.is-done .wb-film-state{color:#7ccf93}.wb-film-cell.is-review .wb-film-state{color:#f2c46d}.wb-film-cell.is-issue .wb-film-state{color:#ff8a8a}.wb-film-cell.is-running .wb-film-state{color:#8db8ff}
.wb-film-all{margin-left:auto;align-self:center}
.wb-detail-right{min-width:0;display:flex;flex-direction:column;border-left:1px solid #edf0f5}
.wb-detail-tabs{display:flex;gap:4px;padding:8px 12px 0;border-bottom:1px solid #edf0f5;flex:none}
.wb-detail-tab{border:0;background:none;padding:8px 12px;font:inherit;font-size:14px;color:#6b7787;border-bottom:2px solid transparent;cursor:pointer}
.wb-detail-tab[aria-pressed=true]{color:#1761c7;border-bottom-color:#1761c7;font-weight:600}
.wb-detail-body{flex:1;overflow:auto;padding:14px 16px 30px}
.wb-detail-body .pipeline-inspector{padding:12px;margin-bottom:12px}
.wb-review-line{margin:0 0 10px;font-weight:600;color:#18283f}
.wb-tab-review .wb-review-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.wb-tab-review .wb-review-actions .btn{min-width:96px}
.wb-feedback-row{display:flex;gap:8px;align-items:flex-start;margin-bottom:10px}
.wb-feedback{flex:1;min-height:64px;margin:0}
.wb-tab-plan h4{margin:12px 0 6px;font-size:13px;color:#41526a}
.wb-tab-prompt .pipeline-prompt{white-space:pre-wrap;max-height:none}
.wb-detail .wb-review-done{margin-top:16vh;color:#18283f}
@media(max-width:900px){.wb-detail{padding:0}.wb-detail-main{grid-template-columns:1fr;overflow:auto}.wb-detail-left,.wb-detail-right{overflow:visible}}
.making-segs .making-seg{background:none;text-decoration:none;color:inherit}
/* ── 制作中第四轮（芦嘉怡 10/23 16:46）：左列表 55% + 右常驻工作区 45%（sticky，内部滚动）；<1000 上下排（iPad 横屏 1180 / 1366 仍左右两栏） ── */
.making-layout{display:grid;grid-template-columns:minmax(0,55fr) minmax(0,45fr);gap:16px;align-items:start;margin-top:10px}
.making-left{min-width:0}
.making-work{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;border:1px solid #dce3ed;border-radius:14px;background:#fff;box-shadow:0 4px 18px #15273e0d}
@media(max-width:999px){.making-layout{grid-template-columns:minmax(0,1fr)}.making-work{position:static;max-height:none}}
.making-left .making-overview{margin-top:0}
.making-left .making-ov-row>strong{font-size:14px}
.making-filmed{font-size:12px;cursor:help}
/* 场景 */
.making-scene{margin-top:12px;border:1px solid #dce3ed;border-radius:14px;background:#fff;overflow:hidden}
.making-scene-header{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#f5f8fc;border-bottom:1px solid #e3e9f1}
.making-scene:not(.is-open) .making-scene-header{border-bottom:0}
.making-scene-toggle{display:flex;align-items:center;gap:10px;flex:1;min-width:0;background:none;border:0;padding:0;cursor:pointer;text-align:left;font:inherit;color:inherit}
.making-scene .making-scene-thumb{width:120px;height:68px;border-radius:7px}
.making-scene-name{font-size:15px;color:#18283f}
.making-scene-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.making-scene-body{padding:4px 12px 10px}
.making-type-title{margin:10px 0 4px;font-size:13px;color:#41526a;cursor:help}
/* 成片行：编号 · 短标题 · 时长 / 段状态一行字 / 下一步说明 ｜ 一个按钮 */
.making-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"head act" "segs act" "say act";column-gap:12px;row-gap:3px;align-items:center;padding:8px 10px;border-radius:9px;border-bottom:1px solid #eef1f5;cursor:pointer}
.making-row:hover{background:#f6f8fb}
.making-row.is-selected{background:#eaf2ff;box-shadow:inset 3px 0 0 #1761c7}
.making-row-head{grid-area:head;display:flex;align-items:baseline;gap:8px;min-width:0}
.making-row-no{color:#6b778a;font-size:12px;font-variant-numeric:tabular-nums;width:20px;flex:none}
.making-row-title{font-size:14px;color:#1d2a3c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.making-row-dur{font-size:12px;color:#7a8799;flex:none}
.making-segline{grid-area:segs;font-size:12px;color:#41526a;padding-left:28px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seg-arrow{color:#a3adbb}
.seg-name{color:#41526a}
.seg-word.is-ok{color:#1d7a3a}.seg-word.is-review{color:#c46b00}.seg-word.is-bad{color:#c01a1a}.seg-word.is-idle{color:#8a8f98}
.making-row-say{grid-area:say;font-size:12px;color:#5b6b80;padding-left:28px}
.making-row-say.is-review{color:#c46b00}.making-row-say.is-feedback{color:#c01a1a}.making-row-say.is-assemble,.making-row-say.is-continue{color:#1d7a3a}
.making-row-act{grid-area:act;display:flex;justify-content:flex-end}
.making-row-act .btn{white-space:nowrap}
.making-row.is-stopped{opacity:.6;filter:grayscale(1)}
/* 右栏 */
.work-inner{padding:14px 16px 24px;display:flex;flex-direction:column;gap:10px}
.work-title{margin:0;font-size:16px;color:#18283f}
.work-empty{color:#6b7787;font-size:13px;margin:6px 0}
.work-todo-list{display:flex;flex-direction:column;gap:6px}
.work-todo-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:9px 12px;border:1px solid #e3e8ef;border-radius:10px;background:#fafbfd;font:inherit;cursor:pointer}
.work-todo-item:hover{border-color:#9fb0c6;background:#f4f7fb}
.work-todo-where{font-size:13px;color:#1d2a3c;font-weight:600}
.work-todo-say{font-size:12px;color:#5b6b80}
.work-todo-item.is-review .work-todo-say{color:#c46b00}.work-todo-item.is-feedback .work-todo-say{color:#c01a1a}.work-todo-item.is-assemble .work-todo-say{color:#1d7a3a}
.work-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.work-head-where{font-size:12px;color:#6b7787}
.work-head-title{font-size:15px;color:#18283f}
.work-spacer{flex:1}
.work-now{margin:2px 0;font-size:18px;font-weight:600;color:#18283f}
.work-now.is-review{color:#a85a00}.work-now.is-feedback{color:#b42318}.work-now.is-assemble,.work-now.is-continue{color:#1d7a3a}.work-now.is-stopped,.work-now.is-running{color:#6b7787}
.work-stage .studio-video-frame{margin:0}
.work-player{width:100%;max-height:52vh!important;object-fit:contain;background:#000;border-radius:10px;margin:0}
.work-stage .pipeline-inspector{padding:12px;margin:0}
.work-stage-text{margin:0;padding:10px 12px;border-radius:8px;background:#f4f6f9;color:#5b6b80;font-size:13px}
.work-segs{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.work-seg{border:1px solid #dde3ec;background:#fff;border-radius:999px;padding:3px 10px;font:inherit;font-size:12px;cursor:pointer}
.work-seg.is-current{border-color:#1761c7;box-shadow:0 0 0 1px #1761c7 inset}
.work-main{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.work-main>.btn{min-width:110px}
.work-reject{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.work-reject textarea{flex:1 1 100%;min-height:72px;margin:0}
.work-hint{flex:1 1 100%;margin:0;font-size:12px;color:#6b7787}
.work-next-todo{flex:1 1 100%;margin-top:4px}
.work-main .pipeline-review-hint,.work-main .pipeline-feedback,.work-main .seed-error{flex:1 1 100%;margin:0}
.work-fold{border-top:1px solid #edf0f5;padding:8px 0}
.work-fold>summary{cursor:pointer;font-size:13px;color:#41526a;font-weight:600}
.work-fold .pipeline-prompt{white-space:pre-wrap}
.making-work .pipeline-plan{margin-top:4px}
/* 项目页顶上有一条 52px 的 sticky 工具栏（.project .toolbar），右栏贴在它下面 */
.making-work{top:64px;max-height:calc(100vh - 76px);scroll-margin-top:64px}
.making-layout,.making-scene{scroll-margin-top:64px}
/* 成品库场景板块：左成片列表 55% + 右视频 45%（sticky）；<1000 上下排（芦嘉怡 10/23 17:06） */
.pipeline-library-scene{overflow:clip}
.library-cols{display:grid;grid-template-columns:minmax(0,55fr) minmax(0,45fr);gap:16px;align-items:start}
.library-cols-list{min-width:0;container-type:inline-size}
.library-cols-video{position:sticky;top:64px;min-width:0}
.library-cols-video .library-stage{max-width:none;margin:0}
.library-cols-video .library-stage .pipeline-player{max-height:calc(100vh - 220px)}
.library-cols-list .pipeline-library-type:first-child{padding-top:4px}
@media(max-width:999px){.library-cols{grid-template-columns:minmax(0,1fr)}.library-cols-video{position:static;order:-1}}
/* 场景图大图卡片（芦嘉怡 10/23 17:08） */
.making-scene-thumb.is-zoomable{cursor:zoom-in;transition:box-shadow .15s}
.making-scene-thumb.is-zoomable:hover,.making-scene-thumb.is-zoomable:focus-visible{box-shadow:0 0 0 2px #1761c7}
.scene-lightbox{padding:0;border:0;background:transparent;max-width:min(92vw,1400px);max-height:92vh;overflow:visible}
.scene-lightbox::backdrop{background:rgba(15,20,25,.72)}
.scene-lightbox-card{display:flex;flex-direction:column;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 20px 60px #0006}
.scene-lightbox-card img{display:block;max-width:min(92vw,1400px);max-height:calc(92vh - 56px);object-fit:contain;background:#0f1419}
.scene-lightbox-cap{display:flex;align-items:center;gap:12px;padding:10px 14px}
.scene-lightbox-cap strong{font-size:15px;color:#18283f}
.scene-lightbox-cap .btn{margin-left:auto}
/* 标题行状态字可点（芦嘉怡 10/23 17:26）：颜色不变，只加手型和虚下划线 */
.making-status .is-link{cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.making-status .is-link:hover,.making-status .is-link:focus-visible{text-decoration-style:solid}
.making-status{white-space:normal}
.making-row.is-flash{animation:wb-flash 1.4s ease-out}
@keyframes wb-flash{0%{background:#fff1c7}100%{background:#eaf2ff}}
/* 连播 */
.work-playall{border-radius:999px}
.work-play-list{display:flex;flex-direction:column;gap:4px;max-height:280px;overflow:auto;border-top:1px solid #edf0f5;padding-top:8px}
.work-play-item{display:flex;justify-content:space-between;gap:10px;text-align:left;padding:6px 10px;border:1px solid transparent;border-radius:8px;background:none;font:inherit;font-size:12px;cursor:pointer}
.work-play-item:hover{background:#f4f7fb}.work-play-item.is-current{border-color:#1761c7;background:#eaf2ff}
.making-status>span{white-space:nowrap}
.making-scene-toggle .making-scene-head{flex:1 1 auto}
.making-scene .making-status{overflow:visible;text-overflow:clip;line-height:1.7}
.making-status>.making-status-dot{white-space:normal}
.making-scene-header{flex-wrap:wrap}
.making-scene-toggle{min-width:220px}
/* 连播双缓冲：两层 video 叠在一起，上面那层是正在放的 */
.wb-deck{position:relative;width:100%;aspect-ratio:4/3;max-height:52vh;background:#000;border-radius:10px;overflow:hidden}
.wb-deck-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;z-index:1}
.wb-deck-video.is-front{z-index:2}
.wb-deck-speed{position:absolute;top:8px;right:8px;z-index:3;padding:2px 6px;border:0;border-radius:6px;background:rgba(15,20,25,.62);color:#fff;font-size:12px;cursor:pointer}
/* 成品库整场景连播（芦嘉怡 10/23 17:45） */
.library-stage.is-sceneplay .wb-deck{margin-top:10px;max-height:calc(100vh - 260px)}
.library-sceneplay-nav{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
/* 审片三态并排：合格 / 待修改 / 直接作废（芦嘉怡 10/27 14:33） */
.work-verdicts{display:flex;flex-wrap:wrap;gap:8px;flex:1 1 100%}
.work-verdicts>.btn{min-width:110px}
.work-verdicts>.work-drop{color:#b42318;border-color:#fecdca}
.work-verdicts>.work-drop:hover{background:#fef3f2}

/* 场景反复打回时的「需要帮助吗？」小弹窗（芦嘉怡 10/29） */
.retry-alert { position:relative; width:min(360px,92vw); border:0; border-radius:14px; padding:20px 20px 18px; background:var(--surface); color:var(--text); box-shadow:var(--sh-3); margin:auto; }
.retry-alert::backdrop { background:rgba(18,22,28,.28); }
.retry-alert h3 { margin:0 0 8px; font-size:16px; }
.retry-alert p { margin:0 0 16px; font-size:14px; line-height:1.55; color:var(--text-2,var(--text)); }
.retry-alert-close { position:absolute; top:8px; right:10px; border:0; background:none; font-size:20px; line-height:1; padding:4px 6px; color:var(--text-3,#888); cursor:pointer; border-radius:6px; }
.retry-alert-close:hover { background:var(--hair,rgba(0,0,0,.06)); }

/* ── 审片模式（在昀 11/1 18:54）：全屏暗场，片子尽量大，通过 / 打回就在旁边；横屏左右排，竖屏上下排 ── */
.review-mode-entry{flex:none;align-self:center;white-space:nowrap;margin-left:auto}
dialog.review-mode{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#0f1319;color:#eef2f7;display:flex;flex-direction:column;overflow:hidden}
dialog.review-mode::backdrop{background:#0f1319}
.rv2-top{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid #ffffff14;flex:none}
.rv2-where{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.rv2-bar{flex:1;min-width:60px;height:6px;border-radius:3px;background:#ffffff1f;overflow:hidden}
.rv2-bar>span{display:block;height:100%;background:#3fb26b;transition:width .25s}
.rv2-speeds{display:flex;gap:4px}
.review-mode .btn{min-height:40px;padding:8px 14px;font-size:14px}
.review-mode .rv2-speeds .btn{min-width:48px;background:#ffffff14;border-color:#ffffff24;color:#eef2f7}
.review-mode .rv2-speeds .btn[aria-pressed="true"]{background:#eef2f7;color:#0f1319}
.rv2-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 300px}
.rv2-body[hidden],.rv2-done[hidden]{display:none}
.rv2-stage{position:relative;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;background:#000}
.rv2-video{width:100%;height:100%;object-fit:contain;background:#000}
.rv2-note{position:absolute;left:12px;bottom:56px;margin:0;padding:4px 10px;border-radius:6px;background:#000000b3;font-size:13px}
.rv2-note:empty{display:none}
.rv2-side{display:flex;flex-direction:column;gap:12px;padding:16px;border-left:1px solid #ffffff14;overflow:auto}
.rv2-title{margin:0;font-size:17px;line-height:1.4;color:#fff}
.rv2-state{margin:0;font-size:14px;min-height:20px;color:#9aa6b6}
.rv2-state.is-approved{color:#6fd396}.rv2-state.is-rejected{color:#ff8a80}
.rv2-verdicts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rv2-verdicts[hidden],.rv2-reject-box[hidden]{display:none}
.review-mode .rv2-verdicts .btn{min-height:64px;font-size:18px;font-weight:600}
.review-mode .rv2-pass{background:#1f8f4e;border-color:#1f8f4e;color:#fff}
.review-mode .rv2-reject{background:#3a1d1d;border-color:#b42318;color:#ffb4ab}
.rv2-reject-box{display:flex;flex-wrap:wrap;gap:8px}
.rv2-reject-box textarea{flex:1 1 100%;min-height:84px;margin:0;font-size:15px}
.rv2-navs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.review-mode .rv2-navs .btn,.review-mode .rv2-top>.btn,.review-mode .rv2-done .btn{background:#ffffff14;border-color:#ffffff24;color:#eef2f7}
.review-mode .rv2-done .btn-primary{background:#1761c7;border-color:#1761c7;color:#fff}
.rv2-keys{margin:auto 0 0;font-size:12px;color:#7d8899}
.rv2-done{flex:1;overflow:auto;padding:8vh 24px 24px;display:flex;flex-direction:column;align-items:center;gap:20px}
.rv2-done h3{margin:0;font-size:24px}
.rv2-stats{display:flex;gap:16px}
.rv2-stat{display:flex;flex-direction:column;align-items:center;min-width:110px;padding:16px;border-radius:12px;background:#ffffff0f}
.rv2-stat strong{font-size:36px}.rv2-stat span{font-size:14px;color:#9aa6b6}
.rv2-stat.is-ok strong{color:#6fd396}.rv2-stat.is-bad strong{color:#ff8a80}
.rv2-bad{display:flex;flex-direction:column;gap:6px;width:min(640px,100%)}
.review-mode .rv2-bad-item{text-align:left;white-space:normal;justify-content:flex-start}
.rv2-done-acts{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
@media(max-aspect-ratio:1/1){.rv2-body{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.rv2-side{border-left:0;border-top:1px solid #ffffff14}.rv2-keys{display:none}}
@media(max-width:700px){.rv2-top{flex-wrap:wrap}.rv2-bar{order:3;flex-basis:100%}}
/* iPad（触屏）：按钮至少 40px 高，手指好点 */
@media(pointer:coarse){.pipeline-workbench .btn-sm,.pipeline-workbench .making-tag{min-height:40px;padding:8px 12px}.pipeline-workbench .work-seg{padding:8px 12px}}
