/* 统一工作台：视频、报告、动图与浮层。只改变呈现，保留原有操作和内容。 */

/* 独立工作区使用同一张白色表单卡，画布由各模块自行呈现。 */
.analysis-workspace,
.gif-workspace {
  height: 100%;
  min-height: 0;
  min-width: 0;
  display: grid;
  grid-template-columns: 360px minmax(0, 1fr);
  gap: 20px;
}
.analysis-settings,
.gif-settings,
.vs-form {
  min-width: 0;
  min-height: 0;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgb(22 24 29 / 3%);
}
.analysis-scroll,
.gif-scroll,
.vs-form-scroll { padding: 22px; min-height: 0; }
.analysis-settings h2,
.gif-scroll h2,
.vs-form h1 { margin: 0 0 22px; font-size: 20px; line-height: 1.5; font-weight: 650; }
.analysis-settings label { margin: 20px 0 8px; }
.analysis-settings input,
.analysis-settings textarea,
.vs-field input:not([type=file]),
.vs-field textarea,
.vs-shot textarea,
.gif-workspace textarea,
.gif-workspace .field input[type=text],
.gif-workspace .field input:not([type]),
.vt-field input,
.vt-field textarea {
  min-height: 44px;
  padding: 10px 12px;
  background: var(--color-surface-muted);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  color: var(--color-text);
  font-size: 16px;
  line-height: 1.6;
}
.analysis-settings textarea,
.vs-field textarea,
.gif-workspace textarea { min-height: 110px; }
.analysis-settings :is(input,textarea):focus,
.vs-field :is(input,textarea):focus,
.vs-shot textarea:focus,
.gif-workspace textarea:focus,
.gif-workspace .field input:focus,
.vt-field :is(input,textarea):focus {
  outline: none;
  background: var(--color-surface);
  border-color: var(--color-brand);
  box-shadow: 0 0 0 3px var(--color-surface-muted);
}
.analysis-settings .analysis-submit,
.gif-submit,
.vs-form-footer {
  padding: 16px 22px;
  border-top: 1px solid var(--color-border);
  background: var(--color-surface);
  flex-shrink: 0;
}
.analysis-submit .primary,
.gif-submit > .primary,
.vs-form-footer > .primary,
.vt-form-footer .primary { min-height: 44px; padding: 9px 14px; }
.gif-submit-info,
.gif-help,
.analysis-settings small,
.vs-upload-hint,
.vs-upload-meta { font-size: 14px; line-height: 1.65; }
.gif-scroll h2 { margin-bottom: 8px; }
.gif-section { margin-top: 22px; padding-top: 22px; }
.vs-field { margin-bottom: 22px; }
.vs-field > label { margin-bottom: 8px; }
.vs-options button { min-height: 44px; padding: 9px 12px; font-size: 14px; border-color: var(--color-border); background: var(--color-surface); }
.vs-options button[aria-pressed=true] { border-color: rgb(var(--ink) / 60%); }
.gif-upload,
.vs-upload,
.vt-upload { padding: 22px 14px; border: 1px dashed var(--color-border); border-radius: 8px; background: var(--color-surface-muted); }
.gif-upload:has(.wake-input-image) { padding: 12px; }
.wake-input-image { height: 160px; background: var(--color-surface); border-radius: 6px; }

