:root {
  --bg:#010102; --panel:#0F1011; --panel2:#141516; --line:#23252A;
  --surface-1:#0F1011; --surface-2:#141516; --surface-3:#010102;
  --hairline:#23252A; --hairline-strong:#3A3D44;
  --text:#F7F8F8; --muted:#8A8F98; --purple:#5E6AD2; --purple2:#828FFF;
  --blue:#5E6AD2; --green:#27A644; --orange:#D0D6E0; --yellow:#EAB308; --red:#E5484D;
  --primary:#5E6AD2; --primary-hover:#828FFF; --primary-active:#5E69D1; --on-primary:#FFFFFF;
  --shadow:none; --shadow-0:none; --shadow-1:none; --shadow-2:none; --shadow-pop:none;
  --radius-xs:4px; --radius-sm:6px; --radius-md:8px; --radius-lg:8px; --radius-xl:12px;
  --radius-btn:8px; --radius-card:8px; --radius-input:8px; --radius-pill:999px; --control-h:32px;
  --font-ui:Geist,Inter,ui-sans-serif,system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
  --font-display:Geist,Inter,ui-sans-serif,system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  --font-feature:normal; --display-weight:600;
  --tracking:-0.011em; --btn-tracking:0; --btn-transform:none; --btn-weight:500;
  --btn-bg:#0F1011; --btn-border:#23252A; --btn-text:#F7F8F8; --btn-primary-bg:#5E6AD2; --btn-shadow:none;
  --focus-ring:0 0 0 2px rgba(94,106,210,.28);
  --duration:120ms; --ease:cubic-bezier(.2,.7,.2,1); --press:translateY(1px);
  --topbar-bg:#010102; --topbar-blur:0px; --topbar-accent-h:1px;
  --overlay:color-mix(in srgb, #010102 62%, transparent);
  --selection-bg:#5E6AD2; --selection-fg:#FFFFFF;
  --scrollbar-thumb:color-mix(in srgb, #F7F8F8 30%, transparent);
  --scrollbar-track:color-mix(in srgb, #141516 85%, transparent);
  --sk-radius:8px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.55 var(--font-ui);letter-spacing:var(--tracking);font-feature-settings:var(--font-feature)}
button,input,select{font:inherit}
button{cursor:pointer}
.page{max-width:none;margin:0;padding:8px 10px}
.brand{display:flex;gap:8px;align-items:center;font-weight:850;flex:0 0 auto;min-width:0}
.brand-text{line-height:1;font-size:15px;white-space:nowrap}
.logo{width:26px;height:26px;border-radius:var(--radius-btn);background:var(--primary);box-shadow:none}
.logo-help{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:auto;height:auto;min-height:40px;padding:8px 14px;border:1px solid var(--primary);border-radius:var(--radius-card);color:var(--text);text-decoration:none;box-sizing:border-box;line-height:1.2;box-shadow:none;background:color-mix(in srgb, var(--primary) 12%, var(--panel))}
.logo-help-icon{font-size:15px;font-weight:900;line-height:1;flex:0 0 auto}
.logo-help-label{font-size:13px;font-weight:850;white-space:nowrap;letter-spacing:.02em;line-height:1.2}
.project-context{display:flex;align-items:center;gap:0;min-width:0;flex:0 1 340px;max-width:340px;min-height:42px;padding:3px;border:1px solid var(--primary);border-radius:var(--radius-card);background:color-mix(in srgb, var(--primary) 12%, var(--panel));box-shadow:none}
.project-context:hover{border-color:var(--primary-hover);box-shadow:none}
.project-entry{
  display:inline-flex;align-items:center;justify-content:center;gap:0;
  flex:0 0 auto;margin:0;padding:4px 14px 4px 12px;min-height:34px;
  border:0;border-right:1px solid rgba(255,196,92,.40);border-radius:8px 0 0 8px;
  background:transparent;
  color:var(--primary);
  box-shadow:none;
  cursor:pointer;font:inherit;line-height:1.15;
  transition:transform .12s ease, border-color .12s ease, box-shadow .12s ease, background .12s ease;
}
.project-entry:hover{
  transform:translateY(-1px);
  background:rgba(255,196,92,.12);
  box-shadow:none;
}
.project-entry:active{transform:translateY(0)}
.project-entry-kicker{
  display:none;
  font-size:8px;font-weight:900;letter-spacing:1.1px;color:var(--primary);text-transform:uppercase;
}
.project-entry-label{
  font-size:14px;font-weight:900;letter-spacing:.03em;color:var(--primary);
  transition:color .12s ease;
}
.project-entry:hover .project-entry-label{
  color:var(--primary-hover);
}
.pill,.badge{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:5px 9px;color:var(--muted);font-size:11px;font-weight:760}
.badge.green{color:#b5f7e1;border-color:rgba(72,213,166,.36);background:rgba(72,213,166,.08)}
.badge.orange{color:#ffd5a4;border-color:rgba(255,180,92,.34);background:rgba(255,180,92,.08)}
.badge.purple{color:#dcd7ff;border-color:rgba(141,124,255,.4);background:rgba(141,124,255,.10)}
.badge.blue{color:#bfe5ff;border-color:rgba(88,184,255,.35);background:rgba(88,184,255,.08)}
.badge.ghost-blue{color:#9fc6e8;border-color:rgba(88,184,255,.22);background:transparent;font-weight:600}
button.badge{cursor:pointer;font-family:inherit;line-height:inherit;-webkit-appearance:none;appearance:none;transition:background-color .15s,border-color .15s,opacity .15s}
button.badge:hover{opacity:.85;filter:brightness(1.1)}
button.badge:active{transform:scale(.97)}
button.badge:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.btn:hover{background:color-mix(in srgb, var(--primary) 10%, var(--btn-bg));border-color:var(--primary);color:var(--btn-text);filter:none;box-shadow:none;}
.btn:active{transform:translateY(1px);box-shadow:none;}
.btn:disabled{opacity:.55;filter:none;transform:none;box-shadow:none;cursor:not-allowed;}
.btn.primary{background:var(--btn-primary-bg);color:var(--on-primary);border-color:transparent;box-shadow:none;text-shadow:none;}
.btn.primary:active{background:var(--primary-active);color:var(--on-primary);box-shadow:none;}
.btn.danger{background:var(--red);color:#fff;border-color:transparent;box-shadow:none;text-shadow:none;}
.btn.danger:hover{filter:brightness(1.08);}
.btn.danger:active{filter:brightness(.95);transform:translateY(1px);}
.btn.ghost{background:transparent;color:var(--text);border-color:var(--line);box-shadow:none;text-shadow:none;}
.hero{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(330px,.62fr);gap:16px;margin-bottom:16px}
.hero-card,.summary-card,.flow-card,.app-shell,.section{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow)}
.hero-card,.summary-card{border-radius:20px;padding:22px}
.eyebrow{color:var(--purple2);font-size:11px;text-transform:uppercase;letter-spacing:1.2px;font-weight:850}
h1{font-size:31px;line-height:1.16;margin:8px 0 10px;max-width:900px}
.hero-card p{color:var(--muted);margin:0;max-width:980px}
.correction{margin-top:16px;border:1px solid rgba(255,180,92,.34);background:rgba(255,180,92,.075);border-radius:14px;padding:13px 14px}
.correction strong{color:#ffd39c}
.summary-card h2,.flow-card h2,.section h2{font-size:17px;margin:0}
.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.section-head p{color:var(--muted);font-size:12px;margin:3px 0 0}
.metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.metric{border:1px solid rgba(255,255,255,.06);border-radius:13px;padding:13px;background:rgba(255,255,255,.025)}
.metric strong{display:block;font-size:23px}
.metric span{color:var(--muted);font-size:11px}
.flow-card{border-radius:20px;padding:20px;margin-bottom:16px}
.flow{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));align-items:stretch;gap:8px}
.node{grid-column:span 2;border:1px solid var(--line);background:rgba(255,255,255,.025);border-radius:14px;padding:13px;min-height:112px}
.node.wide{grid-column:span 3}
.node .num{color:var(--purple2);font-size:11px;font-weight:900}
.node h3{font-size:13px;margin:6px 0 4px}
.node p{color:var(--muted);font-size:11px;margin:0}
.arrow{display:grid;place-items:center;color:#61708c}
.hard{border-color:rgba(255,180,92,.4);background:linear-gradient(150deg,rgba(255,180,92,.11),rgba(255,255,255,.02))}
.ai{border-color:rgba(88,184,255,.36)}
.app-shell{border-radius:18px;overflow:visible;margin-bottom:12px}
.app-top{
  min-height:56px;
  display:flex;align-items:center;gap:12px;
  /* 窄窗口时整行换行，避免顶栏横向溢出把页面推出横向滚动（左栏被裁切的根因之一） */
  flex-wrap:wrap;row-gap:8px;
  padding:10px 14px;
  background:color-mix(in srgb, var(--panel) 92%, transparent);
  border-bottom:1px solid var(--line);
  box-shadow:none;
  /* 全局吸顶：任意步骤下滑时步骤条始终可见，方便随时切换 */
  position:sticky;
  top:0;
  z-index:90;
  backdrop-filter:blur(14px) saturate(1.15);
  -webkit-backdrop-filter:blur(14px) saturate(1.15);
  border-radius:18px 18px 0 0;
}
.app-top::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:var(--primary);
  opacity:.9;pointer-events:none;
}
.project-title{font-weight:850;flex:1 1 auto;min-width:0;font-size:13px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 10px;cursor:pointer}
.save{color:#9eebd1;font-size:11px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;flex:0 0 auto}
.save:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);flex:0 0 auto}
.stepper{
  margin:0 0 0 6px;display:flex;align-items:center;justify-content:flex-start;gap:4px;
  border:1.5px solid color-mix(in srgb, var(--primary) 55%, var(--line));
  border-radius:999px;padding:4px;
  background:color-mix(in srgb, var(--primary) 10%, var(--panel2));
  box-shadow:0 0 0 1px color-mix(in srgb, var(--primary) 18%, transparent), 0 8px 22px color-mix(in srgb, var(--primary) 16%, transparent);
  flex:0 0 auto;min-width:max-content;
}
.step-tab{background:transparent;color:var(--text);border:1px solid transparent;border-radius:999px;box-shadow:none;text-shadow:none;filter:none;}
.step-tab:hover{color:var(--text);background:color-mix(in srgb, var(--primary) 16%, var(--btn-bg));border-color:color-mix(in srgb, var(--primary) 45%, transparent);box-shadow:none;filter:none;text-shadow:none;}
.step-tab:active{transform:translateY(1px);box-shadow:none;}
.step-tab.active{background:var(--primary);color:var(--on-primary);border-color:transparent;box-shadow:0 6px 16px color-mix(in srgb, var(--primary) 38%, transparent);text-shadow:none;filter:none;font-weight:800;}
.workspace{display:grid;grid-template-columns:minmax(300px,340px) minmax(560px,1fr);min-height:calc(100vh - 88px);height:calc(100vh - 88px);border-radius:0 0 18px 18px;overflow:hidden}
.sidebar,.inspector{background:var(--panel2);padding:14px}
.sidebar{
  border-right:1px solid var(--line);
  display:flex;flex-direction:column;gap:0;
  min-height:0;max-height:calc(100vh - 88px);
  overflow:hidden;padding:12px 12px 10px;
  position:relative;
}
.sidebar-topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none;margin:0 0 8px;min-width:0}
.sidebar-mode-seg{
  display:flex;align-items:center;gap:3px;flex:1 1 auto;min-width:0;
  height:var(--control-h);padding:3px;
  border:1.5px solid color-mix(in srgb, var(--primary) 55%, var(--line));
  border-radius:999px;
  background:color-mix(in srgb, var(--primary) 10%, var(--panel2));
  box-shadow:0 0 0 1px color-mix(in srgb, var(--primary) 18%, transparent);
}
.sidebar-mode-tab{
  flex:1 1 0;min-width:0;height:100%;padding:0 8px;
  border:1px solid transparent;border-radius:999px;
  background:transparent;color:var(--text);
  font-size:12px;font-weight:750;line-height:1;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  box-shadow:none;text-shadow:none;filter:none;
}
.sidebar-mode-tab:hover{
  color:var(--text);
  background:color-mix(in srgb, var(--primary) 16%, var(--btn-bg));
  border-color:color-mix(in srgb, var(--primary) 45%, transparent);
}
.sidebar-mode-tab.active{
  background:var(--primary);color:var(--on-primary);border-color:transparent;
  box-shadow:0 4px 12px color-mix(in srgb, var(--primary) 38%, transparent);
  font-weight:800;
}
.sidebar-toggle{flex:none;align-self:auto;margin:0;z-index:3}
.workspace.upload-mode .sidebar-toggle{position:static}
.workspace.side-collapsed .sidebar-topbar{justify-content:center}
.workspace.side-collapsed .sidebar-mode-seg{display:none}
.workspace.side-collapsed .sidebar-toggle{position:static;align-self:center;margin:0 auto}
.side-nav-block{
  flex:0 0 auto;
  display:flex;flex-direction:column;gap:0;
  height:310px;
  box-sizing:border-box;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  padding:10px;
  background:color-mix(in srgb, var(--panel) 70%, transparent);
}
.side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;flex:0 0 auto}
.side-head .side-title{margin:0;font-size:12px}
.side-toggle{flex:none;background:var(--panel);border:1px solid var(--line);color:var(--muted);border-radius:var(--radius-btn);width:26px;height:26px;cursor:pointer;font-size:11px;line-height:1}
.side-toggle:hover{color:var(--text);border-color:var(--primary)}
.workspace.side-collapsed{grid-template-columns:52px minmax(560px,1fr)}
.workspace.side-collapsed .sidebar{padding:14px 9px}
.workspace.side-collapsed .side-head{justify-content:center;margin-bottom:0}
.workspace.side-collapsed .sidebar .side-title,
.workspace.side-collapsed .sidebar .search,
.workspace.side-collapsed .sidebar .filter,
.workspace.side-collapsed .sidebar .episode-list,
.workspace.side-collapsed .sidebar .side-nav-block,
.workspace.side-collapsed .sidebar .side-workbench,
.workspace.side-collapsed .sidebar .script-chat-dock{display:none}
.workspace.no-sidebar{grid-template-columns:1fr}
.workspace.no-sidebar .sidebar{display:none}
.workspace.upload-mode .side-nav-block{display:flex}
/* 生图·资产是全集全局库：隐藏左侧集导航，工作台顶对齐占满 */
.workspace.imagegen-assets .side-nav-block{display:none}
.workspace.imagegen-assets .side-workbench.inspector.workbench{margin-top:0;border-top:0}
.workspace.export-mode .side-nav-block{display:none}
.workspace.export-mode .side-workbench.inspector.workbench{margin-top:0;border-top:0}
.workspace.export-mode:not(.sidebar-ai) .side-workbench.inspector.workbench{display:none}
.workspace.sidebar-ai .side-nav-block,
.workspace.sidebar-ai .side-workbench.inspector.workbench{display:none}
.workspace.sidebar-ai .script-chat-dock{display:flex}
.workspace.sidebar-ai.side-collapsed{grid-template-columns:minmax(300px,340px) minmax(560px,1fr)}
.workspace.sidebar-ai.side-collapsed .sidebar-mode-seg{display:flex}
.workspace.sidebar-ai.side-collapsed .sidebar .script-chat-dock{display:flex}
.sidebar > .script-chat-dock{display:none}
/* 工作台已并入左侧，不再使用右侧栏 */
.workspace > .inspector:not(.side-workbench){display:none}
.side-workbench.inspector.workbench{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  overflow-x:hidden;
  margin-top:10px;
  padding:10px 2px 8px 0;
  border-top:1px solid var(--line);
  border-left:0;
  scrollbar-gutter:stable;
  scrollbar-width:thin;
  scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);
}
.side-workbench.inspector.workbench::-webkit-scrollbar{width:9px}
.side-workbench.inspector.workbench::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:var(--radius-pill)}
.side-workbench.inspector.workbench::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-pill);border:2px solid transparent;background-clip:padding-box}
.side-workbench.inspector.workbench::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb);background-clip:padding-box}
.workbench{padding:0}
.workbench-head{padding:2px 2px 14px;margin-bottom:14px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.workbench-head-main{min-width:0;flex:1 1 auto}
.btn-ai-voice{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.workbench-eyebrow{color:var(--purple2);font-size:9px;font-weight:900;letter-spacing:1.35px;line-height:1;text-transform:uppercase}
.workbench h2{margin:7px 0 3px;font-size:20px;line-height:1.2}
.workbench-head p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}
.workbench .info-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.workbench .info{min-height:72px;padding:10px 11px;border-radius:11px;background:rgba(255,255,255,.035)}
.workbench .info.wide{grid-column:1 / -1;min-height:auto}
.workbench .info .k{font-size:9px;letter-spacing:.75px}
.workbench .info .v{margin-top:4px;font-size:12px;line-height:1.35}
.workbench .side-title{margin-top:15px}
.workbench .criteria{grid-template-columns:1fr}
.workbench .criterion{padding:9px 10px}
.workbench .issue{margin-bottom:7px}
.workbench .inspector-runs{margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}
.workbench .run-panel{padding:12px;border-color:rgba(141,124,255,.38);background:linear-gradient(145deg,rgba(141,124,255,.10),rgba(255,255,255,.025) 62%)}
.workbench .run-panel + .run-panel{margin-top:0}
.workbench .run-head>div:first-child{flex:1 1 120px}
.workbench .run-head b{font-size:13px}
.workbench .run-head .muted{font-size:10px;line-height:1.4}
.workbench-secondary{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px dashed rgba(141,124,255,.26)}
.workbench-secondary .muted{flex:1 1 125px;font-size:10px;line-height:1.4}
.workbench-secondary .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.search,.select{width:100%;background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:var(--radius-input);padding:9px;min-height:var(--control-h)}
.filter{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}
.side-title{font-size:10px;color:var(--muted);font-weight:850;text-transform:uppercase;letter-spacing:.8px;margin:14px 3px 8px}
.episode-list{
  display:flex;flex-direction:column;gap:5px;
  flex:1 1 auto;min-height:0;
  overflow-y:scroll; /* 滚动条常驻 */
  overflow-x:hidden;
  padding-right:2px;margin-top:8px;
  scrollbar-gutter:stable;
  scrollbar-width:thin;
  scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);
}
.episode-list::-webkit-scrollbar{width:9px}
.episode-list::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:var(--radius-pill)}
.episode-list::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-pill);border:2px solid transparent;background-clip:padding-box}
.episode-list::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb);background-clip:padding-box}
.side-nav-block .search{flex:0 0 auto;width:100%}
.side-nav-block .filter{flex:0 0 auto;margin-top:6px}

.episode{display:grid;grid-template-columns:38px 1fr auto;gap:8px;align-items:center;width:100%;border:1px solid var(--line);background:var(--panel);color:var(--text);padding:8px;border-radius:var(--radius-md);text-align:left}
.episode:hover{background:color-mix(in srgb, var(--primary) 8%, var(--panel))}
.episode.active{background:color-mix(in srgb, var(--primary) 14%, var(--panel));border-color:var(--primary)}
.ep-num{height:34px;border-radius:var(--radius-btn);background:var(--panel2);display:grid;place-items:center;font-size:11px;font-weight:900}
.episode.active .ep-num{background:var(--purple)}
.episode .ep-main{min-width:0;overflow:hidden}
.ep-title{font-size:12px;font-weight:800}
.ep-dup{margin-left:6px;font-size:9px;font-weight:800;color:var(--orange);letter-spacing:.04em}
.ep-meta{display:block;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.dot{width:8px;height:8px;border-radius:50%;background:var(--red)}
.main{padding:18px;min-width:0;min-height:0;height:100%;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable}
.panel-view{display:none}
.panel-view.active{display:block}
#view-upload.panel-view.active{
  display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;
  container-type:inline-size;container-name:upload-panel;
}
#view-upload > .main-title{display:none}
.main:has(#view-upload.active){overflow:hidden;padding:12px}
.upload-index-split{
  flex:1 1 auto;min-height:0;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-areas:"script";
  gap:12px;
  height:100%;
}
.upload-index-split.is-no-scenes{
  grid-template-columns:minmax(0,1fr);
  grid-template-areas:"script";
}
/* 分镜脚本子视图激活时盖住三视图容器（view-adapt 占满中栏） */
.upload-index-split.is-subview-hidden{display:none}
.panel-view.adapt-subview{display:flex;flex-direction:column;min-height:0;flex:1 1 auto;gap:10px}
.panel-view.adapt-subview[hidden]{display:none}
.upload-pane-scenes,
.upload-index-split.is-no-scenes .upload-pane-scenes{display:none}
.upload-pane{
  min-width:0;min-height:0;
  display:flex;flex-direction:column;gap:10px;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:16px;
  padding:12px;
  background:rgba(255,255,255,.025);
}
.upload-pane-head{
  flex:0 0 auto;
  display:flex;align-items:center;justify-content:space-between;gap:8px;
}
/* 上传按钮占共享视图头左侧（原「展示剧本」标题位）；仅展示剧本视图显示 */
.script-view-head.is-shared .script-head-upload{
  grid-area:title;
  justify-self:start;
  margin:0;min-width:0;min-height:0;max-width:100%;
  display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:8px;
  padding:0;border:0;border-radius:0;
  background:transparent;text-align:left;cursor:pointer;
}
.script-view-head.is-shared .script-head-upload[hidden]{display:none}
.script-view-head.is-shared .script-head-upload .script-module-cta{
  margin:0;padding:7px 16px;
  font-size:20px;font-weight:800;line-height:1.15;letter-spacing:.02em;
  white-space:nowrap;flex:0 0 auto;
}
.script-view-head.is-shared .script-head-upload #uploadHint{
  font-size:11px;margin:0;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.script-view-head.is-shared .script-head-upload.is-dragover .script-module-cta{background:var(--primary-active)}
.upload-pane-label{
  flex:0 0 auto;
  font-size:10px;font-weight:900;letter-spacing:1.1px;text-transform:uppercase;
  color:var(--muted);
}
.upload-pane-script .upload-tools{
  flex:0 0 auto;
  max-height:none;
  overflow:visible;
  display:flex;flex-direction:column;gap:8px;
  min-height:0;
}
.upload-pane-script .script-md-wrap{
  flex:1 1 auto;
  min-height:0;
  display:flex;flex-direction:column;gap:8px;
  overflow:hidden;
}
.upload-pane-scenes{grid-area:scenes;overflow:hidden}
.upload-pane-scenes #sceneContainer{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
}
.upload-pane-scenes .scene-head{
  flex-wrap:wrap;
  align-items:flex-start;
  gap:6px 8px;
  padding:8px 10px;
}
.upload-pane-scenes .scene-head strong{
  flex:1 1 120px;
  min-width:0;
}
.upload-pane-scenes .scene-body{padding:10px}
.upload-pane-scenes .scene-expand-row{align-items:flex-start}
.upload-pane-script{grid-area:script;overflow:hidden}
.upload-pane-script .script-view-head{
  flex:0 0 auto;
  flex-direction:column;
  align-items:stretch;
  margin-bottom:0;
  gap:4px;
}
.upload-pane-script .script-view-titleblock{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.upload-pane-script .script-view-title-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  flex-wrap:wrap;
}
.upload-pane-script .script-view-title-row h3{
  margin:0;
  font-size:15px;
  line-height:1.2;
}
/* 共享视图头标题（展示剧本/拆镜与旁白…）禁止逐字竖排：CJK 可断行时窄宽被挤成单字列 */
.script-view-title-row h3{white-space:nowrap}
.script-view-actions .btn{white-space:nowrap}
.upload-pane-script .script-pane-seg{
  flex:0 0 auto;
  font-size:12px;
}
.upload-pane-script .script-pane-seg button{
  padding:5px 10px;
  font-size:12px;
  white-space:nowrap;
}
body[data-theme="light"] .script-pane-seg button{
  border-color:color-mix(in srgb, var(--text) 24%, transparent);
  background:#fff;
  color:var(--muted);
  box-shadow:0 1px 2px rgba(15,23,42,.08);
}
body[data-theme="light"] .script-pane-seg button.active{
  border-color:var(--primary);
  background:color-mix(in srgb, var(--primary) 12%, #fff);
  color:var(--text);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--primary) 40%, transparent), 0 1px 8px color-mix(in srgb, var(--primary) 20%, transparent);
}
.upload-pane-script .script-standard-view{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding:4px 2px 16px;
}
.upload-pane-script .script-standard-empty{
  padding:28px 16px;
  text-align:center;
  line-height:1.6;
}
.upload-pane-script .script-standard-body{
  max-width:none;
  margin:0;
  padding:4px 2px 24px;
  line-height:1.7;
  white-space:normal;
  word-break:break-word;
}
.std-shot-card{
  white-space:normal;
}
/* 拆镜与旁白：场景分组 + 镜头卡（形态对齐分镜脚本视图，2026-09-02 v363） */
.std-shot-card .scene-head{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.std-shot-no{
  display:inline-block;
  padding:2px 10px;
  border-radius:20px;
  background:color-mix(in srgb, var(--primary) 16%, transparent);
  color:var(--primary);
  font-weight:800;
  font-size:12px;
  letter-spacing:.03em;
}
.std-shot-card.is-residual .std-shot-no{display:none}
.std-shot-grid{
  display:grid;
  grid-template-columns:minmax(0,3fr) minmax(0,2fr);
  gap:12px;
  align-items:start;
}
.std-shot-script{
  min-width:0;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:rgba(94,106,210,.05);
}
.std-shot-script .field-label{
  display:flex;
  align-items:baseline;
  gap:6px;
  flex-wrap:wrap;
  margin-bottom:6px;
  font-weight:700;
  color:var(--muted);
  font-size:11.5px;
}
.std-shot-script .script-std-el{
  white-space:pre-wrap;
}
.std-shot-script-editor{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  font-size:13px;
  line-height:1.75;
  color:var(--text);
  white-space:pre-wrap;
  word-break:break-word;
}
.std-shot-script-editor .script-line{
  margin:2px 0;
}
.std-shot-script-editor .script-line.is-scene-head{
  font-weight:700;
  color:var(--orange);
}
.std-shot-script-editor .script-line.is-speech{
  font-weight:650;
  color:var(--purple2, var(--primary));
}
.std-shot-script-editor .script-line.is-action{
  color:var(--text);
}
.std-shot-script-editor .script-line.is-empty{
  height:0.8em;
}

/* IDE 级剧本代码编辑器外观（带左侧行号栏与语法着色，1:1 复刻 CodeMirror） */
.std-shot-ide-box{
  display:flex;
  flex-direction:column;
  background:color-mix(in srgb, var(--panel) 94%, transparent);
  border:1px solid var(--line);
  border-radius:8px;
  overflow:hidden;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  font-size:12.5px;
  line-height:1.75;
}
.std-ide-row{
  display:flex;
  align-items:stretch;
  min-height:1.75em;
  transition:background-color .1s ease;
}
.std-ide-row:hover{
  background:color-mix(in srgb, var(--text) 3%, transparent);
}
.std-ide-gutter-num{
  flex:0 0 38px;
  width:38px;
  padding:0 8px 0 0;
  text-align:right;
  border-right:1px solid var(--line);
  background:color-mix(in srgb, var(--text) 4%, transparent);
  color:var(--muted);
  user-select:none;
  box-sizing:border-box;
  font-size:11px;
  line-height:1.75em;
  font-variant-numeric:tabular-nums;
}
.std-ide-line{
  flex:1 1 auto;
  min-width:0;
  padding:0 10px;
  white-space:pre-wrap;
  word-break:break-word;
  line-height:1.75em;
  color:var(--text);
  font-weight:400;
}
.std-ide-line.is-empty{
  color:transparent;
}
body[data-theme="light"] .std-shot-ide-box{
  background:color-mix(in srgb, #f6f1e8 70%, transparent);
}
body[data-theme="light"] .std-ide-gutter-num{
  background:color-mix(in srgb, var(--text) 4%, #fff);
}
.std-shot-narr{
  min-width:0;
}
@media (max-width: 1100px){
  .std-shot-grid{grid-template-columns:1fr}
}
/* 拆镜与旁白：按镜头配对的行布局（已被场景分组+镜头卡取代，保留兼容类） */
.script-std-row{
  display:grid;
  grid-template-columns:minmax(0,3fr) minmax(0,2fr);
  gap:8px 14px;
  align-items:start;
  padding:6px 0;
}
.script-std-row + .script-std-row{
  border-top:1px solid color-mix(in srgb, var(--line) 60%, transparent);
}
.script-std-row.is-head{
  padding-top:2px;
}
@media (max-width: 1100px){
  .script-std-row{grid-template-columns:1fr}
}
.upload-pane-script .script-std-banner{
  margin:0 0 14px;
  padding:8px 12px;
  border:1px dashed var(--line);
  border-radius:10px;
  font-size:12px;
  color:var(--muted);
}
.upload-pane-script .script-std-shot{
  margin:1.05em 0 .4em;
  padding:6px 10px;
  border-left:3px solid var(--primary);
  background:color-mix(in srgb, var(--primary) 10%, transparent);
  border-radius:0 8px 8px 0;
  font-weight:800;
  font-size:13px;
}
.upload-pane-script .script-std-shot-link{
  float:right;
  font-weight:600;
  font-size:11px;
  letter-spacing:.02em;
  color:var(--muted);
  cursor:pointer;
}
.upload-pane-script .script-std-shot-link:hover{color:var(--primary)}
.upload-pane-script .script-std-narr{
  margin:0 0 .5em;
  padding:6px 10px 6px 13px;
  border-left:3px solid rgba(120,190,120,.55);
  background:rgba(120,190,120,.07);
  border-radius:0 8px 8px 0;
  font-size:12.5px;
  color:var(--ink);
  white-space:pre-wrap;
}
.upload-pane-script .script-std-narr.is-empty{
  border-left-color:rgba(160,160,160,.4);
  background:transparent;
  color:var(--muted);
}
.upload-pane-script .script-std-narr-kicker{
  display:inline-block;
  margin-right:8px;
  font-size:10.5px;
  font-weight:800;
  letter-spacing:.06em;
  color:var(--muted);
}
/* 标准稿旁白卡（右列按镜配对） */
.std-narr-card{
  margin:0;
}
/* 标准稿旁白卡内层：独立类 std-narr-field，与分镜脚本 .field.narration 彻底解耦（2026-09-02 v366） */
.std-narr-field{
  padding:10px 12px;
  border:1px solid var(--line);
  border-left:3px solid rgba(120,190,120,.55);
  border-radius:8px;
  background:rgba(120,190,120,.05);
  font-size:12px;
  line-height:1.6;
}
.std-narr-card.is-empty .std-narr-field{
  border-left-color:rgba(160,160,160,.4);
  background:transparent;
}
.std-narr-field .field-label{
  font-size:11.5px;
  letter-spacing:.02em;
  text-transform:none;
  margin-bottom:2px;
  color:var(--muted);
  font-weight:800;
}
.std-narr-field .narration-status-hint{
  margin:4px 0 2px;
}
.std-narr-field .narration-budget-row{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:6px;
}
.std-narr-field .edit-row{
  margin:6px 0 0;
}
.std-narr-field .voice-dir-row .edit-label{
  margin:0 0 3px;
}
.std-narr-field > .source{
  display:block;
  margin-top:6px;
  font-size:10.5px;
  line-height:1.5;
}
.std-narr-card.is-empty .field.narration{
  border-left-color:rgba(160,160,160,.4);
  background:transparent;
}
.std-narr-card .narration-head{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.std-narr-card .narration-head > span:first-child{
  flex:1 1 100%;
}
.std-narr-card .narration-head .lang-tabs{
  margin-left:auto;
}
.std-narr-card .narration-body,
.std-narr-card .voice-dir-body{
  width:100%;
  margin-top:4px;
  resize:vertical;
  overflow-y:auto;
  min-height:52px !important;
  max-height:300px;
}
.std-narr-card .narration-budget-row{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:6px;
}
.std-narr-card .lang-tabs{
  display:inline-flex;
  gap:4px;
}
.std-narr-card .lang-tab{
  border:1px solid var(--line);
  background:transparent;
  color:var(--muted);
  border-radius:6px;
  padding:2px 8px;
  font-size:11px;
  cursor:pointer;
}
.std-narr-card .lang-tab.is-active{
  background:var(--primary, #2f6fed);
  border-color:var(--primary, #2f6fed);
  color:#fff;
}
.upload-pane-script .script-std-el{
  margin:.28em 0;
  white-space:pre-wrap;
}
.upload-pane-script.is-standard-pane .script-notepad{display:none}
.upload-pane-script.is-original-pane .script-standard-view{display:none}
.upload-pane-script .script-view-head .muted{
  font-size:11px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
/* 共享视图头内的「跳转」label：DOM 不在 .upload-pane-script 内，选择器必须去作用域，
   否则 span 按 CJK 逐字断行被挤成竖排 */
.script-jump span{
  font-size:11px;
  white-space:nowrap; /* 窄宽禁止逐字竖排 */
}
.upload-pane-script .script-view-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  margin-left:auto;
}
.script-jump{
  display:inline-flex;
  align-items:center;
  width:auto;
  min-width:0;
  gap:4px;
}
.script-jump .select{
  flex:0 1 auto;
  min-width:148px;
  max-width:220px;
  width:auto;
  padding:4px 8px;
  font-size:12px;
}
.upload-pane-script .script-view-actions .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.upload-pane-script .script-md-view{
  flex:1 1 auto;min-height:0;max-height:none;overflow:auto;
}
.upload-pane-script .script-notepad{
  flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:0;
}
.upload-pane-script .script-notepad-view{
  overflow:hidden;
}
.upload-pane-script .script-md-pre{min-height:0;max-height:none}
/* 「发送」按钮禁止逐字竖排（CJK 可断行，窄宽被挤成单字列） */
.script-chat-send{white-space:nowrap}
@container upload-panel (max-width: 820px){
  .upload-index-split,
  .upload-index-split.is-no-scenes{
    grid-template-columns:1fr;
    grid-template-areas:"script";
    grid-template-rows:none;
    overflow:auto;
  }
  .upload-pane-scenes{display:none}
  .upload-pane-script{min-height:min(62vh,720px);overflow:auto}
  .upload-pane-script .upload-tools{max-height:none}
  .upload-pane-script .script-md-wrap{min-height:280px}
  .upload-pane-script .script-md-view{max-height:none}
}
/* 第 3 步：切换栏钉在中栏顶部贴住顶栏底边，镜头列表在栏下独立滚动 */
.main:has(#view-video.active){
  display:flex;
  flex-direction:column;
  overflow:hidden;
  padding:0;
}
#view-video.panel-view.active{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-height:0;
  overflow:hidden;
}
.skill-bar.video-viewtabs{
  flex:0 0 auto;
  margin:0;
  padding:4px 18px 8px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:nowrap;
  gap:12px;
  background:var(--panel);
  min-width:0;
}
#videoNarrationTabs{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:4px;
  border:1.5px solid color-mix(in srgb, var(--primary) 42%, var(--line));
  background:var(--surface-2);
  border-radius:12px;
  box-shadow:0 2px 8px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.05);
}
#videoNarrationTabs button{
  padding:8px 18px;
  font-size:12.5px;
  font-weight:650;
  border-radius:8px;
  border:1.5px solid transparent;
  color:var(--muted);
  background:transparent;
  cursor:pointer;
  transition:all .15s ease;
}
#videoNarrationTabs button:hover{
  color:var(--text);
  background:color-mix(in srgb, var(--primary) 10%, transparent);
  border-color:color-mix(in srgb, var(--primary) 30%, transparent);
}
#videoNarrationTabs button.active{
  background:var(--surface-1);
  color:#ffffff;
  border:1.5px solid color-mix(in srgb, var(--primary) 70%, transparent);
  box-shadow:0 2px 8px color-mix(in srgb, var(--primary) 32%, transparent), inset 0 1px 0 rgba(255,255,255,.15);
  font-weight:800;
}
body[data-theme="light"] #videoNarrationTabs{
  border:1.5px solid color-mix(in srgb, var(--primary) 45%, var(--line));
  background:color-mix(in srgb, var(--primary) 6%, var(--panel2));
  box-shadow:0 2px 8px rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.8);
}
body[data-theme="light"] #videoNarrationTabs button.active{
  background:#ffffff;
  color:var(--primary);
  border:1.5px solid color-mix(in srgb, var(--primary) 55%, transparent);
  box-shadow:0 2px 8px color-mix(in srgb, var(--primary) 22%, transparent);
}

/* 快捷镜头定位条 */
.video-shot-nav{
  display:flex;
  align-items:center;
  gap:8px;
  flex:1 1 auto;
  min-width:0;
  position:relative;
}
.video-shot-nav-divider{
  width:1px;
  height:22px;
  background:var(--line);
  flex-shrink:0;
  opacity:.7;
}
.video-shot-nav-label{
  font-size:12px;
  font-weight:600;
  color:var(--muted);
  white-space:nowrap;
  flex-shrink:0;
}
.video-shot-nav-dropdown{
  position:relative;
  display:flex;
  align-items:center;
  flex-shrink:0;
}
.video-shot-nav-expand-btn{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:4px 9px;
  font-size:11.5px;
  font-weight:750;
  border-radius:7px;
  border:1px solid color-mix(in srgb, var(--primary) 35%, var(--line));
  background:color-mix(in srgb, var(--primary) 8%, var(--panel2));
  color:var(--text);
  cursor:pointer;
  transition:all .15s ease;
  white-space:nowrap;
}
.video-shot-nav-expand-btn:hover{
  border-color:var(--primary);
  background:color-mix(in srgb, var(--primary) 18%, var(--panel2));
}
.video-shot-nav-expand-btn[aria-expanded="true"]{
  background:var(--primary);
  border-color:var(--primary);
  color:#ffffff;
  box-shadow:0 2px 8px color-mix(in srgb, var(--primary) 40%, transparent);
}
.vsn-btn-caret{
  display:inline-block;
  font-size:10px;
  line-height:1;
  transition:transform .15s ease;
}
.video-shot-nav-expand-btn[aria-expanded="true"] .vsn-btn-caret{
  transform:rotate(180deg);
}
.video-shot-nav-pop{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  z-index:70;
  min-width:320px;
  max-width:440px;
  padding:10px 12px;
  border-radius:12px;
  border:1.5px solid color-mix(in srgb, var(--primary) 40%, var(--line));
  background:var(--panel, #121a28);
  box-shadow:0 12px 32px rgba(0,0,0,.38), 0 2px 8px rgba(0,0,0,.2);
  display:flex;
  flex-direction:column;
  gap:8px;
}
.video-shot-nav-pop[hidden]{
  display:none !important;
}
.video-shot-nav-pop-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom:6px;
  border-bottom:1px solid color-mix(in srgb, var(--line) 80%, transparent);
}
.vsn-pop-title{
  font-size:12px;
  font-weight:800;
  color:var(--text);
}
.vsn-pop-count{
  font-size:11px;
  color:var(--muted);
}
.video-shot-nav-pop-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(66px, 1fr));
  gap:6px;
  max-height:240px;
  overflow-y:auto;
  padding-right:2px;
  scrollbar-width:thin;
}
.video-shot-grid-btn{
  padding:6px 4px;
  font-size:11px;
  font-weight:700;
  text-align:center;
  border-radius:6px;
  border:1px solid var(--line);
  background:var(--panel2);
  color:var(--muted);
  cursor:pointer;
  white-space:nowrap;
  transition:all .12s ease;
}
.video-shot-grid-btn:hover{
  color:var(--text);
  border-color:color-mix(in srgb, var(--primary) 50%, var(--line));
  background:color-mix(in srgb, var(--primary) 12%, var(--panel2));
}
.video-shot-grid-btn.active{
  background:var(--primary);
  border-color:var(--primary);
  color:#fff;
  box-shadow:0 1px 4px color-mix(in srgb, var(--primary) 35%, transparent);
}
.video-shot-nav-chips{
  display:flex;
  align-items:center;
  gap:6px;
  overflow-x:auto;
  flex:1 1 auto;
  min-width:0;
  padding:2px 2px 4px;
  scrollbar-width:thin;
}
.video-shot-nav-chips::-webkit-scrollbar{
  height:4px;
}
.video-shot-nav-chips::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.18);
  border-radius:2px;
}
body[data-theme="light"] .video-shot-nav-chips::-webkit-scrollbar-thumb{
  background:rgba(0,0,0,.15);
}
.video-shot-nav-chip{
  flex:0 0 auto;
  font-size:11px;
  font-weight:600;
  line-height:1;
  padding:5px 9px;
  border-radius:7px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
  color:var(--muted);
  cursor:pointer;
  transition:all .15s ease;
  white-space:nowrap;
}
body[data-theme="light"] .video-shot-nav-chip{
  background:var(--panel2);
}
.video-shot-nav-chip:hover{
  background:rgba(255,255,255,.12);
  color:var(--text);
  border-color:color-mix(in srgb, var(--primary) 40%, var(--line));
}
body[data-theme="light"] .video-shot-nav-chip:hover{
  background:var(--panel);
}
.video-shot-nav-chip.active{
  background:var(--primary);
  border-color:var(--primary);
  color:#fff;
  box-shadow:0 1px 4px color-mix(in srgb, var(--primary) 35%, transparent);
}
.video-shot-nav-empty{
  font-size:11px;
  color:var(--muted);
  white-space:nowrap;
}

/* 镜头跳转高亮呼吸动效 */
@keyframes shotJumpFlashGlow{
  0%{
    outline-color:var(--primary);
    box-shadow:0 0 0 4px color-mix(in srgb, var(--primary) 40%, transparent);
  }
  50%{
    outline-color:var(--primary);
    box-shadow:0 0 0 8px color-mix(in srgb, var(--primary) 60%, transparent);
  }
  100%{
    outline-color:transparent;
    box-shadow:0 0 0 0 transparent;
  }
}
.lib-block.shot-jump-flash{
  outline:2px solid var(--primary);
  outline-offset:2px;
  animation:shotJumpFlashGlow 1.4s ease-out 1;
}
.video-view-content{
  flex:1 1 auto;
  min-width:0;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-gutter:stable;
  padding:0 18px 18px;
}
.video-panel-view{display:none}
.video-panel-view.active{display:block}
.main-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:13px}
.main-title h2{font-size:22px;margin:0 0 3px}
.imagegen-main-title{align-items:center;gap:16px}
.feature-preview{
  flex:1 1 auto;min-width:0;max-width:none;
  margin:0;padding:7px 12px 8px;
  border:1px dashed rgba(217,119,87,.42);
  border-radius:10px;
  background:linear-gradient(180deg,rgba(255,180,92,.10),rgba(255,180,92,.04));
}
.feature-preview-kicker{
  margin:0 0 2px;font-size:10px;font-weight:900;letter-spacing:.8px;
  text-transform:uppercase;color:#d97757;
}
.feature-preview p{
  margin:0;color:var(--muted);font-size:12px;line-height:1.55;
}
body[data-theme="light"] .feature-preview{
  border-color:rgba(201,122,74,.38);
  background:linear-gradient(180deg,#FFF6EC,#FFF9F3);
}
body[data-theme="light"] .feature-preview-kicker{color:var(--primary)}
body[data-theme="light"] .feature-preview p{color:var(--muted)}
body[data-theme="dark"] .feature-preview{
  border-color:rgba(255,180,92,.28);
  background:linear-gradient(180deg,rgba(255,180,92,.10),rgba(255,180,92,.03));
}
body[data-theme="dark"] .feature-preview-kicker{color:#ffb45c}
.imagegen-main-title > div,
.imagegen-main-title > .badge{flex:0 0 auto}
@media (max-width: 820px){
  .imagegen-main-title{flex-wrap:wrap}
  .feature-preview{flex-basis:100%;order:3}
}
.sub{color:var(--muted);font-size:12px}
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.segmented{display:flex;border:1px solid var(--line);border-radius:10px;padding:3px;background:#0c1423}
.segmented button{border:0;background:transparent;color:var(--muted);padding:6px 9px;border-radius:7px;font-size:11px}
.segmented button.active{background:#1b2840;color:#fff}
/* 三视图切换按钮：独立边框强化层级，active 主色边框 + 浅主色底 */
.script-pane-seg{gap:8px;background:transparent;border:0;padding:0}
.script-pane-seg button{border:1.5px solid color-mix(in srgb, var(--muted) 52%, transparent);background:color-mix(in srgb, var(--panel2) 85%, transparent);color:var(--muted);padding:6px 16px;border-radius:9px;font-size:12px;font-weight:650;cursor:pointer;transition:border-color .15s ease, color .15s ease, background .15s ease, box-shadow .15s ease;box-shadow:inset 0 0 0 .5px rgba(255,255,255,.05)}
.script-pane-seg button:hover{border-color:var(--primary);color:var(--text)}
.script-pane-seg button.active{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 20%, transparent);color:#fff;font-weight:800;box-shadow:0 0 0 1px color-mix(in srgb, var(--primary) 48%, transparent), 0 2px 12px color-mix(in srgb, var(--primary) 22%, transparent)}
#skillTabs{flex-wrap:wrap;justify-content:flex-end}
#skillTabs button{white-space:nowrap}
.card,.scene-card{border:1px solid var(--line);background:rgba(17,26,43,.75);border-radius:15px;margin-bottom:11px}
.card{padding:15px}
.card h3{font-size:14px;margin:0 0 10px}
.upload{border:1.5px dashed #405171;border-radius:17px;padding:27px;text-align:center;background:linear-gradient(155deg,rgba(141,124,255,.07),rgba(88,184,255,.03));margin-bottom:12px}
.upload h3{margin:4px 0}
.upload p{color:var(--muted);font-size:12px}
.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.check-grid[hidden]{display:none !important}
.check{border:1px solid rgba(255,255,255,.055);background:rgba(255,255,255,.025);border-radius:11px;padding:10px;color:var(--muted);font-size:11px}
.check strong{display:block;color:var(--text);font-size:12px;margin-bottom:2px}
.check.ok:before{content:"✓";float:right;color:var(--green);font-weight:900}
.check.warn:before{content:"!";float:right;color:var(--orange);font-weight:900}
.scene-head{display:flex;align-items:center;gap:9px;padding:11px 13px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.02)}
.adapt-scene-group{border:1px solid rgba(141,124,255,.22);background:rgba(141,124,255,.03);border-radius:17px;padding:11px;margin-bottom:14px}
.adapt-scene-head{display:flex;align-items:center;gap:9px;padding:4px 4px 11px}
.adapt-scene-head strong{font-size:13px}
.adapt-scene-group .scene-card:last-child{margin-bottom:0}
.adapt-shots-grid{display:grid;grid-template-columns:1fr;gap:12px;align-items:start}
@media (min-width: 1200px){
  .adapt-shots-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* 2 列行间虚线：下一行左卡拉满两列（含列间隙） */
  .adapt-shots-grid > .scene-card:nth-child(2n+1):nth-child(n+3){position:relative}
  .adapt-shots-grid > .scene-card:nth-child(2n+1):nth-child(n+3)::before{
    content:"";
    position:absolute;
    top:-6px;
    left:0;
    right:calc(-100% - 12px);
    border-top:1px dashed rgba(120,150,210,.22);
    pointer-events:none;
  }
}
.adapt-shots-grid .scene-card{margin-bottom:0;min-width:0}
.adapt-card .scene-head{flex-wrap:wrap;row-gap:6px}
.scene-id{font-size:10px;font-weight:900;color:var(--purple2);background:rgba(141,124,255,.12);padding:4px 7px;border-radius:7px}
.preamble-card{border:2px solid rgba(255,180,92,.72);background:rgba(255,180,92,.14)}
.preamble-card .scene-id{color:#c8892e;background:rgba(255,180,92,.22)}
.preamble-card .scene-head{background:rgba(255,180,92,.10);border-bottom-color:rgba(255,180,92,.28)}
.preamble-card .field{border:1.5px solid rgba(255,180,92,.42);background:rgba(255,180,92,.10)}
.preamble-card .btn-expand-preamble{border-color:rgba(255,180,92,.55);background:rgba(255,180,92,.14);font-weight:750}
body[data-theme="light"] .preamble-card{background:#FFF4E5;border-color:#E0A84A}
body[data-theme="light"] .preamble-card .scene-id{color:#A56A14;background:rgba(224,168,74,.22)}
body[data-theme="light"] .preamble-card .scene-head{background:#FFE9C8;border-bottom-color:#E6C07A}
body[data-theme="light"] .preamble-card .field{background:#FFFBF3;border-color:#E6C07A}
body[data-theme="light"] .preamble-card .btn-expand-preamble{border-color:#D4A24A;background:#FFE7C2;color:#7A4E0E}
.scene-head strong{font-size:12px}
.grow{flex:1}
.scene-body{padding:13px}
.scene-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
/* 分镜脚本卡片：原文+旁白左收，质检黄条靠右，吃掉横向留空 */
.adapt-card .scene-body{
  container-type:inline-size;
  container-name:adapt-shot;
}
.adapt-shot-main{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  align-items:stretch;
}
.adapt-shot-main .scene-grid{min-width:0}
/* 方案A收尾：旁白占位格已删，原剧本内容单列占满（2026-09-02） */
.adapt-shot-main .scene-grid{grid-template-columns:1fr}
.adapt-shot-main .adapt-skill-gate{
  margin:0;
  height:100%;
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
  box-sizing:border-box;
}
.adapt-shot-main .adapt-skill-gate.media-status.duration-gate{margin-bottom:0}
.adapt-shot-main .skill-flow{flex:1 1 auto}
.adapt-shot-main .skill-flow-actions{margin-top:auto}
@container adapt-shot (min-width: 900px){
  .adapt-shot-main:has(.adapt-skill-gate){
    grid-template-columns:minmax(0,1fr) minmax(300px,360px);
  }
  .adapt-shot-main .skill-flow-steps{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .adapt-shot-main .skill-flow-steps li{min-height:0;padding:7px 8px 6px}
  .adapt-shot-main .skill-flow-why{font-size:11.5px}
}
.field{border:1px solid rgba(255,255,255,.06);border-radius:11px;padding:11px;background:rgba(4,7,13,.24)}
.field.visual{border-top:2px solid var(--blue)}
.field.narration{border-top:2px solid var(--purple)}
.field-label{font-size:9px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-weight:850;margin-bottom:5px}
.field p{margin:0;font-size:12px}
.source{display:inline-flex;margin-top:8px;background:var(--panel2);color:var(--muted);padding:3px 7px;border-radius:var(--radius-xs);font-size:9px}
.original{white-space:pre-line;color:#d8e0f0;font-size:12px}
.original-full{max-height:360px;overflow:auto;line-height:1.65;margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.05)}
.adapt-storyboard .original-full{max-height:none;overflow:visible}
.adapt-episode-full{max-height:560px}
.scene-expand-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;flex-wrap:wrap}
/* 镜头卡内分镜脚本编辑块（2026-09-02 并入卡主体：去标题条与卡中卡外框） */
.adapt-inline-script{
  margin-top:10px;
}
.adapt-inline-anchor,
.adapt-inline-frame{
  margin-top:8px;
}
.adapt-inline-anchor .edit-label,
.adapt-inline-frame .edit-label{
  font-weight:700;
}
.adapt-inline-empty{
  margin-top:8px;
  padding:10px;
  border:1px dashed var(--line);
  border-radius:8px;
}
/* 分镜脚本独立卡片块展示（2026-09-04 纯分镜脚本，无旁白卡与左右分栏） */
.adapt-storyboard-block{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.storyboard-lead-block{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding-bottom:8px;
  border-bottom:1px dashed rgba(255,255,255,.07);
}
.storyboard-shot-line{
  font-size:13px;
  color:var(--text);
  line-height:1.4;
}
.storyboard-placeholder-text{
  font-size:12px;
  padding:8px 10px;
  background:rgba(255,255,255,.02);
  border:1px dashed rgba(255,255,255,.08);
  border-radius:6px;
}
.storyboard-frames-list{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.storyboard-placeholder-box{
  min-height:44px;
  display:flex;
  align-items:center;
  padding:8px 12px;
  background:rgba(255,255,255,.02);
  border:1px dashed rgba(255,255,255,.08);
  border-radius:8px;
  font-size:12px;
}
.storyboard-tail-block{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding-top:8px;
  border-top:1px dashed rgba(255,255,255,.07);
  font-size:12px;
}
.storyboard-tail-row{
  display:flex;
  align-items:baseline;
  gap:6px;
  line-height:1.5;
}
.storyboard-tail-label{
  font-weight:600;
  color:var(--muted);
  white-space:nowrap;
}
.storyboard-tail-val{
  color:var(--text);
  word-break:break-word;
}
.storyboard-tail-dialogue{
  color:var(--blue);
  background:rgba(59,130,246,0.05);
  padding:6px 10px;
  border-radius:6px;
  border-left:2px solid var(--blue);
}
.storyboard-tail-dialogue .storyboard-tail-label{
  color:var(--blue);
}
.storyboard-frame-dialogue{
  margin-top:6px;
  color:var(--blue);
  background:rgba(59,130,246,0.05);
  padding:6px 10px;
  border-radius:6px;
  border-left:2px solid var(--blue);
  font-size:12px;
  display:flex;
  align-items:baseline;
  gap:6px;
  line-height:1.5;
}
.storyboard-frame-dialogue .storyboard-tail-label{
  color:var(--blue);
  font-weight:600;
  white-space:nowrap;
}
.storyboard-frame-dialogue .storyboard-tail-val{
  color:var(--text);
  word-break:break-word;
}
.storyboard-tail-voice{
  color:var(--purple2);
}
/* 镜头锚定折叠（2026-09-02） */
.adapt-inline-anchor-wrap{
  margin-top:8px;
}
.adapt-inline-anchor-wrap summary{
  cursor:pointer;
  color:var(--muted);
  font-size:11.5px;
  margin:2px 0 6px;
  user-select:none;
}
.adapt-inline-anchor-wrap summary:hover{color:var(--primary)}
.adapt-inline-anchor-wrap .adapt-inline-anchor{margin-top:0}
/* 左栏质检待办列表（2026-09-02 黄条并入左栏） */
.quality-todo-list{
  margin-top:10px;
  padding:8px 10px;
  border:1px solid color-mix(in srgb, var(--primary) 35%, transparent);
  border-radius:10px;
  background:color-mix(in srgb, var(--primary) 6%, transparent);
  display:flex;
  flex-direction:column;
  gap:6px;
  max-height:240px;
  overflow:auto;
}
.quality-todo-list .qt-head{
  font-size:11.5px;
  font-weight:800;
  letter-spacing:.03em;
  color:var(--primary);
}
.quality-todo-list .qt-row{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:11.5px;
  line-height:1.5;
}
.quality-todo-list .qt-shot{
  border:0;
  background:transparent;
  color:var(--primary);
  font-weight:800;
  font-size:11.5px;
  cursor:pointer;
  padding:0;
}
.quality-todo-list .qt-shot:hover{text-decoration:underline}
.quality-todo-list .qt-count{
  color:var(--muted);
  flex:none;
}
.quality-todo-list .qt-first{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--muted);
}
.quality-todo-list .qt-row .btn{flex:none;padding:2px 8px}
/* 待办跳转高亮 */
.adapt-card.qt-flash{
  outline:2px solid var(--primary);
  outline-offset:2px;
  transition:outline-color .3s ease;
}
.field.narration-removed-note{
  margin-top:8px;
  padding:8px 10px;
  border:1px dashed var(--line);
  border-radius:8px;
  font-size:12px;
}
/* 旁白卡内原剧对白参考折叠条（自第 2 步绿盒迁入） */
.std-narr-dialogue-ref{
  margin:6px 0 2px;
  padding:6px 10px;
  border:1px solid #b7d9c0;
  border-left:3px solid rgba(61,139,95,.6);
  border-radius:8px;
  background:rgba(61,139,95,.06);
  font-size:12px;
}
.std-narr-dialogue-ref summary{
  cursor:pointer;
  font-weight:700;
  color:#2c5a3c;
  user-select:none;
}
.std-narr-dialogue-ref .std-narr-dialogue-rows{
  margin-top:6px;
  line-height:1.6;
  color:#20301f;
  white-space:pre-wrap;
}
.btn-expand-scene,.btn-expand-adapt{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.adapt-episode-bar{margin-bottom:0}
#view-adapt.panel-view.active{
  display:flex;
  flex-direction:column;
  height:100%;
  min-height:0;
  overflow:hidden;
}
.main:has(#view-adapt.active){overflow:hidden;padding:12px}
.adapt-split{
  flex:1 1 auto;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:12px;
  align-items:stretch;
}
.adapt-main{
  min-width:0;
  min-height:0;
  overflow:auto;
  display:flex;
  flex-direction:column;
}
.adapt-main > .main-title{flex:0 0 auto}
.adapt-title-block{display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-width:0}
.adapt-title-block h2{margin:0}
.adapt-pane-seg{flex:0 0 auto;font-size:12px}
.adapt-pane-seg button{padding:5px 10px;font-size:12px;white-space:nowrap}
/* 视图头按钮按视图显隐：防后续样式给 .btn 加 display 时破坏 hidden 语义 */
.script-view-actions [hidden]{display:none!important}
/* Skill 规则弹层：原常驻面板改为头部按钮点击弹出，样式复用 api-pop 遮罩体系 */
.skill-pop{position:fixed;inset:0;z-index:220;background:var(--overlay);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:22px;text-align:left}
.skill-pop[hidden]{display:none}
.skill-pop-panel{width:min(820px,94vw);max-height:86vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-xl);padding:16px 18px;box-shadow:var(--shadow-pop);display:flex;flex-direction:column;gap:10px}
.skill-pop-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.skill-pop-head b{font-size:14px;color:var(--text)}
/* v12：弹层顶部「拆镜重组模式」配置条 */
.skill-pop-regroup{align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px;border:1px dashed var(--line);border-radius:var(--radius-md);background:rgba(141,124,255,.06)}
.skill-pop-regroup .field-label{margin:0}
.skill-pop-regroup select{max-width:260px}
/* 分镜脚本子视图：SKILL 面板已迁出，行容器仅剩镜头槽位历史宿主（已不再填充） */
.adapt-skill-row{margin:0 0 14px}
.adapt-skill-row:empty{display:none;margin:0}
@media (max-width:980px){
  .adapt-split{
    grid-template-columns:1fr;
    overflow:auto;
  }
  .adapt-main{overflow:visible}
}

.adapt-episode-full,.adapt-unit-script{margin-top:10px;white-space:pre-wrap}
.adapt-preview{margin:0;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.adapt-full-track{margin:0;white-space:pre-wrap;line-height:1.65}
.adapt-card.is-open .field.visual,.adapt-card.is-open .field.narration{background:rgba(4,7,13,.32)}
/* 旁白轨始终可见，不被折叠成“空白” */
.field.narration .narration-body.adapt-preview{
  display:block;
  -webkit-line-clamp:unset;
  overflow:auto;
  max-height:160px;
  color:#e8e0ff;
  white-space:pre-wrap;
  line-height:1.65;
}
.field.narration .field-label{color:var(--purple2)!important;font-weight:900}
.narration-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.lang-tabs{display:inline-flex;gap:0;border:1px solid rgba(141,124,255,.4);border-radius:7px;overflow:hidden}
.lang-tab{background:transparent;border:none;color:var(--muted);font-size:10px;font-weight:800;padding:3px 10px;cursor:pointer;letter-spacing:.4px}
.lang-tab.is-active{background:var(--purple);color:#fff}
.voice-dir-row{margin-top:8px;padding-top:8px;border-top:1px dashed rgba(141,124,255,.25)}
.voice-dir-body{min-height:40px;color:#cdb8ff;font-style:italic}
.field.narration{border-color:rgba(141,124,255,.35);background:rgba(141,124,255,.06)}
.lockline{display:flex;gap:8px;align-items:center;margin-top:9px;padding-top:9px;border-top:1px solid rgba(255,255,255,.05);color:var(--muted);font-size:10px}
.lock{color:#ffc98c}
.info-list{display:flex;flex-direction:column;gap:8px}
.info{border:1px solid rgba(255,255,255,.055);background:rgba(255,255,255,.025);padding:10px;border-radius:10px}
.info .k{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}
.info .v{font-size:12px;font-weight:760;margin-top:2px}
.issue{display:flex;gap:8px;padding:10px;border:1px solid rgba(255,180,92,.2);background:rgba(255,180,92,.07);border-radius:10px;margin-bottom:8px}
.issue b{font-size:11px}
.issue p{font-size:10px;color:var(--muted);margin:2px 0 0}
.criteria{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.criterion{border:1px solid rgba(255,255,255,.055);border-radius:10px;padding:9px;background:rgba(255,255,255,.025);font-size:10px;color:var(--muted)}
.criterion b{color:var(--green);margin-right:4px}
.footer-actions{position:sticky;bottom:-14px;margin:15px -14px -14px;padding:13px 14px;background:linear-gradient(180deg,transparent,var(--panel2) 28%);display:grid;gap:7px}
.footer-actions .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.section{border-radius:20px;padding:20px;margin-bottom:16px}
.rules{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.rule{border:1px solid var(--line);background:rgba(255,255,255,.025);padding:14px;border-radius:13px}
.rule .n{color:var(--purple2);font-size:10px;font-weight:900}
.rule h3{font-size:13px;margin:5px 0 4px}
.rule p{color:var(--muted);font-size:11px;margin:0}
.spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.code{background:var(--panel2);border:1px solid var(--line);border-radius:var(--radius-card);padding:13px;color:var(--text);font:11px/1.55 var(--font-mono);white-space:pre;overflow:auto}
.toast{
  position:fixed;right:22px;bottom:22px;z-index:10050;
  max-width:min(440px,calc(100vw - 28px));
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-card);
  padding:12px 14px;box-shadow:var(--shadow-pop);
  opacity:0;transform:translateY(10px);transition:opacity var(--duration) var(--ease),transform var(--duration) var(--ease);pointer-events:none;
  font-size:13px;font-weight:700;line-height:1.45;
}
.toast.show{opacity:1;transform:none}
/* 人工文字编辑（失焦自动保存 + 可回退） */
.edit-area{width:100%;box-sizing:border-box;background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:var(--radius-input);padding:8px 10px;font-size:12px;line-height:1.65;font-family:inherit;resize:vertical;min-height:40px}
.edit-area:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus-ring)}
textarea.narration-body{min-height:120px}
.edit-row{margin-bottom:8px}
.edit-row:last-child{margin-bottom:0}
.edit-label{font-size:10px;color:var(--muted);margin:0 0 4px}
/* Skill 规则版本面板：以独立色块标明“规则配置”，避免和内容/结果卡片混淆。 */
.skill-panel{
  --skill-accent:#806fff;
  --skill-border:rgba(128,111,255,.45);
  --skill-wash:rgba(128,111,255,.08);
  position:relative;
  overflow:hidden;
  margin-bottom:14px;
  border:1.5px solid var(--skill-border);
  background:linear-gradient(135deg,var(--skill-wash),rgba(17,26,43,.83) 34%,rgba(17,26,43,.76));
  box-shadow:inset 4px 0 0 var(--skill-accent),0 7px 18px rgba(12,20,35,.1);
}
.skill-panel::after{
  content:"SKILL RULES";
  position:absolute;
  top:0;
  right:18px;
  padding:4px 9px 5px;
  border-radius:0 0 8px 8px;
  background:var(--skill-accent);
  color:#fff;
  font-size:9px;
  font-weight:800;
  letter-spacing:.11em;
  pointer-events:none;
}
.skill-panel .field-label{color:var(--skill-accent);font-weight:800;letter-spacing:.04em}
.skill-panel .skill-bar:first-child{padding-right:86px}
.skill-panel--storyboard{--skill-accent:#7669b7;--skill-border:rgba(118,105,183,.52);--skill-wash:rgba(118,105,183,.1)}
.skill-panel--image-style{--skill-accent:#b8753e;--skill-border:rgba(184,117,62,.52);--skill-wash:rgba(184,117,62,.11)}
.skill-panel--lane-warn{
  overflow:visible;
  border:5px solid transparent;
  border-image:repeating-linear-gradient(45deg,#ffc400 0 10px,#17181c 10px 20px) 5;
  background-image:none;
  box-shadow:inset 4px 0 0 var(--skill-accent),0 7px 18px rgba(12,20,35,.1);
}
.skill-panel--lane-warn.skill-panel::after{
  content:none;
  display:none;
}
.skill-panel--lane-warn .skill-bar:first-child{
  padding-right:0;
  align-items:flex-start;
  flex-wrap:nowrap;
  gap:8px;
}
.aesthetic-lane-note{
  flex:1;
  min-width:0;
  margin:0;
  padding:4px 8px;
  line-height:1.35;
  font-weight:800;
  color:var(--text);
  background:color-mix(in srgb,var(--red) 18%,transparent);
  border:1px solid color-mix(in srgb,var(--red) 28%,transparent);
  border-radius:8px;
}
.aesthetic-lane-badge{
  display:inline-block;
  margin-left:6px;
  padding:0 5px;
  border:1px solid rgba(196,122,43,.45);
  border-radius:999px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.04em;
  color:#a65d16;
  vertical-align:middle;
}
.skill-panel--reference{--skill-accent:#397b71;--skill-border:rgba(57,123,113,.52);--skill-wash:rgba(57,123,113,.11)}
.skill-panel--tts{--skill-accent:#7a6bb8;--skill-border:rgba(122,107,184,.52);--skill-wash:rgba(122,107,184,.11)}
.skill-panel--tts.is-compact{margin:0;padding:12px}
.skill-panel--tts.is-compact .skill-bar:first-child{padding-right:86px}
.skill-panel--tts.is-compact .skill-editor{min-height:160px;max-height:28vh}
.skill-panel--tts.is-compact [data-tts-skill-desc]{display:none}
.tts-skill-preview{
  display:block;width:100%;margin:0 0 4px;padding:8px 10px;
  border:1px dashed color-mix(in srgb,var(--skill-border) 80%,transparent);
  border-radius:10px;background:color-mix(in srgb,var(--skill-wash) 70%,transparent);
  color:inherit;text-align:left;cursor:pointer;
}
.tts-skill-preview:hover{border-style:solid;background:color-mix(in srgb,var(--skill-wash) 100%,transparent)}
.tts-skill-preview pre{
  margin:0;max-height:4.8em;overflow:hidden;
  font:inherit;font-size:11.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word;
  color:var(--muted);
}
/* 模型参数统一放进冷色配置卡片，和内容卡、Skill 规则卡保持明确的视觉语义。 */
.model-config{
  --model-accent:#4a789d;
  --model-border:rgba(74,120,157,.44);
  --model-wash:rgba(74,120,157,.1);
  position:relative;
  min-height:66px;
  margin:0 0 14px;
  padding:18px 15px 12px;
  border:1.5px solid var(--model-border);
  border-radius:14px;
  background:linear-gradient(135deg,var(--model-wash),rgba(17,26,43,.86) 38%,rgba(17,26,43,.74));
  box-shadow:inset 4px 0 0 var(--model-accent),0 7px 18px rgba(12,20,35,.1);
}
.model-config::before{
  content:"MODEL CONFIG";
  position:absolute;
  top:0;
  right:12px;
  padding:3px 8px 4px;
  border:1px solid var(--model-border);
  border-top:0;
  border-radius:0 0 8px 8px;
  background:color-mix(in srgb,var(--model-wash) 88%,#111a2b);
  color:var(--model-accent);
  font-size:9px;
  font-weight:800;
  letter-spacing:.12em;
  pointer-events:none;
}
.model-config .segmented{background:color-mix(in srgb,var(--model-wash) 60%,rgba(17,26,43,.92));border-color:var(--model-border)}
.model-config .select,.model-config .search{border-color:color-mix(in srgb,var(--model-border) 76%,var(--border))}
.model-config .run-model-label{color:var(--model-accent);font-weight:750}
.model-config--image-library{--model-accent:#4c789e;--model-border:rgba(76,120,158,.45);--model-wash:rgba(76,120,158,.11)}
.model-config--storyboard{--model-accent:#3f6f9d;--model-border:rgba(63,111,157,.47);--model-wash:rgba(63,111,157,.11)}
.model-config--video{--model-accent:#5f6fb2;--model-border:rgba(95,111,178,.48);--model-wash:rgba(95,111,178,.11)}
.model-config--tts{--model-accent:#3d827f;--model-border:rgba(61,130,127,.48);--model-wash:rgba(61,130,127,.11)}
.skill-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.skill-bar:last-child{margin-bottom:0}
.skill-bar .select{width:auto;max-width:340px}
.skill-editor{min-height:340px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;line-height:1.6;white-space:pre-wrap;margin-bottom:8px}
.skill-note{flex:1;min-width:220px;margin:0}
/* 项目级人物选角基线：折叠在资产工具栏「重新核对」左侧 */
.visual-cast-fold{
  position:relative;
  margin:0;
  flex:0 1 auto;
  max-width:min(420px,48vw);
}
.visual-cast-summary{
  list-style:none;
  display:inline-flex;
  align-items:center;
  gap:6px;
  cursor:pointer;
  user-select:none;
  padding:5px 10px;
  border-radius:999px;
  border:1px solid rgba(74,120,157,.42);
  background:linear-gradient(135deg,rgba(74,120,157,.14),rgba(17,26,43,.35));
  box-shadow:inset 3px 0 0 #4a789d;
  white-space:nowrap;
}
.visual-cast-summary::-webkit-details-marker{display:none}
.visual-cast-summary::after{
  content:"▾";
  font-size:10px;
  color:var(--muted);
  margin-left:2px;
  transition:transform .15s ease;
}
.visual-cast-fold[open] .visual-cast-summary::after{transform:rotate(180deg)}
.visual-cast-kicker{
  color:#6299c4;
  font-size:10px;
  font-weight:850;
  letter-spacing:.06em;
}
.visual-cast-summary .badge{font-size:10px;padding:2px 7px}
.visual-cast-pop{
  position:absolute;
  right:0;
  top:calc(100% + 8px);
  z-index:40;
  width:min(560px,78vw);
  padding:12px 14px;
  border-radius:12px;
  border:1.5px solid rgba(74,120,157,.45);
  background:var(--panel, #111a2b);
  box-shadow:0 14px 34px rgba(0,0,0,.22), inset 4px 0 0 #4a789d;
  box-sizing:border-box;
}
.visual-cast-text{
  margin:0;
  font-size:12px;
  line-height:1.6;
  white-space:pre-wrap;
  max-height:min(36vh,280px);
  overflow:auto;
}
.visual-cast-meta{margin-top:6px;line-height:1.5;font-size:11px}
.visual-cast-pop-actions{
  margin-top:10px;
  display:flex;
  justify-content:flex-end;
}
.script-preamble-fold .visual-cast-summary{
  border-color:rgba(255,180,92,.55);
  background:linear-gradient(135deg,rgba(255,180,92,.16),rgba(17,26,43,.35));
  box-shadow:inset 3px 0 0 #c8892e;
}
.script-preamble-fold .visual-cast-kicker{color:#c8892e}
.script-preamble-pop{
  border-color:rgba(255,180,92,.45);
  box-shadow:0 14px 34px rgba(0,0,0,.22), inset 4px 0 0 #c8892e;
}
.preamble-excerpt-fold{
  margin:0 0 12px;
  padding:8px 10px;
  border-radius:10px;
  border:1.5px solid rgba(255,180,92,.42);
  background:rgba(255,180,92,.10);
}
.preamble-excerpt-fold > summary{
  cursor:pointer;
  font-size:12px;
  font-weight:750;
  color:#c8892e;
  list-style:none;
}
.preamble-excerpt-fold > summary::-webkit-details-marker{display:none}
.preamble-excerpt-text{
  margin:8px 0 0;
  max-height:min(28vh,220px);
  overflow:auto;
  white-space:pre-wrap;
  font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;
  color:var(--text);
}
/* 兼容旧 class 名（若仍有引用） */
.visual-cast-card{margin:0}
.visual-cast-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* 浅/深只切 data-theme；具体令牌由 JS 写入 */
body[data-theme="light"],
body[data-theme="dark"]{
  background:var(--bg);color:var(--text);
}
body[data-theme="light"] .logo{background:linear-gradient(135deg,var(--primary),var(--primary-hover));box-shadow:0 0 18px color-mix(in srgb, var(--primary) 35%, transparent)}
body[data-theme="light"] .project-entry{
  border-color:transparent;
  border-right-color:color-mix(in srgb, var(--primary) 40%, transparent);
  background:transparent;
  box-shadow:none;
}
body[data-theme="light"] .project-entry:hover{
  border-right-color:var(--primary-hover);
  background:color-mix(in srgb, var(--primary) 12%, transparent);
}
body[data-theme="light"] .project-context{
  border-color:var(--primary);
  background:linear-gradient(145deg,color-mix(in srgb, var(--primary) 14%, transparent),rgba(255,255,255,.55));
  box-shadow:0 0 0 1px color-mix(in srgb, var(--primary) 16%, transparent) inset,0 6px 16px color-mix(in srgb, var(--primary) 10%, transparent);
}
body[data-theme="light"] .project-context:hover{
  border-color:var(--primary-hover);
  background:linear-gradient(145deg,color-mix(in srgb, var(--primary) 20%, transparent),rgba(255,255,255,.7));
}
body[data-theme="light"] .project-entry-kicker{color:var(--primary-active)}
body[data-theme="light"] .badge.green{color:var(--green);border-color:rgba(76,128,85,.4);background:rgba(76,128,85,.10)}
body[data-theme="light"] .badge.orange{color:var(--orange);border-color:rgba(184,134,11,.4);background:rgba(184,134,11,.10)}
body[data-theme="light"] .badge.purple{color:var(--primary);border-color:color-mix(in srgb, var(--primary) 45%, transparent);background:color-mix(in srgb, var(--primary) 10%, transparent)}
body[data-theme="light"] .badge.blue{color:var(--blue);border-color:rgba(91,127,166,.4);background:rgba(91,127,166,.10)}
body[data-theme="light"] .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .btn:hover{background:color-mix(in srgb, var(--primary) 10%, var(--btn-bg));border-color:var(--primary);color:var(--btn-text);filter:none;box-shadow:none;}
body[data-theme="light"] .btn.primary{background:var(--btn-primary-bg);color:var(--on-primary);border-color:transparent;box-shadow:none;text-shadow:none;}
body[data-theme="light"] .btn.primary:hover{background:var(--primary-hover);color:var(--on-primary);border-color:transparent;filter:none;box-shadow:none;text-shadow:none;}
body[data-theme="light"] .hero-card,body[data-theme="light"] .summary-card,body[data-theme="light"] .flow-card,body[data-theme="light"] .app-shell,body[data-theme="light"] .section{background:var(--panel)}
body[data-theme="light"] .app-top{
  background:var(--topbar-bg);
  border-bottom:1px solid var(--line);
  box-shadow:none;
}
body[data-theme="light"] .app-top::after{
  background:var(--primary);
}
body[data-theme="light"] .stepper{
  border:1px solid var(--line);
  background:var(--panel2);
  box-shadow:none;
}
body[data-theme="light"] .step-tab{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--line);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .step-tab:hover{color:var(--text);background:color-mix(in srgb, var(--primary) 12%, var(--btn-bg));border-color:var(--primary);box-shadow:none;filter:none;text-shadow:none;}
body[data-theme="light"] .step-tab:active{transform:translateY(1px);box-shadow:none;}
body[data-theme="light"] .step-tab.active{background:var(--primary);color:var(--on-primary);border-color:transparent;box-shadow:none;text-shadow:none;filter:none;font-weight:800;}


body[data-theme="light"] .segmented{background:var(--panel2)}
body[data-theme="light"] .segmented button.active{background:var(--panel);color:var(--text);box-shadow:0 1px 3px color-mix(in srgb, var(--text) 14%, transparent)}
body[data-theme="light"] .sidebar,body[data-theme="light"] .inspector{background:var(--panel2)}
body[data-theme="light"] .workbench-head,body[data-theme="light"] .workbench .inspector-runs{border-color:var(--line)}
body[data-theme="light"] .workbench .info{background:color-mix(in srgb, var(--text) 4%, transparent);border-color:color-mix(in srgb, var(--text) 12%, transparent)}
body[data-theme="light"] .workbench .run-panel{background:linear-gradient(145deg,color-mix(in srgb, var(--primary) 8%, transparent),rgba(255,255,255,.72) 70%);border-color:color-mix(in srgb, var(--primary) 30%, transparent)}
body[data-theme="light"] .workbench-secondary{border-color:color-mix(in srgb, var(--primary) 26%, transparent)}
body[data-theme="light"] .side-toggle{background:var(--panel);border-color:var(--line);color:var(--muted)}
body[data-theme="light"] .side-toggle:hover{color:var(--text);border-color:var(--primary-hover)}
body[data-theme="light"] .search,body[data-theme="light"] .select{background:var(--panel);border-color:var(--line)}
body[data-theme="light"] .side-nav-block{border-color:var(--line);background:rgba(255,255,255,.55)}
body[data-theme="light"] .episode{border-color:color-mix(in srgb, var(--text) 25%, transparent);background:var(--panel)}
body[data-theme="light"] .episode:hover{background:var(--panel2)}
body[data-theme="light"] .episode.active{background:color-mix(in srgb, var(--primary) 10%, transparent);border-color:color-mix(in srgb, var(--primary) 45%, transparent)}
body[data-theme="light"] .ep-num{background:var(--panel2)}
body[data-theme="light"] .episode.active .ep-num{background:var(--primary);color:#FFFFFF}
body[data-theme="light"] .card,body[data-theme="light"] .scene-card{background:var(--panel)}
body[data-theme="light"] .upload{border-color:var(--line);background:linear-gradient(155deg,color-mix(in srgb, var(--primary) 6%, transparent),rgba(91,127,166,.03))}
body[data-theme="light"] .scene-head{background:color-mix(in srgb, var(--text) 2%, transparent);border-bottom-color:var(--line)}
body[data-theme="light"] .field,body[data-theme="light"] .metric,body[data-theme="light"] .node,body[data-theme="light"] .rule,body[data-theme="light"] .check,body[data-theme="light"] .info,body[data-theme="light"] .criterion{background:color-mix(in srgb, var(--text) 3%, transparent);border-color:color-mix(in srgb, var(--text) 10%, transparent)}
body[data-theme="light"] .hard{border-color:rgba(184,134,11,.45);background:linear-gradient(150deg,rgba(184,134,11,.10),color-mix(in srgb, var(--text) 2%, transparent))}
body[data-theme="light"] .ai{border-color:rgba(91,127,166,.4)}
body[data-theme="light"] .arrow{color:#A8A296}
body[data-theme="light"] .source{background:var(--panel2);color:var(--muted)}
body[data-theme="light"] .original{color:var(--text)}
body[data-theme="light"] .original-full{border-top-color:color-mix(in srgb, var(--text) 10%, transparent)}
body[data-theme="light"] .adapt-scene-group{border-color:color-mix(in srgb, var(--primary) 28%, transparent);background:color-mix(in srgb, var(--primary) 4%, transparent)}
body[data-theme="light"] .scene-id{color:var(--primary);background:color-mix(in srgb, var(--primary) 12%, transparent)}
body[data-theme="light"] .field.narration{border-color:color-mix(in srgb, var(--primary) 35%, transparent);background:color-mix(in srgb, var(--primary) 5%, transparent)}
body[data-theme="light"] .field.narration .narration-body,body[data-theme="light"] .field.narration .narration-body.adapt-preview{color:var(--text)}
body[data-theme="light"] .adapt-card.is-open .field.visual,body[data-theme="light"] .adapt-card.is-open .field.narration{background:color-mix(in srgb, var(--text) 5%, transparent)}
body[data-theme="light"] .lockline{border-top-color:color-mix(in srgb, var(--text) 10%, transparent)}
body[data-theme="light"] .lock{color:var(--orange)}
body[data-theme="light"] .correction{border-color:rgba(184,134,11,.35);background:rgba(184,134,11,.07)}
body[data-theme="light"] .correction strong{color:var(--orange)}
body[data-theme="light"] .save{color:var(--green)}
body[data-theme="light"] .footer-actions{background:linear-gradient(180deg,rgba(245,244,239,.15),var(--panel2) 28%)}
body[data-theme="light"] .code{background:var(--panel2);border-color:var(--line);color:var(--muted)}
body[data-theme="light"] .toast{background:var(--panel);border-color:var(--line);color:var(--text)}
body[data-theme="light"] .edit-area{background:var(--panel);border-color:var(--line);color:var(--text)}
body[data-theme="light"] .edit-area:focus{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 20%, transparent)}
body[data-theme="light"] .skill-panel{
  background:linear-gradient(135deg,var(--skill-wash),rgba(255,255,255,.9) 38%,rgba(250,249,245,.96));
  border-color:var(--skill-border);
  box-shadow:inset 4px 0 0 var(--skill-accent),0 7px 18px color-mix(in srgb, var(--text) 6%, transparent);
}
body[data-theme="light"] .skill-panel .field-label{color:var(--skill-accent)}
body[data-theme="light"] .skill-panel--storyboard{--skill-accent:#7565b3;--skill-border:rgba(117,101,179,.48);--skill-wash:rgba(117,101,179,.1)}
body[data-theme="light"] .skill-panel--image-style{--skill-accent:#b46f3d;--skill-border:rgba(180,111,61,.5);--skill-wash:rgba(180,111,61,.1)}
body[data-theme="light"] .skill-panel--lane-warn{
  border-color:transparent;
  background-image:none;
  box-shadow:inset 4px 0 0 var(--skill-accent),0 7px 18px color-mix(in srgb, var(--text) 6%, transparent);
}
body[data-theme="light"] .skill-panel--reference{--skill-accent:#3d796d;--skill-border:rgba(61,121,109,.5);--skill-wash:rgba(61,121,109,.1)}
body[data-theme="light"] .skill-panel--tts{--skill-accent:#6f62ad;--skill-border:rgba(111,98,173,.48);--skill-wash:rgba(111,98,173,.1)}
body[data-theme="light"] .model-config{
  background:linear-gradient(135deg,var(--model-wash),rgba(255,255,255,.92) 38%,rgba(247,249,251,.98));
  border-color:var(--model-border);
  box-shadow:inset 4px 0 0 var(--model-accent),0 7px 18px color-mix(in srgb, var(--text) 6%, transparent);
}
body[data-theme="light"] .model-config::before{background:color-mix(in srgb,var(--model-wash) 82%,#fff)}
body[data-theme="light"] .model-config .segmented{background:color-mix(in srgb,var(--model-wash) 55%,#fff);border-color:var(--model-border)}
body[data-theme="light"] .visual-cast-summary{
  border-color:rgba(74,120,157,.4);
  background:linear-gradient(135deg,rgba(74,120,157,.12),rgba(255,255,255,.92));
  box-shadow:inset 3px 0 0 #4a789d;
}
body[data-theme="light"] .visual-cast-pop{
  border-color:rgba(74,120,157,.42);
  background:rgba(255,255,255,.98);
  box-shadow:0 14px 34px color-mix(in srgb, var(--text) 12%, transparent), inset 4px 0 0 #4a789d;
}
body[data-theme="light"] .visual-cast-kicker{color:var(--blue)}
body[data-theme="light"] .script-preamble-fold .visual-cast-summary{
  border-color:#E0A84A;
  background:linear-gradient(135deg,#FFE9C8,rgba(255,255,255,.92));
  box-shadow:inset 3px 0 0 #c8892e;
}
body[data-theme="light"] .script-preamble-fold .visual-cast-kicker{color:#A56A14}
body[data-theme="light"] .script-preamble-pop{
  border-color:#E6C07A;
  background:#FFFBF3;
  box-shadow:0 14px 34px color-mix(in srgb, var(--text) 12%, transparent), inset 4px 0 0 #c8892e;
}
body[data-theme="light"] .preamble-excerpt-fold{
  background:#FFF4E5;
  border-color:#E6C07A;
}
body[data-theme="light"] .preamble-excerpt-fold > summary{color:#A56A14}
body[data-theme="light"] .progress{background:var(--line)}
body[data-theme="light"] .progress>i{background:linear-gradient(90deg,var(--primary),var(--primary-hover))}
@media(max-width:1230px){.workspace{grid-template-columns:minmax(280px,320px) 1fr}.workspace.side-collapsed{grid-template-columns:52px 1fr}.flow{grid-template-columns:repeat(6,1fr)}.node,.node.wide{grid-column:span 2}.arrow{display:none}}
@media(max-width:850px){.page{padding:12px}.hero{grid-template-columns:1fr}.workspace{grid-template-columns:1fr}.sidebar{display:none}.scene-grid,.spec-grid,.rules,.check-grid{grid-template-columns:1fr}.flow{grid-template-columns:1fr}.node,.node.wide{grid-column:span 1}.app-top{flex-wrap:wrap;gap:8px}.stepper{order:5;width:100%;overflow:auto}.topbar-actions{margin-left:auto}.workspace:has(#view-upload.active) .sidebar{display:flex;max-height:min(58vh,560px);border-right:0;border-bottom:1px solid var(--line)}}

/* —— 第4步·生图：跨全集角色资产 —— */
.char-panel .char-summary{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}
.char-chip{border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:800;color:var(--muted);background:rgba(255,255,255,.03)}
.char-chip.chip-main{color:var(--orange);border-color:rgba(255,180,92,.4);background:rgba(255,180,92,.08)}
.char-chip.chip-rec{color:var(--blue);border-color:rgba(88,184,255,.4);background:rgba(88,184,255,.08)}
.char-chip.chip-review{color:var(--red);border-color:rgba(255,123,134,.4);background:rgba(255,123,134,.08)}
.char-legend{font-size:11px;line-height:1.5;margin:0 0 10px;text-align:center}
.char-legend b{color:var(--text)}
.asset-legend-banner{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;
  padding:10px 12px;border-radius:14px;
  border:1px solid rgba(141,124,255,.22);
  background:linear-gradient(180deg,rgba(141,124,255,.10),rgba(141,124,255,.04));
}
.asset-legend-item{
  display:inline-flex;align-items:center;gap:4px;
  padding:5px 11px;border-radius:999px;font-size:12px;font-weight:800;line-height:1.35;
  border:1px solid transparent;white-space:nowrap;
}
.asset-legend-item.is-main{color:#b45309;background:rgba(255,180,92,.16);border-color:rgba(255,180,92,.38)}
.asset-legend-item.is-rec{color:#1d6fa5;background:rgba(88,184,255,.14);border-color:rgba(88,184,255,.36)}
.asset-legend-item.is-once{color:#6b7280;background:rgba(120,130,150,.12);border-color:rgba(120,130,150,.28)}
.asset-legend-item.is-note{color:var(--muted);background:rgba(255,255,255,.04);border-color:var(--line);font-weight:700}
.tier-block{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px;background:rgba(255,255,255,.02)}
.tier-block.tier-main{border-left:3px solid var(--orange)}
.tier-block.tier-rec{border-left:3px solid var(--blue)}
.tier-block.tier-once{border-left:3px solid var(--line)}
.tier-head{display:flex;justify-content:center;margin:0 0 10px}
.tier-head-pill{
  display:inline-flex;align-items:center;justify-content:center;
  padding:7px 16px;border-radius:999px;font-size:13px;font-weight:850;line-height:1.35;
  letter-spacing:.2px;border:1px solid transparent;text-align:center;
}
.tier-block.tier-main .tier-head-pill{
  color:#9a3412;background:linear-gradient(180deg,rgba(255,180,92,.22),rgba(255,180,92,.10));
  border-color:rgba(255,180,92,.42);box-shadow:0 1px 0 rgba(255,255,255,.25) inset;
}
.tier-block.tier-rec .tier-head-pill{
  color:#0f5f93;background:linear-gradient(180deg,rgba(88,184,255,.20),rgba(88,184,255,.08));
  border-color:rgba(88,184,255,.40);box-shadow:0 1px 0 rgba(255,255,255,.2) inset;
}
.tier-block.tier-once .tier-head-pill{
  color:#4b5563;background:linear-gradient(180deg,rgba(148,163,184,.18),rgba(148,163,184,.08));
  border-color:rgba(148,163,184,.35);box-shadow:0 1px 0 rgba(255,255,255,.18) inset;
}
body[data-theme="light"] .asset-legend-banner{background:linear-gradient(180deg,rgba(141,124,255,.08),rgba(255,255,255,.65));border-color:rgba(141,124,255,.18)}
body[data-theme="light"] .asset-legend-item.is-main{color:var(--primary)}
body[data-theme="light"] .asset-legend-item.is-rec{color:var(--blue)}
body[data-theme="light"] .asset-legend-item.is-once{color:#4b5563}
body[data-theme="light"] .tier-block.tier-main .tier-head-pill{color:var(--primary)}
body[data-theme="light"] .tier-block.tier-rec .tier-head-pill{color:var(--blue)}
body[data-theme="light"] .tier-block.tier-once .tier-head-pill{color:#4b5563}
.char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:10px}
.char-card{border:1px solid var(--line);border-radius:11px;padding:11px;background:rgba(13,20,34,.6);display:flex;flex-direction:column;gap:7px}
.char-card.approved{border-color:rgba(72,213,166,.55);box-shadow:0 0 0 1px rgba(72,213,166,.18) inset}
.char-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.char-name{font-weight:850;font-size:14px}
.char-stat{font-size:10px;white-space:nowrap}
.char-eps{font-size:10px;line-height:1.5;word-break:break-all}
.char-alias{font-size:10px;font-style:italic}
.char-badge{font-size:9px;font-weight:900;padding:2px 6px;border-radius:6px;vertical-align:middle}
.b-group{color:var(--orange);background:rgba(255,180,92,.14)}
.b-scene{color:var(--blue);background:rgba(88,184,255,.14)}
.b-variant{color:var(--purple2);background:rgba(141,124,255,.16)}
.char-controls{display:flex;align-items:center;gap:8px}
.char-controls .select{width:auto;flex:1;padding:6px 8px;font-size:11px}
.char-review{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--muted);white-space:nowrap}
.char-baseprompt{min-height:44px;font-size:11px}
.variant-list{display:flex;flex-direction:column;gap:4px}
.variant-row{display:flex;flex-direction:column;gap:4px;font-size:11px;border:1px dashed var(--line);border-radius:8px;padding:6px 8px}
.variant-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.variant-state{line-height:1.5;word-break:break-word}
.variant-prompt{line-height:1.55;word-break:break-word;color:var(--purple2);background:rgba(141,124,255,.08);border-radius:6px;padding:5px 7px}
.variant-row .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.char-actions{display:flex;gap:6px;flex-wrap:wrap}
.char-actions .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .char-card{background:var(--panel);border-color:var(--line)}
body[data-theme="light"] .tier-block{background:rgba(0,0,0,.02)}
body[data-theme="light"] .char-chip{background:rgba(0,0,0,.03)}
body[data-theme="light"] .variant-prompt{color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, transparent)}

/* 阶段2：开始AI生成 运行面板 */
.run-panel{border-color:rgba(141,124,255,.3)}
.run-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.run-head b{font-size:14px}
.run-progress{height:8px;background:var(--panel2);border-radius:var(--radius-pill);overflow:hidden;margin:12px 0 8px}
.run-bar{height:100%;width:0;background:linear-gradient(90deg,var(--purple),var(--blue));border-radius:99px;transition:width .2s ease}
.run-log{display:flex;flex-direction:column;gap:4px;max-height:200px;overflow:auto;margin-top:6px;white-space:pre-wrap;word-break:break-word}
.run-log-item{font-size:10px;line-height:1.4;color:var(--muted,#9aa8c7);padding:2px 0;border-bottom:1px solid rgba(255,255,255,.04)}
body[data-theme="light"] .run-log-item{border-bottom-color:rgba(0,0,0,.05);color:var(--muted)}
.run-line{display:flex;gap:8px;align-items:baseline;padding:4px 8px;background:rgba(255,255,255,.03);border-radius:8px;font-size:12px}
.run-line.warn{border-left:3px solid var(--orange)}
.run-line.fail{border-left:3px solid var(--red)}
/* 运行面板并入右侧检查器：窄列自适应堆叠 */
.inspector-runs{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.inspector .run-panel{padding:11px;margin:0}
.inspector .run-head{gap:8px}
.inspector .run-head>div:first-child{flex:1 1 100%}
.inspector .run-head b{font-size:13px}
.inspector .run-head .grow{display:none}
.inspector .run-head .run-model-label{align-self:center}
.text-model-picker{display:flex;flex-direction:column;align-items:stretch;min-width:0}
.inspector .run-head .text-model-picker{flex:1 1 160px;min-width:140px}
.text-model-thinking-hint{font-size:11px;line-height:1.35;margin:2px 0 4px;opacity:.88}
.text-model-thinking-hint[hidden]{display:none !important}
.inspector .run-head #imageModelSelect{flex:1 1 100%;max-width:100%}
.inspector .run-progress{margin:10px 0 6px}
.inspector .run-log{max-height:150px}
/* 右侧工作台以单一主操作为先，避免继承窄栏运行面板的全宽换行。 */
.inspector.workbench .run-panel{padding:12px;background:linear-gradient(145deg,rgba(141,124,255,.10),rgba(255,255,255,.025) 62%);border-color:rgba(141,124,255,.38)}
.inspector.workbench .run-head>div:first-child{flex:1 1 120px}
.inspector.workbench .run-head b{font-size:13px}
.inspector.workbench .run-head .muted{font-size:10px;line-height:1.4}
body[data-theme="light"] .inspector.workbench .run-panel{background:linear-gradient(145deg,color-mix(in srgb, var(--primary) 8%, transparent),rgba(255,255,255,.72) 70%);border-color:color-mix(in srgb, var(--primary) 30%, transparent)}
.review-card{border:1px solid rgba(255,180,92,.4);border-radius:12px;padding:12px;margin-bottom:12px;background:rgba(255,180,92,.06)}
.review-card .review-head{display:flex;gap:8px;align-items:center;font-weight:800;margin-bottom:8px}
.review-item{display:flex;gap:8px;font-size:12px;padding:3px 0;color:var(--muted)}
.review-item b{color:var(--text)}
.review-item.warn b{color:var(--orange)}
body[data-theme="light"] .run-progress{background:rgba(0,0,0,.06)}
body[data-theme="light"] .run-line{background:rgba(0,0,0,.03)}
body[data-theme="light"] .review-card{background:color-mix(in srgb, var(--primary) 6%, transparent);border-color:color-mix(in srgb, var(--primary) 30%, transparent)}

/* ===== 第4步图片资产库 ===== */

/* 生图页：美学风格 / 参考图 Skill 左右并排，压缩纵向占位 */
.imagegen-skill-stack{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px;
  align-items:start;
  margin:0 0 14px;
}
.imagegen-skill-stack .skill-panel{
  display:flex;
  flex-direction:column;
  margin:0;
  min-width:0;
  height:auto;
}
.imagegen-skill-stack .aesthetic-layout{
  flex:none;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.imagegen-skill-stack .skill-bar{
  margin-bottom:4px;
}
.imagegen-skill-stack .skill-bar .select{
  max-width:min(220px,42vw);
}
.imagegen-skill-stack .skill-panel .muted{
  font-size:11px;
  line-height:1.35;
}
.imagegen-skill-stack .segmented{
  flex-wrap:wrap;
}
.imagegen-skill-stack .skill-editor{
  min-height:220px;
}
.imagegen-skill-stack .skill-panel--image-style .aesthetic-rail{
  width:100%;
  max-width:none;
}
.aesthetic-layout{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-height:0;
}
.aesthetic-rail{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:6px;
  width:100%;
  max-width:none;
}
.aesthetic-lane{
  display:flex;
  align-items:stretch;
  gap:4px;
  min-width:0;
}
.aesthetic-lane .aesthetic-chip{
  flex:1 1 auto;
  min-width:0;
}
.aesthetic-lane-switch{
  appearance:none;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0;
  padding:4px 8px;
  min-width:42px;
  border:2px solid var(--skill-accent);
  border-radius:10px;
  background:color-mix(in srgb, var(--skill-accent) 22%, var(--panel));
  color:var(--skill-accent);
  font:inherit;
  font-size:11px;
  font-weight:800;
  letter-spacing:.04em;
  line-height:1.2;
  cursor:pointer;
  white-space:nowrap;
}
.aesthetic-lane-switch:hover:not(:disabled){
  background:color-mix(in srgb, var(--skill-accent) 36%, var(--panel));
  border-color:var(--skill-accent);
  filter:none;
}
.aesthetic-lane-switch.is-current{
  border-color:var(--green);
  background:var(--green);
  color:#fff;
  box-shadow:none;
  cursor:default;
  opacity:1;
}
.aesthetic-lane-switch:disabled:not(.is-current){
  opacity:.55;
  cursor:default;
}
.aesthetic-chip{
  appearance:none;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:2px;
  min-width:0;
  margin:0;
  padding:6px 8px;
  border:1px solid var(--skill-border);
  border-radius:10px;
  background:var(--skill-wash);
  color:inherit;
  text-align:left;
  font:inherit;
  line-height:1.2;
  cursor:pointer;
}
.aesthetic-chip:hover{
  filter:brightness(1.04);
}
.aesthetic-chip.is-on,
.aesthetic-chip.is-shown{
  border-color:var(--skill-accent);
  box-shadow:inset 0 0 0 1px var(--skill-accent);
}
.aesthetic-chip.is-pending{
  opacity:.68;
}
.aesthetic-chip-title{
  display:flex;
  align-items:center;
  gap:4px;
  min-width:0;
  max-width:100%;
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
}
.aesthetic-chip-title .aesthetic-lane-badge{
  margin-left:0;
  flex:0 0 auto;
}
.aesthetic-chip-sub{
  max-width:100%;
  font-size:11px;
  font-weight:650;
  color:var(--muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.aesthetic-chip.is-on .aesthetic-chip-sub{
  color:inherit;
  font-weight:750;
}
.aesthetic-modal-toolbar{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:8px;
}
.aesthetic-modal-toolbar .select{
  min-width:160px;
}
@media (max-width:1180px){
  .imagegen-skill-stack{
    grid-template-columns:1fr;
  }
  .imagegen-skill-stack .skill-bar .select{
    max-width:340px;
  }
}

.imagegen-chrome{
  display:flex;align-items:stretch;gap:12px;
  margin:4px 0 16px;
  position:sticky;top:0;z-index:45;
  padding:6px 0 8px;
  background:color-mix(in srgb, var(--bg) 92%, transparent);
  backdrop-filter:blur(14px) saturate(1.15);
  -webkit-backdrop-filter:blur(14px) saturate(1.15);
}
.imagegen-viewtabs{
  flex:0 0 auto;
  display:flex;justify-content:flex-start;align-items:stretch;
  margin:0;padding:0;border:0;border-radius:0;background:none;
}
.imagegen-viewtabs-inner{display:flex;align-items:stretch}
.imagegen-view-hint{display:none}
.imagegen-chrome-tools{
  flex:1 1 auto;min-width:0;
  display:flex;align-items:stretch;
}
.imagegen-chrome-tools > .skill-bar.model-config{
  flex:1 1 auto;width:100%;margin:0;box-sizing:border-box;
  min-height:80px;
}
.imagegen-chrome-tools > [hidden]{display:none !important}
.imagegen-view-seg{
  display:flex;justify-content:flex-start;align-items:stretch;gap:10px;
  width:auto;max-width:none;height:100%;min-height:80px;
  padding:8px;border-radius:18px;
  border:2.5px solid rgba(120,150,210,.72);
  background:rgba(8,14,24,.55);
  box-shadow:0 8px 22px rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.04);
}
.imagegen-view-seg button{
  flex:0 0 auto;min-width:176px;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  border:2px solid transparent;border-radius:14px;
  padding:14px 26px;font-size:16px;font-weight:850;letter-spacing:.2px;
  color:var(--muted);background:rgba(255,255,255,.02);
  transition:transform .12s ease, border-color .12s ease, background .12s ease, color .12s ease, box-shadow .12s ease;
}
.imagegen-view-seg button .ig-tab-no{
  display:inline-grid;place-items:center;
  width:26px;height:26px;border-radius:999px;font-size:13px;font-weight:900;
  border:1.5px solid currentColor;opacity:.85;
}
.imagegen-view-seg button[data-view="assets"]{border-color:rgba(141,124,255,.62)}
.imagegen-view-seg button[data-view="storyboard"]{border-color:rgba(43,191,138,.62)}

.imagegen-view-seg button:hover{
  transform:translateY(-1px);
  color:var(--text);
  filter:brightness(1.04);
}
/* 选中态：强制有色底 + 白字，避免浅色主题 segmented.active 白底把文字冲没 */
.imagegen-view-seg.segmented button.active,
.imagegen-view-seg.segmented button.active .ig-tab-label,
.imagegen-view-seg.segmented button.active .ig-tab-no{
  color:#ffffff !important;
}
.imagegen-view-seg.segmented button[data-view="assets"].active{
  background:linear-gradient(145deg,#7d6cff,#5f8dff) !important;
  border-color:#6a58f0 !important;
  box-shadow:0 8px 18px rgba(125,108,255,.30), 0 0 0 1px rgba(183,172,255,.8);
}
.imagegen-view-seg.segmented button[data-view="storyboard"].active{
  background:linear-gradient(145deg,#2bbf8a,#1f9a6d) !important;
  border-color:#168a5e !important;
  box-shadow:0 8px 18px rgba(43,191,138,.28), 0 0 0 1px rgba(143,232,196,.75);
}
.imagegen-view-seg.segmented button.active .ig-tab-no{
  background:rgba(255,255,255,.22);
  border-color:rgba(255,255,255,.7);
  opacity:1;
  color:#ffffff !important;
}
.imagegen-view-seg.segmented button .ig-tab-label{
  color:inherit;
}
body[data-theme="light"] .imagegen-viewtabs{
  border:0;
  background:none;
}
body[data-theme="light"] .imagegen-view-seg{
  background:rgba(255,255,255,.86);
  border-color:rgba(120,96,72,.55);
  box-shadow:0 8px 20px rgba(80,60,40,.10), inset 0 1px 0 rgba(255,255,255,.85);
}
body[data-theme="light"] .imagegen-view-seg.segmented button{
  color:#5c5649;
  background:rgba(255,255,255,.72);
}
/* 再盖一层，确保浅色主题选中项不会被全局白底规则覆盖 */
body[data-theme="light"] .imagegen-view-seg.segmented button[data-view="assets"].active{
  background:linear-gradient(145deg,#7d6cff,#5f8dff) !important;
  color:#ffffff !important;
}
body[data-theme="light"] .imagegen-view-seg.segmented button[data-view="storyboard"].active{
  background:linear-gradient(145deg,#2bbf8a,#1f9a6d) !important;
  color:#ffffff !important;
}
body[data-theme="light"] .imagegen-view-seg.segmented button.active .ig-tab-label,
body[data-theme="light"] .imagegen-view-seg.segmented button.active .ig-tab-no{
  color:#ffffff !important;
}

.script-viewtabs{
  display:flex;justify-content:center;align-items:center;
  margin:4px 0 16px;padding:10px 12px 12px;
  border:1px dashed rgba(232,149,74,.38);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(232,149,74,.08),rgba(43,191,138,.04));
}
.script-viewtabs-inner{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:520px}
.script-view-hint{text-align:center;font-size:11px;line-height:1.4}
.script-view-seg{
  display:flex;justify-content:center;align-items:stretch;gap:8px;
  width:100%;max-width:480px;
  padding:6px;border-radius:14px;
  border:1.5px solid rgba(185,150,110,.42);
  background:rgba(8,14,24,.55);
  box-shadow:0 8px 22px rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.04);
}
.script-view-seg button{
  flex:1 1 0;min-width:0;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  border:1.5px solid transparent;border-radius:11px;
  padding:10px 12px;font-size:13px;font-weight:800;letter-spacing:.2px;
  color:var(--muted);background:rgba(255,255,255,.02);
  transition:transform .12s ease, border-color .12s ease, background .12s ease, color .12s ease, box-shadow .12s ease;
}
.script-view-seg button .sc-tab-no{
  display:inline-grid;place-items:center;
  width:18px;height:18px;border-radius:999px;font-size:10px;font-weight:900;
  border:1px solid currentColor;opacity:.85;
}
.script-view-seg button[data-view="upload"]{border-color:rgba(232,149,74,.34)}
.script-view-seg button[data-view="index"]{border-color:rgba(43,191,138,.30)}
.script-view-seg button:hover{
  transform:translateY(-1px);
  color:var(--text);
  filter:brightness(1.04);
}
.script-view-seg.segmented button.active,
.script-view-seg.segmented button.active .sc-tab-label,
.script-view-seg.segmented button.active .sc-tab-no{
  color:#ffffff !important;
}
.script-view-seg.segmented button[data-view="upload"].active{
  background:linear-gradient(145deg,#e8954a,#d97757) !important;
  border-color:#ffd0a3 !important;
  box-shadow:0 8px 18px rgba(217,119,87,.30);
}
.script-view-seg.segmented button[data-view="index"].active{
  background:linear-gradient(145deg,#2bbf8a,#1f9a6d) !important;
  border-color:#8fe8c4 !important;
  box-shadow:0 8px 18px rgba(43,191,138,.28);
}
.script-view-seg.segmented button.active .sc-tab-no{
  background:rgba(255,255,255,.22);
  border-color:rgba(255,255,255,.7);
  opacity:1;
  color:#ffffff !important;
}
.script-view-seg.segmented button .sc-tab-label{color:inherit}
body[data-theme="light"] .script-viewtabs{
  border-color:color-mix(in srgb, var(--primary) 35%, transparent);
  background:linear-gradient(180deg,color-mix(in srgb, var(--primary) 8%, transparent),rgba(43,191,138,.06));
}
body[data-theme="light"] .script-view-seg{
  background:rgba(255,255,255,.62);
  border-color:rgba(185,150,110,.4);
}
body[data-theme="light"] .script-view-seg.segmented button{
  color:#5c5649;
  background:rgba(255,255,255,.72);
}
body[data-theme="light"] .script-view-seg.segmented button[data-view="upload"].active{
  background:linear-gradient(145deg,#e8954a,var(--primary)) !important;
  color:#ffffff !important;
}
body[data-theme="light"] .script-view-seg.segmented button[data-view="index"].active{
  background:linear-gradient(145deg,#2bbf8a,#1f9a6d) !important;
  color:#ffffff !important;
}
body[data-theme="light"] .script-view-seg.segmented button.active .sc-tab-label,
body[data-theme="light"] .script-view-seg.segmented button.active .sc-tab-no{
  color:#ffffff !important;
}
#uploadIndexView > .main-title{margin-top:2px}

.lib-block{border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:14px;background:rgba(255,255,255,.02)}
.lib-block-head{display:flex;align-items:center;gap:8px;font-size:15px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.lib-block-head.shot-head{
  gap:8px;
  margin-bottom:12px;
  padding-bottom:10px;
  border-bottom-width:1.5px;
  border-bottom-color:rgba(141,124,255,.22);
}
/* 镜头标题栏右侧：生成视频三档入口 */
.lib-block-head.shot-head .shot-head-gen-actions{
  display:inline-flex;
  align-items:center;
  gap:8px;
  flex-wrap:nowrap;
  white-space:nowrap;
  margin-left:auto;
  justify-content:flex-end;
}
.lib-block-head.shot-head .shot-head-gen-actions .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;white-space:nowrap;}
@media (max-width:900px){
  .lib-block-head.shot-head .shot-head-gen-actions{
    width:auto;
    margin-left:0;
    justify-content:flex-start;
  }
}
/* 镜头头部导演稿摘要：角落小字 */
.vid-shot-block .lib-block-head.shot-head{
  flex-wrap:nowrap;
  align-items:center;
}
.vid-shot-block .lib-block-head.shot-head > .shot-no-chip,
.vid-shot-block .lib-block-head.shot-head > .shot-title-badge,
.vid-shot-block .lib-block-head.shot-head > .shot-meta-chip,
.vid-shot-block .lib-block-head.shot-head > .sb-rewrite-current,
.vid-shot-block .lib-block-head.shot-head > .shot-head-gen-actions{
  flex-shrink:0;
}
.vid-shot-head-note{
  flex:0 1 auto;
  min-width:0;
  margin-left:auto;
  text-align:right;
  font-size:11px;
  color:var(--muted);
  line-height:1.3;
  cursor:help;
  white-space:nowrap;
}
.vid-shot-head-note .vid-prompt-eyebrow{
  display:inline-block;
  font-size:11px;
  font-weight:700;
  color:var(--muted);
  line-height:1.3;
  letter-spacing:.2px;
}
.vid-shot-head-note .vid-prompt-hint{
  display:none;
}
/* 生成入口放在镜头标签之后，导演稿角落小字推至右侧角落 */
.vid-shot-block .lib-block-head.shot-head > .shot-head-gen-actions{
  order:1;
  margin-left:0;
  justify-content:flex-start;
}
.vid-shot-block .lib-block-head.shot-head > .vid-shot-head-note{
  order:2;
  margin-left:auto;
}
@media (max-width:1000px){
  .vid-shot-block .lib-block-head.shot-head{flex-wrap:wrap}
  .vid-shot-block .lib-block-head.shot-head > .vid-shot-head-note{margin-left:auto;order:2}
  .vid-shot-block .lib-block-head.shot-head .shot-head-gen-actions{order:1}
}

.vid-shot-left-col{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.shot-no-chip{
  display:inline-flex;align-items:center;gap:4px;
  padding:4px 10px;border-radius:999px;font-size:14px;font-weight:900;line-height:1.3;
  color:#5b4cdb;background:linear-gradient(180deg,rgba(141,124,255,.18),rgba(141,124,255,.08));
  border:1px solid rgba(141,124,255,.32);
}
.shot-no-chip b{font-weight:900}
.shot-title-badge{
  font-size:12px !important;font-weight:750 !important;padding:4px 10px !important;border-radius:999px !important;
  background:rgba(217,119,87,.12) !important;border:1px solid rgba(217,119,87,.28) !important;color:#a65a3a !important;
}
.shot-meta-chip{
  display:inline-flex;align-items:center;
  padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.35;
  color:var(--muted);background:rgba(120,140,170,.10);border:1px solid rgba(120,140,170,.22);
}
.shot-action-badge{border-radius:999px !important}
body[data-theme="light"] .shot-no-chip{color:#4c3fd4;background:linear-gradient(180deg,rgba(141,124,255,.14),rgba(141,124,255,.06))}
body[data-theme="light"] .shot-title-badge{color:#8a4b2f !important;background:color-mix(in srgb, var(--primary) 10%, transparent) !important}
body[data-theme="light"] .shot-meta-chip{background:rgba(100,110,120,.08);border-color:rgba(100,110,120,.18)}

/* —— 全局镜头卡边界（分镜图/镜头视频/镜头旁白/处理剪辑）：中国传统淡雅色左边线 --shot-accent —— */
.lib-block:has(.shot-head),
.lib-block.has-accent{
  margin-bottom:26px;
  padding:14px 16px 16px;
  border:1px solid color-mix(in srgb, var(--shot-accent, #7A93A8) 28%, rgba(255,255,255,.08));
  border-left:3.5px solid var(--shot-accent, #7A93A8);
  background:rgba(17,26,43,.55);
  box-shadow:0 1px 0 rgba(255,255,255,.03),0 8px 20px rgba(0,0,0,.18);
}
body[data-theme="light"] .lib-block:has(.shot-head),
body[data-theme="light"] .lib-block.has-accent{
  border-color:color-mix(in srgb, var(--shot-accent, #7A93A8) 34%, var(--line));
  border-left-color:var(--shot-accent, #7A93A8);
  background:rgba(255,254,250,.88);
  box-shadow:0 1px 2px color-mix(in srgb, var(--text) 4%, transparent),0 8px 18px color-mix(in srgb, var(--text) 6%, transparent);
}
body[data-theme="light"] .lib-block-head.shot-head{
  border-bottom-color:color-mix(in srgb, var(--shot-accent, #7A93A8) 28%, transparent);
}
/* 镜头号芯片跟随本镜淡雅色 */
.lib-block:has(.shot-head) .shot-no-chip{
  color:color-mix(in srgb, var(--shot-accent, #7A93A8) 72%, #1a1a1a);
  background:linear-gradient(180deg, color-mix(in srgb, var(--shot-accent, #7A93A8) 18%, transparent), color-mix(in srgb, var(--shot-accent, #7A93A8) 8%, transparent));
  border-color:color-mix(in srgb, var(--shot-accent, #7A93A8) 38%, transparent);
}
body[data-theme="light"] .lib-block:has(.shot-head) .shot-no-chip{
  color:color-mix(in srgb, var(--shot-accent, #7A93A8) 78%, #1a1a1a);
  background:linear-gradient(180deg, color-mix(in srgb, var(--shot-accent, #7A93A8) 16%, #fff), color-mix(in srgb, var(--shot-accent, #7A93A8) 7%, #fff));
  border-color:color-mix(in srgb, var(--shot-accent, #7A93A8) 36%, var(--line));
}
/* 资产库 / 提示词卡片：同色系左边线 */
.char-card.has-accent{
  border:1px solid color-mix(in srgb, var(--shot-accent, #7A93A8) 30%, var(--line));
  border-left:3.5px solid var(--shot-accent, #7A93A8);
}
body[data-theme="light"] .char-card.has-accent{
  border-color:color-mix(in srgb, var(--shot-accent, #7A93A8) 32%, var(--line));
  border-left-color:var(--shot-accent, #7A93A8);
}
.char-card.has-accent.approved{
  border-color:rgba(72,213,166,.55);
  border-left-color:var(--shot-accent, #7A93A8);
  box-shadow:0 0 0 1px rgba(72,213,166,.18) inset;
}

/* 分镜参考图子卡：帧级淡雅色 */
.frame-card.has-accent{
  border:1px solid color-mix(in srgb, var(--shot-accent, #7A93A8) 26%, var(--line));
  border-left:3px solid var(--shot-accent, #7A93A8);
  background:color-mix(in srgb, var(--shot-accent, #7A93A8) 5%, rgba(255,255,255,.02));
}
body[data-theme="light"] .frame-card.has-accent{
  border-color:color-mix(in srgb, var(--shot-accent, #7A93A8) 28%, var(--line));
  border-left-color:var(--shot-accent, #7A93A8);
  background:color-mix(in srgb, var(--shot-accent, #7A93A8) 6%, #fff);
}

/* 资产库块：沿用淡雅左边线，背景保持库卡轻量 */
#imagegenAssetsView .lib-block.has-accent,
#assetContainer .lib-block.has-accent{
  margin-bottom:18px;
  padding:12px 14px;
  background:rgba(255,255,255,.02);
  box-shadow:none;
}
body[data-theme="light"] #imagegenAssetsView .lib-block.has-accent,
body[data-theme="light"] #assetContainer .lib-block.has-accent{
  background:var(--panel);
  box-shadow:none;
}

.lib-block.is-stale-shot:has(.shot-head),
.lib-block.is-stale-shot{
  border:1.5px solid rgba(220,38,38,.42);
  border-left:3px solid rgba(220,38,38,.72);
  border-radius:14px;
  padding:14px 16px 16px;
  margin-bottom:26px;
  background:rgba(220,38,38,.04);
  box-shadow:0 1px 0 rgba(255,255,255,.02),0 8px 18px rgba(120,20,20,.10);
}
body[data-theme="light"] .lib-block.is-stale-shot:has(.shot-head),
body[data-theme="light"] .lib-block.is-stale-shot{
  background:rgba(254,242,242,.72);
  box-shadow:0 1px 2px rgba(180,40,40,.05),0 8px 16px rgba(180,40,40,.06);
}
.frame-list{display:flex;flex-direction:column;gap:12px}
.frame-card{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:rgba(255,255,255,.02)}
.frame-card-head{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:8px;font-weight:700}
.lib-slot{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:14px;padding:8px 0;border-top:1px dashed rgba(255,255,255,.07)}
.lib-slot:first-of-type{border-top:none}
.lib-slot.lib-sub{padding-left:14px;border-left:2px solid rgba(141,124,255,.35);margin-left:4px}
.lib-slot-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-weight:800;margin-bottom:8px}
.lib-prompt{width:100%;min-height:118px;max-height:230px;font-size:12px;line-height:1.5;resize:vertical}
.lib-slot-actions{display:flex;gap:8px;align-items:center;margin-top:8px;flex-wrap:wrap}
.lib-slot-actions .lib-model{flex:1 1 150px;min-width:130px}
.lib-dep-hint{margin-top:6px;font-size:12px;color:var(--orange)}
.lib-slot-right{display:flex;flex-direction:column;gap:8px}
.lib-img{position:relative;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:12px;background:rgba(141,124,255,.06);min-height:96px}
.lib-img-empty{background:rgba(255,255,255,.02);border-style:dashed;justify-content:center;text-align:center;flex-direction:column;gap:4px}
.lib-img-ph{font-size:30px;line-height:1}
.lib-img-info{min-width:0;flex:1}
.lib-img-info .muted{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.lib-img-name{font-size:12px;font-weight:700;word-break:break-all}
.lib-img:has(.lib-use-tag) .lib-img-name{padding-right:112px}
.lib-use-tag{position:absolute;top:8px;right:8px}
.lib-history{border:1px solid var(--line);border-radius:10px;padding:6px 10px;background:rgba(255,255,255,.02)}
.lib-history summary{font-size:12px;color:var(--muted);cursor:pointer}
.lib-history-strip{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.lib-thumb{display:flex;flex-direction:column;align-items:center;gap:2px;width:74px;padding:8px 4px;border:1px solid var(--line);border-radius:9px;background:#141d30;color:var(--muted);font-size:10px}
.lib-thumb:hover{border-color:var(--purple);color:var(--text)}
.lib-thumb.media-invalid{border-color:#be6056;color:#d9857b;background:rgba(190,96,86,.08)}
.lib-thumb-ph{font-size:20px}
.lib-thumb-model{max-width:66px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:1220px){.lib-slot{grid-template-columns:1fr}}

/* 第5步 视频库：复用图片资产库布局，补充视频专有样式 */
.video-toolbar{margin-bottom:12px}
.process-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,0.6fr) minmax(0,1.6fr);gap:12px;align-items:start}
.process-stage{min-width:0;border:1px solid var(--line);border-radius:12px;padding:8px;background:rgba(255,255,255,.018);display:flex;flex-direction:column;gap:6px;height:auto}
.process-stage-head{font-size:12px;font-weight:800;margin:0;color:var(--text)}
.df-process-source-view{flex:0 0 auto;flex-direction:column;align-items:stretch;padding:2px;height:auto;min-height:0;gap:2px;width:max-content}
.df-process-source-view button{padding:5px 7px;font-size:11px;font-weight:750;line-height:1.2;width:100%;white-space:nowrap}
.process-narr-list{display:flex;flex-direction:column;gap:4px}
.process-narr-window{min-width:0}
.process-narr-window-head{font-size:11px;font-weight:700;margin:0 0 2px;display:flex;gap:5px;align-items:center;flex-wrap:wrap;line-height:1.25}
.process-narr-window-head .badge{font-size:9px;padding:2px 6px}
.process-narr-summary{font-size:11px;margin:0 0 4px !important;line-height:1.3}
.process-narr-lang{margin:0 0 4px !important;margin-top:0 !important;gap:6px !important}
.process-stage .lib-img{min-height:0;padding:6px;gap:4px}
.process-stage .lib-img:has(.lib-video),.process-stage .lib-img:has(.narr-audio){flex-direction:column;align-items:stretch}
.process-stage .lib-img:has(.narr-audio){padding:5px 6px 4px;gap:2px;min-height:0}
.process-stage .lib-img:has(.narr-audio) .lib-img-info{display:flex;flex-direction:column;gap:1px;min-width:0}
.process-stage .lib-img:has(.narr-audio) .lib-img-name{font-size:11px;line-height:1.25}
.process-stage .lib-img:has(.narr-audio) .lib-img-name .badge{font-size:9px;padding:2px 6px;margin-left:4px;vertical-align:middle}
.process-stage .lib-img:has(.narr-audio) .lib-img-info .muted{margin-top:0 !important;line-height:1.3;-webkit-line-clamp:2}
.process-stage .lib-img:has(.narr-audio) .media-status{margin:0;line-height:1.25;font-size:11px}
.process-stage .lib-img:has(.narr-audio) .process-narr-text{margin-top:0 !important}
.process-audio-speed-bar{display:flex;align-items:center;gap:6px;margin-top:5px;flex-wrap:wrap;font-size:11px;line-height:1.2}
.process-audio-speed-label{color:var(--muted);font-size:10.5px;white-space:nowrap;font-weight:600}
.process-audio-speed-selects{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.process-audio-speed-select{
  width:auto;
  min-width:76px;
  height:24px;
  min-height:24px;
  padding:1px 4px;
  font-size:11px;
  line-height:1.2;
  border-radius:5px;
  cursor:pointer;
  background:var(--panel);
  border:1px solid var(--line);
  color:var(--text);
  box-sizing:border-box;
}
.process-audio-speed-select:hover:not(:disabled){border-color:var(--primary);color:var(--text)}
.process-audio-speed-select:focus{border-color:var(--primary);outline:none}
.process-audio-speed-select:disabled{opacity:.6;cursor:not-allowed}
.process-stage .lib-video{max-height:120px}
.process-stage .narr-audio{width:100%;height:32px;max-height:36px}
.process-stage .lib-slot-actions{margin-top:2px}
.process-stage-concat{grid-column:span 1}
.df-process-source-switch{display:flex;gap:5px;flex-wrap:wrap;padding:2px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.025)}
.df-process-source-tab{flex:1 1 120px;min-width:0;padding:7px 8px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);font-size:11px;font-weight:800;cursor:pointer;line-height:1.25}
.df-process-source-tab:hover:not(:disabled){border-color:rgba(99,140,255,.45);color:var(--text)}
.df-process-source-tab.is-active{background:rgba(99,140,255,.14);border-color:rgba(99,140,255,.42);color:var(--text)}
.df-process-source-tab:disabled{cursor:not-allowed;opacity:.55}
.df-process-source-pane{min-width:0}
.df-process-source-pane[hidden]{display:none!important}
.df-process-source-card{display:flex;flex-direction:column;gap:8px;padding:7px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.025);min-width:0}
.df-process-source-card.is-ready{border-color:rgba(54,178,128,.42);background:rgba(54,178,128,.05)}
.df-process-source-card.is-unavailable{border-color:rgba(217,119,6,.42);background:rgba(217,119,6,.06)}
.df-process-source-card.is-empty{align-items:center;justify-content:center;text-align:center;min-height:150px;border-style:dashed}
.df-process-source-preview{width:100%;aspect-ratio:16/9;min-height:74px;border-radius:8px;overflow:hidden;background:#0b1020;display:flex;align-items:center;justify-content:center}
.df-process-source-video{width:100%;height:100%;display:block;object-fit:contain;background:#000}
.df-process-source-placeholder{display:flex;align-items:center;justify-content:center;min-height:74px;color:var(--muted);font-size:28px}
.df-process-source-body{display:flex;flex-direction:column;gap:8px;min-width:0}
.df-process-source-info{display:flex;flex-direction:column;gap:3px;min-width:0}
.df-process-source-info b{font-size:12px;line-height:1.3}
.df-process-source-info .muted{font-size:11px;line-height:1.4}
.df-process-source-info .media-status{margin-top:0;font-size:11px;line-height:1.35}
.df-process-source-hist{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start;margin-top:4px}
.df-process-source-hist-tools{display:none}
.df-process-source-hist.is-list{display:flex;flex-direction:row;flex-wrap:wrap}

/* 完整视频竖屏自适应：左右分栏布局（左侧 9:16 播放器与右侧成片窗同盒，无压扁） */
.df-process-source-card.is-portrait{
  display:grid;
  grid-template-columns:minmax(140px,min(46%,360px)) minmax(0,1fr);
  gap:10px;
  align-items:start;
}
.df-process-source-card.is-portrait .df-process-source-preview{
  width:100%;
  max-width:360px;
  aspect-ratio:9/16;
  max-height:640px;
  justify-self:start;
}
.df-process-source-card.is-portrait .df-process-source-video{
  width:100%;
  height:100%;
  object-fit:contain;
  background:#000;
}
.df-process-source-card.is-portrait .df-process-source-body{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
}
.df-process-source-card.is-portrait .df-process-source-hist{
  margin-top:2px;
  gap:6px;
}
.df-process-source-pick{display:flex;flex-direction:column;align-items:stretch;gap:4px;width:72px;min-width:72px;max-width:72px;padding:4px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.03);color:var(--text);cursor:pointer;text-align:center;box-sizing:border-box;transition:border-color .15s ease, background .15s ease}
.df-process-source-pick:hover:not(:disabled):not(.is-selected){border-color:rgba(99,140,255,.55);background:rgba(99,140,255,.08)}
.df-process-source-pick.is-selected,.df-process-source-pick:disabled{cursor:default;border-color:rgba(54,178,128,.45);background:rgba(54,178,128,.08)}
.df-process-source-pick-media{display:block;min-width:0;width:100%;border-radius:6px;overflow:hidden;background:#0b1020}
.df-process-source-pick-poster,.df-process-source-pick .lib-thumb-ph{width:100%;height:76px;object-fit:cover;border-radius:6px;display:block;background:#0b1020}
.df-process-source-pick.is-portrait .df-process-source-pick-poster,
.df-process-source-pick.is-portrait .lib-thumb-ph{width:100%;height:76px;max-width:none;margin:0}
.df-process-source-pick.is-landscape .df-process-source-pick-poster,
.df-process-source-pick.is-landscape .lib-thumb-ph{height:48px}
.df-process-source-pick.is-square .df-process-source-pick-poster,
.df-process-source-pick.is-square .lib-thumb-ph{height:64px;max-width:64px;margin:0 auto}
.df-process-source-pick-copy{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;width:100%;margin-top:2px;text-align:center}
.df-process-source-pick-model,.df-process-source-pick-copy b{font-size:10px;line-height:1.25;font-weight:750;color:var(--text);word-break:break-all;display:-webkit-box;vertical-align:top;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:100%}
.df-process-source-pick-meta,.df-process-source-pick-copy .muted{font-size:9.5px;line-height:1.2;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.df-process-source-pick .lib-thumb-model{font-size:10px;line-height:1.25;color:var(--muted)}
.df-process-source-pick-use{font-size:10.5px;font-weight:800;color:var(--primary);margin-top:2px;display:inline-block}
.df-process-source-pick:hover:not(:disabled):not(.is-selected) .df-process-source-pick-use{text-decoration:underline}
.df-process-source-pick .badge{align-self:center;font-size:9px;padding:2px 5px;margin-top:2px}
.df-process-source-pick.is-list{width:72px;min-width:72px}
.df-process-go-video{width:100%;justify-content:center}
.process-concat{position:relative;border:0;background:transparent;display:flex;flex-direction:column;gap:4px;margin:0}
.process-concat>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 0 2px}
.process-concat>summary::-webkit-details-marker{display:none}
.process-concat-summary-main{font-size:12px;font-weight:700;color:var(--text)}
.process-concat-list{display:flex;flex-direction:column;gap:8px;margin:0;max-height:360px;overflow:auto;padding-right:2px}
.process-concat-slot{display:flex;flex-direction:row;align-items:stretch;gap:10px;min-width:0;padding:6px 8px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.02);transition:border-color .15s ease,background .15s ease}
.process-concat-slot:hover{background:rgba(255,255,255,.035)}
.process-concat-slot .df-process-go-video{width:auto;justify-content:center}
.process-concat-item{display:flex;flex-direction:column;justify-content:center;flex:0 0 205px;min-width:185px;max-width:225px;padding:4px 6px;border:1px solid transparent;border-radius:8px;background:transparent}
.process-concat-item.is-previewable{cursor:pointer;border-color:rgba(255,255,255,.06);background:rgba(255,255,255,.02);transition:border-color .15s ease,background .15s ease}
.process-concat-item.is-previewable:hover{border-color:rgba(99,140,255,.55);background:rgba(99,140,255,.08)}
.process-concat-item.is-previewable:focus-visible{outline:2px solid rgba(99,140,255,.7);outline-offset:2px}
.process-concat-item.missing{opacity:.88;border:1px dashed var(--line);background:rgba(255,255,255,.01)}
.process-concat-main{display:grid;grid-template-columns:56px minmax(0,1fr);gap:8px;align-items:center;width:100%;min-width:0}
.process-concat-thumb{position:relative;width:56px;height:96px;border-radius:6px;overflow:hidden;background:#0b1020;display:flex;align-items:center;justify-content:center}
.process-concat-thumb video,.process-concat-thumb img{width:100%;height:100%;object-fit:cover;display:block;background:#000}
.process-concat-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:999px;background:rgba(0,0,0,.58);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;pointer-events:none;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.process-concat-item.is-previewable:hover .process-concat-play{background:rgba(20,40,120,.72)}
.process-concat-mock{color:var(--muted);font-size:18px}
.process-concat-mock img{width:100%;height:100%;object-fit:cover}
.process-concat-meta{display:flex;flex-direction:column;gap:3px;min-width:0}
.process-concat-meta b{font-size:11.5px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.process-concat-meta .muted{font-size:10px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.process-concat-meta .badge{align-self:flex-start;font-size:9.5px;padding:2px 7px;margin-top:3px;white-space:nowrap}
.process-concat-slot .df-process-source-hist{flex:1 1 0;min-width:0;display:flex;flex-direction:row;align-items:center;gap:8px;overflow-x:auto;margin-top:0;padding-left:10px;border-left:1px solid var(--line);scrollbar-width:thin}
.process-concat-slot .df-process-source-hist::-webkit-scrollbar{height:4px}
.process-concat-slot .df-process-source-hist::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:2px}
.process-concat-slot .df-process-source-hist.is-empty{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;padding-left:10px;border-left:1px solid var(--line);min-height:96px}
.process-concat-slot .df-process-source-pick{width:66px;min-width:66px;max-width:66px;padding:3px}
.process-concat-slot .df-process-source-pick .df-process-source-pick-poster,
.process-concat-slot .df-process-source-pick .lib-thumb-ph{height:62px}
.process-concat-hint{font-size:11px;line-height:1.4;margin:2px 0 0}
.process-stage-concat .lib-slot-actions{margin-top:2px;margin-bottom:0}
.process-stage-concat .process-concat-confirm{width:100%}
.process-stage .media-status{margin-top:4px}
.process-stage .muted.process-concat-hint{margin-top:2px}


/* ===== 画面合成/超分：按 9:16 / 16:9 自适应预览布局 ===== */
.process-stage-compose,
.process-stage-upscale{min-width:0}

/* 竖屏成片提到镜头卡顶边，贴齐圆角顶线 */
.process-block.has-compose-preview{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(180px,min(34%,360px));
  grid-template-rows:auto minmax(0,1fr);
  column-gap:12px;
  align-items:start;
}
.process-block.has-compose-preview .lib-block-head{
  grid-column:1;
  grid-row:1;
}
.process-block.has-compose-preview .process-grid{
  grid-column:1;
  grid-row:2;
  grid-template-columns:minmax(0,1.15fr) minmax(0,0.7fr) minmax(200px,0.9fr);
}
.process-block.has-compose-preview > .process-compose-preview{
  grid-column:2;
  grid-row:1 / span 2;
  justify-self:end;
  align-self:start;
  width:100%;
  max-width:360px;
  margin-top:-12px;
  margin-right:-14px;
}
.process-block.has-compose-preview > .process-compose-preview .process-preview-frame{
  width:100%;
  aspect-ratio:9/16;
  max-height:640px;
  border-radius:0 14px 12px 8px;
}
.process-block.has-compose-preview > .process-compose-preview .lib-video{
  width:100%;
  height:100%;
  max-height:none;
  aspect-ratio:9/16;
  object-fit:contain;
}
.process-block.has-compose-preview .process-stage-compose.is-portrait .process-compose-layout{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.process-compose-layout{display:flex;flex-direction:column;gap:6px;min-width:0}
.process-compose-meta{min-width:0;display:flex;flex-direction:column;gap:4px}
.process-compose-filemeta{display:flex;flex-direction:column;gap:2px;min-width:0;padding:2px 0}
.process-compose-filemeta .lib-img-name{font-size:11px;font-weight:700;word-break:break-all;line-height:1.3}
.process-compose-preview{position:relative;min-width:0}
.process-preview-frame{min-width:0;border-radius:8px;overflow:hidden;background:#0b1020;display:flex;align-items:center;justify-content:center}
.process-preview-frame .lib-video{width:100%;height:auto;display:block;background:#000;object-fit:contain}
.process-stage .lib-img.process-preview{align-items:stretch}

/* 横屏：上下布局，提高视频窗口占比 */
.process-stage-compose.is-landscape .process-compose-layout,
.process-stage-upscale.is-landscape .process-compose-layout{gap:6px}
.process-stage-compose.is-landscape .process-preview-frame,
.process-stage-upscale.is-landscape .process-preview-frame,
.process-stage .lib-img.process-preview.is-landscape .process-preview-frame{
  width:100%;
  aspect-ratio:16/9;
  max-height:none;
}
.process-stage-compose.is-landscape .lib-video,
.process-stage-upscale.is-landscape .lib-video,
.process-stage .lib-img.process-preview.is-landscape .lib-video{
  width:100%;
  height:100%;
  max-height:none;
  aspect-ratio:16/9;
  object-fit:contain;
}
.process-stage .lib-img.process-preview.is-landscape{
  flex-direction:column;
  gap:6px;
  padding:6px;
}
.process-stage .lib-img.process-preview.is-landscape .lib-img-info{padding:0 2px}

/* 竖屏：左右布局，预览在右，信息在左 */
.process-stage-compose.is-portrait .process-compose-layout,
.process-stage-upscale.is-portrait .process-compose-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(180px,360px);
  gap:12px;
  align-items:start;
}
.process-stage-compose.is-portrait .process-compose-meta,
.process-stage-upscale.is-portrait .process-compose-meta{grid-column:1;grid-row:1}
.process-stage-compose.is-portrait .process-compose-preview,
.process-stage-upscale.is-portrait .process-compose-preview{
  grid-column:2;
  grid-row:1;
  width:100%;
  max-width:360px;
  justify-self:end;
}
.process-stage-compose.is-portrait .process-preview-frame,
.process-stage-upscale.is-portrait .process-preview-frame{
  width:100%;
  aspect-ratio:9/16;
  max-height:640px;
}
.process-stage-compose.is-portrait .lib-video,
.process-stage-upscale.is-portrait .lib-video{
  width:100%;
  height:100%;
  max-height:none;
  aspect-ratio:9/16;
  object-fit:contain;
}
.process-stage-compose.is-portrait .lib-use-tag,
.process-stage-upscale.is-portrait .lib-use-tag{top:6px;right:6px}
.process-stage-compose.is-portrait .lib-slot-actions .btn:not(.process-compose-editor),
.process-stage-upscale.is-portrait .lib-slot-actions .btn,
.process-stage-compose.is-portrait .process-compose-meta > .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
/* 提高打开剪辑器合并视频按钮的视觉层级为实心主色 */
.process-stage-compose .lib-slot-actions .btn.process-compose-editor,
.process-stage-compose .process-compose-editor,
.cv-leaf-actions .btn.cv-open-compose-editor{
  background:var(--btn-primary-bg) !important;
  color:var(--on-primary) !important;
  border-color:transparent !important;
  box-shadow:var(--btn-shadow);
  font-weight:700;
  text-shadow:none;
}
.process-stage-compose .lib-slot-actions .btn.process-compose-editor:hover,
.process-stage-compose .process-compose-editor:hover,
.cv-leaf-actions .btn.cv-open-compose-editor:hover{
  background:var(--primary-hover) !important;
  color:var(--on-primary) !important;
  filter:none;
}
.process-stage-compose .lib-slot-actions .btn.process-compose-editor:active,
.process-stage-compose .process-compose-editor:active,
.cv-leaf-actions .btn.cv-open-compose-editor:active{
  background:var(--primary-active) !important;
  color:var(--on-primary) !important;
}
.process-stage-compose .lib-slot-actions .btn.process-compose-editor:disabled,
.process-stage-compose .process-compose-editor:disabled,
.cv-leaf-actions .btn.cv-open-compose-editor:disabled{
  background:var(--btn-primary-bg) !important;
  color:var(--on-primary) !important;
  opacity:.45 !important;
  cursor:not-allowed !important;
  box-shadow:none;
}
.process-stage-compose .process-compose-meta .media-status,
.process-stage-upscale .process-compose-meta .media-status{margin-top:0}

/* 成片合成历史缩略图条 */
.process-compose-hist-wrap{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:8px;
  padding-top:6px;
  border-top:1px dashed var(--line);
  min-width:0;
}
.process-stage-compose.is-portrait .process-compose-hist-wrap{
  margin-top:10px;
  padding-top:8px;
}
.process-compose-hist-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:11px;
  color:var(--muted);
  padding:0 2px;
}
.process-compose-hist-title{
  font-weight:700;
  color:var(--text);
}
.process-compose-hist-grid{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:flex-start;
}
.process-compose-clip-card{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:4px;
  width:72px;
  padding:4px;
  border:1px solid var(--line);
  border-radius:8px;
  background:rgba(255,255,255,.03);
  box-sizing:border-box;
}
.process-compose-clip-card.is-selected{
  border-color:rgba(54,178,128,.45);
  background:rgba(54,178,128,.08);
}
.process-compose-clip-thumb{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:3px;
  cursor:pointer;
  min-width:0;
}
.process-compose-clip-card.is-selected .process-compose-clip-thumb{
  cursor:default;
}
.process-compose-clip-media{
  display:block;
  min-width:0;
  border-radius:6px;
  overflow:hidden;
  background:#0b1020;
}
.process-compose-clip-poster,
.process-compose-clip-card .lib-thumb-ph{
  width:100%;
  height:76px;
  object-fit:cover;
  border-radius:6px;
  background:#0b1020;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
}
.process-compose-clip-card .lib-thumb-model{
  font-size:10px;
  line-height:1.25;
  color:var(--muted);
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.process-compose-clip-model{
  font-size:9.5px;
  line-height:1.2;
  color:var(--text);
  font-weight:700;
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  display:block;
  opacity:.88;
}
.process-compose-model{
  display:flex;
  align-items:center;
  gap:4px;
  flex-wrap:wrap;
  margin-bottom:3px;
  font-size:11px;
  line-height:1.3;
}
.process-compose-model-tag{
  font-size:9.5px;
  font-weight:800;
  padding:1px 5px;
  border-radius:4px;
  background:rgba(99,140,255,.16);
  color:var(--primary);
  border:1px solid rgba(99,140,255,.36);
  line-height:1.2;
}
.process-compose-model-name{
  font-size:11px;
  font-weight:800;
  color:var(--text);
  word-break:break-all;
}
.process-compose-model-meta{
  font-size:10px;
  color:var(--muted);
}
.process-compose-clip-sel{
  align-self:center;
  font-size:9px;
  padding:2px 6px;
  margin-top:2px;
}
.process-compose-clip-use{
  width:100%;
  padding:2px 0;
  font-size:11px;
  font-weight:700;
  height:22px;
  line-height:18px;
  justify-content:center;
  margin-top:2px;
}

/* 兼容：合成预览不再被旧 max-height 压扁 */
.process-stage-compose .lib-video,
.process-stage-upscale .lib-video{max-height:none}
.process-stage .lib-img.process-preview.is-portrait{flex-direction:row;align-items:stretch;gap:8px}
.process-stage .lib-img.process-preview.is-portrait .process-preview-frame{flex:0 0 auto;width:min(42%,120px);aspect-ratio:9/16}
.process-stage .lib-img.process-preview.is-portrait .lib-img-info{flex:1 1 auto;min-width:0}

@media (max-width:700px){
  .process-stage-compose.is-portrait .process-compose-layout,
  .process-stage-upscale.is-portrait .process-compose-layout{
    grid-template-columns:1fr;
  }
  .process-stage-compose.is-portrait .process-compose-preview,
  .process-stage-upscale.is-portrait .process-compose-preview{
    grid-column:1;
    grid-row:auto;
    max-width:160px;
    justify-self:center;
  }
  .process-block.has-compose-preview{
    display:block;
  }
  .process-block.has-compose-preview .process-grid{
    grid-template-columns:1fr;
  }
  .process-block.has-compose-preview > .process-compose-preview{
    max-width:160px;
    margin:8px auto 0;
  }
  .process-block.has-compose-preview > .process-compose-preview .process-preview-frame{
    border-radius:8px;
  }
}


.export-result{max-width:none;width:100%}
.export-final-block{max-width:none}
.export-final-layout{display:flex;flex-direction:column;gap:10px;min-width:0}
.export-final-preview{position:relative;min-width:0}
.export-final-preview .process-preview-frame{width:100%;border-radius:10px;overflow:hidden;background:#0b1020;display:flex;align-items:center;justify-content:center}
.export-final-preview .lib-video{width:100%;height:100%;display:block;background:#000;object-fit:contain}
.export-final-meta{min-width:0;display:flex;flex-direction:column;gap:4px}
.export-final-meta .export-merge-model{margin-bottom:0}
.export-final-meta .lib-img-name{font-size:12px;font-weight:700;word-break:break-all;line-height:1.35}
.export-final-meta .media-status{margin-top:0}
.export-final-meta .lib-history{margin-top:4px}
#exportPanelView .export-merge-btn{
  min-width:168px;
  padding:10px 18px;
  font-size:15px;
  font-weight:850;
}
#view-export #exportPanelView{display:block}
.export-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.export-toolbar-left{
  flex:1 1 180px;
  display:flex;
  align-items:center;
  min-width:0;
}
.export-series-toolbar-slot{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
}
.export-toolbar-right{
  flex:1 1 300px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.export-series-tb-group{
  display:inline-flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  padding:3px 10px;
  border-radius:999px;
  background:rgba(141,124,255,.08);
  border:1px solid rgba(141,124,255,.2);
}
.export-series-tb-title{
  font-weight:750;
  font-size:13px;
  color:var(--text);
  white-space:nowrap;
}
.export-series-pending-hint{
  font-size:12px;
  color:var(--muted);
  white-space:nowrap;
}
/* 突出颜色区分：所有集数合并专属配色 */
.export-series-cut{
  background:linear-gradient(135deg, rgba(141,124,255,.32), rgba(95,75,230,.45));
  color:#ded6ff;
  border:1px solid rgba(141,124,255,.6);
  font-weight:750;
  box-shadow:0 2px 8px rgba(141,124,255,.2);
  transition:all .15s ease;
}
.export-series-cut:hover{
  background:linear-gradient(135deg, rgba(141,124,255,.5), rgba(95,75,230,.62));
  border-color:rgba(141,124,255,.85);
  color:#fff;
  box-shadow:0 3px 12px rgba(141,124,255,.35);
  transform:translateY(-1px);
}
.export-series-cut:active{
  transform:translateY(1px);
}
body[data-theme="light"] .export-series-tb-group{
  background:rgba(110,85,235,.06);
  border-color:rgba(110,85,235,.22);
}
body[data-theme="light"] .export-series-cut{
  background:linear-gradient(135deg, rgba(110,85,235,.15), rgba(90,65,215,.25));
  color:#3f28b5;
  border-color:rgba(110,85,235,.55);
}
body[data-theme="light"] .export-series-cut:hover{
  background:linear-gradient(135deg, rgba(110,85,235,.25), rgba(90,65,215,.35));
  color:#2f1c9c;
  border-color:rgba(110,85,235,.8);
}
.export-series-drawer{
  margin-bottom:14px;
}
#seriesExportContainer{margin-bottom:0}
.export-ep-list{display:flex;flex-direction:column;gap:10px}
.export-ep-card{
  border:1px solid var(--line);
  border-radius:12px;
  background:color-mix(in srgb,var(--panel2) 72%,transparent);
  padding:0;
  overflow:hidden;
}
.export-ep-card.is-selected{
  border-color:color-mix(in srgb,var(--primary) 70%,var(--line));
  background:color-mix(in srgb,var(--primary) 10%,var(--panel2));
  box-shadow:0 0 0 1px color-mix(in srgb,var(--primary) 22%,transparent);
}
.export-ep-card>summary{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  padding:12px 14px;
  cursor:pointer;
  list-style:none;
}
.export-ep-card>summary::-webkit-details-marker{display:none}
.export-ep-card>summary .export-ep-title{font-size:15px;font-weight:750}
.export-ep-card>summary .muted{font-size:12px}
.export-ep-card>summary .export-ep-missing{max-width:100%;color:var(--muted)}
.export-ep-card>summary .export-ep-pick{
  display:inline-flex;
  align-items:center;
  cursor:pointer;
  flex:0 0 auto;
}
.export-ep-card>summary .export-ep-pick-input{
  width:16px;
  height:16px;
  margin:0;
  accent-color:var(--primary);
  cursor:pointer;
}
.export-ep-card>summary .export-ep-actions{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}
.export-ep-card>summary .export-ep-merge-row{white-space:nowrap}
.export-ep-pick-label{
  font-size:12px;
  color:var(--muted);
  white-space:nowrap;
}
#exportPanelView #exportEpisodePick{min-width:168px;max-width:260px;width:auto}
.export-ep-card[open]>summary{border-bottom:1px solid var(--line)}
.export-ep-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:10px}
.export-ep-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.export-ep-toolbar .export-upscale-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.export-series-block .lib-block-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* 2026-09-08：合并历史视频平铺展示（与图3相同大小排列，下方支持 使用/使用中 和 删除） */
.export-merge-cards-head{margin-bottom:10px;display:flex;align-items:center;gap:10px;font-size:12px}
.export-merge-cards-grid{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.export-merge-card{
  display:flex;
  flex-direction:column;
  gap:8px;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px;
  background:color-mix(in srgb, var(--panel) 50%, transparent);
  box-sizing:border-box;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.export-merge-card.is-portrait{
  width:280px;
  max-width:100%;
}
.export-merge-card.is-landscape{
  width:360px;
  max-width:100%;
}
.export-merge-card.is-selected{
  border-color:color-mix(in srgb,var(--primary) 70%,var(--line));
  background:color-mix(in srgb,var(--primary) 6%,var(--panel2));
  box-shadow:0 0 0 1px color-mix(in srgb,var(--primary) 20%,transparent);
}
.export-merge-card .export-final-preview{
  position:relative;
  width:100%;
}
.export-merge-card.is-portrait .process-preview-frame,
.export-merge-card.is-portrait .lib-video{
  aspect-ratio:9/16;
  max-height:min(56vh,460px);
  object-fit:contain;
}
.export-merge-card.is-landscape .process-preview-frame,
.export-merge-card.is-landscape .lib-video{
  aspect-ratio:16/9;
  max-height:min(42vh,360px);
  object-fit:contain;
}
.export-merge-card-actions{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:6px;
}
.export-merge-card-actions .btn{
  flex:1 1 auto;
  justify-content:center;
  text-align:center;
}
.export-merge-card-actions .export-merge-trash{
  flex:0 0 auto;
  color:var(--muted);
  padding:6px 10px;
}
.export-merge-card-actions .export-merge-trash:hover{
  color:#d9857b;
  border-color:#be6056;
  background:rgba(190,96,86,.12);
}
.export-merge-btn-current{
  background:color-mix(in srgb,#4f9b72 18%,var(--panel2));
  color:#4f9b72;
  border:1px solid color-mix(in srgb,#4f9b72 55%,transparent);
  font-weight:750;
  cursor:default;
  opacity:.95;
}
body[data-theme="light"] .export-merge-btn-current{
  background:color-mix(in srgb,#3e8a61 14%,#fff);
  color:#2b704c;
  border-color:color-mix(in srgb,#3e8a61 50%,transparent);
}

/* 兼容历史缩略图样式 */
.export-merge-history{margin-top:14px;padding:10px 12px;border:1px dashed var(--line);border-radius:10px;background:rgba(255,255,255,.02);display:flex;flex-direction:column;gap:8px}
.export-merge-history-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}
.export-merge-history-head b{font-size:14px;letter-spacing:.5px}
.export-merge-history-head .muted{font-size:12px;line-height:1.5}
.export-merge-grid{display:grid;gap:12px;align-content:start}
.export-merge-grid.is-portrait{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.export-merge-grid.is-landscape{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.export-merge-card .vid-thumb{position:relative;width:auto;height:0;padding:0;overflow:hidden;border-radius:10px;background:#0b1020;aspect-ratio:16/9;border:1px solid var(--line)}
.export-merge-grid.is-portrait .export-merge-card .vid-thumb{aspect-ratio:9/16}
.export-merge-grid.is-landscape .export-merge-card .vid-thumb{aspect-ratio:16/9}
.export-merge-card .vid-thumb-poster{width:100%;height:100%;object-fit:cover;display:block;background:#000}
.export-merge-card .vid-thumb-play{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);width:28px;height:28px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;pointer-events:none}
.export-merge-card .lib-thumb-model{position:absolute;left:0;right:0;bottom:0;padding:4px 6px;background:linear-gradient(transparent,rgba(0,0,0,.78));color:#fff;font-size:10px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.export-merge-card.is-pending .vid-thumb{border-color:#be6056;color:#d9857b}
.export-merge-card .export-merge-sel,.export-merge-card .export-merge-use{width:100%;margin-top:4px}
.export-merge-card .export-merge-trash{width:100%;margin-top:2px;color:var(--muted)}
.export-merge-card .export-merge-trash:hover{color:#d9857b;border-color:#be6056}
.export-merge-empty-other{font-size:12px;padding:8px 4px 4px}
.export-final-block .export-merge-empty-other{margin:0}
/* 使用中大卡上的「删除此版本」按钮 */
.export-final-actions{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}
.export-final-actions .export-merge-trash-current{color:#d9857b;border-color:rgba(190,96,86,.45)}
.export-final-actions .export-merge-trash-current:hover{background:rgba(190,96,86,.12);border-color:#be6056;color:#e09086}

/* 最终视频：预览在上、路径/历史在下 */
.export-final-layout.is-portrait .export-final-preview{
  max-width:280px;
  width:100%;
}
.export-final-layout.is-portrait .process-preview-frame{
  aspect-ratio:9/16;
  max-height:min(56vh,460px);
}
.export-final-layout.is-portrait .lib-video{
  aspect-ratio:9/16;
  max-height:min(56vh,460px);
  object-fit:contain;
}
.export-final-layout.is-portrait .lib-use-tag{top:8px;right:8px}
.export-final-layout .export-upscale-tag{position:absolute;top:8px;left:8px;z-index:2}
.export-thumb-upscale-badge{position:absolute;top:4px;right:4px;z-index:1;font-size:10px;padding:1px 5px}

.export-final-layout.is-landscape .process-preview-frame{
  width:100%;
  aspect-ratio:16/9;
  max-height:min(42vh,360px);
}
.export-final-layout.is-landscape .lib-video{
  width:100%;
  height:100%;
  max-height:min(42vh,360px);
  aspect-ratio:16/9;
  object-fit:contain;
}

@media (max-width:820px){
  .export-final-layout.is-portrait .export-final-preview{
    max-width:200px;
  }
}
@media (max-width:1280px){
  .process-grid{grid-template-columns:minmax(0,0.6fr) minmax(0,1.4fr)}
  .process-block.has-compose-preview{
    grid-template-columns:minmax(0,1fr) minmax(160px,min(32%,280px));
  }
  .process-block.has-compose-preview .process-grid{
    grid-template-columns:minmax(0,0.6fr) minmax(0,1.4fr);
  }
}
@media (max-width:700px){.process-grid{grid-template-columns:1fr}}
.vid-narr{font-size:12px;line-height:1.5;margin-bottom:8px;padding:6px 8px;border-left:2px solid rgba(141,124,255,.35);background:rgba(141,124,255,.05);border-radius:0 8px 8px 0}
.vid-narr-from-adapt{margin:0 0 10px}
.vid-narr-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px;flex-wrap:wrap}
.vid-narr-body{margin:0;white-space:pre-wrap;font-size:12px;line-height:1.55}
.vid-prompt{width:100%;min-height:104px;max-height:220px;font-size:12px;line-height:1.5;resize:vertical}
.lib-slot-actions .vid-model{flex:1 1 150px;min-width:130px}
.vid-thumb{display:flex;flex-direction:column;align-items:center;gap:2px;width:74px;padding:8px 4px;border:1px solid var(--line);border-radius:9px;background:#141d30;color:var(--muted);font-size:10px;cursor:pointer}
.vid-thumb:hover{border-color:var(--purple);color:var(--text)}
.lib-video{width:100%;max-height:170px;border-radius:10px;background:#000;display:block}
.lib-img:has(.lib-video){flex-direction:column;align-items:stretch}
.lib-media-open{position:relative;padding:0;border:0;border-radius:10px;overflow:hidden;background:#000;color:#fff;cursor:pointer;text-align:left}
.lib-media-open .lib-video{pointer-events:none}
.lib-media-open>span{position:absolute;right:8px;bottom:7px;padding:3px 7px;border-radius:999px;background:rgba(0,0,0,.72);font-size:11px;font-weight:800}
.media-audio-open{flex:0 0 auto;width:112px;padding:12px 10px;border:1px solid var(--line);border-radius:10px;background:rgba(141,124,255,.08);color:var(--text);font-weight:800;cursor:pointer}
.media-history-item{display:flex;flex-direction:column;gap:5px;align-items:stretch;width:84px}
.media-use-btn{padding:4px 5px;font-size:10px;line-height:1.2;white-space:normal}
.narr-select-force{border-color:rgba(255,180,92,.65);color:#ffd5a4}
body[data-theme="light"] .narr-select-force{border-color:var(--orange);color:var(--orange)}
.media-old-revision{min-height:23px;color:var(--muted);font-size:10px;line-height:1.2;text-align:center}
.lib-photo{width:100%;min-height:140px;max-height:230px;object-fit:contain;border-radius:10px;background:#000;display:block}
.lib-img:has(.lib-photo){flex-direction:column;align-items:stretch}
.lib-thumb-img{width:60px;height:38px;object-fit:cover;border-radius:5px;display:block}
.media-status{font-size:12px;margin-top:4px;color:var(--muted)}
.media-status.valid,.media-status.within_target{color:#4f9b72}
.media-status.invalid,.media-status.unavailable,.media-status.too_short,.media-status.too_long{color:#c8665d}
.media-status.duration-gate{padding:8px 10px;border:1px solid rgba(200,102,93,.42);border-radius:8px;background:rgba(200,102,93,.07);margin-bottom:8px}
.media-status.no-upscale{padding:6px 9px;border:1px solid rgba(255,180,92,.5);border-radius:8px;background:rgba(255,180,92,.10);color:#ffd5a4;margin-top:6px}
body[data-theme="light"] .media-status.no-upscale{color:var(--orange);background:#FFF4E5;border-color:#E6B56A}
.btn-link{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.quality-flags{display:flex;gap:6px;flex-wrap:wrap;padding:8px 0 0}
.quality-flag{font-size:12px;padding:4px 8px;border-radius:999px;background:rgba(200,102,93,.09);border:1px solid rgba(200,102,93,.35);color:#c8665d}
img[data-image-preview]{cursor:zoom-in;transition:transform .16s ease,box-shadow .16s ease,outline-color .16s ease}
img[data-image-preview]:hover{box-shadow:0 0 0 2px rgba(141,124,255,.7),0 8px 18px rgba(0,0,0,.24);transform:scale(1.015)}
img[data-image-preview]:focus-visible{outline:3px solid var(--purple2);outline-offset:3px}

/* 大文本编辑 / 图片历史统一弹窗 */
.work-modal[hidden]{display:none}
.work-modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:24px;background:rgba(3,7,16,.72);backdrop-filter:blur(5px)}
/* 从对口型等 .modal(z=130) 内点缩略图或调声线时，必须盖在上面，否则像没弹出 */
.work-modal:has(video.media-preview-player),
.work-modal:has(.audio-preview-player),
.work-modal:has(.image-preview-layout),
.work-modal:has(.is-voice-manual){z-index:180}
.work-modal:has(.is-voice-tune){z-index:180;padding:16px 20px}
.work-modal-panel{width:min(1040px,calc(100vw - 48px));max-height:calc(100vh - 48px);display:flex;flex-direction:column;background:var(--panel2);border:1px solid rgba(141,124,255,.5);border-radius:18px;box-shadow:0 24px 72px rgba(0,0,0,.5);overflow:hidden}
.work-modal-panel.is-compact{width:min(760px,calc(100vw - 48px))}
.work-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px 18px 13px;border-bottom:1px solid var(--line);background:rgba(141,124,255,.06)}
.work-modal-eyebrow{min-height:13px;color:var(--purple2);font-size:10px;font-weight:900;letter-spacing:1px;text-transform:uppercase}
.work-modal-head h3{margin:2px 0 0;font-size:18px}
.work-modal-close{width:34px;height:34px;flex:0 0 auto;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--text);font-size:24px;line-height:1;cursor:pointer}
.work-modal-close:hover{border-color:var(--purple);background:rgba(141,124,255,.12)}
.work-modal-body{padding:18px;overflow:auto}

/* 通用轻量弹窗：JS 动态创建的 .modal（统一图片仓库 / 对话视频 / 单分镜参考图等） */
.modal{position:fixed;inset:0;z-index:130;display:grid;place-items:center;padding:24px}
.modal.is-confirm{z-index:140}
.modal.is-confirm .df-confirm-card{width:min(440px,calc(100vw - 48px))}
.df-confirm-message{margin:0 0 14px;white-space:pre-wrap;line-height:1.65;font-size:14px}
.df-confirm-input{width:100%;box-sizing:border-box;margin:0 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-input);background:var(--panel2);color:var(--text)}
.modal.is-confirm .modal-actions{margin-top:4px}
.modal-mask{position:absolute;inset:0;z-index:0;background:var(--overlay);backdrop-filter:blur(5px)}
.modal-card{position:relative;z-index:1;width:min(560px,calc(100vw - 48px));max-height:calc(100vh - 48px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-pop);overflow:hidden}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px 13px;border-bottom:1px solid var(--line);background:rgba(141,124,255,.06);flex:0 0 auto;position:relative;z-index:2}
.modal-head b{font-size:16px;min-width:0}
.modal-close{width:34px;height:34px;flex:0 0 auto;position:relative;z-index:3;pointer-events:auto;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--text);font-size:24px;line-height:1;cursor:pointer}
.modal-close:hover{border-color:var(--purple);background:rgba(141,124,255,.12)}
.modal-body{padding:18px;overflow-y:auto;max-height:65vh}
.modal-field-label{display:block;margin-bottom:7px;color:var(--muted);font-size:11px;font-weight:850;letter-spacing:.45px}
.modal-textarea{width:100%;min-height:min(58vh,620px);box-sizing:border-box;resize:vertical;font-size:15px;line-height:1.75;padding:14px 15px}
.modal-textarea[readonly]{background:rgba(255,255,255,.035);cursor:default}
.modal-hint{margin:0 0 12px;color:var(--muted);font-size:12px;line-height:1.55}
.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:12px;flex-wrap:wrap}
.modal-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:13px}
.modal-image-choice{position:relative;display:flex;flex-direction:column;gap:8px;padding:9px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025);color:var(--text);text-align:left}
.modal-image-choice:hover{border-color:var(--purple);background:rgba(141,124,255,.08)}
.modal-image-choice.is-selected{border-color:var(--green);box-shadow:0 0 0 1px rgba(72,213,166,.25) inset}
.modal-choice-photo{width:100%;height:158px;object-fit:contain;border-radius:8px;background:#05070d}
.modal-choice-placeholder{height:158px;display:grid;place-items:center;border-radius:8px;background:rgba(255,255,255,.04);font-size:34px}
.modal-choice-title{font-size:12px;font-weight:850;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modal-choice-meta{font-size:10px;color:var(--muted);line-height:1.45;word-break:break-word}
.modal-choice-meta .warn{color:var(--orange);font-weight:700}
.modal-choice-actions{display:flex;margin-top:auto;padding-top:2px}
.modal-choice-actions .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.modal-choice-badge{position:absolute;top:15px;right:15px}
.image-preview-stage{margin:0;min-height:min(68vh,720px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#05070d}
.media-preview-stage{margin:0;min-height:min(52vh,620px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#05070d}
.media-preview-player{display:block;max-width:100%;width:min(900px,100%);max-height:min(66vh,720px);border-radius:8px;background:#05070d}
.media-preview-stage audio.media-preview-player{width:min(640px,100%)}
.work-modal:has(video.media-preview-player){
  padding:0;
  place-items:stretch;
  background:rgba(3,7,16,.42);
  backdrop-filter:blur(14px) saturate(1.05);
}
.work-modal:has(video.media-preview-player) .work-modal-panel{
  width:100vw;
  max-width:none;
  height:100vh;
  max-height:none;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.work-modal:has(video.media-preview-player) .work-modal-head{
  position:absolute;
  inset:0 0 auto;
  z-index:4;
  padding:16px 20px 42px;
  border:0;
  color:#fff;
  background:linear-gradient(180deg,rgba(0,0,0,.72),rgba(0,0,0,0));
}
.work-modal:has(video.media-preview-player) .work-modal-head h3,
.work-modal:has(video.media-preview-player) .work-modal-eyebrow{color:#fff}
.work-modal:has(video.media-preview-player) .work-modal-close{
  color:#fff;
  border-color:rgba(255,255,255,.35);
  background:rgba(0,0,0,.28);
}
.work-modal:has(video.media-preview-player) .work-modal-close:hover{border-color:#fff;background:rgba(0,0,0,.52)}
.work-modal:has(video.media-preview-player) .work-modal-body{
  position:absolute;
  inset:0;
  min-height:0;
  padding:0;
  overflow:hidden;
  background:transparent;
}
.work-modal:has(video.media-preview-player) .media-preview-stage{
  position:absolute;
  inset:0;
  min-height:0;
  padding:0;
  border:0;
  border-radius:0;
  overflow:hidden;
  background:transparent;
}
.work-modal:has(video.media-preview-player) .media-preview-player{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:contain;
  border-radius:0;
  background:transparent;
}
.work-modal:has(video.media-preview-player) .image-preview-caption{
  position:absolute;
  inset:auto 0 0;
  z-index:3;
  width:auto;
  padding:34px 20px 14px;
  color:rgba(255,255,255,.8);
  pointer-events:none;
  background:linear-gradient(0deg,rgba(0,0,0,.74),rgba(0,0,0,0));
}
.work-modal:has(video.media-preview-player) .image-preview-caption strong{color:#fff}
.work-modal:has(video.media-preview-player) .modal-actions{
  position:absolute;
  right:20px;
  bottom:16px;
  z-index:5;
  margin:0;
}

/* —— 音频试听弹窗（适中居中窗口，清晰展示台词、声线与播放器）—— */
.work-modal-panel.is-audio-preview{
  width:min(540px,calc(100vw - 32px));
  max-height:calc(100vh - 48px);
  border-radius:18px;
}
.audio-preview-box{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.audio-preview-meta-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 14px;
  border-radius:10px;
  background:rgba(141,124,255,.08);
  border:1px solid rgba(141,124,255,.2);
  font-size:12px;
  color:var(--text);
}
.audio-preview-meta-title{
  font-weight:700;
  display:flex;
  align-items:center;
  gap:6px;
}
.audio-preview-meta-sub{
  font-size:11px;
  color:var(--muted);
}
.audio-preview-quote{
  padding:12px 14px;
  border-radius:10px;
  background:rgba(255,255,255,.03);
  border:1px solid var(--line);
  font-size:13px;
  line-height:1.65;
  color:var(--text);
  white-space:pre-wrap;
  word-break:break-word;
  max-height:min(35vh,260px);
  overflow-y:auto;
}
.audio-preview-quote:empty{
  display:none;
}
.audio-preview-player-wrap{
  padding:14px;
  border-radius:12px;
  background:rgba(0,0,0,.25);
  border:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:center;
}
.audio-preview-player{
  width:100%;
  height:40px;
  outline:none;
}
body[data-theme="light"] .audio-preview-meta-bar{
  background:#F3EFFF;
  border-color:#DDD2FA;
}
body[data-theme="light"] .audio-preview-quote{
  background:#FAF7F2;
  border-color:var(--line);
}
body[data-theme="light"] .audio-preview-player-wrap{
  background:#F5F2EB;
}

/* —— 视频大弹窗展示（左侧：参考图+提示词，右侧：视频播放）—— */
.video-preview-layout{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:row;
  width:100%;
  height:100%;
  min-height:0;
  overflow:hidden;
}
.video-preview-sidebar{
  width:min(420px,36vw);
  min-width:320px;
  max-width:480px;
  height:100%;
  overflow-y:auto;
  overflow-x:hidden;
  box-sizing:border-box;
  padding:76px 18px 24px 20px;
  background:rgba(8,12,22,.88);
  backdrop-filter:blur(24px) saturate(1.2);
  -webkit-backdrop-filter:blur(24px) saturate(1.2);
  border-right:1px solid rgba(255,255,255,.12);
  z-index:3;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.video-preview-sidebar::-webkit-scrollbar{width:6px}
.video-preview-sidebar::-webkit-scrollbar-track{background:transparent}
.video-preview-sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:4px}
.video-preview-sidebar .gen-input-audit{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  padding:14px;
  gap:16px;
}
.video-preview-sidebar .gen-input-label{
  color:rgba(255,255,255,.92);
  font-size:12px;
  font-weight:700;
  margin-bottom:8px;
  letter-spacing:.2px;
}
.video-preview-sidebar .gen-input-prompt-text{
  background:rgba(0,0,0,.45);
  border:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.92);
  font-size:12px;
  line-height:1.6;
  max-height:none;
  min-height:140px;
}
.video-preview-sidebar .gen-input-ref{width:90px}
.video-preview-sidebar .gen-input-ref-img{
  width:90px;
  height:90px;
  border-color:rgba(255,255,255,.16);
}
.video-preview-sidebar .gen-input-ref figcaption b{
  color:rgba(255,255,255,.92);
}
.video-preview-sidebar .gen-input-ref figcaption span{
  color:rgba(255,255,255,.6);
}
.video-preview-main{
  flex:1 1 auto;
  min-width:0;
  height:100%;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.video-preview-main .media-preview-stage{
  position:absolute;
  inset:0;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.video-preview-main .media-preview-player{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:contain;
  border-radius:0;
  background:transparent;
}
.video-preview-main .image-preview-caption{
  position:absolute;
  inset:auto 0 0;
  z-index:3;
  width:auto;
  padding:34px 20px 14px;
  color:rgba(255,255,255,.85);
  pointer-events:none;
  background:linear-gradient(0deg,rgba(0,0,0,.74),rgba(0,0,0,0));
}
.video-preview-main .image-preview-caption strong{color:#fff}

body[data-theme="light"] .video-preview-sidebar{
  background:rgba(246,243,237,.94);
  border-right:1px solid rgba(0,0,0,.1);
}
body[data-theme="light"] .video-preview-sidebar .gen-input-audit{
  background:#fff;
  border-color:rgba(0,0,0,.08);
}
body[data-theme="light"] .video-preview-sidebar .gen-input-label{
  color:var(--text);
}
body[data-theme="light"] .video-preview-sidebar .gen-input-prompt-text{
  background:#F9F7F2;
  border-color:rgba(0,0,0,.08);
  color:var(--text);
}
body[data-theme="light"] .video-preview-sidebar .gen-input-ref figcaption b{
  color:var(--text);
}
body[data-theme="light"] .video-preview-sidebar .gen-input-ref figcaption span{
  color:var(--muted);
}

@media (max-width:768px){
  .video-preview-layout{flex-direction:column-reverse}
  .video-preview-sidebar{
    width:100%;
    min-width:0;
    max-width:none;
    height:45vh;
    padding:16px;
    border-right:0;
    border-top:1px solid rgba(255,255,255,.12);
  }
  .video-preview-main{height:55vh}
}

body[data-theme="light"] .work-modal:has(video.media-preview-player){background:rgba(49,43,32,.28)}
body[data-theme="light"] .work-modal:has(video.media-preview-player) .work-modal-body{background:transparent}
.image-preview-image{display:block;max-width:100%;max-height:min(65vh,700px);object-fit:contain;border-radius:8px;background:#05070d}
.image-preview-caption{width:100%;padding:0 8px 6px;display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:var(--muted);font-size:11px;line-height:1.45}
.image-preview-caption strong{color:var(--text);font-size:12px}
.image-preview-caption span{text-align:right;word-break:break-word}
.prompt-card-preview{margin:0 0 8px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.025);color:var(--muted);font-size:11px;line-height:1.55;white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.prompt-card-actions{display:flex;gap:7px;flex-wrap:wrap}

body[data-theme="light"] .work-modal{background:rgba(49,43,32,.35)}
body[data-theme="light"] .work-modal-panel{background:#FFFDF9;border-color:var(--line)}
body[data-theme="light"] .work-modal-head{background:color-mix(in srgb, var(--primary) 7%, transparent)}
body[data-theme="light"] .modal-textarea[readonly],body[data-theme="light"] .modal-image-choice,body[data-theme="light"] .prompt-card-preview{background:rgba(0,0,0,.025)}
body[data-theme="light"] .modal-choice-photo{background:#F4F0E7}
body[data-theme="light"] .image-preview-stage,body[data-theme="light"] .image-preview-image{background:#F4F0E7}

@media (max-width:720px){
  .work-modal{padding:10px}
  .work-modal-panel,.work-modal-panel.is-compact{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}
  .work-modal-head{padding:13px 14px}
  .work-modal-body{padding:14px}
  .modal-textarea{min-height:52vh;font-size:14px}
  .modal-image-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}
  .image-preview-stage{min-height:48vh}
  .image-preview-image{max-height:52vh}
  .image-preview-caption{flex-direction:column;align-items:flex-start;gap:2px}
  .image-preview-caption span{text-align:left}
}

/* 分镜图（第4步）：复用资产库布局 + 参考图缩略条 */
.sb-refs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;padding:6px 8px;border:1px dashed var(--line);border-radius:9px;background:rgba(141,124,255,.04)}
.sb-refs.muted{font-size:12px;padding:8px}
.sb-refs-label{font-size:11px;font-weight:700;letter-spacing:.5px}
.sb-ref{display:inline-flex;flex-direction:column;align-items:center;gap:3px;width:64px}
.sb-ref-img{width:56px;height:56px;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:#141d30;display:block}
.sb-ref-name{max-width:62px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:var(--muted)}
.sb-prompt{width:100%;min-height:104px;max-height:220px;font-size:12px;line-height:1.5;resize:vertical}
.sb-thumb{display:flex;flex-direction:column;align-items:center;gap:2px;width:74px;padding:8px 4px;border:1px solid var(--line);border-radius:9px;background:#141d30;color:var(--muted);font-size:10px;cursor:pointer}
.sb-thumb:hover{border-color:var(--purple);color:var(--text)}

/* 参数下拉（图片/视频工具栏）+ 音频开关 */
.skill-bar .select.select-sm{width:auto;min-width:62px;max-width:104px;padding:7px 8px}
.switch-label{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;cursor:pointer}
.switch-label input{accent-color:var(--purple)}

/* 全局 API 凭证设置面板 */
.topbar-actions{position:relative;display:flex;align-items:center;gap:6px;flex:0 0 auto;flex-wrap:nowrap}
.app-top .pill{padding:6px 10px;font-size:11px}
.app-top .btn-icon{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
/* 顶栏按钮文字禁止按 CJK 逐字断行（窄窗口被挤压成竖排单字）；整行换行由 .app-top flex-wrap 承担 */
.app-top .btn{white-space:nowrap}
.app-top .logo{width:26px;height:26px;border-radius:8px;flex:0 0 auto}
.app-top .logo.logo-help{width:auto;height:auto;min-height:40px;min-width:0;padding:8px 14px;border-radius:12px;box-sizing:border-box}
.app-top .stepper{flex:0 0 auto;overflow:visible}
.app-top .project-entry-label{font-size:14px}
/* 项目入口与步骤条按钮禁止逐字竖排 */
.app-top .project-entry{white-space:nowrap}
.app-top .step-tab{white-space:nowrap}
/* 顶栏右侧按钮组禁止逐字竖排 */
.topbar-model-test .btn{white-space:nowrap}
.topbar-actions .btn{white-space:nowrap}
.app-top .brand-text{font-size:16px}
.app-top .project-entry{min-height:34px;padding:5px 14px 5px 12px}
@media(max-width:1180px){
  .project-context{flex-basis:250px;max-width:250px}
}
@media(max-width:900px){
  .project-context{flex-basis:190px;max-width:190px}
}
@media(max-width:980px){
  .app-top .brand-text{display:none}
  .step-tab{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--line);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
}
#btnOpenModelsCatalog.ok{color:#b5f7e1;border-color:rgba(72,213,166,.45)}
.api-pop{position:fixed;inset:0;z-index:220;background:var(--overlay);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:22px;text-align:left}
.api-pop[hidden]{display:none}
.api-pop-card{width:min(600px,94vw);max-height:86vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-xl);padding:18px 20px;box-shadow:var(--shadow-pop);display:flex;flex-direction:column;gap:10px}
.api-pop-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.api-pop-head b{font-size:14px;color:var(--text)}
.api-pop-close{border:none;background:transparent;color:var(--muted);font-size:20px;line-height:1;padding:2px 8px;border-radius:8px}
.api-pop-close:hover{color:var(--text);background:color-mix(in srgb,var(--muted) 18%,transparent)}
.api-pop-section b{font-size:13px;color:var(--text)}
.api-pop-row{display:flex;flex-direction:column;gap:4px}
.api-pop-row label{font-size:11px;color:var(--text);opacity:.72;font-weight:850;text-transform:uppercase;letter-spacing:.6px}
.api-pop-row input{background:color-mix(in srgb,var(--text) 7%,var(--panel));border:1px solid var(--line);color:var(--text);border-radius:var(--radius-input);padding:9px 10px;font-size:12.5px;width:100%}
.api-pop-row input::placeholder{color:var(--muted);opacity:.85}
.api-pop-row input:focus{outline:none;border-color:var(--purple)}
.api-pop-foot{display:flex;align-items:center;gap:8px}
.api-pop-status{font-size:12px;line-height:1.55;min-height:16px;color:var(--text);opacity:.85}
.api-pop-status.ok{color:var(--green);opacity:1}
.api-pop-status.bad{color:var(--red);opacity:1}
.api-pop-foot .muted{font-size:11px}
.api-pop-note{font-size:11.5px;line-height:1.6;color:var(--muted)}


/* 第1步：上传剧本 + 默认展开的展示剧本 */
.script-split{
  grid-template-columns:minmax(0,2fr) minmax(260px,1fr);
  gap:14px;align-items:stretch;
}
.script-split-main,.script-split-side{min-width:0;min-height:0}
.script-split-main{display:flex;flex-direction:column}
.script-split-main .script-md-wrap{flex:1;min-height:0;display:flex;flex-direction:column}
.script-split .script-md-view{flex:1;min-height:0;max-height:none;overflow:auto}
.script-split .script-md-pre{min-height:0}
.script-split-side{
  display:flex;flex-direction:column;gap:10px;
  overflow:auto;padding-right:2px;
}
.script-split-side > *{flex:0 0 auto;min-height:auto}
.script-split-side .fit-note{margin:0;padding:10px 12px;font-size:11.5px;line-height:1.55;border-width:7px}
.script-split-side .fit-note-title{font-size:13px;margin-bottom:3px}
.script-split-side .script-module-wide{margin:0;padding:14px;gap:6px;min-height:auto;overflow:visible}
.script-split-side .script-module-icon{font-size:22px}
.script-split-side .script-module-wide h3{font-size:16px}
.script-split-side .progress{margin:0}
.script-split-side #progressText{margin:0}
.script-split-side .script-view-card,.script-split-side .card{margin:0}
.script-split-side .script-view-head{flex-direction:column;align-items:stretch;margin-bottom:0;gap:10px}
.script-split-side .script-view-actions{flex-direction:column;align-items:stretch}
.script-split-side .script-jump{display:flex;width:100%}
.script-split-side .script-jump .select{flex:1;min-width:0;width:100%}
.script-split-side .check-grid{grid-template-columns:1fr;gap:6px}
.upload-pane-script .fit-note{margin:0;padding:8px 10px;font-size:11px;line-height:1.5;border-width:5px}
.upload-pane-script .fit-note-title{font-size:12px;margin-bottom:2px}
.upload-pane-script .script-module-wide{
  margin:0;
  padding:8px 10px;
  gap:6px 10px;
  min-height:auto;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
}
.upload-pane-script .script-module-icon{display:none}
.upload-pane-script .script-module-kicker{width:100%}
.upload-pane-script .script-module-wide h3{font-size:14px;margin:0}
.upload-pane-script .script-module-wide > p{flex:1 1 160px;font-size:11px;margin:0}
.upload-pane-script .script-module-cta{margin:0;padding:6px 10px;font-size:12px}
.upload-pane-script:has(.script-ep-block) .script-module-kicker,
.upload-pane-script:has(.cm-editor) .script-module-kicker,
.upload-pane-script:has(.script-ep-block) .script-module-wide > p:not(#uploadHint),
.upload-pane-script:has(.cm-editor) .script-module-wide > p:not(#uploadHint){display:none}
.upload-pane-script:has(.script-ep-block) .script-module-wide,
.upload-pane-script:has(.cm-editor) .script-module-wide{padding:6px 10px}
.upload-pane-script .progress,#uploadScriptView #progressText{margin:0}
.upload-pane-script .script-view-head{margin-bottom:0;gap:4px}
.upload-pane-script .check-grid{grid-template-columns:1fr 1fr;gap:6px}
.upload-pane-script .check{padding:7px 8px;font-size:11px}
body[data-theme="light"] .upload-pane{
  background:rgba(255,255,255,.55);
  border-color:var(--line);
}
body[data-theme="light"] .script-chat-dock{
  background:rgba(255,255,255,.72);
  border-color:var(--line);
}
body[data-theme="light"] .adapt-chat-rail{
  background:rgba(255,255,255,.55);
  border-color:var(--line);
}
@container upload-panel (max-width: 820px){
  #uploadScriptView.script-split{grid-template-columns:1fr;height:auto;flex:0 0 auto;overflow:visible}
  .script-split-main,.script-split-side{overflow:visible;max-height:none}
  .script-split .script-md-view{max-height:min(60vh,640px)}
}
.script-module-wide{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:22px 20px;border:1.5px dashed #405171;border-radius:17px;background:linear-gradient(155deg,rgba(141,124,255,.07),rgba(88,184,255,.03));color:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s;margin:4px 0 12px;min-height:0}
.script-module-wide:hover{border-color:var(--purple);background:linear-gradient(155deg,rgba(141,124,255,.12),rgba(88,184,255,.05))}
.script-module-wide.is-dragover{border-color:var(--green);background:linear-gradient(155deg,rgba(72,213,166,.12),rgba(88,184,255,.05))}
.script-module-kicker{font-size:10px;font-weight:900;letter-spacing:1px;text-transform:uppercase;color:var(--purple2)}
.script-module-icon{font-size:28px;line-height:1;opacity:.9}
.script-module-wide h3{margin:0;font-size:18px}
.script-module-wide > p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}
.script-module-cta{margin-top:4px;pointer-events:none}
.script-module-wide .muted{margin:0;font-size:11px;word-break:break-all}
.script-view-card{margin-top:4px}
.script-view-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px;flex-wrap:wrap}
.script-view-head h3{margin:0 0 4px}
.script-view-head .muted{margin:0;font-size:12px;line-height:1.5}
.script-view-actions{display:flex;gap:8px;flex-wrap:wrap}
.script-md-wrap{display:flex;flex-direction:column;gap:12px}
.script-md-pre{margin:0;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;line-height:1.7;white-space:pre-wrap;word-break:break-word;min-height:min(52vh,560px);max-height:none;overflow:visible}
body[data-theme="light"] .script-module-wide{border-color:var(--line);background:linear-gradient(155deg,color-mix(in srgb, var(--primary) 6%, transparent),rgba(91,127,166,.03))}
body[data-theme="light"] .script-module-wide:hover{border-color:var(--primary)}
body[data-theme="light"] .script-md-pre{background:rgba(0,0,0,.025)}

.script-jump{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;font-weight:700}
.script-jump .select{min-width:132px}
.script-md-view{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03);max-height:min(70vh,820px);overflow:auto}
.script-ep-block{padding:0;border-top:1px solid rgba(127,127,127,.12);scroll-margin-top:12px}
.script-ep-block:first-child{border-top:0}
.script-ep-block.is-active{background:rgba(141,124,255,.07);box-shadow:inset 3px 0 0 var(--purple)}
.script-ep-block .script-md-pre{border:0;border-radius:0;background:transparent;min-height:0;max-height:none;overflow:visible;padding:14px 16px}
.script-md-pre{margin:0;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;line-height:1.7;white-space:pre-wrap;word-break:break-word;min-height:min(40vh,420px)}
.insp-jump-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.insp-jump-list .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.insp-scene-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);font-size:11px;color:var(--muted)}
.insp-scene-pill.warn{border-color:rgba(255,180,92,.45);color:var(--orange)}
.insp-scene-pill.ok{border-color:rgba(72,213,166,.35);color:var(--green)}
body[data-theme="light"] .script-md-view,body[data-theme="light"] .script-md-pre{background:rgba(0,0,0,.025)}
body[data-theme="light"] .script-ep-block.is-active{background:color-mix(in srgb, var(--primary) 8%, transparent);box-shadow:inset 3px 0 0 var(--primary)}

.script-notepad{display:flex;flex-direction:column;min-height:0;flex:1 1 auto;gap:0}
.script-notepad-find{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px;
  padding:6px 8px;border:1px solid var(--line);border-bottom:0;
  border-radius:14px 14px 0 0;
  background:color-mix(in srgb, var(--panel) 88%, transparent);
}
.script-notepad-find[hidden]{display:none!important}
.script-notepad-find .search{width:auto;min-width:120px;flex:1 1 140px;min-height:32px;padding:6px 8px}
.script-notepad-find .btn{padding:4px 8px;font-size:12px}
.script-notepad-find:not([hidden]) + .script-notepad-view{
  border-top-left-radius:0;border-top-right-radius:0;border-top:0;
}
.script-notepad:has(#scriptNotepadStatus:not([hidden])) .script-notepad-view{
  border-bottom-left-radius:0;border-bottom-right-radius:0;
}
.script-notepad-view{flex:1 1 auto;min-height:0;max-height:none}
.script-notepad-view .cm-editor{
  height:100%;
  background:transparent;
  color:var(--text);
  font-size:13px;
  outline:none;
}
.script-notepad-view .cm-editor.cm-focused{outline:none}
.script-notepad-view .cm-scroller{
  line-height:1.7;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
}
.script-notepad-view .cm-gutters{
  background:color-mix(in srgb, var(--text) 5%, transparent);
  color:var(--muted);
  border-right:1px solid var(--line);
}
.script-notepad-view .cm-activeLine{
  background:color-mix(in srgb, var(--primary) 9%, transparent);
}
.script-notepad-view .cm-activeLineGutter{
  background:color-mix(in srgb, var(--primary) 14%, transparent);
  color:var(--text);
}
.script-notepad-view .cm-selectionBackground,
.script-notepad-view .cm-content ::selection{
  background:color-mix(in srgb, var(--primary) 28%, transparent) !important;
}
.script-notepad-view .cm-searchMatch{
  background:color-mix(in srgb, var(--orange) 38%, transparent);
}
.script-notepad-view .cm-searchMatch-selected{
  background:color-mix(in srgb, var(--orange) 62%, transparent);
}
.script-notepad-view .cm-script-ep-line{
  background:color-mix(in srgb, var(--primary) 7%, transparent);
  box-shadow:inset 3px 0 0 var(--primary);
}
.script-notepad-view .cm-script-preamble{opacity:.72}
.script-notepad-view .df-script-ep{font-weight:800;color:var(--primary)}
.script-notepad-view .df-script-scene{font-weight:700;color:var(--orange)}
.script-notepad-view .df-script-speech{font-weight:650;color:var(--purple2, var(--primary))}
.script-notepad-status{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  padding:5px 10px;border:1px solid var(--line);border-top:0;
  border-radius:0 0 14px 14px;
  background:color-mix(in srgb, var(--panel) 88%, transparent);
  color:var(--muted);font-size:11px;font-weight:650;
}
.script-notepad-status[hidden]{display:none!important}
.script-notepad-status #scriptStatusDirty{color:var(--orange)}
#btnSaveScriptEp.is-dirty{border-color:var(--orange);color:var(--orange)}
body[data-theme="light"] .script-notepad-view .cm-gutters{
  background:color-mix(in srgb, var(--text) 4%, #fff);
}
body[data-theme="light"] .script-notepad-view{
  background:color-mix(in srgb, #f6f1e8 70%, transparent);
}

.workbench .insp-jump-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px;max-height:220px;overflow:auto}
.workbench .insp-jump-list .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.workbench .insp-jump-list .btn.is-thin{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.workbench .insp-jump-list .btn.is-miss{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}

.project-modal-section{margin:0 0 16px}
.project-create-row{display:flex;gap:8px;align-items:center}
.project-create-row .search{flex:1 1 auto}
.project-list{display:flex;flex-direction:column;gap:8px;max-height:min(52vh,460px);overflow:auto}
.project-list-item{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.03)}
.project-list-item.is-current{border-color:var(--purple);box-shadow:0 0 0 1px rgba(141,124,255,.18) inset}
.project-list-item .meta{color:var(--muted);font-size:11px;line-height:1.45;margin-top:3px}
.project-list-item .name{font-weight:800;font-size:13px}
.project-list-actions{display:flex;gap:6px;flex:0 0 auto}
.project-trash-head{margin:14px 0 2px;padding-top:12px;border-top:1px dashed var(--line);font-weight:800;font-size:12.5px}
.project-trash-head .muted{margin-left:6px;font-weight:500}
.project-list-item.is-trashed{border-style:dashed;opacity:.85}
body[data-theme="light"] .project-list-item{background:rgba(0,0,0,.02)}
body[data-theme="light"] .project-list-item.is-current{border-color:var(--primary);box-shadow:0 0 0 1px color-mix(in srgb, var(--primary) 18%, transparent) inset}

/* generate feedback */
.toast.toast-ok{border-color:rgba(72,213,166,.45);background:rgba(20,40,34,.96);color:#b5f7e1}
.toast.toast-error{border-color:rgba(255,123,134,.55);background:rgba(48,18,24,.96);color:#ffd0d4}
.toast.toast-running{border-color:rgba(255,180,92,.5);background:rgba(42,30,14,.96);color:#ffd5a4}
.badge.red{color:#ffd0d4;border-color:rgba(255,123,134,.4);background:rgba(255,123,134,.1)}
.btn.is-generating{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.btn.is-generating .btn-spinner{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.adapt-pipeline{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;margin-top:10px;overflow-x:auto}
.adapt-step{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid var(--border, #333);background:rgba(255,255,255,.03);font-size:13px;flex:0 0 auto}
.adapt-step-no{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);font-weight:700}
.adapt-step-meta{opacity:.7}
.adapt-step[data-state="running"]{border-color:#d97706;background:rgba(217,119,6,.12);animation:adapt-step-pulse 1.6s ease-in-out infinite}
.adapt-step[data-state="running"] .adapt-step-no{background:#d97706;color:#111}
.adapt-step[data-state="done"]{border-color:#16a34a;background:rgba(22,163,74,.12)}
.adapt-step[data-state="done"] .adapt-step-no{background:#16a34a;color:#fff}
.adapt-step[data-state="error"]{border-color:#dc2626;background:rgba(220,38,38,.12)}
.adapt-step[data-state="error"] .adapt-step-no{background:#dc2626;color:#fff}
.adapt-step-arrow{opacity:.45;flex:0 0 auto}
@keyframes adapt-step-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(217,119,6,0)}
  50%{box-shadow:0 0 0 4px rgba(217,119,6,.18)}
}
.adapt-step-skill{cursor:pointer;border-color:#7c3aed;background:rgba(124,58,237,.10);transition:background .15s,border-color .15s}
.adapt-step-skill:hover{background:rgba(124,58,237,.22);border-color:#a78bfa}
.adapt-step-skill .adapt-step-no{background:#7c3aed;color:#fff;font-size:14px}
.adapt-step-skill .adapt-step-meta{opacity:1;font-weight:700}


.btn-spinner{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
@keyframes spin{to{transform:rotate(360deg)}}
.btn.is-generating{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
}
.btn .btn-spinner,
.btn.is-generating .btn-spinner,
span.btn-spinner{
  display:inline-block;
  width:12px;
  height:12px;
  flex:0 0 12px;
  margin-right:6px;
  vertical-align:-2px;
  box-sizing:border-box;
  background:transparent !important;
  border:2px solid currentColor !important;
  border-right-color:transparent !important;
  border-radius:50% !important;
  box-shadow:none !important;
  animation:spin .7s linear infinite;
}
.run-bar.indeterminate{
  width:40% !important;
  animation:indeterminate 1.2s ease-in-out infinite;
}
@keyframes indeterminate{
  0%{transform:translateX(-120%)}
  100%{transform:translateX(280%)}
}
.run-progress{overflow:hidden}
.run-log-error{color:#ffb4bb;border-color:rgba(255,123,134,.28);background:rgba(255,123,134,.06)}

.protag-banner{
  margin-top:12px;padding:12px 14px;border-radius:12px;
  border:1px solid rgba(99,102,241,.35);
  background:linear-gradient(135deg, rgba(99,102,241,.12), rgba(16,185,129,.08));
  display:flex;flex-direction:column;gap:6px;
}
.protag-banner-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.protag-banner-label{font-size:12px;opacity:.75}
.protag-banner-main strong{font-size:18px;letter-spacing:.02em}
.protag-banner .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.badge.protag-on{background:rgba(22,163,74,.18);color:#16a34a}
.badge.protag-off{background:rgba(217,119,6,.18);color:#d97706}


/* ② 正在刷新的旁白栏：毛玻璃 + 刷新标志 */
.field.narration{
  position: relative;
  overflow: hidden;
}
.field.narration.is-refreshing{
  border-color: rgba(217,119,6,.55) !important;
  box-shadow: 0 0 0 1px rgba(217,119,6,.18), 0 8px 24px rgba(217,119,6,.08);
}
.adapt-card[data-status="generating"]{
  outline: 1px solid rgba(217,119,6,.35);
  box-shadow: 0 0 0 3px rgba(217,119,6,.08);
}
@keyframes adapt-card-in{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:none}
}
.adapt-card-enter{
  animation:adapt-card-in .35s ease both;
}

/* 生成中：毛玻璃 + 转圈（旁白 / 分镜 / 资产 / 视频共用） */
.gen-busy-glass,
.narration-refresh-glass,
.sb-gen-glass{
  position: absolute;
  inset: 0;
  z-index: 6;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px;
  text-align: center;
  border-radius: inherit;
  background: rgba(12, 16, 28, 0.48);
  backdrop-filter: blur(14px) saturate(1.35);
  -webkit-backdrop-filter: blur(14px) saturate(1.35);
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
  pointer-events: all;
  cursor: wait;
}
.narration-refresh-glass{ z-index: 5; padding: 16px; background: rgba(12, 16, 28, 0.42); }
.gen-busy-glass .refresh-orbit,
.narration-refresh-glass .refresh-orbit,
.sb-gen-glass .refresh-orbit{
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 3px solid rgba(255,255,255,.16);
  border-top-color: #f0b429;
  border-right-color: rgba(141,124,255,.9);
  animation: spin .75s linear infinite;
  box-shadow: 0 0 18px rgba(240,180,41,.28);
}
.gen-busy-glass .refresh-title,
.narration-refresh-glass .refresh-title,
.sb-gen-glass .refresh-title{
  font-size: 13px;
  font-weight: 850;
  letter-spacing: .02em;
  color: #fff6e0;
}
.gen-busy-glass .refresh-sub,
.narration-refresh-glass .refresh-sub,
.sb-gen-glass .refresh-sub{
  font-size: 11px;
  color: rgba(232,236,248,.8);
  max-width: 220px;
  line-height: 1.45;
}
.gen-busy-glass.is-compact{
  gap: 6px;
  padding: 8px;
}
.gen-busy-glass.is-compact .refresh-orbit{
  width: 28px;
  height: 28px;
  border-width: 2px;
  box-shadow: 0 0 12px rgba(240,180,41,.22);
}
.gen-busy-glass.is-compact .refresh-title{ font-size: 11px; }
.gen-busy-glass.is-compact .refresh-sub{ display: none; }
.vid-asset-thumb.is-generating,
.lib-img.is-generating,
.modal-choice-media.is-generating,
.vid-cell.is-generating,
.sb-closeup-media.is-generating,
.process-preview.is-generating,
.process-concat.is-generating,
.export-final-preview.is-generating,
.export-final-layout.is-generating,
.process-stage .lib-img.is-generating{
  outline: 1px solid rgba(217,119,6,.4);
  box-shadow: 0 0 0 3px rgba(217,119,6,.1);
  overflow: hidden;
}
.studio-block.char-card.is-generating{
  outline: 1px solid rgba(217,119,6,.35);
  box-shadow: 0 0 0 3px rgba(217,119,6,.08);
}
.vid-asset-thumb.is-generating .gen-busy-glass.is-compact .refresh-title{
  max-width: 100%;
  padding: 0 4px;
  line-height: 1.3;
  word-break: keep-all;
}
.modal-choice-media{
  position: relative;
  min-height: 158px;
  border-radius: 8px;
  overflow: hidden;
}
body[data-theme="light"] .gen-busy-glass,
body[data-theme="light"] .narration-refresh-glass,
body[data-theme="light"] .sb-gen-glass{
  background: rgba(255, 248, 240, 0.58);
  border-color: color-mix(in srgb, var(--primary) 28%, transparent);
}
body[data-theme="light"] .gen-busy-glass .refresh-title,
body[data-theme="light"] .narration-refresh-glass .refresh-title,
body[data-theme="light"] .sb-gen-glass .refresh-title{ color: #5c3b22; }
body[data-theme="light"] .gen-busy-glass .refresh-sub,
body[data-theme="light"] .narration-refresh-glass .refresh-sub,
body[data-theme="light"] .sb-gen-glass .refresh-sub{ color: rgba(74,55,40,.78); }
body[data-theme="light"] .gen-busy-glass .refresh-orbit,
body[data-theme="light"] .narration-refresh-glass .refresh-orbit,
body[data-theme="light"] .sb-gen-glass .refresh-orbit{
  border-color: rgba(92,59,34,.15);
  border-top-color: var(--primary);
  border-right-color: #c4a574;
}


/* 单镜三轨按钮：仅拆镜 / 仅旁白 / 仅分镜脚本 */
.btn.sm{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.shot-action-bar{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 14px 14px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.01));
}
.shot-action-bar-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.shot-action-bar .source{
  margin:0;
  font-size:11px;
  color:var(--muted);
  text-align:center;
}
.shot-action-bar .btn-shot-rail{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.shot-action-bar .btn-shot-rail:hover{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.shot-action-bar .btn-shot-rail:disabled{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.shot-action-bar .btn-shot-split{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.shot-action-bar .btn-shot-narration{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.shot-action-bar .btn-shot-storyboard{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .shot-action-bar{
  background:linear-gradient(180deg,color-mix(in srgb, var(--text) 4%, transparent),rgba(255,255,255,.55));
  border-bottom-color:var(--line);
}
body[data-theme="light"] .shot-action-bar .btn-shot-split{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .shot-action-bar .btn-shot-narration{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .shot-action-bar .btn-shot-storyboard{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}


/* 左侧合并工作台紧凑排版 */
.side-workbench .workbench-head{padding:0 2px 10px;margin-bottom:10px}
.side-workbench .workbench-eyebrow{font-size:8px}
.side-workbench h2{font-size:16px;margin:5px 0 2px}
/* 侧栏标题/面板名禁止逐字竖排（CJK 可断行导致窄宽被挤成单字列） */
.side-workbench h2,
.side-workbench .side-title,
.side-workbench .run-head b,
.side-workbench .qt-head,
.side-workbench .qt-shot{white-space:nowrap}
.side-workbench .workbench-head p{font-size:10px}
.side-workbench .info-list{grid-template-columns:1fr;gap:6px}
.side-workbench .info{min-height:auto;padding:8px 9px}
.side-workbench .info .v{font-size:11px}
.side-workbench .side-title{margin-top:10px;font-size:11px}
.side-workbench .inspector-runs{margin-top:8px;padding-top:0}
.side-workbench .inspector-runs:has(.run-panel:not([hidden])),
.side-workbench .inspector-runs:has(#storyboardWorkbench:not([hidden])){margin-top:8px;padding-top:2px}
.side-workbench .run-panel{padding:10px}
.side-workbench #storyboardWorkbench .run-panel{padding:9px 10px}
/* 质检待办块窄栏可收缩：flex 链 min-width:0，长文本由 .qt-first 省略号截断，
   防止 380px min-content 撑宽 workbench 形成隐藏横向滚动（左缘裁切） */
.side-workbench .adapt-actions{min-width:0}
.side-workbench .quality-todo-list{min-width:0}
.side-workbench .qt-row{min-width:0}
.side-workbench .run-head{flex-wrap:wrap}
.side-workbench .run-head .grow{display:none}
.side-workbench .run-head b{font-size:12px}
.side-workbench .run-head .muted{font-size:10px}
.side-workbench .run-model-label{width:100%;margin-top:4px}
.side-workbench .text-model-picker{width:100%;max-width:100%}
.side-workbench .run-head .text-model-picker{flex:1 0 100%}
.side-workbench #textModelSelect,
.side-workbench #imageModelSelect,
.side-workbench #assetTextModel{width:100%;max-width:100%;margin:2px 0 6px}
.side-workbench .text-model-picker #textModelSelect,
.side-workbench .text-model-picker #assetTextModel{margin-bottom:2px}
.side-workbench .wb-img-params{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 8px}
.side-workbench .wb-img-default-hint{margin:0 0 8px;font-size:11px;line-height:1.4}
.side-workbench .wb-img-actions{display:flex;flex-direction:column;gap:6px;margin:0 0 6px}
.side-workbench .wb-img-actions .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.side-workbench .wb-img-params .run-model-label{width:auto;margin:0 0 2px}
.side-workbench .wb-img-params .select{width:100%;max-width:100%;margin:0}
.side-workbench #btnVerifyImageModels{width:100%;margin-top:2px}
.side-workbench .wb-cfg{display:flex;flex-direction:column;margin:8px 0 2px;padding-top:8px;border-top:1px dashed var(--line)}
.side-workbench .wb-portrait-batch{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  margin:8px 0 2px;
}
.side-workbench .wb-portrait-hint{
  margin:0;
  padding:10px 12px;
  border-radius:10px;
  border:1px solid rgba(255,180,92,.5);
  background:rgba(255,180,92,.14);
  color:var(--text);
  font-size:12px;
  font-weight:650;
  line-height:1.55;
}
.side-workbench .wb-portrait-hint b{
  display:inline-block;
  margin-right:6px;
  color:#c8892e;
  font-weight:800;
}
.side-workbench .wb-portrait-hint strong{
  font-weight:800;
  color:var(--text);
}
.side-workbench .wb-cfg .text-model-picker{width:100%;max-width:100%}
.side-workbench .wb-cfg .select{width:100%;max-width:100%;margin:2px 0 4px}
.side-workbench .wb-cfg .select optgroup{color:var(--muted);font-weight:650;font-style:normal}
.side-workbench .wb-cfg .select option:disabled{color:transparent}
.side-workbench .wb-cfg .search{width:100%;margin:2px 0 4px}
.side-workbench .wb-cfg .switch-label{margin:2px 0 4px;font-size:10px}
.side-workbench .wb-cfg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:2px 0 4px}
.side-workbench .wb-cfg-grid .run-model-label{width:auto;margin:0 0 2px}
.side-workbench .wb-cfg-grid .select{width:100%;max-width:100%;margin:0}
.side-workbench .wb-cfg-btn{width:100%;margin-top:4px}
.side-workbench .wb-cfg-help{font-size:10px;line-height:1.45;margin:0 0 4px;opacity:.9}
.vid-mode-hint,.vid-res-hint{font-size:10px;line-height:1.4;margin-top:4px;opacity:.88}
.side-workbench .wb-cfg .vid-res-hint{margin:0 0 4px}
.side-workbench .run-panel > .run-head .btn,
.side-workbench .wb-portrait-batch .btn,
.side-workbench .workbench-secondary .btn,
.side-workbench .protag-banner > .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.side-workbench .workbench-secondary{flex-direction:column;align-items:stretch}
.side-workbench .workbench-secondary .muted{flex:0 0 auto}
.side-workbench .insp-jump-list .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.side-workbench .protag-banner{padding:8px;margin:8px 0}
.side-workbench .adapt-pipeline{margin:8px 0}
.side-workbench .insp-jump-list{max-height:140px;overflow:auto}
#assetWorkbenchActions[hidden]{display:none !important}
.side-workbench #assetWorkbenchActions .run-head #btnAssetCensus,
.side-workbench #assetWorkbenchActions .run-head #btnAssetAdd{
  height:auto;
  white-space:normal;
  line-height:1.3;
}
.side-workbench #assetWorkbenchActions #btnAssetAdd[hidden]{display:none !important}
body[data-theme="light"] .side-workbench.inspector.workbench{border-top-color:var(--line)}
body[data-theme="light"] .episode-list{scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}

body[data-theme="light"] .toast.toast-ok{background:#E8F7F0;border-color:#8FD0B4;color:#1F6B4E}
body[data-theme="light"] .toast.toast-error{background:#FDECEC;border-color:#E8A0A6;color:#8B2E36}
body[data-theme="light"] .toast.toast-running{background:#FFF4E5;border-color:#E6B56A;color:#8A5A12}
.asset-census-status{
  display:none;margin:8px 0 10px;padding:10px 12px;border-radius:12px;
  border:1px solid rgba(88,184,255,.35);
  background:rgba(88,184,255,.08);
  color:var(--text);font-size:12px;font-weight:700;line-height:1.5;
}
.asset-census-status.is-visible{display:block}
.asset-census-status.is-running{
  border-color:rgba(255,180,92,.5);
  background:rgba(255,180,92,.10);
  color:#ffd5a4;
}
.asset-census-status.is-ok{
  border-color:rgba(72,213,166,.45);
  background:rgba(72,213,166,.10);
  color:#b5f7e1;
}
.asset-census-status.is-error{
  border-color:rgba(255,123,134,.5);
  background:rgba(255,123,134,.10);
  color:#ffd0d4;
}
body[data-theme="light"] .asset-census-status.is-running{color:#8A5A12;background:#FFF4E5;border-color:#E6B56A}
body[data-theme="light"] .asset-census-status.is-ok{color:#1F6B4E;background:#E8F7F0;border-color:#8FD0B4}
body[data-theme="light"] .asset-census-status.is-error{color:#8B2E36;background:#FDECEC;border-color:#E8A0A6}
#btnAssetCensus.is-generating,#btnAssetCensus.is-busy{opacity:.85;cursor:wait}

.modal-choice-placeholder{display:grid;place-items:center;gap:6px;min-height:160px;border-radius:12px;background:rgba(255,255,255,.04);border:1px dashed var(--line);color:var(--muted);font-size:28px;text-align:center;padding:16px}
.modal-choice-placeholder .muted{font-size:12px;font-weight:700}
.modal-choice-placeholder.is-pending{border-color:rgba(255,180,92,.45);background:rgba(255,180,92,.08);color:#ffd5a4}
.modal-choice-placeholder.is-failed{border-color:rgba(255,123,134,.45);background:rgba(255,123,134,.08);color:#ffd0d4}
.modal-image-choice.status-failed{opacity:.92}
.modal-image-choice.status-pending{opacity:.95}
body[data-theme="light"] .modal-choice-placeholder.is-pending{color:#8A5A12;background:#FFF4E5;border-color:#E6B56A}
body[data-theme="light"] .modal-choice-placeholder.is-failed{color:#8B2E36;background:#FDECEC;border-color:#E8A0A6}
#btnAssetCensus.is-generating,.lib-gen.is-generating,#btnAssetCensus.is-busy,.lib-gen.is-busy{cursor:wait;opacity:.88}

#btnImageTrash.has-items{border-color:rgba(255,180,92,.55);color:#ffd5a4}
.modal-choice-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.modal-trash-result{border-color:rgba(255,123,134,.4)!important;color:#ffb4ba!important}
body[data-theme="light"] #btnImageTrash.has-items{border-color:#E6B56A;color:#8A5A12}
body[data-theme="light"] .modal-trash-result{color:#8B2E36!important;border-color:#E8A0A6!important}


/* 批量生图进度（开始生成图片） */
.run-progress-wrap{margin-top:10px}
.run-progress-meta{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px}
.run-progress-frac{font-size:12px;font-weight:650;color:var(--text,#e8eefc)}
.run-progress-pct{font-size:11px;color:var(--muted,#9aa8c7)}
.run-progress-wrap .run-progress{height:10px;margin:0 0 8px;background:rgba(255,255,255,.08)}
.run-progress-wrap .run-bar{background:linear-gradient(90deg,#7c6cff,#4aa3ff 55%,#5ad0a8);box-shadow:0 0 10px rgba(124,108,255,.35)}
.run-now{font-size:11px;line-height:1.45;color:var(--muted,#9aa8c7);min-height:1.4em;word-break:break-word}
.run-now.is-running{color:#c9d7ff}
.run-now.is-done{color:#8fd9b5}
.run-now.is-stopped{color:#f0c48a}
.run-now.is-error{color:#ffb4bb}
body[data-theme="light"] .run-progress-wrap .run-progress{background:rgba(0,0,0,.08)}
body[data-theme="light"] .run-progress-frac{color:var(--text)}
body[data-theme="light"] .run-progress-pct{color:var(--muted)}
body[data-theme="light"] .run-now.is-running{color:#5b4636}
body[data-theme="light"] .run-now.is-done{color:#2f6b4f}
body[data-theme="light"] .run-now.is-stopped{color:#8a5a12}
.side-workbench .run-progress-wrap{margin-top:8px}
.side-workbench .run-progress-frac{font-size:11px}
.side-workbench .run-now{font-size:10px}
.side-workbench #runProgWrap-sb-wide .run-now,
.side-workbench #runProgWrap-sb-detail .run-now{font-size:12px;color:#fff6e8}
.side-workbench #runProgWrap-sb-wide.is-blocked .run-now,
.side-workbench #runProgWrap-sb-detail.is-blocked .run-now,
.side-workbench #runProgWrap-sb-wide.is-error .run-now,
.side-workbench #runProgWrap-sb-detail.is-error .run-now{font-size:15px !important;color:#fff !important}


/* 资产库：保证列表区域可见可滚动 */
#imagegenAssetsView .char-panel{min-height:0}
#assetContainer{min-height:120px;padding-bottom:24px}
#assetContainer .lib-block:first-child{margin-top:4px}


/* STEP WORKBENCH：操作在上、状态紧随其后（无操作时不留大片空白） */
.side-workbench.inspector.workbench{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-content:flex-start;
}
.side-workbench.inspector.workbench[hidden]{display:none}
.side-workbench .inspector-runs{
  flex:0 0 auto;
  margin-top:0;
  padding-top:0;
  border-top:0;
  order:1;
}
/* 没有任何可见 run 面板时，空壳不占高度 */
.side-workbench .inspector-runs:not(:has(.run-panel:not([hidden]), #storyboardWorkbench:not([hidden]))){
  display:none;
}
.side-workbench .workbench-head{order:0; flex:0 0 auto}
.side-workbench .workbench-status{
  order:2;
  flex:0 0 auto;
  margin-top:8px;
  padding-top:10px;
  border-top:1px solid var(--line);
}
.side-workbench .upload-status-merge{
  display:none;
  flex-direction:column;
  gap:6px;
  margin-bottom:8px;
}
.workspace:has(#view-upload.active) .side-workbench .upload-status-merge{
  display:flex;
}
.side-workbench .upload-status-merge .progress{margin:0}
.side-workbench .upload-status-merge #progressText{margin:0;font-size:11px}
.side-workbench .upload-status-merge .script-chat-preflight{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.side-workbench .upload-status-merge .insp-jump-list{max-height:96px}
.side-workbench #reviewBox-index{display:none}
.workspace:has(#view-upload.active) .side-workbench #reviewBox-index:not(:empty){display:block}
.side-workbench .review-card{
  margin:8px 0 0;
  padding:8px 9px;
  font-size:11px;
  line-height:1.45;
}
.side-workbench .review-card .review-head{margin-bottom:4px;font-size:12px}
.side-workbench .fit-note-sidebar{
  display:none;
  order:3;
  flex:0 0 auto;
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  margin-top:8px;
  margin-bottom:0;
  padding:8px 9px;
  border:5px solid transparent;
  border-image:repeating-linear-gradient(45deg,#ffc400 0 8px,#17181c 8px 16px) 5;
  font-size:11px;
  line-height:1.45;
  box-shadow:none;
  position:sticky;
  bottom:0;
  z-index:2;
  background:var(--panel);
}
.workspace:has(#view-upload.active) .side-workbench .fit-note-sidebar{display:block}
.workspace.side-collapsed .fit-note-sidebar,
.workspace.side-collapsed .upload-status-merge{display:none}
.side-workbench .fit-note-sidebar .fit-note-title{font-size:12px;margin-bottom:4px}
.side-workbench .fit-note-sidebar .fit-tag{padding:0 6px;font-size:9px}
.script-chat-dock{
  display:flex;flex-direction:column;gap:6px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:14px;
  padding:8px;
  background:rgba(255,255,255,.03);
}
.sidebar > .script-chat-dock{
  flex:1 1 auto;
  min-height:0;
  height:auto;
}
.script-chat-dock[hidden]{display:none !important}
.workspace.sidebar-ai .script-chat-dock{display:flex !important}
.script-chat-dock .script-chat-log{min-height:48px}
.workspace.sidebar-ai .script-chat-dock .script-chat{overflow:hidden}
.workspace.sidebar-ai .script-chat-dock .script-chat-log{
  flex:1 1 auto;
  min-height:120px;
  max-height:none;
}
.workspace.sidebar-ai .script-chat-composer{
  flex-direction:row;
  align-items:stretch;
  gap:6px;
}
.workspace.sidebar-ai .script-chat-composer .script-chat-input{
  flex:1 1 auto;
  min-width:0;
  min-height:48px;
}
.workspace.sidebar-ai .script-chat-composer .btn.primary{
  background:var(--btn-primary-bg);color:var(--on-primary);border-color:transparent;box-shadow:none;text-shadow:none;
}
.workspace.sidebar-ai .script-chat-chrome{gap:4px 6px}
.script-chat-chrome{
  flex:0 0 auto;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 8px;
}
.script-chat-chrome .script-module-kicker{margin:0;line-height:1}
.script-chat-chrome .script-chat-model-wrap{
  width:auto;
  min-width:108px;
  max-width:150px;
  flex:1 1 108px;
}
.script-chat-chrome .script-chat-model{
  width:100%;
  max-width:none;
  padding:4px 6px;
  font-size:11px;
}
.script-chat-chrome .text-model-thinking-hint{
  margin:2px 0 0;
  font-size:10px;
}
.script-chat-chrome .script-chat-edit{
  margin:0;
  font-size:11px;
  white-space:nowrap;
  gap:4px;
}
.script-chat-chrome .script-chat-toolbar{
  flex:1 0 100%;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:0;
  margin:2px 0 0;
  min-width:0;
  border:1px solid var(--line);
  border-radius:10px;
  padding:3px;
  background:#0c1423;
}
.script-chat-chrome .script-chat-toolbar > button,
.script-chat-history-wrap > button{
  width:100%;
  min-width:0;
  border:0;
  background:transparent;
  color:var(--muted);
  padding:6px 4px;
  border-radius:7px;
  font:inherit;
  font-size:11px;
  font-weight:600;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  box-shadow:none;
  text-shadow:none;
  filter:none;
  cursor:pointer;
}
.script-chat-chrome .script-chat-toolbar > button:hover:not(:disabled),
.script-chat-history-wrap > button:hover:not(:disabled){
  color:var(--text);
  background:rgba(255,255,255,.06);
}
.script-chat-chrome .script-chat-toolbar > button:disabled,
.script-chat-history-wrap > button:disabled{
  opacity:.45;
  cursor:default;
}
.script-chat-history-wrap{
  position:relative;
  min-width:0;
}
body[data-theme="light"] .script-chat-chrome .script-chat-toolbar{
  background:var(--panel2);
}
body[data-theme="dark"] .script-chat-chrome .script-chat-toolbar{
  background:#141416;
}
body[data-theme="light"] .script-chat-chrome .script-chat-toolbar > button:hover:not(:disabled),
body[data-theme="light"] .script-chat-history-wrap > button:hover:not(:disabled){
  background:color-mix(in srgb, var(--text) 6%, transparent);
}
.script-chat-dock-head{
  flex:0 0 auto;
  display:flex;align-items:flex-start;justify-content:space-between;gap:8px;
}
.script-chat-dock-head .muted{margin:2px 0 0;font-size:11px;line-height:1.4}
.script-chat-dock .script-chat{
  flex:1 1 auto;min-height:0;
  overflow:auto;
}
.script-chat-dock .script-chat-toolbar,
.script-chat-dock .script-chat-composer,
.script-chat-dock .script-chat-preflight,
.script-chat-dock .script-chat-edit,
.script-chat-dock .script-chat-edit-hint,
.script-chat-dock .script-chat-proposal{
  flex-shrink:0;
}
.script-chat-dock .script-chat-input{min-height:52px}
.script-chat[hidden]{display:none !important}
.script-chat{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-height:0;
  gap:8px;
}
.script-chat-preflight{
  flex:0 0 auto;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}
.script-chat-preflight .insp-pill{cursor:default}
.script-chat-preflight .insp-jump-list{display:flex;flex-wrap:wrap;gap:4px;width:100%}
.script-chat-preflight .insp-jump-list .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.script-chat-edit{margin:0}
.script-chat-edit-hint{margin:0;font-size:10px;line-height:1.4}
.script-chat-toolbar{position:relative;z-index:3}
.script-chat-toolbar .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.script-chat-history-pop{
  position:absolute;
  left:auto;right:0;top:calc(100% + 4px);
  z-index:8;
  min-width:220px;
  width:min(280px,72vw);
  max-height:220px;
  overflow:auto;
  padding:6px;
  border-radius:10px;
  border:1px solid var(--line);
  background:#121a28;
  box-shadow:0 10px 24px rgba(0,0,0,.28);
}
.script-chat-history-item{
  display:flex;align-items:center;gap:6px;
  width:100%;
  padding:6px 6px 6px 8px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--text);
  text-align:left;
  cursor:pointer;
}
.script-chat-history-item:hover{background:rgba(255,255,255,.06)}
.script-chat-history-item.is-active{background:rgba(141,124,255,.16)}
.script-chat-history-main{flex:1 1 auto;min-width:0}
.script-chat-history-title{display:block;font-size:11px;font-weight:750;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.script-chat-history-meta{display:block;margin-top:1px;font-size:10px;color:var(--muted)}
.script-chat-history-del{flex:0 0 auto;padding:2px 6px;font-size:10px}
.script-chat-history-empty{padding:8px;font-size:11px;color:var(--muted)}
body[data-theme="light"] .script-chat-history-pop{background:var(--panel);box-shadow:0 10px 24px color-mix(in srgb, var(--text) 12%, transparent)}
body[data-theme="light"] .script-chat-history-item:hover{background:color-mix(in srgb, var(--text) 6%, transparent)}
body[data-theme="light"] .script-chat-history-item.is-active{background:color-mix(in srgb, var(--primary) 12%, transparent)}
.script-chat-log{
  flex:1 1 auto;
  min-height:120px;
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:2px 2px 6px 0;
}
.script-chat-empty{
  margin:auto 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.55;
}
.script-chat-hints{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.script-chat-hints .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.script-chat-msg .script-chat-hints{margin-top:10px}
.script-chat-msg{
  max-width:100%;
  padding:8px 10px;
  border-radius:12px;
  font-size:12px;
  line-height:1.55;
  white-space:pre-wrap;
  word-break:break-word;
}
.script-chat-msg.is-user{
  align-self:flex-end;
  background:rgba(141,124,255,.18);
  border:1px solid rgba(141,124,255,.32);
}
.script-chat-msg.is-assistant{
  align-self:stretch;
  background:rgba(255,255,255,.04);
  border:1px solid var(--line);
}
.script-chat-msg .script-chat-meta{
  display:block;
  margin-top:4px;
  font-size:10px;
  color:var(--muted);
}
.script-chat-proposal{
  flex:0 0 auto;
  max-height:180px;
  overflow:auto;
  padding:8px 9px;
  border-radius:12px;
  border:1px solid rgba(245,158,11,.45);
  background:rgba(245,158,11,.1);
}
.script-chat-proposal h3{margin:0 0 6px;font-size:12px}
.script-chat-diff{margin:0 0 8px;font-size:11px;line-height:1.45;white-space:pre-wrap}
.script-chat-diff .del{color:#ff8e8e}
.script-chat-diff .add{color:#4f9b72}
.script-chat-proposal-actions{display:flex;gap:6px}
.script-chat-proposal-actions .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.script-chat-composer{flex:0 0 auto;display:flex;flex-direction:column;gap:6px}
.script-chat-input{
  width:100%;
  resize:none;
  min-height:68px;
  border-radius:10px;
  border:1px solid var(--line);
  background:#101827;
  color:var(--text);
  padding:8px 10px;
  font:inherit;
  font-size:12px;
  line-height:1.45;
}
.script-chat-input:disabled{opacity:.55}
body[data-theme="light"] .script-chat-msg.is-user{
  background:color-mix(in srgb, var(--primary) 12%, transparent);
  border-color:color-mix(in srgb, var(--primary) 32%, transparent);
}
body[data-theme="light"] .script-chat-msg.is-assistant{
  background:color-mix(in srgb, var(--text) 4%, transparent);
}
body[data-theme="light"] .script-chat-input{
  background:var(--panel);
  border-color:var(--line);
}
body[data-theme="light"] .script-chat-proposal{
  background:rgba(245,158,11,.12);
}
.side-workbench .workbench-status .side-title{margin-top:10px}
.side-workbench .workbench-status .side-title:first-child{margin-top:0}
.side-workbench .info-list{margin-top:6px}
.workspace.upload-mode .side-workbench .workbench-status .side-title,
.workspace.upload-mode .side-workbench .workbench-status .side-title:first-child{
  margin-top:0;
}
.workspace.upload-mode .side-workbench .info-list{
  margin-top:4px;
}
.side-workbench .info.wide .v{word-break:break-word}
.side-workbench .insp-compact-line{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.side-workbench .insp-pill{
  display:inline-flex;align-items:center;gap:4px;
  padding:2px 7px;border-radius:999px;font-size:10px;font-weight:750;
  border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--muted);
}
.side-workbench .insp-pill strong{color:var(--text);font-weight:850}
.side-workbench .insp-pill.is-ok{border-color:rgba(72,213,166,.35);color:#4f9b72}
.side-workbench .insp-pill.is-warn{border-color:rgba(255,180,92,.45);color:var(--orange)}
.side-workbench .insp-jump-list{max-height:140px}
body[data-theme="light"] .side-workbench .workbench-status{border-top-color:var(--line)}
body[data-theme="light"] .side-workbench .insp-pill{background:color-mix(in srgb, var(--text) 4%, transparent)}
body[data-theme="light"] .side-workbench .insp-pill strong{color:var(--text)}


/* 资产库静默刷新时轻微降透明，不整页替换成 loading */
#assetContainer.is-refreshing{opacity:.72; transition: opacity .15s ease; pointer-events: none}

/* 资产库：标题通栏；下方左右两栏顶边水平对齐（提示词框 ↔ 图片卡） */
#imagegenAssetsView .lib-slot{
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 0 16px;
  /* 覆盖通用 grid，改用标题 + body 两行结构 */
  grid-template-columns: none;
}
#imagegenAssetsView .lib-slot-title{
  margin-bottom: 0;
  font-size: 15px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
}
#imagegenAssetsView .lib-slot-title .char-eps,
#imagegenAssetsView .lib-slot-title .char-stat,
#imagegenAssetsView .lib-slot-title .char-alias{
  font-size: 11px;
}
#imagegenAssetsView .lib-slot-title .char-controls{
  margin-left: auto;
  flex: 0 0 auto;
}
#imagegenAssetsView .lib-slot-title .char-controls .select{
  flex: 0 0 auto;
  width: auto;
  min-width: 7.5em;
}
#imagegenAssetsView .lib-slot-body{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 520px);
  gap: 18px 20px;
  align-items: stretch; /* 左列（提示词+按钮大框）随右栏拉伸，底边与「上传图片」持平 */
}
#imagegenAssetsView .lib-slot-left{
  min-width: 0;
  min-height: 300px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(255,255,255,.025);
  overflow: hidden;
}
#imagegenAssetsView .lib-prompt-block{
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow: hidden;
}
#imagegenAssetsView .lib-prompt-label{
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
}
#imagegenAssetsView .lib-prompt-preview,
#imagegenAssetsView .prompt-card-preview.lib-prompt-preview{
  flex: 1 1 auto;
  margin: 0;
  min-height: 160px;
  max-height: min(46vh, 360px);
  padding: 0 6px 0 0;
  font-size: 13px;
  line-height: 1.65;
  color: var(--text);
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  display: block;
  -webkit-line-clamp: unset;
  -webkit-box-orient: unset;
  white-space: pre-wrap;
  word-break: break-word;
  border: none;
  border-radius: 0;
  background: transparent;
  scrollbar-gutter: stable;
}
#imagegenAssetsView .lib-prompt-preview::-webkit-scrollbar{
  width: 8px;
}
#imagegenAssetsView .lib-prompt-preview::-webkit-scrollbar-thumb{
  background: rgba(61, 57, 41, .28);
  border-radius: 8px;
}
#imagegenAssetsView .lib-prompt-preview::-webkit-scrollbar-track{
  background: transparent;
}
#imagegenAssetsView .lib-slot-actions{
  margin-top: auto;
  flex: 0 0 auto;
}
#imagegenAssetsView .lib-slot-right{
  width: 100%;
  max-width: none;
  min-height: 0;
  height: 100%;
  justify-self: stretch;
  align-self: stretch; /* 拉满左栏高度，图在上，「图片历史 / 上传图片」沉到下方空白 */
  display: flex;
  flex-direction: column;
  gap: 8px;
}
#imagegenAssetsView .lib-img-card,
#imagegenAssetsView .lib-img{
  flex: 1 1 auto;
  min-height: 0;
  height: auto;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  padding: 10px;
  margin: 0;
}
#imagegenAssetsView .lib-img.is-generating{
  min-height: 168px;
}
#imagegenAssetsView .lib-photo,
#imagegenAssetsView .lib-img-empty{
  width: 100%;
  flex: 1 1 auto;
  min-height: 240px;
  height: auto;
  max-height: none;
  object-fit: contain;
  border-radius: 10px;
  background: #0a0e16;
}
#imagegenAssetsView .lib-img-info,
#imagegenAssetsView .lib-img-info-compact{
  flex: 0 0 auto;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
  min-width: 0;
}
#imagegenAssetsView .lib-img-info .media-status,
#imagegenAssetsView .lib-img-info .badge{
  width: auto;
  margin: 0;
}
#imagegenAssetsView .lib-img-meta-line{
  font-size: 11px;
  color: var(--muted);
  line-height: 1.35;
}
#imagegenAssetsView .lib-img-name{display: none} /* 主列表隐藏 CDN URL */
#imagegenAssetsView .lib-history-open,
#imagegenAssetsView .lib-slot-right > .btn{
  flex: 0 0 auto;
  margin-top: 0;
  background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;
}
#imagegenAssetsView .lib-slot-right > .lib-history-open{
  margin-top: 0;
}
#imagegenAssetsView .lib-slot-right > .lib-upload-open:first-child{
  margin-top: 0;
}

#imagegenAssetsView .studio-grid{
  display:flex;
  flex-direction:column;
  gap:14px;
}
#imagegenAssetsView .studio-block.char-card{
  width:100%;
  gap:10px;
  padding:14px 16px 16px;
}
#imagegenAssetsView .studio-final-fold{
  border:0;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
#imagegenAssetsView .studio-final-fold > summary{
  cursor:pointer;
  font-size:12px;
  font-weight:700;
  color:var(--muted);
  margin-bottom:8px;
  flex: 0 0 auto;
}
#imagegenAssetsView .studio-sub{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:10px 0 4px;
  border-top:1px dashed var(--line);
}
#assetContainer{min-height:120px;padding-bottom:24px;min-width:0}
#assetContainer.is-refreshing{opacity:.72; transition: opacity .15s ease; pointer-events: none}

/* 资产纯文字导航：贴在卡片列表左侧，点名字跳到对应卡片 */
#imagegenAssetsView .asset-studio-layout{
  display:flex;
  align-items:flex-start;
  gap:12px;
  min-width:0;
}
#imagegenAssetsView .asset-name-nav{
  position:sticky;
  top:210px;
  z-index:30;
  flex:0 0 196px;
  width:196px;
  max-height:min(640px, calc(100vh - 250px));
  overflow:auto;
  overscroll-behavior:contain;
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:8px 6px;
  border:1px solid var(--line);
  border-radius:12px;
  background:color-mix(in srgb, var(--panel) 92%, transparent);
  scrollbar-width:thin;
}
#imagegenAssetsView .asset-name-nav[hidden]{display:none}
#imagegenAssetsView .asset-name-nav-group{
  margin:8px 4px 2px;
  font-size:11px;
  font-weight:750;
  color:var(--muted);
  letter-spacing:.02em;
}
#imagegenAssetsView .asset-name-nav-group:first-child{margin-top:2px}
#imagegenAssetsView .asset-name-nav-btn{
  display:block;
  width:100%;
  min-width:0;
  padding:5px 8px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--text);
  font:inherit;
  font-size:12.5px;
  line-height:1.35;
  text-align:left;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  cursor:pointer;
}
#imagegenAssetsView .asset-name-nav-btn:hover{
  background:color-mix(in srgb, var(--primary) 10%, transparent);
}
#imagegenAssetsView .asset-name-nav-btn.active{
  background:var(--primary);
  color:#fff;
  font-weight:750;
}
#imagegenAssetsView .studio-block.char-card{scroll-margin-top:140px}
body[data-theme="light"] #imagegenAssetsView .asset-name-nav{
  background:color-mix(in srgb, var(--panel) 96%, #fff);
}
@media (max-width: 1180px){
  #imagegenAssetsView .asset-studio-layout{flex-direction:column}
  #imagegenAssetsView .asset-name-nav{
    position:sticky;
    top:188px;
    flex:0 0 auto;
    width:100%;
    max-height:168px;
  }
}

/* 图片历史弹窗：URL 仅作次要信息 */
.modal-choice-url{
  display: inline-block;
  max-width: 100%;
  margin-top: 2px;
  font-size: 10px;
  line-height: 1.35;
  color: var(--muted);
  word-break: break-all;
  opacity: .85;
}

body[data-theme="light"] #imagegenAssetsView .lib-photo{background: #F4F0E7}
body[data-theme="light"] #imagegenAssetsView .lib-slot-left{
  background: color-mix(in srgb, var(--text) 3%, transparent);
}
body[data-theme="light"] #imagegenAssetsView .lib-prompt-preview{
  color: var(--text);
  background: transparent;
}

@media (max-width: 1180px){
  #imagegenAssetsView .lib-slot-body{grid-template-columns: 1fr}
  #imagegenAssetsView .lib-slot-right{max-width: none; justify-self: stretch}
}


/* 分镜全景空间锁帧强调 */
.frame-card.is-wide-frame{
  border: 1px solid rgba(37, 99, 235, .28);
  border-radius: 14px;
  padding: 8px 10px 4px;
  background: rgba(37, 99, 235, .04);
}
.sb-ref-name b{color: var(--purple); margin-right: 2px}


/* 分镜图：上传参考图检查结果 */
.sb-ref-check-panel{
  margin: 10px 0 14px;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid rgba(108,168,255,.35);
  background: linear-gradient(180deg, rgba(36,52,84,.9), rgba(22,32,52,.92));
}
.sb-ref-check-panel.is-ok{ border-color: rgba(52,211,153,.45); }
.sb-ref-check-panel.is-bad{ border-color: rgba(248,113,113,.5); }
.sb-ref-summary-wrap{ display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }
.sb-ref-block{
  padding: 9px 11px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.1);
  background: rgba(15,23,42,.45);
}
.sb-ref-block.is-danger{
  border-color: rgba(239,68,68,.4);
  background: rgba(239,68,68,.12);
}
.sb-ref-block.is-success{
  border-color: rgba(34,197,94,.4);
  background: rgba(34,197,94,.1);
}
.sb-ref-block.is-warning{
  border-color: rgba(234,179,8,.4);
  background: rgba(234,179,8,.12);
}
.sb-ref-block.is-warning-ok{
  border-color: rgba(234,179,8,.25);
  background: rgba(234,179,8,.06);
}
.sb-ref-block.is-neutral{
  border-color: rgba(255,255,255,.1);
  background: rgba(255,255,255,.04);
}
.sb-ref-block-head{ display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.sb-ref-badge{
  display: inline-block;
  font-size: 10.5px;
  font-weight: 600;
  padding: 1px 6px;
  border-radius: 4px;
}
.badge-danger{ background: #ef4444; color: #fff; }
.badge-success{ background: #22c55e; color: #fff; }
.badge-warning{ background: #eab308; color: #1e1e1e; }
.badge-warning-subtle{ background: rgba(234,179,8,.2); color: #fde047; border: 1px solid rgba(234,179,8,.4); }
.badge-neutral{ background: rgba(255,255,255,.15); color: #ccc; }
.sb-ref-block-title{ font-size: 12.5px; font-weight: 600; color: #e2e8f0; }
.sb-ref-block-body{ font-size: 11.5px; line-height: 1.45; }
.sb-ref-warn-line{ color: #fca5a5; margin-bottom: 2px; }
.sb-ref-ready-summary{ color: #86efac; }
.sb-ref-prop-list{ color: #fde047; margin-bottom: 2px; }
.sb-ref-hint{ font-size: 10.5px; color: rgba(255,255,255,.5); margin-top: 3px; }
.sb-ref-action-bar{ margin-top: 8px; }
.sb-ref-detail-btn,
.sb-ref-check-panel .sb-ref-detail-btn,
.sb-ref-action-bar .sb-ref-detail-btn {
  font-size: 12px;
  font-weight: 500;
  padding: 6px 12px;
  color: #bfdbfe !important;
  border: 1px solid rgba(147, 197, 253, .45) !important;
  background: rgba(30, 58, 138, .35) !important;
  border-radius: 8px;
  transition: all .15s ease;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .2);
}
.sb-ref-detail-btn:hover,
.sb-ref-check-panel .sb-ref-detail-btn:hover,
.sb-ref-action-bar .sb-ref-detail-btn:hover {
  color: #ffffff !important;
  border-color: rgba(147, 197, 253, .75) !important;
  background: rgba(37, 99, 235, .5) !important;
  box-shadow: 0 2px 8px rgba(59, 130, 246, .25);
}

/* 上传参考图检查明细弹窗 */
.sb-ref-modal-wrap{
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 4px 2px;
}
.sb-ref-modal-summary-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 760px){
  .sb-ref-modal-summary-grid{ grid-template-columns: 1fr; }
}
.sb-ref-stat-card{
  padding: 12px 14px;
  border-radius: 10px;
  background: rgba(15,23,42,.6);
  border: 1px solid rgba(255,255,255,.1);
}
.sb-ref-stat-card.is-danger{ border-color: rgba(239,68,68,.4); background: rgba(239,68,68,.08); }
.sb-ref-stat-card.is-success{ border-color: rgba(34,197,94,.4); background: rgba(34,197,94,.08); }
.sb-ref-stat-card.is-warning{ border-color: rgba(234,179,8,.4); background: rgba(234,179,8,.08); }
.sb-ref-stat-head{
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  font-size: 13.5px;
}
.sb-ref-stat-body{
  font-size: 12.5px;
  line-height: 1.6;
  color: #cbd5e1;
}
.color-bad{ color: #f87171; font-weight: 600; }
.color-warn{ color: #fbbf24; font-weight: 500; }
.sb-ref-pipe-section{
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
}
.sb-ref-section-title{
  font-size: 13px;
  font-weight: 600;
  color: #e2e8f0;
  margin-bottom: 8px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.sb-ref-pipe-grid{ display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: #94a3b8; }
.sb-ref-pipe-step{ padding: 2px 0; }
.sb-ref-frames-section{ display: flex; flex-direction: column; gap: 8px; }
.sb-ref-frames-table{
  max-height: 380px;
  overflow-y: auto;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(10,15,26,.65);
  padding: 4px 0;
}
.sb-ref-frame-row{
  display: grid;
  grid-template-columns: 160px 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 7px 12px;
  border-bottom: 1px solid rgba(255,255,255,.05);
  font-size: 12.5px;
}
.sb-ref-frame-row:last-child{ border-bottom: none; }
.sb-ref-frame-row.is-bad{ background: rgba(239,68,68,.08); }
.sb-ref-frame-row.is-warn{ background: rgba(234,179,8,.06); }
.sb-ref-frame-col-head{ display: flex; align-items: center; gap: 6px; font-weight: 500; }
.sb-ref-frame-row.is-bad .sb-ref-frame-icon{ color: #f87171; font-weight: bold; }
.sb-ref-frame-row.is-warn .sb-ref-frame-icon{ color: #fbbf24; font-weight: bold; }
.sb-ref-frame-row.is-ok .sb-ref-frame-icon{ color: #4ade80; }
.sb-ref-frame-col-msg{ color: #cbd5e1; overflow: hidden; text-overflow: ellipsis; }
.sb-ref-frame-row.is-bad .sb-ref-frame-col-msg{ color: #fca5a5; }
.sb-ref-frame-row.is-warn .sb-ref-frame-col-msg{ color: #fde047; }
.sb-ref-frame-col-tags{ display: flex; flex-wrap: wrap; gap: 4px; justify-content: flex-end; }
.sb-ref-exp-tag{
  font-size: 10.5px;
  padding: 1px 5px;
  border-radius: 4px;
  white-space: nowrap;
}
.tag-core-ok{ background: rgba(34,197,94,.15); color: #86efac; border: 1px solid rgba(34,197,94,.3); }
.tag-core-bad{ background: rgba(239,68,68,.2); color: #fca5a5; border: 1px solid rgba(239,68,68,.4); font-weight: 600; }
.tag-prop-ok{ background: rgba(234,179,8,.15); color: #fde047; border: 1px solid rgba(234,179,8,.3); }
.tag-prop-warn{ background: rgba(234,179,8,.2); color: #fde047; border: 1px dashed rgba(234,179,8,.5); }
.sb-ref-modal-foot{
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,.08);
}
@media (max-width: 680px){
  .sb-ref-frame-row{
    grid-template-columns: 1fr;
    gap: 4px;
    align-items: flex-start;
  }
  .sb-ref-frame-col-tags{ justify-content: flex-start; }
}


/* 分镜图 STEP WORKBENCH：与生图资产同款分步卡 */
#storyboardWorkbench{display:grid;gap:10px;margin-top:2px}
#storyboardWorkbench[hidden]{display:none !important}
#storyboardWorkbench .sb-pipe-intro{
  font-size:11px;line-height:1.5;padding:8px 10px;border-radius:10px;
  background:rgba(108,168,255,.08);border:1px solid rgba(108,168,255,.22);
}
.workbench .run-head-stack{
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  /* 纵向堆叠时标题不要 flex:1 撑开，否则按钮和文案之间大片留白 */
}
.workbench .run-head-stack > div:first-child{
  flex:0 0 auto !important;
  min-height:0 !important;
}
.workbench .run-head-stack .btn-block{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.run-panel-warn-tip{
  display:flex;
  align-items:flex-start;
  gap:6px;
  font-size:11px;
  line-height:1.45;
  font-weight:600;
  padding:7px 9px;
  border-radius:8px;
  background:rgba(234,179,8,.12);
  border:1px solid rgba(234,179,8,.38);
  color:#fcd34d;
  box-sizing:border-box;
}
.run-panel-warn-tip .warn-icon{
  flex-shrink:0;
  color:#f59e0b;
  font-size:12px;
  line-height:1.3;
}
body[data-theme="light"] .run-panel-warn-tip{
  background:#fff7ed;
  border-color:#fdba74;
  color:#c2410c;
}
body[data-theme="light"] .run-panel-warn-tip .warn-icon{
  color:#ea580c;
}
#storyboardWorkbench{
  gap:8px;
}
#storyboardWorkbench .run-panel{
  padding:10px 11px !important;
}
#storyboardWorkbench .run-head{
  gap:6px;
  align-items:stretch;
}
#storyboardWorkbench .run-head b{
  display:block;
  line-height:1.25;
  margin:0;
}
#storyboardWorkbench .run-head .muted{
  margin-top:2px;
  line-height:1.35;
}
#storyboardWorkbench .run-head-stack{
  gap:6px;
}
#storyboardWorkbench .run-head-stack .btn-block{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
#storyboardWorkbench .sb-ref-check-panel{margin-top:8px}
#storyboardWorkbench .run-progress-wrap{margin-top:8px}
#storyboardWorkbench .workbench-secondary{
  margin-top:2px;
  gap:6px;
}
#storyboardWorkbench .sb-pipe-intro{
  padding:7px 9px;
  margin:0;
}

#runLog-sb-wide, #runLog-sb-detail{
  margin-top:8px; max-height:180px; overflow:auto;
  font-size:12px; line-height:1.5; white-space:pre-wrap;
  color:#e8eefc; padding:10px 11px; border-radius:10px;
  background:rgba(8,12,22,.55); border:1px solid rgba(255,255,255,.12);
}
#runProgWrap-sb-wide .run-now, #runProgWrap-sb-detail .run-now{
  margin-top:8px; font-size:13px; font-weight:850; letter-spacing:.01em;
  color:#fff6e8;
}
/* 门禁拦截 / 失败：高对比红色警示，侧栏灰字必须被压住 */
#runProgWrap-sb-wide.is-blocked,
#runProgWrap-sb-detail.is-blocked,
#runProgWrap-sb-wide.is-error,
#runProgWrap-sb-detail.is-error,
.side-workbench #runProgWrap-sb-wide.is-blocked,
.side-workbench #runProgWrap-sb-detail.is-blocked,
.side-workbench #runProgWrap-sb-wide.is-error,
.side-workbench #runProgWrap-sb-detail.is-error{
  margin-top:8px !important;
  padding:12px !important;
  border-radius:12px !important;
  border:2px solid #f87171 !important;
  background: #7f1d1d !important;
  box-shadow: 0 0 0 1px rgba(254,202,202,.35), 0 8px 24px rgba(127,29,29,.45) !important;
}
#runProgWrap-sb-wide.is-blocked .run-progress-frac,
#runProgWrap-sb-detail.is-blocked .run-progress-frac,
#runProgWrap-sb-wide.is-error .run-progress-frac,
#runProgWrap-sb-detail.is-error .run-progress-frac,
#runProgWrap-sb-wide.is-blocked .run-progress-pct,
#runProgWrap-sb-detail.is-blocked .run-progress-pct,
#runProgWrap-sb-wide.is-error .run-progress-pct,
#runProgWrap-sb-detail.is-error .run-progress-pct,
.side-workbench #runProgWrap-sb-wide.is-blocked .run-progress-frac,
.side-workbench #runProgWrap-sb-detail.is-blocked .run-progress-frac,
.side-workbench #runProgWrap-sb-wide.is-blocked .run-progress-pct,
.side-workbench #runProgWrap-sb-detail.is-blocked .run-progress-pct{
  color:#fff !important;
  font-weight:900 !important;
  font-size:13px !important;
}
#runProgWrap-sb-wide.is-blocked .run-progress-pct,
#runProgWrap-sb-detail.is-blocked .run-progress-pct,
#runProgWrap-sb-wide.is-error .run-progress-pct,
#runProgWrap-sb-detail.is-error .run-progress-pct{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:3.2em;
  padding:2px 8px;
  border-radius:999px;
  background:#fecaca !important;
  color:#7f1d1d !important;
  letter-spacing:.04em;
}
#runProgWrap-sb-wide.is-blocked .run-progress,
#runProgWrap-sb-detail.is-blocked .run-progress,
#runProgWrap-sb-wide.is-error .run-progress,
#runProgWrap-sb-detail.is-error .run-progress{
  background:rgba(0,0,0,.35) !important;
}
#runProgWrap-sb-wide.is-blocked .run-bar,
#runProgWrap-sb-detail.is-blocked .run-bar,
#runProgWrap-sb-wide.is-error .run-bar,
#runProgWrap-sb-detail.is-error .run-bar{
  background: linear-gradient(90deg,#fecaca,#f87171) !important;
  box-shadow:none !important;
}
#runProgWrap-sb-wide.is-blocked .run-now,
#runProgWrap-sb-detail.is-blocked .run-now,
#runProgWrap-sb-wide.is-error .run-now,
#runProgWrap-sb-detail.is-error .run-now,
#runProgWrap-sb-wide.is-blocked .run-now.is-blocked,
#runProgWrap-sb-detail.is-blocked .run-now.is-blocked,
.side-workbench #runProgWrap-sb-wide.is-blocked .run-now,
.side-workbench #runProgWrap-sb-detail.is-blocked .run-now,
.side-workbench .run-now.is-blocked{
  color:#fff !important;
  font-size:15px !important;
  line-height:1.45 !important;
  font-weight:900 !important;
  letter-spacing:.01em;
  text-shadow: 0 1px 0 rgba(0,0,0,.45);
  background: rgba(0,0,0,.22);
  border:1px solid rgba(254,202,202,.45);
  border-radius:10px;
  padding:10px 11px !important;
  margin-top:8px;
}
#runProgWrap-sb-wide.is-blocked .run-log,
#runProgWrap-sb-detail.is-blocked .run-log,
#runProgWrap-sb-wide.is-error .run-log,
#runProgWrap-sb-detail.is-error .run-log,
.side-workbench #runProgWrap-sb-wide.is-blocked .run-log,
.side-workbench #runProgWrap-sb-detail.is-blocked .run-log{
  color:#fff1f2 !important;
  background: rgba(0,0,0,.32) !important;
  border:1px solid rgba(254,202,202,.35) !important;
  font-size:12px !important;
  font-weight:650;
}
#runProgWrap-sb-wide.is-ok,
#runProgWrap-sb-detail.is-ok{
  border:1px solid rgba(52,211,153,.4);
  background: linear-gradient(180deg, rgba(6,78,59,.28), rgba(6,40,32,.22));
  border-radius:12px;
  padding:10px;
  margin-top:8px;
}
#runProgWrap-sb-wide.is-ok .run-now,
#runProgWrap-sb-detail.is-ok .run-now{
  color:#d1fae5 !important;
  font-size:13px !important;
  font-weight:800;
}
#runProgWrap-sb-wide.is-running,
#runProgWrap-sb-detail.is-running{
  border:1px solid rgba(251,191,36,.4);
  background: linear-gradient(180deg, rgba(120,53,15,.28), rgba(69,26,3,.2));
  border-radius:12px;
  padding:10px;
  margin-top:8px;
}
#runProgWrap-sb-wide.is-running .run-now,
#runProgWrap-sb-detail.is-running .run-now{
  color:#fef3c7 !important;
  font-size:13px !important;
  font-weight:800;
}
body[data-theme="light"] #runProgWrap-sb-wide.is-blocked,
body[data-theme="light"] #runProgWrap-sb-detail.is-blocked,
body[data-theme="light"] #runProgWrap-sb-wide.is-error,
body[data-theme="light"] #runProgWrap-sb-detail.is-error,
body[data-theme="light"] .side-workbench #runProgWrap-sb-wide.is-blocked,
body[data-theme="light"] .side-workbench #runProgWrap-sb-detail.is-blocked{
  background:#fee2e2 !important;
  border-color:#dc2626 !important;
  box-shadow:0 0 0 1px rgba(220,38,38,.18), 0 8px 20px rgba(220,38,38,.12) !important;
}
body[data-theme="light"] #runProgWrap-sb-wide.is-blocked .run-now,
body[data-theme="light"] #runProgWrap-sb-detail.is-blocked .run-now,
body[data-theme="light"] #runProgWrap-sb-wide.is-error .run-now,
body[data-theme="light"] #runProgWrap-sb-detail.is-error .run-now,
body[data-theme="light"] .side-workbench #runProgWrap-sb-wide.is-blocked .run-now,
body[data-theme="light"] .side-workbench #runProgWrap-sb-detail.is-blocked .run-now,
body[data-theme="light"] .side-workbench .run-now.is-blocked{
  color:#7f1d1d !important;
  background:var(--panel) !important;
  border-color:#fca5a5 !important;
  text-shadow:none;
}
body[data-theme="light"] #runProgWrap-sb-wide.is-blocked .run-progress-frac,
body[data-theme="light"] #runProgWrap-sb-detail.is-blocked .run-progress-frac,
body[data-theme="light"] #runProgWrap-sb-wide.is-blocked .run-progress-pct,
body[data-theme="light"] #runProgWrap-sb-detail.is-blocked .run-progress-pct{
  color:#7f1d1d !important;
}
body[data-theme="light"] #runProgWrap-sb-wide.is-blocked .run-progress-pct,
body[data-theme="light"] #runProgWrap-sb-detail.is-blocked .run-progress-pct{
  background:#fecaca !important;
  color:#7f1d1d !important;
}
body[data-theme="light"] #runProgWrap-sb-wide.is-blocked .run-log,
body[data-theme="light"] #runProgWrap-sb-detail.is-blocked .run-log,
body[data-theme="light"] #runProgWrap-sb-wide.is-error .run-log,
body[data-theme="light"] #runProgWrap-sb-detail.is-error .run-log{
  color:#9f1239 !important;
  background:#fff1f2 !important;
  border-color:#fda4af !important;
}


/* 分镜参考图：生成中毛玻璃（样式见 .gen-busy-glass） */
.sb-frame-media{
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  min-height: 140px;
}
.sb-frame-media.is-generating,
.frame-card.is-frame-generating{
  outline: 1px solid rgba(217,119,6,.4);
  box-shadow: 0 0 0 3px rgba(217,119,6,.1);
}


/* 分镜门禁：重写按钮必须一眼能看见 */
.stale-gate{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:12px !important;
  border:1.5px solid rgba(220,38,38,.45) !important;
  background:rgba(220,38,38,.08) !important;
}
.stale-gate-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.stale-gate-title{
  font-weight:900;
  color:#b91c1c;
  font-size:13px;
}
.stale-gate-body{
  font-size:12px;
  line-height:1.5;
  color:var(--text);
  opacity:.92;
}
.stale-gate-body .warn-line{
  margin:0 0 6px;
}
.stale-gate-body .warn-line:last-child{
  margin-bottom:0;
}
.stale-gate-hint{
  font-size:11px;
  color:var(--muted);
}
/* 建议性门禁（Skill/配方变化）：不阻断，历史媒体可用 */
.warn-gate{
  border:1.5px solid rgba(217,119,6,.4) !important;
  background:rgba(217,119,6,.07) !important;
}
.warn-gate-title{
  font-weight:800;
  color:#b45309;
  font-size:13px;
}
body[data-theme="light"] .warn-gate{
  background:#fffbeb !important;
  border-color:#fcd34d !important;
}
body[data-theme="light"] .warn-gate-title{color:#92400e}
.stale-gate .sb-rewrite-current,
.lib-block-head .sb-rewrite-head{
  flex:0 0 auto;
  white-space:nowrap;
  font-weight:900;
  padding:7px 12px;
  border-radius:9px;
  background:#D97757 !important;
  border:none !important;
  color:#fff !important;
  box-shadow:0 4px 14px rgba(217,119,87,.28);
}
.stale-gate .sb-rewrite-current:hover,
.lib-block-head .sb-rewrite-head:hover{
  filter:brightness(1.05);
}
.sb-rewrite-actions{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:10px;
}
.sb-rewrite-actions .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.sb-rewrite-actions .sb-rewrite-all-stale{
  background:#D97757 !important;
  border:none !important;
  color:#fff !important;
}
body[data-theme="light"] .stale-gate-title{color:#9f1239}
body[data-theme="light"] .stale-gate{
  background:#fff1f2 !important;
  border-color:#fda4af !important;
}


/* 分镜图主区：与资产库同款左右顶齐，左侧提示词展开 */
#imagegenStoryboardView .frame-card .lib-slot.sb-frame-slot{
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px 0 14px;
  grid-template-columns: none;
}
#imagegenStoryboardView .frame-card .lib-slot-body{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(400px, 460px);
  gap: 18px 20px;
  align-items: stretch; /* 左列随右栏拉伸：提示词框底边与「上传图片」底边持平 */
}
#imagegenStoryboardView .frame-card .lib-slot-left{
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
#imagegenStoryboardView .sb-prompt-preview,
#imagegenStoryboardView .prompt-card-preview.lib-prompt-preview{
  flex: 1 1 auto;
  margin: 0;
  min-height: 96px;
  padding: 10px 12px;
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--text);
  overflow: auto;
  display: block;
  -webkit-line-clamp: unset;
  white-space: pre-wrap;
  word-break: break-word;
  border-radius: 11px;
}
#imagegenStoryboardView .frame-card .lib-slot-body{
  align-items: stretch;
}
#imagegenStoryboardView .frame-card .lib-slot-left{
  gap: 8px;
}
#imagegenStoryboardView .sb-prompt-label{
  font-size: 11px;
  margin: 0;
}
#imagegenStoryboardView .lib-slot-right{
  width: 100%;
  max-width: 460px;
  justify-self: end;
  align-self: start;
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 10px;
}
/* 右侧两卡左右并排：说话近景卡 + 分镜参考图主图 */
#imagegenStoryboardView .frame-card .lib-slot-right > .sb-closeup-block{flex: 1 1 40%; min-width: 0}
#imagegenStoryboardView .frame-card .lib-slot-right > .sb-frame-media{flex: 1 1 60%; min-width: 0}
#imagegenStoryboardView .frame-card .lib-slot-right > .sb-frame-media .lib-img-card{min-height: 0}
#imagegenStoryboardView .lib-img-card,
#imagegenStoryboardView .lib-img{
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
  padding: 8px;
  min-height: 0;
  margin: 0;
}
#imagegenStoryboardView .lib-photo{
  width: 100%;
  min-height: 150px;
  max-height: 220px;
  object-fit: contain;
  border-radius: 10px;
  background: #0a0e16;
}
#imagegenStoryboardView .frame-card .sb-frame-media .lib-photo{
  min-height: 0;
  max-height: none;
}
#imagegenStoryboardView .lib-img-name{display:none}
#imagegenStoryboardView .lib-img-info-compact{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
#imagegenStoryboardView .lib-img-meta-line{
  font-size:11px;
  color:var(--muted);
  line-height:1.35;
  word-break:break-word;
}
#imagegenStoryboardView .sb-history-open,
#imagegenStoryboardView .lib-slot-right > .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
#imagegenStoryboardView .sb-frame-media{min-height:0}
body[data-theme="light"] #imagegenStoryboardView .lib-photo{background:#F4F0E7}
@media (max-width:1180px){
  #imagegenStoryboardView .frame-card .lib-slot-body{grid-template-columns:1fr}
  #imagegenStoryboardView .lib-slot-right{max-width:none; justify-self:stretch; flex-direction:column}
  #imagegenStoryboardView .frame-card .lib-slot-right > .sb-closeup-block{flex:1 1 auto}
  #imagegenStoryboardView .frame-card .lib-slot-right > .sb-frame-media{flex:1 1 auto}
}

.sb-rewrite-current:disabled,
.sb-rewrite-all-stale:disabled{
  opacity:.78;
  cursor:wait;
}
.toast{
  z-index: 99999;
}


/* 分镜图工具栏：文字模型（重写脚本）比画幅更宽 */
#imagegenStoryboardToolbar #sbTextModel,
#imagegenStoryboardView #sbTextModel{
  min-width: 168px;
  max-width: 240px;
}
#imagegenStoryboardToolbar.model-config--storyboard{
  flex-wrap: nowrap;
  align-items: center;
  gap: 10px;
}
#imagegenStoryboardView .model-config--storyboard{
  flex-wrap: wrap;
  row-gap: 8px;
}
#imagegenStoryboardToolbar .run-model-label[for="sbTextModel"],
#imagegenStoryboardView .model-config--storyboard .run-model-label[for="sbTextModel"]{
  color: #3f6f9d;
  font-weight: 800;
}
body[data-theme="light"] #imagegenStoryboardToolbar .run-model-label[for="sbTextModel"],
body[data-theme="light"] #imagegenStoryboardView .model-config--storyboard .run-model-label[for="sbTextModel"]{
  color: #8A5A12;
}


/* 提示词页 / 资产库：文字模型选择 */
#assetTextModel,
#libTextModel{
  min-width: 158px;
  max-width: 220px;
}
.model-config--asset-prompt .run-model-label[for="assetTextModel"],
.model-config--image-library .run-model-label[for="libTextModel"]{
  font-weight: 800;
  color: #6d5bd0;
}
body[data-theme="light"] .model-config--asset-prompt .run-model-label[for="assetTextModel"],
body[data-theme="light"] .model-config--image-library .run-model-label[for="libTextModel"]{
  color: #8A5A12;
}


/* 分镜图左侧：全景/细节最近生成摘要 */
.sb-gen-summary{
  margin-top:8px;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid rgba(141,124,255,.28);
  background:rgba(124,108,240,.08);
  font-size:11.5px;
  line-height:1.45;
}
.sb-gen-summary.is-ok{
  border-color:rgba(52,211,153,.4);
  background:rgba(16,185,129,.08);
}
.sb-gen-summary.is-partial{
  border-color:rgba(251,191,36,.45);
  background:rgba(245,158,11,.08);
}
.sb-gen-summary.is-empty{
  border-color:rgba(148,163,184,.28);
  background:rgba(148,163,184,.06);
}
.sb-gen-summary-main{
  font-weight:700;
  color:var(--text, #e5e7eb);
}
.sb-gen-summary-sub{
  margin-top:2px;
  color:var(--muted, #94a3b8);
  font-size:10.5px;
}
#storyboardWorkbench .sb-gen-summary{margin-top:8px}


/* 子图：主图上传参考放在标题「子图」徽章右侧 */
.lib-main-ref.lib-main-ref-inline{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-width:0;
  padding:2px 6px 2px 8px;
  border:1px dashed rgba(141,124,255,.55);
  border-radius:999px;
  background:rgba(141,124,255,.08);
  vertical-align:middle;
  max-width:min(100%, 280px);
}
.lib-main-ref.lib-main-ref-inline.is-empty{
  border-color:rgba(190,96,86,.45);
  background:rgba(190,96,86,.06);
}
.lib-main-ref-label{
  font-size:11px;
  font-weight:800;
  color:var(--purple);
  letter-spacing:.02em;
  white-space:nowrap;
}
.lib-main-ref-card{
  width:34px;
  height:34px;
  border:1px solid rgba(141,124,255,.4);
  border-radius:8px;
  background:rgba(20,29,48,.55);
  overflow:hidden;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}
.lib-main-ref-card.is-empty{
  border-color:rgba(190,96,86,.45);
  background:rgba(190,96,86,.08);
}
.lib-main-ref-photo{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  cursor:zoom-in;
}
.lib-main-ref-ph{font-size:14px;line-height:1;opacity:.85}
.lib-main-ref-hint{font-size:10px;line-height:1.35}
#imagegenAssetsView .lib-slot.lib-sub .lib-slot-right{max-width:280px}

/* Batch rewrite pulsing progress bar */
.run-bar.indeterminate-pulse{
  animation:pulse-glow 1.4s ease-in-out infinite;
}
@keyframes pulse-glow{
  0%,100%{opacity:1;box-shadow:0 0 8px rgba(124,108,255,.3)}
  50%{opacity:.6;box-shadow:0 0 18px rgba(74,163,255,.55)}
}


/* 顶栏：Image 2 质量·花费 / API与模型 / 费用（步骤条右侧） */
.topbar-model-test{
  display:flex;align-items:center;gap:8px;flex:0 1 auto;min-width:0;flex-wrap:wrap;
  margin-left:auto;margin-right:8px;
}
.topbar-model-test #btnImage2CostGuide{white-space:nowrap;}
.topbar-model-test .btn-model-test{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.topbar-model-test .btn-model-test:hover{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.topbar-model-test .btn-model-test:disabled{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.topbar-model-test .btn-asset-canvas{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.topbar-model-test .btn-asset-canvas:hover{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.topbar-model-test .model-test-status{
  font-size:11px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.topbar-model-test .model-test-status.is-ok{color:#5ad0a8}
.topbar-model-test .model-test-status.is-error{color:#ff8e98}
.topbar-model-test .model-test-status.is-running{color:#8eb6ff}
/* —— API 弹窗：接口官网 链接行 —— */
.api-pop-sites{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  padding:8px 10px;border:1px dashed color-mix(in srgb,var(--muted,#98a6bf) 42%,transparent);
  border-radius:10px;background:color-mix(in srgb,var(--muted,#98a6bf) 7%,transparent);
}
.api-pop-sites .api-sites-label{
  font-size:11px;font-weight:850;letter-spacing:.05em;color:var(--text,#f4f7ff);opacity:.72;white-space:nowrap;
}
.api-pop-sites .api-site-link{
  font-size:11.5px;font-weight:700;text-decoration:none;white-space:nowrap;
  color:var(--text,#f4f7ff);
  border:1px solid color-mix(in srgb, var(--muted,#98a6bf) 38%, transparent);
  border-radius:999px;padding:2px 10px;line-height:1.7;
}
.api-pop-sites .api-site-link:hover{
  color:var(--orange,#ffb45c);
  border-color:color-mix(in srgb, var(--orange,#ffb45c) 55%, transparent);
}
body[data-theme="light"] .topbar-model-test .btn-model-test{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .topbar-model-test .model-test-status.is-ok{color:#2f7a57}
body[data-theme="light"] .topbar-model-test .model-test-status.is-error{color:var(--red)}
@media(max-width:1100px){
  .topbar-model-test .model-test-status{display:none}
}
@media(max-width:850px){
  .topbar-model-test{order:4;width:100%;margin:0}
  .topbar-model-test .btn-model-test,
  .topbar-model-test .btn-asset-canvas,
  .topbar-model-test .btn-icon{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
}

.ledger-cost-summary{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:baseline;margin:0 0 12px}
.ledger-cost-total{font-size:22px;font-weight:800;letter-spacing:.02em}
.ledger-cost-meta{font-size:12px;color:var(--muted)}
.ledger-cost-table{width:100%;border-collapse:collapse;font-size:12px}
.ledger-cost-table th,.ledger-cost-table td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.ledger-cost-table th{text-align:left;font-weight:750;color:var(--muted)}
.ledger-cost-table td.num,.ledger-cost-table th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.ledger-cost-table .unpriced{color:#c9a227}
.ledger-cost-cats{display:flex;flex-wrap:wrap;gap:8px 14px;margin:10px 0 6px;font-size:12px}
.ledger-cost-note{margin:8px 0 0;font-size:11px;line-height:1.55;color:var(--muted)}
.ledger-cost-jobs{margin-top:16px}
.ledger-cost-jobs summary{cursor:pointer;font-size:12px;color:var(--muted)}
.ledger-modal-body > .ledger-cost-summary,
.ledger-modal-body > .ledger-cost-cats{flex:0 0 auto}
.work-modal-panel.ledger-modal-panel{width:min(1380px,calc(100vw - 28px));max-height:calc(100vh - 28px)}
.ledger-modal-body{display:flex;flex-direction:column;min-height:0;overflow:auto}
.ledger-layout{display:flex;align-items:flex-start;gap:16px;min-height:0}
.ledger-main{flex:1;min-width:0}
.ledger-episodes{flex:0 0 252px;width:252px;position:sticky;top:0;max-height:calc(100vh - 140px);display:flex;flex-direction:column;min-height:0;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb, var(--panel, #181c24) 88%, var(--text) 4%);overflow:hidden}
.ledger-episodes-head{flex:0 0 auto;padding:9px 12px 7px;font-size:12px;font-weight:750;color:var(--text);border-bottom:1px solid var(--line)}
.ledger-episodes-list{flex:1;min-height:0;overflow:auto;padding:4px}
.ledger-episodes-foot{flex:0 0 auto;padding:4px;border-top:1px solid var(--line)}
.ledger-ep-row{padding:6px 8px 5px;border-radius:8px}
.ledger-ep-row + .ledger-ep-row{margin-top:1px}
.ledger-ep-row.is-current{background:color-mix(in srgb, var(--primary, #3b82f6) 14%, transparent)}
.ledger-ep-row.is-shared{background:color-mix(in srgb, var(--muted) 12%, transparent)}
.ledger-ep-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.ledger-ep-label{font-size:12px;font-weight:700;color:var(--text)}
.ledger-ep-cny{font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.ledger-ep-bar{height:3px;margin:5px 0 4px;border-radius:99px;background:color-mix(in srgb, var(--line) 80%, transparent);overflow:hidden}
.ledger-ep-bar > i{display:block;height:100%;width:0;border-radius:inherit;background:var(--primary, #3b82f6)}
.ledger-ep-row.is-shared .ledger-ep-bar > i{background:var(--muted)}
.ledger-ep-cats{font-size:10px;line-height:1.4;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-theme="light"] .ledger-episodes{background:#fff}
@media (max-width: 900px){
  .ledger-layout{flex-direction:column}
  .ledger-episodes{flex:0 0 auto;width:auto;position:static;max-height:min(38vh, 320px)}
}

.ledger-cat-badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:700;background:var(--panel-2, rgba(255,255,255,0.06));border:1px solid var(--line);color:var(--text);white-space:nowrap}
.ledger-model-cell{min-width:240px}
.ledger-model-title{font-size:13px;font-weight:750;color:var(--text);line-height:1.3}
.ledger-model-id{font-size:11px;color:var(--muted);font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;margin-top:2px}
.ledger-breakdowns{display:flex;flex-direction:column;gap:5px;margin-top:8px}
.ledger-breakdown-group{display:flex;flex-direction:column;gap:3px}
.ledger-breakdown-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;padding:4px 8px;border-radius:var(--radius-sm, 4px);background:color-mix(in srgb, var(--panel, #181c24) 85%, var(--text) 5%);border:1px solid var(--line);border-left:3px solid var(--primary, #3b82f6)}
.ledger-breakdown-item.is-tier{margin-left:16px;padding:3px 7px;border-left-width:2px;border-left-color:color-mix(in srgb, var(--primary, #3b82f6) 55%, var(--line));background:color-mix(in srgb, var(--panel, #181c24) 72%, transparent)}
.ledger-breakdown-item.is-tier .ledger-spec-badge{font-size:10px;font-weight:650;background:transparent}
.ledger-breakdown-item.is-tier .ledger-spec-cny{font-size:11px;font-weight:650}
.ledger-breakdown-item.is-tier .ledger-spec-avg{font-size:10px}
.ledger-breakdown-item.is-tier .ledger-spec-meta{font-size:10px}
body[data-theme="light"] .ledger-breakdown-item.is-tier{background:color-mix(in srgb, var(--panel2, #f6f7fb) 82%, #fff)}
.ledger-spec-tag{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.ledger-spec-badge{font-size:11px;font-weight:750;padding:1px 6px;border-radius:3px;background:var(--bg-1, rgba(255,255,255,0.08));border:1px solid var(--line);color:var(--text);letter-spacing:.02em}
.ledger-spec-cny{font-size:12px;font-weight:750;color:var(--text)}
.ledger-spec-avg{font-size:11px;color:var(--muted)}
.ledger-spec-avg b{color:var(--text);font-weight:700}
.ledger-spec-meta{font-size:11px;color:var(--muted);display:flex;gap:6px;align-items:center;white-space:nowrap}
.ledger-spec-succ{color:var(--muted)}
.ledger-total-cny{font-weight:750;font-size:13px}
.ledger-unit-cell{font-size:11.5px;line-height:1.4;color:var(--muted);max-width:240px;word-break:break-word}
.ledger-unit-rule{color:var(--text);font-size:11.5px;line-height:1.45}
.ledger-calc-details{margin-top:5px;font-size:11px}
.ledger-calc-summary{cursor:pointer;color:var(--primary, #3b82f6);user-select:none;font-weight:600;display:inline-block;padding:1px 4px;border-radius:3px}
.ledger-calc-summary:hover{text-decoration:underline;background:rgba(255,255,255,0.06)}
.ledger-calc-list{margin-top:4px;padding:5px 8px;border-radius:4px;background:rgba(0,0,0,0.22);border:1px solid var(--line);max-height:160px;overflow-y:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;line-height:1.5;color:var(--muted)}
body[data-theme="light"] .ledger-calc-list{background:rgba(0,0,0,0.04)}
.ledger-calc-line{border-bottom:1px dashed rgba(255,255,255,0.06);padding:2px 0;word-break:break-all}
body[data-theme="light"] .ledger-calc-line{border-bottom:1px dashed rgba(0,0,0,0.08)}
.ledger-calc-line:last-child{border-bottom:none}

/* —— .btn 家族（浅色主题，覆盖旧有纯色规则） —— */
body[data-theme="light"] .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .btn:hover{background:color-mix(in srgb, var(--primary) 10%, var(--btn-bg));border-color:var(--primary);color:var(--btn-text);filter:none;box-shadow:none;}
body[data-theme="light"] .btn:active{transform:translateY(1px);box-shadow:none;}
body[data-theme="light"] .btn.primary{background:var(--btn-primary-bg);color:var(--on-primary);border-color:transparent;box-shadow:none;text-shadow:none;}
body[data-theme="light"] .btn.primary:hover{background:var(--primary-hover);color:var(--on-primary);border-color:transparent;filter:none;box-shadow:none;text-shadow:none;}
body[data-theme="light"] .btn.primary:active{background:var(--primary-active);color:var(--on-primary);box-shadow:none;}
body[data-theme="light"] .btn.ghost{background:transparent;color:var(--text);border-color:var(--line);box-shadow:none;text-shadow:none;}

/* —— 顶部步骤标签 —— */
.step-tab{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--line);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.step-tab:hover{color:var(--text);background:color-mix(in srgb, var(--primary) 12%, var(--btn-bg));border-color:var(--primary);box-shadow:none;filter:none;text-shadow:none;}
.step-tab:active{transform:translateY(1px);box-shadow:none;}
.step-tab.active{background:var(--primary);color:var(--on-primary);border-color:transparent;box-shadow:none;text-shadow:none;filter:none;font-weight:800;}
body[data-theme="light"] .step-tab{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--line);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .step-tab:hover{color:var(--text);background:color-mix(in srgb, var(--primary) 12%, var(--btn-bg));border-color:var(--primary);box-shadow:none;filter:none;text-shadow:none;}
body[data-theme="light"] .step-tab.active{background:var(--primary);color:var(--on-primary);border-color:transparent;box-shadow:none;text-shadow:none;filter:none;font-weight:800;}

/* —— 分段选择器：凹槽底座 + 立体滑块 —— */
.segmented{box-shadow:inset 0 2px 5px rgba(0,0,0,.40),inset 0 -1px 0 rgba(255,255,255,.05)}
.segmented button{
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07);
  transition:background .12s ease,box-shadow .12s ease,color .12s ease,transform .08s ease;
}
.segmented button:hover{filter:brightness(1.15)}
.segmented button:active{transform:translateY(1px)}
.segmented button.active{
  background:linear-gradient(180deg,#2c3d63,#1b2840);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 2px 6px rgba(0,0,0,.35);
}
body[data-theme="light"] .segmented{box-shadow:inset 0 2px 5px color-mix(in srgb, var(--text) 16%, transparent),inset 0 -1px 0 rgba(255,255,255,.65)}
body[data-theme="light"] .segmented button{
  background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.22));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.80);
}
body[data-theme="light"] .segmented button.active{
  background:linear-gradient(180deg,#ffffff,var(--panel2));
  box-shadow:inset 0 1px 0 #fff,0 2px 6px color-mix(in srgb, var(--text) 18%, transparent);
}

/* —— 第4步三视图分段：叠加高光，保留彩色选中态 —— */
.imagegen-view-seg{box-shadow:inset 0 2px 6px rgba(0,0,0,.45),0 8px 22px rgba(0,0,0,.12),inset 0 -1px 0 rgba(255,255,255,.04)}
.imagegen-view-seg button{
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.02));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.imagegen-view-seg button:active{transform:translateY(1px)}
.imagegen-view-seg.segmented button[data-view="edit"].active{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 18px rgba(125,108,255,.30);
}
.imagegen-view-seg.segmented button[data-view="library"].active{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 18px rgba(58,167,239,.28);
}
.imagegen-view-seg.segmented button[data-view="storyboard"].active{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 18px rgba(43,191,138,.28);
}
body[data-theme="light"] .imagegen-view-seg{box-shadow:inset 0 2px 6px color-mix(in srgb, var(--text) 18%, transparent),0 8px 22px color-mix(in srgb, var(--text) 10%, transparent),inset 0 -1px 0 rgba(255,255,255,.60)}
body[data-theme="light"] .imagegen-view-seg button{
  background:linear-gradient(180deg,rgba(255,255,255,.60),rgba(255,255,255,.25));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85);
}

/* —— 侧栏折叠按钮 —— */
.side-toggle{
  background:linear-gradient(180deg,#243050,#131b2c);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 2px 5px rgba(0,0,0,.30);
}
.side-toggle:active{transform:translateY(1px);box-shadow:inset 0 2px 5px rgba(0,0,0,.40)}
body[data-theme="light"] .side-toggle{
  background:linear-gradient(180deg,var(--panel),#efe8da);
  box-shadow:inset 0 1px 0 #fff,0 2px 5px color-mix(in srgb, var(--text) 16%, transparent);
}

/* —— 顶栏项目入口：保留橙色标识，叠加拟物高光 —— */
.project-entry{
  background:transparent;
  box-shadow:none;
}
.project-entry:hover{
  box-shadow:none;
}
.project-entry:active{transform:translateY(1px)}
body[data-theme="light"] .project-entry{
  background:transparent;
  box-shadow:none;
}

/* —— 单镜三轨按钮：保留彩色身份，只补高光与按压态 —— */
.shot-action-bar .btn-shot-split{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.shot-action-bar .btn-shot-narration{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.shot-action-bar .btn-shot-storyboard{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.shot-action-bar .btn-shot-rail:not(:disabled):active{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}

/* —— 分镜门禁橙色重写按钮：补高光与按压态 —— */
.stale-gate .sb-rewrite-current,
.lib-block-head .sb-rewrite-head,
.sb-rewrite-actions .sb-rewrite-all-stale{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.38),0 4px 14px rgba(217,119,87,.28);
}
.stale-gate .sb-rewrite-current:not(:disabled):active,
.lib-block-head .sb-rewrite-head:not(:disabled):active,
.sb-rewrite-actions .sb-rewrite-all-stale:not(:disabled):active{
  transform:translateY(1px);
  box-shadow:inset 0 2px 8px rgba(120,45,10,.42);
}

/* —— API 胶囊链接 —— */
.api-pop-sites .api-site-link{
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.02));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}
.api-pop-sites .api-site-link:hover{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 2px 6px rgba(0,0,0,.25);
}

/* —— 文字链接：保持下划线样式，仅加 hover 反馈 —— */
.btn-link{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.btn-link:hover{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}

/* —— 第1步：解说漫题材适配说明（黑黄斜纹警告边 + 主界面底色） —— */
.fit-note{
  border:9px solid transparent;
  border-image:repeating-linear-gradient(45deg,#ffc400 0 12px,#17181c 12px 24px) 9;
  background:var(--panel);
  border-radius:0;padding:12px 16px;margin:0 0 14px;
  font-size:12.5px;line-height:1.7;color:var(--text);
  box-shadow:var(--shadow);
}
.fit-note-title{font-size:14px;font-weight:900;color:var(--text);margin-bottom:8px;letter-spacing:.3px}
.fit-note-title::before{content:"⚠️ "}
.fit-note-row{display:flex;gap:8px;align-items:flex-start;margin-top:4px}
.fit-note-row>span:last-child{flex:1}
.fit-tag{flex:0 0 auto;font-size:10px;font-weight:900;line-height:1.7;border-radius:4px;padding:0 9px;border:1px solid rgba(0,0,0,.35);margin-top:1px;color:#fff;letter-spacing:.5px}
.fit-ok .fit-tag{background:#1f7a3d;border-color:#145228}
.fit-no .fit-tag{background:#c22f2f;border-color:#8c1f1f}

/* ===== 新手帮助：入口按钮（左上角）交互态 ===== */
.logo-help{
  font-family:inherit;
  transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;
}
.logo-help:hover{transform:scale(1.04);box-shadow:0 0 22px rgba(255,180,92,.35),0 0 0 1px rgba(255,180,92,.18) inset}
.logo-help:active{transform:scale(.97)}
.logo-help:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
body[data-theme="light"] .logo-help{
  border-color:color-mix(in srgb, var(--primary) 90%, transparent);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--primary) 16%, transparent) inset,0 4px 12px color-mix(in srgb, var(--primary) 16%, transparent);
}
body[data-theme="light"] .logo-help:hover{box-shadow:0 0 18px color-mix(in srgb, var(--primary) 35%, transparent),0 0 0 1px color-mix(in srgb, var(--primary) 16%, transparent) inset}
a.logo-help{text-decoration:none}

/* 深色主题令牌由 JS 写入，此处只保证背景跟随 --bg */
body[data-theme="dark"]{
  background:var(--bg);color:var(--text);
}
body[data-theme="dark"] .logo{background:linear-gradient(135deg,var(--btn-primary-bg),var(--muted));box-shadow:none}
body[data-theme="dark"] .logo-help:hover{box-shadow:none;transform:scale(1.05)}
body[data-theme="dark"] .project-context{border-color:var(--line);background:rgba(255,255,255,.04);box-shadow:none}
body[data-theme="dark"] .project-context:hover{border-color:var(--muted);background:rgba(255,255,255,.08);box-shadow:none}
body[data-theme="dark"] .project-entry{border-color:transparent;border-right-color:var(--line);background:transparent;box-shadow:none}
body[data-theme="dark"] .project-entry:hover{border-right-color:var(--muted);background:rgba(255,255,255,.08);box-shadow:none}
body[data-theme="dark"] .project-entry-kicker{color:var(--muted)}
body[data-theme="dark"] .badge.green{color:#8fd0af;border-color:rgba(92,184,138,.35);background:rgba(92,184,138,.08)}
body[data-theme="dark"] .badge.orange{color:#e0b184;border-color:rgba(207,144,87,.35);background:rgba(207,144,87,.08)}
body[data-theme="dark"] .badge.purple{color:var(--text);border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.06)}
body[data-theme="dark"] .badge.blue{color:var(--muted);border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.05)}
body[data-theme="dark"] .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="dark"] .btn:hover{background:color-mix(in srgb, var(--primary) 10%, var(--btn-bg));border-color:var(--primary);color:var(--btn-text);filter:none;box-shadow:none;}
body[data-theme="dark"] .btn:active{transform:var(--press);box-shadow:var(--btn-shadow);}
body[data-theme="dark"] .btn.primary{background:var(--btn-primary-bg);color:var(--on-primary);border-color:transparent;box-shadow:none;text-shadow:none;}
body[data-theme="dark"] .btn.primary:hover{background:var(--primary-hover);color:var(--on-primary);border-color:transparent;filter:none;box-shadow:none;text-shadow:none;}
body[data-theme="dark"] .btn.primary:active{background:var(--primary-active);color:var(--on-primary);box-shadow:none;}
body[data-theme="dark"] .btn.ghost{background:transparent;color:var(--text);border-color:var(--line);box-shadow:none;text-shadow:none;}
body[data-theme="dark"] .hero-card,body[data-theme="dark"] .summary-card,body[data-theme="dark"] .flow-card,body[data-theme="dark"] .app-shell,body[data-theme="dark"] .section{background:var(--panel);border-color:var(--line);box-shadow:none}
body[data-theme="dark"] .app-top{background:var(--topbar-bg)}
body[data-theme="dark"] .app-top::after{background:var(--primary)}
body[data-theme="dark"] .stepper{border-color:var(--line);background:var(--panel2);box-shadow:none}
body[data-theme="dark"] .step-tab{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--line);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="dark"] .step-tab:hover{color:var(--text);background:color-mix(in srgb, var(--primary) 12%, var(--btn-bg));border-color:var(--primary);box-shadow:none;filter:none;text-shadow:none;}
body[data-theme="dark"] .step-tab.active{background:var(--primary);color:var(--on-primary);border-color:transparent;box-shadow:none;text-shadow:none;filter:none;font-weight:800;}
body[data-theme="dark"] .sidebar,body[data-theme="dark"] .inspector{background:var(--panel2)}
body[data-theme="dark"] .side-nav-block{border-color:var(--line);background:var(--panel2)}
body[data-theme="dark"] .episode{border-color:var(--line);background:var(--panel2)}
body[data-theme="dark"] .episode:hover{background:var(--panel2)}
body[data-theme="dark"] .episode.active{background:color-mix(in srgb, var(--primary) 14%, var(--panel));border-color:var(--primary)}
body[data-theme="dark"] .ep-num{background:var(--panel2)}
body[data-theme="dark"] .episode.active .ep-num{background:var(--btn-primary-bg);color:var(--on-primary)}
body[data-theme="dark"] .card,body[data-theme="dark"] .scene-card{background:var(--panel)}
body[data-theme="dark"] .upload{border-color:var(--line);background:transparent}
body[data-theme="dark"] .script-module-wide{border-color:var(--line);background:transparent}
body[data-theme="dark"] .script-module-wide:hover{border-color:var(--muted);background:rgba(255,255,255,.04)}
body[data-theme="dark"] .scene-head{background:rgba(255,255,255,.02)}
body[data-theme="dark"] .field,body[data-theme="dark"] .metric,body[data-theme="dark"] .node,body[data-theme="dark"] .rule,body[data-theme="dark"] .check,body[data-theme="dark"] .info,body[data-theme="dark"] .criterion{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.1)}
body[data-theme="dark"] .hard{border-color:rgba(207,144,87,.35);background:rgba(207,144,87,.05)}
body[data-theme="dark"] .ai{border-color:var(--line)}
body[data-theme="dark"] .source{background:var(--panel2);color:var(--muted)}
body[data-theme="dark"] .adapt-scene-group{border-color:var(--line);background:rgba(255,255,255,.02)}
body[data-theme="dark"] .scene-id{color:var(--text);background:rgba(255,255,255,.08)}
body[data-theme="dark"] .field.narration{border-color:var(--line);background:rgba(255,255,255,.03)}
body[data-theme="dark"] .lang-tabs{border-color:var(--line)}
body[data-theme="dark"] .voice-dir-row{border-top-color:var(--line)}
body[data-theme="dark"] .lock{color:var(--orange)}
body[data-theme="dark"] .correction{border-color:rgba(207,144,87,.35);background:rgba(207,144,87,.06)}
body[data-theme="dark"] .footer-actions{background:linear-gradient(180deg,rgba(10,10,11,0),var(--panel2) 30%)}
body[data-theme="dark"] .code{background:var(--panel);border-color:#2a2a2e;color:#c9c9ce}
body[data-theme="dark"] .toast{background:#141416;border-color:var(--line);color:var(--text)}
body[data-theme="dark"] .edit-area{background:var(--panel2);border-color:var(--line);color:var(--text)}
body[data-theme="dark"] .edit-area:focus{border-color:var(--btn-primary-bg);box-shadow:0 0 0 2px rgba(255,255,255,.12)}
body[data-theme="dark"] .search,body[data-theme="dark"] .select{background:var(--panel);border-color:var(--line)}
body[data-theme="dark"] .segmented{background:#141416}
body[data-theme="dark"] .segmented button.active{background:#2a2a2e;color:var(--text);box-shadow:none}
body[data-theme="dark"] .side-toggle{background:#141416;border-color:var(--line);color:var(--muted);box-shadow:none}
body[data-theme="dark"] .side-toggle:hover{color:var(--text);border-color:var(--muted)}
body[data-theme="dark"] .workbench .run-panel,body[data-theme="dark"] .inspector.workbench .run-panel,body[data-theme="dark"] .run-panel{background:var(--panel2);border-color:var(--line)}
body[data-theme="dark"] .workbench-secondary{border-top-color:var(--line)}
body[data-theme="dark"] .workbench .info{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.1)}
body[data-theme="dark"] .skill-panel{--skill-accent:var(--text);--skill-border:rgba(255,255,255,.2);--skill-wash:rgba(255,255,255,.04)}
body[data-theme="dark"] .skill-panel--storyboard{--skill-accent:#c9c9cf;--skill-border:rgba(255,255,255,.22);--skill-wash:rgba(255,255,255,.05)}
body[data-theme="dark"] .skill-panel--image-style{--skill-accent:var(--text);--skill-border:rgba(255,255,255,.2);--skill-wash:rgba(255,255,255,.04)}
body[data-theme="dark"] .skill-panel--reference{--skill-accent:#bdbdc3;--skill-border:rgba(255,255,255,.18);--skill-wash:rgba(255,255,255,.04)}
body[data-theme="dark"] .skill-panel--tts{--skill-accent:#c9c9cf;--skill-border:rgba(255,255,255,.22);--skill-wash:rgba(255,255,255,.05)}
body[data-theme="dark"] .model-config{--model-accent:var(--muted);--model-border:rgba(255,255,255,.2);--model-wash:rgba(255,255,255,.04)}
body[data-theme="dark"] .model-config--image-library,body[data-theme="dark"] .model-config--storyboard,body[data-theme="dark"] .model-config--video,body[data-theme="dark"] .model-config--tts{--model-accent:var(--muted);--model-border:rgba(255,255,255,.2);--model-wash:rgba(255,255,255,.04)}
body[data-theme="dark"] .visual-cast-summary{
  border-color:var(--line);
  background:var(--panel);
  box-shadow:inset 3px 0 0 #8a8a90;
}
body[data-theme="dark"] .visual-cast-pop{
  border-color:var(--line);
  background:var(--panel);
  box-shadow:0 14px 34px rgba(0,0,0,.4), inset 4px 0 0 #8a8a90;
}
body[data-theme="dark"] .visual-cast-kicker{color:var(--muted)}
body[data-theme="dark"] .script-preamble-fold .visual-cast-summary{
  border-color:rgba(255,180,92,.42);
  background:linear-gradient(135deg,rgba(255,180,92,.14),var(--panel));
  box-shadow:inset 3px 0 0 #c8892e;
}
body[data-theme="dark"] .script-preamble-fold .visual-cast-kicker{color:#e0b15a}
body[data-theme="dark"] .script-preamble-pop{
  border-color:rgba(255,180,92,.38);
  background:var(--panel);
  box-shadow:0 14px 34px rgba(0,0,0,.4), inset 4px 0 0 #c8892e;
}
body[data-theme="dark"] .progress{background:var(--panel2)}
body[data-theme="dark"] .progress>i{background:var(--text)}
body[data-theme="dark"] .char-card{background:var(--panel);border-color:var(--line)}
body[data-theme="dark"] .tier-block{background:rgba(255,255,255,.02)}
body[data-theme="dark"] .char-chip.chip-rec{color:var(--muted);border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.05)}
body[data-theme="dark"] .b-scene{color:var(--muted);background:rgba(255,255,255,.08)}
body[data-theme="dark"] .b-variant{color:var(--text);background:rgba(255,255,255,.1)}
body[data-theme="dark"] .variant-prompt{color:var(--text);background:rgba(255,255,255,.05)}
body[data-theme="dark"] .imagegen-viewtabs{border:0;background:none}
body[data-theme="dark"] .imagegen-view-seg button[data-view="edit"],body[data-theme="dark"] .imagegen-view-seg button[data-view="library"]{border-color:var(--line)}
body[data-theme="dark"] .lib-slot.lib-sub{border-left-color:var(--line)}
body[data-theme="dark"] .lib-img{background:rgba(255,255,255,.03)}
body[data-theme="dark"] .vid-narr{border-left-color:var(--line);background:rgba(255,255,255,.03)}
body[data-theme="dark"] .media-audio-open{background:rgba(255,255,255,.05)}
body[data-theme="dark"] .sb-refs{background:rgba(255,255,255,.02)}
body[data-theme="dark"] img[data-image-preview]:hover{box-shadow:0 0 0 2px rgba(255,255,255,.65),0 8px 18px rgba(0,0,0,.5)}
body[data-theme="dark"] .work-modal-panel{border-color:var(--line)}
body[data-theme="dark"] .work-modal-head{background:var(--panel)}
body[data-theme="dark"] .work-modal-close:hover{border-color:var(--muted);background:rgba(255,255,255,.08)}
body[data-theme="dark"] .modal-image-choice:hover{border-color:var(--muted);background:rgba(255,255,255,.06)}
body[data-theme="dark"] .script-ep-block.is-active{background:rgba(255,255,255,.05);box-shadow:inset 3px 0 0 var(--text)}
body[data-theme="dark"] .project-list-item.is-current{border-color:var(--text);box-shadow:0 0 0 1px rgba(255,255,255,.15) inset}
body[data-theme="dark"] .gen-busy-glass .refresh-orbit,body[data-theme="dark"] .narration-refresh-glass .refresh-orbit,body[data-theme="dark"] .sb-gen-glass .refresh-orbit{border-top-color:var(--btn-primary-bg);border-right-color:rgba(255,255,255,.35);box-shadow:none}
body[data-theme="dark"] .asset-census-status{border-color:var(--line);background:rgba(255,255,255,.04)}
body[data-theme="dark"] .sb-gen-summary{border-color:var(--line);background:rgba(255,255,255,.04)}
body[data-theme="dark"] .lib-main-ref.lib-main-ref-inline{border-color:var(--line);background:rgba(255,255,255,.05)}
body[data-theme="dark"] .lib-main-ref-card{border-color:var(--line);background:var(--panel2)}
body[data-theme="dark"] .imagegen-view-seg{border-color:var(--line);background:var(--panel2);box-shadow:none}
body[data-theme="dark"] .script-viewtabs{
  border-color:var(--line);
  background:linear-gradient(180deg,rgba(232,149,74,.08),rgba(43,191,138,.05));
}
body[data-theme="dark"] .script-view-seg{border-color:var(--line);background:var(--panel2);box-shadow:none}
body[data-theme="dark"] .script-view-seg.segmented button.active,
body[data-theme="dark"] .script-view-seg.segmented button.active .sc-tab-label,
body[data-theme="dark"] .script-view-seg.segmented button.active .sc-tab-no{color:var(--on-primary) !important}
body[data-theme="dark"] .script-view-seg.segmented button[data-view="upload"].active{
  background:var(--btn-primary-bg) !important;border-color:transparent !important;box-shadow:none;
}
body[data-theme="dark"] .script-view-seg.segmented button[data-view="index"].active{
  background:var(--btn-primary-bg) !important;border-color:transparent !important;box-shadow:none;
}
body[data-theme="dark"] .script-view-seg.segmented button.active .sc-tab-no{background:rgba(0,0,0,.08);border-color:rgba(0,0,0,.5)}
body[data-theme="dark"] .imagegen-view-seg.segmented button.active,body[data-theme="dark"] .imagegen-view-seg.segmented button.active .ig-tab-label,body[data-theme="dark"] .imagegen-view-seg.segmented button.active .ig-tab-no{color:var(--on-primary) !important}
body[data-theme="dark"] .imagegen-view-seg.segmented button[data-view="edit"].active,body[data-theme="dark"] .imagegen-view-seg.segmented button[data-view="library"].active,body[data-theme="dark"] .imagegen-view-seg.segmented button[data-view="storyboard"].active{background:var(--btn-primary-bg) !important;border-color:transparent !important;box-shadow:none}
body[data-theme="dark"] .imagegen-view-seg.segmented button.active .ig-tab-no{background:rgba(0,0,0,.08);border-color:rgba(0,0,0,.5)}
body[data-theme="dark"] .imagegen-view-seg{
  border:2.5px solid rgba(141,124,255,.48);
  background:var(--panel2);
  box-shadow:0 8px 22px rgba(0,0,0,.28);
}
body[data-theme="dark"] .imagegen-view-seg button[data-view="assets"]{border-color:rgba(141,124,255,.7)}
body[data-theme="dark"] .imagegen-view-seg button[data-view="storyboard"]{border-color:rgba(43,191,138,.7)}
body[data-theme="dark"] .imagegen-view-seg.segmented button[data-view="assets"].active{
  background:linear-gradient(145deg,#7d6cff,#5f8dff) !important;
  border-color:#b7acff !important;
  box-shadow:0 8px 18px rgba(125,108,255,.35);
  color:#fff !important;
}
body[data-theme="dark"] .imagegen-view-seg.segmented button[data-view="storyboard"].active{
  background:linear-gradient(145deg,#2bbf8a,#1f9a6d) !important;
  border-color:#8fe8c4 !important;
  box-shadow:0 8px 18px rgba(43,191,138,.32);
  color:#fff !important;
}
body[data-theme="dark"] .model-config{background:linear-gradient(135deg,rgba(255,255,255,.04),var(--panel2) 38%,#0d0d0f);border-color:var(--line);box-shadow:inset 3px 0 0 #8a8a90,0 7px 18px rgba(0,0,0,.3)}
body[data-theme="dark"] .model-config::before{background:#141416}
body[data-theme="dark"] .model-config .segmented{background:var(--panel2);border-color:var(--line)}
/* leftover grok.com dark pill geometry neutralized — skins drive radius */
body[data-theme="dark"] .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:var(--btn-shadow);text-shadow:none;filter:none;}
body[data-theme="dark"] .btn:hover{background:color-mix(in srgb, var(--primary) 10%, var(--btn-bg));border-color:var(--primary);color:var(--btn-text);filter:none;box-shadow:var(--btn-shadow);}
body[data-theme="dark"] .btn.primary{background:var(--btn-primary-bg);color:var(--on-primary);border-color:transparent;box-shadow:var(--btn-shadow);text-shadow:none;}
body[data-theme="dark"] .btn.ghost{background:transparent;color:var(--text);border-color:var(--line);box-shadow:none;text-shadow:none;}
body[data-theme="dark"] .search,body[data-theme="dark"] .select{border-radius:var(--radius-input)}
body[data-theme="dark"] .segmented{border-radius:var(--radius-md)}
body[data-theme="dark"] .segmented button{border-radius:var(--radius-btn)}
body[data-theme="dark"] .stepper{border-radius:var(--radius-card);border-color:var(--line)}
body[data-theme="dark"] .step-tab{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--line);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="dark"] .project-entry{border-radius:var(--radius-btn) 0 0 var(--radius-btn)}
body[data-theme="dark"] .side-toggle{border-radius:var(--radius-btn)}
body[data-theme="dark"] .hero-card,body[data-theme="dark"] .summary-card,body[data-theme="dark"] .flow-card,body[data-theme="dark"] .app-shell,body[data-theme="dark"] .section{border-color:var(--line)}
body[data-theme="dark"] .card,body[data-theme="dark"] .scene-card{border-color:var(--line);border-radius:var(--radius-card)}
body[data-theme="dark"] .episode{border-radius:var(--radius-md)}
body[data-theme="dark"] .upload{border-radius:var(--radius-card)}
body[data-theme="dark"] .edit-area{border-radius:var(--radius-input)}

.vid-segment-editor{margin-top:10px;padding:8px 10px;border:1px solid var(--line,#e5ddd2);border-radius:10px;background:rgba(255,255,255,.62)}
.vid-segment-editor summary{cursor:pointer;color:var(--muted,#81786d);font-size:12px}
.vid-segment-list{display:grid;gap:6px;margin-top:8px}
.vid-segment-row{display:grid;grid-template-columns:68px 12px 68px 100px minmax(140px,1fr);gap:5px;align-items:center}
.vid-segment-row.is-picture-locked{grid-template-columns:minmax(118px,auto) 100px minmax(140px,1fr)}
.vid-segment-row .select{min-width:0;width:100%}
.vid-segment-row textarea.vid-seg-text{
  min-height:38px;
  resize:vertical;
  font:inherit;
  font-size:12px;
  line-height:1.45;
  padding:6px 8px;
  white-space:pre-wrap;
  word-break:break-word;
  box-sizing:border-box;
}
.vid-seg-frame{font-size:11px;font-weight:700;color:var(--muted,#81786d);white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}
.vid-seg-hint,.vid-seg-empty{margin:0 0 4px;font-size:12px;line-height:1.4}
.vid-segment-row.is-picture-locked .vid-seg-start,
.vid-segment-row.is-picture-locked .vid-seg-dash,
.vid-segment-row.is-picture-locked .vid-seg-end{display:none}


/* 本帧对白展示：左侧空白区 + 说话近景卡内摘要 */
.sb-dialogue-label{font-size:11px;font-weight:800;color:#16a34a;margin-bottom:2px;letter-spacing:.02em}
.sb-dialogue-line.is-empty{color:var(--muted);font-size:12px}
.sb-closeup-dialogue{margin:0 0 8px;padding:6px 8px;border-radius:8px;background:rgba(141,124,255,.08);border:1px solid rgba(141,124,255,.18);display:flex;flex-direction:column;gap:4px;max-height:120px;overflow:auto}
.sb-closeup-dialogue .sb-speaker{color:#6d5bd0;background:rgba(109,91,208,.12)}
body[data-theme="light"] .sb-closeup-dialogue{background:rgba(124,92,255,.06);border-color:rgba(124,92,255,.18)}
#imagegenStoryboardView .frame-card .sb-frame-dialogue{margin:8px 0 10px}
#imagegenStoryboardView .frame-card .sb-frame-dialogue .sb-dialogue-text{white-space:pre-wrap;word-break:break-word}

/* 分镜参考图：台词区块 */
.sb-frame-dialogue{margin:0 0 8px;padding:6px 9px;border:1px solid rgba(34,197,94,.22);border-radius:9px;background:rgba(34,197,94,.05);display:flex;flex-direction:column;gap:3px}
.sb-dialogue-line{display:flex;gap:7px;align-items:baseline;font-size:12px;line-height:1.5}
.sb-speaker{flex-shrink:0;font-weight:700;color:#22c55e;background:rgba(34,197,94,.12);padding:1px 6px;border-radius:4px;white-space:nowrap}
.sb-dialogue-text{color:var(--text);flex:1;min-width:0}
body[data-theme="light"] .sb-frame-dialogue{border-color:rgba(22,163,74,.2);background:rgba(34,197,94,.04)}
body[data-theme="light"] .sb-speaker{color:#15803d;background:rgba(34,197,94,.1)}

/* 说话角色近景图（9:16）：紫色调与台词区块区分 */
.sb-closeup-block{margin:0 0 8px;padding:8px 10px;border:1px solid rgba(141,124,255,.28);border-left:3px solid rgba(141,124,255,.65);border-radius:9px;background:rgba(141,124,255,.07)}
.sb-closeup-head{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#8d7cff;margin-bottom:7px;line-height:1.4}
.sb-closeup-head .muted{font-weight:400;font-size:11px}
.sb-closeup-body{display:flex;gap:10px;align-items:flex-start}
.sb-closeup-media{position:relative;width:100%;flex-shrink:0;border-radius:8px;overflow:visible;display:flex}
.sb-closeup-media .lib-img-card{margin:0;width:100%;display:flex;align-items:center;justify-content:center}
.sb-closeup-media img{max-height:420px;object-fit:contain;width:100%;height:auto}
.sb-closeup-empty{display:flex;align-items:center;justify-content:center;height:84px;padding:8px;border:1px dashed rgba(141,124,255,.45);border-radius:8px;font-size:12px;color:var(--muted,#81786d);text-align:center;background:rgba(141,124,255,.05)}
.sb-closeup-actions{display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding-top:2px}
.sb-closeup-actions .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .sb-closeup-block{border-color:rgba(124,92,255,.3);border-left-color:rgba(124,92,255,.7);background:rgba(124,92,255,.05)}
body[data-theme="light"] .sb-closeup-head{color:#6d5bd0}
body[data-theme="light"] .sb-closeup-empty{border-color:rgba(124,92,255,.5);color:#6b6b70;background:rgba(124,92,255,.04)}

/* 镜头视频：左主栏（操作+时间窗 | 视频提示词）+ 双比例完整视频；右栏仅已选素材参考图 */
.vid-shot-body{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,.40fr);
  gap:12px;
  align-items:start;
  margin:0;
}
.vid-shot-main{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:10px;
  align-self:start;
}
/* 左上：时间窗操作 + 视频提示词并排（提示词落在原空白区） */
.vid-shot-top{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  gap:10px;
  align-items:stretch;
  min-height:0;
}
.vid-shot-left-col{display:contents}
.vid-shot-left{grid-column:1;grid-row:1}
.vid-prompt-panel{grid-column:2;grid-row:1}
#videoContainer .lib-slot.vid-shot-slot{grid-column:1 / -1;grid-row:2}
.vid-shot-side{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-self:start;
  min-height:0;
}
/* 视频提示词：放在左栏右侧空白区，与时间窗并排 */
.vid-prompt-panel{
  flex:1 1 auto;
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:8px;
  border:1px solid rgba(217,119,87,.35);
  border-radius:12px;
  padding:12px 12px 10px;
  background:rgba(255,255,255,.02);
  box-sizing:border-box;
  overflow:hidden;
}
.vid-prompt-panel-head{flex:0 0 auto}
.vid-prompt-eyebrow{
  font-size:11px;
  font-weight:750;
  color:var(--muted);
  letter-spacing:.2px;
  margin-bottom:3px;
}
.vid-prompt-title{
  font-size:15px;
  font-weight:850;
  color:var(--text);
  line-height:1.3;
}
.vid-prompt-hint{
  flex:0 0 auto;
  margin:0;
  font-size:11px;
  line-height:1.5;
  color:var(--muted);
}
.vid-prompt-label{
  flex:0 0 auto;
  font-size:13px;
  font-weight:800;
  color:var(--text);
  margin-top:2px;
}
.vid-prompt-body{
  flex:1 1 auto;
  min-height:160px;
  margin:0;
  padding:14px 14px;
  border:1px solid rgba(217,119,87,.45);
  border-radius:12px;
  background:rgba(255,248,242,.55);
  color:var(--text);
  font-size:14px;
  line-height:1.7;
  word-break:break-word;
  overflow:auto;
  font-family:inherit;
  display:flex;
  flex-direction:column;
  gap:20px;
}
.vid-prompt-empty{
  color:var(--muted);
  font-size:13.5px;
  line-height:1.6;
}
.vid-prompt-seg{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:12px 12px 11px;
  border-radius:10px;
  border:1px solid rgba(217,119,87,.22);
  background:rgba(255,255,255,.35);
}
.vid-prompt-seg + .vid-prompt-seg{
  margin-top:2px;
}
.vid-prompt-anchor{
  border-style:dashed;
  border-color:rgba(217,119,87,.28);
  background:rgba(255,255,255,.18);
  padding-bottom:14px;
  margin-bottom:2px;
}
.vid-prompt-seg-head{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.vid-prompt-seg-badge{
  display:inline-flex;
  align-items:center;
  font-size:12.5px;
  font-weight:800;
  letter-spacing:.2px;
  color:#8a3b22;
  background:rgba(217,119,87,.16);
  border:1px solid rgba(217,119,87,.35);
  border-radius:999px;
  padding:3px 10px;
  line-height:1.3;
}
.vid-prompt-seg-badge-text{
  color:#5b4a40;
  background:rgba(120,100,90,.1);
  border-color:rgba(120,100,90,.22);
}
.vid-prompt-seg-meta{
  font-size:12px;
  font-weight:650;
  color:var(--muted);
}
.vid-prompt-seg-body{
  margin:0;
  font-size:14px;
  line-height:1.72;
  white-space:pre-wrap;
  word-break:break-word;
  color:var(--text);
}
.vid-prompt-seg.is-textonly{
  border-style:dashed;
  opacity:.92;
  background:rgba(120,100,90,.05);
}
.vid-prompt-seg.is-textonly .vid-prompt-seg-badge-text{
  font-variant-numeric:tabular-nums;
}
body[data-theme="dark"] .vid-prompt-panel{
  border-color:rgba(217,119,87,.28);
  background:rgba(255,255,255,.02);
}
body[data-theme="dark"] .vid-prompt-body{
  background:rgba(40,28,22,.35);
  border-color:rgba(217,119,87,.35);
  color:#f3e7df;
}
body[data-theme="dark"] .vid-prompt-seg{
  background:rgba(255,255,255,.04);
  border-color:rgba(217,119,87,.22);
}
body[data-theme="dark"] .vid-prompt-anchor{
  background:rgba(255,255,255,.03);
  border-color:rgba(217,119,87,.25);
}
body[data-theme="dark"] .vid-prompt-seg-badge{
  color:#ffd2bf;
  background:rgba(217,119,87,.22);
  border-color:rgba(217,119,87,.4);
}
body[data-theme="dark"] .vid-prompt-seg-badge-text{
  color:#d8c7ba;
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.12);
}
body[data-theme="light"] .vid-prompt-panel{
  background:rgba(255,255,255,.72);
  border-color:color-mix(in srgb, var(--primary) 32%, transparent);
}
body[data-theme="light"] .vid-prompt-body{
  background:rgba(255,248,242,.9);
  border-color:color-mix(in srgb, var(--primary) 40%, transparent);
}
body[data-theme="light"] .vid-prompt-seg{
  background:rgba(255,255,255,.78);
  border-color:color-mix(in srgb, var(--primary) 20%, transparent);
  box-shadow:0 1px 0 rgba(139,69,40,.04);
}
body[data-theme="light"] .vid-prompt-anchor{
  background:rgba(255,252,248,.7);
}
/* 右栏：参考图按内容自然增高；4 图版贴近左栏，5 图版允许随内容向下展开 */
.vid-shot-side > .vid-assets,
.vid-shot-side > .vid-assets.vid-assets-panel{
  flex:0 0 auto;
  min-height:0;
  height:auto;
  max-height:none;
  overflow:visible;
}
.vid-shot-side > .sb-refs{
  flex:1 1 auto;
}
@media (max-width:1200px){
  .vid-shot-top{grid-template-columns:1fr}
  .vid-shot-left,
  .vid-prompt-panel,
  #videoContainer .lib-slot.vid-shot-slot{grid-column:1;grid-row:auto}
}
.vid-shot-left{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:8px;
  container-type:inline-size;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px;
  background:rgba(255,255,255,.02);
}
.vid-shot-left .vid-shot-actions{
  margin:0;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}
.vid-shot-left .vid-segment-editor{
  margin-top:0;
  border:0;
  padding:0;
  background:transparent;
}
.vid-voice-editor{
  margin:0;
  padding:8px 10px;
  border:1px solid var(--line,#e5ddd2);
  border-radius:10px;
  background:rgba(255,255,255,.62);
  display:flex;
  flex-direction:column;
  gap:8px;
}
.vid-voice-hint{
  font-size:12px;
  line-height:1.45;
  color:var(--muted,#81786d);
}
.vid-voice-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  max-height:360px;
  overflow:auto;
}
.vid-voice-row{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:6px 8px;
  border:1px solid transparent;
  border-radius:8px;
  background:rgba(255,255,255,.45);
}
.vid-voice-row.is-speaking{
  border-color:#d8c4a4;
  background:#fffaf0;
}
.vid-voice-row-head{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.vid-voice-text{
  width:100%;
  min-height:64px;
  resize:vertical;
  font:inherit;
  font-size:12px;
  line-height:1.45;
  padding:6px 8px;
  border:1px solid var(--line,#e5ddd2);
  border-radius:8px;
  background:#fff;
}
.vid-shot-actions .vid-voices.is-on{
  border-color:#c9b08a;
  background:#fff6e8;
}
.vid-shot-left .vid-segment-list{margin-top:6px;gap:8px}
.vid-shot-left .vid-segment-row{
  grid-template-columns:58px 10px 58px 78px minmax(72px,.7fr);
  grid-template-rows:auto auto;
  gap:5px 6px;
}
.vid-shot-left .vid-segment-row.is-picture-locked{
  grid-template-columns:minmax(0,1fr) minmax(96px,132px);
}
.vid-shot-left .vid-seg-text{
  grid-column:1 / -1;
  width:100%;
  box-sizing:border-box;
  min-height:42px;
  resize:vertical;
  font:inherit;
  font-size:12px;
  line-height:1.45;
  padding:6px 8px;
  white-space:pre-wrap;
  word-break:break-word;
  overflow-y:auto;
}
.vid-shot-left .vid-seg-layout,
.vid-shot-left .vid-seg-add,
.vid-shot-left .vid-seg-save{width:100%}

/* 右栏：已选素材占满整列高度 */
.vid-assets,
.vid-assets.vid-assets-panel{
  margin:0;
  padding:10px 11px;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,255,255,.02);
  box-sizing:border-box;
  flex:1 1 auto;
  min-height:0;
  height:auto;
  display:flex;
  flex-direction:column;
}
.vid-assets-label{font-size:11px;font-weight:800;color:var(--muted);margin-bottom:8px;letter-spacing:.4px;flex:0 0 auto}
.vid-assets-row{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding-bottom:2px;
  overflow:visible;
  flex:0 0 auto;
  align-content:start;
  min-height:0;
}
/* 每一行 = 同一参考图：使用开关 | 横版 | 竖版；彩色框区分时段 */
.vid-asset{
  min-width:0;
  width:100%;
  display:flex;
  flex-direction:column;
  gap:2px;
  align-items:stretch;
  border:2px solid var(--vid-seg-color, var(--line));
  border-radius:12px;
  padding:6px;
  box-sizing:border-box;
  box-shadow:0 0 0 1px color-mix(in srgb, var(--vid-seg-color, transparent) 18%, transparent) inset;
  background:rgba(255,255,255,.02);
  transition:opacity .15s ease, filter .15s ease;
}
.vid-asset.is-unused{
  opacity:.55;
  filter:grayscale(.25);
}
.vid-asset.is-unused .vid-asset-main,
.vid-asset.is-unused .vid-asset-closeup{
  opacity:.85;
}
.vid-asset-pair{
  display:grid;
  grid-template-columns:auto minmax(0,256fr) minmax(0,81fr);
  align-items:start;
  gap:8px;
  min-width:0;
  width:100%;
}
/* 左侧「使用」开关 */
.vid-use-switch{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:4px;
  min-width:36px;
  padding-top:2px;
  cursor:pointer;
  user-select:none;
}
.vid-use-switch input{
  position:absolute;
  opacity:0;
  width:0;
  height:0;
  pointer-events:none;
}
.vid-use-track{
  position:relative;
  width:34px;
  height:18px;
  border-radius:999px;
  background:rgba(120,120,128,.35);
  border:1px solid var(--line);
  transition:background .15s ease;
  flex:0 0 auto;
}
.vid-use-track::after{
  content:"";
  position:absolute;
  top:1px;
  left:1px;
  width:14px;
  height:14px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 2px rgba(0,0,0,.2);
  transition:transform .15s ease;
}
.vid-use-switch input:checked + .vid-use-track{
  background:color-mix(in srgb, var(--vid-seg-color, #8d7cff) 75%, #22c55e);
  border-color:transparent;
}
.vid-use-switch input:checked + .vid-use-track::after{
  transform:translateX(16px);
}
.vid-use-text{
  font-size:10px;
  font-weight:800;
  color:var(--muted);
  letter-spacing:.2px;
  line-height:1;
}
.vid-use-switch input:checked ~ .vid-use-text{
  color:var(--vid-seg-color, var(--purple));
}
.vid-asset-main{
  min-width:0;
  display:flex;
  flex-direction:column;
}
.vid-asset.has-closeup .vid-asset-main{
  min-width:0;
}
.vid-asset-thumb{
  position:relative;
  height:auto;
  width:100%;
  border-radius:10px;
  overflow:hidden;
  border:1px solid var(--line);
  background:transparent;
  padding:0;
  cursor:pointer;
  display:block;
}
.vid-asset-main .vid-asset-thumb{
  background:transparent;
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:16/9;
  line-height:0;
}
.vid-asset-main .vid-asset-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:0;
  aspect-ratio:16/9;
  box-sizing:border-box;
  border:1px dashed color-mix(in srgb, var(--primary) 42%, var(--line));
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--primary) 16%, var(--panel2)),
      color-mix(in srgb, var(--purple) 10%, var(--panel2)));
  color:color-mix(in srgb, var(--text) 72%, var(--primary));
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 10%, transparent);
}
.vid-asset-main .vid-asset-thumb img,
.vid-asset-main .vid-asset-thumb .sb-ref-img{
  position:absolute;
  inset:0;
  height:100% !important;
  width:100% !important;
  max-width:100% !important;
  max-height:none;
  object-fit:cover !important;
  object-position:center center;
  display:block;
  aspect-ratio:auto;
  border-radius:0;
  background:transparent !important;
}
.vid-asset-thumb:hover{border-color:#8d7cff;box-shadow:0 0 0 2px rgba(141,124,255,.15)}
.vid-asset-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  color:var(--muted);
  width:100%;
  min-height:96px;
  aspect-ratio:16/9;
  background:rgba(128,128,128,.08);
}
.vid-asset-name{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  font-size:11px;
}
.vid-asset-name b{color:var(--purple)}
.vid-asset-preview{font-size:9px;color:#d97706;border:1px solid rgba(217,119,6,.4);border-radius:3px;padding:0 3px}
/* 竖版：与 16:9 同高，宽度按 9:16 跟随第 3 列 */
.vid-asset-closeup{
  position:relative;
  min-width:0;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:4px;
}
.vid-asset-closeup .vid-asset-thumb{
  position:relative;
  width:100%;
  height:auto;
  aspect-ratio:9/16;
  border-color:rgba(141,124,255,.5);
  display:block;
  background:transparent;
  line-height:0;
  overflow:hidden;
}
.vid-asset-closeup .vid-asset-thumb img,
.vid-asset-closeup .vid-asset-thumb .sb-ref-img{
  position:absolute;
  inset:0;
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:cover !important;
  object-position:center center;
  display:block;
  aspect-ratio:auto;
  border-radius:0;
  background:transparent !important;
}
.vid-asset-closeup-tag{
  position:static;
  display:block;
  width:100%;
  box-sizing:border-box;
  font-size:10px;
  font-weight:700;
  line-height:1.25;
  color:#fff;
  background:rgba(141,124,255,.92);
  border-radius:6px;
  padding:3px 5px;
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  pointer-events:none;
}
.vid-asset-closeup.is-legacy .vid-asset-closeup-tag{
  background:rgba(90,110,150,.88);
}

body[data-theme="light"] .vid-shot-left,
body[data-theme="light"] .vid-assets{background:rgba(0,0,0,.02)}
body[data-theme="light"] .vid-asset{background:rgba(255,255,255,.55)}
body[data-theme="light"] .vid-asset-thumb{background:transparent}
body[data-theme="light"] .vid-asset-empty{background:rgba(0,0,0,.04)}
body[data-theme="light"] .vid-asset-main .vid-asset-empty{
  border-color:color-mix(in srgb, var(--primary) 44%, var(--line));
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--primary) 12%, #fff),
      color-mix(in srgb, var(--purple) 8%, #fff));
  color:color-mix(in srgb, var(--text) 64%, var(--primary));
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 12%, transparent);
}

/* 已选素材缩略图：禁止深色填充底 */
.vid-assets .vid-asset-thumb,
.vid-assets .vid-asset-thumb img,
.vid-assets .sb-ref-img{
  background:transparent !important;
}
.vid-assets .vid-asset-main .vid-asset-empty{
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--primary) 16%, var(--panel2)),
      color-mix(in srgb, var(--purple) 10%, var(--panel2))) !important;
}
body[data-theme="light"] .vid-assets .vid-asset-main .vid-asset-empty{
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--primary) 12%, #fff),
      color-mix(in srgb, var(--purple) 8%, #fff)) !important;
}
.vid-asset:not(:has(.vid-asset-closeup)) .vid-asset-pair::after{
  content:"待生成";
  min-width:0;
  width:100%;
  aspect-ratio:9/16;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px dashed color-mix(in srgb, var(--purple) 48%, var(--line));
  border-radius:10px;
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--purple) 16%, var(--panel2)),
      color-mix(in srgb, var(--primary) 10%, var(--panel2)));
  color:color-mix(in srgb, var(--text) 70%, var(--purple));
  font-size:11px;
  line-height:1.2;
  text-align:center;
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--purple) 10%, transparent);
}
body[data-theme="light"] .vid-asset:not(:has(.vid-asset-closeup)) .vid-asset-pair::after{
  border-color:color-mix(in srgb, var(--purple) 48%, var(--line));
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--purple) 12%, #fff),
      color-mix(in srgb, var(--primary) 8%, #fff));
  color:color-mix(in srgb, var(--text) 64%, var(--purple));
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--purple) 12%, transparent);
}

@media (max-width:1100px){
  .vid-shot-body{grid-template-columns:1fr}
  .vid-shot-top{grid-template-columns:1fr}
  .vid-shot-side{min-height:0}
  .vid-shot-side > .vid-assets,
  .vid-shot-side > .vid-assets.vid-assets-panel{min-height:0;height:auto;max-height:none}
  .vid-assets,.vid-assets.vid-assets-panel{min-height:0;height:auto}
  /* 窄屏仍保持 1→2→3→4 纵列横栏；横竖图继续按 256:81 等高 */
  .vid-assets-row{max-width:440px}
}
@media (max-width:760px){
  .vid-assets-row{max-width:none}
}

/* 生成对话视频：选帧弹窗行 */
.modal-choice-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;background:rgba(255,255,255,.02)}
.modal-choice-row img{width:56px;height:100px;object-fit:cover;border-radius:7px;flex-shrink:0}
.modal-choice-row b{font-size:13px}
.modal-choice-row .muted{font-size:11px;line-height:1.4}
.modal-choice-row .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .modal-choice-row{background:rgba(0,0,0,.02)}

/* 说话近景卡位于左列（提示词下方，填满左侧空白）：横向布局，图左按钮右 */
/* 说话近景卡在右列（与分镜参考图同列，上下排列）：紧凑纵向，总高度与原始区域一致 */
#imagegenStoryboardView .frame-card .sb-closeup-block{margin:0;padding:7px 8px;min-height:100%;display:flex;flex-direction:column}
#imagegenStoryboardView .frame-card .sb-closeup-head{font-size:11px;margin-bottom:5px}
#imagegenStoryboardView .frame-card .sb-closeup-body{flex-direction:column;align-items:stretch;gap:6px;flex:1 1 auto}
#imagegenStoryboardView .frame-card .sb-closeup-media{width:100%;max-width:none;flex:1 1 auto;display:flex}
#imagegenStoryboardView .frame-card .sb-closeup-media .lib-img-card,
#imagegenStoryboardView .frame-card .sb-closeup-media .lib-img{width:100%;max-height:none;flex:1 1 auto}
#imagegenStoryboardView .frame-card .sb-closeup-media img{max-height:420px;object-fit:contain;width:100%;height:auto}
#imagegenStoryboardView .frame-card .sb-closeup-actions{flex-direction:row;flex-wrap:wrap;gap:5px;align-items:center;width:100%}
#imagegenStoryboardView .frame-card .sb-closeup-actions .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
#imagegenStoryboardView .frame-card .sb-closeup-empty{height:60px;font-size:11px}
#imagegenStoryboardView .frame-card .sb-frame-media .lib-img-card{max-height:none}
#imagegenStoryboardView .frame-card .sb-frame-media img{max-height:none;object-fit:contain;width:100%;height:100%}

/* 分镜参考图主图卡片内：图片历史/上传图片紧贴图片下方，避免被拉高后出现大块留白 */
#imagegenStoryboardView .frame-card .sb-frame-media{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-items:stretch;
  gap:6px;
  min-height:0;
  overflow:visible;
  border-radius:11px;
}
#imagegenStoryboardView .frame-card .sb-frame-media .lib-img-card{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  overflow:visible;
  min-height:0;
  gap:6px;
}
#imagegenStoryboardView .frame-card .sb-frame-media .lib-photo,
#imagegenStoryboardView .frame-card .sb-frame-media .lib-img-empty{
  width:100%;
  height:auto;
  min-height:0;
  max-height:none;
  aspect-ratio:16 / 9;
  object-fit:contain;
}
#imagegenStoryboardView .frame-card .sb-media-actions{
  display:flex;
  flex-direction:column;
  gap:5px;
  width:100%;
  margin-top:0;
  padding-top:6px;
  border-top:1px solid var(--line,rgba(120,150,210,.15));
  flex:0 0 auto;
}
#imagegenStoryboardView .frame-card .sb-media-actions .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
#imagegenStoryboardView .frame-card .sb-frame-media .lib-img-info{flex-shrink:0}

/* 分镜参考图头部：仅标题 + 时长；查看/编辑提示词 + 重新生成改到图片历史/上传下方 */
#imagegenStoryboardView .frame-card-head{flex-wrap:nowrap}
#imagegenStoryboardView .frame-card-head .grow{flex:1 1 auto;min-width:8px}
#imagegenStoryboardView .frame-card-head .muted{white-space:nowrap}
#imagegenStoryboardView .frame-card-head label.muted{display:flex;align-items:center;gap:4px;flex-shrink:0}
#imagegenStoryboardView .frame-card .sb-media-actions .btn.primary{background:var(--btn-primary-bg);color:var(--on-primary);border-color:transparent;box-shadow:none;text-shadow:none;}

/* 九宫格流：参考图置于横图上方，横图向左扩宽，竖图独立置于最右侧 */
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .lib-slot-body{
  grid-template-columns:minmax(260px, .62fr) minmax(720px, 1.38fr);
  align-items:start;
}
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .lib-slot-right{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(280px, 330px);
  grid-template-rows:auto auto;
  align-items:start;
  max-width:none;
  height:auto;
  min-height:0;
  gap:10px;
}
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .lib-slot-left{
  align-self:start;
  min-height:0;
  height:auto;
}
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .sb-prompt-preview{
  flex:0 1 auto;
  min-height:0;
  max-height:180px;
  overflow:auto;
}
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .sb-frame-ref-panel{
  grid-column:1;
  grid-row:1;
  min-width:0;
  align-self:start;
}
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .lib-slot-right > .sb-closeup-block{
  grid-column:2;
  grid-row:1 / span 2;
  width:auto;
  min-width:0;
  min-height:0;
  height:auto;
  align-self:stretch;
}
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .lib-slot-right > .sb-frame-media{
  grid-column:1;
  grid-row:2;
  width:auto;
  min-width:0;
  min-height:0;
  height:auto;
  align-self:start;
}
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .sb-closeup-body,
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .sb-closeup-media{
  flex:1 1 auto;
  min-height:0;
}
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .sb-closeup-block{
  height:100%;
  min-height:0;
  overflow:hidden;
}
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .sb-closeup-media{
  overflow:hidden;
  align-items:stretch;
}
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .sb-closeup-media .lib-img-card{
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  flex:1 1 auto;
  min-height:0;
  height:100%;
  align-items:stretch;
}
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .sb-closeup-media .lib-img-card .lib-photo{
  grid-row:1;
  width:auto;
  height:100%;
  max-width:100%;
  max-height:none;
  min-height:0;
  justify-self:center;
  object-fit:contain;
}
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .sb-closeup-media .lib-img-card .lib-img-info{
  grid-row:2;
  min-height:0;
}
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .sb-closeup-media .sb-closeup-empty{
  min-height:0;
  max-height:400px;
}
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .sb-frame-media img,
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .sb-frame-media .lib-photo,
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .sb-frame-media .lib-img-empty{
  min-height:0;
  max-height:none;
}
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .sb-closeup-empty{
  min-height:0;
  height: auto;
  font-size: 13px;
}
@media (max-width:1180px){
  #imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .lib-slot-body{grid-template-columns:1fr}
  #imagegenStoryboardView[data-sb-workflow="nine_grid"] .lib-slot-right{
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto;
    max-width:none;
  }
  #imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .lib-slot-left{
    width:100%;
  }
  #imagegenStoryboardView[data-sb-workflow="nine_grid"] .sb-frame-ref-panel,
  #imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .lib-slot-right > .sb-closeup-block,
  #imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .lib-slot-right > .sb-frame-media{
    grid-column:auto;
    grid-row:auto;
    width:100%;
    align-self:start;
  }
  #imagegenStoryboardView[data-sb-workflow="nine_grid"] .sb-frame-ref-panel{
    grid-column:1;
    grid-row:1;
  }
  #imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .lib-slot-right > .sb-frame-media{
    grid-column:1;
    grid-row:2;
  }
  #imagegenStoryboardView[data-sb-workflow="nine_grid"] .frame-card .lib-slot-right > .sb-closeup-block{
    grid-column:1;
    grid-row:3;
  }
}

/* 合并图片历史弹窗：近景图 + 分镜参考图两个分区 */
.modal-card-wide{max-width:680px}
.unified-sec{border:1px solid var(--line,rgba(120,150,210,.18));border-radius:12px;padding:10px 12px;margin-bottom:12px;background:rgba(255,255,255,.02)}
.unified-sec-head{font-size:12px;font-weight:800;margin-bottom:8px}
.unified-sec-grid{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto}
.unified-empty{font-size:12px;padding:10px;text-align:center}
.unified-item{display:flex;align-items:center;gap:10px;border:1px solid var(--line,rgba(120,150,210,.14));border-radius:10px;padding:7px 9px}
.unified-thumb{width:64px;height:86px;object-fit:cover;border-radius:7px;background:#0a0e16;flex-shrink:0}
.unified-thumb-ph{display:flex;align-items:center;justify-content:center;font-size:20px}
.unified-item-info{flex:1;min-width:0;font-size:11px;line-height:1.45}
.unified-item-info .badge{margin-top:3px}
.unified-item-actions{display:flex;gap:6px;flex-shrink:0}
body[data-theme="light"] .unified-thumb{background:#F4F0E7}

/* 图片仓库弹窗：tab 切换（角色近景图 / 分镜参考图） */
.unified-tabs{display:flex;gap:8px;padding:0 16px;margin-bottom:10px}
.unified-tab{flex:1;padding:8px 10px;border:1px solid var(--line,rgba(120,150,210,.25));border-radius:10px;background:rgba(255,255,255,.03);color:var(--muted);font-size:12px;font-weight:800;cursor:pointer;transition:background .12s,border-color .12s,color .12s}
.unified-tab:hover{color:var(--text);border-color:rgba(141,124,255,.4)}
.unified-tab.active{background:linear-gradient(180deg,rgba(128,111,255,.95),rgba(88,168,255,.88));border-color:transparent;color:#fff}
.unified-pane{display:none}
.unified-pane.active{display:block}
body[data-theme="light"] .unified-tab{background:rgba(0,0,0,.03)}
body[data-theme="light"] .unified-tab.active{background:linear-gradient(180deg,#8d7cff,#6a5cff);color:#fff}

/* 一次性编辑生成：关键帧分区线框配色（vot-seg 需要相对定位容纳分区标签） */
.vot-seg{position:relative}
.vot-seg-tag{position:absolute;top:-9px;left:8px;z-index:2;line-height:1.5}
#vidOneTimeStrip .vot-seg{width:auto;min-width:104px;max-width:150px;margin:6px 2px}
#vidOneTimeStrip .vot-seg .sb-ref-img{width:auto;height:88px;max-width:120px;border-radius:6px}
#vidOneTimeStrip .vot-seg .sb-ref-name{max-width:130px;white-space:normal;font-size:10px}

/* 已选素材条 · 图/视频切换预览 */
.frame-prev-stage{margin:0}
.frame-prev-media{width:100%;max-height:62vh;object-fit:contain;border-radius:12px;background:#05070d;display:block}
/* 选择视频弹窗：首帧缩略图 + 内嵌预览 */
.prev-vid-strip{display:flex;flex-wrap:wrap;gap:10px;padding-top:4px;max-height:42vh;overflow:auto}
.prev-vid-card{display:flex;flex-direction:column;align-items:stretch;gap:5px;width:92px}
.prev-vid-card .vid-thumb{position:relative;width:92px;height:128px;padding:0;overflow:hidden;border-radius:10px;background:#0b1020}
.prev-vid-card .vid-thumb-poster{width:100%;height:100%;object-fit:cover;display:block;background:#000}
.prev-vid-card .vid-thumb-play{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);width:28px;height:28px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;pointer-events:none}
.prev-vid-card .lib-thumb-model{position:absolute;left:0;right:0;bottom:0;padding:3px 4px;background:linear-gradient(transparent,rgba(0,0,0,.78));color:#fff;font-size:10px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prev-vid-card.is-preview .vid-thumb,.prev-vid-card.is-selected .vid-thumb{border-color:var(--purple);box-shadow:0 0 0 1px rgba(141,124,255,.45)}
.prev-vid-card .vid-pane-sel,.prev-vid-card .prev-vid-pick{width:100%}
.frame-prev-player{display:flex;flex-direction:column;gap:6px}
.frame-prev-empty{padding:28px 8px;text-align:center}
.frame-prev-meta{font-size:12px}

.prev-toggle{width:max-content}
.prev-pane[hidden]{display:none}

/* 单帧/对话视频生成确认弹窗：参数预览行 */
.confirm-shot-params{display:flex;flex-direction:column;gap:7px;border:1px solid var(--line,rgba(120,150,210,.2));border-radius:11px;padding:10px 12px;background:rgba(255,255,255,.02)}
.confirm-shot-row{display:flex;gap:10px;align-items:flex-start;font-size:12px}
.confirm-shot-label{flex-shrink:0;width:56px;color:var(--muted);font-weight:700}
.confirm-shot-thumb{width:56px;height:84px;object-fit:cover;border-radius:7px}
.confirm-shot-prompt{flex:1;min-width:0;word-break:break-all;line-height:1.5}
body[data-theme="light"] .confirm-shot-params{background:rgba(0,0,0,.02)}

/* 完整视频双比例预览：放在时间窗下方，横版占主宽、竖版保持 9:16 */
#videoContainer .lib-slot.vid-shot-slot{
  display:flex;
  flex-direction:column;
  gap:8px;
  grid-template-columns:none;
  padding:0;
  margin:0;
  border:0;
  width:100%;
  flex:0 0 auto;
  margin-top:auto;
}
#videoContainer .lib-slot.vid-shot-slot .lib-slot-actions{
  margin-top:0;
}
#videoContainer .vid-panes-row{
  display:grid;
  grid-template-columns:minmax(0,1.72fr) minmax(150px,.78fr);
  gap:8px;
  align-items:stretch;
  width:100%;
}
/* 旧模板的容器名保留为兼容选择器；新结果区不再生成其中的对话/单参考图卡片。 */
.vid-panes-portrait{
  display:contents;
}
.vid-pane{
  border:1px solid rgba(255,255,255,.07);
  border-radius:11px;
  background:rgba(255,255,255,.015);
  padding:8px;
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
  min-height:100%;
  box-sizing:border-box;
}
.vid-pane.is-portrait{max-width:none}
.vid-pane-title{
  font-size:11px;
  font-weight:850;
  color:var(--purple);
  letter-spacing:.2px;
  padding-bottom:5px;
  border-bottom:1px solid rgba(141,124,255,.18);
  line-height:1.3;
  text-transform:none;
}
.vid-pane .lib-img{
  min-height:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.vid-pane .lib-img-empty{
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  box-sizing:border-box;
}
.vid-pane.is-landscape .lib-media-open,
.vid-pane.is-landscape .lib-img-empty{
  aspect-ratio:16/9;
  width:100%;
  height:auto;
  max-height:none;
  border:1px dashed color-mix(in srgb, var(--primary) 42%, var(--line));
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--primary) 16%, var(--panel2)),
      color-mix(in srgb, var(--purple) 10%, var(--panel2)));
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 10%, transparent);
  color:color-mix(in srgb, var(--text) 72%, var(--primary));
}
.vid-pane.is-portrait .lib-media-open,
.vid-pane.is-portrait .lib-img-empty{
  aspect-ratio:9/16;
  width:100%;
  height:auto;
  max-height:none;
}
.vid-pane .lib-media-open{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  background:#000;
  overflow:hidden;
  border-radius:8px;
}
.vid-pane .lib-video{
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  display:block;
  margin:0 auto;
}
.vid-pane .vid-cell-meta{
  font-size:11px;
  line-height:1.3;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.vid-pane-strip{display:flex;flex-wrap:wrap;gap:6px;padding-top:2px}
.vid-pane .btn.cv-open-hist,
.vid-pane .btn.cv-open-shot-hist{
  background:var(--btn-bg);
  color:var(--btn-text);
  border:1px solid var(--btn-border);
  border-radius:var(--radius-btn);
  box-shadow:none;
  text-shadow:none;
  filter:none;
}
.vid-pane.is-landscape .vid-full-history{
  margin-top:auto;
  align-self:stretch;
}
.vid-pane-sel{font-size:9px;margin-left:auto}
body[data-theme="light"] .vid-pane{
  border-color:rgba(203,185,168,.55);
  background:rgba(255,255,255,.55);
}
body[data-theme="light"] .vid-pane.is-landscape .lib-img-empty{
  border-color:color-mix(in srgb, var(--primary) 44%, var(--line));
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--primary) 12%, #fff),
      color-mix(in srgb, var(--purple) 8%, #fff));
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 12%, transparent);
  color:color-mix(in srgb, var(--text) 64%, var(--primary));
}
@container (max-width:420px){
  #videoContainer .vid-panes-row{grid-template-columns:minmax(0,1fr)}
  .vid-pane.is-landscape .vid-full-history{margin-top:0}
}
@media (max-width:640px){
  #videoContainer .vid-panes-row{grid-template-columns:minmax(0,1fr)}
  .vid-pane{min-height:0}
  .vid-pane.is-landscape .vid-full-history{margin-top:0}
}


/* ===== 剪辑合成 · LosslessCut 式编辑器 ===== */
.work-modal-panel.is-cut-editor{
  width:calc(100vw - 48px);
  max-width:calc(100vw - 48px);
  height:97vh;
  max-height:97vh;
  border-radius:10px;
  display:flex;
  flex-direction:column;
}
.work-modal-panel.is-cut-editor #workModalBody{
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
}
.lc-root{display:flex;flex-direction:column;min-height:0;height:100%;gap:8px;padding:2px 4px 6px;overflow:hidden}
.lc-loading,.lc-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted,#888)}
.lc-empty .btn{margin-top:6px}

/* 主区：预览 / 控制 / 片段 / 时间线（时间线收入主网格，不再垫在弹窗底） */
.lc-main{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:minmax(0,1fr) minmax(160px,auto) auto;
  grid-template-areas:
    "player"
    "timeline"
    "bottom";
  gap:12px;
  flex:1 1 auto;
  min-height:0;
  height:100%;
  overflow:hidden;
}
.lc-player-col{grid-area:player;display:flex;flex-direction:column;gap:6px;min-width:0;min-height:0;height:100%;justify-content:space-between}
.lc-player-frame{position:relative;background:#000;border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:center;flex:1 1 auto;max-height:calc(100% - 88px);aspect-ratio:var(--lc-aspect,9/16);max-width:min(44vh*9/16,420px);margin:0 auto}
.lc-player-frame .lc-video{width:100%;height:100%;object-fit:contain;background:#000;transition:transform .2s ease;transform-origin:center center}
.lc-overlay-stage{position:absolute;inset:0;z-index:2;pointer-events:none;background:#000}
.lc-overlay-stage[hidden]{display:none!important}
.lc-overlay-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;opacity:0;visibility:hidden;transition:transform .2s ease;transform-origin:center center}
.lc-overlay-video.is-on{opacity:1;visibility:visible;z-index:1}
.lc-player-mock{color:#9aa4b2;font-size:26px;display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px;text-align:center}
.lc-player-mock p{font-size:12px;margin:0;color:#6b7482}
.lc-playhead-tag{position:absolute;top:6px;left:6px;z-index:3;background:rgba(0,0,0,.62);color:#e8ecf3;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;padding:2px 8px;border-radius:6px;pointer-events:none}
.lc-player-ctrls{display:flex;flex-direction:column;gap:6px;min-width:0}

/* 竖屏：预览占左列，时间线上移填控制区下方空白 */
.lc-root.is-portrait .lc-main{
  grid-template-columns:auto minmax(0,1fr);
  grid-template-rows:auto minmax(160px,1fr) auto;
  grid-template-areas:
    "video ctrls"
    "video timeline"
    "video bottom";
}
.lc-root.is-portrait .lc-player-col{display:contents}
.lc-root.is-portrait .lc-player-frame{
  grid-area:video;
  flex:none;
  height:100%;
  max-height:100%;
  width:auto;
  min-width:0;
  min-height:0;
  max-width:none;
  aspect-ratio:var(--lc-aspect,9/16);
  margin:0;
  align-self:stretch;
  justify-self:start;
}
.lc-root.is-portrait .lc-player-ctrls{
  grid-area:ctrls;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  gap:8px;
  justify-content:flex-start;
  min-width:0;
  min-height:0;
  overflow-y:auto;
  padding-right:2px;
  align-self:start;
}
.lc-root.is-portrait .lc-transport{background:var(--bg-card,rgba(0,0,0,.02));padding:6px 8px;border-radius:8px;border:1px solid var(--line,rgba(0,0,0,.08))}
.lc-root.is-portrait .lc-timeline-area{height:auto;min-height:240px;align-self:stretch}
.lc-root.has-overlay-track .lc-timeline-area{height:360px;min-height:360px}
.lc-root.has-extra-track .lc-timeline-area{height:400px;min-height:400px}
.lc-root.has-overlay-track.has-extra-track .lc-timeline-area{height:456px;min-height:456px}
.lc-root.is-portrait.has-overlay-track .lc-timeline-area{height:auto;min-height:320px}
.lc-root.is-portrait.has-extra-track .lc-timeline-area{height:auto;min-height:360px}
.lc-root.is-portrait.has-overlay-track.has-extra-track .lc-timeline-area{height:auto;min-height:416px}

.lc-transport{display:flex;align-items:center;gap:4px;flex-wrap:wrap;flex:0 0 auto;background:rgba(255,255,255,.03);padding:4px 6px;border-radius:8px;border:1px solid var(--line,rgba(255,255,255,.08))}
.lc-transport .btn{padding:4px 7px;font-size:11px;height:26px;line-height:1}
.lc-clock{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:var(--text,#222);padding:0 3px;white-space:nowrap}
.lc-in,.lc-out{font-family:ui-monospace,Menlo,Consolas,monospace}
.lc-mode-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;flex:0 0 auto}
.lc-mode-group{display:inline-flex;border:1px solid var(--line,#d8dee9);border-radius:6px;overflow:hidden}
.lc-mode-item{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;cursor:pointer;font-size:11px;border-right:1px solid var(--line,#d8dee9);background:var(--btn-bg,transparent)}
.lc-mode-item:last-child{border-right:0}
.lc-mode-item.is-on{background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--primary);font-weight:600}
.lc-mode-item input{display:none}
.lc-track-audio{display:inline-flex;align-items:center;gap:4px}
.lc-narration-track{max-width:200px;font-size:11px;height:24px}
.lc-mode-hint{font-size:10px;color:var(--muted,#76808e);line-height:1.3}

/* 片段检查器 (Segment Inspector) */
.lc-inspector-card{background:var(--bg-card,rgba(0,0,0,.02));border:1px solid var(--line,rgba(0,0,0,.09));border-radius:9px;padding:8px 10px;display:flex;flex-direction:column;gap:8px}
.lc-inspector-empty{padding:12px;text-align:center;font-size:11px}
.lc-inspector-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.lc-inspector-title{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0}
.lc-inspector-name-wrap{flex:1 1 auto;max-width:220px;min-width:110px}
.lc-inspector-input{height:24px;font-size:11px;padding:2px 7px;width:100%;border-radius:5px}
.lc-inspector-dur{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;font-weight:700;border:1px solid currentColor;border-radius:4px;padding:1px 6px}
.lc-inspector-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.lc-inspector-btn{height:24px;font-size:11px;padding:2px 8px;border-radius:5px}
.lc-inspector-body{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:var(--bg,#fff);padding:7px 10px;border-radius:7px;border:1px solid var(--line,rgba(0,0,0,.06))}
.lc-inspector-col{display:flex;flex-direction:column;gap:5px;min-width:0}
.lc-inspector-col-head{display:flex;align-items:center;gap:8px;justify-content:space-between}
.lc-inspector-col-label{font-size:11px;font-weight:600;color:var(--muted,#64748b)}
.lc-inspector-time{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;color:var(--text,#1e293b);letter-spacing:-0.2px}
.lc-inspector-jump-btn{height:20px;font-size:10px;padding:1px 6px;border-radius:4px;line-height:1}
.lc-steppers{display:flex;align-items:center;gap:3px;flex-wrap:wrap}
.lc-step-btn{font-family:ui-monospace,Menlo,Consolas,monospace;height:22px;font-size:10px;padding:1px 6px;border-radius:4px;line-height:1}

/* 媒体属性概览与快捷键面板 */
.lc-info-row{display:grid;grid-template-columns:minmax(280px,1.15fr) minmax(360px,1.85fr);gap:10px;flex:0 0 auto}
@media (max-width:980px){
  .lc-info-row{grid-template-columns:1fr}
}
.lc-info-card{background:var(--bg-card,rgba(0,0,0,.015));border:1px solid var(--line,rgba(0,0,0,.08));border-radius:8px;padding:8px 12px;display:flex;flex-direction:column;gap:6px}
.lc-info-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.lc-info-card-title{font-size:11px;font-weight:700;color:var(--text,#1e293b);display:flex;align-items:center;gap:4px}
.lc-info-card-badge .badge{font-size:10px;padding:1px 6px}
.lc-specs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:5px 10px;font-size:11px}
.lc-spec-item{display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lc-spec-item .muted{font-size:10px;color:var(--muted,#64748b)}
.lc-spec-item b{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:var(--text,#1e293b)}
.lc-shortcuts-tip{font-size:10px;color:var(--muted,#64748b)}
.lc-shortcuts-columns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 10px}
@media (max-width:820px){
  .lc-shortcuts-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.lc-shortcut-group{display:flex;flex-direction:column;gap:3px;min-width:0}
.lc-shortcut-group-title{font-size:10px;font-weight:700;color:var(--muted,#475569);margin-bottom:1px;padding-bottom:2px;border-bottom:1px solid var(--line,rgba(0,0,0,.06))}
.lc-key-item{display:flex;align-items:center;gap:4px;font-size:10px;white-space:nowrap}
.lc-key-item kbd{background:var(--btn-bg,rgba(0,0,0,.06));border:1px solid var(--line,rgba(0,0,0,.15));border-radius:3px;padding:1px 4px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10px;color:var(--text,#1e293b);line-height:1.2;font-weight:600}
.lc-key-item span{color:var(--muted,#64748b);font-size:10px}

/* 侧栏 */
.lc-side-col{grid-area:side;display:flex;flex-direction:column;gap:6px;min-height:0;height:auto;max-height:100%;align-self:start;overflow:auto;border:1px solid var(--line,#e3e8f0);border-radius:10px;padding:8px 10px;background:var(--bg,#fff)}
.lc-side-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.lc-side-head b{font-size:12px}
.lc-side-head .muted{font-size:11px}
.lc-segments{flex:0 1 auto;overflow-y:auto;min-height:60px;max-height:min(36vh,380px);display:flex;flex-direction:column;gap:5px}
.lc-seg-row{display:flex;flex-direction:column;gap:6px;padding:7px 9px;border:1px solid var(--line,#e3e8f0);border-left:3px solid var(--seg-color,var(--primary));border-radius:8px;background:var(--btn-bg,transparent);cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}
.lc-seg-row:hover{border-color:color-mix(in srgb,var(--seg-color,var(--primary)) 60%,var(--line,#e3e8f0))}
.lc-seg-row.is-selected{border-color:var(--seg-color,var(--primary));border-left-width:4px;background:var(--seg-bg,color-mix(in srgb,var(--primary) 8%,transparent));box-shadow:0 1px 4px rgba(0,0,0,.06)}
.lc-seg-card-head{display:flex;align-items:center;justify-content:space-between;gap:6px}
.lc-seg-card-title{display:flex;align-items:center;gap:6px;min-width:0}
.lc-seg-no{flex:0 0 auto;min-width:18px;height:18px;padding:0 4px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}
.lc-seg-name{font-size:12px;font-weight:600;color:var(--text,#1f2328);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lc-seg-dur{font-size:11px;color:var(--muted,#76808e);font-family:ui-monospace,Menlo,Consolas,monospace;background:rgba(127,127,127,.08);padding:1px 5px;border-radius:4px;white-space:nowrap}
.lc-seg-head-ops{display:flex;align-items:center;gap:3px;flex:0 0 auto}
.lc-seg-head-ops .btn{padding:2px 6px;font-size:11px;height:22px;line-height:1}
.lc-seg-card-body{display:flex;align-items:center;justify-content:space-between;gap:4px}
.lc-seg-time-cell{display:inline-flex;align-items:center;gap:3px;background:rgba(127,127,127,.06);padding:2px 4px;border-radius:5px}
.lc-seg-time-val{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:var(--text,#222);letter-spacing:-0.2px}
.lc-seg-time-cell .btn{padding:1px 4px;font-size:10px;height:18px;line-height:1;border-radius:3px}
.lc-seg-arrow{color:var(--muted,#9aa4b2);font-size:11px;flex:0 0 auto}
.lc-seg-extra-ops{display:flex;align-items:center;gap:3px;margin-left:auto}
.lc-seg-extra-ops .btn{padding:2px 5px;font-size:11px;height:22px;line-height:1}
.lc-track-row{position:relative;width:100%;min-width:100%;box-sizing:border-box}
.lc-track-row-video{min-height:56px;height:56px}
.lc-track-row-video.is-decorated{min-height:56px;height:56px}
.lc-track-row-overlay{min-height:56px;height:56px}
.lc-track-row-narr{min-height:56px;height:56px}
.lc-track-row-extra{min-height:56px;height:56px}
.lc-track-main{width:100%;min-width:100%;height:100%;position:relative}
.lc-track-aside{display:flex;align-items:center;flex-wrap:nowrap;gap:4px;background:var(--bg-card,rgba(255,255,255,.94));border:1px solid var(--line,rgba(0,0,0,.08));border-radius:6px;padding:2px 5px;box-sizing:border-box;pointer-events:auto;min-width:0;width:100%}
.lc-track-name{display:none}
.lc-track-audio-ctrls{display:flex;align-items:center;gap:6px}
.lc-track-mute-btn{padding:1px 4px;height:20px;font-size:10px;border-radius:4px;line-height:1;flex:0 0 auto;white-space:nowrap}
.lc-track-mute-btn.is-muted{background:rgba(207,34,46,.12);border-color:rgba(207,34,46,.4);color:#cf222e}
.lc-track-vol-slider{height:12px;accent-color:var(--primary);cursor:pointer;flex:1 1 36px;min-width:32px;max-width:80px}
.lc-track-vol-text{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10px;color:var(--muted,#76808e);min-width:38px;flex:0 0 auto;text-align:right}
.lc-speed-chips{display:inline-flex;align-items:center;flex:0 0 auto;width:auto}
.lc-speed-chip{padding:0 4px;height:16px;font-size:9px;line-height:1;border-radius:3px}
.lc-speed-chip.is-active{background:color-mix(in srgb,var(--primary) 16%,transparent);color:var(--primary);font-weight:700;border-color:var(--primary)}
select.lc-speed-select{height:20px;font-size:10px;line-height:1;padding:1px 3px;border-radius:4px;border:1px solid var(--line,#d8dee9);background:var(--bg,#fff);color:var(--fg,#1f2328);cursor:pointer;flex:0 0 auto;min-width:42px;max-width:50px}
select.lc-speed-select:disabled{opacity:.5;cursor:not-allowed}
.lc-mixer-row.is-clip-bound{outline:1px solid color-mix(in srgb,var(--primary) 45%,transparent)}
.lc-track-solo-group{display:inline-flex;border:1px solid var(--line,#d8dee9);border-radius:4px;overflow:hidden;margin-left:0;flex:0 0 auto}
.lc-solo-btn{padding:1px 3px;height:20px;font-size:10px;border-radius:0;border:0;border-right:1px solid var(--line,#d8dee9);background:transparent}
.lc-solo-btn:last-child{border-right:0}
.lc-solo-btn.is-active{background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--primary);font-weight:700}
.lc-track-label{font-size:10px;font-weight:600;color:var(--muted,#76808e);margin:4px 0 1px 2px;letter-spacing:0.2px}
.lc-audio-lane-wrap{display:flex;flex-direction:column;gap:2px;width:100%;min-width:100%}
.lc-audio-lane{position:relative;height:56px;width:100%;min-width:100%;border-radius:6px;background:rgba(130,80,223,.06);border:1px dashed rgba(130,80,223,.3);display:flex;align-items:center;overflow:hidden;box-sizing:border-box}
.lc-audio-empty{font-size:11px;color:var(--muted,#8a93a3);padding-left:8px}
.lc-audio-clip{position:absolute;top:2px;bottom:2px;z-index:2;background:linear-gradient(180deg,rgba(130,80,223,.24),rgba(130,80,223,.12));border:1px solid rgba(130,80,223,.6);border-radius:5px;display:flex;flex-direction:column;justify-content:center;padding:0 8px;cursor:grab;overflow:hidden;backdrop-filter:blur(2px);user-select:none;box-sizing:border-box;transition:box-shadow .15s, border-color .15s}
.lc-audio-clip:hover{border-color:rgba(130,80,223,.9);box-shadow:0 1px 6px rgba(130,80,223,.2)}
.lc-audio-clip.is-dragging{cursor:grabbing;border-color:#8250df;box-shadow:0 3px 12px rgba(130,80,223,.4);z-index:4}
.lc-audio-clip-head{display:flex;align-items:center;gap:6px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;position:relative;z-index:2}
.lc-audio-drag-handle{font-size:11px;color:rgba(130,80,223,.8);margin-right:2px}
.lc-audio-icon{font-size:12px}
.lc-audio-title{font-weight:600;color:#8250df}
.lc-audio-dur{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10px;color:var(--muted,#76808e);background:rgba(255,255,255,.5);padding:0 4px;border-radius:3px}
.lc-audio-accel-badge{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10px;color:#cf222e;background:rgba(207,34,46,.12);border:1px solid rgba(207,34,46,.25);padding:1px 5px;border-radius:4px;font-weight:700;letter-spacing:-0.2px}
.lc-audio-clip.is-accelerated{background:linear-gradient(180deg,rgba(207,34,46,.18),rgba(130,80,223,.15));border-color:rgba(207,34,46,.5)}
.lc-audio-time-badge{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10px;color:#8250df;background:rgba(130,80,223,.15);padding:0 5px;border-radius:3px;font-weight:600;margin-left:auto}
.lc-audio-wave-sub{position:absolute;inset:0;pointer-events:none;opacity:0.25}
.lc-clip-wave{position:absolute;left:0;right:0;top:0;bottom:0;width:100%;height:100%;min-height:36px;pointer-events:none;opacity:.92;z-index:1}
.lc-clip-thumbs{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:.55}
.lc-clip-thumbs img{position:absolute;top:0;height:100%;object-fit:cover;pointer-events:none}
.lc-audio-clip.is-clip-selected,.lc-extra-clip.is-clip-selected,.lc-overlay-clip.is-clip-selected{outline:2px solid var(--primary);outline-offset:0;z-index:5}
.lc-audio-clip.is-muted,.lc-extra-clip.is-muted,.lc-overlay-clip.is-muted{opacity:.62;filter:grayscale(.15)}
.lc-extra-lane{background:rgba(217,119,6,.06);border-color:rgba(217,119,6,.32)}
.lc-extra-clip{position:absolute;top:2px;bottom:2px;z-index:2;background:linear-gradient(180deg,rgba(217,119,6,.28),rgba(217,119,6,.12));border:1px solid rgba(217,119,6,.62);border-radius:5px;display:flex;flex-direction:column;justify-content:center;padding:0 8px;cursor:grab;overflow:hidden;backdrop-filter:blur(2px);user-select:none;box-sizing:border-box;transition:box-shadow .15s,border-color .15s}
.lc-extra-clip:hover{border-color:rgba(217,119,6,.95);box-shadow:0 1px 6px rgba(217,119,6,.22)}
.lc-extra-clip.is-dragging{cursor:grabbing;border-color:#d97706;box-shadow:0 3px 12px rgba(217,119,6,.4);z-index:4}
.lc-extra-clip .lc-audio-title{color:#b45309}
.lc-extra-clip .lc-audio-time-badge{color:#b45309;background:rgba(217,119,6,.16)}
.lc-extra-clip .lc-audio-drag-handle{color:rgba(180,83,9,.8)}
.lc-extra-clip.is-accelerated{background:linear-gradient(180deg,rgba(207,34,46,.18),rgba(217,119,6,.15));border-color:rgba(207,34,46,.5)}

.lc-hairline{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed #0969da;pointer-events:none;z-index:6}
.lc-hairline-tag{position:absolute;top:2px;left:4px;background:#0969da;color:#fff;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10px;padding:1px 4px;border-radius:3px;white-space:nowrap}

.lc-rate-select{height:28px;font-size:11px;padding:2px 6px;border-radius:6px}
.lc-loop-seg.is-active{background:color-mix(in srgb,var(--primary) 18%,transparent);color:var(--primary);font-weight:600;border-color:var(--primary)}
.lc-rotate.is-active{background:color-mix(in srgb,var(--primary) 18%,transparent);color:var(--primary);font-weight:600;border-color:var(--primary)}
.lc-flip.is-active{background:color-mix(in srgb,var(--primary) 18%,transparent);color:var(--primary);font-weight:600;border-color:var(--primary)}
.lc-del-cur{border-color:rgba(207,34,46,.4)!important;color:#cf222e!important}
.lc-del-cur:hover{background:rgba(207,34,46,.1)!important}

.lc-side-actions{display:flex;flex-wrap:wrap;gap:6px}
.lc-side-actions .btn{font-size:11px;padding:5px 8px}
.lc-per-seg-result{border:1px solid var(--green,#3aa675);border-radius:8px;padding:8px;font-size:12px;margin-bottom:8px}
.lc-per-seg-result ul{margin:6px 0 0;padding-left:18px}
.lc-log summary{cursor:pointer;font-size:12px;color:var(--muted,#76808e)}
.lc-log-body{max-height:160px;overflow:auto;font-size:11px;display:flex;flex-direction:column;gap:6px;padding-top:6px}
.lc-log-item{display:flex;flex-direction:column;gap:2px;border-bottom:1px dashed var(--line,#e3e8f0);padding-bottom:4px}
.lc-log-item code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10px;word-break:break-all;background:rgba(127,127,127,.08);padding:2px 4px;border-radius:4px}

/* 时间线 */
.lc-timeline-area{grid-area:timeline;flex:0 0 auto;height:280px;min-height:280px;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 268px;overflow:hidden;border:1px solid var(--line,#e3e8f0);border-radius:8px;background:var(--bg,#fff)}
.lc-timeline-scroll{min-width:0;height:100%;overflow-x:auto;overflow-y:hidden;padding:4px 16px;box-sizing:border-box}
.lc-timeline-mixer{min-width:0;width:268px;border-left:1px solid var(--line,#e3e8f0);padding:4px 6px;display:flex;flex-direction:column;gap:3px;background:var(--bg-card,rgba(255,255,255,.96));box-sizing:border-box;overflow-x:hidden;overflow-y:auto}
.lc-mixer-ruler{height:20px;flex:0 0 auto}
.lc-mixer-row{flex:0 0 auto;white-space:normal;overflow:visible;height:auto}
.lc-mixer-row-overlay{min-height:56px}
.lc-mixer-row-video{min-height:56px}
.lc-mixer-row-video.is-decorated{min-height:56px}
.lc-mixer-row-narr{min-height:56px}
.lc-mixer-row-extra{min-height:56px}
.lc-mixer-audio-wrap{display:flex;flex-direction:column;gap:2px;width:100%}
.lc-timeline{position:relative;height:100%;min-height:140px;width:100%;min-width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:3px;padding:0;touch-action:pan-x;cursor:ew-resize}
.lc-overlay-lane{position:relative;height:56px;width:100%;min-width:100%;border-radius:6px;background:rgba(8,145,178,.06);border:1px dashed rgba(8,145,178,.35);display:flex;align-items:center;overflow:hidden;box-sizing:border-box}
.lc-overlay-empty{font-size:11px;color:var(--muted,#8a93a3);padding-left:8px;pointer-events:none}
.lc-overlay-clip{position:absolute;top:2px;bottom:2px;background:linear-gradient(180deg,rgba(8,145,178,.88),rgba(8,145,178,.62));border:1px solid rgba(8,145,178,.72);border-radius:6px;display:flex;align-items:center;overflow:hidden;cursor:grab;user-select:none;box-sizing:border-box;z-index:2}
.lc-overlay-clip:hover{border-color:#22d3ee;box-shadow:0 1px 8px rgba(8,145,178,.35)}
.lc-overlay-clip.is-dragging{cursor:grabbing;z-index:5;box-shadow:0 3px 12px rgba(8,145,178,.5)}
.lc-overlay-clip.is-active{outline:2px solid #22d3ee;outline-offset:0;box-shadow:0 2px 8px rgba(8,145,178,.35)}
.lc-overlay-label{font-size:10px;color:#fff;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.5);overflow:hidden;text-overflow:ellipsis;max-width:100%;padding:0 8px;pointer-events:none;position:relative;z-index:2}
.lc-overlay-clip.is-accelerated{background:linear-gradient(180deg,rgba(207,34,46,.82),rgba(8,145,178,.62));border-color:rgba(207,34,46,.7)}
.lc-overlay-accel-badge{margin-right:6px;flex:0 0 auto}
.lc-ruler{position:relative;height:20px;flex:0 0 auto;cursor:pointer}
.lc-tick{position:absolute;top:0;bottom:0;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10px;color:var(--muted,#8a93a3);padding-left:4px;border-left:1px solid var(--line,#dfe4ec);white-space:nowrap}
.lc-tick i{display:none}
.lc-thumbs{position:absolute;left:0;top:0;bottom:0;right:auto;width:auto;z-index:1;overflow:hidden;border-radius:6px;background:#181a1f;min-height:0;height:auto;max-width:none;pointer-events:none}
.lc-thumbs[hidden]{display:none!important}
.lc-thumbs img{position:absolute;top:0;height:100%;object-fit:cover;border-radius:2px;pointer-events:none;background:#242831;transition:opacity .2s ease}
.lc-thumbs img.is-broken{opacity:0!important;visibility:hidden}
.lc-thumbs-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#8a93a3;font-size:11px;overflow:hidden;background:#181a1f;gap:6px}
.lc-thumbs-shimmer{position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);animation:lc-shimmer 1.6s infinite}
@keyframes lc-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.lc-wave-wrap{position:absolute;inset:0;z-index:2;max-width:none;height:auto;pointer-events:none}
.lc-wave{display:block;height:100%;border-radius:5px;background:transparent;cursor:ew-resize}
.lc-wave-label{display:none}
.lc-kf-row{position:absolute;top:0;left:0;right:0;height:12px;z-index:4;flex:none;cursor:pointer;pointer-events:none}
.lc-kf{position:absolute;top:1px;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:7px solid color-mix(in srgb,var(--primary) 70%,transparent);transform:translateX(-4px);cursor:pointer;pointer-events:auto}
.lc-track{position:relative;flex:0 0 auto;min-height:34px;height:34px;border-radius:6px;background:rgba(127,127,127,.06);border:1px dashed var(--line,#dfe4ec);cursor:ew-resize}
.lc-track.is-decorated{min-height:56px;height:56px;background:transparent}
.lc-seg-layer{position:absolute;inset:0;z-index:3}
.lc-track-base{position:absolute;top:0;bottom:0;left:0;background:transparent;pointer-events:none}
.lc-seg{position:absolute;top:3px;bottom:3px;background:linear-gradient(180deg,color-mix(in srgb,var(--seg-color,var(--green,#3aa675)) 46%,transparent),color-mix(in srgb,var(--seg-color,var(--green,#3aa675)) 22%,transparent));border:1.5px solid color-mix(in srgb,var(--seg-color,var(--green,#3aa675)) 78%,#000);border-radius:6px;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.lc-track:not(.is-decorated) .lc-seg{background:linear-gradient(180deg,color-mix(in srgb,var(--seg-color,var(--green,#3aa675)) 85%,#fff),color-mix(in srgb,var(--seg-color,var(--green,#3aa675)) 70%,#1a1a1a))}
.lc-track.is-decorated .lc-seg{top:0;bottom:0}
.lc-seg.is-selected{outline:2px solid var(--primary);outline-offset:1px;box-shadow:0 2px 10px rgba(0,0,0,.25)}
.lc-seg-label{font-size:10px;color:#fff;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.5);overflow:hidden;text-overflow:ellipsis;max-width:100%;padding:0 8px;pointer-events:none}
.lc-seg-handle,.lc-clip-handle{position:absolute;top:0;bottom:0;width:9px;cursor:ew-resize;background:rgba(255,255,255,.35);border-radius:4px;z-index:3}
.lc-seg-handle[data-edge="start"],.lc-clip-handle[data-edge="start"]{left:-1px}
.lc-seg-handle[data-edge="end"],.lc-clip-handle[data-edge="end"]{right:-1px}
.lc-seg-handle:hover,.lc-clip-handle:hover{background:rgba(255,255,255,.7)}
.lc-audio-clip .lc-clip-handle,.lc-extra-clip .lc-clip-handle{background:rgba(255,255,255,.55)}
.lc-overlay-clip .lc-clip-handle{background:rgba(255,255,255,.42)}
.lc-det{position:absolute;top:0;bottom:0;background:rgba(214,69,69,.25);border-left:1px solid rgba(214,69,69,.6);border-right:1px solid rgba(214,69,69,.6);cursor:copy}
.lc-det-scene{background:rgba(214,146,69,.22);border-color:rgba(214,146,69,.6)}
.lc-det-black{background:rgba(40,40,40,.4);border-color:rgba(40,40,40,.8)}
.lc-ghost{position:absolute;top:4px;bottom:4px;background:rgba(58,166,117,.35);border:1px dashed var(--green,#3aa675);border-radius:7px;pointer-events:none}
.lc-playhead{position:absolute;top:0;bottom:0;width:0;border-left:2px solid #ff5252;pointer-events:none;z-index:5}
.lc-playhead-grip{position:absolute;top:0;left:-7px;width:16px;height:16px;border-radius:4px;background:#ff5252;pointer-events:auto;cursor:ew-resize;clip-path:polygon(0 0,100% 0,100% 40%,50% 100%,0 40%)}
.lc-point{position:absolute;top:0;bottom:0;width:2px;z-index:4;pointer-events:none}
.lc-point-in{background:#ffb02e}
.lc-point-out{background:#7c9cff}

/* 底部操作条 */
.lc-bottom{grid-area:bottom;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;flex:0 0 auto;min-width:0;padding-top:2px}
.lc-zoom{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.lc-zoom .btn{padding:4px 10px}
.lc-toggle{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted,#76808e)}
.lc-bottom-modes{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px}
.lc-bottom-modes .lc-mode-group{display:inline-flex;border:1px solid var(--line,#d8dee9);border-radius:6px;overflow:hidden}
.lc-bottom-modes .lc-mode-item{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;cursor:pointer;font-size:11px;border-right:1px solid var(--line,#d8dee9);background:var(--btn-bg,transparent)}
.lc-bottom-modes .lc-mode-item:last-child{border-right:0}
.lc-bottom-modes .lc-mode-item.is-on{background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--primary);font-weight:600}
.lc-bottom-modes .lc-mode-item input{display:none}
.lc-bottom-modes .lc-track-audio{display:inline-flex;align-items:center;gap:4px}
.lc-bottom-modes .lc-narration-track{max-width:180px;font-size:11px;height:24px}
.lc-bottom-modes .lc-lossless-badge{font-size:11px;padding:2px 7px}
.lc-bottom-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.lc-bottom-actions .btn{font-size:12px;padding:7px 12px}

/* 剪辑合成 · 左侧素材选择库 */
.lc-main.has-asset-lib{
  grid-template-columns: 260px minmax(0,1fr);
  grid-template-areas:
    "assets player"
    "assets timeline"
    "assets bottom";
}
.lc-root.is-portrait .lc-main.has-asset-lib{
  grid-template-columns: 240px auto minmax(0,1fr);
  grid-template-areas:
    "assets video ctrls"
    "assets video timeline"
    "assets video bottom";
}
.lc-asset-lib-col{
  grid-area: assets;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 0;
  height: 100%;
  border: 1px solid var(--line, #e3e8f0);
  border-radius: 10px;
  padding: 8px 10px;
  background: var(--bg, #fff);
  overflow: hidden;
}
.lc-asset-lib-head{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px;
  flex: 0 0 auto;
  border-bottom: 1px solid var(--line, #e3e8f0);
  padding-bottom: 6px;
}
.lc-asset-lib-head b{
  font-size: 12px;
  font-weight: 700;
}
.lc-asset-lib-body{
  flex: 1 1 auto;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-right: 2px;
}
.lc-al-shot-group{
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: var(--bg-card, rgba(0,0,0,.02));
  border: 1px solid var(--line, rgba(0,0,0,.06));
  border-radius: 8px;
  padding: 6px 8px;
}
.lc-al-shot-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11px;
}
.lc-al-shot-title{
  color: var(--text, #1f2328);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lc-al-shot-clips{
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 4px;
}
.lc-al-clip-card{
  flex: 0 0 68px;
  width: 68px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  cursor: pointer;
  border: 1px solid var(--line, #d8dee9);
  border-radius: 6px;
  padding: 3px;
  background: var(--bg, #fff);
  transition: all .15s ease;
}
.lc-al-clip-card:hover{
  border-color: var(--primary, #0969da);
  box-shadow: 0 1px 4px rgba(0,0,0,.08);
}
.lc-al-clip-card.is-active{
  border-color: var(--color-green, #2da44e);
  background: color-mix(in srgb, var(--color-green, #2da44e) 8%, transparent);
}
.lc-al-clip-thumb{
  position: relative;
  width: 100%;
  aspect-ratio: 9/16;
  border-radius: 4px;
  overflow: hidden;
  background: #000;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lc-al-thumb-img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.lc-al-clip-tag{
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0,0,0,.68);
  color: #fff;
  font-size: 9px;
  text-align: center;
  padding: 1px 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lc-al-clip-model{
  margin-top: 2px;
  font-size: 9px;
  line-height: 1.2;
}
.lc-al-clip-info{
  display: flex;
  align-items: center;
  justify-content: center;
}
.lc-al-clip-btn{
  padding: 1px 4px;
  font-size: 10px;
  height: 18px;
  line-height: 1;
}
.lc-hot-reload-mask{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.45);
  backdrop-filter: blur(3px);
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lc-hot-reload-glass{
  background: var(--bg, #fff);
  border-radius: 12px;
  padding: 20px 30px;
  box-shadow: 0 8px 32px rgba(0,0,0,.25);
}

.lc-player-unmerged{
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #0d1117;
  color: #fff;
  z-index: 5;
}
.lc-unmerged-card{
  background: rgba(22,27,34,0.92);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 12px;
  padding: 28px 36px;
  max-width: 480px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  box-shadow: 0 16px 36px rgba(0,0,0,0.5);
}
.lc-unmerged-icon{
  font-size: 38px;
  line-height: 1;
}
.lc-unmerged-card h3{
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: #f0f6fc;
}
.lc-unmerged-desc{
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: #8b949e;
}
.lc-unmerged-actions{
  margin-top: 8px;
  display: flex;
  gap: 10px;
}
.lc-unmerged-btn{
  padding: 8px 20px;
  font-size: 13px;
  font-weight: 500;
  border-radius: 6px;
}

/* 快速合并弹窗样式 */
.qm-modal-root{
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 280px;
  max-height: 72vh;
}
.qm-header-summary{
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px 12px;
  background: var(--bg-card, rgba(0,0,0,.02));
  border-radius: 8px;
  border: 1px solid var(--line, rgba(0,0,0,.06));
}
.qm-summary-text{
  font-size: 13px;
  color: var(--text, #1f2328);
}
.qm-shot-list{
  flex: 1 1 auto;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-right: 4px;
}
.qm-shot-row{
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 8px 12px;
  border: 1px solid var(--line, #e3e8f0);
  border-radius: 8px;
  background: var(--bg, #fff);
}
.qm-shot-info{
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.qm-shot-title{
  font-size: 13px;
  color: var(--text, #1f2328);
}
.qm-shot-meta{
  font-size: 11px;
}
.qm-shot-clips{
  display: flex;
  gap: 8px;
  overflow-x: auto;
  flex-wrap: wrap;
  padding-bottom: 4px;
}
.qm-clip-card{
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 8px;
  width: 228px;
  min-width: 210px;
  max-width: 260px;
  flex: 0 0 auto;
  padding: 6px;
  border: 1px solid var(--line, #e3e8f0);
  border-radius: 8px;
  background: var(--bg-card, rgba(255, 255, 255, .03));
  box-sizing: border-box;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
}
.qm-clip-card:hover{
  border-color: rgba(141, 124, 255, .4);
}
.qm-clip-card.is-selected{
  border-color: rgba(54, 178, 128, .55);
  background: rgba(54, 178, 128, .08);
}
.qm-clip-thumb{
  flex: 0 0 48px;
  width: 48px;
  height: 76px;
  border-radius: 6px;
  overflow: hidden;
  background: #0b1020;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.qm-clip-media{
  width: 100%;
  height: 100%;
  display: flex;
}
.qm-clip-poster{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.qm-clip-thumb .lib-thumb-ph{
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
}
.qm-clip-body{
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 2px;
}
.qm-clip-model{
  display: flex;
  align-items: baseline;
  gap: 4px;
  flex-wrap: wrap;
  margin-bottom: 2px;
  font-size: 11px;
  line-height: 1.3;
}
.qm-clip-model .process-compose-model-tag{
  flex-shrink: 0;
}
.qm-clip-model .process-compose-model-name{
  font-size: 11px;
  font-weight: 700;
  color: var(--text, #1f2328);
  word-break: break-all;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.qm-clip-name{
  font-size: 11px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--text, #1f2328);
  word-break: break-all;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.qm-clip-meta{
  font-size: 10px;
  line-height: 1.25;
  color: var(--muted, #656d76);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.qm-clip-action{
  margin-top: auto;
  display: flex;
  align-items: center;
}
.qm-clip-action .qm-clip-sel{
  font-size: 9.5px;
  padding: 2px 8px;
  border-radius: 4px;
}
.qm-clip-action .qm-clip-use{
  width: 100%;
  padding: 2px 0;
  font-size: 11px;
  font-weight: 700;
  height: 22px;
  line-height: 18px;
  border-radius: 4px;
  justify-content: center;
}

@media (max-width:1100px){
  .lc-main,
  .lc-main.has-asset-lib,
  .lc-root.is-portrait .lc-main,
  .lc-root.is-portrait .lc-main.has-asset-lib{
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto;
    grid-template-areas:
      "assets"
      "player"
      "video"
      "ctrls"
      "timeline"
      "bottom";
  }
  .lc-root.is-portrait .lc-player-frame{
    max-width:min(46vw,280px);
    max-height:46vh;
    height:auto;
    justify-self:center;
    align-self:center;
  }
  .lc-asset-lib-col{max-height:24vh}
  .lc-side-col{max-height:32vh;width:100%}
  .lc-timeline-area,
  .lc-root.is-portrait .lc-timeline-area,
  .lc-root.has-overlay-track .lc-timeline-area,
  .lc-root.is-portrait.has-overlay-track .lc-timeline-area,
  .lc-root.has-extra-track .lc-timeline-area,
  .lc-root.is-portrait.has-extra-track .lc-timeline-area,
  .lc-root.has-overlay-track.has-extra-track .lc-timeline-area,
  .lc-root.is-portrait.has-overlay-track.has-extra-track .lc-timeline-area{
    height:auto;
    min-height:240px;
  }
  .work-modal-panel.is-cut-editor{width:calc(100vw - 20px);max-width:calc(100vw - 20px);height:96vh}
}
@media (max-width:640px){
  .lc-transport .btn{padding:5px 7px;font-size:11px}
  .lc-bottom{flex-direction:column;align-items:stretch}
  .lc-bottom-actions{justify-content:flex-end}
}


/* Adapt one-click auto action */
.adapt-actions{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap;margin:10px 0 4px}
.adapt-actions .btn,
.adapt-actions .adapt-oneclick{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.adapt-actions .btn.is-generating{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.adapt-actions-hint{margin:0 0 8px;font-size:10px;line-height:1.45}
.side-workbench .adapt-actions{margin-top:8px}
.side-workbench .adapt-actions-hint{font-size:10px}
/* 窄栏内允许换行：nowrap 会让三格流水线的 min-content(≈359px) 撑宽 run-panel，
   触发工作台横向滚动、左缘裁切（select/一键自动/质检待办被切） */
.side-workbench .adapt-pipeline{gap:4px;flex-wrap:wrap}
.side-workbench .adapt-step{padding:6px 8px;font-size:11px;white-space:nowrap}
.side-workbench .adapt-step-no{width:18px;height:18px;font-size:10px}


/* 人物/场景/道具 工具栏：左 tabs+垃圾桶 · 中 识别 Skill · 右 选角/提要
   高度对齐分镜图栏：内容行约 32px，叠在共用 80px 底限内，不把左侧切换钮撑高。 */
.model-config--asset-prompt{
  display:grid;
  grid-template-columns:max-content minmax(150px,max-content) minmax(0,1fr);
  align-items:center;
  column-gap:10px;
  row-gap:8px;
  min-height:0;
  padding:10px 15px 8px;
}
.model-config--image-library{
  display:grid;
  grid-template-columns:max-content minmax(0,1fr);
  align-items:center;
  column-gap:16px;
  row-gap:10px;
  min-height:72px;
  padding-top:16px;
  padding-bottom:14px;
}
.module-tabs-census{
  min-width:0;
  max-width:100%;
  display:flex;
  justify-content:flex-start;
  align-items:center;
  gap:6px;
  flex-wrap:nowrap;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
}
.module-tabs-census::-webkit-scrollbar{display:none}
.module-tabs-census .aesthetic-chip{
  flex:0 0 auto;
  min-width:0;
  gap:0;
  padding:2px 8px;
  border-radius:8px;
  line-height:1.05;
  white-space:nowrap;
  --skill-accent:#6a8f6a;
  --skill-border:rgba(106,143,106,.42);
  --skill-wash:rgba(106,143,106,.12);
}
.module-tabs-census .aesthetic-chip-title,
.module-tabs-census .aesthetic-chip-sub{
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.module-tabs-census .aesthetic-chip-title{font-size:11px;font-weight:750}
.module-tabs-census .aesthetic-chip-sub{font-size:10px;font-weight:650}
.module-tabs-center{
  width:auto;
  min-width:0;
  display:flex;
  justify-content:flex-start;
  align-items:center;
  gap:10px;
}
.module-tabs-center .segmented{
  flex:0 1 auto;
  display:inline-flex;
  gap:3px;
  padding:3px;
  border-radius:999px;
}
.module-tabs-center .segmented button{
  min-width:64px;
  min-height:32px;
  padding:5px 12px;
  font-size:13px;
  font-weight:750;
  border-radius:999px;
  letter-spacing:.2px;
}
.module-tabs-center #btnImageTrash{
  flex:0 0 auto;
  min-height:32px;
  padding:5px 12px;
  font-size:13px;
  font-weight:750;
  border-radius:999px;
}
.module-tabs-actions{
  width:auto;
  min-width:0;
  max-width:100%;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:nowrap;
}
.model-config--asset-prompt .visual-cast-fold{
  flex:1 1 auto;
  min-width:0;
  max-width:100%;
}
.model-config--asset-prompt .visual-cast-summary{
  width:auto;
  max-width:100%;
  min-width:0;
  padding:5px 10px;
  border-radius:999px;
  gap:6px;
}
.model-config--asset-prompt .visual-cast-kicker{
  flex:0 0 auto;
  font-size:11px;
  letter-spacing:.04em;
}
.model-config--asset-prompt .visual-cast-summary .badge{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:11px;
  padding:2px 7px;
}
.model-config--asset-prompt .visual-cast-summary::after{
  flex:0 0 auto;
  font-size:11px;
}
.model-config--asset-prompt .script-preamble-fold{
  max-width:min(280px,34vw);
}
.model-config--image-library .module-tabs-actions .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
@media (max-width:980px){
  .imagegen-chrome{
    flex-direction:column;
    align-items:stretch;
  }
  .imagegen-view-seg{
    width:100%;
    min-height:64px;
  }
  .imagegen-view-seg button{
    flex:1 1 0;
    min-width:0;
    padding:12px 14px;
  }
  .model-config--asset-prompt,
  .model-config--image-library{
    grid-template-columns:1fr;
    justify-items:stretch;
  }
  .module-tabs-center{justify-content:center}
  .module-tabs-census{justify-content:center}
  .module-tabs-actions{justify-content:center}
}


/* 模型目录弹窗 */
.mc-wrap{display:flex;flex-direction:column;gap:12px;min-height:0}
.mc-api{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02)}
.mc-api .api-pop-section{margin:0}
.mc-api .api-pop-note{margin:0}
.mc-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:space-between}
.mc-provider{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mc-provider-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 4px}
.mc-tabs{display:flex;flex-wrap:wrap;gap:8px}
.mc-provider-tab{border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--muted);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:800;cursor:pointer}
.mc-provider-tab.active{background:linear-gradient(180deg,rgba(128,111,255,.95),rgba(88,168,255,.88));border-color:transparent;color:#fff}
.mc-provider-pane{display:none;flex-direction:column;gap:10px}
.mc-provider-pane.active{display:flex}
.mc-docs-link{display:inline-block;margin-top:4px;font-size:11px;font-weight:700;color:var(--orange,#ffb45c);text-decoration:none}
.mc-docs-link:hover{text-decoration:underline}
body[data-theme="light"] .mc-provider-tab.active{background:linear-gradient(180deg,#8d7cff,#6a5cff)}
.mc-tab{border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--muted);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:800;cursor:pointer}
.mc-tab.active{background:linear-gradient(180deg,rgba(128,111,255,.95),rgba(88,168,255,.88));border-color:transparent;color:#fff}
.mc-pane{display:none;min-height:0}
.mc-pane.active{display:block}
.mc-list{display:flex;flex-direction:column;gap:10px;max-height:min(52vh,560px);overflow:auto;padding-right:2px}
.mc-card{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:rgba(255,255,255,.02)}
.mc-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.mc-card-title{font-size:13px;font-weight:850;line-height:1.35}
.mc-card-id{font-size:11px;color:var(--muted);word-break:break-all;margin-top:2px}
.mc-card-note{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.45}
.mc-params{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.mc-chip{display:inline-flex;align-items:center;gap:4px;border:1px solid rgba(120,150,210,.28);border-radius:999px;padding:3px 8px;font-size:10px;color:var(--muted);background:rgba(255,255,255,.03)}
.mc-chip b{color:var(--text);font-weight:800}
.mc-card-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:0 0 auto}
.mc-status{font-size:11px;max-width:220px;text-align:right;line-height:1.35}
.mc-status.is-ok{color:#5ad0a8}
.mc-status.is-error{color:#ff8e98}
.mc-status.is-running{color:#8eb6ff}
.mc-empty{padding:18px;text-align:center;color:var(--muted);font-size:12px;border:1px dashed var(--line);border-radius:12px}
body[data-theme="light"] .mc-card{background:rgba(0,0,0,.02)}
body[data-theme="light"] .mc-api{background:rgba(0,0,0,.02)}
body[data-theme="light"] .mc-tab.active{background:linear-gradient(180deg,#8d7cff,#6a5cff)}

.rh-app-panel{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:10px}
.rh-app-panel-copy{display:flex;flex-direction:column;gap:4px}
.rh-app-panel-copy b{font-size:12px}
.rh-auto-slots{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rh-auto-slot{border:1px dashed rgba(120,150,210,.35);border-radius:10px;padding:8px 10px;background:rgba(255,255,255,.03);display:flex;flex-direction:column;gap:3px}
.rh-auto-slot b{font-size:11px}
.rh-auto-slot span{font-size:11px;color:var(--muted)}
.rh-app-grid,.rh-app-files{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}
.rh-app-grid label,.rh-app-files label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}
.rh-app-grid label.rh-check,.rh-app-files label.rh-check{flex-direction:row;align-items:center;gap:6px;margin-top:18px}
.rh-file-name{font-size:11px;color:var(--text);word-break:break-all}
.rh-app-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rh-app-status{font-size:11px}
@media (max-width: 720px){
  .rh-auto-slots,.rh-app-grid,.rh-app-files{grid-template-columns:1fr}
}


/* Seed Audio handbook modal */
.seed-handbook{display:flex;flex-direction:column;gap:14px;font-size:13px;line-height:1.65;color:var(--text)}
.seed-handbook-toc{display:flex;flex-wrap:wrap;gap:6px;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.03)}
.seed-handbook-toc a{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;border:1px solid var(--line);background:rgba(61,130,127,.08);color:var(--text);text-decoration:none;font-size:11px;font-weight:750}
.seed-handbook-toc a:hover{border-color:rgba(61,130,127,.55);background:rgba(61,130,127,.16)}
.seed-handbook-toc a.seed-toc-hot{border-color:rgba(217,119,6,.5);background:rgba(217,119,6,.14);font-weight:800}
.seed-handbook-toc a.seed-toc-hot:hover{border-color:rgba(217,119,6,.7);background:rgba(217,119,6,.22)}
.seed-handbook h4{margin:16px 0 8px;font-size:15px;line-height:1.3}
.seed-handbook h5{margin:12px 0 6px;font-size:13px;color:var(--purple2)}
.seed-handbook p,.seed-handbook li{margin:0 0 8px}
.seed-handbook ul,.seed-handbook ol{margin:0 0 10px;padding-left:1.25em}
.seed-handbook code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;padding:1px 5px;border-radius:6px;background:rgba(0,0,0,.08)}
.seed-handbook pre{margin:0 0 12px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:rgba(0,0,0,.18);overflow:auto;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word}
body[data-theme="light"] .seed-handbook pre{background:#F4F1E8;border-color:var(--line)}
.seed-handbook .seed-callout{padding:10px 12px;border-radius:12px;border:1px solid rgba(61,130,127,.35);background:rgba(61,130,127,.10);margin:0 0 10px}
.seed-handbook .seed-warn{border-color:rgba(217,119,6,.4);background:rgba(217,119,6,.10)}
.seed-handbook table{width:100%;border-collapse:collapse;margin:0 0 12px;font-size:12px}
.seed-handbook th,.seed-handbook td{border:1px solid var(--line);padding:7px 8px;vertical-align:top;text-align:left}
.seed-handbook th{background:rgba(255,255,255,.04);font-weight:800}
.seed-handbook .seed-k{color:var(--muted);font-size:11px}
.seed-handbook .seed-tag{display:inline-block;padding:1px 6px;border-radius:999px;border:1px solid rgba(220,38,38,.35);color:#c2410c;font-size:10px;font-weight:800;margin-left:4px}
.seed-handbook .seed-tag.opt{border-color:rgba(100,116,139,.35);color:#64748b}
.work-modal-panel.is-handbook{width:min(920px,calc(100vw - 36px))}
.work-modal-panel.is-voice-tune{width:min(1180px,calc(100vw - 32px));height:calc(100vh - 32px);max-height:calc(100vh - 32px)}
.work-modal-panel.is-voice-tune .work-modal-body{display:flex;flex-direction:column;min-height:0;flex:1 1 auto;overflow:auto;padding:14px 16px}
.voice-tune-container{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;min-height:0;flex:1 1 auto;align-items:stretch}
@media (max-width:960px){.voice-tune-container{grid-template-columns:1fr}}
.voice-tune-library{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.02);min-height:0;overflow-y:auto;overflow-x:hidden}
.voice-tune-library-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.voice-tune-library-head h3{margin:0;font-size:13.5px;font-weight:800}
.voice-sample-quote-card{padding:10px 12px;border-radius:10px;border:1px dashed rgba(217,119,87,.42);background:linear-gradient(180deg,rgba(217,119,87,.08),rgba(217,119,87,.02));display:flex;flex-direction:column;gap:4px}
.voice-sample-quote-label{font-size:11px;font-weight:800;color:#d97757;letter-spacing:.2px}
.voice-sample-quote-text{font-size:12.5px;line-height:1.5;font-weight:700;color:var(--text)}
.voice-sample-quote-hint{font-size:10.5px;line-height:1.35;color:var(--muted)}
.voice-samples-grid{display:flex;flex-direction:column;gap:8px;padding-right:2px}
.voice-sample-card{display:flex;flex-direction:column;gap:6px;padding:8px 10px;border-radius:9px;border:1px solid var(--line);background:rgba(255,255,255,.03)}
.voice-sample-card-head{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;font-weight:750}
.voice-sample-card audio{height:30px;width:100%}
.voice-sample-card-foot{display:flex;align-items:center;justify-content:flex-end;gap:6px}
.voice-sample-card-foot .btn{padding:4px 10px;font-size:11px}
.voice-sample-status{font-size:11px;color:var(--muted);line-height:1.3}
.work-modal-panel.is-voice-manual{width:min(920px,calc(100vw - 28px));max-height:min(90vh,calc(100vh - 24px))}
.work-modal-panel.is-voice-manual .work-modal-body{min-height:0;flex:1 1 auto;overflow:auto;padding:14px 16px}
.voice-manual{display:flex;flex-direction:column;gap:12px}
.voice-manual-lead{margin:0;font-size:12px;line-height:1.45}
.voice-manual-shortcuts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.voice-manual-shortcut{padding:5px 12px;font-size:12px;font-weight:800;border-radius:999px;border:1px solid rgba(217,119,6,.45);background:rgba(217,119,6,.08);color:inherit;cursor:pointer}
.voice-manual-shortcut.is-on{background:rgba(217,119,6,.22);border-color:rgba(217,119,6,.7)}
body[data-theme="light"] .voice-manual-shortcut{background:rgba(217,119,6,.10)}
body[data-theme="light"] .voice-manual-shortcut.is-on{background:rgba(217,119,6,.20);border-color:#d97706}
.voice-manual-layer{display:flex;flex-direction:column;gap:10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(141,124,255,.04)}
.voice-manual-layer-title{font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--purple2)}
body[data-theme="light"] .voice-manual-layer{background:rgba(139,92,246,.05)}
.voice-manual-sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}
.voice-manual-sec-head b{font-size:12px}
.voice-manual-preview{border:1px dashed var(--line);border-radius:10px;padding:8px 10px}
.voice-manual-preview summary{cursor:pointer;font-size:12px;font-weight:700}
.voice-manual-style{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5;margin:8px 0 0}
.voice-manual-foot{display:flex;flex-direction:column;gap:8px;padding-top:4px;border-top:1px dashed var(--line)}
.voice-manual-preview-audio{display:flex;flex-direction:column;gap:6px}
.voice-manual-preview-audio audio,.voice-manual-preview-audio .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.voice-manual-preview-audio audio{height:32px}
.voice-manual-save{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.voice-manual-save .search{flex:1 1 160px;min-width:140px}
.voice-manual .voice-chip{padding:5px 10px;font-size:11.5px}
.voice-tune{display:flex;flex-direction:column;gap:10px;min-height:0;flex:1}
.voice-tune [data-tts-skill-host]{flex:0 0 auto}
.voice-tune.is-skill-open .voice-tune-log{min-height:180px}
.voice-tune-log{flex:1 1 auto;min-height:260px;max-height:none;overflow:auto;display:flex;flex-direction:column;gap:8px;padding-right:2px}
.voice-tune-draft{padding:10px 12px;border-radius:12px;border:1px solid rgba(141,124,255,.32);background:rgba(141,124,255,.08)}
.voice-tune-draft.is-empty{border-style:dashed;background:transparent}
.voice-tune-draft-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}
.voice-tune-draft-head b{font-size:13px}
.voice-tune-draft-style{font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word}
.voice-tune-draft-meta{margin-top:6px;font-size:11px}
.voice-tune-preview{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.voice-tune-preview audio,.voice-tune-preview .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.voice-tune-preview audio{height:32px}
.voice-tune-preview-status{
  display:flex;align-items:center;gap:10px;
  min-height:36px;padding:8px 12px;border-radius:12px;
  border:1px solid rgba(141,124,255,.28);
  background:linear-gradient(180deg,rgba(141,124,255,.14),rgba(108,168,255,.10));
}
.voice-tune-preview-status-copy{display:flex;flex-direction:column;gap:1px;min-width:0}
.voice-tune-preview-status-copy b{font-size:12px;line-height:1.3}
.voice-tune-preview-status-copy .muted{font-size:11px}
.voice-tune-preview-spin{
  flex:0 0 auto;width:14px;height:14px;border-radius:50%;
  border:2px solid rgba(141,124,255,.28);
  border-top-color:#6d5bd0;
  animation:voice-tune-spin .7s linear infinite;
}
@keyframes voice-tune-spin{to{transform:rotate(360deg)}}
.voice-tune-preview.is-generating .btn.is-generating{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.voice-tune-composer{display:flex;flex-direction:column;gap:6px;flex:0 0 auto;margin-top:auto}
.voice-tune-pending{
  border:1px solid rgba(141,124,255,.28);
  background:linear-gradient(180deg,rgba(141,124,255,.14),rgba(108,168,255,.10));
}
.voice-tune-pending-copy{display:flex;align-items:flex-start;gap:10px}
.voice-tune-pending-copy > div{display:flex;flex-direction:column;gap:1px;min-width:0}
.voice-tune-pending-copy b{font-size:12px;line-height:1.3}
.voice-tune-pending-copy .muted{font-size:11px}
.voice-tune-pending .btn-spinner{margin-top:2px}
.voice-tune-save{display:flex;flex-direction:column;gap:6px;padding-top:10px;border-top:1px dashed var(--line);margin-top:auto}
.voice-tune-composer-row,.voice-tune-save-row{display:flex;align-items:center;gap:8px}
.voice-tune-save input{flex:1 1 auto}
.voice-tune-actions{margin-top:0}
.voice-tune-dict{padding-top:6px;border-top:1px dashed var(--line)}
.voice-tune-dict .modal-textarea{min-height:140px}
#btnSeedAudioHandbook{white-space:nowrap}


/* 旁白库层级：镜头标题更醒目；参考图/旁白窗与上文拉开；宽屏 2 列等分自适应 */
#narrationContainer{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
  align-items:start;
}
@media (min-width: 1200px){
  #narrationContainer{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* 2 列行间虚线：下一行左卡拉满两列（含列间隙） */
  #narrationContainer > .lib-block:nth-child(2n+1):nth-child(n+3){position:relative}
  #narrationContainer > .lib-block:nth-child(2n+1):nth-child(n+3)::before{
    content:"";
    position:absolute;
    top:-8px;
    left:0;
    right:calc(-100% - 16px);
    border-top:1px dashed rgba(120,150,210,.22);
    pointer-events:none;
  }
}
#narrationContainer .lib-block{
  margin-bottom:0;
  min-width:0;
  container-type:inline-size;
  container-name:narr-card;
}
@container narr-card (max-width: 780px){
  #narrationContainer .lib-slot{
    grid-template-columns:1fr;
    gap:10px;
  }
}
#narrationContainer .lib-block-head.narr-shot-head{
  gap:10px;
  margin-bottom:12px;
  padding-bottom:10px;
  align-items:center;
  flex-wrap:wrap;
  row-gap:6px;
}
#narrationContainer .narr-shot-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:9px;
  background:rgba(141,124,255,.12);
  border:1px solid rgba(141,124,255,.22);
  font-size:15px;
  line-height:1;
  flex-shrink:0;
}
#narrationContainer .narr-shot-title{
  font-size:18px;
  font-weight:850;
  letter-spacing:.2px;
  line-height:1.2;
}
#narrationContainer .narr-window-bar{
  margin-top:16px;
  padding-top:12px;
  border-top:1px dashed rgba(120,150,210,.22);
  position:relative;
  border-radius:12px;
}
#narrationContainer .narr-window-bar.is-generating,
#narrationContainer .lib-block.is-generating{
  outline:1px solid rgba(217,119,6,.4);
  box-shadow:0 0 0 3px rgba(217,119,6,.1);
}
#narrationContainer .narr-gen-window.is-generating,
#narrationContainer .narr-gen.is-generating{
  min-width:96px;
  cursor:wait;
}
#narrationContainer .lib-img.is-generating{
  overflow:hidden;
}
#runPanel-narration .narration-batch-progress{margin-top:8px}
#runPanel-narration .run-progress{margin:6px 0 0}
.batch-gen-progress{margin-top:8px}
#runPanel-processing .run-progress,
#runPanel-export .run-progress,
#runPanel-video .run-progress{margin:6px 0 0}
#runPanel-video .run-progress-wrap{margin:2px 0 4px}
#runPanel-video .run-progress-wrap .run-progress{margin:0 0 8px}
.workbench .run-wf-btn.is-generating,
.workbench .run-wf-resume.is-generating{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  cursor:wait;
}
#narrationContainer .narr-window-bar:first-of-type{
  margin-top:14px;
}
#narrationContainer .narr-window-head{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px 8px;
  margin:0 0 8px;
  padding:2px 0 2px 2px;
}
#narrationContainer .narr-window-mark{
  color:var(--purple,#7c6cf0);
  font-size:12px;
  font-weight:800;
  opacity:.85;
}
#narrationContainer .narr-window-title{
  font-size:13.5px;
  font-weight:800;
  color:var(--text);
}
body[data-theme="light"] #narrationContainer .narr-shot-icon{
  background:color-mix(in srgb, var(--primary) 10%, transparent);
  border-color:color-mix(in srgb, var(--primary) 22%, transparent);
}
body[data-theme="light"] #narrationContainer .narr-window-bar{
  border-top-color:rgba(203,185,168,.55);
}
body[data-theme="light"] .adapt-shots-grid > .scene-card:nth-child(2n+1):nth-child(n+3)::before,
body[data-theme="light"] #narrationContainer > .lib-block:nth-child(2n+1):nth-child(n+3)::before{
  border-top-color:rgba(203,185,168,.55);
}


/* ===== 资产画布：全景大占比弹窗 + 多层级真无限画布 ===== */
.work-modal.canvas-modal{z-index:120;padding:12px}
.work-modal.canvas-modal .canvas-modal-panel{
  width:calc(100vw - 24px);
  height:calc(100vh - 24px);
  max-height:calc(100vh - 24px);
  border-radius:18px;
}
.canvas-modal-head{
  align-items:flex-start;
  gap:14px;
  padding:12px 16px 10px;
}
.cv-head-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.cv-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cv-title-row b{font-size:16px}
.cv-ep-select{min-width:110px}
.cv-breadcrumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:4px 2px;
  font-size:13px;line-height:1.45;min-height:22px;
}
.cv-crumb{
  border:0;background:transparent;color:var(--purple2,#8d7cff);
  font:inherit;font-weight:750;cursor:pointer;padding:1px 4px;border-radius:6px;
}
.cv-crumb:hover{background:rgba(141,124,255,.12);text-decoration:underline}
.cv-crumb.is-current{color:var(--text);cursor:default;font-weight:850}
.cv-crumb.is-current:hover{background:transparent;text-decoration:none}
.cv-crumb-sep{color:var(--muted);padding:0 2px;user-select:none}
.cv-quick-nav{display:flex;flex-wrap:wrap;gap:6px}
.cv-qbtn{
  border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--muted);
  border-radius:999px;padding:4px 10px;font-size:11px;font-weight:750;cursor:pointer;
}
.cv-qbtn:hover{border-color:var(--purple);color:var(--text);background:rgba(141,124,255,.1)}
.cv-qbtn.is-active{border-color:transparent;color:#fff;background:linear-gradient(180deg,rgba(128,111,255,.95),rgba(88,168,255,.88))}
.canvas-modal-body{padding:0;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;position:relative}
.cv-freeform{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}
.cv-freeform[hidden]{display:none!important}
.cv-body{
  position:relative;flex:1;min-height:0;overflow:hidden;
  background:
    radial-gradient(circle at 20% 15%, rgba(128,111,255,.14), transparent 42%),
    radial-gradient(circle at 80% 80%, rgba(88,168,255,.1), transparent 40%),
    #080a10;
  cursor:grab;
}
.cv-body:active{cursor:grabbing}
.cv-world{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}
.cv-item{user-select:none}

/* 画布层级卡片节点 */
.cv-node{
  position:absolute;
  box-sizing:border-box;
  background:rgba(18,22,32,.88);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  box-shadow:0 12px 32px rgba(0,0,0,.45);
  transition:border-color .18s ease,box-shadow .18s ease;
  user-select:none;
}
.cv-node:hover{
  border-color:var(--purple);
  box-shadow:0 16px 40px rgba(141,124,255,.2);
  z-index:2;
}
.cv-node.is-selected{
  border-color:var(--green);
  box-shadow:0 0 0 2px rgba(72,213,166,.4),0 16px 40px rgba(0,0,0,.5);
}
.cv-node-folder{
  display:flex;
  flex-direction:column;
  padding:12px;
  cursor:pointer;
}
.cv-node-thumb{
  width:100%;
  aspect-ratio:16/10;
  border-radius:10px;
  overflow:hidden;
  background:#05070c;
  display:grid;
  place-items:center;
  margin-bottom:10px;
  position:relative;
  border:1px solid rgba(255,255,255,.08);
}
.cv-node-thumb img,.cv-node-thumb video{
  width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;
}
.cv-node-thumb .cv-node-badge{
  position:absolute;
  top:6px;right:6px;
  background:rgba(0,0,0,.68);
  backdrop-filter:blur(4px);
  color:var(--purple2);
  border:1px solid rgba(141,124,255,.3);
  font-size:10px;font-weight:800;
  padding:2px 6px;border-radius:6px;
}
.cv-node-info{
  display:flex;flex-direction:column;gap:4px;
}
.cv-node-title{
  font-size:13px;font-weight:800;color:var(--text);line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.cv-node-meta{
  font-size:11px;color:var(--muted);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.cv-node-actions{
  display:flex;align-items:center;gap:6px;margin-top:10px;
}
.cv-node-actions .btn{
  flex:1;
  font-size:11px;
  padding:4px 8px;
}
.cv-node-drill{
  background:linear-gradient(180deg,rgba(128,111,255,.9),rgba(88,168,255,.8))!important;
  color:#fff!important;
  border:0!important;
  font-weight:750;
}
.cv-node-group-title{
  position:absolute;
  top:-28px;left:4px;
  font-size:13px;font-weight:850;
  color:var(--purple2);
  letter-spacing:.5px;
  display:flex;align-items:center;gap:6px;
}
.cv-minimap{
  position:absolute;right:12px;bottom:52px;width:140px;height:90px;
  border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(0,0,0,.45);
  overflow:hidden;pointer-events:none;z-index:3
}
.cv-mini-world{position:absolute;inset:0}
.cv-hud{
  position:absolute;left:12px;bottom:12px;z-index:4;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:8px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.14);
  background:rgba(10,12,18,.78);backdrop-filter:blur(6px)
}
.cv-hud input[type=range]{width:120px}
.cv-hud-upload{display:inline-flex;align-items:center}
.cv-head-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.cv-asset-trash{white-space:nowrap}
.cv-asset-trash.has-items{border-color:rgba(255,180,92,.62);color:#a45b12;background:rgba(255,180,92,.1)}
.cv-leaf-canvas{
  position:relative;
  padding:40px;
  min-width:100%;
  display:flex;
  flex-direction:column;
  gap:28px;
}
.cv-section{margin:0 0 18px}
.cv-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}
.cv-section-title b{font-size:14px}
.cv-folder-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px
}
.cv-folder{
  display:flex;flex-direction:column;gap:8px;text-align:left;
  border:1px solid var(--line);border-radius:12px;padding:10px;
  background:rgba(255,255,255,.025);color:var(--text);cursor:pointer;
}
.cv-folder:hover{border-color:var(--purple);background:rgba(141,124,255,.08)}
.cv-folder-thumb{
  width:100%;aspect-ratio:16/10;border-radius:8px;overflow:hidden;
  display:grid;place-items:center;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.06)
}
.cv-folder-thumb img,.cv-folder-thumb video{width:100%;height:100%;object-fit:cover;display:block}
.cv-folder-ph{font-size:28px;opacity:.85}
.cv-folder-name{font-size:13px;font-weight:800;line-height:1.3}
.cv-folder-meta{font-size:11px;color:var(--muted)}
.cv-empty{
  padding:28px 16px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px
}
.cv-leaf-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.cv-media-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px
}
.cv-media-card{
  position:relative;display:flex;flex-direction:column;gap:8px;
  border:1px solid var(--line);border-radius:12px;padding:9px;
  background:rgba(255,255,255,.025)
}
.cv-media-card.is-selected{border-color:var(--green);box-shadow:0 0 0 1px rgba(72,213,166,.25) inset}
.cv-media-preview{
  width:100%;min-height:140px;max-height:180px;border-radius:8px;background:#05070d;
  display:grid;place-items:center;overflow:hidden
}
.cv-media-preview img,.cv-media-preview video{width:100%;height:160px;object-fit:contain;display:block}
.cv-media-preview audio{width:100%}
.cv-media-meta{font-size:11px;color:var(--muted);line-height:1.45;word-break:break-word}
.cv-media-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}
.cv-media-actions .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.cv-media-actions .cv-media-preview-open{border-color:color-mix(in srgb,var(--purple) 50%,var(--btn-border));color:var(--purple2);font-weight:750}
.cv-video-trash{border-color:rgba(255,123,134,.42)!important;color:#a33b48!important}
.cv-open-hist{
  margin-top:8px;width:100%;justify-content:center;
  border-style:dashed!important;font-weight:750
}
.cv-open-hist:hover{border-style:solid!important}
body[data-theme="light"] .cv-body{
  background:var(--bg);
}
body[data-theme="light"] .cv-folder,
body[data-theme="light"] .cv-media-card{background:rgba(0,0,0,.02)}
body[data-theme="light"] .cv-hud{background:rgba(255,253,249,.9);border-color:var(--line)}
body[data-theme="dark"] .cv-asset-trash.has-items{color:#ffd5a4;background:rgba(255,180,92,.1)}
body[data-theme="dark"] .cv-video-trash{color:#ffb4ba!important}
.cv-canvas-video-preview-modal{z-index:180;padding:0;place-items:stretch}
.cv-canvas-video-preview-modal .modal-mask{
  background:rgba(3,7,16,.42);
  backdrop-filter:blur(14px) saturate(1.05);
}
.cv-canvas-video-preview-card{
  width:100vw;
  max-width:100vw;
  height:100vh;
  max-height:100vh;
  border:0;
  border-radius:0;
  background:transparent;
  overflow:hidden;
}
html body .cv-canvas-video-preview-card{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.cv-canvas-video-preview-card .modal-head{
  position:absolute;
  inset:0 0 auto;
  z-index:3;
  padding:16px 20px 42px;
  border:0;
  color:#fff;
  background:linear-gradient(180deg,rgba(0,0,0,.72),rgba(0,0,0,0));
}
.cv-canvas-video-preview-card .modal-head b{color:#fff}
.cv-canvas-video-preview-card .modal-close{
  color:#fff;
  border-color:rgba(255,255,255,.35);
  background:rgba(0,0,0,.28);
}
.cv-canvas-video-preview-card .modal-close:hover{border-color:#fff;background:rgba(0,0,0,.52)}
.cv-canvas-video-preview-body{
  position:absolute;
  inset:0;
  min-height:0;
  display:grid;
  align-items:center;
  justify-content:center;
  padding:0;
  overflow:hidden;
  background:transparent;
}
.cv-canvas-video-preview-body video{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  border-radius:0;
  background:transparent;
}
.cv-canvas-video-preview-meta{
  position:absolute;
  inset:auto 0 0;
  z-index:3;
  padding:34px 20px 14px;
  color:rgba(255,255,255,.8);
  font-size:11px;
  line-height:1.45;
  word-break:break-word;
  border:0;
  pointer-events:none;
  background:linear-gradient(0deg,rgba(0,0,0,.74),rgba(0,0,0,0));
}
body[data-theme="light"] .cv-canvas-video-preview-modal .modal-mask{background:rgba(49,43,32,.28)}
body[data-theme="light"] .cv-canvas-video-preview-body{background:transparent}
@media (max-width:760px){
  .work-modal.canvas-modal{padding:10px}
  .work-modal.canvas-modal .canvas-modal-panel{width:calc(100vw - 20px);height:calc(100vh - 20px)}
  .cv-folder-grid,.cv-media-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
}
@media (max-width:760px){
  .cv-canvas-video-preview-modal{padding:0}
  .cv-canvas-video-preview-card{width:100vw;max-width:100vw;height:100vh;max-height:100vh}
  .cv-canvas-video-preview-card .modal-head{padding:12px 14px 38px}
  .cv-canvas-video-preview-body{padding:0}
  .cv-canvas-video-preview-body video{height:100%;max-height:100%}
  .cv-canvas-video-preview-meta{padding:28px 12px 10px;font-size:10px}
}


/* —— 生成输入审计（实际上传参考图 + 原样提示词）—— */
.work-modal-panel.is-image-audit{width:min(1120px,calc(100vw - 28px))}
.work-modal:has(.work-modal-panel.is-nine-grid){padding:10px}
.work-modal-panel.is-nine-grid{
  width:min(1760px,calc(100vw - 20px));
  height:calc(100vh - 20px);
  max-height:calc(100vh - 20px);
  border-radius:24px;
}
.work-modal-panel.is-nine-grid .work-modal-head{padding:14px 22px 12px}
.work-modal-panel.is-nine-grid .work-modal-body{
  min-height:0;
  flex:1 1 auto;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding:14px 22px 16px;
}
.work-modal-panel.is-nine-grid .sb-grid-viewer{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-height:0;
}
.work-modal-panel.is-nine-grid .sb-grid-viewer-head{flex:0 0 auto;margin-bottom:14px}
.sb-grid-pick-hint{
  flex:0 0 auto;
  margin:-4px 0 10px;
  padding:8px 12px;
  border:1px solid color-mix(in srgb,#0e7490 42%,var(--line));
  border-radius:9px;
  background:color-mix(in srgb,#0e7490 9%,transparent);
  color:color-mix(in srgb,#0e7490 82%,var(--text));
  font-size:12px;
  font-weight:700;
}
.sb-grid-picker-tabs{
  flex:0 0 auto;
  width:fit-content;
  max-width:100%;
  margin:0 0 10px;
}
.sb-grid-picker-tabs button{
  white-space:nowrap;
  font-weight:700;
  cursor:pointer;
}
.sb-grid-body.is-picker .sb-grid-picker-shots{
  flex:0 0 auto;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  width:100%;
  max-height:88px;
  overflow:auto;
  padding:2px 0 6px;
}
.sb-grid-picker-shot{
  border:1px solid var(--line);
  background:color-mix(in srgb,var(--panel2) 88%,transparent);
  color:var(--muted);
  border-radius:999px;
  padding:5px 12px;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
  max-width:240px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sb-grid-picker-shot.active{
  border-color:#0e7490;
  background:color-mix(in srgb,#0e7490 18%,transparent);
  color:#fff;
}
.sb-grid-picker-empty{
  flex:1 1 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:120px;
  width:100%;
  color:var(--muted);
  font-size:13px;
  font-weight:700;
  text-align:center;
  padding:24px 16px;
}
.sb-grid-body.is-picker .sb-grid-picker-shots[hidden],
.sb-grid-body.is-picker .sb-grid-tiles[hidden],
.sb-grid-picker-empty[hidden]{
  display:none;
}
.work-modal-panel.is-nine-grid .sb-grid-body,
.work-modal-panel.is-nine-grid .sb-grid-history{
  flex:1 1 auto;
  min-height:0;
}
.work-modal-panel.is-nine-grid .sb-grid-history{overflow:auto}
.work-modal-panel.is-nine-grid .modal-actions{flex:0 0 auto;margin-top:12px}
.work-modal:has(.work-modal-panel.is-image-immersive){padding:10px}
.work-modal-panel.is-image-immersive{
  width:calc(100vw - 20px);
  height:calc(100vh - 20px);
  max-height:calc(100vh - 20px);
  border-radius:18px;
}
.work-modal-panel.is-image-immersive .work-modal-head{padding:10px 18px 9px}
.work-modal-panel.is-image-immersive .work-modal-body{
  min-height:0;
  flex:1 1 auto;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding:10px 14px 12px;
}
.work-modal-panel.is-image-immersive .image-preview-layout.is-immersive{
  flex:1 1 auto;
  min-height:0;
  max-height:none;
  overflow:hidden;
}
.work-modal-panel.is-image-immersive .image-preview-stage{
  flex:1 1 auto;
  min-height:0;
  height:100%;
  padding:8px;
}
.work-modal-panel.is-image-immersive .image-preview-image{
  flex:1 1 auto;
  min-height:0;
  max-width:100%;
  max-height:calc(100vh - 155px);
}
.work-modal-panel.is-image-immersive .image-preview-caption{flex:0 0 auto}
.work-modal-panel.is-image-immersive .modal-actions{flex:0 0 auto;margin-top:8px}
.image-preview-layout{display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 140px);overflow:auto;padding-right:2px}
.image-preview-layout .image-preview-stage{min-height:min(46vh,520px);flex:0 0 auto}
.image-preview-layout .image-preview-image{max-height:min(46vh,500px)}
.gen-input-audit{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:rgba(0,0,0,.14);display:flex;flex-direction:column;gap:14px}
.gen-input-audit.is-empty{padding:10px 12px}
.gen-input-block{min-width:0}
.gen-input-label{font-size:12px;font-weight:700;color:var(--text);margin:0 0 8px;letter-spacing:.2px}
.gen-input-ref-strip{display:flex;flex-wrap:wrap;gap:10px}
.gen-input-ref{margin:0;width:96px}
.gen-input-ref-img{width:96px;height:96px;object-fit:cover;border-radius:8px;display:block;background:#05070d;border:1px solid var(--line)}
.gen-input-ref-ph{width:96px;height:96px;display:grid;place-items:center;border-radius:8px;background:rgba(255,255,255,.04);border:1px solid var(--line);font-size:22px}
.gen-input-ref figcaption{font-size:10px;color:var(--muted);line-height:1.35;margin-top:4px;word-break:break-word}
.gen-input-ref figcaption b{display:block;color:var(--text);font-size:11px;font-weight:700}
.gen-input-prompt-text{margin:0;max-height:min(30vh,320px);overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.6;padding:10px 12px;border-radius:8px;border:1px solid var(--line);background:rgba(0,0,0,.2);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.gen-input-empty{font-size:12px;padding:2px 0}

/* —— 帧媒体预览弹窗（左右分栏，放大）—— */
.frame-media-modal{width:min(1240px,calc(100vw - 20px))!important;max-height:calc(100vh - 16px)}
.frame-media-modal-body{max-height:calc(100vh - 88px)!important;overflow:hidden!important;display:flex;flex-direction:column;min-height:0;flex:1}
.frame-media-modal-body .prev-toggle{flex:0 0 auto}
.frame-media-modal-body .prev-pane[data-pane="image"]{overflow:auto;min-height:0;flex:1;display:flex;flex-direction:column;gap:12px}
.frame-media-modal-body .frame-prev-video-pane{overflow:hidden;min-height:0;flex:1;display:flex;flex-direction:column}
/* display:flex 会压过原生 [hidden]；切换页时必须强制隐藏未选中 pane */
.frame-media-modal-body .prev-pane[hidden],
.frame-media-modal-body .frame-prev-video-pane[hidden]{display:none!important}
.frame-prev-image-stage{margin:0}
.frame-prev-image-stage .frame-prev-media{width:100%;max-height:min(48vh,520px);object-fit:contain;border-radius:12px;background:#05070d;display:block}
.frame-prev-split{display:grid;grid-template-columns:minmax(300px,.95fr) minmax(300px,1.05fr);gap:16px;min-height:min(70vh,760px);flex:1;min-width:0;min-height:0}
.frame-prev-left,.frame-prev-right{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0;overflow:auto;max-height:min(78vh,860px);padding-right:2px}
.frame-prev-left-label,.frame-prev-right-hint{font-size:12px;color:var(--muted);flex:0 0 auto}
.frame-prev-left .frame-prev-stage{margin:0;flex:0 0 auto}
.frame-prev-left .frame-prev-media,
.frame-prev-left video.frame-prev-media{width:100%;max-height:min(42vh,480px);object-fit:contain;border-radius:12px;background:#05070d;display:block}
.frame-prev-left .gen-input-audit{flex:0 0 auto}
.frame-prev-cta{flex:0 0 auto;padding-top:4px}
.prev-vid-grid{display:grid;gap:12px;align-content:start}
.prev-vid-grid.is-portrait{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}
.prev-vid-grid.is-landscape{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.frame-media-modal .prev-vid-grid .prev-vid-card{width:auto}
/* 压过全局 .prev-vid-card .vid-thumb 的 92x128 固定竖框 */
.frame-media-modal .prev-vid-grid .prev-vid-card .vid-thumb{
  position:relative;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  padding:0!important;
  overflow:hidden;
  border-radius:10px;
  background:#0b1020;
  display:block;
}
.frame-media-modal .prev-vid-grid.is-portrait .prev-vid-card .vid-thumb,
.frame-media-modal .prev-vid-grid .prev-vid-card.is-portrait .vid-thumb{aspect-ratio:9/16!important}
.frame-media-modal .prev-vid-grid.is-landscape .prev-vid-card .vid-thumb,
.frame-media-modal .prev-vid-grid .prev-vid-card.is-landscape .vid-thumb{aspect-ratio:16/9!important}
/* 完整展示画面，不裁切横屏关键帧 */
.frame-media-modal .prev-vid-grid .prev-vid-card .vid-thumb-poster{
  width:100%;
  height:100%;
  object-fit:contain!important;
  display:block;
  background:#05070d;
}
.frame-media-modal .prev-vid-grid .prev-vid-card .vid-thumb-play{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%)}
.frame-media-modal .prev-vid-grid .prev-vid-card .lib-thumb-model{position:absolute;left:0;right:0;bottom:0}
body[data-theme="light"] .gen-input-audit{background:#F4F0E7}
body[data-theme="light"] .gen-input-prompt-text{background:#FFFDF9}
body[data-theme="light"] .gen-input-ref-img,body[data-theme="light"] .gen-input-ref-ph{background:#EFE9DC}

.sb-grid-preview-modal{display:flex;flex-direction:column;gap:14px;min-height:0}
.sb-grid-preview-hint{margin:0;font-size:12px;line-height:1.55}
.sb-grid-preview-meta{font-size:12px}
.sb-grid-preview-block{min-width:0}
.sb-grid-preview-label{font-size:12px;font-weight:700;margin:0 0 8px;letter-spacing:.2px}
.sb-grid-preview-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px;flex-wrap:wrap}
.sb-grid-preview-label-row .sb-grid-preview-label{margin:0}
.sb-grid-preview-refs{display:flex;flex-wrap:wrap;gap:12px}
.sb-grid-preview-refs-empty{width:100%;padding:14px 12px;border:1px dashed var(--line);border-radius:10px;font-size:12px;line-height:1.5}
.sb-grid-preview-ref{position:relative;margin:0;width:120px}
.sb-grid-preview-ref-thumb{position:relative;width:120px;height:120px}
.sb-grid-preview-ref img,.sb-grid-preview-ref-ph{
  width:120px;height:120px;object-fit:cover;border-radius:8px;display:block;
  background:#05070d;border:1px solid var(--line);
}
.sb-grid-preview-ref-ph{display:grid;place-items:center;font-size:28px}
.sb-grid-preview-ref-del{
  position:absolute;top:6px;right:6px;z-index:2;
  width:22px;height:22px;border-radius:50%;border:none;
  background:rgba(8,10,16,.72);color:#fff;
  display:grid;place-items:center;cursor:pointer;
  font-size:13px;line-height:1;
  box-shadow:0 1px 4px rgba(0,0,0,.35);
}
.sb-grid-preview-ref-del:hover{background:rgba(239,68,68,.92);color:#fff}
body[data-theme="light"] .sb-grid-preview-ref-del{background:rgba(255,255,255,.88);color:#444}
body[data-theme="light"] .sb-grid-preview-ref-del:hover{background:#dc2626;color:#fff}
.sb-grid-preview-ref figcaption{font-size:10px;color:var(--muted);line-height:1.35;margin-top:4px;word-break:break-word}
.sb-grid-preview-ref figcaption b{display:block;color:var(--text);font-size:11px;font-weight:700}
.sb-grid-preview-prompt{
  margin:0;width:100%;box-sizing:border-box;min-height:min(48vh,520px);height:min(48vh,520px);
  overflow:auto;white-space:pre-wrap;word-break:break-word;resize:vertical;
  font-size:12px;line-height:1.6;padding:10px 12px;border-radius:8px;border:1px solid var(--line);
  background:rgba(0,0,0,.2);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
.sb-grid-preview-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px}
.sb-grid-preview-aspect{padding:3px;height:auto;min-height:0;width:auto}
.sb-grid-preview-aspect button{padding:6px 12px;font-size:12px;font-weight:750;white-space:nowrap}
.sb-grid-preview-loading{padding:12px 2px}
body[data-theme="light"] .sb-grid-preview-prompt{background:#FFFDF9}
body[data-theme="light"] .sb-grid-preview-ref img,body[data-theme="light"] .sb-grid-preview-ref-ph{background:#EFE9DC}

@media (max-width: 960px){
  .frame-prev-split{grid-template-columns:1fr;min-height:0}
  .frame-prev-left,.frame-prev-right{max-height:none}
  .frame-media-modal-body{overflow:auto!important}
}


/* 视频生成确认：展示将提交的参考图 + 提示词 */
.confirm-vid-card{
  width:min(980px, calc(100vw - 28px)) !important;
  max-width:min(980px, calc(100vw - 28px));
  max-height:calc(100vh - 24px);
}
.confirm-vid-body{
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.confirm-vid-actions{
  margin-top:4px;
  position:sticky;
  bottom:0;
  z-index:5;
  padding-top:10px;
  background:linear-gradient(180deg, transparent, var(--panel2) 28%);
  pointer-events:none;
}
.confirm-vid-actions .btn{pointer-events:auto}
.confirm-vid-section{
  border:1px solid var(--line, rgba(120,150,210,.2));
  border-radius:12px;
  padding:10px 12px 12px;
  background:rgba(255,255,255,.02);
}
.confirm-vid-section-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
  flex-wrap:wrap;
}
.confirm-vid-section-title{
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
}
.confirm-vid-section-count{
  font-size:11px;
  color:var(--muted);
}
.confirm-vid-refs{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(108px, 1fr));
  gap:10px;
}
.confirm-vid-ref{
  margin:0;
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
  position:relative;
}
.confirm-vid-ref-del{
  position:absolute;
  top:6px;
  right:6px;
  z-index:2;
  width:22px;
  height:22px;
  border-radius:50%;
  border:none;
  background:rgba(8,10,16,.72);
  color:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
  font-size:13px;
  line-height:1;
  box-shadow:0 1px 4px rgba(0,0,0,.35);
}
.confirm-vid-ref-del:hover{background:rgba(239,68,68,.92);color:#fff}
body[data-theme="light"] .confirm-vid-ref-del{background:rgba(255,255,255,.88);color:#444}
body[data-theme="light"] .confirm-vid-ref-del:hover{background:#dc2626;color:#fff}
.confirm-vid-prompt-edit{
  width:100%;
  min-height:min(48vh, 520px);
  height:min(48vh, 520px);
  max-height:min(70vh, 760px);
  box-sizing:border-box;
  resize:vertical;
  font-size:14px;
  line-height:1.7;
  padding:12px 14px;
}
.confirm-vid-draft-reset{
  flex:0 0 auto;
  font-size:11px;
  padding:2px 8px;
}
.confirm-vid-ref img{
  width:100%;
  aspect-ratio:9/16;
  object-fit:cover;
  border-radius:8px;
  border:1px solid rgba(141,124,255,.28);
  background:rgba(0,0,0,.12);
  display:block;
}
.confirm-vid-ref-label{
  display:block;
  font-size:11px;
  font-weight:700;
  color:var(--purple2, #8d7cff);
}
.confirm-vid-ref-meta{
  display:block;
  font-size:10px;
  color:var(--muted);
  margin-top:1px;
}
.confirm-vid-prompt-body{
  max-height:min(62vh, 640px);
  overflow:auto;
  border-radius:10px;
  padding:2px;
  font-size:14px;
  line-height:1.7;
}
.confirm-vid-prompt-body .vid-prompt-seg{
  margin:0 0 10px;
}
.confirm-vid-prompt-body .vid-prompt-seg:last-child{
  margin-bottom:0;
}
.confirm-vid-empty{
  font-size:12px;
  color:var(--muted);
  padding:8px 2px;
}
body[data-theme="light"] .confirm-vid-section{
  background:rgba(0,0,0,.02);
}
body[data-theme="light"] .confirm-vid-ref img{
  border-color:rgba(90,70,180,.18);
}


/* 视频：对话 / 单参考图选择弹窗 · 更大更全 */
.vid-pick-card{
  width:min(920px, calc(100vw - 24px)) !important;
  max-width:min(920px, calc(100vw - 24px));
  max-height:calc(100vh - 20px);
}
.vid-pick-body{
  max-height:calc(100vh - 96px) !important;
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.vid-pick-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:0 !important;
}
.vid-pick-mode{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  color:var(--muted);
  white-space:nowrap;
}
.vid-pick-mode .select{
  width:auto;
  min-width:128px;
}
.vid-pick-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.vid-pick-row.modal-choice-row{
  align-items:stretch;
  gap:14px;
  padding:12px;
  margin-bottom:0;
  border-radius:12px;
}
.vid-pick-thumbs{
  display:flex;
  gap:8px;
  flex:0 0 auto;
}
.vid-pick-thumb{
  margin:0;
  width:92px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.vid-pick-switch-ref,
.vid-pick-switch-avatar{
  padding:2px 4px;
  font-size:11px;
  line-height:1.2;
  border-radius:6px;
  margin-top:2px;
}
.vid-pick-temp-tag{
  display:inline-block;
  font-size:10px;
  color:var(--green, #27A644);
  font-weight:700;
  text-align:center;
  line-height:1.2;
}
.vid-pick-speech-est{
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:12px;
  font-weight:600;
  color:var(--green, #27A644);
  background:rgba(39,166,68,.08);
  border:1px solid rgba(39,166,68,.25);
  border-radius:6px;
  padding:1px 7px;
  letter-spacing:.2px;
}
.vid-tile-picker-modal{
  position:fixed;
  inset:0;
  z-index:150;
  display:grid;
  place-items:center;
  padding:16px;
}
.vid-tile-picker-modal .modal-card{
  width:min(580px, calc(100vw - 32px));
  max-height:calc(100vh - 32px);
}
.vid-tile-picker-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
  margin:12px 0;
}
.vid-tile-picker-item{
  position:relative;
  display:flex;
  flex-direction:column;
  border:1px solid var(--line);
  border-radius:8px;
  overflow:hidden;
  cursor:pointer;
  background:rgba(255,255,255,.03);
  transition:border-color .15s, transform .15s, box-shadow .15s, outline-color .15s;
}
.vid-tile-picker-item:hover{
  border-color:var(--purple);
  transform:translateY(-1px);
}
.vid-tile-picker-item.is-selected{
  border-color:var(--primary);
  outline:3px solid var(--primary);
  outline-offset:0;
  box-shadow:0 0 0 1px var(--primary) inset, 0 0 0 5px color-mix(in srgb, var(--primary) 22%, transparent);
  background:color-mix(in srgb, var(--primary) 10%, transparent);
}
.vid-tile-picker-check{
  display:none;
  position:absolute;
  top:6px;
  right:6px;
  z-index:2;
  width:22px;
  height:22px;
  border-radius:999px;
  align-items:center;
  justify-content:center;
  padding:0 !important;
  margin:0;
  box-sizing:border-box;
  background:rgba(0, 0, 0, 0.82) !important;
  box-shadow:0 0 0 2px #fff, 0 2px 6px rgba(0, 0, 0, 0.45);
  color:#22c55e !important;
  font-size:14px;
  font-weight:900;
  line-height:1;
  pointer-events:none;
}
.vid-tile-picker-check svg{
  width:14px;
  height:14px;
  display:block;
  flex:0 0 14px;
}
.vid-tile-picker-item.is-selected .vid-tile-picker-check{
  display:flex;
}
body[data-theme="light"] .vid-tile-picker-item.is-selected{
  background:color-mix(in srgb, var(--primary) 12%, #fff);
}
.vid-tile-picker-item img{
  width:100%;
  aspect-ratio:16 / 9;
  object-fit:cover;
  display:block;
  background:#000;
}
.vid-tile-picker-item > span:not(.vid-tile-picker-check),
.vid-tile-picker-item .vid-tile-picker-label{
  font-size:11px;
  padding:3px 6px;
  text-align:center;
  background:rgba(0,0,0,.35);
  color:var(--text);
}
.vid-pick-thumb img{
  width:92px !important;
  height:146px !important;
  object-fit:cover;
  border-radius:9px;
  border:1px solid rgba(141,124,255,.28);
  background:rgba(0,0,0,.12);
  display:block;
}
.vid-pick-thumb figcaption{
  font-size:10px;
  color:var(--muted);
  text-align:center;
  line-height:1.2;
}
.vid-pick-thumb.is-empty .vid-pick-thumb-ph{
  width:92px;
  height:146px;
  border-radius:9px;
  border:1px dashed var(--line, rgba(120,150,210,.28));
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  color:var(--muted);
  background:rgba(255,255,255,.02);
}
.vid-pick-main{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:7px;
}
.vid-pick-head{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:8px 12px;
}
.vid-pick-head b{
  font-size:14px;
}
.vid-pick-meta{
  font-size:11px;
  color:var(--muted);
}
.vid-pick-line{
  display:flex;
  flex-wrap:wrap;
  gap:6px 8px;
  align-items:flex-start;
  font-size:13px;
  line-height:1.55;
}
.vid-pick-line.is-empty{
  color:var(--muted);
  font-size:12px;
}
.vid-pick-speaker{
  flex:0 0 auto;
  font-weight:700;
  color:var(--purple2, #8d7cff);
  padding:1px 8px;
  border-radius:999px;
  background:rgba(141,124,255,.12);
  font-size:11px;
  line-height:1.5;
}
.vid-pick-dialogue{
  flex:1 1 180px;
  min-width:0;
  white-space:pre-wrap;
  word-break:break-word;
}
.vid-pick-desc{
  font-size:12px;
  line-height:1.55;
  color:var(--text, inherit);
  white-space:pre-wrap;
  word-break:break-word;
  max-height:7.8em;
  overflow:auto;
  padding:8px 10px;
  border-radius:9px;
  background:rgba(255,255,255,.03);
  border:1px solid var(--line, rgba(120,150,210,.16));
}
.vid-pick-desc.is-empty{
  color:var(--muted);
}
.vid-pick-desc:has(.vid-pick-desc-edit){
  max-height:none;
  overflow:visible;
  padding:0;
  background:transparent;
  border:none;
}
.vid-pick-desc-edit{
  width:100%;
  min-height:16em;
  height:16em;
  max-height:min(48vh, 420px);
  box-sizing:border-box;
  resize:vertical;
  font-size:13px;
  line-height:1.65;
  padding:10px 12px;
}
.vid-pick-desc-reset{
  margin-top:6px;
  font-size:11px;
  padding:2px 8px;
}
.vid-pick-desc-text{
  white-space:pre-wrap;
  word-break:break-word;
}
.vid-pick-char-refs{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:8px;
}
.vid-pick-char-ref{
  margin:0;
  width:36px;
  flex:0 0 36px;
  display:flex;
  flex-direction:column;
  gap:2px;
  position:relative;
}
.vid-pick-char-ref-del{
  position:absolute;
  top:-4px;
  right:-4px;
  z-index:2;
  width:16px;
  height:16px;
  border-radius:50%;
  border:none;
  background:rgba(8,10,16,.78);
  color:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
  font-size:10px;
  line-height:1;
}
.vid-pick-char-ref-del:hover{background:rgba(239,68,68,.92)}
body[data-theme="light"] .vid-pick-char-ref-del{background:rgba(255,255,255,.9);color:#444}
body[data-theme="light"] .vid-pick-char-ref-del:hover{background:#dc2626;color:#fff}
.vid-pick-char-ref img{
  width:36px;
  height:36px;
  object-fit:cover;
  border-radius:6px;
  border:1px solid var(--line, rgba(120,150,210,.28));
  display:block;
  background:#0a0f18;
}
.vid-pick-char-ref figcaption{
  font-size:9px;
  line-height:1.2;
  color:var(--muted);
  text-align:center;
  word-break:break-all;
}
.vid-pick-actions{
  display:flex;
  flex-direction:column;
  gap:8px;
  flex:0 0 auto;
  justify-content:center;
  min-width:132px;
}
.vid-pick-actions .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .vid-pick-desc{
  background:rgba(0,0,0,.03);
}
body[data-theme="light"] .vid-pick-speaker{
  background:rgba(108,88,220,.1);
}
@media (max-width: 720px){
  .vid-pick-row.modal-choice-row{
    flex-wrap:wrap;
  }
  .vid-pick-actions{
    width:100%;
    flex-direction:row;
  }
  .vid-pick-actions .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
  .vid-pick-thumb, .vid-pick-thumb img, .vid-pick-thumb.is-empty .vid-pick-thumb-ph{
    width:76px;
  }
  .vid-pick-thumb img, .vid-pick-thumb.is-empty .vid-pick-thumb-ph{
    height:120px !important;
  }
}


/* 视频选择弹窗：横版分镜图完整显示（不裁切） */
.vid-pick-card{
  width:min(1180px, calc(100vw - 16px)) !important;
  max-width:min(1180px, calc(100vw - 16px));
  max-height:calc(100vh - 12px);
}
.vid-pick-body{
  max-height:calc(100vh - 84px) !important;
}
.vid-pick-row.modal-choice-row{
  align-items:flex-start;
  gap:16px;
  padding:14px;
}
.vid-pick-thumbs{
  display:flex;
  align-items:flex-start;
  gap:10px;
  flex:0 0 auto;
  max-width:min(56vw, 620px);
}
.vid-pick-thumb{
  margin:0;
  width:auto;
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
}
.vid-pick-thumb.is-landscape{
  width:min(420px, 46vw);
  flex:1 1 280px;
}
.vid-pick-thumb.is-portrait{
  width:108px;
  flex:0 0 108px;
}
.vid-pick-thumb img{
  width:100% !important;
  height:auto !important;
  display:block;
  border-radius:10px;
  border:1px solid rgba(141,124,255,.28);
  background:#0a0f18;
}
/* 横版分镜：完整显示，不 cover 裁切 */
.vid-pick-thumb.is-landscape img{
  aspect-ratio:16/9;
  object-fit:contain !important;
  background:
    linear-gradient(45deg, rgba(255,255,255,.03) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(255,255,255,.03) 25%, transparent 25%),
    #0a0f18;
  background-size:16px 16px;
  background-position:0 0, 0 8px;
  max-height:220px;
}
/* 竖版近景：完整显示 */
.vid-pick-thumb.is-portrait img{
  width:108px !important;
  height:172px !important;
  aspect-ratio:9/16;
  object-fit:contain !important;
}
.vid-pick-thumb figcaption{
  font-size:10px;
  color:var(--muted);
  text-align:center;
  line-height:1.25;
}
.vid-pick-thumb.is-empty .vid-pick-thumb-ph{
  width:108px;
  height:172px;
  border-radius:10px;
  border:1px dashed var(--line, rgba(120,150,210,.28));
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  color:var(--muted);
  background:rgba(255,255,255,.02);
}
.vid-pick-main{
  flex:1 1 280px;
  min-width:220px;
}
.vid-pick-desc{
  max-height:14em;
}
.vid-pick-desc:has(.vid-pick-desc-edit){
  max-height:none;
}
.vid-pick-actions{
  min-width:140px;
  padding-top:2px;
}
@media (max-width: 900px){
  .vid-pick-thumbs{
    max-width:100%;
    width:100%;
  }
  .vid-pick-thumb.is-landscape{
    width:min(100%, 520px);
    flex:1 1 auto;
  }
  .vid-pick-row.modal-choice-row{
    flex-wrap:wrap;
  }
  .vid-pick-actions{
    width:100%;
    flex-direction:row;
    min-width:0;
  }
  .vid-pick-actions .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
}
@media (max-width: 720px){
  .vid-pick-thumb.is-portrait,
  .vid-pick-thumb.is-portrait img,
  .vid-pick-thumb.is-empty .vid-pick-thumb-ph{
    width:84px !important;
  }
  .vid-pick-thumb.is-portrait img,
  .vid-pick-thumb.is-empty .vid-pick-thumb-ph{
    height:132px !important;
  }
  .vid-pick-thumb.is-landscape img{
    max-height:180px;
  }
}


/* 对话视频 / 单参考图视频：弹窗顶部模型与参数选择 */
.vid-pick-params{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 12px;
  padding:10px 12px;
  border:1px solid var(--line,rgba(120,150,210,.2));
  border-radius:12px;
  background:rgba(255,255,255,.03);
}
body[data-theme="light"] .vid-pick-params{
  background:rgba(0,0,0,.025);
}
.vid-pick-param{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  color:var(--muted);
  white-space:nowrap;
}
.vid-pick-param .select,
.vid-pick-param select{
  width:auto;
  min-width:104px;
  max-width:180px;
}
.vid-pick-param:has([data-vid-pick="model"]) .select,
.vid-pick-param:has([data-vid-pick="model"]) select{
  min-width:168px;
  max-width:240px;
}
.vid-pick-param-audio{
  gap:8px;
  padding-left:2px;
}
.vid-pick-param-audio input[type="checkbox"]{
  width:14px;
  height:14px;
  accent-color:var(--accent,#6ea8ff);
}
.vid-pick-params .vid-mode-hint,
.vid-pick-params .vid-res-hint{
  flex:1 0 100%;
  margin:-2px 0 0;
}
.vid-pick-params .vid-res-hint{margin-top:0}
.vid-pick-row.modal-choice-row.is-dialogue{
  border-color:rgba(141,124,255,.38);
  background:color-mix(in srgb, var(--purple2, #9b8cff) 7%, transparent);
}
.vid-pick-legend{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:stretch;
}
.vid-pick-legend-item{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border:1px solid var(--line,rgba(120,150,210,.2));
  border-radius:9px;
  background:rgba(255,255,255,.025);
  font-size:11px;
  color:var(--muted);
}
.vid-pick-legend-item b{font-size:12px;color:var(--text)}
.vid-pick-legend-item.is-dialogue{border-color:rgba(141,124,255,.35)}
.vid-pick-legend-item.is-dialogue b{color:var(--purple2,#9b8cff)}
.vid-pick-legend-item.is-frame{border-color:rgba(86,180,219,.3)}
.vid-pick-legend-item.is-frame b{color:#68c5df}
.vid-pick-action-label{
  display:block;
  margin-bottom:2px;
  color:var(--muted);
  font-size:10px;
  line-height:1.3;
}
.vid-pick-actions .vid-unified-pick{white-space:normal;line-height:1.35}
.vid-pick-param.is-hidden{
  display:none !important;
}
.vid-pick-card.is-portrait-unified [data-panel="ref"] .vid-pick-param:has([data-vid-pick="duration"]){
  display:none !important;
}
.vid-pick-card.is-portrait-unified{
  width:100% !important;
  max-width:100%;
  height:100%;
  max-height:100%;
}
.vid-pick-card.is-portrait-unified .vid-pick-body{
  flex:1 1 auto;
  min-height:0;
  max-height:none !important;
  overflow:hidden;
}
.vid-pick-card.is-portrait-unified [data-panel="ref"]{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
}
.vid-avatar-workbench{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.vid-avatar-banner-bar{
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  min-width:0;
  padding:2px 0 4px;
}
.vid-avatar-banner-bar .vid-avatar-banner-text,
.vid-avatar-banner-bar .modal-hint{
  margin:0;
  font-size:11.5px;
  line-height:1.4;
  color:var(--muted);
  text-align:left;
  min-width:0;
  flex:1 1 auto;
}
.vid-avatar-all-gen-btn{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:6px 18px;
  font-size:12.5px;
  font-weight:600;
  border-radius:8px;
  white-space:nowrap;
  box-shadow:0 2px 8px rgba(255,107,0,.25);
  background:linear-gradient(135deg, #ff7a18 0%, #af002d 100%);
  border:none;
  color:#fff;
  cursor:pointer;
  transition:all .18s ease;
}
.vid-avatar-all-gen-btn:hover:not(:disabled){
  box-shadow:0 4px 14px rgba(255,107,0,.4);
  transform:translateY(-1px);
  filter:brightness(1.08);
}
.vid-avatar-all-gen-btn:active:not(:disabled){
  transform:translateY(0);
}
.vid-avatar-all-gen-btn:disabled{
  opacity:.65;
  cursor:not-allowed;
  box-shadow:none;
  transform:none;
}
.vid-avatar-all-icon{
  font-size:14px;
}
.vid-avatar-zone{
  border:1px solid var(--line, rgba(120,150,210,.18));
  border-radius:12px;
  padding:12px;
  background:rgba(255,255,255,.02);
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
}
body[data-theme="light"] .vid-avatar-zone{
  background:rgba(0,0,0,.015);
}
.vid-avatar-zone-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.vid-avatar-zone-head b{font-size:13px}

/* 对口型：选参考图 · 生成无声画面 通栏一体化功能卡片 */
.vid-avatar-toolbar-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:10px 14px;
  border:1px solid var(--line, rgba(120,150,210,.2));
  border-radius:12px;
  background:rgba(255,255,255,.03);
  min-width:0;
}
body[data-theme="light"] .vid-avatar-toolbar-card{
  background:rgba(0,0,0,.025);
}
.vid-avatar-toolbar-left{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:0;
}
.vid-avatar-toolbar-fields{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 12px;
  min-width:0;
}
.vid-avatar-duration-badge{
  white-space:nowrap;
  color:var(--muted);
}
.vid-avatar-silent-host{
  display:contents;
}
.vid-avatar-silent-host .vid-pick-params{
  display:contents;
}
.vid-avatar-toolbar-fields .vid-mode-hint,
.vid-avatar-toolbar-fields .vid-res-hint{
  flex:1 0 100%;
  margin:2px 0 0;
  font-size:11px;
  color:var(--muted);
}
.vid-avatar-submit-btn{
  flex:0 0 auto;
  align-self:center;
  white-space:nowrap;
  padding:8px 18px;
}
.vid-avatar-zone1-body{
  display:grid;
  grid-template-columns:minmax(0, 1.4fr) minmax(220px, .8fr);
  gap:12px;
  min-height:0;
}
.vid-avatar-zone3-body{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1.2fr);
  gap:16px;
  min-height:0;
  align-items:start;
}
.vid-avatar-zone3-left{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
  border-right:1px solid var(--line, rgba(120,150,210,.18));
  padding-right:16px;
}
.vid-avatar-zone3-right{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
}
.vid-avatar-subhead{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:8px;
  padding-bottom:4px;
  border-bottom:1px dashed var(--line, rgba(120,150,210,.14));
}
.vid-avatar-subhead b{
  font-size:12px;
}
.vid-avatar-grid-wrap{
  min-width:0;
  display:flex;
  flex-direction:column;
  min-height:0;
  gap:8px;
}
.vid-avatar-grid-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
}
.vid-avatar-grid-top-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-shrink:0;
  margin-left:auto;
}
.vid-avatar-shot-chips{
  display:flex;
  gap:6px;
  overflow-x:auto;
  min-width:0;
  padding:2px 2px 6px;
  scrollbar-width:none;
  flex-wrap:nowrap;
  flex:1 1 auto;
}
.vid-avatar-shot-chips::-webkit-scrollbar{
  display:none;
}
.vid-avatar-shot-chip{
  flex:0 0 auto;
  font-size:11px;
  font-weight:600;
  line-height:1;
  padding:5px 10px;
  border-radius:999px;
  border:1px solid var(--line, rgba(120,150,210,.2));
  background:rgba(255,255,255,.04);
  color:var(--muted, #94a3b8);
  cursor:pointer;
  transition:all .15s ease;
  white-space:nowrap;
}
.vid-avatar-shot-chip:hover{
  background:rgba(255,255,255,.1);
  color:var(--text, #e2e8f0);
}
.vid-avatar-shot-chip.active{
  background:var(--primary, #6366f1);
  border-color:var(--primary, #6366f1);
  color:#fff;
}
.vid-avatar-shot-chip.is-current:not(.active){
  border-color:color-mix(in srgb, var(--primary, #6366f1) 50%, transparent);
  color:var(--primary, #6366f1);
}
.vid-avatar-shots-scroll{
  max-height:min(60vh, 580px);
  overflow-y:auto;
  overscroll-behavior:contain;
  scroll-behavior:smooth;
  padding-right:6px;
  display:flex;
  flex-direction:column;
  min-height:220px;
  min-width:0;
}
.vid-avatar-shots-scroll::-webkit-scrollbar{
  width:6px;
}
.vid-avatar-shots-scroll::-webkit-scrollbar-track{
  background:rgba(0,0,0,.15);
  border-radius:3px;
}
.vid-avatar-shots-scroll::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.2);
  border-radius:3px;
}
.vid-avatar-shots-scroll::-webkit-scrollbar-thumb:hover{
  background:rgba(255,255,255,.35);
}
.vid-avatar-shots-list{
  display:flex;
  flex-direction:column;
  gap:16px;
  min-width:0;
}
.vid-avatar-shot-group{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
}
.vid-avatar-shot-group.is-current-shot{
  border:1px solid color-mix(in srgb, var(--primary, #6366f1) 32%, transparent);
  border-radius:10px;
  padding:8px 10px;
  background:rgba(99,102,241,.03);
}
.vid-avatar-shot-group-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:4px 2px;
  border-bottom:1px solid var(--line, rgba(120,150,210,.15));
}
.vid-avatar-shot-group-title{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  font-weight:700;
  color:var(--text);
  min-width:0;
}
.vid-avatar-shot-no{
  white-space:nowrap;
  color:var(--primary, #6366f1);
}
.vid-avatar-shot-name{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.vid-avatar-current-badge{
  font-size:10px;
  font-weight:700;
  padding:2px 6px;
  border-radius:4px;
}
.vid-avatar-shot-group-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-shrink:0;
}
.vid-avatar-shot-empty{
  padding:12px 6px;
  text-align:center;
  border:1px dashed var(--line, rgba(120,150,210,.2));
  border-radius:8px;
}
.vid-avatar-grid-hint{
  padding:2px 4px;
  font-weight:600;
}
.vid-avatar-grid-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin-top:4px;
}
.vid-avatar-lock-ref-btn{
  font-size:12px;
  padding:4px 12px;
  font-weight:500;
  border-radius:6px;
  white-space:nowrap;
  flex-shrink:0;
  cursor:pointer;
}
.vid-avatar-silent-lines-bar{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  padding:8px 12px;
  background:rgba(255,255,255,.025);
  border:1px solid var(--line, rgba(120,150,210,.18));
  border-radius:10px;
  margin-bottom:2px;
}
body[data-theme="light"] .vid-avatar-silent-lines-bar{
  background:rgba(0,0,0,.02);
}
.vid-avatar-lines-bar-label{
  font-size:12px;
  font-weight:600;
  color:var(--text, #e2e8f0);
  margin-right:2px;
  white-space:nowrap;
}
.vid-avatar-line-chip-group{
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  background:rgba(255,255,255,.04);
  border:1.5px solid var(--line, rgba(120,150,210,.25));
  border-radius:20px;
  padding:2px 4px;
  gap:4px;
  transition:all .18s ease;
}
.vid-avatar-line-chip-group.is-video-enabled{
  border-width:2px;
  border-color:#4ade80;
  background:rgba(34,197,94,.08);
  box-shadow:0 0 10px rgba(74,222,128,.35);
  opacity:1;
  filter:none;
}
.vid-avatar-line-chip-group.is-video-enabled:hover{
  border-color:#86efac;
  box-shadow:0 0 14px rgba(74,222,128,.5);
}
.vid-avatar-line-chip-group.is-video-enabled.is-active{
  border-color:#4ade80;
  background:rgba(34,197,94,.14);
  box-shadow:0 0 0 1px #4ade80, 0 0 14px rgba(74,222,128,.45);
}
.vid-avatar-line-chip-group.is-video-enabled.is-locked{
  border-color:#22c55e;
  box-shadow:0 0 12px rgba(34,197,94,.4);
}
.vid-avatar-line-chip-group.is-video-disabled{
  opacity:.50;
  filter:brightness(.78);
  border:1px solid rgba(148,163,184,.22);
  background:rgba(255,255,255,.015);
  box-shadow:none;
}
.vid-avatar-line-chip-group.is-video-disabled:hover{
  opacity:.80;
  filter:brightness(.92);
}
.vid-avatar-line-chip-group.is-video-disabled.is-active{
  opacity:.75;
  filter:brightness(.90);
  border-color:rgba(245,158,11,.45);
  box-shadow:0 0 0 1px rgba(245,158,11,.25);
  background:rgba(245,158,11,.04);
}
body[data-theme="light"] .vid-avatar-line-chip-group{
  background:rgba(0,0,0,.03);
  border-color:rgba(0,0,0,.15);
}
.vid-avatar-line-chip-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:3px 8px;
  border-radius:16px;
  border:none;
  background:transparent;
  color:var(--text, #cbd5e1);
  font-size:12px;
  cursor:pointer;
  transition:all .15s ease;
  white-space:nowrap;
}
.vid-avatar-line-chip-btn:hover{
  color:#fff;
}
.vid-avatar-line-chip-group.is-active .vid-avatar-line-chip-btn{
  color:#fff;
  font-weight:600;
}
.vid-avatar-line-chip-badge{
  font-size:10.5px;
  padding:1px 6px;
  border-radius:10px;
  background:rgba(255,255,255,.1);
  color:var(--muted, #94a3b8);
}
.vid-avatar-line-chip-group.is-locked .vid-avatar-line-chip-badge{
  background:rgba(34,197,94,.2);
  color:#4ade80;
  border:1px solid rgba(34,197,94,.3);
  font-weight:600;
}
.vid-avatar-line-chip-group.is-video-disabled .vid-avatar-line-chip-badge{
  background:rgba(245,158,11,.16);
  color:#fde047;
  border:1px solid rgba(245,158,11,.38);
  font-weight:700;
}
.vid-avatar-silent-toggle-btn{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:3px 10px;
  font-size:11.5px;
  font-weight:700;
  border-radius:14px;
  border:1.5px solid transparent;
  cursor:pointer;
  transition:all .18s ease;
  white-space:nowrap;
  box-shadow:0 1px 2px rgba(0,0,0,.08);
  user-select:none;
}
.vid-avatar-silent-toggle-btn .vid-avatar-toggle-icon{
  font-size:11px;
  line-height:1;
  flex-shrink:0;
}
.vid-avatar-silent-toggle-btn:active{
  transform:scale(0.96);
}
.vid-avatar-silent-toggle-btn.is-enabled{
  background:rgba(34,197,94,.16);
  color:#4ade80;
  border-color:rgba(34,197,94,.55);
}
.vid-avatar-silent-toggle-btn.is-enabled:hover{
  background:rgba(34,197,94,.30);
  border-color:#22c55e;
  color:#86efac;
  box-shadow:0 2px 6px rgba(34,197,94,.25);
}
.vid-avatar-silent-toggle-btn.is-disabled{
  background:rgba(245,158,11,.18);
  color:#fbbf24;
  border-color:rgba(245,158,11,.60);
}
.vid-avatar-silent-toggle-btn.is-disabled:hover{
  background:rgba(245,158,11,.32);
  border-color:#f59e0b;
  color:#fef08a;
  box-shadow:0 2px 6px rgba(245,158,11,.25);
}
body[data-theme="light"] .vid-avatar-line-chip-btn{
  color:#334155;
}
body[data-theme="light"] .vid-avatar-line-chip-group.is-active .vid-avatar-line-chip-btn{
  color:#1d4ed8;
}
body[data-theme="light"] .vid-avatar-line-chip-btn.is-active{
  background:rgba(59,130,246,.12);
  color:#1d4ed8;
}
body[data-theme="light"] .vid-avatar-line-chip-btn.is-locked .vid-avatar-line-chip-badge{
  background:rgba(34,197,94,.15);
  color:#15803d;
}
body[data-theme="light"] .vid-avatar-line-chip-group.is-video-disabled .vid-avatar-line-chip-badge{
  background:#fef3c7;
  color:#b45309;
  border:1px solid #fcd34d;
  font-weight:700;
}
body[data-theme="light"] .vid-avatar-line-chip-group.is-video-enabled{
  border-width:2px;
  border-color:#16a34a;
  background:rgba(22,163,74,.08);
  box-shadow:0 0 8px rgba(22,163,74,.3);
  opacity:1;
  filter:none;
}
body[data-theme="light"] .vid-avatar-line-chip-group.is-video-enabled:hover{
  border-color:#15803d;
  box-shadow:0 0 12px rgba(22,163,74,.4);
}
body[data-theme="light"] .vid-avatar-line-chip-group.is-video-enabled.is-active{
  border-color:#15803d;
  background:rgba(22,163,74,.14);
  box-shadow:0 0 0 1px #15803d, 0 0 10px rgba(22,163,74,.35);
}
body[data-theme="light"] .vid-avatar-line-chip-group.is-video-disabled{
  opacity:.52;
  filter:brightness(.82);
  border:1px solid rgba(0,0,0,.14);
  background:rgba(0,0,0,.02);
  box-shadow:none;
}
body[data-theme="light"] .vid-avatar-line-chip-group.is-video-disabled:hover{
  opacity:.82;
  filter:brightness(1);
}
body[data-theme="light"] .vid-avatar-line-chip-group.is-video-disabled.is-active{
  opacity:.80;
  filter:brightness(.92);
  border-color:rgba(217,119,6,.5);
  box-shadow:0 0 0 1px rgba(217,119,6,.25);
  background:rgba(245,158,11,.04);
}
body[data-theme="light"] .vid-avatar-silent-toggle-btn{
  box-shadow:0 1px 3px rgba(0,0,0,.08);
}
body[data-theme="light"] .vid-avatar-silent-toggle-btn.is-disabled{
  background:#fffbeb;
  color:#b45309;
  border:1.5px solid #d97706;
}
body[data-theme="light"] .vid-avatar-silent-toggle-btn.is-disabled:hover{
  background:#fef3c7;
  color:#92400e;
  border-color:#b45309;
  box-shadow:0 2px 6px rgba(180,83,9,.25);
}
body[data-theme="light"] .vid-avatar-silent-toggle-btn.is-enabled{
  background:#f0fdf4;
  color:#15803d;
  border:1.5px solid #16a34a;
}
body[data-theme="light"] .vid-avatar-silent-toggle-btn.is-enabled:hover{
  background:#dcfce7;
  color:#14532d;
  border-color:#15803d;
  box-shadow:0 2px 6px rgba(21,128,61,.25);
}
body[data-theme="light"] .vid-avatar-shot-chip{
  background:rgba(0,0,0,.04);
  color:#64748b;
  border-color:rgba(0,0,0,.1);
}
body[data-theme="light"] .vid-avatar-shot-chip:hover{
  background:rgba(0,0,0,.08);
  color:#1e293b;
}
body[data-theme="light"] .vid-avatar-shot-chip.active{
  background:var(--primary, #6366f1);
  color:#fff;
}
body[data-theme="light"] .vid-avatar-shots-scroll::-webkit-scrollbar-track{
  background:rgba(0,0,0,.05);
}
body[data-theme="light"] .vid-avatar-shots-scroll::-webkit-scrollbar-thumb{
  background:rgba(0,0,0,.2);
}
body[data-theme="light"] .vid-avatar-shot-group.is-current-shot{
  background:rgba(99,102,241,.04);
}
.vid-avatar-workbench .vid-tile-picker-grid{
  margin:0;
}
.vid-avatar-silent-results,
.vid-avatar-results{
  display:flex;
  flex-wrap:wrap;
  align-content:flex-start;
  gap:8px;
  min-width:0;
}
.vid-avatar-results{
  max-height:480px;
  overflow-y:auto;
  padding-right:4px;
}
.vid-avatar-result{
  width:96px;
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  gap:0;
  padding:0;
  border:1px solid var(--line, rgba(120,150,210,.18));
  border-radius:10px;
  overflow:hidden;
  background:transparent;
  color:inherit;
  text-align:left;
}
.vid-avatar-result.is-selected,
.vid-avatar-result:hover{
  border-color:var(--green, #27A644);
  box-shadow:0 0 0 2px rgba(39,166,68,.25);
}
.vid-avatar-result-play,
.vid-avatar-result-ph{
  width:100%;
  aspect-ratio:9 / 16;
  background:#000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:0;
  border-radius:0;
  color:#fff;
}
.vid-avatar-result-play .lib-video,
.vid-avatar-result video{
  width:100%;
  height:100%;
  max-height:none;
  object-fit:cover;
  display:block;
  pointer-events:none;
}
.vid-avatar-result-play>span{
  position:absolute;
  right:6px;
  bottom:6px;
  padding:2px 6px;
  border-radius:999px;
  background:rgba(0,0,0,.72);
  font-size:10px;
  font-weight:800;
}
.vid-avatar-result-play.lib-media-open{
  position:relative;
}
.vid-avatar-result-pick{
  font-size:11px;
  line-height:1.3;
  padding:5px 6px 6px;
  border:0;
  background:rgba(0,0,0,.35);
  color:inherit;
  text-align:center;
  cursor:default;
}
.vid-avatar-result-actions{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:4px 6px 6px;
}
.vid-avatar-result-actions .vid-avatar-result-use,
.vid-avatar-result-actions .vid-avatar-result-del{
  margin:0;
  width:100%;
  justify-content:center;
}
.vid-avatar-result-use{
  margin:0 6px 6px;
  width:calc(100% - 12px);
  justify-content:center;
}
.vid-avatar-result-use.is-selected{
  border-color:var(--green, #27A644);
  color:var(--green, #27A644);
}
.vid-avatar-result-del{
  margin:0 6px 6px;
  width:calc(100% - 12px);
  justify-content:center;
  opacity:0.75;
}
.vid-avatar-result-del:hover{
  opacity:1;
  color:#ff4d4f !important;
  border-color:rgba(255,77,79,.5) !important;
  background:rgba(255,77,79,.08) !important;
}
.vid-avatar-result-ph{
  font-size:11px;
  padding:8px;
}
.vid-avatar-tts-card{margin:0}
.vid-avatar-tts-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin:0 0 2px;
}
.vid-avatar-tts-actions .btn-ai-voice{margin-left:auto}
.vid-avatar-speakers{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin:0 0 8px;
}
.vid-avatar-speaker-row{
  display:grid;
  grid-template-columns:minmax(72px, 110px) minmax(0, 1fr);
  gap:8px;
  align-items:center;
}
.vid-avatar-speaker-row b{
  font-size:12px;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.vid-avatar-speaker-row .select{width:100%;min-width:0}
.vid-avatar-speaker-row .muted{grid-column:1 / -1}
.vid-avatar-lines{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-height:0;
}
.vid-avatar-line{
  display:grid;
  grid-template-columns:minmax(120px, 160px) minmax(0, 1fr) auto;
  gap:8px;
  align-items:start;
  padding:8px;
  border:1px solid var(--line, rgba(120,150,210,.18));
  border-radius:10px;
  background:rgba(255,255,255,.02);
}
.vid-avatar-line-audio{
  grid-column:1 / -1;
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
  width:100%;
  padding-top:2px;
}
.vid-avatar-line-audio.is-empty{
  padding:6px 8px;
  border:1px dashed var(--line, rgba(120,150,210,.18));
  border-radius:8px;
}
.vid-avatar-line-audio [data-avatar-line-use].is-selected,
.vid-avatar-take-actions [data-avatar-take-pick].is-selected{
  border-color:var(--green, #27A644);
  color:var(--green, #27A644);
}
/* 逐句 TTS 生成中反馈（单分镜对口型弹窗） */
.vid-avatar-line-audio.is-busy{opacity:.55;transition:opacity .15s ease}
.vid-avatar-line-genstatus{
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:2px;
  padding:8px 10px;
  border:1px solid rgba(255,180,92,.4);
  border-radius:8px;
  background:rgba(217,119,6,.1);
  color:#f0b267;
  font-size:12px;
}
.vid-avatar-line-genstatus > span.btn-spinner{margin-right:0;flex:0 0 12px;color:inherit;border-color:currentColor !important}
.vid-avatar-line-genstatus::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(100deg,transparent 18%,rgba(255,255,255,.14) 50%,transparent 82%);
  transform:translateX(-100%);
  animation:avatar-gen-shimmer 1.3s ease-in-out infinite;
}
@keyframes avatar-gen-shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
body[data-theme="light"] .vid-avatar-line-genstatus{
  background:rgba(217,119,6,.08);
  color:#b45309;
  border-color:rgba(217,119,6,.35);
}
.btn.is-generating[disabled]{cursor:wait}
.vid-avatar-take{
  position:relative;
  display:flex;
  align-items:center;
  gap:12px;
  min-height:48px;
  width:100%;
  max-width:100%;
  min-width:0;
  padding:6px 12px;
  border:1px solid rgba(130,80,223,.24);
  border-radius:8px;
  background:rgba(255,255,255,.02);
  box-sizing:border-box;
  transition:border-color .15s, box-shadow .15s;
}
.vid-avatar-take.is-selected{
  border-color:var(--primary);
  outline:2px solid var(--primary);
  outline-offset:0;
  background:color-mix(in srgb, var(--primary) 8%, transparent);
}
.vid-avatar-take-info{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  min-width:0;
}
.vid-avatar-take-play-btn{
  font-size:12px;
  padding:4px 10px;
  font-weight:700;
  cursor:pointer;
  border-radius:6px;
  white-space:nowrap;
  transition:all .15s ease;
}
.vid-avatar-take-play-btn.is-playing{
  background:color-mix(in srgb, var(--primary) 20%, transparent);
  border-color:var(--primary);
  color:var(--primary);
}
.vid-avatar-take-label{
  font-size:11px;
  font-weight:600;
  white-space:nowrap;
}
.vid-avatar-take-dur{
  flex:0 0 auto;
  font-variant-numeric:tabular-nums;
  font-weight:700;
}
.vid-avatar-take-track{
  position:relative;
  flex:1 1 0;
  height:36px;
  min-width:80px;
  border-radius:6px;
  background:linear-gradient(180deg, rgba(130,80,223,.12), rgba(130,80,223,.04));
  border:1px solid rgba(130,80,223,.3);
  overflow:hidden;
  box-sizing:border-box;
  cursor:pointer;
  user-select:none;
  transition:border-color .15s ease;
}
.vid-avatar-take-track:hover{
  border-color:rgba(130,80,223,.65);
}
.vid-avatar-take-track.is-playing{
  border-color:var(--primary);
}
.vid-avatar-take-wave{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
  z-index:1;
}
.vid-avatar-take-progress{
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:0%;
  background:linear-gradient(90deg, rgba(94,106,210,.25), rgba(94,106,210,.45));
  pointer-events:none;
  z-index:2;
}
.vid-avatar-take-playhead{
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  width:2px;
  background:#fff;
  box-shadow:0 0 6px var(--primary), 0 0 2px #fff;
  pointer-events:none;
  transform:translateX(-50%);
  display:none;
  z-index:3;
}
.vid-avatar-take-track.is-playing .vid-avatar-take-playhead{
  display:block;
}
.vid-avatar-take-ctrls{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}
.vid-avatar-speed-selects{
  display:flex;
  align-items:center;
  gap:4px;
}
.vid-avatar-speed-sel{
  height:26px;
  font-size:11px;
  padding:1px 6px;
  border-radius:6px;
  background:var(--bg, #1a1a24);
  border:1px solid var(--line, rgba(120,150,210,.25));
  color:var(--text, #e2e8f0);
  cursor:pointer;
}
.vid-avatar-speed-sel:hover{
  border-color:var(--primary);
}
.vid-avatar-take-actions{
  display:flex;
  align-items:center;
  gap:6px;
}
.vid-avatar-take-actions .btn{
  white-space:nowrap;
  padding:4px 10px;
}
.vid-avatar-take-del{
  opacity:0.75;
}
.vid-avatar-take-del:hover{
  opacity:1;
  color:#ff4d4f !important;
  border-color:rgba(255,77,79,.5) !important;
  background:rgba(255,77,79,.08) !important;
}
.vid-silent-line-param{
  min-width:min(280px, 100%);
}
.vid-silent-line-param .select{min-width:220px}
.vid-avatar-packs{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
}
.vid-avatar-pack{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  width:100%;
  padding:10px 12px;
  border:1px solid var(--line, rgba(120,150,210,.18));
  border-radius:10px;
  background:transparent;
  color:inherit;
  text-align:left;
  cursor:default;
}
.vid-avatar-pack.is-selected{
  border-color:var(--primary);
  outline:2px solid var(--primary);
  outline-offset:0;
  background:color-mix(in srgb, var(--primary) 8%, transparent);
}
.vid-avatar-pack.is-blocked{
  opacity:.72;
}
.vid-avatar-pack-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  width:100%;
  min-width:0;
}
.vid-avatar-pack-status{
  flex:0 0 auto;
  font-size:11px;
  color:var(--muted);
}
.vid-avatar-pack-status.is-selected{
  color:var(--green, #27A644);
  font-weight:700;
}
.vid-avatar-pack-reason{
  font-size:11px;
  color:var(--warn, #c2410c);
}
.vid-avatar-line-meta{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.vid-avatar-line-meta b{font-size:12px}
.vid-avatar-line-text{
  width:100%;
  min-height:54px;
  resize:vertical;
  font:inherit;
  color:inherit;
  background:rgba(0,0,0,.18);
  border:1px solid var(--line, rgba(120,150,210,.18));
  border-radius:8px;
  padding:6px 8px;
}
body[data-theme="light"] .vid-avatar-line-text{
  background:#fff;
}
.vid-avatar-line-tools{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
  min-width:108px;
}
.vid-avatar-slot{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.vid-avatar-slot [data-avatar-source-status].is-selected{
  color:var(--green, #27A644);
  font-weight:700;
}
@media (max-width:1100px){
  .vid-avatar-zone1-body{
    grid-template-columns:1fr;
  }
  .vid-avatar-zone3-body{
    grid-template-columns:1fr;
  }
  .vid-avatar-zone3-left{
    border-right:0;
    padding-right:0;
    border-bottom:1px solid var(--line, rgba(120,150,210,.18));
    padding-bottom:14px;
  }
  .vid-avatar-line{
    grid-template-columns:1fr;
  }
  .vid-avatar-line-tools{align-items:stretch}
}
.vid-pick-card.is-portrait-unified .vid-pick-actions{
  flex-direction:column;
  align-items:stretch;
  min-width:148px;
}

/* 视频选择弹窗：Tab 切换栏与对口型面板 */
.vid-pick-tabs{
  display:flex;
  gap:4px;
  padding:3px;
  background:rgba(255,255,255,.05);
  border:1px solid var(--line, rgba(120,150,210,.18));
  border-radius:10px;
  width:fit-content;
  align-self:center;
  margin:0;
  flex:0 0 auto;
}
/* 切换栏并入标题栏：三列网格布局，标题靠左、切换按钮严格水平居中、关闭按钮靠右 */
.modal-head.vid-pick-head{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  flex-wrap:nowrap;
}
.modal-head.vid-pick-head b{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  min-width:0;
  justify-self:start;
}
.modal-head.vid-pick-head .vid-pick-tabs{
  margin:0;
  justify-self:center;
}
.modal-head.vid-pick-head .modal-close{
  justify-self:end;
}
body[data-theme="light"] .vid-pick-tabs{
  background:rgba(0,0,0,.04);
}
.vid-pick-tab{
  padding:6px 18px;
  border-radius:7px;
  border:none;
  background:transparent;
  color:var(--muted);
  font-size:13px;
  font-weight:500;
  cursor:pointer;
  transition:all .15s ease;
}
.vid-pick-tab:hover{
  color:var(--text, #fff);
  background:rgba(255,255,255,.06);
}
body[data-theme="light"] .vid-pick-tab:hover{
  background:rgba(0,0,0,.05);
}
.vid-pick-tab.active{
  color:var(--btn-primary-text, #fff);
  background:var(--accent, #6ea8ff);
  font-weight:600;
  box-shadow:0 1px 4px rgba(0,0,0,.2);
}
.vid-pick-tab-panel{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.vid-pick-model-fixed{
  font-weight:600;
  color:var(--accent, #6ea8ff);
  padding:2px 8px;
  border-radius:6px;
  background:rgba(110,168,255,.12);
  border:1px solid rgba(110,168,255,.25);
  font-size:12px;
}
.vid-pick-avatar-prompt{
  margin-top:6px;
  min-width:0;
}
.vid-pick-avatar-prompt label{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:8px;
  font-size:11px;
  color:var(--muted);
  min-width:0;
  white-space:nowrap;
}
.vid-pick-avatar-prompt input{
  flex:1 1 auto;
  min-width:0;
  width:auto;
}
.vid-pick-avatar-voice,
.vid-pick-avatar-audio{
  margin-top:8px;
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
}
.vid-pick-avatar-voice-status{
  font-size:12px;
  color:var(--muted,#81786d);
}
.vid-voice-bind{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:11px;
  color:var(--muted,#81786d);
}
.vid-voice-bind select{
  width:100%;
  max-width:100%;
}
.vid-pick-avatar-voice label,
.vid-pick-avatar-audio label{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:11px;
  color:var(--muted);
  min-width:0;
}
.vid-pick-avatar-audio select{
  width:100%;
  max-width:100%;
}
.vid-pick-avatar-audio-tools{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  min-width:0;
}
.vid-pick-avatar-audio-tools audio{
  height:28px;
  max-width:100%;
  flex:1 1 160px;
  min-width:0;
}
.vid-pick-params[data-avatar-params]{
  flex-wrap:nowrap;
  overflow:auto;
}
.vid-pick-avatar-audio-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 14px;
  padding:10px 12px;
  border:1px solid var(--line, rgba(120,150,210,.18));
  border-radius:12px;
  background:rgba(255,255,255,.03);
}
body[data-theme="light"] .vid-pick-avatar-audio-bar{
  background:rgba(0,0,0,.02);
}
.vid-pick-avatar-audio-meta{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
  flex:1 1 220px;
}
.vid-pick-avatar-audio-meta b{
  font-size:12px;
}
.vid-pick-avatar-row{
  display:flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
}
.vid-pick-avatar-check{
  flex:0 0 auto;
  width:16px;
  height:16px;
}
.vid-pick-audio-card .modal-body{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.vid-pick-audio-group{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.vid-pick-audio-item{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
  width:100%;
  padding:8px 10px;
  border:1px solid var(--line, rgba(120,150,210,.18));
  border-radius:8px;
  background:transparent;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.vid-pick-audio-item.is-selected,
.vid-pick-audio-item:hover{
  border-color:var(--accent,#6ea8ff);
  background:rgba(110,168,255,.08);
}
.vid-pick-audio-others{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.vid-pick-speaker{
  gap:8px;
}
.vid-pick-speaker label{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.vid-pick-tts-preview{
  flex:0 0 auto;
}
.vid-pick-tts-preview.is-playing{
  color:var(--accent, #7aa2ff);
}
.vid-pick-sound{
  flex:0 1 auto;
  white-space:nowrap;
  align-items:center;
  gap:8px;
}
.vid-pick-sound-tabs{
  width:auto;
  flex:0 0 auto;
}
.vid-pick-sound-tabs .vid-pick-tab{
  padding:5px 12px;
  font-size:12px;
}
.vid-pick-avatar-dropzone{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  width:100%;
  padding:18px 16px;
  border:1px dashed var(--line, rgba(120,150,210,.35));
  border-radius:12px;
  background:rgba(255,255,255,.02);
  color:var(--muted);
  text-align:center;
  cursor:pointer;
}
.vid-pick-avatar-dropzone b{
  color:var(--text, #fff);
  font-size:13px;
  font-weight:600;
}
.vid-pick-avatar-dropzone span{
  font-size:12px;
  line-height:1.45;
  max-width:36em;
}
.vid-pick-avatar-dropzone.is-dragover,
.vid-pick-avatar-dropzone:hover{
  border-color:var(--accent,#6ea8ff);
  background:rgba(110,168,255,.08);
}
body[data-theme="light"] .vid-pick-avatar-dropzone{
  background:rgba(0,0,0,.02);
}
.vid-pick-avatar-upload{
  flex:0 0 auto;
  white-space:nowrap;
}
.vid-confirm-warn{
  color:#c9a227;
  margin:8px 0 0;
}
.vid-pick-empty-hint{
  padding:24px 16px;
  text-align:center;
  color:var(--muted);
  font-size:13px;
  background:rgba(255,255,255,.02);
  border:1px dashed var(--line, rgba(120,150,210,.2));
  border-radius:10px;
}

.vid-pick-row-duration{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-top:2px;
  padding-top:8px;
  border-top:1px solid var(--line, rgba(120,150,210,.18));
  font-size:11px;
  color:var(--muted);
  white-space:nowrap;
}
.vid-pick-row-duration .select,
.vid-pick-row-duration select{
  width:auto;
  min-width:84px;
  max-width:110px;
}
@media (max-width:900px){
  .vid-pick-card.is-portrait-unified .vid-pick-actions{
    flex-direction:column;
    width:100%;
  }
  .vid-pick-row-duration{
    width:100%;
  }
}
@media (max-width:720px){
  .vid-pick-params{gap:8px}
  .vid-pick-param{width:calc(50% - 6px)}
  .vid-pick-param .select,
  .vid-pick-param select{min-width:0;width:100%;max-width:none}
  .vid-pick-param-audio{width:auto}
  .vid-pick-legend-item{flex:1 1 180px;justify-content:center}
  .vid-pick-action-label{display:none}
}


/* —— 第3步 Skill 过期黄条：固定流程图 —— */
.adapt-skill-gate{margin:8px 12px 0;border-radius:12px}
.skill-flow{display:flex;flex-direction:column;gap:8px;margin-top:2px}
.skill-flow-why{font-size:12px;line-height:1.5;color:inherit;opacity:.92}
.skill-flow-steps{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;
}
.skill-flow-steps li{
  display:flex;flex-direction:column;gap:4px;align-items:flex-start;
  padding:8px 8px 7px;border-radius:10px;
  border:1px solid rgba(180,120,40,.22);
  background:rgba(255,255,255,.35);
  min-height:58px;
}
.skill-flow-steps li.is-now{
  border-color:rgba(217,119,6,.55);
  background:rgba(251,191,36,.22);
  box-shadow:0 0 0 1px rgba(217,119,6,.12);
}
.skill-flow-steps .sf-n{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:999px;
  font-size:11px;font-weight:700;
  background:rgba(146,64,14,.12);color:#92400e;
}
.skill-flow-steps li.is-now .sf-n{background:#d97706;color:#fff}
.skill-flow-steps .sf-t{font-size:11px;line-height:1.35;color:#78350f;font-weight:600}
.skill-flow-detail{
  font-size:12px;line-height:1.45;padding:6px 8px;border-radius:8px;
  background:rgba(146,64,14,.08);color:#7c2d12;font-weight:600;
}
.skill-flow-actions{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px;
}
.skill-flow-skip{font-size:11px}
body[data-theme="dark"] .skill-flow-steps li{
  background:rgba(255,196,120,.08);border-color:rgba(255,196,120,.18);
}
body[data-theme="dark"] .skill-flow-steps li.is-now{
  background:rgba(255,180,80,.16);border-color:rgba(255,180,80,.4);
}
body[data-theme="dark"] .skill-flow-steps .sf-n{background:rgba(255,196,120,.16);color:#ffd9a0}
body[data-theme="dark"] .skill-flow-steps li.is-now .sf-n{background:#f59e0b;color:#1a1208}
body[data-theme="dark"] .skill-flow-steps .sf-t{color:#ffe2b8}
body[data-theme="dark"] .skill-flow-detail{background:rgba(255,180,80,.1);color:#ffd7a8}

/* 第4步轻提示 */
.skill-stale-soft{
  display:flex;align-items:flex-start;gap:8px;
  margin:8px 0 0;padding:8px 10px;border-radius:10px;
  border:1px dashed rgba(217,119,6,.35);
  background:rgba(251,191,36,.1);
  color:#92400e;font-size:12px;line-height:1.45;
}
.skill-stale-soft-ico{
  flex:0 0 auto;width:16px;height:16px;margin-top:1px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:800;font-style:italic;
  background:rgba(217,119,6,.18);color:#b45309;
}
body[data-theme="dark"] .skill-stale-soft{
  border-color:rgba(255,196,120,.28);background:rgba(255,180,80,.08);color:#ffd9a0;
}
body[data-theme="dark"] .skill-stale-soft-ico{background:rgba(255,180,80,.16);color:#ffcc80}
.warn-gate-quality{opacity:.95}
@media (max-width: 920px){
  .skill-flow-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* 第4步轻提示带一键重写 */
.skill-stale-soft{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
.skill-stale-soft-text{flex:1 1 220px;min-width:0}
.skill-stale-soft .btn-skill-auto-rewrite{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}

/* 全面检查提示词 */
.prompt-review-list{display:flex;flex-direction:column;gap:12px;max-height:min(70vh,720px);overflow:auto;padding-right:4px}
.prompt-review-shot{
  border:1px solid var(--line, rgba(0,0,0,.08));
  border-left:4px solid var(--shot-accent, #c2a86e);
  border-radius:12px;padding:10px 12px;background:rgba(255,255,255,.55);
}
body[data-theme="dark"] .prompt-review-shot{background:rgba(255,255,255,.03)}
.prompt-review-shot-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}
.prompt-review-shot-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.prompt-review-meta{margin-top:4px;font-size:11px;line-height:1.4;color:var(--muted,#8a7a68)}
.prompt-review-frames{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.prompt-review-frame{
  border:1px solid rgba(0,0,0,.06);border-radius:10px;padding:8px;background:rgba(255,248,235,.55);
}
body[data-theme="dark"] .prompt-review-frame{background:rgba(255,196,120,.06);border-color:rgba(255,196,120,.12)}
.prompt-review-frame-head{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:6px;font-size:12px}
.prompt-review-frame-body{font-size:12px;line-height:1.45;color:var(--text,#3d3429);word-break:break-word}
.quality-flags .btn-skill-auto-rewrite{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}


/* 合并黄条：一键重写 + 可选服装色 */
.warn-gate-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex:0 0 auto}
.quality-flags-actions-only{margin:6px 0 0}
.quality-flags-actions-only .quality-flag{display:none}


/* 一键重写：第 2 步分镜脚本进度面板 */
.rewrite-progress-panel{margin-top:10px;padding-top:8px;border-top:1px solid rgba(255,255,255,.06)}
.rewrite-progress-panel[hidden]{display:none!important}
.rewrite-progress-panel .rewrite-pipeline{margin-top:0}
.rewrite-progress-panel .run-progress-wrap{margin-top:8px}
.rewrite-progress-panel .run-now{font-size:11px;line-height:1.45;color:var(--muted,#9aa8c7)}
body[data-theme="light"] .rewrite-progress-panel{border-top-color:rgba(0,0,0,.06)}


/* 镜头旁白：全宽主视图 + 左侧 STEP WORKBENCH 联动工作台 */
.narration-split{
  display:block;
  min-height:0;
  width:100%;
}
.narration-main{
  min-width:0;
  min-height:0;
  width:100%;
}
.narration-main-title{align-items:center;gap:16px}
.narration-main-title > div,
.narration-main-title > .badge{flex:0 0 auto}
.narr-window-count-hint{
  flex:1 1 auto;min-width:0;max-width:none;
  margin:0;padding:8px 12px;
  border:1px solid rgba(245,158,11,.38);
  border-radius:10px;
  background:#FFF6D8;
  color:#7a5200;
}
.narr-window-count-hint-kicker{
  margin:0 0 2px;
  font-size:10px;
  font-weight:900;
  letter-spacing:.6px;
  color:#b45309;
}
.narr-window-count-hint p{
  margin:0;
  font-size:12px;
  line-height:1.55;
  color:#7a5200;
}
body[data-theme="dark"] .narr-window-count-hint{
  background:rgba(245,158,11,.16);
  border-color:rgba(251,191,36,.42);
  color:#ffe8b0;
}
body[data-theme="dark"] .narr-window-count-hint-kicker{color:#fbbf24}
body[data-theme="dark"] .narr-window-count-hint p{color:#ffe8b0}
@media (max-width: 820px){
  .narration-main-title{flex-wrap:wrap}
  .narr-window-count-hint{flex-basis:100%;order:3}
}
.tts-style-input{min-height:64px;resize:vertical;font-size:11.5px;line-height:1.4}
.tts-section-label{
  margin-top:6px;
  margin-bottom:2px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.02em;
  color:var(--purple2,#8d7cff);
}
.tts-cfg-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:2px 0 4px}
.tts-hint{font-size:9.5px;line-height:1.25;margin-top:-2px;margin-bottom:4px;color:var(--muted,#9aa8c7)}
.tts-quick-tags{
  display:flex;
  align-items:center;
  gap:4px;
  flex-wrap:wrap;
  margin:2px 0 6px;
}
.tts-quick-label{font-size:9.5px;color:var(--muted,#9aa8c7)}
.tts-tag-btn{padding:2px 5px;font-size:10px;line-height:1.2;border-radius:4px}
.voice-profile-card{
  margin:4px 0 8px;
  padding:8px;
  border:1px solid var(--line, rgba(255,255,255,.08));
  border-radius:10px;
  background:rgba(125,108,255,.06);
}
.voice-profile-select-row{display:flex;gap:6px;align-items:center;margin:0 0 6px}
.voice-profile-select-row .select{flex:1;min-width:0}
.df-asset-trash-tabs{margin:0 0 10px}
.df-asset-trash-media{min-height:72px;display:grid;place-items:center}
.df-asset-trash-video{width:100%;max-height:160px;background:#000}
body[data-theme="light"] .voice-profile-card{background:rgba(139,92,246,.06)}
.voice-profile-summary{font-size:10.5px;line-height:1.4;margin:0 0 6px}
.seed-audio-row{display:flex;gap:6px;align-items:center;margin:6px 0 0}
.seed-audio-row .btn{flex:1;min-width:0;font-size:11px;padding:4px 8px}
.seed-audio-row .btn.danger{color:#ff8080;border-color:rgba(255,128,128,.35)}
.seed-audio-preview{margin:6px 0 0;display:flex;flex-direction:column;gap:4px}
.seed-audio-preview audio{width:100%;height:28px}
.seed-audio-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.seed-audio-name{font-size:10.5px;line-height:1.4;word-break:break-all}
.voice-manual-seed-hint{
  margin:0 0 8px;
  padding:6px 8px;
  border-radius:8px;
  font-size:11px;
  line-height:1.5;
  background:rgba(139,92,246,.10);
  border:1px solid rgba(139,92,246,.28);
}
.narration-dict{margin-top:10px}
.narration-dict-panel{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
.narration-dict-panel .muted{font-size:10.5px;line-height:1.45;margin:0 0 6px}
.narration-dict-panel .edit-area{width:100%;min-height:140px;margin:0 0 8px;resize:vertical}
.narration-dict-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end}
.voice-profile-dirty{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  margin:0 0 8px;
  padding:6px 8px;
  border-radius:8px;
  border:1px solid rgba(245,158,11,.45);
  background:rgba(245,158,11,.12);
  font-size:11px;
  color:#ffe8b0;
}
body[data-theme="light"] .voice-profile-dirty{color:var(--orange)}
.voice-profile-saveas{display:flex;gap:6px;align-items:center;margin:0 0 8px}
.voice-profile-saveas .search{flex:1;min-width:0}
.voice-chip-row{display:flex;flex-wrap:wrap;gap:4px;margin:2px 0 4px}
.voice-chip{
  border:1px solid var(--line, rgba(255,255,255,.14));
  background:transparent;
  color:inherit;
  border-radius:99px;
  padding:3px 8px;
  font-size:10.5px;
  line-height:1.2;
  cursor:pointer;
}
.voice-chip.is-on{
  border-color:rgba(125,108,255,.7);
  background:rgba(125,108,255,.18);
  font-weight:700;
}
body[data-theme="light"] .voice-chip.is-on{background:rgba(139,92,246,.14);border-color:#8b5cf6}
.tts-rail-actions{display:flex;flex-direction:column;gap:5px;margin-top:6px}
.tts-rail-actions .btn{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.tts-footnote{font-size:10px;line-height:1.4;margin:2px 0 0}
.side-workbench input[type="range"]{
  width:100%;
  accent-color:var(--accent,#d97757);
  height:24px;
  margin:2px 0;
}
body[data-theme="light"] .tts-section-label{color:#8b5cf6}


/* 一键自动 / 一键重写 小白说明 */
.adapt-actions-hint,
.auto-rewrite-hint{
  margin-top:6px;
  font-size:11px;
  line-height:1.45;
  color:var(--muted,#9aa8c7);
}
.adapt-actions-audit .auto-rewrite-hint{
  margin-top:0;
}
.adapt-actions-rewrite-all{
  flex-direction:column;
  align-items:stretch;
  /* column 方向禁止 wrap：wrap 时分行宽度取子项 max-content（质检待办整行≈380px），
     子项不随窄栏收缩并外溢，撑宽 workbench 形成隐藏横向滚动（左缘裁切根因） */
  flex-wrap:nowrap;
}
.adapt-actions-rewrite-all > .btn{
  width:100%;
}
.adapt-actions-hint b,
.auto-rewrite-hint b{
  color:var(--text,#e8eefc);
  font-weight:650;
}
.adapt-actions-hint .hint-note,
.auto-rewrite-hint .hint-note{
  display:inline-block;
  margin-top:2px;
  opacity:.9;
}
body[data-theme="light"] .adapt-actions-hint b,
body[data-theme="light"] .auto-rewrite-hint b{
  color:var(--text);
}


/* 第4步侧栏：16:9 横版主干全流程 vs 9:16 竖版/近景衍生 vs 文案一键重写 三维拉开边界 */
#storyboardWorkbench .sb-pipeline-all{
  margin-top:12px;
  padding:12px;
  border-radius:10px;
  border:1px solid rgba(217,119,87,.38);
  background:linear-gradient(160deg,rgba(217,119,87,.10) 0%,rgba(255,255,255,.90) 75%);
  box-shadow:0 2px 8px rgba(217,119,87,.08);
}
#storyboardWorkbench .sb-pipeline-closeup{
  margin-top:12px;
  padding:12px;
  border-radius:10px;
  border:1px solid rgba(99,102,241,.35);
  background:linear-gradient(160deg,rgba(99,102,241,.09) 0%,rgba(255,255,255,.90) 75%);
  box-shadow:0 2px 8px rgba(99,102,241,.08);
}
#storyboardWorkbench .sb-pipeline-grid{
  margin-top:12px;
  padding:12px;
  border-radius:10px;
  border:1px solid rgba(14,116,144,.38);
  background:linear-gradient(160deg,rgba(14,116,144,.10) 0%,rgba(255,255,255,.90) 75%);
  box-shadow:0 2px 8px rgba(14,116,144,.08);
}
#storyboardWorkbench[data-sb-workflow="nine_grid"] #runPanel-sb-wide,
#storyboardWorkbench[data-sb-workflow="nine_grid"] #runPanel-sb-detail,
#storyboardWorkbench[data-sb-workflow="nine_grid"] #runPanel-sb-all,
#storyboardWorkbench[data-sb-workflow="nine_grid"] #runPanel-sb-closeup,
#storyboardWorkbench[data-sb-workflow="nine_grid"] #sbPerFrameParams{
  display:none !important;
}
#storyboardWorkbench[data-sb-workflow="nine_grid"] #runPanel-sb-params[open] #sbGridParamPanel{
  display:block !important;
}
#storyboardWorkbench[data-sb-workflow="nine_grid"] #runPanel-sb-params[open] #sbGridUpscalePanel{
  display:block;
}
#storyboardWorkbench[data-sb-workflow="per_frame"] #runPanel-sb-grid,
#storyboardWorkbench:not([data-sb-workflow="nine_grid"]) #runPanel-sb-grid{
  display:none !important;
}
.sb-grid-lock-chip{
  margin-top:8px;
  font-size:12px;
  font-weight:750;
  color:#0e7490;
  background:rgba(14,116,144,.08);
  border:1px solid rgba(14,116,144,.28);
  border-radius:8px;
  padding:6px 10px;
}
.sb-params-fold{
  overflow:hidden;
}
.sb-params-fold > summary.sb-params-summary{
  list-style:none;
  cursor:pointer;
  user-select:none;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
#storyboardWorkbench .sb-params-fold > summary.sb-params-summary{
  align-items:center;
}
#storyboardWorkbench .sb-params-fold > summary.sb-params-summary > div:first-child{
  flex:1 1 auto;
  min-width:0;
}
.sb-params-fold > summary.sb-params-summary::-webkit-details-marker,
.sb-params-fold > summary.sb-params-summary::marker{
  display:none;
  content:"";
}
.sb-params-fold:not([open]):hover{
  border-color:rgba(14,116,144,.42);
}
.sb-params-fold[open] > summary.sb-params-summary{
  padding-bottom:8px;
  margin-bottom:2px;
  border-bottom:1px dashed rgba(148,163,184,.38);
}
.sb-params-summary-side{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.sb-params-summary-chips{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  align-items:center;
}
.sb-params-toggle{
  display:inline-flex;
  align-items:center;
  gap:4px;
  flex:0 0 auto;
  min-height:28px;
  padding:4px 11px;
  border-radius:var(--radius-btn, 8px);
  font-size:12px;
  font-weight:750;
  line-height:1.2;
  color:#fff;
  background:#0e7490;
  border:1px solid #0e7490;
  box-shadow:none;
  pointer-events:none;
}
.sb-params-toggle::after{
  content:"▾";
  font-size:11px;
  line-height:1;
  transition:transform .15s ease;
}
.sb-params-fold[open] .sb-params-toggle{
  color:#0e7490;
  background:rgba(14,116,144,.10);
  border-color:rgba(14,116,144,.42);
}
.sb-params-fold[open] .sb-params-toggle::after{
  transform:rotate(180deg);
}
.sb-params-fold:not([open]):hover .sb-params-toggle{
  background:#0b647a;
  border-color:#0b647a;
}
.sb-params-chip{
  display:inline-flex;
  align-items:center;
  padding:1px 7px;
  border-radius:999px;
  font-size:10px;
  font-weight:750;
  line-height:1.5;
  background:rgba(14,116,144,.10);
  border:1px solid rgba(14,116,144,.28);
  color:#0e7490;
}
.sb-params-chip.is-upscale{
  background:rgba(16,185,129,.14);
  border-color:rgba(16,185,129,.35);
  color:#047857;
}
.sb-params-chip.is-fallback{
  background:rgba(217,119,6,.12);
  border-color:rgba(217,119,6,.38);
  color:#b45309;
}
.sb-params-body{
  margin-top:8px;
}
.sb-params-fold:not([open]) > .sb-params-body{
  display:none !important;
}
.sb-params-body .sb-grid-param-panel,
.sb-params-body .sb-grid-upscale-panel{
  margin-top:0;
}
.sb-params-body .sb-grid-upscale-panel{
  margin-top:8px;
}
body[data-theme="dark"] .sb-params-chip{
  background:rgba(125,211,232,.12);
  border-color:rgba(125,211,232,.28);
  color:#7dd3e8;
}
body[data-theme="dark"] .sb-params-chip.is-upscale{
  background:rgba(52,211,153,.16);
  border-color:rgba(52,211,153,.36);
  color:#6ee7b7;
}
body[data-theme="dark"] .sb-params-chip.is-fallback{
  background:rgba(251,191,36,.16);
  border-color:rgba(251,191,36,.36);
  color:#fbbf24;
}
body[data-theme="dark"] .sb-params-toggle{
  color:#082f3a;
  background:#7dd3e8;
  border-color:#7dd3e8;
}
body[data-theme="dark"] .sb-params-fold:not([open]):hover .sb-params-toggle{
  background:#a5e4f3;
  border-color:#a5e4f3;
}
body[data-theme="dark"] .sb-params-fold[open] .sb-params-toggle{
  color:#7dd3e8;
  background:rgba(125,211,232,.12);
  border-color:rgba(125,211,232,.42);
}
body[data-theme="dark"] .sb-params-fold:not([open]):hover{
  border-color:rgba(125,211,232,.42);
}
body[data-theme="dark"] .sb-params-fold[open] > summary.sb-params-summary{
  border-bottom-color:rgba(148,163,184,.28);
}
.sb-grid-param-panel{
  margin-top:8px;
  padding:10px;
  border:1px solid rgba(14,116,144,.28);
  border-radius:10px;
  background:rgba(14,116,144,.07);
}
.sb-grid-param-copy b{
  display:block;
  font-size:12px;
  font-weight:800;
  color:#0e7490;
}
.sb-grid-param-copy .muted{
  display:block;
  margin-top:3px;
  font-size:11px;
  line-height:1.4;
}
.sb-grid-param-controls{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(100px,.45fr);
  gap:6px 8px;
  margin-top:8px;
}
.sb-grid-param-controls .run-model-label{
  align-self:end;
}
.sb-grid-param-status{
  min-height:16px;
  margin-top:6px;
  font-size:11px;
}
.sb-grid-param-warning{
  margin-top:4px;
  color:#b45309;
  font-size:10px;
  line-height:1.35;
}
.sb-grid-param-notes{
  margin-top:6px;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.sb-grid-param-hint{
  margin-top:2px;
  color:#64748b;
  font-size:10px;
  line-height:1.35;
}
.sb-grid-param-notes .sb-grid-param-hint,
.sb-grid-param-notes .sb-grid-param-warning{
  margin-top:0;
}
body[data-theme="dark"] .sb-grid-param-copy b{
  color:#7dd3e8;
}
body[data-theme="dark"] .sb-grid-param-panel{
  border-color:rgba(125,211,232,.28);
  background:rgba(14,116,144,.16);
}
body[data-theme="dark"] .sb-grid-param-warning{
  color:#fcd34d;
}
body[data-theme="dark"] .sb-grid-param-hint{
  color:#94a3b8;
}
.sb-grid-upscale-panel{
  margin-top:8px;
  padding:10px;
  border:1px solid rgba(16,185,129,.28);
  border-radius:10px;
  background:rgba(16,185,129,.06);
}
.sb-grid-upscale-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
}
.sb-grid-upscale-panel .sb-grid-param-copy b{
  color:#047857;
}
.sb-grid-upscale-specs{
  margin-top:8px;
  display:flex;
  flex-direction:column;
  gap:5px;
  font-size:11px;
}
.sb-grid-spec-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
}
.sb-grid-spec-row span:last-child{
  text-align:right;
  font-size:11px;
  max-width:68%;
}
.sb-grid-spec-row small{
  display:block;
  margin-top:1px;
  font-size:10px;
  font-weight:500;
  color:var(--muted);
  word-break:break-all;
}
.sb-grid-upscale-badge{
  display:inline-block;
  padding:1px 6px;
  border-radius:4px;
  font-size:10px;
  font-weight:700;
  background:rgba(16,185,129,.18);
  color:#065f46;
  border:1px solid rgba(16,185,129,.35);
}
body[data-theme="dark"] .sb-grid-upscale-panel{
  border-color:rgba(52,211,153,.3);
  background:rgba(16,185,129,.14);
}
body[data-theme="dark"] .sb-grid-upscale-panel .sb-grid-param-copy b{
  color:#6ee7b7;
}
body[data-theme="dark"] .sb-grid-upscale-badge{
  background:rgba(52,211,153,.22);
  color:#a7f3d0;
  border-color:rgba(52,211,153,.4);
}
body[data-theme="dark"] .sb-grid-lock-chip{
  color:#7dd3e8;
}
.sb-grid-aspect-row{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin:2px 0 8px;
}
.sb-grid-aspect-seg{
  width:100%;
  height:auto;
  min-height:0;
  padding:3px;
}
.sb-grid-aspect-seg button{
  flex:1 1 0;
  min-width:0;
  padding:7px 8px;
  font-size:12px;
  font-weight:750;
}
/* 分镜图工具栏：工作流下拉与镜头导航栏 */
.sb-workflow-dropdown{
  position: relative;
  flex: 0 0 auto;
}
.sb-workflow-trigger{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 750;
  white-space: nowrap;
  background: var(--panel);
  color: var(--text);
  border: 1px solid var(--line);
  border-radius: var(--radius-btn);
  box-shadow: 0 1px 3px color-mix(in srgb, var(--text) 14%, transparent);
  cursor: pointer;
  transition: transform .12s ease, border-color .12s ease, background .12s ease;
}
.sb-workflow-trigger:hover{
  border-color: color-mix(in srgb, var(--line) 70%, var(--text));
}
.sb-workflow-caret{
  display: inline-block;
  font-size: 11px;
  line-height: 1;
  color: var(--muted);
  transition: transform .15s ease;
}
.sb-workflow-trigger[aria-expanded="true"] .sb-workflow-caret{
  transform: rotate(180deg);
}
.sb-workflow-pop{
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 80;
  min-width: 250px;
  padding: 6px;
  border-radius: 12px;
  border: 1.5px solid var(--line);
  background: var(--panel, #121a28);
  box-shadow: 0 12px 30px rgba(0,0,0,.35);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sb-workflow-pop[hidden]{
  display: none !important;
}
.sb-workflow-pop-item{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  width: 100%;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--text);
  text-align: left;
  cursor: pointer;
  transition: background .12s ease, border-color .12s ease;
}
.sb-workflow-pop-item:hover{
  background: color-mix(in srgb, var(--text) 6%, transparent);
}
.sb-workflow-pop-item.active{
  background: color-mix(in srgb, var(--primary) 14%, var(--panel));
  border-color: color-mix(in srgb, var(--primary) 40%, transparent);
}
.sb-wf-item-title{
  font-size: 12px;
  font-weight: 800;
  line-height: 1.3;
}
.sb-workflow-pop-item.active .sb-wf-item-title{
  color: var(--primary);
}
.sb-wf-item-desc{
  font-size: 10px;
  color: var(--muted);
  line-height: 1.25;
}
body[data-theme="light"] .sb-workflow-pop{
  background: var(--surface-1, #ffffff);
  box-shadow: 0 12px 30px color-mix(in srgb, var(--text) 14%, transparent);
}

/* 镜头快速导航栏 */
.sb-shot-nav{
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  margin-left: 6px;
  padding-right: 90px; /* 避开右上角 MODEL CONFIG 挂角徽章 */
  position: relative;
}
.sb-shot-nav-dropdown{
  position: relative;
  display: flex;
  align-items: center;
  flex-shrink: 0;
  margin-right: 6px;
}
.sb-shot-nav-expand-btn{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 11px;
  font-size: 12px;
  font-weight: 750;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--primary) 35%, var(--line));
  background: color-mix(in srgb, var(--primary) 8%, var(--panel2));
  color: var(--text);
  cursor: pointer;
  transition: all .15s ease;
  white-space: nowrap;
}
.sb-shot-nav-expand-btn:hover{
  border-color: var(--primary);
  background: color-mix(in srgb, var(--primary) 18%, var(--panel2));
}
.sb-shot-nav-expand-btn[aria-expanded="true"]{
  background: var(--primary);
  border-color: var(--primary);
  color: #ffffff;
  box-shadow: 0 2px 8px color-mix(in srgb, var(--primary) 40%, transparent);
}
.ssn-btn-caret{
  display: inline-block;
  font-size: 10px;
  line-height: 1;
  transition: transform .15s ease;
}
.sb-shot-nav-expand-btn[aria-expanded="true"] .ssn-btn-caret{
  transform: rotate(180deg);
}
.sb-shot-nav-pop{
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 80;
  min-width: 320px;
  max-width: 440px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1.5px solid color-mix(in srgb, var(--primary) 40%, var(--line));
  background: var(--panel, #121a28);
  box-shadow: 0 12px 32px rgba(0,0,0,.38), 0 2px 8px rgba(0,0,0,.2);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sb-shot-nav-pop[hidden]{
  display: none !important;
}
.sb-shot-nav-pop-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 6px;
  border-bottom: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
}
.ssn-pop-title{
  font-size: 12px;
  font-weight: 800;
  color: var(--text);
}
.ssn-pop-count{
  font-size: 11px;
  color: var(--muted);
}
.sb-shot-nav-pop-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(66px, 1fr));
  gap: 6px;
  max-height: 240px;
  overflow-y: auto;
  padding-right: 2px;
  scrollbar-width: thin;
}
.sb-shot-grid-btn{
  padding: 6px 4px;
  font-size: 11.5px;
  font-weight: 750;
  text-align: center;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  background: var(--panel2);
  color: var(--muted);
  cursor: pointer;
  white-space: nowrap;
  transition: all .12s ease;
}
.sb-shot-grid-btn:hover{
  color: var(--text);
  border-color: color-mix(in srgb, var(--primary) 50%, var(--line));
  background: color-mix(in srgb, var(--primary) 12%, var(--panel2));
}
.sb-shot-grid-btn.active{
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
  box-shadow: 0 1px 4px color-mix(in srgb, var(--primary) 35%, transparent);
}
body[data-theme="light"] .video-shot-nav-pop,
body[data-theme="light"] .sb-shot-nav-pop{
  background: var(--surface-1, #ffffff);
  box-shadow: 0 12px 32px color-mix(in srgb, var(--text) 16%, transparent), 0 2px 8px color-mix(in srgb, var(--text) 8%, transparent);
  border-color: color-mix(in srgb, var(--primary) 40%, var(--line));
}
body[data-theme="light"] .video-shot-nav-expand-btn,
body[data-theme="light"] .video-shot-grid-btn,
body[data-theme="light"] .sb-shot-nav-expand-btn,
body[data-theme="light"] .sb-shot-grid-btn{
  background: var(--panel2);
  border-color: var(--line);
}
body[data-theme="light"] .video-shot-grid-btn.active,
body[data-theme="light"] .sb-shot-grid-btn.active{
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
}
.sb-shot-nav-list{
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 4px 2px;
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb) transparent;
}
.sb-shot-nav-list::-webkit-scrollbar{
  height: 4px;
}
.sb-shot-nav-list::-webkit-scrollbar-thumb{
  background: var(--scrollbar-thumb);
  border-radius: 4px;
}
.sb-shot-nav-btn{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 10px;
  font-size: 12px;
  font-weight: 750;
  white-space: nowrap;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  background: color-mix(in srgb, var(--panel) 75%, transparent);
  color: var(--muted);
  cursor: pointer;
  transition: transform .1s ease, border-color .12s ease, background .12s ease, color .12s ease, box-shadow .12s ease;
}
.sb-shot-nav-btn:hover{
  color: var(--text);
  border-color: color-mix(in srgb, var(--primary) 50%, var(--line));
  background: color-mix(in srgb, var(--primary) 10%, var(--panel));
  transform: translateY(-1px);
}
.sb-shot-nav-btn.active{
  color: #ffffff;
  background: var(--primary);
  border-color: var(--primary);
  box-shadow: 0 2px 8px color-mix(in srgb, var(--primary) 40%, transparent);
}
.sb-shot-nav-empty{
  font-size: 11px;
  color: var(--muted);
  white-space: nowrap;
}

/* 镜头滚动定位及高亮效果 */
#imagegenStoryboardView .lib-block{
  scroll-margin-top: 140px;
}
@keyframes sbShotPulse{
  0%{box-shadow: 0 0 0 0 color-mix(in srgb, var(--primary) 65%, transparent);}
  50%{box-shadow: 0 0 0 6px color-mix(in srgb, var(--primary) 45%, transparent);}
  100%{box-shadow: 0 0 0 0 transparent;}
}
.sb-shot-target-highlight{
  animation: sbShotPulse 1.2s ease 2;
}
.sb-grid-panel{
  margin:8px 0 12px;
  padding:12px;
  border-radius:12px;
  border:1px solid rgba(14,116,144,.28);
  background:rgba(14,116,144,.05);
}
.sb-grid-panel.is-generating{
  border-color:rgba(240,180,41,.55);
  box-shadow:0 0 0 3px rgba(240,180,41,.16),0 10px 24px rgba(240,180,41,.12);
  animation:sb-gen-glow 1.6s ease-in-out infinite;
}
@keyframes sb-gen-glow{
  0%,100%{box-shadow:0 0 0 3px rgba(240,180,41,.12),0 8px 18px rgba(240,180,41,.08)}
  50%{box-shadow:0 0 0 5px rgba(240,180,41,.28),0 12px 28px rgba(240,180,41,.18)}
}
.sb-grid-live-banner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 12px;
  margin:10px 0 8px;
  padding:9px 12px;
  border-radius:10px;
  background:linear-gradient(90deg,rgba(240,180,41,.22),rgba(141,124,255,.16));
  color:var(--text);
  font-size:12px;
}
.sb-grid-live-banner b{font-weight:850}
.sb-grid-live-banner .sb-grid-elapsed{font-variant-numeric:tabular-nums;font-weight:700}
.sb-grid-live-banner.is-upscaling{
  background:linear-gradient(90deg,rgba(88,184,255,.24),rgba(141,124,255,.18));
}
.sb-grid-live-banner .sb-grid-gw-hint{
  font-weight:700;
  color:#e8b23d;
  font-variant-numeric:tabular-nums;
}
.sb-grid-fail{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 12px;
}
.sb-grid-fail .sb-grid-recover{margin-left:auto;flex:0 0 auto}
.sb-grid-size-mismatch{
  color:#e8b23d;
  font-weight:700;
}
.badge.is-live{
  animation:sb-grid-chip-pulse 1.6s ease-in-out infinite;
}
@keyframes sb-grid-chip-pulse{
  0%,100%{opacity:1}
  50%{opacity:.72}
}
.sb-grid-live{
  position:relative;
  margin-top:8px;
  border-radius:12px;
  overflow:hidden;
  min-height:132px;
  max-height:160px;
}
.sb-grid-live[aria-hidden="true"]{display:none;}
.sb-grid-mini{
  display:none;
}
.sb-grid-mini-cell{
  aspect-ratio:16/9;
  border-radius:6px;
  overflow:hidden;
  background:color-mix(in srgb,var(--muted) 16%,transparent);
  border:1px solid color-mix(in srgb,var(--line) 70%,transparent);
}
.sb-grid-mini-cell img{width:100%;height:100%;object-fit:cover;display:block}
.sb-grid-live.is-portrait .sb-grid-pulse span{aspect-ratio:9/16}
.sb-grid-mini-cell.is-pulse,
.sb-grid-pulse span{
  background:linear-gradient(90deg,rgba(255,255,255,.08),rgba(240,180,41,.42),rgba(255,255,255,.08));
  background-size:200% 100%;
  animation:sb-grid-shimmer 1.2s ease-in-out infinite;
}
.sb-grid-pulse{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:4px;
  width:min(180px,42%);
}
.sb-grid-pulse span{
  aspect-ratio:16/9;
  border-radius:4px;
  display:block;
}
.sb-grid-pulse span:nth-child(2),.sb-grid-mini-cell.is-pulse:nth-child(2){animation-delay:.08s}
.sb-grid-pulse span:nth-child(3),.sb-grid-mini-cell.is-pulse:nth-child(3){animation-delay:.16s}
.sb-grid-pulse span:nth-child(4),.sb-grid-mini-cell.is-pulse:nth-child(4){animation-delay:.24s}
.sb-grid-pulse span:nth-child(5),.sb-grid-mini-cell.is-pulse:nth-child(5){animation-delay:.32s}
.sb-grid-pulse span:nth-child(6),.sb-grid-mini-cell.is-pulse:nth-child(6){animation-delay:.4s}
.sb-grid-pulse span:nth-child(7),.sb-grid-mini-cell.is-pulse:nth-child(7){animation-delay:.48s}
.sb-grid-pulse span:nth-child(8),.sb-grid-mini-cell.is-pulse:nth-child(8){animation-delay:.56s}
.sb-grid-pulse span:nth-child(9),.sb-grid-mini-cell.is-pulse:nth-child(9){animation-delay:.64s}
@keyframes sb-grid-shimmer{
  0%{background-position:100% 0;opacity:.45}
  50%{opacity:1}
  100%{background-position:-100% 0;opacity:.45}
}
.sb-grid-live-overlay{
  position:absolute;
  inset:0;
  z-index:8;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:16px;
  text-align:center;
  background:rgba(10,14,24,.62);
  backdrop-filter:blur(10px) saturate(1.25);
  -webkit-backdrop-filter:blur(10px) saturate(1.25);
  color:#fff6e0;
  pointer-events:all;
  cursor:wait;
}
.sb-grid-live > .sb-grid-live-overlay{
  position:relative;
  inset:auto;
  min-height:132px;
}
.sb-grid-live-overlay .refresh-title{font-size:15px;font-weight:850}
.sb-grid-live-overlay .refresh-sub{font-size:12px;color:rgba(232,236,248,.88);max-width:320px;line-height:1.45}
.sb-grid-live-overlay .refresh-orbit{
  width:42px;height:42px;border-radius:50%;
  border:3px solid rgba(255,255,255,.16);
  border-top-color:#f0b429;
  border-right-color:rgba(141,124,255,.9);
  animation:spin .75s linear infinite;
}
.sb-grid-live-overlay.is-compact{gap:6px;padding:10px}
.sb-grid-live-overlay.is-compact .sb-grid-pulse{width:min(120px,46%)}
.sb-grid-live-overlay.is-compact .refresh-orbit{width:28px;height:28px;border-width:2px}
.sb-grid-live-overlay.is-compact .refresh-title{font-size:12px}
.sb-grid-live-overlay.is-compact .refresh-sub{font-size:11px}
.sb-grid-live-overlay.is-upscaling{
  background:rgba(10,18,36,.5);
}
.sb-grid-live-backdrop{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:blur(6px) saturate(.9);
  transform:scale(1.06);
  pointer-events:none;
}
.sb-grid-hist-item.is-upscaling{position:relative;}
.sb-grid-hist-upscaling{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:4px;
  color:#bfe5ff;
  font-size:12px;
  font-weight:750;
}
.sb-grid-body.is-upscaling .sb-grid-sheet{
  outline:2px solid color-mix(in srgb,#58b8ff 55%,transparent);
  outline-offset:-2px;
}
.sb-grid-panel-head{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
}
.sb-grid-panel-head b{font-size:13px;}
.sb-grid-actions{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto;}
.sb-grid-status{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;}
.sb-grid-toolbar .sb-grid-toolbar-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px 12px;
}
.sb-grid-toolbar .sb-grid-panel-head{margin-bottom:0;min-width:0;flex:1 1 220px;}
.sb-grid-toolbar .sb-grid-actions-center{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto;}
html body .sb-grid-toolbar .btn.ghost.sb-grid-view{
  min-height:34px;
  padding:7px 13px;
  border:2px solid var(--primary);
  background:color-mix(in srgb,var(--primary) 16%,var(--panel2));
  color:var(--text);
  font-weight:850;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 10%,transparent),0 5px 14px color-mix(in srgb,var(--primary) 18%,transparent);
}
html body .sb-grid-toolbar .btn.ghost.sb-grid-view > span{font-size:15px;line-height:1;color:var(--primary-hover);}
html body .sb-grid-toolbar .btn.ghost.sb-grid-view:hover{
  border-color:var(--primary-hover);
  background:color-mix(in srgb,var(--primary) 24%,var(--panel2));
  box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 16%,transparent),0 7px 18px color-mix(in srgb,var(--primary) 24%,transparent);
}
html body[data-theme="light"] .sb-grid-toolbar .btn.ghost.sb-grid-view{
  background:color-mix(in srgb,var(--primary) 12%,#fff);
  color:var(--primary-active);
}
.sb-grid-toolbar .sb-grid-actions{
  margin:0;
  width:auto;
  align-items:center;
}
.sb-grid-viewer-head{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;
}
.sb-grid-viewer-aspect{padding:3px;height:auto;min-height:0;width:auto;}
.sb-grid-viewer-aspect button{padding:6px 12px;font-size:12px;font-weight:750;}
.sb-grid-viewer-pane{padding:3px;height:auto;min-height:0;width:auto;}
.sb-grid-viewer-pane button{padding:6px 12px;font-size:12px;font-weight:750;}
.sb-grid-history{
  display:block;
  width:100%;
}
.sb-grid-history-slots-top{flex:0 0 auto;margin-bottom:12px;}
.sb-grid-history-slots-top .sb-grid-hist-sec{padding:8px 10px;}
.sb-grid-history-slots-top .sb-grid-hist-sec-head{margin-bottom:6px;}
.sb-grid-hist-sec{
  border:1px solid rgba(14,116,144,.22);
  border-radius:10px;
  padding:10px 12px;
  background:rgba(14,116,144,.04);
}
.sb-grid-hist-sec-head{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
  font-size:13px;
}
.sb-grid-hist-slot{margin-top:10px;}
.sb-grid-hist-slot-head{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:6px;
  font-size:12px;
}
.sb-grid-hist-row{display:flex;flex-wrap:wrap;gap:8px;}
.sb-grid-hist-sheet-row{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:14px;
  align-items:flex-start;
}
.sb-grid-hist-sheets{min-height:100%;}
.sb-grid-hist-sheets .sb-grid-hist-sheet-row{align-content:flex-start;}
.sb-grid-hist-item{
  width:200px;
  border:1px solid var(--line);
  border-radius:10px;
  overflow:hidden;
  background:rgba(255,255,255,.04);
  display:flex;
  flex-direction:column;
}
.sb-grid-hist-item[data-preview-src]{cursor:zoom-in;}
.sb-grid-hist-item[data-preview-src]:hover{border-color:color-mix(in srgb,var(--purple) 72%,var(--line));}
.sb-grid-hist-item[data-preview-src] button{cursor:pointer;}
.sb-grid-hist-item.is-portrait{width:clamp(180px,14vw,230px);}
.sb-grid-hist-sheets .sb-grid-hist-item,
.sb-grid-hist-sheets .sb-grid-hist-item.is-portrait{width:100%;}
.sb-grid-hist-item.is-current{outline:2px solid #0e7490;outline-offset:1px;}
.sb-grid-hist-item img{
  width:100%;
  height:auto;
  aspect-ratio:16/9;
  object-fit:contain;
  display:block;
  background:rgba(0,0,0,.04);
}
.sb-grid-hist-item.is-portrait img{aspect-ratio:9/16;}
.sb-grid-hist-upscale-toggle{
  width:100%;
  margin:0;
  border-radius:0;
  border-left:0;
  border-right:0;
  border-bottom:0;
}
.sb-grid-hist-upscale-toggle button{
  flex:1;
  padding:5px 6px;
  font-size:10px;
  font-weight:700;
}
.sb-grid-hist-ph{
  aspect-ratio:16/9;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  color:var(--muted);
  background:rgba(0,0,0,.04);
}
.sb-grid-hist-item.is-portrait .sb-grid-hist-ph{aspect-ratio:9/16;}
.sb-grid-hist-meta{
  padding:6px;
  font-size:11px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.sb-grid-hist-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.sb-grid-hist-actions .sb-grid-crop-tiles{
  flex:1 1 100%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  font-weight:800;
}
.sb-grid-viewer-head .sb-grid-crop-tiles{
  min-height:32px;
  padding:6px 14px;
  font-weight:800;
}
.sb-grid-hist-empty{padding:8px 2px;font-size:12px;}
.sb-grid-hist-slots{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:8px;
  align-items:start;
}
.sb-grid-hist-slots .sb-grid-hist-slot{
  min-width:0;
  margin-top:0;
  padding:8px 10px;
  border:1px solid color-mix(in srgb,var(--line) 80%,transparent);
  border-radius:10px;
  background:color-mix(in srgb,var(--panel) 65%,transparent);
}
.sb-grid-hist-slots .sb-grid-hist-row{flex-wrap:nowrap;overflow-x:auto;padding:2px 2px 5px;}
.sb-grid-history-slots-top .sb-grid-hist-slots .sb-grid-hist-item{flex:0 0 100px;width:100px;}
.sb-grid-history-slots-top .sb-grid-hist-slots .sb-grid-hist-item.is-portrait{flex-basis:100px;width:100px;}
@media (max-width:760px){
  .sb-grid-hist-item.is-portrait,
  .sb-grid-hist-sheets .sb-grid-hist-item.is-portrait{width:100%;}
  .sb-grid-hist-sheet-row{grid-template-columns:1fr;}
  .sb-grid-hist-slots{grid-template-columns:1fr;}
}
.sb-grid-body{
  --ar-w:16;
  --ar-h:9;
  --board-gap:16px;
  container-type:size;
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:var(--board-gap);
  min-height:0;
  height:100%;
}
.sb-grid-body.is-generating .sb-grid-sheet,
.sb-grid-body.is-generating .sb-grid-tiles{
  filter:blur(2px) saturate(.75);
  opacity:.55;
}
.sb-grid-body.is-portrait{
  --ar-w:9;
  --ar-h:16;
  --board-gap:22px;
  flex-direction:row;
}
.sb-grid-sheet,
.sb-grid-tiles{
  position:relative;
  flex:0 0 auto;
  box-sizing:border-box;
  aspect-ratio:var(--ar-w) / var(--ar-h);
  width:min(100%, calc((50% - var(--board-gap) / 2) * var(--ar-w) / var(--ar-h)));
  max-height:calc((100% - var(--board-gap)) / 2);
  border-radius:16px;
  overflow:hidden;
  background:color-mix(in srgb, var(--muted) 10%, transparent);
  border:1px solid color-mix(in srgb, var(--line) 80%, transparent);
}
.sb-grid-body.is-portrait .sb-grid-sheet,
.sb-grid-body.is-portrait .sb-grid-tiles{
  width:min(calc((100% - var(--board-gap)) / 2), calc(100% * var(--ar-w) / var(--ar-h)));
  max-height:100%;
}
.sb-grid-sheet{display:flex;min-width:0;min-height:0}
@supports (width:1cqi){
  /* 16:9：母图在上、子图在下，两块都保持 16:9 */
  .sb-grid-sheet,
  .sb-grid-tiles{
    width:min(100cqi, calc(((100cqb - var(--board-gap)) / 2) * var(--ar-w) / var(--ar-h)));
    height:min(calc((100cqb - var(--board-gap)) / 2), calc(100cqi * var(--ar-h) / var(--ar-w)));
    max-height:none;
  }
  /* 9:16：母图 | 子图 左右并排，两块都保持 9:16 */
  .sb-grid-body.is-portrait .sb-grid-sheet,
  .sb-grid-body.is-portrait .sb-grid-tiles{
    width:min(calc((100cqi - var(--board-gap)) / 2), calc(100cqb * var(--ar-w) / var(--ar-h)));
    height:min(100cqb, calc(((100cqi - var(--board-gap)) / 2) * var(--ar-h) / var(--ar-w)));
  }
}
.sb-grid-sheet-stage{
  flex:1 1 auto;
  min-width:0;
  min-height:0;
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  position:relative;
}
.sb-grid-sheet-stage > *{
  grid-area:1 / 1;
}
.sb-grid-sheet-size{
  position:absolute;
  left:8px;
  bottom:8px;
  z-index:2;
  justify-self:start;
  align-self:end;
  padding:3px 8px;
  border-radius:999px;
  font-size:11px;
  font-weight:600;
  letter-spacing:.02em;
  color:var(--text);
  background:color-mix(in srgb, var(--panel) 82%, transparent);
  border:1px solid color-mix(in srgb, var(--line) 70%, transparent);
  pointer-events:none;
}
.sb-grid-sheet-img,
.sb-grid-sheet-empty{
  width:100%;
  height:100%;
  object-fit:contain;
  display:grid;
  place-items:center;
  background:color-mix(in srgb, var(--muted) 8%, transparent);
}
.sb-grid-sheet-img{display:block;}
.sb-grid-sheet-empty{
  border:1px dashed color-mix(in srgb, var(--line) 85%, transparent);
  border-radius:14px;
  margin:0;
  text-align:center;
  padding:16px;
  box-sizing:border-box;
  font-size:13px;
}
.sb-grid-tiles{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-rows:repeat(3,minmax(0,1fr));
  gap:8px;
  padding:8px;
}
.sb-grid-tile{
  position:relative;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  border-radius:10px;
  overflow:hidden;
  border:1px solid color-mix(in srgb, var(--line) 70%, transparent);
  background:var(--panel);
  cursor:grab;
}
.sb-grid-tile.is-assigned{outline:2px solid #0e7490;outline-offset:-1px;}
.sb-grid-tile-stage{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  background:color-mix(in srgb, var(--muted) 8%, transparent);
}
.sb-grid-tile-stage img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.sb-grid-tile-label{
  position:absolute;left:8px;bottom:8px;z-index:2;
  font-size:10px;font-weight:750;
  padding:2px 7px;border-radius:999px;
  background:rgba(8,14,24,.72);color:#fff;
  pointer-events:none;
}
.sb-grid-tile:has(select) .sb-grid-tile-label{bottom:30px;}
.sb-grid-tile-flip-btn{
  position:absolute;
  top:6px;
  right:6px;
  z-index:4;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  padding:0;
  border-radius:6px;
  border:1px solid rgba(255,255,255,0.22);
  background:rgba(15,23,42,0.76);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  color:#e2e8f0;
  cursor:pointer;
  transition:all .15s ease;
  user-select:none;
}
.sb-grid-tile-flip-btn:hover{
  background:rgba(15,23,42,0.92);
  border-color:rgba(56,189,248,0.6);
  color:#38bdf8;
  transform:scale(1.08);
}
.sb-grid-tile-flip-btn.is-active{
  background:#0284c7;
  border-color:#38bdf8;
  color:#ffffff;
  box-shadow:0 0 8px rgba(56,189,248,0.5);
}
.sb-grid-tile-flip-btn.is-loading{
  pointer-events:none;
  opacity:0.6;
}
.sb-grid-tile-flip-btn.is-loading .sb-grid-flip-icon{
  animation:sbGridFlipSpin .7s linear infinite;
}
@keyframes sbGridFlipSpin{
  from{transform:rotate(0deg);}
  to{transform:rotate(360deg);}
}
.sb-grid-tile-empty{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:12px;
  color:var(--muted);
  border:1px dashed color-mix(in srgb, var(--line) 80%, transparent);
  border-radius:9px;
  box-sizing:border-box;
}
.sb-frame-media.is-drop-target,
.sb-closeup-media.is-drop-target{outline:2px dashed #0e7490;outline-offset:2px;}
.sb-grid-tile select.sb-grid-assign{
  position:absolute;left:0;right:0;bottom:0;z-index:3;
  width:100%;font-size:11px;border:0;
  padding:5px 6px;
  background:color-mix(in srgb, var(--panel) 92%, transparent);
  backdrop-filter:blur(8px);
}
.sb-grid-overflow{
  margin:0 0 8px;
  font-size:12px;
}
.sb-grid-tile:not([draggable]){cursor:default;}
.sb-grid-viewer.is-picking .sb-grid-tile[draggable]{cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease;}
.sb-grid-viewer.is-picking .sb-grid-tile[draggable]:hover,
.sb-grid-viewer.is-picking .sb-grid-tile[draggable]:focus-within{
  transform:translateY(-2px);
  border-color:#0e7490;
  box-shadow:0 0 0 2px color-mix(in srgb,#0e7490 32%,transparent);
}
.sb-grid-viewer.is-picking .sb-grid-tile.is-selected{
  outline:3px solid #38bdf8;
  outline-offset:1px;
  border-color:#38bdf8;
  box-shadow:0 0 0 4px rgba(56,189,248,0.28),0 8px 24px rgba(0,0,0,0.35);
}
.sb-grid-viewer.is-picking .sb-grid-tile.is-selected .sb-grid-tile-label{
  background:#0284c7;
  color:#ffffff;
  font-weight:800;
  box-shadow:0 2px 6px rgba(0,0,0,0.35);
}
.work-modal-panel.is-nine-grid .sb-grid-body.is-picker{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  aspect-ratio:auto;
  flex:1 1 auto;
  min-height:0;
  overflow:hidden;
}
.sb-grid-body.is-picker .sb-grid-picker-subtiles{
  min-width:0;
  min-height:0;
  border:1px solid color-mix(in srgb,var(--line) 82%,transparent);
  border-radius:14px;
  background:color-mix(in srgb,var(--panel) 82%,transparent);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  width:100%;
  height:100%;
  max-height:100%;
  box-sizing:border-box;
}
.sb-grid-body.is-picker .sb-grid-picker-section-title{
  flex:0 0 auto;
  font-size:13px;
  font-weight:800;
  color:var(--text);
  text-align:center;
  letter-spacing:0.02em;
}
.sb-grid-body.is-picker .sb-grid-tiles{
  flex:1 1 auto;
  width:100%;
  height:100%;
  max-height:100%;
  min-height:0;
  padding:4px;
  gap:12px;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-rows:repeat(3,minmax(0,1fr));
  grid-auto-rows:none;
  align-content:stretch;
  justify-content:stretch;
  overflow:hidden;
  box-sizing:border-box;
}
/* 16:9 模式下九宫格子图保持 16:9 画幅比例自适应最大化 */
.sb-grid-body.is-picker.is-landscape .sb-grid-tiles{
  max-width:calc((100cqh - 50px) * (16 / 9));
  aspect-ratio:16 / 9;
}
@supports not (max-width:100cqh){
  .sb-grid-body.is-picker.is-landscape .sb-grid-tiles{
    max-width:min(100%,calc((100vh - 180px) * (16 / 9)));
    aspect-ratio:16 / 9;
  }
}
/* 9:16 模式下九宫格子图保持 9:16 画幅比例自适应最大化 */
.sb-grid-body.is-picker.is-portrait .sb-grid-tiles{
  max-width:calc((100cqh - 50px) * (9 / 16));
  aspect-ratio:9 / 16;
}
@supports not (max-width:100cqh){
  .sb-grid-body.is-picker.is-portrait .sb-grid-tiles{
    max-width:min(100%,calc((100vh - 180px) * (9 / 16)));
    aspect-ratio:9 / 16;
  }
}
.sb-grid-body.is-picker .sb-grid-tile{
  width:100%;
  height:100%;
  min-height:0;
  min-width:0;
  aspect-ratio:auto;
  display:block;
  align-self:stretch;
}
.sb-grid-body.is-picker .sb-grid-tile-stage{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  aspect-ratio:auto;
}
.sb-grid-body.is-picker .sb-grid-tile-stage img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.sb-grid-body.is-picker .sb-grid-tile select.sb-grid-assign{display:none;}
.sb-grid-body.is-picker .sb-grid-tile-label{
  left:8px;
  bottom:8px;
  min-width:24px;
  padding:3px 8px;
  text-align:center;
  font-size:11px;
}
.sb-grid-viewer.is-picking .sb-grid-viewer-head{
  display:none;
}
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .sb-frame-media,
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .sb-closeup-media{
  cursor:pointer;
}
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .sb-frame-media:hover .lib-img-card,
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .sb-closeup-media:hover .lib-img-card,
#imagegenStoryboardView[data-sb-workflow="nine_grid"] .sb-closeup-media:hover .sb-closeup-empty{
  outline:2px solid color-mix(in srgb,#0e7490 48%,transparent);
  outline-offset:2px;
}
@media (max-width:980px){
  .sb-grid-body.is-portrait{flex-direction:column;}
  @supports (width:1cqi){
    .sb-grid-body.is-portrait .sb-grid-sheet,
    .sb-grid-body.is-portrait .sb-grid-tiles{
      width:min(100cqi, calc(((100cqb - var(--board-gap)) / 2) * var(--ar-w) / var(--ar-h)));
      height:min(calc((100cqb - var(--board-gap)) / 2), calc(100cqi * var(--ar-h) / var(--ar-w)));
    }
  }
}
@media (max-width:980px){
  .work-modal-panel.is-nine-grid .sb-grid-body.is-picker{
    width:100%;
    height:100%;
  }
}

.pipeline-head-row{
  width:100%;
}
.pipeline-title-group{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:5px;
}
.pipeline-title-group b{
  font-size:13px;
  font-weight:800;
  letter-spacing:-0.01em;
}
#storyboardWorkbench .sb-pipeline-all .pipeline-title-group b{
  color:#9a3412;
}
#storyboardWorkbench .sb-pipeline-closeup .pipeline-title-group b{
  color:#3730a3;
}

.pipeline-card-badge{
  font-size:10px;
  font-weight:800;
  line-height:1.2;
  padding:2px 6px;
  border-radius:4px;
  white-space:nowrap;
  letter-spacing:0.02em;
}
.pipeline-card-badge.badge-169{
  background:#ffedd5;
  color:#9a3412;
  border:1px solid #fed7aa;
}
.pipeline-card-badge.badge-916{
  background:#e0e7ff;
  color:#3730a3;
  border:1px solid #c7d2fe;
}

.pipeline-desc{
  font-size:11px;
  line-height:1.42;
  color:#57534e;
  margin-bottom:6px;
}

.pipeline-step-flow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2px;
  font-size:10px;
  margin:5px 0 8px;
  padding:5px 8px;
  border-radius:6px;
  background:#fff7ed;
  border:1px dashed #fdba74;
  color:#7c2d12;
}
.pipeline-step-flow .step-flow-node{
  font-weight:700;
  color:#7c2d12;
  white-space:nowrap;
}
.pipeline-step-flow .step-flow-arrow{
  color:#ea580c;
  font-weight:700;
  font-size:10px;
  flex:0 0 auto;
}

.pipeline-dep-chip{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:10px;
  line-height:1.35;
  margin:5px 0 8px;
  padding:5px 8px;
  border-radius:6px;
  background:#eef2ff;
  border:1px dashed #a5b4fc;
  color:#312e81;
  font-weight:600;
}
.pipeline-dep-chip .dep-chip-icon{
  font-size:11px;
  flex:0 0 auto;
}

/* 按钮通用结构 */
.btn-pipeline-all-169,
.btn-pipeline-closeup-916{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.btn-pipeline-all-169 .pipeline-aspect-tag,
.btn-pipeline-closeup-916 .pipeline-aspect-tag{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.btn-pipeline-all-169 .pipeline-btn-main,
.btn-pipeline-closeup-916 .pipeline-btn-main{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
.btn-pipeline-all-169 .pipeline-btn-pill,
.btn-pipeline-closeup-916 .pipeline-btn-pill{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}

/* 16:9 横版主干按钮（浅色强覆盖，确保深色暖底白字极其清晰） */
body[data-theme="light"] .btn-pipeline-all-169,
body[data-theme="light"] #storyboardWorkbench .btn-pipeline-all-169,
.btn-pipeline-all-169{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .btn-pipeline-all-169 .pipeline-btn-main,
.btn-pipeline-all-169 .pipeline-btn-main{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .btn-pipeline-all-169:hover:not(:disabled),
.btn-pipeline-all-169:hover:not(:disabled){background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .btn-pipeline-all-169:active:not(:disabled),
.btn-pipeline-all-169:active:not(:disabled){background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .btn-pipeline-all-169 .pipeline-aspect-tag,
.btn-pipeline-all-169 .pipeline-aspect-tag{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .btn-pipeline-all-169 .pipeline-btn-pill,
.btn-pipeline-all-169 .pipeline-btn-pill{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .btn-pipeline-all-169:disabled,
.btn-pipeline-all-169:disabled{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}

/* 9:16 竖版衍生按钮（浅色强覆盖，确保深蓝紫底白字极其清晰） */
body[data-theme="light"] .btn-pipeline-closeup-916,
body[data-theme="light"] #storyboardWorkbench .btn-pipeline-closeup-916,
.btn-pipeline-closeup-916{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .btn-pipeline-closeup-916 .pipeline-btn-main,
.btn-pipeline-closeup-916 .pipeline-btn-main{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .btn-pipeline-closeup-916:hover:not(:disabled),
.btn-pipeline-closeup-916:hover:not(:disabled){background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .btn-pipeline-closeup-916:active:not(:disabled),
.btn-pipeline-closeup-916:active:not(:disabled){background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .btn-pipeline-closeup-916 .pipeline-aspect-tag,
.btn-pipeline-closeup-916 .pipeline-aspect-tag{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .btn-pipeline-closeup-916 .pipeline-btn-pill,
.btn-pipeline-closeup-916 .pipeline-btn-pill{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="light"] .btn-pipeline-closeup-916:disabled,
.btn-pipeline-closeup-916:disabled{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}

/* 深色模式适配 */
body[data-theme="dark"] #storyboardWorkbench .sb-pipeline-all{
  border-color:rgba(245,158,11,.38);
  background:linear-gradient(160deg,rgba(245,158,11,.10) 0%,#131317 80%);
  box-shadow:0 2px 10px rgba(0,0,0,.3);
}
body[data-theme="dark"] #storyboardWorkbench .sb-pipeline-all .pipeline-title-group b{
  color:#fbbf24;
}
body[data-theme="dark"] .pipeline-card-badge.badge-169{
  background:rgba(245,158,11,.22);
  color:#fde68a;
  border-color:rgba(245,158,11,.40);
}
body[data-theme="dark"] .pipeline-step-flow{
  background:rgba(245,158,11,.08);
  border-color:rgba(245,158,11,.28);
  color:#fcd34d;
}
body[data-theme="dark"] .pipeline-step-flow .step-flow-node{
  color:#fcd34d;
}
body[data-theme="dark"] .pipeline-step-flow .step-flow-arrow{
  color:#f59e0b;
}

body[data-theme="dark"] #storyboardWorkbench .sb-pipeline-closeup{
  border-color:rgba(99,102,241,.38);
  background:linear-gradient(160deg,rgba(99,102,241,.10) 0%,#12131b 80%);
  box-shadow:0 2px 10px rgba(0,0,0,.3);
}
body[data-theme="dark"] #storyboardWorkbench .sb-pipeline-closeup .pipeline-title-group b{
  color:#a5b4fc;
}
body[data-theme="dark"] .pipeline-card-badge.badge-916{
  background:rgba(99,102,241,.22);
  color:#c7d2fe;
  border-color:rgba(99,102,241,.40);
}
body[data-theme="dark"] .pipeline-dep-chip{
  background:rgba(99,102,241,.08);
  border-color:rgba(99,102,241,.28);
  color:#c7d2fe;
}

body[data-theme="dark"] .btn-pipeline-all-169,
body[data-theme="dark"] #storyboardWorkbench .btn-pipeline-all-169{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="dark"] .btn-pipeline-all-169 .pipeline-btn-main{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="dark"] .btn-pipeline-all-169:hover:not(:disabled){background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="dark"] .btn-pipeline-all-169 .pipeline-aspect-tag{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="dark"] .btn-pipeline-all-169 .pipeline-btn-pill{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="dark"] .btn-pipeline-all-169:disabled{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}

body[data-theme="dark"] .btn-pipeline-closeup-916,
body[data-theme="dark"] #storyboardWorkbench .btn-pipeline-closeup-916{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="dark"] .btn-pipeline-closeup-916 .pipeline-btn-main{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="dark"] .btn-pipeline-closeup-916:hover:not(:disabled){background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="dark"] .btn-pipeline-closeup-916 .pipeline-aspect-tag{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="dark"] .btn-pipeline-closeup-916 .pipeline-btn-pill{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}
body[data-theme="dark"] .btn-pipeline-closeup-916:disabled{background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:var(--radius-btn);box-shadow:none;text-shadow:none;filter:none;}

/* 双工作流一键 + 继续上次 */
.workbench .run-wf-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  flex-wrap:wrap;
  white-space:normal;
  line-height:1.25;
  text-align:center;
}
.workbench .run-wf-btn > span:first-child{min-width:0}
.workbench .run-wf-badge{
  flex:0 0 auto;
  font-size:10px;
  font-weight:800;
  letter-spacing:.04em;
  padding:1px 6px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
}
.workbench .btn.ghost .run-wf-badge{background:transparent;color:var(--text);border-color:var(--line);box-shadow:none;text-shadow:none;}
.workbench .run-wf-resume{
  padding:5px 10px;
  font-size:12px;
  font-weight:600;
  line-height:1.25;
  color:var(--muted);
  background:transparent;
  border-color:var(--line);
}
.workbench .run-wf-resume:hover:not(:disabled){
  color:var(--text);
  border-color:rgba(108,168,255,.32);
  background:rgba(80,115,146,.08);
}
.workbench .run-wf-resume:disabled{opacity:.42}
.side-workbench .wb-ratio-lock{
  min-height:32px;
  padding:5px 6px;
  border:1px solid var(--line);
  border-radius:7px;
  background:rgba(80,115,146,.07);
  font-size:9px;
  line-height:1.35;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:1px;
}
.side-workbench .wb-ratio-lock b{color:var(--accent);font-size:10px}

/* 完整视频确认窗：高度仍铺满，左右收进，避免贴边过宽 */
.modal:has(> .df-full-video-card){
  padding:20px max(64px, 8vw);
  place-items:stretch;
  justify-items:center;
}
.modal-card.confirm-vid-card.df-full-video-card{
  width:min(1280px, 100%) !important;
  max-width:min(1280px, calc(100vw - 128px));
  height:100%;
  max-height:none;
  align-self:stretch;
  justify-self:center;
}
.df-full-video-card .modal-body,
.df-full-video-card .confirm-vid-body{
  flex:1 1 auto;
  min-height:0;
  max-height:none;
  overflow:auto;
}
.df-full-video-ratio-section{margin:10px 0 14px}
.df-full-video-ratios{
  display:flex;
  align-items:stretch;
  justify-content:space-between;
  gap:12px 48px;
  flex-wrap:wrap;
}
.df-full-video-ratio-cluster{
  display:flex;
  align-items:stretch;
  gap:6px;
  min-width:0;
  flex:0 1 auto;
}
.df-full-video-ratio-cluster > .df-full-video-ratio-option{
  flex:0 0 auto;
}
.df-full-video-ratios > .df-full-video-ratio-option{
  flex:0 0 auto;
  margin-left:auto;
}
.df-full-video-ratio-option{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:150px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:rgba(80,115,146,.06);
  cursor:pointer;
  transition:border-color .15s,background .15s,opacity .15s;
}
.df-full-video-ratio-option input{accent-color:var(--accent)}
.df-full-video-ratio-option span{display:flex;flex-direction:column;gap:2px}
.df-full-video-ratio-option small{color:var(--muted);font-size:11px}
.df-full-video-ratio-option.is-active{border-color:var(--accent);background:rgba(141,124,255,.12);box-shadow:0 0 0 1px rgba(141,124,255,.16) inset}
.df-full-video-ratio-option.is-locked{opacity:.45;cursor:not-allowed}
.df-full-video-output-toggle{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  padding:3px 4px 3px 8px;
  border:1px solid var(--line);
  border-radius:10px;
  background:rgba(80,115,146,.04);
}
.df-full-video-output-kicker{
  flex:0 0 auto;
  color:var(--muted);
  font-size:11px;
  font-weight:700;
  letter-spacing:.04em;
  white-space:nowrap;
}
.df-full-video-output-chips{
  display:flex;
  align-items:stretch;
  gap:3px;
  min-width:0;
}
.df-full-video-output-chip{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:72px;
  padding:6px 10px;
  border:0;
  border-radius:8px;
  background:transparent;
  cursor:pointer;
  transition:background .15s,box-shadow .15s,opacity .15s;
}
.df-full-video-output-chip:hover:not(.is-locked){
  background:rgba(141,124,255,.08);
}
.df-full-video-output-chip input{
  position:absolute;
  inset:0;
  opacity:0;
  margin:0;
  cursor:inherit;
}
.df-full-video-output-chip span{display:flex;flex-direction:column;align-items:center;gap:1px;pointer-events:none}
.df-full-video-output-chip b{font-size:13px;line-height:1.2}
.df-full-video-output-chip small{color:var(--muted);font-size:10px}
.df-full-video-output-chip.is-active{
  background:rgba(141,124,255,.16);
  box-shadow:0 0 0 1px rgba(141,124,255,.28) inset;
}
.df-full-video-output-chip.is-active small{color:var(--text)}
.df-full-video-output-chip.is-locked{opacity:.45;cursor:not-allowed}
.df-full-video-ratio-note{margin-left:8px;color:var(--muted);font-size:11px;font-weight:500}
.df-full-video-scope-line{padding:9px 11px;border-radius:8px;background:rgba(80,115,146,.07);font-weight:700}
.df-full-video-ready{margin-top:8px;color:var(--success,#69d39a);font-size:12px}
.df-full-video-exists{margin-top:8px;color:var(--muted);font-size:12px;line-height:1.5}
.df-full-video-force{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin-top:8px;
  padding:9px 11px;
  border:1px solid rgba(141,124,255,.28);
  border-radius:8px;
  background:rgba(141,124,255,.08);
  cursor:pointer;
  font-size:12px;
  line-height:1.5;
  color:var(--text);
}
.df-full-video-force input{margin-top:2px;accent-color:var(--accent)}
.df-full-video-missing{display:flex;flex-direction:column;gap:4px;margin-top:8px;padding:9px 11px;border:1px solid rgba(238,125,125,.42);border-radius:8px;background:rgba(238,125,125,.08);color:#ffb1b1;font-size:12px;line-height:1.5}
.df-full-video-missing b{color:#ff8585}
.df-full-video-batch-source{padding:12px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);font-size:12px;line-height:1.6}
.df-full-video-params{margin-top:10px}
.df-full-video-params-section{margin:0 0 14px}
.df-full-video-card .vid-pick-params{margin:0}
.vid-pick-duration-note{
  display:inline-flex;
  align-items:center;
  font-size:12px;
  color:var(--muted);
  white-space:nowrap;
  padding:2px 4px;
}

/* 单次编辑生成弹窗 */
.oneoff-modal-section{display:flex;flex-direction:column;gap:8px}
.oneoff-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.oneoff-section-header .modal-field-label{margin:0;font-size:13px;font-weight:700}
.oneoff-refs-grid{display:flex;flex-wrap:wrap;gap:10px;padding:10px 12px;min-height:74px;border:1px dashed var(--line);border-radius:10px;background:rgba(141,124,255,.03);align-items:center}
.oneoff-ref-card{position:relative;display:flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;border:1px solid var(--line);border-radius:9px;background:var(--panel, #141d30);max-width:240px;flex:0 0 auto;transition:border-color .15s, background .15s}
.oneoff-ref-card:hover{border-color:rgba(141,124,255,.6)}
.oneoff-ref-thumb-wrap{width:46px;height:46px;flex:0 0 46px;border-radius:6px;overflow:hidden;background:#0d1117;display:grid;place-items:center}
.oneoff-ref-thumb{width:100%;height:100%;object-fit:cover;display:block;border-radius:6px}
.oneoff-ref-thumb-placeholder{font-size:11px;color:var(--muted);text-align:center}
.oneoff-ref-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}
.oneoff-ref-tag-row{display:flex;align-items:center;gap:4px}
.oneoff-ref-tag-row .badge{font-size:10px;padding:1px 5px}
.oneoff-ref-cat{font-size:11px;color:var(--muted)}
.oneoff-ref-name{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:115px}
.oneoff-ref-del{width:22px;height:22px;border-radius:50%;border:none;background:rgba(255,255,255,.08);color:var(--muted);display:grid;place-items:center;cursor:pointer;font-size:13px;line-height:1;margin-left:4px;flex:0 0 auto;transition:all .15s}
.oneoff-ref-del:hover{background:rgba(239,68,68,.25);color:#ff6b6b}
body[data-theme="light"] .oneoff-ref-del:hover{background:rgba(239,68,68,.15);color:#dc2626}
.oneoff-refs-empty{display:flex;align-items:center;justify-content:center;width:100%;padding:14px 0;font-size:12px;color:var(--muted)}
.oneoff-prompt-area{min-height:220px;max-height:48vh;resize:vertical;font-size:13px;line-height:1.6}


/* 旁白语义状态提示条（纯对白豁免 vs 旁白缺失） */
.narration-status-hint{
  display:flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border-radius:8px;
  font-size:11px;
  line-height:1.45;
  margin:6px 0 8px;
}
.narration-status-hint.is-exempt{
  background:rgba(86,150,255,.08);
  border:1px solid rgba(86,150,255,.28);
  color:#93b5fe;
}
.narration-status-hint.is-missing{
  background:rgba(239,68,68,.10);
  border:1px solid rgba(239,68,68,.35);
  color:#fca5a5;
}
.narration-status-hint .hint-icon{
  font-weight:900;
  font-size:12px;
  flex-shrink:0;
}
.narration-status-hint .hint-text{
  flex:1;
}
.narration-status-hint button{
  margin-left:auto;
  flex-shrink:0;
}
.narration-budget-row{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:4px 0 6px;
}
.narration-budget.is-missing{
  color:#f87171 !important;
  font-weight:700;
}
.narration-budget.is-exempt{
  color:#60a5fa !important;
}

body[data-theme="light"] .narration-status-hint.is-exempt{
  background:rgba(43,114,219,.08);
  border-color:rgba(43,114,219,.3);
  color:#1e5bb0;
}
body[data-theme="light"] .narration-status-hint.is-missing{
  background:rgba(220,38,38,.08);
  border-color:rgba(220,38,38,.3);
  color:#b91c1c;
}
body[data-theme="light"] .narration-budget.is-missing{
  color:#dc2626 !important;
}
body[data-theme="light"] .narration-budget.is-exempt{
  color:#2563eb !important;
}

/* ===== Skin chrome (token-driven; overrides leftover skeuomorph) ===== */
::selection{background:var(--selection-bg);color:var(--selection-fg)}
html{font-feature-settings:var(--font-feature)}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-ui);
  letter-spacing:var(--tracking);
  font-feature-settings:var(--font-feature);
  scrollbar-width:thin;
  scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);
}
body h1,body h2,body .brand,body .brand-text,body .workbench h2{
  font-family:var(--font-display),var(--font-ui),sans-serif;
  font-weight:var(--display-weight);
  letter-spacing:var(--tracking);
}
body .workbench-eyebrow,body .project-entry-kicker,body .side-title,body .skin-pop-label{
  font-family:var(--font-ui);
}
body .code,body .muted code,body kbd{font-family:var(--font-mono)}

html body[data-theme="light"] ::-webkit-scrollbar,
html body[data-theme="dark"] ::-webkit-scrollbar{width:8px;height:8px}
html body[data-theme="light"] ::-webkit-scrollbar-track,
html body[data-theme="dark"] ::-webkit-scrollbar-track{background:var(--scrollbar-track)}
html body[data-theme="light"] ::-webkit-scrollbar-thumb,
html body[data-theme="dark"] ::-webkit-scrollbar-thumb{
  background:var(--scrollbar-thumb);border-radius:var(--radius-pill);
  border:2px solid transparent;background-clip:padding-box;
}
html body[data-theme="light"] .episode-list,
html body[data-theme="dark"] .episode-list,
html body[data-theme="light"] .side-workbench.inspector.workbench,
html body[data-theme="dark"] .side-workbench.inspector.workbench,
html body[data-theme="light"] .main,
html body[data-theme="dark"] .main{
  scrollbar-width:thin;
  scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);
}
html body[data-theme="light"] .episode-list::-webkit-scrollbar-track,
html body[data-theme="dark"] .episode-list::-webkit-scrollbar-track,
html body[data-theme="light"] .side-workbench.inspector.workbench::-webkit-scrollbar-track,
html body[data-theme="dark"] .side-workbench.inspector.workbench::-webkit-scrollbar-track{
  background:var(--scrollbar-track);
}
html body[data-theme="light"] .episode-list::-webkit-scrollbar-thumb,
html body[data-theme="dark"] .episode-list::-webkit-scrollbar-thumb,
html body[data-theme="light"] .side-workbench.inspector.workbench::-webkit-scrollbar-thumb,
html body[data-theme="dark"] .side-workbench.inspector.workbench::-webkit-scrollbar-thumb{
  background:var(--scrollbar-thumb);
}

body .logo{
  background:var(--primary);color:var(--on-primary);
  box-shadow:none;border-radius:var(--radius-btn);
}
html body[data-theme="light"] .logo,
html body[data-theme="dark"] .logo{
  background:var(--primary);box-shadow:none;color:var(--on-primary);
}
body .logo-help,
body .project-context{
  border-color:var(--primary);
  border-radius:var(--radius-card);
  background:color-mix(in srgb, var(--primary) 12%, var(--panel));
  box-shadow:none;
  color:var(--text);
  transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease);
}
body .logo-help:hover,
body .project-context:hover{
  border-color:var(--primary-hover);
  box-shadow:none;
  background:color-mix(in srgb, var(--primary) 18%, var(--panel));
}
html body[data-theme="light"] .logo-help,
html body[data-theme="dark"] .logo-help,
html body[data-theme="light"] .project-context,
html body[data-theme="dark"] .project-context{
  border-color:var(--primary);
  background:color-mix(in srgb, var(--primary) 12%, var(--panel));
  box-shadow:none;
}
body .project-entry{
  border-right-color:color-mix(in srgb, var(--primary) 40%, transparent);
  color:var(--primary);
  border-radius:var(--radius-btn) 0 0 var(--radius-btn);
  transition:background var(--duration) var(--ease),transform var(--duration) var(--ease);
}
html body[data-theme="light"] .project-entry,
html body[data-theme="dark"] .project-entry{
  border-radius:var(--radius-btn) 0 0 var(--radius-btn);
  color:var(--primary);
}
body .project-entry:hover{background:color-mix(in srgb, var(--primary) 12%, transparent);transform:none}
body .project-entry-label{color:var(--primary);font-weight:900;font-size:14px;letter-spacing:.03em}
html body[data-theme="light"] .project-entry-label,
html body[data-theme="dark"] .project-entry-label{color:var(--primary)}
body .project-entry-kicker{color:var(--primary)}
html body[data-theme="light"] .project-entry-kicker,
html body[data-theme="dark"] .project-entry-kicker{color:var(--primary)}

body .hero-card,body .summary-card,body .flow-card,body .app-shell,body .section{
  background:var(--panel);border-color:var(--hairline);box-shadow:var(--shadow-1);
  border-radius:var(--radius-card);
}
html body[data-theme="light"] .hero-card,
html body[data-theme="dark"] .hero-card,
html body[data-theme="light"] .summary-card,
html body[data-theme="dark"] .summary-card,
html body[data-theme="light"] .flow-card,
html body[data-theme="dark"] .flow-card,
html body[data-theme="light"] .app-shell,
html body[data-theme="dark"] .app-shell,
html body[data-theme="light"] .section,
html body[data-theme="dark"] .section{
  background:var(--panel);border-color:var(--line);box-shadow:var(--shadow-1);
  border-radius:var(--radius-card);
}

body .app-top,
html body[data-theme="light"] .app-top,
html body[data-theme="dark"] .app-top{
  background:var(--topbar-bg);
  border-bottom:1px solid var(--hairline);
  box-shadow:none;
  border-radius:var(--radius-card) var(--radius-card) 0 0;
  backdrop-filter:blur(var(--topbar-blur));
  -webkit-backdrop-filter:blur(var(--topbar-blur));
}
body .app-top::after,
html body[data-theme="light"] .app-top::after,
html body[data-theme="dark"] .app-top::after{
  background:var(--primary);
  opacity:.85;
  height:var(--topbar-accent-h);
}
body .workspace{border-radius:0 0 var(--radius-card) var(--radius-card)}
body .stepper,
html body[data-theme="light"] .stepper,
html body[data-theme="dark"] .stepper{
  border:1px solid var(--hairline);
  background:var(--surface-2);
  border-radius:var(--radius-card);
  box-shadow:none;
}
body .sidebar,body .inspector,
html body[data-theme="light"] .sidebar,
html body[data-theme="dark"] .sidebar,
html body[data-theme="light"] .inspector,
html body[data-theme="dark"] .inspector{background:var(--surface-2)}
body .side-nav-block{
  border-color:var(--hairline);
  background:color-mix(in srgb, var(--surface-1) 70%, transparent);
  border-radius:var(--radius-card);
}
body .side-toggle,
html body[data-theme="light"] .side-toggle,
html body[data-theme="dark"] .side-toggle{
  background:var(--surface-1);border-color:var(--hairline);color:var(--muted);
  border-radius:var(--radius-btn);
}

body .search,body .select,body .edit-area,
html body[data-theme="light"] .search,
html body[data-theme="dark"] .search,
html body[data-theme="light"] .select,
html body[data-theme="dark"] .select,
html body[data-theme="light"] .edit-area,
html body[data-theme="dark"] .edit-area{
  background:var(--surface-1);border-color:var(--hairline);color:var(--text);
  border-radius:var(--radius-input);min-height:var(--control-h);
  box-shadow:var(--shadow-0);
  transition:border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease),background var(--duration) var(--ease);
}
body .search:focus,body .select:focus,body .edit-area:focus,
html body[data-theme="light"] .edit-area:focus,
html body[data-theme="dark"] .edit-area:focus,
html body[data-theme="light"] .search:focus,
html body[data-theme="dark"] .search:focus{
  outline:none;border-color:var(--primary);box-shadow:var(--focus-ring);
}

/* 阅读弹窗：压过 body .edit-area { min-height: 32px }，避免全文预览/展开编辑缩成一条 */
body textarea.edit-area.modal-textarea,
html body[data-theme="light"] textarea.edit-area.modal-textarea,
html body[data-theme="dark"] textarea.edit-area.modal-textarea{
  min-height:min(58vh,620px);
  font-size:15px;
  line-height:1.75;
  padding:14px 16px;
  resize:vertical;
}
body textarea.edit-area.modal-textarea.sb-grid-preview-prompt,
html body[data-theme="light"] textarea.edit-area.modal-textarea.sb-grid-preview-prompt,
html body[data-theme="dark"] textarea.edit-area.modal-textarea.sb-grid-preview-prompt{
  min-height:min(48vh,520px);
  height:min(48vh,520px);
  font-size:12px;
  line-height:1.6;
  padding:10px 12px;
}
/* 视频确认/逐帧编辑：同样压过 32px 控件高度，提示词要能整段阅读 */
body textarea.edit-area.confirm-vid-prompt-edit,
html body[data-theme="light"] textarea.edit-area.confirm-vid-prompt-edit,
html body[data-theme="dark"] textarea.edit-area.confirm-vid-prompt-edit{
  min-height:min(48vh,520px);
  height:min(48vh,520px);
  max-height:min(70vh,760px);
  font-size:14px;
  line-height:1.7;
  padding:12px 14px;
  resize:vertical;
}
body textarea.edit-area.vid-pick-desc-edit,
html body[data-theme="light"] textarea.edit-area.vid-pick-desc-edit,
html body[data-theme="dark"] textarea.edit-area.vid-pick-desc-edit{
  min-height:16em;
  height:16em;
  max-height:min(48vh,420px);
  font-size:13px;
  line-height:1.65;
  padding:10px 12px;
  resize:vertical;
}
body .work-modal-panel.is-voice-tune textarea.edit-area.modal-textarea,
body .work-modal-panel.is-voice-manual textarea.edit-area.modal-textarea,
html body[data-theme] .work-modal-panel.is-voice-tune textarea.edit-area.modal-textarea,
html body[data-theme] .work-modal-panel.is-voice-manual textarea.edit-area.modal-textarea{
  min-height:140px;
}
body .work-modal-panel.is-text-reader,
html body[data-theme] .work-modal-panel.is-text-reader{
  width:min(1100px,calc(100vw - 32px));
  height:min(88vh,calc(100vh - 24px));
  max-height:min(88vh,calc(100vh - 24px));
}
body .work-modal-panel.is-text-reader .work-modal-body,
html body[data-theme] .work-modal-panel.is-text-reader .work-modal-body{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
}
body .work-modal-panel.is-text-reader textarea.edit-area.modal-textarea,
html body[data-theme] .work-modal-panel.is-text-reader textarea.edit-area.modal-textarea{
  flex:1 1 auto;
  min-height:0;
  height:auto;
}

body .episode,
html body[data-theme="light"] .episode,
html body[data-theme="dark"] .episode{
  border-color:var(--hairline);background:var(--surface-1);border-radius:var(--radius-md);
}
body .episode:hover{background:color-mix(in srgb, var(--primary) 8%, var(--surface-1))}
body .episode.active,
html body[data-theme="light"] .episode.active,
html body[data-theme="dark"] .episode.active{
  background:color-mix(in srgb, var(--primary) 14%, var(--surface-1));
  border-color:var(--primary);
}
body .ep-num{background:var(--surface-2);border-radius:var(--radius-btn)}
body .episode.active .ep-num,
html body[data-theme="light"] .episode.active .ep-num,
html body[data-theme="dark"] .episode.active .ep-num{background:var(--primary);color:var(--on-primary)}

body .card,body .scene-card,
html body[data-theme="light"] .card,
html body[data-theme="dark"] .card,
html body[data-theme="light"] .scene-card,
html body[data-theme="dark"] .scene-card{
  background:var(--surface-1);border-color:var(--hairline);
  border-radius:var(--radius-card);box-shadow:var(--shadow-1);
}
html body .scene-card.preamble-card,
html body[data-theme="light"] .scene-card.preamble-card,
html body[data-theme="dark"] .scene-card.preamble-card{
  background:rgba(255,180,92,.14);
  border:2px solid rgba(255,180,92,.72);
  box-shadow:0 0 0 1px rgba(255,180,92,.18), var(--shadow-1);
}
html body[data-theme="light"] .scene-card.preamble-card{
  background:#FFF4E5;
  border-color:#E0A84A;
  box-shadow:0 0 0 1px rgba(224,168,74,.28), var(--shadow-1);
}
html body .preamble-card .scene-head{
  background:rgba(255,180,92,.10);
  border-bottom-color:rgba(255,180,92,.28);
}
html body[data-theme="light"] .preamble-card .scene-head{
  background:#FFE9C8;
  border-bottom-color:#E6C07A;
}
html body .preamble-card .field{
  border:1.5px solid rgba(255,180,92,.42);
  background:rgba(255,180,92,.10);
}
html body[data-theme="light"] .preamble-card .field{
  background:#FFFBF3;
  border-color:#E6C07A;
}
html body .preamble-card .scene-id{
  color:#ffd39c;
  background:rgba(255,180,92,.22);
}
html body[data-theme="light"] .preamble-card .scene-id{
  color:#A56A14;
  background:rgba(224,168,74,.22);
}
html body .preamble-card .btn-expand-preamble{
  border-color:rgba(255,180,92,.55);
  background:rgba(255,180,92,.14);
  font-weight:750;
}
html body[data-theme="light"] .preamble-card .btn-expand-preamble{
  border-color:#D4A24A;
  background:#FFE7C2;
  color:#7A4E0E;
}
body .toast,
html body[data-theme="light"] .toast,
html body[data-theme="dark"] .toast{
  background:var(--surface-1);border-color:var(--hairline);color:var(--text);
  border-radius:var(--radius-card);box-shadow:var(--shadow-pop);
}
body .badge.green{color:var(--green);border-color:color-mix(in srgb, var(--green) 40%, transparent);background:color-mix(in srgb, var(--green) 12%, transparent)}
body .badge.orange{color:var(--orange);border-color:color-mix(in srgb, var(--orange) 40%, transparent);background:color-mix(in srgb, var(--orange) 12%, transparent)}
body .badge.purple{color:var(--primary);border-color:color-mix(in srgb, var(--primary) 40%, transparent);background:color-mix(in srgb, var(--primary) 12%, transparent)}
body .badge.blue{color:var(--blue);border-color:color-mix(in srgb, var(--blue) 40%, transparent);background:color-mix(in srgb, var(--blue) 12%, transparent)}
body .progress,body .run-progress{background:var(--surface-2)}
body .progress>i,body .run-bar,
html body[data-theme="light"] .progress>i,
html body[data-theme="dark"] .progress>i{background:var(--primary)}
body .save{color:var(--green)}
body .source{background:var(--surface-2);color:var(--muted);border-radius:var(--radius-xs)}
body .code{background:var(--surface-2);border-color:var(--hairline);color:var(--text);border-radius:var(--radius-card);font-family:var(--font-mono)}
html body[data-theme="light"] .code,
html body[data-theme="dark"] .code{background:var(--surface-2);border-color:var(--hairline);color:var(--text)}
body .footer-actions{background:linear-gradient(180deg,transparent,var(--surface-2) 28%)}

body .btn,
html body[data-theme="light"] .btn,
html body[data-theme="dark"] .btn,
body .btn-ai-voice{
  background:var(--btn-bg);color:var(--btn-text);
  border:1px solid var(--btn-border);border-radius:var(--radius-btn);
  box-shadow:var(--btn-shadow);text-shadow:none;filter:none;
  min-height:var(--control-h);padding:6px 12px;
  font-weight:var(--btn-weight);
  letter-spacing:var(--btn-tracking);
  text-transform:var(--btn-transform);
  font-feature-settings:var(--font-feature);
  transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease),color var(--duration) var(--ease),box-shadow var(--duration) var(--ease),transform var(--duration) var(--ease);
}
body .btn.sm{min-height:calc(var(--control-h) - 8px);padding:4px 10px}
body .btn:hover,
html body[data-theme="light"] .btn:hover,
html body[data-theme="dark"] .btn:hover{
  filter:none;background:color-mix(in srgb, var(--primary) 10%, var(--btn-bg));
  border-color:var(--primary);box-shadow:var(--btn-shadow);
}
body .btn:active,
html body[data-theme="light"] .btn:active,
html body[data-theme="dark"] .btn:active,
body .step-tab:active,
html body[data-theme="light"] .step-tab:active,
html body[data-theme="dark"] .step-tab:active,
body .skin-ui-btn:active{
  transform:var(--press);box-shadow:var(--btn-shadow);
}
body .btn:focus-visible,
body .step-tab:focus-visible,
body .search:focus-visible,
body .select:focus-visible,
body .skin-ui-btn:focus-visible{
  outline:none;box-shadow:var(--focus-ring);
}
body .btn.primary,
html body[data-theme="light"] .btn.primary,
html body[data-theme="dark"] .btn.primary{
  background:var(--btn-primary-bg);color:var(--on-primary);border-color:transparent;
  box-shadow:var(--btn-shadow);text-shadow:none;
}
body .btn.primary:hover,
html body[data-theme="light"] .btn.primary:hover,
html body[data-theme="dark"] .btn.primary:hover{
  background:var(--primary-hover);filter:none;color:var(--on-primary);
}
body .btn.primary:active,
html body[data-theme="light"] .btn.primary:active,
html body[data-theme="dark"] .btn.primary:active{background:var(--primary-active)}
body .btn.ghost,
html body[data-theme="light"] .btn.ghost,
html body[data-theme="dark"] .btn.ghost{
  background:transparent;border-color:var(--hairline);color:var(--text);box-shadow:none;text-shadow:none;
}
body .step-tab,
html body[data-theme="light"] .step-tab,
html body[data-theme="dark"] .step-tab{
  background:var(--btn-bg);color:var(--btn-text);border:1px solid var(--hairline);
  border-radius:var(--radius-btn);box-shadow:var(--btn-shadow);text-shadow:none;filter:none;
  min-height:var(--control-h);
  font-weight:var(--btn-weight);
  letter-spacing:var(--btn-tracking);
  text-transform:var(--btn-transform);
  font-feature-settings:var(--font-feature);
  transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease),color var(--duration) var(--ease),box-shadow var(--duration) var(--ease),transform var(--duration) var(--ease);
}
body .step-tab:hover,
html body[data-theme="light"] .step-tab:hover,
html body[data-theme="dark"] .step-tab:hover{
  color:var(--text);background:color-mix(in srgb, var(--primary) 12%, var(--btn-bg));
  border-color:var(--primary);box-shadow:var(--btn-shadow);filter:none;text-shadow:none;
}
body .step-tab.active,
html body[data-theme="light"] .step-tab.active,
html body[data-theme="dark"] .step-tab.active{
  background:var(--primary);color:var(--on-primary);border-color:transparent;
  box-shadow:none;text-shadow:none;filter:none;font-weight:800;
}
body .segmented,
html body[data-theme="light"] .segmented,
html body[data-theme="dark"] .segmented{
  background:var(--surface-2);border:1px solid var(--hairline);box-shadow:none;border-radius:var(--radius-md);
}
body .segmented button,
html body[data-theme="light"] .segmented button,
html body[data-theme="dark"] .segmented button{
  background:transparent;color:var(--muted);box-shadow:none;border-radius:var(--radius-btn);text-shadow:none;
}
body .segmented button.active{
  background:var(--surface-1);color:var(--text);box-shadow:var(--shadow-1);
}

body .modal-mask,body .api-pop,body .skin-pop{background:var(--overlay)}
body .modal-card,
body .api-pop-card,
html body[data-theme="light"] .modal-card,
html body[data-theme="dark"] .modal-card{
  background:var(--surface-1);border:1px solid var(--hairline);
  border-radius:var(--radius-xl);box-shadow:var(--shadow-pop);
}
body .modal-head{border-bottom-color:var(--hairline);background:color-mix(in srgb, var(--primary) 6%, var(--surface-1))}
body .modal-close{border-radius:var(--radius-btn);border-color:var(--hairline);color:var(--text)}
body .api-pop-row input{border-radius:var(--radius-input);border-color:var(--hairline);background:var(--surface-2);color:var(--text)}
body .api-pop-row input:focus{border-color:var(--primary);box-shadow:var(--focus-ring)}

body .skin-pop{
  position:fixed;inset:0;z-index:230;
  display:flex;align-items:flex-start;justify-content:flex-end;
  padding:58px 14px 18px;text-align:left;
}
body .skin-pop[hidden]{display:none}
body .skin-pop-card{
  width:min(420px,96vw);max-height:calc(100vh - 76px);overflow:hidden;
  background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--radius-card);
  padding:16px 18px 14px;box-shadow:var(--shadow-pop);
  display:flex;flex-direction:column;gap:12px;
}
body .skin-pop-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
body .skin-pop-head b{font-size:14px;color:var(--text);font-family:var(--font-display)}
body .skin-pop-section{display:flex;flex-direction:column;gap:8px;min-height:0}
body .skin-pop-label{font-size:11px;font-weight:750;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
body .skin-ui-row{display:flex;gap:8px}
body .skin-ui-btn{
  flex:1;padding:8px 12px;cursor:pointer;
  min-height:var(--control-h);
  border-radius:var(--radius-btn);border:1px solid var(--btn-border);
  color:var(--btn-text);background:var(--btn-bg);box-shadow:var(--btn-shadow);text-shadow:none;
  font-weight:var(--btn-weight);
  letter-spacing:var(--btn-tracking);
  text-transform:var(--btn-transform);
  font-feature-settings:var(--font-feature);
  transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease),color var(--duration) var(--ease),transform var(--duration) var(--ease);
}
body .skin-ui-btn.is-active{
  color:var(--on-primary);background:var(--btn-primary-bg);border-color:transparent;
}
body .skin-pop-filter{width:100%;margin:0}
body .skin-system-grid{
  display:grid;grid-template-columns:1fr;gap:8px;
  overflow:auto;max-height:min(58vh,540px);align-content:start;min-height:0;flex:1;
}
body .skin-system-card{
  display:flex;gap:10px;align-items:center;
  padding:9px 10px;border-radius:var(--radius-card);cursor:pointer;text-align:left;
  border:1px solid var(--hairline);background:var(--surface-2);color:var(--text);
}
body .skin-system-card.is-active{
  border-color:var(--primary);
  box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 28%, transparent);
}
body .skin-system-swatch{
  width:26px;height:26px;border-radius:var(--radius-sm);flex:0 0 auto;
  background:var(--swatch, var(--primary));
  border:1px solid color-mix(in srgb, var(--text) 12%, transparent);
}
body .skin-system-meta{display:flex;flex-direction:column;gap:1px;min-width:0}
body .skin-system-meta strong{font-size:12px;font-weight:750}
body .skin-system-meta em{font-style:normal;font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body .skin-system-empty{font-size:12px;color:var(--muted);padding:12px 8px;line-height:1.5}
body .skin-pop-note{margin:2px 0 0;font-size:11px;line-height:1.5}
@media (max-width:720px){
  body .skin-pop-card{overflow:auto}
  body .skin-system-grid{max-height:none}
}

/* 顶栏 1→5 主流程：靠左、编号胶囊、当前步高亮（压过主题/皮肤扁平化） */
html body .app-top .stepper,
html body[data-theme="light"] .app-top .stepper,
html body[data-theme="dark"] .app-top .stepper{
  margin:0 0 0 4px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:3px;
  padding:4px;
  border:1.5px solid color-mix(in srgb, var(--primary) 58%, var(--hairline));
  border-radius:999px;
  background:color-mix(in srgb, var(--primary) 12%, var(--surface-2));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--primary) 22%, transparent),
    0 8px 22px color-mix(in srgb, var(--primary) 20%, transparent);
  flex:0 0 auto;
  min-width:max-content;
  overflow:visible;
}
html body .app-top .topbar-model-test,
html body[data-theme="light"] .app-top .topbar-model-test,
html body[data-theme="dark"] .app-top .topbar-model-test{
  margin-left:auto;
  margin-right:0;
  flex:0 1 auto;
  flex-wrap:nowrap;
}
html body[data-theme="light"] .app-top .stepper{
  background:color-mix(in srgb, var(--primary) 10%, #fff);
  border-color:color-mix(in srgb, var(--primary) 52%, var(--hairline));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--primary) 16%, transparent),
    0 8px 20px color-mix(in srgb, var(--primary) 16%, transparent);
}
html body .app-top .stepper .step-tab,
html body[data-theme="light"] .app-top .stepper .step-tab,
html body[data-theme="dark"] .app-top .stepper .step-tab{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0;
  padding:5px 10px 5px 5px;
  min-height:38px;
  border:1px solid transparent;
  border-radius:999px;
  background:transparent;
  color:var(--text);
  font-size:12.5px;
  font-weight:750;
  letter-spacing:.01em;
  white-space:nowrap;
  box-shadow:none;
  text-shadow:none;
  filter:none;
  cursor:pointer;
  transition:background var(--duration) var(--ease),color var(--duration) var(--ease),border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease),transform var(--duration) var(--ease);
}
html body .app-top .stepper .step-tab .step-no{
  display:inline-grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  line-height:1;
  color:var(--primary);
  background:color-mix(in srgb, var(--primary) 16%, var(--surface-1));
  border:1.5px solid color-mix(in srgb, var(--primary) 55%, transparent);
  flex:0 0 auto;
}
html body .app-top .stepper .step-tab .step-label{font-weight:750}
html body .app-top .stepper .step-tab:hover,
html body[data-theme="light"] .app-top .stepper .step-tab:hover,
html body[data-theme="dark"] .app-top .stepper .step-tab:hover{
  color:var(--text);
  background:color-mix(in srgb, var(--primary) 18%, var(--surface-1));
  border-color:color-mix(in srgb, var(--primary) 42%, transparent);
  box-shadow:none;
  filter:none;
  text-shadow:none;
}
html body .app-top .stepper .step-tab.active,
html body[data-theme="light"] .app-top .stepper .step-tab.active,
html body[data-theme="dark"] .app-top .stepper .step-tab.active{
  background:var(--primary);
  color:var(--on-primary);
  border-color:transparent;
  font-weight:850;
  box-shadow:
    0 5px 16px color-mix(in srgb, var(--primary) 44%, transparent),
    inset 0 1px 0 color-mix(in srgb, #fff 30%, transparent);
  text-shadow:none;
  filter:none;
}
html body .app-top .stepper .step-tab.active .step-no,
html body[data-theme="light"] .app-top .stepper .step-tab.active .step-no,
html body[data-theme="dark"] .app-top .stepper .step-tab.active .step-no{
  color:var(--on-primary);
  background:color-mix(in srgb, #fff 22%, transparent);
  border-color:color-mix(in srgb, #fff 72%, transparent);
}
@media (max-width:1280px){
  html body .app-top .stepper .step-tab{padding:5px 8px 5px 4px;gap:5px;font-size:12px}
}
@media (max-width:1180px){
  html body .app-top .stepper .step-tab{padding:5px 7px 5px 4px;gap:4px;font-size:11.5px}
}
@media (max-width:850px){
  html body .app-top .stepper{margin:0;width:100%;justify-content:flex-start}
}

/* —— 九宫格查看器：9:16 母图靠左，子图放大并独立滚动 —— */
.work-modal-panel.is-nine-grid .sb-grid-body.is-portrait{
  display:grid;
  grid-template-columns:minmax(248px,34%) minmax(0,1fr);
  grid-template-rows:minmax(0,1fr);
  align-items:stretch;
  justify-items:stretch;
  gap:18px;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  overflow:hidden;
}
.work-modal-panel.is-nine-grid .sb-grid-body.is-portrait .sb-grid-sheet{
  grid-column:1;
  align-self:center;
  justify-self:start;
  width:auto;
  height:100%;
  max-width:100%;
  max-height:100%;
  aspect-ratio:9/16;
}
.work-modal-panel.is-nine-grid .sb-grid-body.is-portrait .sb-grid-tiles{
  grid-column:2;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  aspect-ratio:auto;
  min-width:0;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-gutter:stable;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:max-content;
  align-content:start;
  gap:14px;
  padding:2px 8px 12px 0;
}
.work-modal-panel.is-nine-grid .sb-grid-body.is-portrait .sb-grid-tile{
  width:100%;
  height:auto;
  aspect-ratio:auto;
  min-height:0;
}
.work-modal-panel.is-nine-grid .sb-grid-body.is-portrait .sb-grid-tile-ratio{
  display:block;
  width:100%;
  aspect-ratio:9/16;
  flex:0 0 auto;
  pointer-events:none;
}

/* 让“填入对应…”成为每张子图的明确操作区，而不是一条难发现的细下拉框。 */
.sb-grid-assign-box{
  position:absolute;
  left:6px;
  right:6px;
  bottom:6px;
  z-index:3;
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
  padding:5px 5px 5px;
  border:1px solid color-mix(in srgb,#0e7490 72%,var(--line));
  border-radius:8px;
  background:rgba(7,15,27,.9);
  box-shadow:0 4px 12px rgba(0,0,0,.24);
  backdrop-filter:blur(8px);
}
.sb-grid-assign-box.is-assigned{
  border-color:color-mix(in srgb,#48d5a6 78%,var(--line));
  background:color-mix(in srgb,#0c6654 72%,rgba(7,15,27,.92));
}
.sb-grid-assign-title{
  display:block;
  min-width:0;
  overflow:hidden;
  color:#a9eaf7;
  font-size:11px;
  font-weight:850;
  line-height:1.2;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.sb-grid-assign-box.is-assigned .sb-grid-assign-title{color:#baf8d9;}
.sb-grid-tile select.sb-grid-assign{
  position:static;
  left:auto;
  right:auto;
  bottom:auto;
  display:block;
  width:100%;
  min-width:0;
  height:26px;
  padding:3px 5px;
  border:1px solid color-mix(in srgb,#8edbea 62%,var(--line));
  border-radius:5px;
  background:rgba(245,252,255,.96);
  color:#102536;
  font-size:11px;
  font-weight:750;
  line-height:1.2;
}
.sb-grid-tile:has(.sb-grid-assign-box) .sb-grid-tile-label{
  right:8px;
  bottom:72px;
  max-width:calc(100% - 16px);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sb-grid-body.is-picker .sb-grid-assign-box{display:none;}
.sb-grid-body.is-picker .sb-grid-tile:has(.sb-grid-assign-box) .sb-grid-tile-label{bottom:6px;}

@media (max-width:980px){
  .work-modal-panel.is-nine-grid .sb-grid-body.is-portrait{
    grid-template-columns:1fr;
    grid-template-rows:minmax(220px,42%) minmax(0,1fr);
    gap:12px;
    overflow:hidden;
  }
  .work-modal-panel.is-nine-grid .sb-grid-body.is-portrait .sb-grid-sheet{
    grid-column:1;
    grid-row:1;
    width:auto;
    height:100%;
    justify-self:center;
  }
  .work-modal-panel.is-nine-grid .sb-grid-body.is-portrait .sb-grid-tiles{
    grid-column:1;
    grid-row:2;
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:max-content;
    width:100%;
    height:100%;
  }
}

/* 选择态覆盖旧的 9:16 查看器固定两列/固定高度规则：所有子图 3x3 居中排列。 */
.work-modal-panel.is-nine-grid .sb-grid-body.is-picker .sb-grid-tiles,
.work-modal-panel.is-nine-grid .sb-grid-body.is-portrait.is-picker .sb-grid-tiles{
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-rows:repeat(3,minmax(0,1fr));
  grid-auto-rows:none;
  height:100%;
  max-height:100%;
  padding:4px;
  gap:12px;
  overflow:hidden;
}
.work-modal-panel.is-nine-grid .sb-grid-body.is-picker .sb-grid-tile,
.work-modal-panel.is-nine-grid .sb-grid-body.is-portrait.is-picker .sb-grid-tile{
  width:100%;
  height:100%;
  min-height:0;
  aspect-ratio:auto;
  align-self:stretch;
}
.work-modal-panel.is-nine-grid .sb-grid-body.is-picker .sb-grid-tile-stage,
.work-modal-panel.is-nine-grid .sb-grid-body.is-portrait.is-picker .sb-grid-tile-stage{
  position:absolute;
  inset:0;
  height:100%;
  aspect-ratio:auto;
}

/* ===================== 新手教程大弹窗（应用内，不再开新标签） ===================== */
button.logo-help{font:inherit;cursor:pointer;letter-spacing:var(--tracking)}
.help-modal .work-modal-panel.help-modal-panel{
  width:min(1320px,calc(100vw - 40px));
  height:calc(100vh - 56px);
  max-height:none;
}
.help-modal-head h3{font-size:19px}
.help-modal-layout{flex:1;min-height:0;display:grid;grid-template-columns:216px 1fr}
/* 左侧目录 */
.help-toc{display:flex;flex-direction:column;gap:2px;padding:14px 10px;border-right:1px solid var(--line);background:color-mix(in srgb,var(--panel) 72%,transparent);overflow:auto}
.help-toc-item{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--muted);font-size:12.5px;font-weight:650;text-align:left;line-height:1.35}
.help-toc-item i{font-style:normal;width:20px;height:20px;flex:0 0 auto;border-radius:7px;color:#fff;font-size:10.5px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--primary) 55%,var(--panel))}
.help-toc-item:hover{color:var(--text);background:color-mix(in srgb,var(--primary) 8%,transparent)}
.help-toc-item.active{color:var(--text);border-color:color-mix(in srgb,var(--primary) 45%,transparent);background:color-mix(in srgb,var(--primary) 14%,transparent)}
.help-toc-item.active i{background:var(--primary)}
/* 右侧内容 */
.help-content{position:relative;min-height:0;overflow:auto;padding:22px 28px 40px;scroll-behavior:smooth}
.help-sec{max-width:860px;margin:0 0 44px;scroll-margin-top:8px}
.help-lede{margin:0 0 12px;font-size:15px;line-height:1.7;color:var(--text)}
.help-sec h2{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:19px;line-height:1.3}
.help-sec-no{width:26px;height:26px;flex:0 0 auto;border-radius:9px;color:#fff;font-size:13px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary),var(--primary-hover))}
.help-sec h3{margin:18px 0 6px;font-size:14.5px;color:var(--purple2)}
.help-sec p{margin:8px 0;line-height:1.8;font-size:13.5px}
.help-sec code{background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:1px 6px;font-size:12px;font-family:var(--font-mono)}
.help-list{margin:8px 0;padding-left:20px;line-height:1.9;font-size:13.5px}
.help-list b{color:var(--purple2)}
/* 五步流程 chips */
.help-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.help-flow-step{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--panel2);font-size:12.5px;font-weight:700}
.help-flow-step i{font-style:normal;width:18px;height:18px;border-radius:6px;color:#fff;font-size:11px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary),var(--primary-hover))}
.help-flow-arrow{color:var(--muted)}
/* 布局卡片 */
.help-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin:14px 0}
.help-card{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:12px 14px}
.help-card b{font-size:13px}
.help-card p{margin:6px 0 0;font-size:12.5px;color:var(--muted);line-height:1.7}
/* 提示条 */
.help-callout{border-radius:12px;padding:10px 14px;margin:12px 0;font-size:13px;line-height:1.7;border:1px solid}
.help-callout b{margin-right:6px}
.help-callout.tip{border-color:rgba(72,213,166,.4);background:rgba(72,213,166,.08)}
.help-callout.tip b{color:#48d5a6}
.help-callout.warn{border-color:rgba(255,180,92,.45);background:rgba(255,180,92,.09)}
.help-callout.warn b{color:#ffb45c}
/* 截图 */
.help-figure{margin:14px 0;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.help-figure img{width:100%;display:block;border-radius:9px;border:1px solid var(--line);cursor:zoom-in;box-shadow:0 10px 30px rgba(0,0,0,.28)}
.help-figure figcaption{margin-top:8px;font-size:12px;color:var(--muted);text-align:center}
/* 命令块 / FAQ */
.help-code{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:10px 0;font-size:12.5px;line-height:1.75;overflow:auto;color:#48d5a6;white-space:pre;font-family:var(--font-mono)}
.help-faq details{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:10px 14px;margin:8px 0}
.help-faq summary{cursor:pointer;font-weight:700;font-size:13.5px}
.help-faq details p{margin:8px 0 2px;color:var(--muted);font-size:13px}
.help-version{margin-top:16px;font-size:11.5px;color:var(--muted);text-align:right}
/* 截图灯箱（教程弹窗内点击放大） */
.help-lightbox{position:fixed;inset:0;z-index:400;display:grid;place-items:center;padding:32px;background:rgba(2,4,10,.86);backdrop-filter:blur(6px);cursor:zoom-out}
.help-lightbox[hidden]{display:none}
.help-lightbox img{max-width:100%;max-height:100%;border-radius:12px;border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 90px rgba(0,0,0,.6)}

/* —— 2026-09-01 一级主操作按钮(C 方案:主色实心) ——
   用户指定 8 个最高层级主操作按钮统一为主色实心突出:
   覆盖 09-01 扁平化压平块(L3196/3179/3932/3955)与 ghost 类(P7)。
   顺序:本块位于文件末尾,特异性 + 顺序双重保证生效。 */
body .btn.primary#btnStructureCurrent,
body .btn.primary#btnAssetCensus,
body .btn.primary#btnRun-imagegen,
body .btn.primary#btnStoryboardRefCheck,
body .btn.primary#btnStoryboardGridAll,
body .btn.primary#btnRunVideoAllFull,
body .btn.primary#btnRunNarrationAll,
body .btn.primary#btnStructureCurrent:hover,
body .btn.primary#btnAssetCensus:hover,
body .btn.primary#btnRun-imagegen:hover,
body .btn.primary#btnStoryboardRefCheck:hover,
body .btn.primary#btnStoryboardGridAll:hover,
body .btn.primary#btnRunVideoAllFull:hover,
body .btn.primary#btnRunNarrationAll:hover{
  background:var(--btn-primary-bg);
  color:var(--on-primary);
  border-color:transparent;
  box-shadow:none;
  text-shadow:none;
  filter:none;
}
body .btn.primary#btnStructureCurrent:hover,
body .btn.primary#btnAssetCensus:hover,
body .btn.primary#btnRun-imagegen:hover,
body .btn.primary#btnStoryboardRefCheck:hover,
body .btn.primary#btnStoryboardGridAll:hover,
body .btn.primary#btnRunVideoAllFull:hover,
body .btn.primary#btnRunNarrationAll:hover{background:var(--primary-hover)}
body .btn.primary#btnStructureCurrent:active,
body .btn.primary#btnAssetCensus:active,
body .btn.primary#btnRun-imagegen:active,
body .btn.primary#btnStoryboardRefCheck:active,
body .btn.primary#btnStoryboardGridAll:active,
body .btn.primary#btnRunVideoAllFull:active,
body .btn.primary#btnRunNarrationAll:active{background:var(--primary-active);color:var(--on-primary);border-color:transparent;box-shadow:none}
/* 徽章:hairline 中性底(原白 14% 半透明在实心浅底上不可见) */
body .workbench .btn.primary .run-wf-badge,
body .workbench .btn.primary#btnRunVideoAllFull .run-wf-badge,
body .workbench .btn.primary#btnRunNarrationAll .run-wf-badge{
  background:transparent;
  color:var(--on-primary);
  border:1px solid color-mix(in srgb, var(--on-primary) 45%, transparent);
  box-shadow:none;
  text-shadow:none;
}
/* 镜头卡「单分镜图生视频/对口型视频」升为主操作：覆盖 shot-head 压平规则 */
body .lib-block-head.shot-head .shot-head-gen-actions .btn.primary.vid-portrait-open,
body .lib-block-head.shot-head .shot-head-gen-actions .btn.primary.vid-portrait-open:hover{
  background:var(--btn-primary-bg);
  color:var(--on-primary);
  border-color:transparent;
  box-shadow:none;
  text-shadow:none;
  filter:none;
  white-space:nowrap;
  flex-shrink:0;
}
body .lib-block-head.shot-head .shot-head-gen-actions .btn.primary.vid-portrait-open:hover{background:var(--primary-hover)}
body .lib-block-head.shot-head .shot-head-gen-actions .btn.primary.vid-portrait-open:active{
  background:var(--primary-active);
  color:var(--on-primary);
  border-color:transparent;
  box-shadow:none;
}

/* 共享视图头：三视图常显（展示剧本/拆镜与旁白/分镜脚本） */
.script-view-head.is-shared{
  flex:0 0 auto;
  margin:0 0 10px;
  padding:8px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:rgba(255,255,255,.03);
}
/* 视图头三区网格：标题居左 · 三视图切换精确居中 · 操作按钮居右；meta 说明独占第二行 */
.script-view-head.is-shared .script-view-title-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  grid-template-areas:"title seg actions" "meta meta meta";
  align-items:center;
  gap:6px 12px;
}
.script-view-head.is-shared .script-view-title-row h3{grid-area:title;margin:0}
.script-view-head.is-shared .script-pane-seg{grid-area:seg;justify-self:center}
.script-view-head.is-shared .script-view-title-row > .muted{
  grid-area:meta;
  justify-self:start;
  min-width:0;
  max-width:100%;
  font-size:11px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
@media (max-width:1180px){
  .script-view-head.is-shared .script-view-title-row{
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"title actions" "seg seg" "meta meta";
  }
  .script-view-head.is-shared .script-pane-seg{justify-self:start}
}
.script-view-head.is-shared .script-view-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
  grid-area:actions;
  justify-self:end;
}
.panel-view.adapt-subview .adapt-subview-heading{display:none}

@keyframes draftReviewFlash{
  0%,100%{box-shadow:0 0 0 0 rgba(255,171,64,0)}
  50%{box-shadow:0 0 0 4px rgba(255,171,64,.35)}
}

/* 草稿审阅左栏入口：挂在「开始拆镜」卡底部，竖排按钮 */
.draft-review-sidebar{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:6px;
  margin-top:8px;
  padding-top:8px;
  border-top:1px dashed var(--line, #e5d5c5);
}
.draft-review-sidebar .draft-review-stats{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  min-width:0;
  gap:6px;
  font-size:12px;
  line-height:1.5;
}
.draft-review-sidebar .draft-review-actions{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.draft-review-sidebar .draft-review-actions .btn{width:100%;white-space:nowrap}
.draft-review-sidebar.is-flash{
  animation:draftReviewFlash 0.55s ease-in-out 3;
}
.draft-review-sidebar.is-approved{
  padding:8px 10px;
  border:1px solid rgba(54,178,128,.35);
  border-radius:8px;
  background:rgba(54,178,128,.06);
}
.draft-review-sidebar.is-empty{
  border-top:1px dashed var(--line);
  opacity:.85;
}
.draft-review-sidebar.is-pending{
  padding:8px 10px;
  border:1px solid rgba(232,145,50,.35);
  border-radius:8px;
  background:rgba(232,145,50,.06);
}
.draft-review-sidebar.is-invalid{
  padding:8px 10px;
  border:1px solid rgba(196,72,72,.35);
  border-radius:8px;
  background:rgba(196,72,72,.06);
}
.draft-review-sidebar .btn.is-idle-disabled{
  opacity:.55;
}

/* 描边版主按钮：去实心填充，保留主题主色描边与同色文字
   （AI自动调声线 / 单句「生成这段 TTS」系列按钮） */
body .btn.btn-outline-accent,
html body[data-theme="light"] .btn.btn-outline-accent,
html body[data-theme="dark"] .btn.btn-outline-accent{
  background:transparent;
  border:1.5px solid var(--btn-primary-bg);
  color:var(--btn-primary-bg);
  box-shadow:none;
}
body .btn.btn-outline-accent:hover,
html body[data-theme="light"] .btn.btn-outline-accent:hover,
html body[data-theme="dark"] .btn.btn-outline-accent:hover{
  background:color-mix(in srgb, var(--btn-primary-bg) 10%, transparent);
  border-color:var(--btn-primary-bg);
  color:var(--btn-primary-bg);
  filter:none;
  box-shadow:none;
}
body .btn.btn-outline-accent:active{
  background:color-mix(in srgb, var(--btn-primary-bg) 16%, transparent);
}
body .btn.btn-outline-accent.is-generating{
  background:color-mix(in srgb, var(--btn-primary-bg) 8%, transparent);
  border-color:var(--btn-primary-bg);
  color:var(--btn-primary-bg);
}

/* 对口型/一键全部生成 资产盘点与确认弹窗 */
.modal-card.vid-avatar-all-confirm-card {
  width: min(860px, calc(100vw - 32px));
  max-height: calc(100vh - 48px);
  display: flex;
  flex-direction: column;
}

.vid-avatar-confirm-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px;
  margin-bottom: 14px;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--line, rgba(120, 150, 210, 0.18));
  border-radius: var(--radius-md, 8px);
}

body[data-theme="light"] .vid-avatar-confirm-summary {
  background: rgba(0, 0, 0, 0.02);
}

.vid-avatar-confirm-stat {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.vid-avatar-confirm-stat-title {
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
}

.vid-avatar-confirm-stat-detail {
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.vid-avatar-confirm-table-wrap {
  flex: 1 1 auto;
  max-height: min(380px, 50vh);
  overflow: auto;
  border: 1px solid var(--line, rgba(120, 150, 210, 0.18));
  border-radius: var(--radius-md, 8px);
  margin-bottom: 14px;
}

.vid-avatar-confirm-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  text-align: left;
}

.vid-avatar-confirm-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--panel2, #141724);
  padding: 8px 10px;
  font-weight: 700;
  color: var(--muted);
  border-bottom: 1px solid var(--line, rgba(120, 150, 210, 0.25));
  white-space: nowrap;
}

body[data-theme="light"] .vid-avatar-confirm-table th {
  background: var(--surface-2, #f1f5f9);
}

.vid-avatar-confirm-table td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--line, rgba(120, 150, 210, 0.12));
  vertical-align: middle;
}

.vid-avatar-confirm-table tr:hover td {
  background: rgba(255, 255, 255, 0.02);
}

body[data-theme="light"] .vid-avatar-confirm-table tr:hover td {
  background: rgba(0, 0, 0, 0.02);
}

.vid-avatar-confirm-line-text {
  max-width: 260px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text);
}

.vid-avatar-confirm-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding-top: 10px;
  border-top: 1px solid var(--line, rgba(120, 150, 210, 0.15));
}

/* Authentication screen shares the workbench source and design tokens. */
body.auth-pending .page { display: none; }
.flow-auth { min-height: 100dvh; display: grid; place-items: center; padding: 24px; box-sizing: border-box; }
.flow-auth[hidden] { display: none; }
.flow-auth-card { width: min(100%, 400px); box-sizing: border-box; padding: 28px; border: 1px solid var(--border); border-radius: 16px; background: var(--panel); }
.flow-auth-card h1 { margin: 0 0 12px; font-size: 24px; }
.flow-auth-card label { display: grid; gap: 8px; margin: 18px 0; }
.flow-auth-card label[hidden] { display: none; }
.flow-auth-card input { width: 100%; min-width: 0; box-sizing: border-box; padding: 10px; border: 1px solid var(--border); border-radius: 8px; background: var(--panel2); color: var(--text); }
#flowAuthError { color: #ef6666; min-height: 20px; overflow-wrap: anywhere; }
.script-template-body{display:flex;flex-direction:column;gap:12px}
.script-template-sample{
  margin:0;
  padding:12px 14px;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:12px;
  background:color-mix(in srgb, var(--panel) 88%, var(--text) 12%);
  color:var(--text);
  font:13px/1.65 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  white-space:pre-wrap;
}
.script-template-rules{display:flex;flex-direction:column;gap:8px;margin:0}
.script-template-rules div{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px}
.script-template-rules dt{color:var(--purple2);font-weight:800}
.script-template-rules dd{margin:0;color:var(--text)}
.script-template-rules code{font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
