/* ── 锐汐 AI — 覆盖层 ── */
/* 布局和主题已在 styles.css 定义，这里只做差异补丁 */

:root[data-theme=dark],
:root[data-theme=ocean],
:root[data-theme=forest],
:root[data-theme=dusk],
:root[data-theme=amber] { color-scheme: dark; }
:root[data-theme=light] { color-scheme: light; }

html, body { height: 100%; overflow: hidden; }
[hidden] { display: none !important; }

/* 内容区滚动容器 */
.main > section:not(.view-panel):not(#overviewHero):not(#overviewWorkspace) {
  height: calc(100vh - 148px);
  overflow-y: auto; overflow-x: hidden; min-height: 0;
}
.detail-panel, .software-settings, .model-config-panel,
.styles-panel, .create-project-panel, .doubao-panel { overflow-y: auto; }

/* 动画 */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}
#subPanelReasoning, #subPanelVideo { animation: fadeIn .18s ease; }

/* 禁用态 */
button:disabled { opacity: .5; cursor: not-allowed; }
.account-actions button:disabled { opacity: .45; }
[data-theme="light"] .topbar-user,[data-theme="light"] .setting-field,[data-theme="light"] .software-settings .settings-section p{color:#66748c}[data-theme="light"] .reference-tab{color:#66748c}[data-theme="light"] .reference-tab.active{color:#245b9a;background:#eaf3ff}[data-theme="light"] .ghost,[data-theme="light"] .small-button,[data-theme="light"] .mini-button{background:#fff;color:#52627b;border-color:#cdd8e8}[data-theme="light"] .settings-notice{background:#eaf3ff;color:#245b9a}[data-theme="light"] .software-settings .detail-row b{color:#1a2437}
body[data-theme="light"] .sidebar{background:#eef2f8!important;color:#27344d;border-color:#d5dfed}body[data-theme="light"] .sidebar .brand strong,body[data-theme="light"] .sidebar .side-section>span{color:#27344d}body[data-theme="light"] .sidebar .brand small,body[data-theme="light"] .sidebar .nav,body[data-theme="light"] .sidebar-footer{color:#6d7b91}body[data-theme="light"] .sidebar .nav.active,body[data-theme="light"] .sidebar .nav:hover{background:#dbe5f3;color:#1d4f88}body[data-theme="light"] .sidebar .status-dot{background:#25b77d}
[data-theme="light"] body,[data-theme="light"] .main{background:#f5f7fb;color:#1a2437}[data-theme="light"] .sidebar{background:#20263a}[data-theme="light"] .panel,[data-theme="light"] .stats-card,[data-theme="light"] .project-panel,[data-theme="light"] .create-panel,[data-theme="light"] .reference-tabs{background:#fff;color:#1a2437;border-color:#dce3ef}[data-theme="light"] .topbar-brand strong,[data-theme="light"] .panel h2,[data-theme="light"] .panel h3,[data-theme="light"] .project-item strong{color:#1a2437}[data-theme="light"] .setting-field select,[data-theme="light"] .setting-field>input,[data-theme="light"] .file-line input,[data-theme="light"] #currentVideoConfig{background:#fff;color:#1a2437;border-color:#cdd8e8}
[hidden]{display:none!important}

/* ── 项目总览轮播 ───────────────────────────── */
.hero-carousel{position:relative;overflow:hidden;border-radius:18px;grid-column:span 2}
.carousel-track{display:flex;transition:transform .6s cubic-bezier(.4,0,.2,1)}
.hero-card{min-width:100%;flex-shrink:0;opacity:0;transition:opacity .6s}
.hero-card.active{opacity:1}
.carousel-dots{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:2}
.carousel-dots .dot{width:8px;height:8px;border-radius:50%;background:rgba(220,232,251,.3);border:none;cursor:pointer;transition:all .3s}
.carousel-dots .dot.active{width:24px;border-radius:4px;background:#2b96f5}
.carousel-dots .dot:hover{background:rgba(220,232,251,.6)}

/* ── 项目搜索和筛选 ─────────────────────────── */
.project-filters{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
#projectSearchInput{flex:1;min-width:200px;padding:10px 14px;border:1px solid #315071;border-radius:10px;background:#0d1a33;color:#e1edff;font-size:13px}
#projectSearchInput:focus{border-color:#2b96f5;outline:none;box-shadow:0 0 0 3px rgba(43,150,245,.15)}
#projectSearchInput::placeholder{color:#6d88b0}
.filter-buttons{display:flex;gap:8px}
[data-theme="light"] #projectSearchInput{background:#fff;color:#1a2437;border-color:#cdd8e8}
[data-theme="light"] #projectSearchInput::placeholder{color:#8298b4}

/* ── 创建项目面板 ───────────────────────────── */
.create-project-panel{padding:32px 40px;max-width:900px;margin:0 auto}
.create-project-panel .panel-title{margin-bottom:28px}
.create-project-panel form{display:flex;flex-direction:column;gap:20px}
.create-project-panel .setting-field{margin:0}
.create-project-panel .setting-field input,.create-project-panel .setting-field textarea{margin-top:8px;padding:12px 14px;font-size:14px}
.storyboard-generation-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:0;border:0}.storyboard-generation-options legend{margin-bottom:9px;color:var(--text-secondary);font-size:12px}.storyboard-generation-options label{display:flex;gap:9px;min-width:0;padding:12px;border:1px solid #315071;border-radius:8px;background:#13223d;color:#e1edff;cursor:pointer}.storyboard-generation-options input{flex:0 0 auto;margin:3px 0 0;accent-color:#2b96f5}.storyboard-generation-options span{display:grid;gap:4px;min-width:0}.storyboard-generation-options strong{font-size:13px}.storyboard-generation-options small{color:#91a7c9;font-size:11px;line-height:1.45}
@media(max-width:760px){.storyboard-generation-options{grid-template-columns:1fr}}
.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:12px}
.form-actions button{min-width:140px}
[data-theme="light"] .create-project-panel{background:#fff;border-color:#dce3ef}
.doubao-panel{padding:28px 30px;background:#0d1930;border:1px solid #294568;box-shadow:0 0 22px rgba(43,150,245,.18)}.doubao-header{align-items:center;margin-bottom:26px}.doubao-header h2{font-size:27px;margin:0 0 4px;color:#e8f1ff}.doubao-notice{margin:0;color:#ff5d7d!important;font-size:18px!important;font-weight:700;max-width:1100px}.doubao-grid{grid-template-columns:550px 1fr;gap:26px}.doubao-panel .panel{border-radius:0;background:#0d1930;border-color:#294568;padding:28px}.doubao-panel .panel-title{margin-bottom:18px}.doubao-panel .panel-title h3{font-size:24px}.primary-inline{background:#2f94e8!important;color:#fff!important;border-color:#2f94e8!important}.doubao-account{border-radius:14px;background:#101e38;padding:20px;margin:14px 0;display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center}.doubao-account strong{font-size:20px;color:#e5efff}.doubao-account small{font-size:15px}.doubao-account .account-actions{display:flex;gap:10px;grid-column:unset}.doubao-account .account-actions button{border:1px solid #315071;border-radius:9px;background:#13233f;color:#dce8fb;padding:9px 16px;cursor:pointer}.doubao-records{min-height:570px}.record-filters{display:flex;gap:10px;border-bottom:1px solid #294568;padding-bottom:18px}.filter{border:1px solid #315071;border-radius:9px;background:#13233f;color:#dce8fb;padding:9px 18px;cursor:pointer}.filter.active{background:#8e3d61;border-color:#a94b70}
.doubao-record-row{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid #1e3454;font-size:13px}.doubao-record-row:last-child{border-bottom:0}.doubao-record-row:hover{background:#102040}.rec-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rec-status{display:inline-block;border-radius:5px;padding:3px 8px;font-size:11px;font-weight:600}.rec-status-ok{background:#0e3324;color:#31d19a}.rec-status-fail{background:#3a0e1a;color:#f05575}.rec-status-active{background:#0e2a4a;color:#5bb0f5}.rec-account{color:#91a7c9;font-size:12px}.rec-model{color:#6d88b0;font-size:11px;background:#0d1c35;border:1px solid #1e3454;border-radius:4px;padding:2px 6px}.rec-detail{overflow:hidden}.rec-prompt{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a8bdda;font-size:12px}.rec-time{color:#5b728f;font-size:11px;white-space:nowrap;text-align:right}.pagination-nav{display:flex;align-items:center;gap:8px}.record-pagination{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
/* ── 软件设置页 ─────────────────────────────── */
.software-settings .settings-section h3{font-size:13px;letter-spacing:.6px;text-transform:uppercase;color:#7aacde;border-left:3px solid #2b96f5;padding-left:10px;margin:0 0 16px}
.software-settings .settings-section p{margin:6px 0 14px;font-size:12px;line-height:1.65;color:#6d88b0}
.software-settings .detail-row{padding:13px 0;font-size:13px}
.software-settings .detail-row span{color:#8aa5c8}
.timeout-control input{background:#0f1d38;border:1px solid #315071;border-radius:8px;color:#e1edff;font-size:15px;padding:9px 12px;width:120px}
.timeout-control input:focus{border-color:#2b96f5;outline:none;box-shadow:0 0 0 3px rgba(43,150,245,.15)}
.add-keyword{background:#0d1a33;border:1px dashed #3a5c84;border-radius:14px;color:#4a9de0;font-size:12px;padding:8px 14px;margin-top:10px;transition:background .15s}
.add-keyword:hover{background:#12294a;border-color:#2b96f5}
.keyword{border:1px solid #2a4b72;border-radius:14px;background:#0e1f3a;overflow:hidden}
.keyword input{color:#c8ddf5;background:transparent;width:120px;padding:7px 10px;font-size:12px}
.keyword button{background:#1d3a5c;color:#7cb8e8;padding:0 10px;font-size:15px;border-left:1px solid #2a4b72;transition:background .12s}
.keyword button:hover{background:#2f5580;color:#f07090}
.check-line label{display:flex;align-items:center;gap:7px;font-size:13px;cursor:pointer;color:#b8cfec}

/* ── 模型配置页 ─────────────────────────────── */
.model-config-panel{border:1px solid #294568}
.model-config-panel .panel-title{border-bottom:1px solid #1e3454;padding-bottom:18px;margin-bottom:22px}
.provider-switch{width:auto;max-width:320px;background:#0d1a33;border-color:#2a4568}
.provider{font-size:13px;letter-spacing:.3px;transition:background .15s,color .15s}
.provider.active{background:linear-gradient(135deg,#163e6c,#1a4d80);color:#e8f3ff;box-shadow:inset 0 0 0 1px #3577b5}
.provider:hover:not(.active){background:#12263d;color:#c5daf5}
.config-list-head strong{color:#c5daf5;font-size:14px}
#currentVideoConfig{cursor:pointer}
#currentVideoConfig option{background:#0f1c35}
.model-config-panel .setting-field>input[type=password]{letter-spacing:2px}
.model-config-panel .setting-field>input[type=password]::placeholder{letter-spacing:normal}

/* ── 即梦与自定义模型高级配置 ─────────────────── */
.advanced-config-panel{display:flex;flex-direction:column;gap:18px;animation:fadeIn .18s ease}
.advanced-config-note{padding:11px 13px;border:1px solid color-mix(in srgb,var(--neon-blue) 28%,transparent);border-radius:9px;background:color-mix(in srgb,var(--neon-blue) 9%,transparent);color:var(--text-secondary);font-size:12px;line-height:1.6}
.advanced-config-section{padding:16px 18px;border:1px solid color-mix(in srgb,var(--text-secondary) 22%,transparent);border-radius:12px;background:color-mix(in srgb,var(--bg-card) 72%,transparent)}
.advanced-config-section h3{margin:0 0 10px;color:var(--text-primary);font-size:14px;font-weight:600}
.advanced-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.advanced-mapping-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;border-top:1px dashed color-mix(in srgb,var(--text-secondary) 20%,transparent);margin-top:12px;padding-top:10px}
.advanced-mapping-grid .setting-field{margin:9px 0}
.advanced-mapping-grid textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:64px;padding:10px 12px;margin-top:7px;border:1px solid #315071;border-radius:9px;background:#13223d;color:#e1edff;font:inherit;line-height:1.45;outline:none}
.advanced-mapping-grid textarea:focus{border-color:#2b96f5;box-shadow:0 0 0 3px rgba(43,150,245,.15)}
[data-theme="light"] .advanced-mapping-grid textarea{background:#fff;color:#1a2437;border-color:#cdd8e8}
.advanced-config-grid .setting-field{margin:9px 0}
.credential-field-label{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.credential-status{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:0}
.credential-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.model-select-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;margin-top:7px}
.model-select-line select{margin-top:0}
.model-select-line .small-button{height:42px;white-space:nowrap}
.model-list-status{display:block;margin-top:6px;color:var(--text-secondary);font-size:11px;line-height:1.4}
.credential-status.configured{color:var(--success)}
.credential-status.missing{color:var(--warning)}
.credential-status.unknown{color:var(--text-secondary)}
.advanced-config-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:2px}
.advanced-config-actions button{min-height:34px;padding:0 15px;border-radius:8px}
[data-theme="light"] .advanced-config-note{color:#52627b;background:#edf5ff;border-color:#c5ddfa}
[data-theme="light"] .advanced-config-section{background:#fbfcff;border-color:#dce3ef}
[data-theme="light"] .advanced-config-section h3{color:#1a2437}

/* ── 豆包账号列表滚动容器 ───────────────────── */
.doubao-account-list{max-height:520px;overflow-y:auto;padding-right:4px}
.doubao-account-list::-webkit-scrollbar{width:5px}
.doubao-account-list::-webkit-scrollbar-track{background:transparent}
.doubao-account-list::-webkit-scrollbar-thumb{background:#2a4568;border-radius:4px}

/* ── 豆包账号状态徽章 ────────────────────────── */
.doubao-account .account-info{display:flex;flex-direction:column;gap:4px}
.doubao-account .account-info strong{font-size:16px;color:#e5efff}
.doubao-account .account-info small{font-size:13px;color:#8aa5c8}
.doubao-account .account-badge{display:inline-block;border-radius:6px;padding:5px 11px;font-size:12px;font-weight:500;white-space:nowrap}
.doubao-account .account-badge.good{background:#0b2d1f;border:1px solid #1f6644;color:#3dd4a0}
.doubao-account .account-badge.warn{background:#2e1e08;border:1px solid #7a4e10;color:#f0a03a}
.doubao-account .account-badge.offline{background:#1c1028;border:1px solid #4a2060;color:#b070e0}
.doubao-account{border:1px solid #1e3a5a;transition:border-color .15s,background .15s}
.doubao-account:hover{border-color:#2f5e8a;background:#111f3e}
.doubao-panel .panel-actions{flex-wrap:wrap;gap:8px}
.doubao-panel .panel-actions .small-button{font-size:12px;padding:8px 14px}

/* ── 豆包记录区分页 ─────────────────────────── */
.record-pagination{padding-top:14px;border-top:1px solid #1e3454;margin-top:4px}
.record-pagination select{padding:5px 8px;font-size:12px}
.doubao-records-list{min-height:200px}

/* ── 清除记录危险按钮 ─────────────────────────── */
#doubaoRecordsClear{border-color:#5a1e2a;background:#2e0d16;color:#f07090}
#doubaoRecordsClear:hover{background:#3d1020;border-color:#a93050;color:#ff7a9a}

/* ── 音色面板 ─────────────────────────────────── */
.voice-panel{margin-top:14px}
.voice-list{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.voice-list audio{width:100%;height:32px;accent-color:#2b96f5}
.voice-list span{display:block;color:#91a7c9;font-size:12px;margin-top:3px}
.voice-batch-script{width:100%;resize:vertical;min-height:110px;margin-top:12px;background:#0a1730;border:1px solid #26466f;color:#d9e8ff;padding:12px;border-radius:6px;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}
.voice-batch-toolbar{display:flex;align-items:center;gap:16px;margin:10px 0;color:#91a7c9;font-size:12px;flex-wrap:wrap}
.voice-batch-toolbar label{display:flex;align-items:center;gap:7px;color:#c7d8f4}
.voice-batch-toolbar select,.voice-batch-row select{background:#0d1f3d;color:#d9e8ff;border:1px solid #294b76;border-radius:4px;padding:5px 7px;font-size:12px}
.voice-batch-table{border:1px solid #203b62;border-radius:6px;overflow:auto;margin:8px 0}
.voice-batch-head,.voice-batch-row{display:grid;grid-template-columns:34px 90px minmax(180px,1fr) 88px 130px;gap:8px;align-items:center;padding:8px 10px;font-size:12px;min-width:600px}
.voice-batch-head{background:#10284a;color:#91b2df;font-weight:600}
.voice-batch-row{border-top:1px solid #1a3457;color:#c7d8f4}
.voice-batch-row strong{color:#e1edff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.voice-batch-row>span:nth-child(3){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.voice-emotion{color:#80c7ff}
.voice-batch-errors{display:flex;flex-direction:column;gap:4px;background:#29182a;border:1px solid #63324b;color:#ffb4c4;padding:8px 10px;border-radius:5px;font-size:12px}
.voice-binding-toolbar{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;margin-top:12px;padding:10px;background:#0c1d38;border:1px solid #1f3c63;border-radius:6px}
.voice-binding-toolbar label{display:flex;flex-direction:column;gap:5px;color:#a9bfdc;font-size:11px}
.voice-binding-toolbar input:not([type="file"]){width:120px;background:#0a1730;border:1px solid #294b76;color:#d9e8ff;border-radius:4px;padding:6px 7px;font-size:12px}
.voice-binding-toolbar input[type="file"]{max-width:185px;color:#a9bfdc;font-size:11px}
.danger-inline{border-color:#8b3b55!important;color:#ff9bb5!important}
[data-theme="light"] .voice-batch-script{background:#f7f9fc;border-color:#c8d5e7;color:#1d2d45}
[data-theme="light"] .voice-batch-toolbar select,[data-theme="light"] .voice-batch-row select{background:#fff;color:#1d2d45;border-color:#b5c5dc}
[data-theme="light"] .voice-batch-head{background:#e8f0fb;color:#385477}
[data-theme="light"] .voice-batch-row{border-color:#d9e2ef;color:#304665}
[data-theme="light"] .voice-binding-toolbar{background:#f4f7fb;border-color:#d3dfed}
[data-theme="light"] .voice-binding-toolbar input:not([type="file"]){background:#fff;color:#1d2d45;border-color:#b5c5dc}

/* ── 风格库面板 ───────────────────────────────── */
.styles-panel{padding:28px 30px}
.styles-panel .panel-title{margin-bottom:20px}
.styles-panel .empty{text-align:center;padding:60px 20px;color:#7a94b8;font-size:14px}

[data-theme="light"] .doubao-record-row{border-color:#dce3ef;color:#1a2437}
[data-theme="light"] .doubao-record-row:hover{background:#f3f6fb}
[data-theme="light"] .rec-status-ok{background:#d4f5e9;color:#1a7a50}
[data-theme="light"] .rec-status-fail{background:#fde8ec;color:#b0283e}
[data-theme="light"] .rec-status-active{background:#dbeeff;color:#1a5fa0}
[data-theme="light"] .rec-account{color:#52627b}

/* ── 任务状态和进度 ────────────────────────── */
.task{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid #1e3454;font-size:13px;position:relative}
.task:last-child{border-bottom:0}
.task:hover{background:#0f1f3a}
.task-info{flex:1;display:flex;flex-direction:column;gap:4px}
.task-error{color:#f05575;font-size:11px;margin-top:2px}
.task-state{display:flex;align-items:center;justify-content:flex-end;gap:8px;position:relative;flex-wrap:wrap}
.task-state em{color:#91a7c9;font-style:normal;font-size:12px}
.task-progress{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,#2b96f5,#7d6df1);opacity:.15;border-radius:4px;transition:width .3s}
.task.completed .task-state em{color:#31d19a}
.task.failed .task-state em{color:#f05575}
.task.processing .task-state em{color:#5bb0f5}
.video-link{color:#2b96f5;font-size:12px;text-decoration:none;border:1px solid #315071;border-radius:6px;padding:4px 10px;transition:all .15s}
.video-link:hover{background:#2b96f5;color:#fff}
[data-theme="light"] .task{border-color:#dce3ef}
[data-theme="light"] .task:hover{background:#f8fafc}
[data-theme="light"] .task-state em{color:#52627b}
[data-theme="light"] .task.completed .task-state em{color:#25b77d}
[data-theme="light"] .task.failed .task-state em{color:#e8344e}
[data-theme="light"] .video-link{color:#245b9a;border-color:#cdd8e8}
[data-theme="light"] .video-link:hover{background:#245b9a;color:#fff}

/* ── 标签页视觉强化 ────────────────────────── */
.workbench-tabs{display:flex;gap:4px;border-bottom:1px solid #294568;margin-bottom:20px}
.workbench-tabs .tab{padding:10px 18px;border:none;background:transparent;color:#8aa5c8;font-size:13px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}
.workbench-tabs .tab:hover{color:#b8cfec;background:rgba(43,150,245,.08)}
.workbench-tabs .tab.active{color:#2b96f5;border-bottom-color:#2b96f5;background:rgba(43,150,245,.12)}
[data-theme="light"] .workbench-tabs{border-color:#dce3ef}
[data-theme="light"] .workbench-tabs .tab{color:#66748c}
[data-theme="light"] .workbench-tabs .tab:hover{color:#245b9a;background:rgba(36,91,154,.06)}
[data-theme="light"] .workbench-tabs .tab.active{color:#245b9a;border-bottom-color:#245b9a;background:rgba(36,91,154,.1)}

[data-theme="light"] .rec-model{color:#52627b;background:#f0f4fa;border-color:#cdd8e8}
[data-theme="light"] .rec-prompt{color:#3d4f6a}
[data-theme="light"] .rec-time{color:#8298b4}
[data-theme="light"] .record-pagination{border-color:#dce3ef;color:#52627b}
[data-theme="light"] .filter{background:#fff;border-color:#cdd8e8;color:#52627b}
[data-theme="light"] .filter.active{background:#f8d7e3;border-color:#d4729a;color:#8b1a3a}

/* ── 错误状态提示 ─────────────────────────────── */
.empty.error-state{color:#f05575;background:rgba(240,85,117,.08);border:1px solid rgba(240,85,117,.2);border-radius:8px;padding:20px;text-align:center;font-size:13px}
[data-theme="light"] .empty.error-state{color:#b0283e;background:rgba(232,52,78,.06);border-color:rgba(232,52,78,.15)}
[data-theme="light"] #doubaoRecordsClear{background:#fff3f5;border-color:#f0a0b0;color:#b03050}
[data-theme="light"] #doubaoRecordsClear:hover{background:#ffe0e6;border-color:#d05070}
[data-theme="light"] .record-pagination select{background:#fff;color:#1a2437;border-color:#cdd8e8}
[data-theme="light"] .software-settings .settings-section h3{color:#245b9a;border-color:#2b96f5}
[data-theme="light"] .timeout-control input{background:#fff;border-color:#cdd8e8;color:#1a2437}
[data-theme="light"] .add-keyword{background:#f0f4fa;border-color:#9ab0cc;color:#245b9a}
[data-theme="light"] .keyword{background:#fff;border-color:#c8d8ec}
[data-theme="light"] .keyword input{color:#1a2437}
[data-theme="light"] .keyword button{background:#f0e8f0;color:#7a3060;border-color:#c8d8ec}
[data-theme="light"] .provider-switch{background:#f0f4fa;border-color:#cdd8e8}
[data-theme="light"] .provider{color:#3d4f6a}
[data-theme="light"] .provider.active{background:#dbeeff;color:#1a3f70;box-shadow:inset 0 0 0 1px #a0c4e8}
[data-theme="light"] .doubao-account{border-color:#cdd8e8;background:#fff}
[data-theme="light"] .doubao-account:hover{background:#f5f8ff;border-color:#a0bde0}
[data-theme="light"] .doubao-account .account-badge.good{background:#d4f5e9;border-color:#90d4b8;color:#1a6a40}
[data-theme="light"] .doubao-account .account-badge.warn{background:#fff3d4;border-color:#e0b860;color:#7a5010}
[data-theme="light"] .doubao-account .account-badge.offline{background:#f0e8f8;border-color:#c0a0d8;color:#5a2080}
[data-theme="light"] .doubao-account .account-info small{color:#52627b}

html,body{height:100%;overflow:hidden}body{background:var(--bg);color:var(--ink)}.app-shell{height:100vh;min-height:0}.sidebar{background:#0d1a33;border-right:1px solid #264668}.main{width:calc(100% - 240px);height:100vh;overflow:hidden;padding:24px 34px 28px;background:#0b1730}.main>.view-panel,.main>.detail-panel,.main>.chat-shell,.main>.doubao-panel,.main>.software-settings,.main>.model-config-panel{height:calc(100vh - 148px);overflow:auto;min-height:0}.topbar{height:58px;margin-bottom:14px;align-items:center}.topbar-brand{display:flex;align-items:center;gap:12px}.topbar-logo{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(135deg,#1676d2,#7a5cf0);font-size:21px}.topbar-brand strong{display:block;font-size:18px;color:#e5efff}.topbar-brand small{display:block;color:#91a7c9;font-size:11px;margin-top:3px}.topbar-user{display:flex;align-items:center;gap:14px;color:#91a7c9;font-size:12px}.topbar-user .ghost{width:auto;margin:0}.reference-tabs{display:flex;gap:4px;align-items:center;padding:8px 10px;margin-bottom:14px;border:1px solid #294568;border-radius:16px;background:#101e38;overflow:auto}.reference-tab{white-space:nowrap;border:1px solid transparent;border-radius:10px;background:transparent;color:#a9bfde;padding:9px 15px;font-size:12px;cursor:pointer}.reference-tab.active,.reference-tab:hover{border-color:#318fe5;background:#132f55;color:#e4f1ff;box-shadow:0 0 14px rgba(43,150,245,.25)}.panel,.stats-card,.project-panel,.create-panel{background:#101e38;border-color:#294568;color:#dce8fb}.topbar h1,.panel h3,.panel h2,.project-item strong,.create-panel label{color:#e1edff}.create-panel input,.create-panel textarea,.script-editor{background:#0b1931;border-color:#2a4568;color:#e1edff}.ghost,.small-button,.mini-button{background:#13233f;border-color:#315071;color:#c7d9f2}.project-item{border-color:#294568;background:#10203b}.project-item:hover,.project-item.active{background:#173863;border-color:#318fe5}.stats-card div{border-color:#294568}.stats-card small,.hint,.muted{color:#91a7c9}.detail-panel,.software-settings,.model-config-panel{background:#0f1b32}.software-settings .settings-section{border-color:#294568}.software-settings .detail-row{border-color:#294568;color:#a9bfde}.software-settings .detail-row b{color:#dce8fb}.settings-notice{background:#132f55;color:#8fc4ff}.setting-field{display:block;color:#a9bfde;font-size:12px;margin:14px 0}.setting-field select,.setting-field>input,.file-line input,.range-line input[type=number],#currentVideoConfig{width:100%;padding:11px 13px;margin-top:7px;border:1px solid #315071;border-radius:9px;background:#13223d;color:#e1edff;outline:none}.file-line{display:flex;gap:8px;align-items:center}.file-line input{flex:1;margin-top:7px}.file-line .small-button{white-space:nowrap}.range-line{display:flex;align-items:center;gap:12px}.range-line input[type=range]{flex:1;accent-color:#2b96f5}.range-line input[type=number]{width:100px}.check-line{display:flex;gap:24px;margin-top:10px;color:#dce8fb}.check-line input{accent-color:#2b96f5}.config-list{border-top:1px dashed #294568;margin-top:22px;padding-top:20px}.config-list-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.video-provider-mode{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;align-items:center;gap:18px;padding:14px 16px;margin-bottom:18px;border:1px solid #315071;border-radius:8px;background:#101e38}.video-provider-mode>div{display:grid;gap:5px}.video-provider-mode strong{color:#e1edff;font-size:14px}.video-provider-mode small{color:#91a7c9}.video-provider-model{display:inline-flex;align-items:center;gap:9px;color:#a9bfde;font-size:13px;white-space:nowrap}.video-provider-model select{min-width:154px;padding:8px 30px 8px 10px;border:1px solid #315071;border-radius:8px;background:#13223d;color:#e1edff}.video-provider-model select:disabled{opacity:.5;cursor:not-allowed}.video-provider-toggle{display:inline-flex;align-items:center;gap:9px;color:#dce8fb;font-size:13px;white-space:nowrap;cursor:pointer}.video-provider-toggle input{width:17px;height:17px;accent-color:#2b96f5}.video-provider-mode[data-enabled="true"]{border-color:#318fe5;background:#132f55}.video-provider-mode[data-enabled="true"] small{color:#8fc4ff}
[data-theme="light"] .video-provider-mode{background:#f0f4fa;border-color:#cdd8e8}[data-theme="light"] .video-provider-mode strong,[data-theme="light"] .video-provider-toggle{color:#25364f}[data-theme="light"] .video-provider-mode small{color:#66758d}[data-theme="light"] .video-provider-mode[data-enabled="true"]{background:#e5f2ff;border-color:#65a9e8}
[data-theme="light"] .video-provider-model{color:#52627b}[data-theme="light"] .video-provider-model select{background:#fff;color:#25364f;border-color:#cdd8e8}

/* ── 窄屏覆盖层：覆盖桌面主题补丁，保证内容宽度受视口约束 ── */
@media (max-width: 600px) {
  .main { width: calc(100% - 72px); padding: 8px 10px 14px; }
  .topbar { height: auto; min-height: 48px; margin-bottom: 8px; gap: 8px; align-items: flex-start; }
  .topbar-brand { min-width: 0; flex: 1 1 auto; gap: 8px; }
  .topbar-brand strong { font-size: 15px; white-space: nowrap; }
  .topbar-brand small { max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .topbar-user { flex: 0 0 auto; gap: 5px; font-size: 0; white-space: nowrap; }
  .topbar-user .ghost { font-size: 11px; padding: 7px 8px; }
  .topbar-user::before { content: "演示账号"; color: #91a7c9; font-size: 11px; }
  .hero-carousel { min-width: 0; grid-column: 1; }
  .hero-card { min-width: 100%; width: 100%; padding: 20px 18px; }
  .hero-card > div:first-child { min-width: 0; flex: 1 1 auto; }
  .hero-card h2, .hero-card p { max-width: 100%; overflow-wrap: anywhere; }
  .stats-card { grid-template-columns: 1fr; gap: 0; padding: 10px 14px; }
  .stats-card div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border-right: 0; border-bottom: 1px solid #294568; }
  .stats-card div:last-child { border-bottom: 0; }
  .stats-card small { margin: 0; }
  .panel, .stats-card, .project-panel, .create-panel { padding: 14px; }
  .panel-title { gap: 8px; flex-wrap: wrap; }
  .panel-title > div:first-child { min-width: 0; }
  .panel-actions { width: 100%; }
  .panel-actions button { flex: 1 1 auto; min-width: 0; }
  .project-filters { gap: 7px; }
  #projectSearchInput { min-width: 0; width: 100%; flex-basis: 100%; }
  .filter-buttons { width: 100%; }
  .filter-buttons .filter { flex: 1 1 0; min-width: 0; padding: 0 8px; }
  .project-list { grid-template-columns: 1fr; max-height: none; }
  .reference-tabs { width: 100%; }
  .form-actions { flex-direction: column-reverse; }
  .form-actions button { width: 100%; min-width: 0; }
}

/* ── 风格库卡片：对应原客户端的封面、备注和维护操作 ── */
.style-library-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; margin-top: 16px; }
.style-card { overflow: hidden; border: 1px solid #294568; border-radius: 12px; background: #10203b; }
.style-card-cover { aspect-ratio: 16 / 9; display: grid; place-items: center; overflow: hidden; background: linear-gradient(135deg, #1676d2, #7a5cf0 60%, #d34f8b); color: #fff; font-size: 32px; }
.style-card-cover img { width: 100%; height: 100%; object-fit: cover; }
.style-card-body { padding: 12px; }
.style-card-body strong, .style-card-body small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.style-card-body strong { color: #e1edff; font-size: 14px; }
.style-card-body small { margin-top: 4px; color: #7f9bc1; font-size: 11px; }
.style-card-body p { min-height: 36px; margin: 9px 0; color: #a9bfde; font-size: 12px; line-height: 1.5; }
.style-card-actions { display: flex; gap: 8px; }
.style-card-actions button { flex: 1; }
[data-theme="light"] .style-card { background: #fff; border-color: #cdd8e8; }
[data-theme="light"] .style-card-body strong { color: #1a2437; }
[data-theme="light"] .style-card-body small, [data-theme="light"] .style-card-body p { color: #66748c; }
@media (max-width: 600px) {
  .style-library-grid { grid-template-columns: 1fr; }
}

/* ── 全局资产库卡片：角色、场景、道具和音色共用同一套维护布局 ── */
.asset-library-panel { min-width: 0; }
.global-asset-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; margin-top: 16px; }
.global-asset-card { overflow: hidden; border: 1px solid #294568; border-radius: 12px; background: #10203b; }
.global-asset-preview { aspect-ratio: 4 / 3; display: grid; place-items: center; overflow: hidden; background: linear-gradient(135deg, #132f55, #25205a); color: #8fc4ff; font-size: 30px; }
.global-asset-preview img { width: 100%; height: 100%; object-fit: cover; }
.global-asset-preview audio { width: calc(100% - 18px); }
.asset-preview-placeholder { opacity: .8; }

/* ── 全局资产库编辑器 ── */
.asset-editor-modal {
  position: fixed;
  inset: 0;
  z-index: 75;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(4, 10, 22, .72);
  backdrop-filter: blur(7px);
}
.asset-editor-dialog {
  width: min(620px, 94vw);
  max-height: 92vh;
  overflow-y: auto;
  border: 1px solid color-mix(in srgb, var(--neon-blue) 38%, var(--text-secondary));
  border-radius: 14px;
  background: var(--bg-card);
  box-shadow: 0 24px 70px rgba(0, 0, 0, .42), 0 0 22px rgba(43, 150, 245, .14);
}
.asset-editor-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px 12px; border-bottom: 1px solid color-mix(in srgb, var(--text-secondary) 18%, transparent); }
.asset-editor-header .section-kicker { display: block; margin-bottom: 3px; color: var(--neon-blue); font-size: 10px; letter-spacing: 1.3px; }
.asset-editor-header h2 { margin: 0; color: var(--text-primary); font-size: 18px; }
.asset-editor-form { display: grid; gap: 14px; padding: 16px 18px 18px; }
.asset-editor-form label { display: grid; gap: 7px; color: var(--text-secondary); font-size: 12px; }
.asset-editor-form input:not([type=file]), .asset-editor-form textarea, .asset-editor-form select { width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1px solid color-mix(in srgb, var(--text-secondary) 30%, transparent); border-radius: 8px; outline: none; background: var(--bg-secondary); color: var(--text-primary); font-size: 13px; }
.asset-editor-form input:focus, .asset-editor-form textarea:focus, .asset-editor-form select:focus { border-color: var(--neon-blue); box-shadow: 0 0 0 3px color-mix(in srgb, var(--neon-blue) 13%, transparent); }
.asset-editor-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.asset-editor-file-row { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 10px 12px; border: 1px dashed color-mix(in srgb, var(--text-secondary) 32%, transparent); border-radius: 8px; background: color-mix(in srgb, var(--bg-secondary) 70%, transparent); }
.asset-editor-file-row input[type=file] { min-width: 0; max-width: 190px; color: var(--text-secondary); font-size: 12px; }
.asset-editor-file-row .muted { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.asset-editor-preview { min-height: 150px; display: grid; place-items: center; overflow: hidden; border: 1px solid color-mix(in srgb, var(--text-secondary) 22%, transparent); border-radius: 10px; background: #0a1222; }
.asset-editor-preview img { max-width: 100%; max-height: 260px; object-fit: contain; }
.asset-editor-preview audio { width: calc(100% - 28px); }
.project-asset-editor-dialog { width: min(680px, 100%); }
.storyboard-editor-dialog { width: min(780px, 96vw); }
.storyboard-editor-param-grid, .storyboard-editor-prompts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.storyboard-editor-hint { margin: -2px 0 0; color: var(--text-secondary); font-size: 11px; line-height: 1.55; }
.project-asset-editor-dialog #projectAssetName,
.project-asset-editor-dialog #projectAssetType { opacity: .82; }
.project-asset-preview-main{width:100%;min-height:170px;display:grid;place-items:center;padding:10px;box-sizing:border-box}
.project-asset-preview-main img{max-width:100%;max-height:280px;object-fit:contain;border-radius:8px}
.asset-variant-gallery{width:100%;display:flex;gap:8px;overflow-x:auto;padding:8px 10px 10px;box-sizing:border-box;border-top:1px solid color-mix(in srgb,var(--text-secondary) 18%,transparent)}
.asset-variant-item{position:relative;width:58px;height:58px;flex:0 0 58px;padding:2px;border:1px solid color-mix(in srgb,var(--text-secondary) 25%,transparent);border-radius:7px;background:var(--bg-secondary);cursor:pointer;overflow:hidden}
.asset-variant-item img{width:100%;height:100%;object-fit:cover;border-radius:5px}
.asset-variant-item span{position:absolute;right:3px;bottom:3px;min-width:15px;height:15px;display:grid;place-items:center;border-radius:4px;background:rgba(5,12,24,.75);color:#fff;font-size:10px}
.asset-variant-item.active{border-color:var(--neon-blue);box-shadow:0 0 0 2px color-mix(in srgb,var(--neon-blue) 18%,transparent)}
.asset-editor-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 2px; }
.asset-editor-actions button { min-width: 86px; min-height: 34px; border-radius: 8px; }
@media (max-width: 600px) {
  .asset-editor-modal { padding: 10px; }
  .asset-editor-grid { grid-template-columns: 1fr; }
  .asset-editor-file-row { align-items: flex-start; flex-direction: column; }
  .asset-editor-file-row input[type=file] { max-width: 100%; }
  .storyboard-editor-param-grid, .storyboard-editor-prompts { grid-template-columns: 1fr; }
}

/* ── 漫剧制作资产设置：复刻原版深色双排工具栏与大表格弹窗 ── */
.manga-control-deck{display:flex;flex-direction:column;gap:12px;margin-bottom:14px;padding:14px 16px;border:1px solid #294568;border-radius:14px;background:#0d1930;box-shadow:0 0 18px rgba(43,150,245,.12)}
.manga-control-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;flex-wrap:wrap}.manga-control-row-bottom{justify-content:flex-start}.manga-control-actions,.manga-switch-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.manga-switch-group{padding:8px 10px;border:1px dashed #3b587b;border-radius:10px;background:#101e38}.manga-switch-group label{display:flex;align-items:center;gap:7px;white-space:nowrap;color:#c6d7ef;font-size:13px}.manga-switch-group input{width:17px;height:17px;accent-color:#82bdf4}.manga-control-deck .small-button{min-height:36px;padding:0 14px;border-radius:9px;font-size:12px;white-space:nowrap}.manga-control-row-bottom .small-button{min-height:34px}.manga-control-deck .small-button:hover{border-color:#4d9ee7;background:#17345a;color:#eef7ff}.manga-control-deck .export-link{display:inline-flex;align-items:center;text-decoration:none}
.manga-asset-modal {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: grid;
  place-items: center;
  padding: 28px;
  overflow: hidden;
  background: rgba(3, 9, 20, .78);
  backdrop-filter: blur(8px);
}
.manga-asset-modal[hidden] { display: none !important; }
.manga-asset-dialog {
  width: min(1360px, calc(100vw - 56px));
  max-height: calc(100vh - 56px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #36577e;
  border-radius: 12px;
  background: #0e1b34;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .5), 0 0 28px rgba(43, 150, 245, .16);
}
.manga-asset-header {
  min-height: 62px;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px;
  border-bottom: 1px solid #294568;
  background: #101e38;
}
.manga-asset-header .section-kicker { display: block; margin-bottom: 3px; color: #65b7ff; font-size: 10px; }
.manga-asset-header h2 { margin: 0; color: #e5efff; font-size: 18px; }
.manga-asset-header .media-preview-close { flex: 0 0 34px; width: 34px; height: 34px; }
.manga-asset-body { min-height: 0; display: flex; flex: 1; flex-direction: column; gap: 12px; padding: 14px 16px 12px; overflow: hidden; }
.manga-asset-toolbar { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.manga-asset-toolbar-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.manga-asset-toolbar .small-button { min-height: 34px; padding: 0 13px; white-space: nowrap; }
.manga-concurrency { display: flex; align-items: center; gap: 7px; color: #9db4d2; font-size: 12px; white-space: nowrap; }
.manga-concurrency select { height: 34px; padding: 0 28px 0 10px; border: 1px solid #315071; border-radius: 7px; background: #13233f; color: #dce8fb; }
.manga-asset-table-wrap { min-height: 0; flex: 1; overflow: auto; border: 1px solid #294568; border-radius: 8px; background: #0b172c; }
.manga-asset-table { width: 100%; min-width: 1120px; border-spacing: 0; border-collapse: separate; table-layout: fixed; color: #dce8fb; font-size: 12px; }
.manga-asset-table th { position: sticky; top: 0; z-index: 2; padding: 10px; border-bottom: 1px solid #38516f; background: #202e46; color: #9eb9dc; text-align: left; white-space: nowrap; }
.manga-asset-table th:nth-child(1) { width: 50px; }
.manga-asset-table th:nth-child(2) { width: 145px; }
.manga-asset-table th:nth-child(3) { width: 280px; }
.manga-asset-table th:nth-last-child(3), .manga-asset-table th:nth-last-child(2) { width: 180px; }
.manga-asset-table th:last-child { width: 150px; }
.manga-asset-table td { padding: 10px; vertical-align: top; border-right: 1px solid #203a5b; border-bottom: 1px solid #203a5b; background: #101f38; }
.manga-asset-table td:last-child { border-right: 0; }
.manga-asset-table tbody tr:hover td { background: #142947; }
.manga-index-cell { color: #819dbf; text-align: center; }
.manga-cell-input { width: 100%; box-sizing: border-box; padding: 8px 9px; border: 1px solid #315071; border-radius: 6px; outline: none; background: #0d1a32; color: #dce8fb; font: inherit; }
.manga-cell-input:focus { border-color: #4ca8f2; box-shadow: 0 0 0 2px rgba(76, 168, 242, .16); }
.manga-description-input { min-height: 112px; resize: vertical; line-height: 1.5; }
.manga-reference-box, .manga-generated-box { width: 160px; height: 120px; display: grid; place-items: center; overflow: hidden; border: 1px dashed #365779; border-radius: 7px; background: #0b1930; color: #718dab; }
.manga-reference-box img, .manga-generated-box img { width: 100%; height: 100%; object-fit: contain; cursor: zoom-in; }
.manga-upload-button { min-height: 28px; display: inline-flex; align-items: center; margin-top: 7px; padding: 0 9px; border: 1px solid #315071; border-radius: 6px; background: #13233f; color: #c7d9f2; cursor: pointer; }
.manga-row-actions { display: grid; grid-template-columns: 1fr; gap: 7px; }
.manga-row-actions .mini-button { width: 100%; min-height: 30px; white-space: normal; }
.manga-row-actions button:disabled, .manga-asset-toolbar button:disabled { opacity: .52; cursor: not-allowed; }
.manga-asset-footnote { flex: 0 0 auto; color: #89a2c2; font-size: 11px; line-height: 1.5; }
.manga-asset-error, .manga-generation-error { display: block; max-width: 180px; margin-top: 6px; overflow: hidden; color: #ff91aa; font-size: 10px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.asset-row-error { display: flex !important; align-items: center; gap: 5px; max-width: 260px; margin-top: 4px; overflow: hidden; color: #ff91aa !important; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.asset-row-error span { width: 15px; height: 15px; display: inline-grid; flex: 0 0 15px; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: 10px; font-weight: 700; }
[data-theme="light"] .asset-row-error { color: #c93452 !important; }
.asset-row-variants { max-width: 190px; display: flex; gap: 5px; margin-top: 7px; overflow-x: auto; }
.asset-row-variant { width: 34px; height: 34px; flex: 0 0 34px; padding: 1px; overflow: hidden; border: 1px solid #365575; border-radius: 5px; background: #0d1b31; cursor: pointer; }
.asset-row-variant img { width: 100%; height: 100%; display: block; object-fit: cover; border-radius: 3px; }
.asset-row-variant.active { border-color: #4ca8f2; box-shadow: 0 0 0 2px rgba(76, 168, 242, .2); }
.asset-row-variant:disabled { opacity: .52; cursor: not-allowed; }
.manga-asset-status{display:inline-flex;align-items:center;gap:4px;margin-top:7px;padding:3px 7px;border-radius:999px;font-size:11px;line-height:1.2}.manga-asset-status.ready{color:#8de1b4;background:rgba(33,126,82,.2);border:1px solid rgba(67,179,116,.48)}.manga-asset-status.running,.manga-asset-status.queued{color:#8cc7ff;background:rgba(43,129,214,.2);border:1px solid rgba(70,157,231,.46)}.manga-asset-status.failed{color:#ff9eb5;background:rgba(157,44,78,.2);border:1px solid rgba(220,81,118,.52)}.manga-asset-status.cancelled,.manga-asset-status.pending{color:#acbdd6;background:rgba(100,124,158,.16);border:1px solid rgba(118,145,180,.38)}.manga-variant-strip{display:flex;gap:5px;max-width:170px;margin-top:6px;overflow:auto;padding-bottom:2px}.manga-variant-button{position:relative;flex:0 0 42px;width:42px;height:38px;padding:0;border:1px solid #365575;border-radius:5px;background:#0d1b31;overflow:hidden;cursor:pointer}.manga-variant-button img{width:100%;height:100%;object-fit:cover}.manga-variant-button span{position:absolute;right:2px;bottom:1px;min-width:13px;padding:1px 2px;border-radius:3px;background:rgba(3,9,20,.76);color:#dce9fb;font-size:9px}.manga-variant-button.active{border-color:#4ca8f2;box-shadow:0 0 0 2px rgba(76,168,242,.22)}.manga-variant-button:disabled{opacity:.64;cursor:not-allowed}.manga-variant-button:disabled:not(.active){filter:saturate(.5)}
.manga-ref-gallery{display:flex;gap:6px;max-width:250px;margin-bottom:7px;overflow:auto;padding:2px 0 4px}.manga-ref-thumb{position:relative;flex:0 0 56px;width:56px;height:66px;padding:0;border:1px solid #355579;border-radius:6px;background:#0c1a30;overflow:hidden;cursor:zoom-in}.manga-ref-thumb img{width:100%;height:100%;object-fit:cover}.manga-ref-thumb span{position:absolute;right:0;bottom:0;left:0;padding:3px 2px;overflow:hidden;background:linear-gradient(transparent,rgba(3,9,20,.9));color:#e5efff;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.manga-media-status{display:inline-flex;align-items:center;min-height:20px;padding:2px 6px;border-radius:999px;color:#9db5d3;background:rgba(91,119,156,.17);border:1px solid rgba(91,119,156,.38);font-size:10px;white-space:nowrap}.manga-media-status.ready{color:#8de1b4;background:rgba(33,126,82,.2);border-color:rgba(67,179,116,.48)}.manga-media-status.failed{color:#ff9eb5;background:rgba(157,44,78,.2);border-color:rgba(220,81,118,.52)}.manga-media-status.running,.manga-media-status.queued{color:#8ec8ff;background:rgba(43,130,213,.18);border-color:rgba(67,157,235,.46)}.manga-media-status.cancelled{color:#c1cde0;background:rgba(91,119,156,.15);border-color:rgba(91,119,156,.32)}.manga-production-actions{align-items:flex-start}.manga-production-actions .manga-media-status{flex:0 0 auto}.manga-row-station{width:100%;max-width:220px;margin-top:7px}.manga-row-station .manga-station-preview,.manga-row-station .manga-station-placeholder{min-height:54px}.manga-row-station .manga-station-preview img{height:54px}.manga-station-state{position:absolute;right:5px;bottom:4px;z-index:1;max-width:calc(100% - 10px);padding:2px 5px;border-radius:4px;background:rgba(3,9,20,.74);color:#b9cee8;font-size:9px;line-height:1.2}.manga-station-state.ready{color:#8de1b4}.manga-station-state.failed{color:#ff9eb5}.manga-station-state.running,.manga-station-state.queued{color:#9fd1ff}
.manga-station-preview,.manga-station-placeholder{position:relative;width:100%;min-height:74px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px dashed #385b81;border-radius:7px;background:#0b1930;color:#88a9ce;font-size:10px}.manga-station-preview{padding:0;cursor:zoom-in}.manga-station-preview img{width:100%;height:74px;object-fit:cover}.manga-station-preview span,.manga-station-placeholder span{position:absolute;top:4px;left:5px;z-index:1;padding:2px 5px;border-radius:4px;background:rgba(3,9,20,.72);color:#dce9fb;font-size:9px}.manga-station-placeholder{min-height:34px}.manga-station-placeholder small{color:#718eaf;font-size:10px}.story-station-preview,.story-station-placeholder{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:96px;overflow:hidden;border:1px dashed color-mix(in srgb,var(--text-secondary) 30%,transparent);border-radius:8px;background:var(--bg-secondary);color:var(--text-secondary);font-size:10px}.story-station-preview{padding:0;cursor:zoom-in}.story-station-preview img{width:100%;height:100%;object-fit:cover}.story-station-preview span,.story-station-placeholder span{position:absolute;top:4px;left:5px;z-index:1;padding:2px 5px;border-radius:4px;background:rgba(3,9,20,.72);color:#fff;font-size:9px}.story-station-placeholder{height:48px}.story-station-placeholder small{margin-top:16px;font-size:10px}
[data-theme="light"] .manga-control-deck,[data-theme="light"] .manga-asset-dialog{background:#f8fbff;border-color:#c6d7ea}[data-theme="light"] .manga-switch-group,[data-theme="light"] .manga-asset-header{background:#eef4fb;border-color:#c6d7ea}[data-theme="light"] .manga-switch-group label,[data-theme="light"] .manga-concurrency{color:#52627b}[data-theme="light"] .manga-asset-table-wrap{background:#fff;border-color:#c6d7ea}[data-theme="light"] .manga-asset-table th{background:#e5ebf5;color:#52627b;border-color:#c6d7ea}[data-theme="light"] .manga-asset-table td{background:#fff;color:#25364f;border-color:#dce5f0}[data-theme="light"] .manga-asset-table tbody tr:hover td{background:#f5f8fc}[data-theme="light"] .manga-cell-input,[data-theme="light"] .manga-concurrency select{background:#fff;color:#25364f;border-color:#c6d7ea}[data-theme="light"] .manga-reference-box,[data-theme="light"] .manga-generated-box{background:#f4f7fb;border-color:#b7c8df}[data-theme="light"] .manga-asset-header h2{color:#1a2437}
[data-theme="light"] .manga-asset-status.ready{color:#197142;background:#e7f8ee;border-color:#86d2a6}[data-theme="light"] .manga-asset-status.running,[data-theme="light"] .manga-asset-status.queued{color:#1f66a2;background:#e8f3ff;border-color:#9ecbf1}[data-theme="light"] .manga-asset-status.failed{color:#a83358;background:#fff0f4;border-color:#e6a0b8}[data-theme="light"] .manga-asset-status.cancelled,[data-theme="light"] .manga-asset-status.pending{color:#5c708d;background:#edf2f8;border-color:#c1cede}[data-theme="light"] .manga-variant-button{border-color:#c3d5e8;background:#f5f9ff}[data-theme="light"] .manga-variant-button span{background:rgba(255,255,255,.86);color:#294362}
[data-theme="light"] .manga-ref-thumb{border-color:#c3d5e8;background:#f5f9ff}[data-theme="light"] .manga-ref-thumb span{background:linear-gradient(transparent,rgba(20,44,73,.82));color:#fff}[data-theme="light"] .manga-media-status{color:#5c708d;background:#edf2f8;border-color:#c1cede}[data-theme="light"] .manga-media-status.ready{color:#197142;background:#e7f8ee;border-color:#86d2a6}[data-theme="light"] .manga-media-status.failed{color:#a83358;background:#fff0f4;border-color:#e6a0b8}[data-theme="light"] .manga-media-status.running,[data-theme="light"] .manga-media-status.queued{color:#1f66a2;background:#e8f3ff;border-color:#9ecbf1}[data-theme="light"] .manga-media-status.cancelled{color:#5c708d;background:#edf2f8;border-color:#c1cede}[data-theme="light"] .manga-station-state{background:rgba(20,44,73,.78);color:#e8f2ff}
[data-theme="light"] .manga-station-preview,[data-theme="light"] .manga-station-placeholder{border-color:#b9cde2;background:#f8fbff;color:#6e819c}[data-theme="light"] .manga-station-preview span,[data-theme="light"] .manga-station-placeholder span{background:rgba(20,44,73,.78);color:#fff}
@media (max-width:900px){.manga-control-actions,.manga-control-row-bottom{width:100%}.manga-control-row-top{align-items:stretch}.manga-control-actions .small-button{flex:1 1 auto}.manga-asset-modal{padding:12px}.manga-asset-dialog{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.manga-asset-body{padding:12px}.manga-asset-toolbar{align-items:flex-start;flex-direction:column}.manga-asset-table{min-width:1120px}.manga-reference-box,.manga-generated-box{width:140px;height:108px}}

/* 资产设置与原客户端一致占据主工作区，保留顶部用户栏与左侧导航上下文。 */
.manga-asset-modal{top:64px;right:0;bottom:0;left:230px;padding:10px 0 0;background:transparent;backdrop-filter:none;place-items:stretch}
body:has(.sidebar.collapsed) .manga-asset-modal{left:88px}
.manga-asset-dialog{width:100%;height:100%;max-height:none;border-right:0;border-bottom:0;border-radius:12px 0 0 0}
.manga-name-input{min-height:56px;resize:vertical;line-height:1.45}
.manga-media-buttons,.manga-voice-picker{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.manga-media-buttons .manga-upload-button{margin-top:7px}.manga-media-buttons .mini-button{margin-top:7px}
.manga-voice-picker .manga-cell-input{min-width:125px;flex:1}.manga-voice-picker .mini-button{flex:0 0 auto}
.manga-three-view{display:flex;align-items:center;gap:5px;margin-top:7px;color:#adc3df;font-size:11px}.manga-three-view input{accent-color:#4ca8f2}
.manga-variant-strip[hidden]{display:none!important}
[data-manga-drop-zone]{transition:background-color .15s,box-shadow .15s}[data-manga-drop-zone].is-dragging{background:#17365d;box-shadow:inset 0 0 0 2px #4ca8f2}
[data-theme="light"] .manga-three-view{color:#52627b}[data-theme="light"] [data-manga-drop-zone].is-dragging{background:#e8f3ff}
@media(max-width:760px){.manga-asset-modal{top:56px;left:88px;padding-top:6px}.manga-asset-dialog{width:100%;height:100%;max-height:none}.manga-asset-body{padding:10px}}

/* ── 漫剧主工作区台词与资产引用表 ── */
.manga-production-panel{padding:0;overflow:hidden}.manga-production-panel .subpanel-title{padding:15px 16px;margin:0;border-bottom:1px solid #294568}.manga-production-panel .subpanel-title h4{font-size:15px}.manga-production-panel .subpanel-title>div:first-child{display:grid;gap:3px}.manga-production-summary{display:flex;align-items:center;gap:10px;color:#92acd0;font-size:12px}.manga-production-table-wrap{overflow:auto}.manga-production-table{width:100%;min-width:980px;border-collapse:separate;border-spacing:0;color:#dce8fb;font-size:12px}.manga-production-table th{padding:11px 12px;background:#202e46;color:#9eb9dc;text-align:left;border-bottom:1px solid #38516f;white-space:nowrap}.manga-production-table td{padding:10px 12px;vertical-align:top;border-bottom:1px solid #223c5e;background:#101f38}.manga-production-table tbody tr:hover td{background:#152a4a}.manga-production-index{width:58px;color:#8da9cb}.manga-production-index strong{display:block;font-size:15px;color:#e0ecff}.manga-production-index small{display:block;margin-top:4px;color:#6e8aac}.manga-dialogue-card,.manga-prompt-card{min-width:245px;padding:10px 12px;border:1px solid #2c486b;border-radius:8px;background:#0d1a32}.manga-dialogue-head{display:flex;align-items:center;justify-content:space-between;color:#88b7ec;font-size:11px;margin-bottom:6px}.manga-dialogue-card p,.manga-prompt-card p{margin:0;line-height:1.65;color:#dce8fb;white-space:pre-wrap}.manga-ref-stack{display:flex;flex-wrap:wrap;gap:5px;min-height:28px;max-width:220px}.manga-ref-chip{display:inline-flex;align-items:center;padding:5px 8px;border:1px solid #315071;border-radius:6px;background:#132844;color:#d5e5fa;white-space:nowrap}.manga-ref-chip.character{border-color:#346a9b;color:#8bc8ff}.manga-ref-chip.scene{border-color:#5d5b9f;color:#b8b4ff}.manga-ref-chip.prop{border-color:#8a6842;color:#f0bd79}.manga-row-link{margin-top:10px}.manga-prompt-card{min-width:300px}.manga-prompt-params{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.manga-prompt-params span{padding:3px 6px;border-radius:4px;background:#172d4b;color:#8fb2dc;font-size:10px}.manga-production-actions{display:flex;gap:7px;flex-wrap:wrap}.manga-production-actions .mini-button{white-space:nowrap}
[data-theme="light"] .manga-production-panel .subpanel-title{border-color:#dce5f0}[data-theme="light"] .manga-production-table th{background:#e5ebf5;color:#52627b;border-color:#c6d7ea}[data-theme="light"] .manga-production-table td{background:#fff;color:#25364f;border-color:#dce5f0}[data-theme="light"] .manga-production-table tbody tr:hover td{background:#f5f8fc}[data-theme="light"] .manga-dialogue-card,[data-theme="light"] .manga-prompt-card{background:#f6f9fd;border-color:#c6d7ea}[data-theme="light"] .manga-dialogue-card p,[data-theme="light"] .manga-prompt-card p{color:#25364f}[data-theme="light"] .manga-ref-chip{background:#edf4fc;color:#39506b;border-color:#adc4df}[data-theme="light"] .manga-prompt-params span{background:#e8f0f9;color:#526f96}
.manga-reference-editor{margin-top:9px;border:1px solid #2f4e72;border-radius:7px;background:#0b1930;overflow:hidden}.manga-reference-editor summary{padding:6px 8px;color:#8fc8ff;font-size:11px;cursor:pointer;list-style:none}.manga-reference-editor summary::-webkit-details-marker{display:none}.manga-reference-editor summary::before{content:'＋';display:inline-block;margin-right:4px;color:#5da9ee}.manga-reference-editor[open] summary::before{content:'－'}.manga-reference-editor-body{display:grid;gap:8px;padding:8px;border-top:1px solid #213c60}.manga-reference-editor fieldset{min-width:0;margin:0;padding:6px;border:1px solid #284565;border-radius:6px}.manga-reference-editor legend{padding:0 4px;color:#91afd1;font-size:10px}.manga-ref-option-list{display:flex;gap:5px;flex-wrap:wrap;max-height:116px;overflow:auto}.manga-ref-option{display:flex;align-items:center;gap:4px;min-width:0;padding:3px 5px;border:1px solid #29496d;border-radius:5px;background:#122640;color:#dce9fb;font-size:10px;cursor:pointer}.manga-ref-option input{accent-color:#3b9df5}.manga-ref-option span{display:inline-flex;align-items:center;gap:4px;min-width:0}.manga-ref-option b{max-width:86px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.manga-ref-option img,.manga-ref-option-placeholder{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;object-fit:cover;border-radius:3px;background:#203a5c;color:#9dc9f1;font-style:normal;font-size:9px}.manga-ref-scene{display:grid;gap:4px;color:#a9c2e2;font-size:10px}.manga-ref-scene select{min-width:0;padding:6px 7px;border:1px solid #2b4b6c;border-radius:5px;background:#122640;color:#dce9fb;font-size:11px}.manga-ref-chip{gap:4px}.manga-ref-chip img{width:18px;height:18px;object-fit:cover;border-radius:3px;vertical-align:middle}.manga-prompt-edit{margin-top:8px}.manga-grid-view{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;padding:14px;background:#0b172c}.manga-grid-card{display:flex;flex-direction:column;gap:9px;min-width:0;padding:11px;border:1px solid #29496d;border-radius:10px;background:linear-gradient(145deg,#10233f,#0d1a32);box-shadow:0 8px 18px rgba(0,0,0,.16)}.manga-grid-card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#dce9fb}.manga-grid-card-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.manga-grid-card-head span{flex-shrink:0;color:#83a5cc;font-size:11px}.manga-grid-preview{width:100%;height:150px;display:flex;align-items:center;justify-content:center;border:1px dashed #365a80;border-radius:7px;background:#0b1930;color:#7190b7;overflow:hidden}.manga-grid-preview.has-image{padding:0;cursor:pointer}.manga-grid-preview img{width:100%;height:100%;object-fit:cover}.manga-grid-refs{display:flex;gap:5px;flex-wrap:wrap;min-height:24px}.manga-grid-copy{display:grid;gap:5px}.manga-grid-copy p{margin:0;color:#dce9fb;font-size:12px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.manga-grid-copy small{color:#8da9cc;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.manga-grid-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:auto}.manga-grid-actions .manga-production-actions{display:contents}.manga-grid-actions .manga-production-actions .mini-button{flex:1}.manga-grid-card .manga-reference-editor{margin-top:0}.manga-hide-references .manga-grid-refs{display:none}.manga-hide-prompts .manga-prompt-card,.manga-hide-prompts .manga-grid-copy small{display:none}.manga-grid-view+.empty{padding:20px}@media(max-width:760px){.manga-grid-view{grid-template-columns:1fr;padding:10px}.manga-grid-preview{height:180px}}
[data-theme="light"] .manga-reference-editor{border-color:#c4d6e9;background:#f6f9fd}[data-theme="light"] .manga-reference-editor-body{border-color:#dce5f0}[data-theme="light"] .manga-reference-editor fieldset{border-color:#cad9ea}[data-theme="light"] .manga-ref-option{border-color:#cad9ea;background:#edf4fc;color:#294362}[data-theme="light"] .manga-ref-scene select{border-color:#cad9ea;background:#fff;color:#294362}[data-theme="light"] .manga-grid-view{background:#f4f7fb}[data-theme="light"] .manga-grid-card{border-color:#cad9ea;background:#fff}[data-theme="light"] .manga-grid-card-head{color:#294362}[data-theme="light"] .manga-grid-copy p{color:#294362}[data-theme="light"] .manga-grid-preview{border-color:#b9cde2;background:#f8fbff;color:#6e819c}
.manga-interface-modal{position:fixed;inset:0;z-index:85;display:grid;place-items:center;padding:20px;background:rgba(3,9,20,.72);backdrop-filter:blur(7px)}.manga-interface-dialog{width:min(520px,94vw);overflow:hidden;border:1px solid #36577e;border-radius:14px;background:#0e1b34;box-shadow:0 24px 70px rgba(0,0,0,.48),0 0 26px rgba(43,150,245,.16)}.manga-interface-form{display:grid;gap:14px;padding:20px 24px 24px}.manga-interface-form>label:first-child{display:grid;gap:7px;color:#b3c8e5;font-size:13px}.manga-interface-form select{padding:10px 12px;border:1px solid #345274;border-radius:8px;background:#13233f;color:#e5efff}.manga-interface-check{display:flex;align-items:center;gap:9px;color:#d4e4f7;font-size:13px}.manga-interface-check input{width:17px;height:17px;accent-color:#2b96f5}.manga-interface-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:5px}.manga-interface-actions button{min-height:36px;padding:0 15px;border-radius:8px}.manga-toolbar-fixed .manga-control-deck{position:sticky;top:0;z-index:5}.manga-hide-references .manga-production-table th:nth-child(3),.manga-hide-references .manga-production-table td:nth-child(3){display:none}.manga-hide-prompts .manga-production-table th:nth-child(4),.manga-hide-prompts .manga-production-table td:nth-child(4){display:none}.manga-production-panel .subpanel-title,.manga-production-table td{font-size:var(--manga-font-size,12px)}[data-manga-density="compact"]{--manga-font-size:11px}[data-manga-density="comfortable"]{--manga-font-size:12px}[data-manga-density="large"]{--manga-font-size:14px}
[data-theme="light"] .manga-interface-dialog{background:#f8fbff;border-color:#c6d7ea}[data-theme="light"] .manga-interface-form>label:first-child,[data-theme="light"] .manga-interface-check{color:#52627b}[data-theme="light"] .manga-interface-form select{background:#fff;color:#25364f;border-color:#c6d7ea}

/* 小说质量工具按钮在窄屏下自动换行，避免挤压编辑器标题。 */
.script-quality-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.script-quality-summary { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; padding: 8px 10px; border-left: 2px solid var(--accent); color: var(--text-secondary); font-size: 12px; }
.script-quality-summary strong { color: var(--text-primary); }
.blueprint-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.blueprint-grid label { display: grid; gap: 5px; color: var(--text-secondary); font-size: 12px; }
.blueprint-grid input, .blueprint-grid textarea { width: 100%; box-sizing: border-box; }
.blueprint-meta, .blueprint-result { margin-top: 9px; color: var(--text-secondary); font-size: 12px; }
.blueprint-meta { display: flex; flex-wrap: wrap; gap: 12px; }
.blueprint-result { padding: 8px 10px; border-left: 2px solid var(--accent); color: var(--text-primary); }
.episode-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.episode-controls select { min-width: 150px; max-width: 220px; }
.version-actions { display: inline-flex; gap: 6px; }
.version-diff { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; padding: 9px 10px; border-left: 2px solid var(--accent); color: var(--text-secondary); font-size: 12px; }
.version-diff strong { color: var(--text-primary); }
.task-render-meta { display: block; margin-top: 3px; color: var(--text-secondary); }
/* 批次汇总卡：与原版任务队列紧凑信息密度保持一致。 */
.task-batch-summary{display:grid;grid-template-columns:auto minmax(120px,1fr) auto auto;align-items:center;gap:10px;padding:10px 14px;margin:0 0 6px;border:1px solid #294771;border-radius:8px;background:linear-gradient(100deg,#122848,#10213d);font-size:12px}
.task-batch-summary>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:108px}.task-batch-summary strong{font-size:12px;color:#d9e8ff}.task-batch-summary span{color:#91a7c9}.task-batch-summary>em{font-style:normal;color:#7db8ff;min-width:38px;text-align:right}.task-batch-progress{height:5px;background:#203a60;border-radius:5px;overflow:hidden}.task-batch-progress span{display:block;height:100%;background:linear-gradient(90deg,#2b96f5,#7d6df1);border-radius:5px;transition:width .3s}
[data-theme="light"] .task-batch-summary{border-color:#cbd8ea;background:#f6f9ff}.task-batch-summary .mini-button{white-space:nowrap}
@media(max-width:640px){.task-batch-summary{grid-template-columns:1fr auto;gap:7px}.task-batch-progress{grid-column:1/-1;grid-row:2}.task-batch-summary>em{grid-column:2;grid-row:1}.task-batch-summary .mini-button{grid-column:1/-1;justify-self:start}}
@media (max-width: 760px) {
  .script-quality-actions { justify-content: flex-start; width: 100%; }
  .blueprint-grid { grid-template-columns: 1fr; }
}
.global-asset-body { padding: 12px; }
.global-asset-body strong, .global-asset-body small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.global-asset-body strong { color: #e1edff; font-size: 14px; }
.global-asset-body small { margin-top: 4px; color: #7f9bc1; font-size: 11px; }
.global-asset-body p { min-height: 36px; margin: 9px 0; color: #a9bfde; font-size: 12px; line-height: 1.5; }
.global-asset-actions { display: flex; gap: 8px; }
.global-asset-actions button { flex: 1; }
[data-theme="light"] .global-asset-card { background: #fff; border-color: #cdd8e8; }
[data-theme="light"] .global-asset-body strong { color: #1a2437; }
[data-theme="light"] .global-asset-body small, [data-theme="light"] .global-asset-body p { color: #66748c; }
@media (max-width: 600px) {
  .global-asset-grid { grid-template-columns: 1fr; }
}

/* ── 多章节剧本控件：保持章节选择与保存按钮在窄屏可用 ── */
.episode-controls { display: inline-flex; align-items: center; gap: 6px; margin-right: auto; flex-wrap: wrap; }
.episode-controls select { max-width: 220px; min-width: 150px; height: 30px; padding: 0 8px; border: 1px solid #315071; border-radius: 7px; background: #13223d; color: #e1edff; font-size: 12px; }
.episode-controls button { white-space: nowrap; }
@media (max-width: 600px) {
  .episode-controls { width: 100%; order: 2; }
  .episode-controls select { flex: 1; min-width: 0; max-width: none; }
}
/* ── 原版应用壳层对齐（证据：dist/assets/index-D2uBXHSg.css） ── */
/* 原版采用顶部栏 + 左侧可收起菜单 + 主内容玻璃卡片，而不是独立固定侧栏。 */
html, body { height: 100%; overflow: hidden; }
body { font-family: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; }
.app-shell.main-layout { width: 100%; height: 100vh; display: flex; flex-direction: column; }
.topbar.top-header {
  height: 64px; flex-shrink: 0; margin: 0; padding: 0 20px;
  display: flex; align-items: center; gap: 16px; border: 0; border-radius: 0;
  background: transparent; box-shadow: none; backdrop-filter: none;
}
.topbar-brand.left { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.topbar-logo.logo-img { width: 36px; height: 36px; object-fit: contain; border-radius: 8px; display: block; background: transparent; }
.topbar-brand strong { font-size: 20px; font-weight: 700; }
.topbar-brand small { display: block; margin: 0; color: var(--text-secondary); font-size: 13px; font-weight: 500; }
.topbar-user.right { display: flex; align-items: center; gap: 14px; margin-left: auto; flex-shrink: 0; }
.topbar-user .username, .topbar-user .expire-text { color: var(--text-secondary); font-size: 13px; }
.content-wrap { display: flex; gap: 0; flex: 1; min-height: 0; }
.sidebar.menu {
  width: 220px; margin: 0 10px 0 0; padding: 12px; min-height: 0; flex: 0 0 220px;
  display: flex; flex-direction: column; gap: 10px; border-radius: 12px;
  background: color-mix(in srgb, var(--bg-secondary) 70%, transparent);
}
.sidebar .menu-list { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: 10px; }
.sidebar .brand, .sidebar .side-section > span, .sidebar-footer, .sidebar .extra-menu-item, #refreshBtn { display: none; }
.brand-logo { width: 34px; height: 34px; border-radius: 8px; object-fit: contain; flex-shrink: 0; }
.sidebar .brand strong { font-size: 15px; }
.sidebar .brand small { font-size: 10px; }
.sidebar .side-section { display: flex; flex-direction: column; gap: 10px; }
.sidebar .side-section > span { padding: 0 12px; font-size: 10px; letter-spacing: 1.4px; }
.sidebar .menu-item { height: 44px; padding: 0 12px; border: 0; border-radius: 10px; display: flex; align-items: center; gap: 10px; background: color-mix(in srgb, var(--bg-secondary) 70%, transparent); }
.sidebar .nav-icon { width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; color: color-mix(in srgb, var(--text-secondary) 72%, var(--neon-blue) 28%); font-size: 18px; }
.sidebar .nav-icon svg { width: 18px; height: 18px; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.sidebar .nav-label { white-space: nowrap; font-size: 14px; }
.sidebar .menu-item.active { background: linear-gradient(90deg, color-mix(in srgb, var(--neon-blue) 24%, transparent), color-mix(in srgb, var(--neon-purple) 24%, transparent)); border-color: color-mix(in srgb, var(--neon-blue) 70%, transparent); }
.sidebar .toggle-btn { height: 36px; border: 1px solid color-mix(in srgb, var(--text-secondary) 30%, transparent); border-radius: 9px; background: color-mix(in srgb, var(--bg-secondary) 78%, transparent); color: var(--text-primary); cursor: pointer; transition: .2s; }
.sidebar .toggle-btn:hover { border-color: color-mix(in srgb, var(--neon-blue) 52%, transparent); box-shadow: 0 0 10px color-mix(in srgb, var(--neon-blue) 28%, transparent); }
.sidebar .extra-menu-item { display: none; }
.sidebar-footer { margin-top: 0; }
.main.content-panel {
  flex: 1; min-width: 0; width: auto; height: auto; margin-top: 10px; margin-right: 0;
  border-radius: 12px; padding: 16px; overflow: auto; min-height: 0;
  background: var(--bg-card); box-shadow: var(--border-glow);
}
.main.content-panel > .topbar { display: none; }
.main.content-panel > section { width: 100%; flex-shrink: 0; }
/* 原版首页是居中标题 + 180~240px 菜单卡片；兼容当前项目面板时保留内容，但调整密度。 */
.hero-grid { gap: 16px; margin-bottom: 16px; }
.panel, .stats-card, .project-panel, .create-panel { border-radius: 12px; }
.reference-tabs { margin-bottom: 10px; }
@media (max-width: 760px) {
  .topbar.top-header { height: 56px; padding: 0 12px; }
  .topbar-brand strong { font-size: 17px; }
  .topbar-brand small { font-size: 11px; }
  .topbar-user .expire-text { display: none; }
  .topbar-user::before { display: none !important; content: none !important; }
  .sidebar.menu { width: 78px; flex-basis: 78px; padding: 12px 8px; }
  .sidebar .brand div, .sidebar .side-section > span, .sidebar .nav-label, .sidebar-footer span:last-child { display: none; }
  .sidebar .brand { justify-content: center; border: 0; padding-bottom: 4px; }
  .sidebar .menu-item { justify-content: center; padding: 0; }
  .main.content-panel { margin-top: 8px; padding: 12px; }
}

/* ── 漫剧首页 1:1 尺寸对齐（MangaCreateView / WorkCardList） ── */
.main.content-panel > .view-panel,
.main.content-panel > .detail-panel,
.main.content-panel > .chat-shell,
.main.content-panel > .doubao-panel,
.main.content-panel > .software-settings,
.main.content-panel > .model-config-panel { height: auto; min-height: 0; overflow: visible; }
.hero-grid { display: block; margin: 0; }
.hero-carousel.banner { position: relative; height: 280px; border-radius: 14px; overflow: hidden; }
.hero-carousel .carousel-track { height: 100%; }
.hero-carousel .hero-card.banner-copy {
  min-width: 100%; width: 100%; height: 280px; min-height: 280px; padding: 32px;
  display: flex; align-items: center; justify-content: center; text-align: center;
  background: radial-gradient(circle at 24% 20%, rgba(78, 180, 255, .16), transparent 32%), radial-gradient(circle at 76% 70%, rgba(82, 215, 190, .12), transparent 28%), linear-gradient(135deg, #0a1d43, #173d7a);
}
.hero-carousel .hero-card.banner-copy::after { display: none; }
.hero-carousel .hero-card.banner-copy h2 {
  max-width: none; margin: 0; color: #dbe9ff;
  font-family: STKaiti, KaiTi, "Songti SC", SimSun, "Noto Serif SC", serif;
  font-size: clamp(48px, 5.6vw, 72px); font-weight: 800; letter-spacing: 0; line-height: 1.18;
  text-shadow: 0 10px 28px rgba(0, 0, 0, .28), 0 0 24px rgba(116, 198, 255, .22);
}
.hero-carousel .carousel-dots { bottom: 12px; gap: 8px; }
.hero-carousel .carousel-dots .dot { width: 10px; height: 10px; border-radius: 999px; background: rgba(255, 255, 255, .4); }
.hero-carousel .carousel-dots .dot.active { width: 10px; background: linear-gradient(90deg, var(--neon-blue), var(--neon-purple)); }
.hero-grid .stats-card { display: none; }
.workspace-grid { display: block; margin: 0; }
.project-panel {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center;
  padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none;
}
.project-panel .panel-title { grid-column: 2; grid-row: 1; margin: 16px 0 16px 12px; }
.project-panel .panel-title > div:first-child, #importProjectBtn, #loadProjectsBtn { display: none; }
.project-panel .panel-actions { flex-wrap: nowrap; }
.project-panel .primary-inline { min-width: 110px; height: 38px; padding: 0 16px; border-radius: 10px; }
.project-filters { grid-column: 1; grid-row: 1; margin: 16px 0; flex-wrap: nowrap; }
#projectSearchInput { width: 260px; max-width: 260px; height: 38px; flex: 0 0 260px; padding: 0 12px; }
.project-list { grid-column: 1 / -1; grid-row: 2; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; max-height: none; overflow: visible; }
.project-item {
  position: relative; display: block; padding: 0; overflow: hidden; border-radius: 12px;
  background: var(--bg-card); box-shadow: inset 0 1px rgba(255,255,255,.08), var(--border-glow);
}
.project-cover { width: 100%; height: 140px; overflow: hidden; display: grid; place-items: center; color: #dbe9ff; font-size: 22px; font-weight: 700; background: linear-gradient(135deg, #0a1d43, #173d7a); }
.project-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.project-card-body { padding: 10px 12px 14px; }
.project-card-body h3 { margin: 0 0 8px; color: var(--text-primary); font-size: 16px; }
.project-card-body p { margin: 5px 0; color: var(--text-secondary); font-size: 14px; }
.project-card-body .status-finish { color: var(--success); }
.project-card-body .status-unfinish { color: var(--warning); }
.project-card-body .project-time { opacity: .9; }
.project-card-actions { position: absolute; top: 8px; right: 8px; z-index: 2; display: flex; gap: 4px; }
.project-card-actions button { width: 28px; height: 28px; padding: 0; border: 1px solid color-mix(in srgb, var(--text-secondary) 35%, transparent); border-radius: 8px; background: color-mix(in srgb, var(--bg-card) 92%, transparent); color: var(--text-secondary); display: inline-flex; align-items: center; justify-content: center; }
.project-card-actions button:hover { color: var(--neon-blue); border-color: color-mix(in srgb, var(--neon-blue) 65%, transparent); }
.project-card-actions button:last-child:hover { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 65%, transparent); }
.sidebar.collapsed { width: 78px; flex-basis: 78px; }
.sidebar.collapsed .brand div, .sidebar.collapsed .side-section > span, .sidebar.collapsed .nav-label, .sidebar.collapsed .sidebar-footer span:last-child { display: none; }
.sidebar.collapsed .brand { justify-content: center; border-bottom: 0; }
.sidebar.collapsed .menu-item { justify-content: center; padding: 0; }
@media (max-width: 760px) {
  .hero-carousel.banner, .hero-carousel .hero-card.banner-copy { height: 200px; min-height: 200px; }
  .hero-carousel .hero-card.banner-copy h2 { font-size: 36px; }
  .project-panel { display: block; }
  .project-panel .panel-title { margin: 10px 0 0; }
  .project-panel .panel-actions { width: 100%; }
  .project-panel .primary-inline { width: 100%; }
  .project-filters { margin: 10px 0; flex-wrap: wrap; }
  #projectSearchInput { width: 100%; max-width: none; flex-basis: 100%; }
  .project-list { grid-template-columns: 1fr; }
}

/* ── 智能配音页 1:1 排版（SmartVoiceDubbingView） ── */
.main.content-panel > .voice-dubbing-view { height: auto; min-height: 100%; overflow: visible; }
.voice-dubbing-view { display: flex; flex-direction: column; gap: 15px; padding-bottom: 24px; }
.voice-dubbing-view .page-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.voice-dubbing-view .page-header .title { margin: 0; color: var(--text-primary); font-size: 22px; font-weight: 600; }
.voice-project-name { color: var(--text-secondary); font-size: 13px; }
.voice-box { padding: 18px; border-radius: 10px; }
.voice-box h3 { margin: 0 0 14px; color: var(--text-primary); font-size: 15px; font-weight: 600; }
.voice-dubbing-view .flex-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.voice-dubbing-view .input,
.voice-dubbing-view .input-wide,
.voice-dubbing-view .file-input,
.voice-dubbing-view .script-textarea { padding: 8px 10px; border: 1px solid color-mix(in srgb, var(--text-secondary) 35%, transparent); border-radius: 6px; background: color-mix(in srgb, var(--bg-secondary) 85%, transparent); color: var(--text-primary); font-size: 14px; }
.voice-dubbing-view .input-wide { width: 100%; max-width: 560px; }
.voice-dubbing-view .service-row { align-items: stretch; }
.voice-dubbing-view .service-input { flex: 1; min-width: 200px; }
.voice-dubbing-view .script-textarea { width: 100%; height: 120px; margin: 10px 0; resize: vertical; line-height: 1.55; }
.voice-btn-primary, .voice-btn-success, .voice-btn-danger, .voice-btn-ghost, .voice-btn-emo, .voice-btn-zip, .down-btn { min-height: 34px; padding: 8px 16px; border: 0; border-radius: 6px; cursor: pointer; color: #fff; font-size: 14px; text-decoration: none; transition: opacity .2s; }
.voice-btn-primary { background: color-mix(in srgb, var(--neon-blue) 75%, #1b76d8); }
.voice-btn-success { background: #00b42a; }
.voice-btn-danger { background: #f53f3f; }
.voice-btn-zip { background: #722ed1; }
.voice-btn-ghost { color: var(--text-primary); border: 1px solid color-mix(in srgb, var(--text-secondary) 30%, transparent); background: color-mix(in srgb, var(--bg-secondary) 90%, transparent); }
.voice-btn-emo { color: var(--text-primary); border: 1px solid color-mix(in srgb, var(--neon-blue) 40%, transparent); background: color-mix(in srgb, var(--neon-blue) 25%, transparent); }
.voice-btn-emo.active { border-color: var(--neon-blue); box-shadow: 0 0 10px color-mix(in srgb, var(--neon-blue) 36%, transparent); }
.down-btn { display: inline-flex; align-items: center; margin-top: 8px; background: #10b981; }
.voice-btn-primary:hover:not(:disabled), .voice-btn-success:hover:not(:disabled), .voice-btn-danger:hover:not(:disabled), .voice-btn-ghost:hover:not(:disabled), .voice-btn-emo:hover:not(:disabled), .voice-btn-zip:hover:not(:disabled), .down-btn:hover { opacity: .9; }
.voice-dubbing-view button:disabled { opacity: .5; cursor: not-allowed; }
.voice-dubbing-view .role-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; padding: 10px 12px; border: 1px solid color-mix(in srgb, var(--text-secondary) 22%, transparent); border-radius: 6px; }
.voice-dubbing-view .role-item-main { display: flex; flex: 1; min-width: 0; flex-direction: column; gap: 4px; }
.voice-dubbing-view .role-path-hint { max-width: 480px; overflow: hidden; color: var(--text-secondary); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.voice-dubbing-view .voice-batch-table { width: 100%; margin-top: 12px; border: 0; border-radius: 0; }
.voice-dubbing-view .voice-batch-head, .voice-dubbing-view .voice-batch-row { grid-template-columns: 42px 120px minmax(180px, 1fr) 100px 160px; padding: 8px; border: 1px solid color-mix(in srgb, var(--text-secondary) 20%, transparent); border-bottom: 0; background: transparent; text-align: center; }
.voice-dubbing-view .voice-batch-head { color: var(--text-primary); background: color-mix(in srgb, var(--bg-secondary) 80%, transparent); }
.voice-dubbing-view .voice-batch-row:last-child { border-bottom: 1px solid color-mix(in srgb, var(--text-secondary) 20%, transparent); }
.voice-dubbing-view .voice-batch-row select { color: var(--text-primary); border-color: color-mix(in srgb, var(--text-secondary) 30%, transparent); background: var(--bg-secondary); }
.voice-dubbing-view .voice-batch-errors { margin-top: 10px; }
.voice-dubbing-view .progress { margin: 10px 0 0; color: var(--text-secondary); font-size: 14px; }
.voice-dubbing-view .audio-item { padding: 12px; margin-bottom: 10px; border: 1px solid color-mix(in srgb, var(--text-secondary) 22%, transparent); border-radius: 8px; background: color-mix(in srgb, var(--bg-secondary) 60%, transparent); }
.voice-dubbing-view .audio-label { margin-bottom: 6px; color: var(--text-primary); }
.voice-dubbing-view .audio-item audio { display: block; width: 100%; margin-top: 8px; }
.voice-dubbing-view .audio-error { margin: 8px 0; color: #f53f3f; font-size: 13px; }
@media (max-width: 760px) {
  .voice-dubbing-view .page-header { align-items: flex-start; flex-direction: column; }
  .voice-box { padding: 14px; }
  .voice-dubbing-view .input, .voice-dubbing-view .file-input, .voice-dubbing-view .voice-btn-primary { width: 100%; }
}

/* ── 小说创作列表 1:1 排版（NovelCreateView） ── */
.main.content-panel > .novel-create-view { height: 100%; min-height: 0; overflow: hidden; }
.novel-create-view { display: flex; flex-direction: column; gap: 20px; }
.novel-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.novel-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; min-width: 0; flex-wrap: wrap; }
.novel-title { margin: 0; color: var(--text-primary); font-size: 24px; font-weight: 600; }
.model-select-wrap { width: 280px; max-width: 42vw; }
.model-select { width: 100%; padding: 10px 12px; border: 1px solid color-mix(in srgb, var(--text-secondary) 28%, transparent); border-radius: 8px; outline: none; background: color-mix(in srgb, var(--bg-secondary) 48%, transparent); color: var(--text-primary); font-size: 14px; }
.model-select:focus { border-color: color-mix(in srgb, var(--neon-blue) 60%, transparent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--neon-blue) 18%, transparent); }
.novel-btn-primary { padding: 10px 20px; border: 1px solid color-mix(in srgb, var(--neon-blue) 50%, transparent); border-radius: 8px; background: linear-gradient(90deg, color-mix(in srgb, var(--neon-blue) 20%, transparent), color-mix(in srgb, var(--neon-purple) 20%, transparent)); color: var(--text-primary); display: flex; align-items: center; gap: 8px; font-size: 14px; transition: all .2s; }
.novel-btn-primary:hover { border-color: var(--neon-blue); box-shadow: 0 0 15px color-mix(in srgb, var(--neon-blue) 40%, transparent); }
.novel-btn-primary .icon { font-size: 18px; font-weight: 700; }
.novel-empty-state { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; }
.novel-empty-state .empty-icon { padding: 0; font-size: 64px; opacity: .5; }
.novel-empty-state .empty-text { margin: 0; color: var(--text-primary); font-size: 18px; }
.novel-empty-state .empty-hint { margin: 0; color: var(--text-secondary); font-size: 14px; }
.novel-projects-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; overflow-y: auto; }
.novel-project-card { padding: 16px; border-radius: 12px; cursor: pointer; display: flex; flex-direction: column; gap: 12px; transition: all .2s; }
.novel-project-card:hover { border-color: color-mix(in srgb, var(--neon-blue) 50%, transparent); box-shadow: 0 0 15px color-mix(in srgb, var(--neon-blue) 30%, transparent); }
.novel-card-header { display: flex; align-items: flex-start; justify-content: space-between; }
.novel-project-title { flex: 1; margin: 0; color: var(--text-primary); font-size: 18px; font-weight: 600; }
.novel-btn-delete { width: 24px; height: 24px; padding: 0; border: 1px solid color-mix(in srgb, var(--text-secondary) 30%, transparent); border-radius: 4px; background: transparent; color: var(--text-secondary); display: flex; align-items: center; justify-content: center; font-size: 20px; line-height: 1; transition: all .2s; }
.novel-btn-delete:hover { color: #f44; border-color: #f44; background: color-mix(in srgb, #ff4444 10%, transparent); }
.novel-card-body { display: flex; flex-direction: column; gap: 8px; }
.novel-info-row { display: flex; gap: 8px; font-size: 14px; }
.novel-info-row .label { min-width: 80px; color: var(--text-secondary); }
.novel-info-row .value { flex: 1; color: var(--text-primary); }
.novel-card-footer { display: flex; align-items: center; justify-content: space-between; padding-top: 8px; border-top: 1px solid color-mix(in srgb, var(--text-secondary) 20%, transparent); }
.novel-card-footer .date { color: var(--text-secondary); font-size: 12px; }
.novel-status { padding: 4px 8px; border-radius: 4px; font-size: 12px; }
.novel-status.status-draft { color: var(--text-secondary); background: color-mix(in srgb, var(--text-secondary) 20%, transparent); }
.novel-status.status-planning { color: var(--neon-blue); background: color-mix(in srgb, var(--neon-blue) 20%, transparent); }
.novel-status.status-writing { color: var(--neon-purple); background: color-mix(in srgb, var(--neon-purple) 20%, transparent); }
@media (max-width: 760px) {
  .novel-header-actions, .novel-header-actions .model-select-wrap { width: 100%; max-width: none; }
  .novel-btn-primary { flex: 1; justify-content: center; }
  .novel-projects-grid { grid-template-columns: 1fr; }
}

/* ── 软件设置页宽度与标签条对齐（SoftwareSettingView） ── */
.reference-tabs { width: fit-content; max-width: 100%; margin-bottom: 16px; padding: 8px; gap: 10px; flex-wrap: wrap; border-radius: 12px; background: var(--bg-card); border-color: color-mix(in srgb, var(--text-secondary) 24%, transparent); }
.reference-tab { min-width: 92px; height: 34px; padding: 0 14px; border-radius: 8px; color: var(--text-secondary); background: transparent; }
.reference-tab.active { color: var(--text-primary); border-color: color-mix(in srgb, var(--neon-blue) 45%, transparent); background: color-mix(in srgb, var(--neon-blue) 16%, transparent); box-shadow: 0 0 10px color-mix(in srgb, var(--neon-blue) 24%, transparent); }
.software-settings { width: 100%; max-width: 760px; height: auto; padding: 18px; display: grid; gap: 16px; border-radius: 14px; background: var(--bg-card); border-color: color-mix(in srgb, var(--text-secondary) 24%, transparent); box-shadow: var(--border-glow); }
.software-settings > .panel-title { margin: 0; padding: 0; border: 0; }
.software-settings > .panel-title .section-kicker { display: none; }
.software-settings > .panel-title h2 { font-size: 18px; }
.software-settings .settings-section { margin: 0; padding: 0 0 16px; border: 0; border-bottom: 1px solid color-mix(in srgb, var(--text-secondary) 16%, transparent); }
.software-settings .settings-section:last-child { padding-bottom: 0; border-bottom: 0; }
.software-settings .setting-field { margin: 14px 0 0; color: var(--text-primary); font-size: 14px; font-weight: 600; }
.software-settings .setting-field select, .software-settings .setting-field > input, .software-settings .file-line input { height: 40px; padding: 0 12px; border-radius: 10px; background: var(--bg-secondary); color: var(--text-primary); border-color: color-mix(in srgb, var(--text-secondary) 34%, transparent); }
.model-config-panel { width: 100%; max-width: 760px; height: auto; padding: 18px; border-radius: 14px; background: var(--bg-card); border-color: color-mix(in srgb, var(--text-secondary) 24%, transparent); box-shadow: var(--border-glow); }
@media (max-width: 760px) {
  .reference-tabs { flex-wrap: nowrap; width: 100%; overflow-x: auto; }
  .software-settings, .model-config-panel { max-width: 100%; }
}

/* ── 聊天室原包排版对齐（ChatRoomView） ── */
.main.content-panel > .chat-shell {
  width: calc(100% + 32px);
  height: calc(100% + 32px);
  min-height: 0;
  margin: -16px;
  display: flex;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: 13px;
}
.chat-shell .chat-sidebar {
  width: 220px;
  flex: 0 0 220px;
  padding: 10px 10px 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow: hidden;
  border-right: 1px solid color-mix(in srgb, var(--text-secondary) 18%, transparent);
  background: color-mix(in srgb, var(--bg-secondary) 88%, transparent);
}
.chat-shell .chat-title { min-height: 28px; gap: 6px; }
.chat-shell .chat-title h2 { color: var(--neon-blue); font-size: 15px; font-weight: 600; }
.chat-shell .chat-title .panel-icon { width: 20px; height: 20px; color: var(--neon-blue); display: inline-grid; place-items: center; }
.chat-shell .chat-title .small-button { width: 28px; height: 28px; padding: 0; border: 0; border-radius: 7px; background: transparent; }
.chat-shell .new-chat {
  height: 36px;
  padding: 0 12px;
  border-radius: 999px;
  border-color: color-mix(in srgb, var(--text-secondary) 22%, transparent);
  background: color-mix(in srgb, var(--bg-card) 96%, transparent);
  font-size: 13px;
}
.chat-shell .chat-date { margin: 6px 0 2px; padding: 0 6px; color: var(--text-secondary); font-size: 11px; }
.chat-shell .chat-sessions { flex: 1; min-height: 0; gap: 2px; overflow-y: auto; padding-right: 2px; }
.chat-shell .chat-session { position: relative; padding: 7px 8px; border-radius: 8px; }
.chat-shell .chat-session:hover,
.chat-shell .chat-session.active { background: color-mix(in srgb, var(--text-secondary) 12%, transparent); }
.chat-shell .chat-session strong { overflow: hidden; font-size: 12px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.chat-shell .chat-session small { margin-top: 2px; font-size: 10px; }
.chat-shell .chat-main { flex: 1; width: 100%; min-width: 0; min-height: 0; position: relative; }
.chat-shell .chat-messages {
  flex: 1;
  min-height: 0;
  padding: 32px 20px 12px;
  gap: 12px;
  overflow-y: auto;
}
.chat-shell .chat-empty { width: min(760px, 100%); margin: 10vh auto 0; }
.chat-shell .chat-empty h2 { margin: 0 0 6px; font-size: 22px; font-weight: 600; }
.chat-shell .chat-empty p { margin: 0 0 14px; font-size: 13px; }
.chat-shell .chat-message { width: min(760px, 100%); max-width: min(760px, 100%); margin: 0 auto; padding: 9px 12px; border-radius: 12px; line-height: 1.6; }
.chat-shell .chat-message.user { width: fit-content; max-width: min(72%, 760px); margin-right: max(0px, calc((100% - 760px) / 2)); }
.chat-shell .chat-message.assistant { background: color-mix(in srgb, var(--bg-secondary) 92%, transparent); border: 1px solid color-mix(in srgb, var(--text-secondary) 16%, transparent); }
.chat-shell .chat-message.pending .message-content { color: var(--text-secondary); animation: chat-pending-pulse 1.2s ease-in-out infinite; }
.chat-shell .chat-message.error { border-color: color-mix(in srgb, #e05252 58%, transparent); background: color-mix(in srgb, #e05252 10%, var(--bg-secondary)); }
.chat-shell .chat-message.has-json { width: min(1080px, 100%); max-width: min(1080px, 100%); padding: 0; overflow: hidden; }
.chat-json-result { min-width: 0; }
.chat-json-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 7px 10px; border-bottom: 1px solid color-mix(in srgb, var(--text-secondary) 18%, transparent); background: color-mix(in srgb, var(--bg-primary) 68%, transparent); color: var(--text-secondary); font-size: 12px; }
.chat-json-toolbar > div { display: flex; gap: 7px; }
.chat-json-toolbar button { min-height: 30px; padding: 5px 10px; border: 1px solid color-mix(in srgb, var(--neon-blue) 38%, transparent); border-radius: 6px; background: transparent; color: var(--text-primary); cursor: pointer; }
.chat-json-toolbar button:hover { border-color: var(--neon-blue); color: var(--neon-blue); }
.chat-json-result pre { max-height: min(62vh, 720px); margin: 0; padding: 16px; overflow: auto; background: color-mix(in srgb, var(--bg-primary) 82%, #07101e); color: #dbe8f8; font: 12px/1.65 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; white-space: pre; tab-size: 2; }
.chat-json-result code { font: inherit; letter-spacing: 0; }
@keyframes chat-pending-pulse { 0%,100% { opacity: .55; } 50% { opacity: 1; } }
.chat-shell .message-role { font-size: 11px; }
.chat-shell .chat-composer {
  width: min(760px, calc(100% - 40px));
  margin: 0 auto 14px;
  padding: 0;
  overflow: visible;
  border-radius: 12px;
  border-color: color-mix(in srgb, var(--text-secondary) 22%, transparent);
  background: color-mix(in srgb, var(--bg-secondary) 94%, transparent);
  box-shadow: 0 6px 18px color-mix(in srgb, var(--bg-primary) 40%, transparent);
}
.chat-shell .chat-composer textarea { height: 64px; padding: 12px 14px 8px; box-sizing: border-box; font-size: 13px; }
.chat-shell .chat-session-row { display: flex; align-items: stretch; gap: 2px; min-width: 0; }
.chat-shell .chat-session-row .chat-session { flex: 1; min-width: 0; }
.chat-shell .chat-session-delete { width: 26px; flex: 0 0 26px; border: 0; border-radius: 6px; background: transparent; color: var(--text-secondary); cursor: pointer; opacity: .4; }
.chat-shell .chat-session-row:hover .chat-session-delete, .chat-shell .chat-session-delete:focus-visible { opacity: 1; color: var(--danger); background: color-mix(in srgb, var(--danger) 12%, transparent); }
.chat-shell .composer-actions { min-height: 44px; margin: 0; padding: 6px 10px 10px; gap: 6px; }
.chat-shell .icon-button,
.chat-shell .select-button,
.chat-shell .composer-actions .ghost { height: 28px; padding: 0 10px; border-radius: 999px; font-size: 12px; white-space: nowrap; }
.chat-shell .icon-button { width: 28px; padding: 0; }
.chat-shell .send-button { min-width: 60px; height: 28px; margin-left: auto; padding: 0 14px; border-radius: 999px; font-size: 12px; }
.chat-shell .send-button:disabled { cursor: wait; opacity: .72; }
.chat-shell .skill-menu { bottom: 48px; left: 44px; }
.chat-shell .chat-model-menu {
  position: absolute;
  right: 92px;
  bottom: 48px;
  z-index: 12;
  width: 240px;
  max-height: 300px;
  padding: 8px;
  overflow-y: auto;
  border: 1px solid color-mix(in srgb, var(--text-secondary) 30%, transparent);
  border-radius: 10px;
  background: var(--bg-card);
  box-shadow: 0 12px 30px rgba(0, 0, 0, .28);
}
.chat-model-group { display: grid; gap: 4px; padding: 4px 0; }
.chat-model-group + .chat-model-group { border-top: 1px solid color-mix(in srgb, var(--text-secondary) 16%, transparent); }
.chat-model-group small { padding: 3px 8px; color: var(--text-secondary); font-size: 11px; }
.chat-model-option { min-height: 30px; padding: 0 8px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: var(--text-primary); text-align: left; cursor: pointer; font-size: 12px; }
.chat-model-option:hover, .chat-model-option.active { border-color: color-mix(in srgb, var(--neon-blue) 46%, transparent); background: color-mix(in srgb, var(--neon-blue) 16%, transparent); }
@media (max-width: 760px) {
  .main.content-panel > .chat-shell { width: calc(100% + 24px); height: calc(100% + 24px); margin: -12px; }
  .chat-shell .chat-sidebar { display: none; }
.chat-shell .chat-messages { padding: 24px 12px 10px; }
  .chat-shell .chat-composer { width: calc(100% - 24px); }
  .chat-json-toolbar { align-items: flex-start; flex-direction: column; }
  .chat-json-result pre { max-height: 58vh; padding: 12px; font-size: 11px; }
  .chat-shell .select-button { max-width: 110px; overflow: hidden; text-overflow: ellipsis; }
  .chat-shell .chat-model-menu { right: 12px; left: 12px; bottom: 48px; width: auto; }
  .chat-shell #clearChatBtn { display: none; }
}

/* ── 单集项目工作台原包层级对齐（EpisodeList / StoryboardWorkbench） ── */
.main.content-panel > .detail-panel {
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
  overflow: hidden;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.detail-app-header {
  min-height: 86px;
  flex: 0 0 auto;
  margin: 0;
  padding: 16px 18px;
  border: 1px solid color-mix(in srgb, var(--text-secondary) 22%, transparent);
  border-radius: 14px;
  background: var(--bg-card);
}
.detail-heading { min-width: 0; display: flex; align-items: center; gap: 16px; }
.detail-back-btn {
  height: 36px;
  flex: 0 0 auto;
  padding: 0 14px;
  border: 1px solid color-mix(in srgb, var(--text-secondary) 28%, transparent);
  border-radius: 10px;
  background: color-mix(in srgb, var(--bg-secondary) 86%, transparent);
  color: var(--text-primary);
  cursor: pointer;
}
.detail-back-btn:hover { border-color: color-mix(in srgb, var(--neon-blue) 48%, transparent); }
.detail-app-header .episode-title { min-width: 0; display: grid; gap: 4px; }
.detail-app-header .title-row { min-width: 0; display: flex; align-items: center; gap: 12px; }
.detail-app-header .work-id {
  flex: 0 0 auto;
  padding: 2px 8px;
  border: 1px solid color-mix(in srgb, var(--text-secondary) 20%, transparent);
  border-radius: 6px;
  background: color-mix(in srgb, var(--bg-secondary) 86%, transparent);
  color: var(--text-secondary);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
}
.detail-app-header #detailTitle { min-width: 0; margin: 0; overflow: hidden; color: var(--text-primary); font-size: 22px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.detail-app-header #detailEpisodeMeta { color: var(--text-secondary); font-size: 13px; }
.detail-app-header .panel-actions { width: auto; flex: 0 0 auto; }
.detail-app-header .small-button { height: 38px; padding: 0 16px; border-radius: 10px; }
.plan-progress { display: flex; width: 190px; min-width: 0; flex-direction: column; gap: 5px; color: var(--text-secondary); font-size: 11px; }
.plan-progress[hidden] { display: none !important; }
.plan-progress-copy { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 8px; }
.plan-progress-copy span, .plan-progress-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.plan-progress-copy small { color: inherit; }
.plan-progress-bar { position: relative; height: 4px; overflow: hidden; border-radius: 4px; background: color-mix(in srgb, var(--text-secondary) 20%, transparent); }
.plan-progress-bar > span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--neon-blue); transition: width .25s ease; }
.plan-progress[data-state="running"] .plan-progress-bar > span { width: 42%; animation: plan-progress-running 1.25s ease-in-out infinite; }
.plan-progress[data-state="success"] { color: var(--success); }
.plan-progress[data-state="success"] .plan-progress-bar > span { width: 100%; background: var(--success); }
.plan-progress[data-state="error"] { color: var(--danger); }
.plan-progress[data-state="error"] .plan-progress-bar > span { width: 100%; background: var(--danger); }
@keyframes plan-progress-running { 0% { transform: translateX(-110%); } 100% { transform: translateX(260%); } }
#projectDetail { flex: 1; min-height: 0; overflow-y: auto; padding: 0 2px 18px; }
#projectDetail > .workbench-tabs {
  position: sticky;
  top: 0;
  z-index: 4;
  min-height: 48px;
  margin: 0 0 14px;
  padding: 4px 0 0;
  align-items: flex-end;
  background: var(--bg-card);
  border-bottom-color: color-mix(in srgb, var(--text-secondary) 20%, transparent);
}
#projectDetail > .workbench-tabs .tab { min-height: 42px; padding: 0 18px; white-space: nowrap; }
.workbench-pane { min-width: 0; }
.workbench-pane[hidden] { display: none !important; }
.workbench-pane .detail-summary { margin-bottom: 14px; }
.workbench-pane .summary-box { padding: 14px 16px; border-radius: 10px; }
.workbench-pane .subpanel {
  margin: 0 0 14px;
  padding: 16px;
  border-radius: 12px;
  background: color-mix(in srgb, var(--bg-secondary) 46%, var(--bg-card));
}
.script-workbench-grid { grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr); align-items: start; gap: 14px; }
.script-panel .script-editor { min-height: 480px; resize: vertical; }
.storyboard-panel .storyboard-row { padding: 12px 14px; border-radius: 8px; }
.workbench-pane .asset-columns { margin-top: 0; }
.workbench-pane .asset-card { min-width: 0; }
.workbench-pane .task-list { margin-bottom: 14px; }
.task-list-controls { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 2px; }
.task-filter { min-height: 30px; display: inline-flex; align-items: center; gap: 6px; padding: 0 10px; border: 1px solid color-mix(in srgb, var(--text-secondary) 26%, transparent); border-radius: 6px; background: var(--bg-secondary); color: var(--text-secondary); cursor: pointer; }
.task-filter span { min-width: 18px; padding: 1px 5px; border-radius: 9px; background: color-mix(in srgb, var(--text-secondary) 15%, transparent); font-size: 10px; text-align: center; }
.task-filter.active { border-color: var(--neon-blue); background: color-mix(in srgb, var(--neon-blue) 16%, var(--bg-secondary)); color: var(--text-primary); }
.task-list-more { min-height: 34px; border: 1px dashed color-mix(in srgb, var(--text-secondary) 30%, transparent); border-radius: 7px; background: transparent; color: var(--text-secondary); cursor: pointer; }
.task-list-more:hover { border-color: var(--neon-blue); color: var(--text-primary); }
@media (max-width: 920px) {
  .script-workbench-grid { grid-template-columns: 1fr; }
  .detail-app-header { align-items: flex-start; flex-wrap: wrap; }
  .detail-heading { width: 100%; flex: 1 1 100%; }
  .detail-app-header .episode-title { flex: 1; }
  .detail-app-header .panel-actions { width: 100%; }
}
@media (max-width: 760px) {
  .main.content-panel > .detail-panel { gap: 10px; }
  .manga-toolbar-fixed .manga-control-deck { position: static; top: auto; z-index: auto; }
  .detail-app-header { min-height: 0; padding: 12px; align-items: stretch; }
  .detail-heading { align-items: flex-start; gap: 10px; }
  .detail-back-btn { width: 36px; padding: 0; overflow: hidden; font-size: 0; }
  .detail-back-btn::before { content: "←"; font-size: 16px; }
  .detail-app-header .title-row { align-items: center; flex-direction: row; flex-wrap: wrap; gap: 6px; }
  .detail-app-header #detailTitle { max-width: min(100%, 360px); font-size: 18px; }
  .detail-app-header .panel-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .detail-app-header .panel-actions .small-button { width: 100%; min-width: 0; padding: 0 8px; }
  .task-list .subpanel-title { align-items: flex-start; flex-direction: column; }
  .task-list .subpanel-title > span { width: 100%; display: flex; flex-wrap: wrap; gap: 6px; }
  .task-list .subpanel-title .mini-button { margin: 0; }
  .manga-control-deck { padding: 12px; }
  .manga-control-actions, .manga-control-row-bottom { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .manga-control-deck .small-button { width: 100%; min-width: 0; padding: 0 8px; }
  .manga-switch-group { width: 100%; box-sizing: border-box; justify-content: space-between; }
  #projectDetail > .workbench-tabs { overflow-x: auto; }
  #projectDetail > .workbench-tabs .tab { flex: 0 0 auto; padding: 0 13px; }
  .detail-summary { grid-template-columns: repeat(2, 1fr); }
  .workbench-pane .asset-columns { grid-template-columns: 1fr; }
  .script-panel .script-editor { min-height: 360px; }
}

/* ── 豆包工作台原包尺寸对齐（DoubaoWorkbenchView） ── */
.main.content-panel > .doubao-panel { padding: 0 0 24px; color: var(--text-primary); background: transparent; border: 0; box-shadow: none; }
.doubao-panel { display: flex; flex-direction: column; gap: 15px; }
.doubao-panel .doubao-header { margin: 0; align-items: center; gap: 12px; flex-wrap: wrap; }
.doubao-panel .doubao-header > div:first-child { flex: 1 1 620px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.doubao-panel .doubao-header h2 { flex: 0 0 auto; margin: 0; font-size: 22px; font-weight: 600; }
.doubao-panel .doubao-notice { flex: 1 1 420px; margin: 0; max-width: none; color: var(--danger) !important; font-size: 14px !important; font-weight: 600; line-height: 1.5; }
.doubao-panel .helper-badge { flex: 0 0 auto; gap: 10px; font-size: 13px; }
.doubao-panel .doubao-grid { grid-template-columns: 320px minmax(0, 1fr); gap: 16px; }
.doubao-panel .panel { min-width: 0; padding: 14px 16px 16px; border-radius: 0; background: var(--bg-card); border-color: color-mix(in srgb, var(--text-secondary) 25%, transparent); box-shadow: 0 6px 18px rgba(40, 60, 110, .08); }
.doubao-panel .panel-title { margin: 0 0 14px; gap: 8px; flex-wrap: wrap; }
.doubao-panel .panel-title h3 { flex: 0 0 auto; margin: 0; font-size: 15px; font-weight: 600; }
.doubao-panel .panel-actions { flex: 1; width: auto; justify-content: flex-end; gap: 6px; }
.doubao-panel .panel-actions .small-button,
.doubao-panel .filter { min-height: 30px; padding: 5px 12px; border-radius: 6px; font-size: 12px; }
.doubao-panel .doubao-account-list { max-height: none; }
.doubao-panel .doubao-account { margin: 0 0 10px; padding: 12px; display: flex; flex-direction: column; align-items: stretch; gap: 10px; border-radius: 8px; background: color-mix(in srgb, var(--bg-secondary) 65%, transparent); }
.doubao-panel .doubao-account strong { font-size: 14px; }
.doubao-panel .doubao-account small { font-size: 12px; }
.doubao-panel .doubao-account .account-actions { width: 100%; display: flex; grid-column: auto; gap: 6px; }
.doubao-panel .doubao-account .account-actions button { flex: 1 1 auto; min-width: 0; padding: 5px 10px; border-radius: 6px; font-size: 12px; }
.doubao-panel .doubao-records { min-height: 0; }
.doubao-panel .record-filters { gap: 6px; padding-bottom: 12px; }
.doubao-panel .doubao-records-list { min-height: 200px; overflow-x: auto; border: 1px solid color-mix(in srgb, var(--text-secondary) 18%, transparent); border-radius: 8px; }
.doubao-panel .doubao-record-row { min-width: 680px; padding: 10px 12px; }
.doubao-panel .record-pagination { padding-top: 12px; color: var(--text-secondary); font-size: 12px; }
@media (max-width: 1100px) {
  .doubao-panel .doubao-grid { grid-template-columns: 1fr; }
}

/* ── 分镜表格内部控件对齐（StoryboardWorkbenchView） ── */
.storyboard-workbench-page {
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-rows: auto auto;
  gap: 12px;
}
.storyboard-top-bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid color-mix(in srgb, var(--text-secondary) 24%, transparent);
  border-radius: 12px;
  background: color-mix(in srgb, var(--bg-card) 90%, transparent);
}
.storyboard-action-group { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.storyboard-action-group.storyboard-middle { justify-content: center; padding: 7px 10px; border: 1px dashed color-mix(in srgb, var(--text-secondary) 35%, transparent); border-radius: 10px; }
.storyboard-action-group.storyboard-right { justify-content: flex-end; }
.storyboard-grid-toggle { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 10px 0 6px; border: 1px solid color-mix(in srgb, var(--text-secondary) 30%, transparent); border-radius: 8px; background: var(--bg-secondary); color: var(--text-primary); font-size: 13px; }
.storyboard-grid-toggle input { width: 14px; height: 14px; accent-color: var(--neon-blue); }
.storyboard-provider-control{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 8px;border:1px solid color-mix(in srgb,var(--text-secondary) 30%,transparent);border-radius:8px;background:var(--bg-secondary);color:var(--text-secondary);font-size:12px;white-space:nowrap}
.storyboard-provider-control select{max-width:180px;border:0;background:transparent;color:var(--text-primary);outline:none;font-size:12px}
.storyboard-select { height: 34px; padding: 0 10px; border: 1px solid color-mix(in srgb, var(--text-secondary) 30%, transparent); border-radius: 8px; background: var(--bg-secondary); color: var(--text-primary); }
.storyboard-table-card { width: 100%; height: min(480px, calc(100vh - 420px)); min-height: 360px; min-width: 0; padding: 10px; display: grid; grid-template-rows: minmax(0, 1fr) auto; border: 1px solid color-mix(in srgb, var(--text-secondary) 24%, transparent); border-radius: 12px; overflow: hidden; background: color-mix(in srgb, var(--bg-card) 88%, transparent); }
.storyboard-table-scroll { min-width: 0; max-width: 100%; overflow: auto; border-radius: 8px; }
.story-table { width: 100%; min-width: 1280px; border-collapse: collapse; table-layout: fixed; }
.story-table th, .story-table td { padding: 10px; border-bottom: 1px solid color-mix(in srgb, var(--text-secondary) 18%, transparent); vertical-align: top; color: var(--text-primary); }
.story-table th { color: var(--text-secondary); font-size: 12px; font-weight: 600; text-align: center; white-space: nowrap; background: color-mix(in srgb, var(--bg-secondary) 44%, transparent); }
.story-table td { height: 320px; max-height: 320px; overflow: hidden; }
.story-index-col { width: 60px; min-width: 60px; max-width: 60px; }
.story-script-col { width: 300px; min-width: 300px; max-width: 300px; }
.story-reference-col { width: 150px; min-width: 150px; max-width: 150px; }
.story-prompt-col { width: 520px; min-width: 520px; max-width: 520px; }
.story-video-col { width: 200px; min-width: 200px; max-width: 200px; }
.story-action-col { width: 124px; min-width: 124px; max-width: 124px; }
.story-index-check { display: flex; align-items: center; justify-content: center; gap: 5px; color: var(--text-secondary); font-size: 11px; }
.story-index-check input { accent-color: var(--neon-blue); }
.story-index-check strong { color: var(--text-primary); font-size: 16px; }
.story-duration { display: block; margin-top: 8px; color: var(--text-secondary); font-size: 11px; text-align: center; }
.story-script-cell { width: 100%; height: 100%; box-sizing: border-box; overflow-y: auto; padding: 8px; border: 1px solid color-mix(in srgb, var(--text-secondary) 20%, transparent); border-radius: 8px; background: var(--bg-secondary); line-height: 1.6; }
.story-script-cell strong { display: block; margin-bottom: 7px; font-size: 13px; }
.story-script-cell p { margin: 0; font-size: 12px; white-space: pre-wrap; word-break: break-word; }
.story-script-cell small { display: block; margin-top: 8px; color: var(--text-secondary); font-size: 11px; }
.story-reference-cell { display: flex; flex-direction: column; gap: 8px; max-height: 296px; overflow-y: auto; }
.story-ref-chip { display: flex; align-items: center; gap: 6px; min-width: 0; padding: 6px 7px; border: 1px solid color-mix(in srgb, var(--text-secondary) 18%, transparent); border-radius: 8px; background: color-mix(in srgb, var(--bg-secondary) 60%, transparent); color: var(--text-primary); font-size: 11px; line-height: 1.25; word-break: break-all; }
.story-ref-dot { width: 18px; height: 18px; flex: 0 0 18px; display: inline-grid; place-items: center; border-radius: 5px; background: color-mix(in srgb, var(--neon-blue) 20%, transparent); color: var(--neon-blue); font-size: 10px; }
.story-ref-dot.scene { background: color-mix(in srgb, var(--neon-purple) 20%, transparent); color: var(--neon-purple); }
.story-ref-dot.prop { background: color-mix(in srgb, var(--warning) 20%, transparent); color: var(--warning); }
.story-prompt-container { display: flex; flex-direction: column; height: 320px; padding: 12px; border: 1px solid color-mix(in srgb, var(--text-secondary) 20%, transparent); border-radius: 12px; background: var(--bg-secondary); }
.story-prompt-editor { flex: 1; min-height: 0; overflow-y: auto; line-height: 1.6; }
.story-prompt-editor p { margin: 0; color: var(--text-primary); font-size: 12px; white-space: pre-wrap; word-break: break-word; }
.story-prompt-editor small { display: block; margin-top: 10px; color: var(--text-secondary); font-size: 11px; }
.story-video-params { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding-top: 8px; margin-top: 8px; border-top: 1px solid color-mix(in srgb, var(--text-secondary) 14%, transparent); }
.story-video-params span { display: inline-flex; align-items: center; height: 28px; padding: 0 8px; border: 1px solid color-mix(in srgb, var(--text-secondary) 22%, transparent); border-radius: 999px; background: var(--bg-card); color: var(--text-secondary); font-size: 11px; }
.story-video-cell { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.story-grid-image { width: 120px; height: 120px; display: flex; align-items: center; justify-content: center; padding: 0; border: 1px dashed color-mix(in srgb, var(--text-secondary) 30%, transparent); border-radius: 10px; background: var(--bg-secondary); color: var(--text-secondary); font-size: 11px; line-height: 1.3; text-align: center; overflow: hidden; }
button.story-grid-image { cursor: zoom-in; }
.story-grid-image img { width: 100%; height: 100%; object-fit: cover; }
.story-grid-image.failed { border-color: color-mix(in srgb, #ef476f 70%, transparent); color: #ff91aa; }
.story-video-thumb-link { display: flex; flex-direction: column; align-items: center; gap: 5px; color: var(--neon-blue); font-size: 11px; text-decoration: none; }
.story-video-thumb { width: 180px; height: 110px; object-fit: cover; border: 1px solid color-mix(in srgb, var(--text-secondary) 20%, transparent); border-radius: 10px; background: var(--bg-secondary); }
.story-video-placeholder { width: 180px; height: 110px; display: flex; align-items: center; justify-content: center; padding: 10px; box-sizing: border-box; border: 1px dashed color-mix(in srgb, var(--text-secondary) 30%, transparent); border-radius: 10px; background: var(--bg-secondary); color: var(--text-secondary); font-size: 11px; line-height: 1.35; text-align: center; }
.story-op-grid { display: flex; flex-direction: column; align-items: stretch; gap: 6px; }
.story-op-grid .mini-button { width: 100%; min-height: 30px; padding: 0 8px; font-size: 11px; white-space: nowrap; }
.storyboard-pager { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 10px 4px 0; color: var(--text-secondary); font-size: 12px; }
.storyboard-grid-card-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; min-width: 0; max-height: min(560px, calc(100vh - 420px)); overflow-y: auto; padding: 4px; }
.storyboard-grid-card { display: flex; flex-direction: column; gap: 10px; min-width: 0; padding: 12px; border: 1px solid color-mix(in srgb, var(--text-secondary) 24%, transparent); border-radius: 12px; background: color-mix(in srgb, var(--bg-card) 90%, transparent); }
.storyboard-grid-card-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--text-secondary); }
.storyboard-grid-card-head .story-index-check { justify-content: flex-start; }
.storyboard-grid-card-head > span { font-size: 11px; }
.storyboard-grid-media { display: grid; grid-template-columns: 1fr 1.35fr; gap: 8px; align-items: start; }
.storyboard-grid-media > div { min-width: 0; display: flex; justify-content: center; }
.storyboard-grid-media .story-grid-image { width: 100%; height: 150px; }
.storyboard-grid-media .story-video-thumb,.storyboard-grid-media .story-video-placeholder { width: 100%; height: 150px; }
.storyboard-grid-copy { min-width: 0; }
.storyboard-grid-copy > strong { display: block; margin-bottom: 6px; color: var(--text-primary); font-size: 13px; }
.storyboard-grid-copy > p { max-height: 96px; margin: 0; overflow-y: auto; color: var(--text-primary); font-size: 12px; line-height: 1.6; white-space: pre-wrap; word-break: break-word; }
.storyboard-grid-copy .story-reference-cell { flex-direction: row; flex-wrap: wrap; max-height: 78px; margin-top: 8px; }
.storyboard-grid-copy .story-ref-chip { flex: 0 1 auto; }
.storyboard-grid-copy .story-video-params { margin-top: 8px; }
.storyboard-grid-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: auto; }
.storyboard-grid-actions .mini-button { min-width: 0; padding: 0 6px; font-size: 11px; white-space: nowrap; }
.storyboard-empty { min-height: 180px; display: grid; place-items: center; }
@media (max-width: 760px) {
  .model-select-line { grid-template-columns: 1fr 1fr; }
  .model-select-line select { grid-column: 1 / -1; }
  .video-provider-mode { grid-template-columns: 1fr; align-items: stretch; }
  .video-provider-model, .video-provider-toggle { justify-content: space-between; }
  .video-provider-model select { min-width: 0; width: min(190px, 58vw); }
  .storyboard-provider-control { max-width: 100%; }
  .storyboard-provider-control select { max-width: 140px; }
  .advanced-config-grid { grid-template-columns: 1fr; }
  .advanced-mapping-grid { grid-template-columns: 1fr; }
  .advanced-config-section { padding: 13px 14px; }
  .advanced-config-actions { justify-content: stretch; }
  .advanced-config-actions button { flex: 1; }
  .storyboard-top-bar { grid-template-columns: 1fr; gap: 8px; }
  .storyboard-action-group.storyboard-middle, .storyboard-action-group.storyboard-right { justify-content: flex-start; }
  .storyboard-table-card { height: 460px; min-height: 360px; padding: 8px; }
  .storyboard-grid-card-list { grid-template-columns: 1fr; max-height: 520px; }
  .storyboard-pager { flex-direction: column; align-items: flex-start; }
}

/* ── 软件设置首屏与原版基础设置面板对齐 ──
   兼容层状态仍由 JS 保留并更新，但不抢占原版设置表单的首屏空间。 */
.software-settings {
  max-width: 760px;
  min-height: 0;
  overflow-y: auto;
}
.software-settings > .panel-title {
  min-height: 42px;
  margin-bottom: 2px;
  padding-bottom: 2px;
}
.software-settings > .panel-title h2 { font-size: 18px; }
.software-settings > .panel-title .section-kicker { display: none; }
.software-settings .settings-notice {
  margin: 0;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.45;
}
/* 能力清单属于本地兼容层诊断，不属于原版基础设置首屏；状态仍可由接口读取。 */
.software-settings #capabilitySection { display: none !important; }
.software-settings .settings-section { gap: 12px; }
.software-settings .settings-section h3 { margin-bottom: 2px; }

/* ── 媒体预览遮罩（首帧 / 视频） ── */
.media-preview-modal {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: grid;
  place-items: center;
  padding: 28px;
  background: rgba(4, 10, 22, .78);
  backdrop-filter: blur(8px);
}
.media-preview-dialog {
  width: min(960px, 94vw);
  max-height: min(820px, 92vh);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--neon-blue) 35%, var(--text-secondary));
  border-radius: 14px;
  background: var(--bg-card);
  box-shadow: 0 24px 80px rgba(0, 0, 0, .42), 0 0 24px rgba(43, 150, 245, .16);
}
.media-preview-header { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 16px; border-bottom: 1px solid color-mix(in srgb, var(--text-secondary) 20%, transparent); color: var(--text-primary); }
.media-preview-close { width: 32px; height: 32px; border: 1px solid color-mix(in srgb, var(--text-secondary) 30%, transparent); border-radius: 8px; background: var(--bg-secondary); color: var(--text-primary); font-size: 22px; line-height: 1; cursor: pointer; }
.media-preview-close:hover { border-color: var(--neon-blue); }
.media-preview-body { min-height: 240px; display: grid; place-items: center; padding: 18px; overflow: auto; background: #070d1a; }
.media-preview-image { display: block; max-width: 100%; max-height: calc(92vh - 120px); object-fit: contain; border-radius: 8px; }
.media-preview-video { display: block; width: min(900px, 100%); max-height: calc(92vh - 120px); border-radius: 8px; background: #000; }
@media (max-width: 760px) {
  .media-preview-modal { padding: 10px; }
  .media-preview-dialog { width: 100%; max-height: 94vh; }
  .media-preview-body { min-height: 180px; padding: 10px; }
}

/* ── 提示词方案设置：六分类、双栏编辑与合并预览 ── */
.manga-prompt-modal{position:fixed;inset:0;z-index:94;display:grid;place-items:center;padding:28px;background:rgba(3,9,20,.82);backdrop-filter:blur(8px)}
.manga-prompt-modal[hidden]{display:none!important}
.manga-prompt-dialog{width:min(1600px,calc(100vw - 56px));height:min(900px,calc(100vh - 56px));display:flex;flex-direction:column;overflow:hidden;border:1px solid #315477;border-radius:15px;background:#0d1930;box-shadow:0 28px 80px rgba(0,0,0,.58),0 0 28px rgba(43,150,245,.16)}
.manga-prompt-header{min-height:76px;display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:20px;padding:14px 24px;border-bottom:1px solid #284567;background:#0f1c34}
.manga-prompt-header h2{margin:0;color:#e8f1ff;font-size:20px}.manga-prompt-header-actions{display:flex;align-items:center;gap:10px}.manga-prompt-header-actions button{min-height:40px;padding:0 18px;border-radius:8px;white-space:nowrap}.manga-prompt-header-actions .primary-inline{min-width:104px;border:0;background:linear-gradient(135deg,#349bf1,#9360f6);color:#fff}.manga-prompt-header-actions .media-preview-close{width:42px;min-width:42px;padding:0;font-size:24px}
.manga-prompt-layout{min-height:0;display:grid;flex:1;grid-template-columns:242px minmax(0,1fr);gap:28px;padding:26px 34px 30px;overflow:hidden}
.manga-prompt-categories{min-height:0;display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid #2d4b6d;border-radius:12px;background:#101d34;overflow:auto}.manga-prompt-category{min-height:54px;padding:0 18px;border:1px solid transparent;border-radius:9px;background:transparent;color:#9fb5d4;font-size:15px;cursor:pointer}.manga-prompt-category:hover{background:#142846;color:#dceaff}.manga-prompt-category.active{border-color:#3184c7;background:#1b3b5e;color:#e5f2ff;box-shadow:inset 0 0 0 1px rgba(71,167,243,.18)}
.manga-prompt-editor{min-width:0;min-height:0;display:grid;align-content:start;gap:16px;padding-right:8px;overflow:auto}.manga-prompt-editor label{display:grid;gap:8px;color:#d4e3f7;font-size:13px;font-weight:600}.manga-prompt-editor input,.manga-prompt-editor select,.manga-prompt-editor textarea{width:100%;box-sizing:border-box;border:1px solid #315071;border-radius:9px;outline:none;background:#121f37;color:#e8f1ff;font:inherit;font-weight:500}.manga-prompt-editor input,.manga-prompt-editor select{height:44px;padding:0 14px}.manga-prompt-editor textarea{padding:14px 16px;resize:vertical;line-height:1.62}.manga-prompt-editor input:focus,.manga-prompt-editor select:focus,.manga-prompt-editor textarea:focus{border-color:#4aa9f2;box-shadow:0 0 0 2px rgba(74,169,242,.15)}
.manga-prompt-current>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px}.manga-prompt-current .small-button{min-width:114px;height:44px;border-radius:8px}.manga-prompt-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.manga-prompt-fields textarea{min-height:216px}.manga-prompt-preview textarea{min-height:250px;background:#111e35;color:#9eb7d8;resize:vertical}.manga-prompt-preview textarea[readonly]{cursor:default}
[data-theme="light"] .manga-prompt-dialog{border-color:#c3d5e8;background:#f8fbff}[data-theme="light"] .manga-prompt-header{border-color:#d5e1ee;background:#f2f7fd}[data-theme="light"] .manga-prompt-header h2{color:#1e2d43}[data-theme="light"] .manga-prompt-categories{border-color:#c7d7e8;background:#f2f6fb}[data-theme="light"] .manga-prompt-category{color:#62748d}[data-theme="light"] .manga-prompt-category:hover{background:#e9f2fb;color:#284768}[data-theme="light"] .manga-prompt-category.active{border-color:#6fb4ea;background:#e0f0fd;color:#245780}[data-theme="light"] .manga-prompt-editor label{color:#40536d}[data-theme="light"] .manga-prompt-editor input,[data-theme="light"] .manga-prompt-editor select,[data-theme="light"] .manga-prompt-editor textarea{border-color:#c4d5e7;background:#fff;color:#263850}[data-theme="light"] .manga-prompt-preview textarea{background:#f5f8fc;color:#526b8b}
@media(max-width:900px){.manga-prompt-modal{padding:12px}.manga-prompt-dialog{width:calc(100vw - 24px);height:calc(100vh - 24px)}.manga-prompt-header{align-items:flex-start;padding:12px 14px}.manga-prompt-header-actions{justify-content:flex-end;flex-wrap:wrap}.manga-prompt-header-actions button{min-height:34px;padding:0 11px}.manga-prompt-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:14px;padding:14px}.manga-prompt-categories{flex-direction:row;padding:8px;overflow-x:auto}.manga-prompt-category{min-width:112px;min-height:42px}.manga-prompt-fields{grid-template-columns:1fr}.manga-prompt-fields textarea{min-height:170px}.manga-prompt-preview textarea{min-height:190px}}

/* 参考客户端把提示词设置铺在右侧工作区，保留顶部品牌栏与左侧主导航。 */
.manga-prompt-modal{top:64px;left:230px;padding:10px 0 0;background:transparent;backdrop-filter:none;place-items:stretch}
.manga-prompt-dialog{width:100%;height:100%;border-radius:12px 0 0 0}
body:has(.sidebar.collapsed) .manga-prompt-modal{left:88px}
@media(max-width:900px){.manga-prompt-modal{padding:8px 0 0}.manga-prompt-dialog{width:100%;height:100%}}
@media(max-width:760px){.manga-prompt-modal{top:56px;left:88px}}