/* 视频同款：完整封面与就近操作组成一致的作品卡片。 */
.workspace.video-template-workspace,
.workspace.video-skill-workspace { grid-template-columns: minmax(0, 1fr); gap: 0; }
.video-template-workspace > .canvas {
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.vt-gallery,
.vt-editor { min-width: 0; }
.vt-gallery-heading { padding: 20px 22px; margin: 0; border: 1px solid var(--color-border); border-bottom: 0; border-radius: 12px 12px 0 0; background: var(--color-surface); }
.vt-gallery h1,
.vt-editor h1 { font-size: 22px; font-weight: 650; }
.vt-gallery-heading input { width: min(270px, 42%); min-height: 44px; background: var(--color-surface-muted); }
.vt-filter-row { align-items: flex-start; margin: 0 0 20px; padding: 0 22px 20px; border: 1px solid var(--color-border); border-top: 0; border-radius: 0 0 12px 12px; background: var(--color-surface); }
.vt-filters { gap: 6px; }
.vt-filters button { min-height: 40px; padding: 8px 14px; border: 1px solid transparent; border-radius: 7px; font-size: 14px; background: var(--color-surface-muted); }
.vt-filters button[aria-pressed=true] { border-color: rgb(var(--ink) / 60%); background: var(--color-primary-soft); }
#vtCount { padding: 10px 0; }
.vt-grid { grid-template-columns: repeat(auto-fill, minmax(175px, 1fr)); gap: 20px; }
.vt-card { padding: 10px; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-surface); box-shadow: 0 1px 2px rgb(22 24 29 / 3%); }
.vt-preview { border-radius: 8px; }
.vt-poster { aspect-ratio: 9 / 13; background: var(--color-surface-muted); }
.vt-poster img,
.vt-poster video { object-fit: contain; }
.vt-card-heading { padding: 12px 2px 4px; gap: 6px; }
.vt-card-heading h3 { font-size: 16px; }
.vt-card-heading > span { font-size: 14px; }
.vt-use { width: 100%; min-height: 40px; margin-top: 6px; padding: 8px 12px; border: 1px solid var(--color-border); border-radius: 7px; color: var(--color-text-secondary); background: var(--color-surface); }
.vt-use:hover { border-color: var(--color-border-strong); background: var(--color-primary-soft); color: var(--color-primary); text-decoration: none; }
.vt-editor-heading { padding: 20px 22px; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-surface); margin-bottom: 20px; }
.vt-editor-body { grid-template-columns: minmax(200px, 270px) minmax(0, 1fr); gap: 20px; }
.vt-reference-pane { padding: 16px; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-surface); }
.vt-reference-pane video { max-height: 55dvh; background: var(--color-surface-muted); }
.vt-shot { border-radius: 12px; }
.vt-brief { border: 1px solid var(--color-border); border-radius: 10px; }

/* 视频技能内嵌页：外层只负责承载，不叠加第二个白框。 */
.video-skill-workspace > .canvas {
  height: 100%;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: hidden;
}
.video-skill-workspace #configure,
.video-skill-workspace #visual { height: 100%; min-height: 0; }
.vs-shell { height: 100%; grid-template-columns: 360px minmax(0, 1fr); gap: 20px; }
.video-skill-workspace .vs-shell:not(.vs-editor) { grid-template-columns: 360px minmax(0, 1fr); }
.vs-preview { padding: 22px; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-surface); }
.vs-preview-heading { gap: 12px; margin-bottom: 20px; }
.vs-preview h2 { font-size: 20px; }
.vs-stage { height: clamp(260px, calc(100dvh - 350px), 520px); gap: 18px; }
.vs-stage video { border-radius: 8px; background: var(--color-surface-muted); box-shadow: none; }
.vs-neighbor { width: 19%; max-width: 150px; border-radius: 8px; background: var(--color-surface-muted); }
.vs-preview-controls { gap: 18px; margin: 18px 0; }
.vs-preview-controls button { min-height: 44px; }
.vs-thumbnails { grid-template-columns: repeat(auto-fit, minmax(60px, 78px)); gap: 8px; }
.vs-thumbnails button { padding: 4px; border-radius: 8px; }
.vs-thumbnails img { height: 78px; border-radius: 4px; }
.vs-editor { grid-template-columns: minmax(0, 1fr) 270px; background: transparent; }
.vs-editor-content { padding: 22px; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-surface); }
.vs-editor-reference { padding: 22px; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-surface); }
.vs-editor-reference video { max-height: 380px; border-radius: 8px; }
.vs-editor-heading { align-items: flex-start; flex-wrap: wrap; gap: 16px; }
.vs-editor h1 { font-size: 22px; }
.vs-editor-actions { flex-wrap: wrap; }
.vs-shot { padding: 20px; border-radius: 10px; background: var(--color-surface); }
.vs-brief { border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface-muted); }

/* 竞品分析：报告拥有自己的白底容器，不再叠加画布留白。 */
.analysis-canvas { min-height: 0; padding: 0; background: transparent; }
.analysis-heading { margin-bottom: 20px; }
.analysis-heading h1 { font-size: 22px; }
.analysis-sheet { padding: 24px; border-radius: 12px; box-shadow: 0 1px 2px rgb(22 24 29 / 3%); }
.ar-report { border-radius: 12px; box-shadow: 0 1px 2px rgb(22 24 29 / 3%); }
.ar-report-header { padding: 24px 24px 0; gap: 16px; flex-wrap: wrap; }
.ar-report-header h2 { font-size: 24px; line-height: 1.4; }
.ar-header-actions { gap: 8px; }
.ar-header-actions .secondary { min-height: 44px; font-size: 14px; padding-inline: 12px; }
.ar-metrics { padding: 0 24px 24px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ar-metric { background: var(--color-surface-muted); border-color: var(--color-border); border-radius: 8px; padding: 16px; }
.ar-metric strong { font-size: 25px; }
.ar-tabs { padding: 0 24px; gap: 22px; }
.ar-tabs button { font-size: 14px; border-bottom-width: 2px; }
.ar-panel { padding: 24px; }
.ar-card { padding: 20px; border-radius: 8px; }
.ar-source { padding: 14px 24px; background: var(--color-surface-muted); }
.analysis-heading.ar-toolbar { padding: 14px 16px; margin-bottom: 16px; border: 1px solid var(--color-border); border-radius: 10px; background: var(--color-surface); }
.analysis-report-tools { flex-wrap: wrap; gap: 8px; }
.analysis-report-tools .secondary { font-size: 14px; padding-inline: 12px; }
.analysis-report-row { padding: 18px 0; gap: 16px; }
.analysis-mode { border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface-muted); }
.analysis-mode button { min-height: 40px; font-size: 14px; }
.ar-job { margin: 0; max-width: none; }
.ar-candidate { padding: 18px; }
.ar-summary { background: var(--color-surface-muted); border: 1px solid var(--color-border); }

/* 图片动画：画面完整显示，时间轴与动作清单同属一张内容卡。 */
.gif-workspace.gif-history { grid-template-columns: minmax(0, 1fr); }
.gif-canvas { min-height: 0; padding: 22px; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 12px; box-shadow: 0 1px 2px rgb(22 24 29 / 3%); }
.gif-heading { margin-bottom: 20px; }
.gif-heading > span { padding: 4px 10px; border: 1px solid var(--color-border); border-radius: 6px; background: var(--color-surface-muted); color: var(--color-text-secondary); }
.gif-player { height: clamp(280px, calc(100dvh - 292px), 600px); padding: 16px; border-color: var(--color-border); border-radius: 8px; background: var(--color-surface-muted); }
.gif-player video { border-radius: 4px; }
.gif-preview-controls { gap: 12px; }
.gif-preview-controls input { min-height: 24px; }
.gif-progress { background: var(--color-primary-soft); border-color: var(--color-border); border-radius: 8px; }
.gif-works { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; }
.gif-works article { border-radius: 10px; padding: 14px; }
.gif-works img { height: 200px; border-radius: 6px; background: var(--color-surface-muted); }
.wake-beats { gap: 0 20px; }
.wake-downloads { gap: 10px; }
.wake-downloads a { flex-wrap: wrap; gap: 4px; }
.wake-downloads small { margin-left: 4px; }

/* 所有操作浮层统一边框、标题栏和控件，保留 dialog 顶层行为。 */
:is(.layout-dialog,.layout-zoom,.cm-dialog,.vt-dialog,.ar-reader,.image-results-dialog,.production-wait) {
  border: 1px solid var(--color-border);
  border-radius: 14px;
  color: var(--color-text);
  background: var(--color-surface);
  box-shadow: 0 24px 72px rgb(18 20 25 / 22%);
}
:is(.layout-dialog,.layout-zoom,.cm-dialog,.vt-dialog,.ar-reader,.image-results-dialog,.production-wait)::backdrop { background: rgb(20 22 27 / 44%); }
.layout-dialog { width: min(1320px, calc(100vw - 48px)); height: min(850px, calc(100dvh - 48px)); }
.layout-dialog-header { padding: 22px 24px 18px; }
.layout-dialog-header h2,
.zoom-heading h2,
.vt-dialog-heading h2,
.image-results-header h2,
.cm-dialog h2 { font-size: 21px; font-weight: 650; }
.layout-tabs { gap: 6px; padding: 0 24px 18px; border-bottom: 1px solid var(--color-border); }
.layout-tab { min-height: 44px; padding: 8px 14px; border: 1px solid transparent; border-radius: 7px; font-size: 14px; background: var(--color-surface-muted); }
.layout-tab.active { border-color: rgb(var(--ink) / 60%); }
.layout-dialog-body { grid-template-columns: minmax(0, 1fr) 280px; }
.layout-gallery { background: var(--color-surface-muted); }
.layout-choices { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; padding: 20px; }
.layout-choice { border-radius: 9px; background: var(--color-surface); }
.layout-selection { padding: 20px 18px 0; background: var(--color-surface); }
.selected-layout-row { background: var(--color-surface-muted); border: 1px solid var(--color-border); border-radius: 8px; padding: 10px; }
.selected-layout-info strong { font-size: 14px; }
.selection-footer { padding-bottom: 18px; }
.layout-zoom { padding: 20px; }
.zoom-image-wrap { border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface-muted); }
.cm-dialog { padding: 24px; }
.cm-dialog-actions { padding-top: 18px; border-top: 1px solid var(--color-border); }
.production-wait { padding: 26px; }
.vt-dialog { width: min(1000px, calc(100vw - 48px)); height: min(820px, calc(100dvh - 48px)); }
.vt-dialog-heading { padding: 16px 22px; min-height: 76px; }
.vt-close { border: 1px solid var(--color-border); border-radius: 8px; width: 40px; height: 40px; font-size: 26px; }
.vt-dialog-body { grid-template-columns: minmax(0, 1fr) minmax(320px, 1.08fr); }
.vt-player-pane { padding: 22px; background: var(--color-surface-muted); }
.vt-player-pane .vt-video { background: var(--color-surface-muted); border-radius: 8px; }
.vt-player-pane p { margin-top: 14px; }
.vt-form-scroll { padding: 22px; }
.vt-form-footer { padding: 16px 22px; background: var(--color-surface); }
.vt-modes button { padding: 12px; border-radius: 8px; }
.vt-modes button[aria-pressed=true] { border-color: rgb(var(--ink) / 60%); }
.vt-more { padding-top: 4px; }
.vt-more summary { min-height: 40px; }
.ar-reader { padding: 0; background: var(--color-surface-muted); }
.ar-reader-toolbar { padding: 16px 22px; }
.ar-reader-body { padding: 24px; }
.ar-reader-body .ar-report { box-shadow: none; }
.ar-reader .ar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.image-results-dialog { width: min(1260px, calc(100vw - 48px)); max-width: none; max-height: calc(100dvh - 48px); padding: 0; overflow: hidden; background: var(--color-surface-muted); }
.image-results-dialog[open] { display: flex; flex-direction: column; }
.image-results-header,
.image-results-footer { padding: 18px 22px; flex-shrink: 0; border-color: var(--color-border); }
.image-results-header { align-items: flex-start; }
.image-results-header .secondary { flex-shrink: 0; }
.image-results-header p,
.image-results-footer p { font-size: 14px; }
.image-results-body { flex: 1; min-height: 0; max-height: none; padding: 22px; overflow: auto; }
.image-result-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.image-result-card { border-color: var(--color-border); border-radius: 10px; }
.image-result-picture { height: 280px; background: var(--color-surface-muted); }
.image-result-info { padding: 16px; }
.image-result-info h3 { font-size: 17px; }
.image-item-actions { gap: 8px; }
.image-results-dialog a.secondary { font-size: 14px; padding-inline: 12px; }
.select-control { border: 1px solid var(--color-border); background: var(--color-surface-muted); min-height: 44px; border-radius: 8px; padding: 10px 12px; font-size: 16px; }
.select-control:hover { background: var(--color-surface); border-color: var(--color-border-strong); }
.select-control[aria-expanded=true],
.select-control:focus-visible { border-color: var(--color-brand); box-shadow: 0 0 0 3px var(--color-surface-muted); }
.select-popup { padding: 6px; border: 1px solid var(--color-border); border-radius: 10px; box-shadow: 0 12px 32px rgb(22 24 29 / 14%); }
.select-option { min-height: 44px; padding: 10px 12px; border-radius: 6px; font-size: 16px; }

@media (min-width: 1600px) {
  .vt-grid { grid-template-columns: repeat(auto-fill, minmax(195px, 1fr)); }
  .ar-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
  .analysis-workspace,.gif-workspace,.vs-shell { grid-template-columns: 320px minmax(0, 1fr); }
  .video-skill-workspace .vs-shell:not(.vs-editor) { grid-template-columns: 320px minmax(0, 1fr); }
  .analysis-scroll,.gif-scroll,.vs-form-scroll { padding: 20px; }
  .vs-preview,.gif-canvas { padding: 20px; }
  .vs-editor { grid-template-columns: minmax(0, 1fr) 230px; }
  .vt-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 16px; }
  .vt-editor-body { grid-template-columns: 210px minmax(0, 1fr); }
  .vt-dialog { width: calc(100vw - 32px); }
  .ar-report-header,.ar-panel { padding: 20px; }
  .ar-report-header { padding-bottom: 0; }
  .ar-metrics { padding: 0 20px 20px; }
  .ar-tabs { padding: 0 20px; }
  .layout-dialog-body { grid-template-columns: minmax(0, 1fr) 250px; }
}
@media (max-width: 900px) {
  .analysis-workspace,.gif-workspace { height: auto; grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .analysis-settings,.gif-settings,.vs-form { overflow: visible; }
  .analysis-scroll,.gif-scroll,.vs-form-scroll { overflow: visible; flex: none; }
  .analysis-canvas,.gif-canvas { overflow: visible; min-height: 0; }
  .analysis-settings .analysis-submit,.gif-submit,.vs-form-footer { border-radius: 0 0 12px 12px; }
  .workspace.video-skill-workspace,.video-skill-workspace > .canvas,.video-skill-workspace #configure,.video-skill-workspace #visual { height: auto; overflow: visible; }
  .vs-shell { height: auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .video-skill-workspace .vs-shell:not(.vs-editor) { grid-template-columns: minmax(0, 1fr); }
  .vs-preview { overflow: visible; }
  .vs-stage { height: min(460px, 58dvh); min-height: 260px; }
  .vs-thumbnails { grid-template-columns: repeat(auto-fit, minmax(58px, 76px)); }
  .vs-editor-content,.vs-editor-reference { overflow: visible; }
  .vs-editor-reference { order: 0; }
  .vs-editor-reference video { display: block; height: 300px; max-height: 50dvh; margin-inline: auto; }
  .vs-form-footer { position: static; }
  .vt-editor-body { grid-template-columns: minmax(0, 1fr); }
  .vt-reference-pane { position: static; display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 16px; }
  .vt-reference-pane video { grid-row: 1 / 3; max-height: 300px; }
  .vt-reference-caption { display: block; margin: 0; }
  .vt-reference-caption span { display: block; margin-top: 8px; }
  .vt-editor-assets { align-content: start; margin: 0; }
  .gif-player { height: min(500px, 64dvh); min-height: 280px; }
  .gif-submit { position: static; }
  .ar-grid,.ar-reader .ar-grid { grid-template-columns: minmax(0, 1fr); }
  .layout-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 16px; }
}
@media (max-width: 760px) {
  .vt-gallery-heading { align-items: flex-start; flex-wrap: wrap; padding: 18px; }
  .vt-gallery-heading input { width: 100%; }
  .vt-filter-row { align-items: flex-start; padding: 0 18px 18px; gap: 10px; flex-wrap: wrap; }
  .vt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .vt-card { padding: 8px; }
  .vt-card-heading { flex-wrap: wrap; }
  .vt-card-heading h3 { white-space: normal; }
  .vt-poster { aspect-ratio: 9 / 14; }
  .vt-editor-heading { padding: 18px; }
  .vt-dialog { width: calc(100vw - 20px); height: calc(100dvh - 20px); }
  .vt-dialog-heading { padding: 14px 18px; min-height: 70px; }
  .vt-dialog-body { display: block; overflow: auto; }
  .vt-player-pane { height: 300px; padding: 16px; }
  .vt-player-pane p { display: block; margin-top: 8px; }
  .vt-form { border-left: 0; border-top: 1px solid var(--color-border); }
  .vt-form-scroll { padding: 18px; overflow: visible; }
  .vt-form-footer { position: sticky; bottom: 0; z-index: 1; padding: 14px 18px; }
  .vt-modes { flex-wrap: wrap; }
  .vt-modes button { min-width: 140px; }
  .gif-heading { flex-wrap: wrap; }
  .gif-preview-controls { flex-wrap: wrap; }
  .gif-preview-controls input { order: 3; flex-basis: 100%; }
  .wake-beats { grid-template-columns: minmax(0, 1fr); }
  .wake-downloads a { flex: 1 1 150px; }
  .ar-report-header h2 { font-size: 22px; }
  .ar-card { padding: 16px; }
  .ar-source { padding: 14px 20px; }
  .ar-reader { width: calc(100vw - 20px); height: calc(100dvh - 20px); }
  .ar-reader-toolbar { padding: 14px 16px; flex-wrap: wrap; }
  .ar-reader-toolbar > div { gap: 8px; justify-content: flex-start; }
  .ar-reader-body { padding: 12px; }
  .layout-dialog { width: calc(100vw - 20px); height: calc(100dvh - 20px); }
  .layout-dialog-header { padding: 18px 16px 14px; }
  .layout-tabs { flex-wrap: nowrap; overflow-x: auto; padding: 0 16px 14px; }
  .layout-tab { flex-shrink: 0; }
  .layout-dialog-body { display: flex; flex-direction: column; }
  .layout-gallery { flex: 1; min-height: 0; }
  .layout-selection { padding: 14px 16px 0; border-left: 0; border-top: 1px solid var(--color-border); }
  .layout-selection .selection-heading { display: flex; }
  .layout-selection .selection-help { display: block; margin: 8px 0; }
  .layout-selection .selected-layouts { display: flex; gap: 10px; overflow-x: auto; max-height: 98px; }
  .selected-layout-row { min-width: 195px; margin: 0; flex-shrink: 0; }
  .selection-footer { display: flex; align-items: center; gap: 12px; padding: 12px 0 14px; }
  .selection-footer .primary { flex: 1; width: auto; margin-top: 0; }
  .selection-footer > span { max-width: 45%; }
  .layout-zoom { width: calc(100vw - 20px); height: calc(100dvh - 20px); padding: 14px; }
  .image-results-dialog { width: calc(100vw - 20px); max-width: none; max-height: calc(100dvh - 20px); }
  .image-results-header,.image-results-footer { padding: 16px; gap: 12px; }
  .image-results-body { padding: 16px; }
  .image-result-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .image-result-picture { height: 300px; }
  .image-results-footer > div { gap: 8px; }
  .cm-dialog { padding: 20px; }
}
@media print {
  .analysis-workspace { height: auto; display: block; }
  .analysis-canvas { overflow: visible; padding: 0; }
  .ar-report,.analysis-sheet { border: 0; box-shadow: none; border-radius: 0; }
  .ar-report-header,.ar-panel { padding: 0; }
  .ar-metrics { padding: 0; }
  .ar-grid { display: block; }
  .ar-reader { border: 0; border-radius: 0; box-shadow: none; }
  .ar-reader-body { padding: 0; }
}

/* 小屏的「设置 / 预览」由工作台顶栏切换；无表单的历史和编辑页不受影响。 */
@media (max-width: 760px) {
  /* 视频技能的表单也在旧画布内，设置页需要保留这个承载层。 */
  body.wb-has-form[data-workbench-view=settings] #workspace.video-skill-workspace > .canvas { display: block; }
  body.wb-has-form[data-workbench-view=settings] :is(.analysis-canvas,.gif-canvas,.vs-preview) { display: none !important; }
  body.wb-has-form[data-workbench-view=preview] :is(.analysis-settings,.gif-settings,.vs-form) { display: none !important; }
}

/* Bound the image grid track so portrait files cannot overflow onto their captions. */
.image-result-picture{grid-template-rows:minmax(0,1fr);overflow:hidden}
.image-result-picture a{min-height:0;min-width:0}
.image-results-dialog a.secondary{color:var(--color-text-secondary);border:1px solid var(--color-border);background:var(--color-surface)}
.analysis-workspace.wb-history-view{grid-template-columns:minmax(0,1fr)}
.analysis-workspace.wb-history-view .analysis-settings{display:none}

/* 2026-10-18 第一期 B：成图状态标签；会再次扣额度的“重做这张”降为次要操作。 */
.image-result-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;color:var(--color-text-muted)}
.image-status{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:5px;font-size:14px;font-weight:600;line-height:1}
.image-status.is-ok{background:rgb(80 200 120 / 12%);color:#6fd08c}
.image-status.is-warn{background:var(--color-surface-muted);color:#fff}
.image-status.is-bad{background:rgb(255 92 80 / 12%);color:#ff7a72}
.image-status.is-busy{background:var(--color-surface-muted);color:var(--color-text-secondary)}
.image-item-actions .image-redo{color:var(--color-text-secondary)}
.image-item-actions .image-redo:hover:not(:disabled){color:var(--color-primary)}

/* 2026-10-18 第一期 B：作品库改为大图网格，成图在前、方案在后。 */
.image-generated-library{margin-bottom:28px}
.image-generated-library>h2,.work-section-title{margin:0 0 14px;font-size:18px;font-weight:650}
.image-work-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.image-work-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface)}
.image-work-cover{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:1;padding:0;border:0;background:var(--color-surface-muted);color:var(--color-text-muted);font:inherit;cursor:pointer}
.image-work-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .2s}
.image-work-cover:hover img{transform:scale(1.02)}
.image-work-cover:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}
.image-work-count{position:absolute;right:8px;bottom:8px;padding:2px 8px;border-radius:5px;background:rgb(34 38 44 / 72%);color:#fff;font-size:14px}
.image-work-info{display:grid;gap:4px;padding:12px 14px 14px}
.image-work-info h3{margin:0;overflow:hidden;font-size:16px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
.image-work-info p{margin:0;color:var(--color-text-muted);font-size:14px}
.work-empty{margin:0;padding:14px 16px;border:1px dashed var(--color-border);border-radius:10px;color:var(--color-text-muted);font-size:14px}
@media (prefers-reduced-motion:reduce){.image-work-cover img{transition:none}}
@media (max-width:600px){.image-work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}

/* 2026-10-18 第一期 B：视频技能示例去掉被裁成半截的相邻封面（下方缩略图已可切换），
   播放器略降高度，让缩略图和名称完整显示在卡片内。 */
@media (min-width:801px){
 .vs-stage .vs-neighbor{display:none}
 .vs-stage{height:clamp(260px,calc(100dvh - 410px),620px)}
}

/* 2026-10-18 第一期 B：每类正好 4 个版式，桌面端排成 2×2，尺寸按弹窗高度放得下，避免第二行只剩一张。 */
@media (min-width:1101px){
 .layout-choices{grid-template-columns:repeat(2,minmax(0,calc((100dvh - 440px) / 2)));justify-content:center}
}
/* 2026-10-28 每个版式样图下写版式名和一句说明（用户：要看得懂每张图是什么类型）。 */
.layout-choice-name{display:block;padding:8px 10px 10px;text-align:left;background:var(--color-surface)}
.layout-choice-name strong{display:block;font-size:14px;font-weight:600;color:var(--color-text)}
.layout-choice-name span{display:block;margin-top:2px;font-size:12px;line-height:1.5;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 2026-10-18 A+ 模块资料：售后、使用指南、参数等模块的专属填写栏 */
.cm-fact-hint{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 16px;padding:10px 14px;border-radius:8px;background:var(--color-primary-soft);color:var(--color-text);font-size:14px}
.cm-upload-label .cm-upload-title{font-size:inherit;font-weight:600;color:var(--color-text)}
.cm-upload-label .required-mark{font-size:inherit;color:var(--color-required);font-weight:600}

/* 2026-10-18 A+、复刻、服饰方案改为弹窗：背景保持示例画面，弹窗只放方案 */
.cm-plan-dialog,.suite-plan-dialog{width:min(960px,calc(100vw - 32px));max-height:min(860px,calc(100dvh - 48px));padding:0;border:0;border-radius:var(--radius-panel);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-floating);overflow:hidden}
.cm-plan-dialog[open],.suite-plan-dialog[open]:not(.hidden){display:flex;flex-direction:column}
.cm-plan-dialog::backdrop,.suite-plan-dialog::backdrop{background:rgb(20 22 27 / 44%)}
.cm-plan-dialog-head,.suite-plan-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid var(--color-border)}
.cm-plan-dialog-head h2,.suite-plan-head h2{margin:0;font-size:var(--font-size-section);font-weight:var(--font-weight-heading)}
.cm-plan-close,.suite-plan-close{width:36px;height:36px;min-height:36px;padding:0;border:0;border-radius:var(--radius-control);background:transparent;color:var(--color-text-secondary);font-size:24px;line-height:1;cursor:pointer}
.cm-plan-close:hover,.suite-plan-close:hover{background:var(--color-surface-muted);color:var(--color-text)}
.cm-plan-dialog-body,.suite-plan-body{flex:1 1 auto;min-height:0;overflow:auto;padding:20px 24px;background:var(--color-page)}
.cm-plan-dialog-body .cm-plan-card{margin-bottom:16px}
.cm-plan-dialog-body .cm-plan-card:last-child{margin-bottom:0}
.cm-plan-dialog-foot,.suite-plan-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 24px;border-top:1px solid var(--color-border);background:var(--color-surface)}
.cm-plan-dialog-actions,.suite-plan-actions{display:flex;gap:12px;flex-wrap:wrap}
.cm-plan-notice{margin:0 0 16px;padding:12px 16px;border-radius:var(--radius-control);background:var(--color-primary-soft);font-size:15px;color:var(--color-text)}
.cm-plan-notice p{margin:0}
.cm-plan-notice p+p,.cm-plan-notice ul{margin-top:6px}
.cm-plan-notice ul{margin-bottom:0;padding-left:20px}
.cm-plan-notice .textbtn{margin-top:6px}
@media(max-width:800px){.cm-plan-dialog,.suite-plan-dialog{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;border-radius:0}.cm-plan-dialog-head,.cm-plan-dialog-body,.cm-plan-dialog-foot,.suite-plan-head,.suite-plan-body,.suite-plan-foot{padding-left:16px;padding-right:16px}}
/* 商品套图、口播方案弹窗沿用上面的弹窗样式 */
.suite-plan-dialog.hidden{display:none}
.suite-plan-body .plancard{margin-bottom:16px}
.suite-plan-body #planlist>.plancard:last-child{margin-bottom:0}
.suite-plan-body .listing-draft{margin-top:16px}
