﻿:root {
  color-scheme: light;
  --bg: #fbfcfd;
  --panel: #ffffff;
  --panel-soft: #f7f8fb;
  --text: #1f2630;
  --muted: #6f7887;
  --line: #e3e7ed;
  --brand: #6658e8;
  --brand-dark: #5143ce;
  --brand-soft: #eeecff;
  --green: #258456;
  --green-soft: #eaf7f0;
  --orange: #b86714;
  --orange-soft: #fff3e6;
  --yellow: #8b6914;
  --yellow-soft: #fff8d6;
  --red: #c84646;
  --red-soft: #fff0f0;
  --blue: #3174c9;
  --blue-soft: #eaf3ff;
  --shadow: 0 12px 32px rgba(31, 38, 48, .08);
  --font-min: 12px;
  --font-note: 13px;
  --font-body: 14px;
  --font-section: 16px;
  --font-tagline: 18px;
  --font-record-title: 20px;
  --font-page-title: 24px;
  font-family: Inter, "Microsoft YaHei", "PingFang SC", system-ui, sans-serif;
}

/* 首次使用引导：聚焦当前动作，保留页面原貌，不替用户执行任何业务操作。 */
body.onboarding-open { overflow: hidden; }
.onboarding-tour[hidden] { display: none !important; }
.onboarding-tour {
  position: fixed;
  inset: 0;
  z-index: 10000;
  overflow: hidden;
  font-family: var(--ui-font, "Microsoft YaHei UI", "Microsoft YaHei", sans-serif);
}
.onboarding-spotlight {
  position: fixed;
  border: 2px solid rgba(255, 255, 255, .96);
  border-radius: 13px;
  box-shadow: 0 0 0 9999px rgba(18, 23, 32, .70), 0 8px 28px rgba(18, 23, 32, .28);
  pointer-events: none;
  transition: top .2s ease, left .2s ease, width .2s ease, height .2s ease;
}
.onboarding-card {
  position: fixed;
  z-index: 10001;
  width: min(370px, calc(100vw - 32px));
  margin: 0;
  padding: 22px;
  color: var(--text);
  background: #fff;
  border: 1px solid rgba(227, 231, 237, .95);
  border-radius: 14px;
  box-shadow: 0 22px 60px rgba(12, 18, 28, .28);
}
.onboarding-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  color: var(--muted);
  background: transparent;
  font-size: 22px;
  line-height: 30px;
  cursor: pointer;
}
.onboarding-close:hover { color: var(--text); background: var(--panel-soft); }
.onboarding-eyebrow {
  margin: 0 36px 7px 0;
  color: var(--brand);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
}
.onboarding-card h2 { margin: 0 34px 9px 0; font-size: 21px; line-height: 1.35; }
.onboarding-body { margin: 0; color: #596273; font-size: 14px; line-height: 1.75; }
.onboarding-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 20px;
  padding-top: 15px;
  border-top: 1px solid var(--line);
}
.onboarding-progress { flex: 0 0 auto; color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.onboarding-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.onboarding-text-button,
.onboarding-step-button {
  min-height: 34px;
  padding: 7px 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  font: inherit;
  font-size: 13px;
  font-weight: 650;
  cursor: pointer;
}
.onboarding-text-button { color: var(--muted); background: transparent; }
.onboarding-text-button:hover { color: var(--text); background: var(--panel-soft); }
.onboarding-step-button.secondary { color: var(--text); border-color: var(--line); background: #fff; }
.onboarding-step-button.primary { color: #fff; border-color: var(--brand); background: var(--brand); }
.onboarding-step-button.primary:hover { background: var(--brand-dark); }
.onboarding-step-button:disabled { visibility: hidden; }
.onboarding-card.onboarding-mobile {
  top: auto !important;
  right: 12px !important;
  bottom: 12px !important;
  left: 12px !important;
  width: auto;
  padding: 18px;
}
@media (max-width: 760px) {
  .top-actions { flex-wrap: wrap; justify-content: flex-end; }
  .onboarding-footer { align-items: flex-end; }
  .onboarding-actions { flex-wrap: wrap; }
  .onboarding-text-button { display: none; }
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { min-height: 100%; overflow-x: auto; overflow-y: auto; scrollbar-gutter: stable; }
body { margin: 0; color: var(--text); background: var(--bg); }
.desktop-horizontal-scroll { display:none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid rgba(102, 88, 232, .2); outline-offset: 1px; }

.app-shell { min-width:0; min-height: 100vh; display: grid; grid-template-columns: 120px minmax(0, 1fr); }
.sidebar {
  position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column;
  padding: 22px 10px 16px; color: #f6f7fb; background: #1d2230;
}
.brand { display: flex; align-items: center; gap: 6px; padding: 0 2px 24px; }
.brand-mark { width: 28px; height: 28px; flex:0 0 28px; display: grid; place-items: center; border-radius: 8px; background: linear-gradient(135deg, #8175ff, #5a4bd5); font-size:15px; font-weight: 700; }
.brand-copy { display: grid; gap: 2px; }
.brand-copy strong { font-size: 12px; white-space:nowrap; }
.brand-copy small { color: #9fa8bb; font-size: 8px; line-height:1.25; white-space:nowrap; }
.main-nav { display: grid; gap: 6px; }
.nav-item, .product-intro-nav {
  width: 100%; display: flex; align-items: center; gap: 7px; padding: 11px 8px 11px 12px; border: 0; border-radius: 9px;
  color: #aeb7c9; background: transparent; cursor: pointer; text-align: left; text-decoration: none;
}
.nav-item:hover, .product-intro-nav:hover { color: #fff; background: rgba(255,255,255,.06); }
.nav-item.active { color: #fff; background: rgba(129,117,255,.2); }
.nav-item > span:first-child, .product-intro-nav > span:first-child {
  width: 14px; height: 21px; display: inline-flex; align-items: center; justify-content: center;
  flex: 0 0 14px; font-size: 14px; line-height: 21px; text-align: center;
}
/* Unicode 图标的字面字号相同但实际墨迹尺寸不同；以“工作台”方格图标为视觉基准校正。 */
.nav-item[data-view="dashboard"] > span:first-child,
.nav-item[data-view="schedule"] > span:first-child { font-size:14px; }
.nav-item[data-view="inspiration"] > span:first-child { font-size:11px; }
.nav-item[data-view="topics"] > span:first-child { font-size:24px; }
.nav-item[data-view="studio"] > span:first-child { font-size:14px; }
.nav-item[data-view="review"] > span:first-child { font-size:16px; }
.nav-item[data-view="assets"] > span:first-child { font-size:24px; }
.nav-item[data-view="settings"] > span:first-child { font-size:14px; }
.nav-item[data-view="versions"] > span:first-child { font-size:14px; }
.nav-item.requires-login { position:relative; }
.nav-item.requires-login::after { content:"\1F512"; position:absolute; right:7px; top:50%; opacity:.65; font-size:10px; line-height:1; filter:grayscale(1); transform:translateY(-50%); }

.guest-dashboard-card { min-height:300px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:22px; padding:36px; border:1px solid var(--line); border-radius:18px; background:linear-gradient(135deg,#f4f1ff 0%,#fff 62%); box-shadow:0 12px 34px rgba(47,39,116,.06); }
.guest-dashboard-mark { width:62px; height:62px; display:grid; place-items:center; border-radius:18px; color:#fff; background:linear-gradient(145deg,#7464ef,#5847d8); font-size:30px; font-weight:800; box-shadow:0 10px 24px rgba(91,72,220,.24); }
.guest-dashboard-copy { min-width:0; }
.guest-dashboard-copy p { margin:0 0 8px; color:var(--brand); font-size:12px; font-weight:800; letter-spacing:.14em; }
.guest-dashboard-copy h2 { margin:0 0 10px; font-size:24px; line-height:1.35; }
.guest-dashboard-copy span { color:var(--muted); font-size:14px; line-height:1.75; }
.guest-dashboard-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; max-width:310px; }
@media (max-width:900px) { .guest-dashboard-card { grid-template-columns:auto 1fr; } .guest-dashboard-actions { grid-column:1 / -1; justify-content:flex-start; max-width:none; } }
@media (max-width:560px) { .guest-dashboard-card { grid-template-columns:1fr; padding:24px; } .guest-dashboard-mark { width:50px; height:50px; } }

.workspace-mode-banner { min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:14px; width:100%; margin:0 0 12px; padding:7px 10px 7px 12px; border:1px solid #edc9c9; border-radius:10px; background:linear-gradient(90deg,rgba(255,240,240,.9),#fff 72%); color:#744f55; }
.workspace-mode-banner[hidden] { display:none !important; }
.workspace-mode-copy { min-width:0; display:flex; align-items:center; gap:10px; }
.workspace-mode-actions { flex:0 0 auto; display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.workspace-mode-banner strong { flex:0 0 auto; padding:4px 8px; border-radius:999px; color:var(--red); background:var(--red-soft); font-size:12px; }
.workspace-mode-banner span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.workspace-mode-banner:not(.is-mine) .button { border-color:#edc9c9; color:#a43f46; background:#fffafa; }
.workspace-mode-banner:not(.is-mine) .button:hover { border-color:#dca8a8; background:#fff0f0; }
.workspace-mode-banner.is-mine { border-color:#dce5e0; background:#f8fbf9; }
.workspace-mode-banner.is-mine strong { color:#147a4b; background:#e5f5ec; }
@media (max-width:680px) { .workspace-mode-banner { align-items:flex-start; flex-direction:column; } .workspace-mode-copy { align-items:flex-start; flex-direction:column; gap:5px; } .workspace-mode-actions { width:100%; justify-content:flex-end; } .workspace-mode-banner span { white-space:normal; } }
.sidebar-footer { margin-top: auto; display: grid; gap: 6px; }
.sidebar-personal-settings { min-height: 38px; }
.sidebar-version { width: 100%; display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 7px; padding: 10px; border: 0; border-radius: 0; color: #f4f6fb; background: transparent; box-shadow: none; cursor: pointer; text-align: left; transition: opacity .16s ease; }
.sidebar-version:hover { background: transparent; box-shadow: none; opacity: .88; transform: none; }
.sidebar-version-mark { grid-row: 1 / 3; align-self: center; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 8px; color: #9f96ff; background: rgba(129,117,255,.14); font-size: 16px; }
.sidebar-version-meta { min-width: 0; display: grid; gap: 1px; }
.sidebar-version-meta small { color: #929caf; font-size: 11px; white-space: nowrap; }
.sidebar-version-meta strong { font-size: 12px; font-weight: 700; white-space: nowrap; }
.sidebar-version-link { display: flex; align-items: center; justify-content: space-between; color: #c8c3ff; font-size: 11px; }
.sidebar-version-link i { font-size: 15px; font-style: normal; line-height: 1; }

.sidebar-version-nav { margin-top: 0; }
.client-version-popover { position: fixed; z-index: 2147483647; width: 248px; padding: 14px; border: 1px solid #dedaff; border-radius: 12px; color: #1f2630; background: rgba(255,255,255,.98); box-shadow: 0 14px 34px rgba(22,27,45,.18); backdrop-filter: blur(12px); }
.client-version-popover::before { content: ""; position: absolute; top: 0; right: 100%; width: 7px; height: 100%; background: transparent; }
.client-version-popover[hidden] { display: none; }
.client-version-popover header { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.client-version-popover header strong { color: #1f2630; font-size: 14px; }
.client-version-popover header span { color: var(--brand); font-size: 11px; font-weight: 700; }
.client-version-popover dl { display: grid; gap: 7px; margin: 0 0 12px; }
.client-version-popover dl div { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.client-version-popover dt { color: #596273; font-size: 12px; }
.client-version-popover dd { margin: 0; color: #1f2630; font-size: 13px; font-weight: 700; }
.client-version-popover .button { width: 100%; justify-content: center; }
.client-version-popover .button[hidden] { display: none; }
.version-history-page { overflow: hidden; border: 1px solid var(--line); border-radius: var(--ui-radius,12px); background: var(--panel); box-shadow: var(--shadow); }
.version-history-page .version-history-current { margin: 14px 14px 0; }
.version-history-page .version-history-list { max-height: none; overflow: visible; }

.version-history-backdrop { z-index: 82; }
.version-history-modal { width: min(620px,100%); max-height: min(820px,calc(100vh - 32px)); padding: 0; overflow: hidden; }
.version-history-head { margin: 0; padding: 20px 20px 16px; border-bottom: 1px solid var(--line); background: linear-gradient(135deg,#f7f5ff 0%,#fff 72%); }
.version-history-head p:not(.eyebrow) { margin: 6px 0 0; color: var(--muted); font-size: 13px; }
.version-history-current { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 18px 20px 0; padding: 14px 16px; border: 1px solid #dedaff; border-radius: 12px; background: #f7f5ff; }
.version-history-current-meta { display: grid; gap: 2px; }
.version-history-current span { color: var(--brand); font-size: 12px; font-weight: 600; }
.version-history-current strong { font-size: 22px; letter-spacing: -.02em; }
.version-history-download { display: grid; justify-items: end; gap: 6px; }
.version-history-client-row { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.version-history-client-version { color: var(--muted) !important; font-size: 12px !important; font-weight: 500 !important; white-space: nowrap; }
.version-history-client-version strong { margin-left: 4px; color: var(--ink); font-size: 13px; letter-spacing: 0; }
.version-history-download-button { min-height: 38px; padding: 0 16px; border-radius: 9px; white-space: nowrap; text-decoration: none; }
.version-history-current time { color: var(--muted); font-size: 11px; }
.version-history-list { min-height:0; max-height:calc(min(820px,100vh - 32px) - 176px); overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
.version-history-entry { position: relative; display: grid; grid-template-columns: 18px minmax(0,1fr); gap: 10px; margin: 0; padding: 18px 20px 20px; }
.version-history-entry + .version-history-entry { border-top:1px solid #f0eef6; }
.version-history-entry::before { content: ""; position: absolute; top: 0; left: 28px; bottom: 0; width: 1px; background: #e3e0f3; }
.version-history-dot { z-index: 1; width: 9px; height: 9px; margin: 5px 0 0 4px; border: 2px solid #fff; border-radius: 50%; background: var(--brand); box-shadow: 0 0 0 3px #e7e3ff; }
.version-history-entry > div { min-width: 0; }
.version-history-entry header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.version-history-entry header strong { font-size: 14px; }
.version-history-entry header span { padding: 3px 7px; border-radius: 999px; color: var(--brand); background: #efedff; font-size: 11px; white-space: nowrap; }
.version-history-entry ul { margin: 10px 0 0; padding-left: 18px; color: #5d6674; font-size: 13px; line-height: 1.75; }
.version-history-entry.is-current { background:linear-gradient(90deg,rgba(102,88,232,.045),transparent 62%); }
.version-history-entry.is-current header span { color:#fff; background:var(--brand); }
@media(max-width:560px){
  .version-history-modal { max-height:calc(100vh - 16px); }
  .version-history-current { align-items:flex-start; flex-direction:column; gap:12px; margin:12px 14px 0; }
  .version-history-download { width:100%; justify-items:stretch; }
  .version-history-client-row { align-items: stretch; flex-direction: column; }
  .version-history-download-button { justify-content:center; }
  .version-history-list { max-height:calc(100vh - 174px); }
  .version-history-entry { padding:16px 14px 18px; }
  .version-history-entry::before { left:22px; }
  .version-history-entry header { align-items:flex-start; flex-direction:column; gap:6px; }
}

.main-area { min-width: 0; padding: 0 14px 40px; }
.topbar { min-height: 108px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.topbar h1, .view-intro h2 { margin: 3px 0 0; font-size: 24px; letter-spacing: -.02em; }
.page-header-copy { min-width: 0; flex: 1; }
.page-header-title-row { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.page-header-title-row h1 { flex: 0 0 auto; white-space: nowrap; }
.page-header-divider { align-self: center; width: 1px; height: 26px; margin: 0 2px; background: var(--line); }
.editable-page-tagline-group { min-width: 0; flex: 0 1 auto; display: flex; align-items: center; }
.editable-page-tagline { position: relative; width: var(--page-tagline-width, 180px); min-width: 0; max-width: 760px; flex: 0 1 auto; display: block; }
.page-header-tagline-input { box-sizing: border-box; width: 100%; border: 1px solid transparent; border-radius: 8px; padding: 2px 76px 2px 8px; color: #4b5361; background: transparent; outline: 0; font: inherit; font-size: 18px; font-weight: 600; letter-spacing: -.01em; text-overflow: ellipsis; transition: border-color .14s ease, background-color .14s ease, box-shadow .14s ease; }
.editable-page-tagline:hover .page-header-tagline-input { border-color: #ded9ce; background: rgba(255,253,248,.46); }
.editable-page-tagline .page-header-tagline-input:focus { border-color: var(--brand); background: #fff; box-shadow: 0 0 0 3px rgba(99,82,224,.09); }
.page-header-inline-hint { position: absolute; top: 50%; right: 10px; color: #8a8a7c; font-size: 12px; font-weight: 500; opacity: 0; pointer-events: none; transform: translateY(-50%); transition: opacity .14s ease; }
.editable-page-tagline:hover .page-header-inline-hint { opacity: 1; }
.editable-page-tagline:focus-within .page-header-inline-hint { opacity: 0; }
.page-header-reset-button { flex: 0 0 auto; margin-left: 2px; border: 0; padding: 4px 5px; color: #9198a3; background: transparent; cursor: pointer; font-size: 12px; white-space: nowrap; opacity: 0; visibility: hidden; pointer-events: none; transition: color .14s ease, opacity .14s ease; }
.editable-page-tagline-group:hover .page-header-reset-button:not([hidden]),
.editable-page-tagline-group:focus-within .page-header-reset-button:not([hidden]) { opacity: .55; visibility: visible; pointer-events: auto; }
.page-header-reset-button:hover, .page-header-reset-button:focus-visible { color: var(--brand); opacity: 1; }
.global-tooltip { position: fixed; z-index: 1400; display: none; width: max-content; max-width: min(320px,calc(100vw - 16px)); border: 1px solid rgba(255,255,255,.18); border-radius: 7px; padding: 6px 9px; color: #fff; background: rgba(39,45,56,.70); box-shadow: 0 6px 18px rgba(18,24,34,.14); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); pointer-events: none; font-size: 12px; font-weight: 500; line-height: 1.35; white-space: pre-line; opacity: 0; transition: opacity .12s ease; }
  .global-tooltip[data-tip-visible="1"] { opacity: 1; }
#globalTooltip:not([hidden]) { display: block; opacity: 1; }
.page-header-description { max-width: 820px; margin: 3px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.main-area:has(#scheduleView:not([hidden])) .page-header-description { max-width:none; }
.main-area:has(#scheduleView:not([hidden])) .topbar {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:18px auto auto;
  column-gap:20px;
  row-gap:0;
}
.main-area:has(#scheduleView:not([hidden])) .page-header-copy { display:contents; }
.main-area:has(#scheduleView:not([hidden])) .page-header-copy > .eyebrow { grid-column:1; grid-row:1; }
.main-area:has(#scheduleView:not([hidden])) .page-header-title-row { grid-column:1; grid-row:2; }
.main-area:has(#scheduleView:not([hidden])) .page-header-description { grid-column:1 / -1; grid-row:3; width:100%; }
.main-area:has(#scheduleView:not([hidden])) .topbar-side { grid-column:2; grid-row:1 / span 2; }
.eyebrow { margin: 0; color: var(--brand); font-size: 12px; font-weight: 700; letter-spacing: .16em; }
.top-actions { display: flex; align-items: center; gap: 10px; }
.date-label { color: var(--muted); font-size: 12px; }
.button { border: 1px solid transparent; border-radius: 9px; padding: 9px 14px; cursor: pointer; font-weight: 600; }
.button.primary { color: #fff; background: var(--brand); }
.button.primary:hover { background: var(--brand-dark); }
.button.secondary { border-color: var(--line); background: var(--panel); }
.button.secondary:hover { border-color: #cbd1da; background: var(--panel-soft); }
.button:disabled { opacity: .45; cursor: not-allowed; }
.button.is-validation-blocked {
  opacity: .58;
  cursor: pointer;
  filter: saturate(.72);
}
.button.is-validation-blocked:hover { opacity:.7; }
.icon-button { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); cursor: pointer; }
.text-button { border: 0; padding: 5px; background: transparent; cursor: pointer; }
.text-button.danger { color: var(--red); }

.view { display: none; }
.view.active { display: block; }
.topic-toolbar {
  position:sticky;
  z-index:12;
  top:0;
  min-height:44px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:12px;
  border-bottom:1px solid #e8ebf0;
  background:var(--bg);
  box-shadow:0 7px 13px -13px rgba(31,38,48,.28);
}
.topic-toolbar .muted { color: var(--muted); font-size: 12px; }
.topic-toolbar-right { min-width:0; display:flex; flex:0 1 auto; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px 12px; }
.topic-library-layout { display: grid; grid-template-columns: 300px minmax(0,1fr); gap: 16px; align-items: start; }
.topic-library-layout.list-mode { grid-template-columns: minmax(0,1fr); }
.topic-library-layout.list-mode .topic-workspace { min-height: 0; overflow: hidden; padding: 0; }
.topic-list, .topic-workspace { border: 1px solid var(--line); border-radius: 13px; background: var(--panel); box-shadow: var(--shadow); }
.topic-list { position: sticky; top: 60px; max-height: calc(100vh - 180px); overflow-y: auto; padding: 8px; }
.topic-list-item { width: 100%; display: grid; gap: 8px; border: 1px solid transparent; border-radius: 9px; padding: 12px; background: transparent; text-align: left; cursor: pointer; }
.topic-list-item:hover { background: var(--panel-soft); }
.topic-list-item.active { border-color: #d9d5ff; background: var(--brand-soft); }
.topic-list-item strong { font-size: 13px; line-height: 1.5; }
.topic-list-item > span { display: flex; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 12px; }
.topic-list-item i { font-style: normal; }
.topic-empty { padding: 42px 14px; color: var(--muted); font-size: 12px; text-align: center; }
.topic-workspace { min-height: 620px; padding: 20px; }
.topic-workspace-head { display: flex; align-items:flex-start; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.topic-workspace-head > div:first-child { flex:1 1 auto; min-width:0; }
.topic-workspace-head h2 { margin: 9px 0 4px; font-size: 20px; }
.topic-workspace-head p { margin: 0; color: var(--muted); font-size: 12px; }
.editable-topic-title-group { min-width:0; max-width:100%; display:flex; align-items:center; margin:9px 0 4px; }
.editable-topic-title { position:relative; display:block; width:min(100%,var(--topic-title-width,920px)); min-width:0; max-width:920px; flex:0 1 auto; }
.topic-title-input { box-sizing: border-box; width: 100%; min-width: 0; border: 1px solid transparent; border-radius: 8px; padding: 3px 78px 3px 8px; color: var(--ink); background: transparent; outline: 0; font: inherit; font-size: 20px; font-weight: 700; line-height: 1.4; letter-spacing: -.01em; text-overflow: ellipsis; transition: border-color .14s ease, background-color .14s ease, box-shadow .14s ease; }
.editable-topic-title:hover .topic-title-input { border-color: #ded9ce; background: rgba(255,253,248,.46); }
.editable-topic-title .topic-title-input:focus { border-color: var(--brand); background: #fff; box-shadow: 0 0 0 3px rgba(99,82,224,.09); }
.topic-title-inline-hint { position: absolute; top: 50%; right: 12px; color: #8b8b82; font-size: 13px; font-weight: 500; line-height: 1; opacity: 0; pointer-events: none; transform: translateY(-50%); transition: opacity .14s ease; }
.editable-topic-title:hover .topic-title-inline-hint { opacity: 1; }
.editable-topic-title:focus-within .topic-title-inline-hint { opacity: 0; }
.topic-title-reset-button { flex:0 0 auto; margin-left:2px; border:0; padding:4px 5px; color:#9198a3; background:transparent; cursor:pointer; font-size:12px; white-space:nowrap; opacity:0; visibility:hidden; pointer-events:none; transition:color .14s ease,opacity .14s ease; }
.editable-topic-title-group:hover .topic-title-reset-button:not([hidden]),
.editable-topic-title-group:focus-within .topic-title-reset-button:not([hidden]) { opacity:.55; visibility:visible; pointer-events:auto; }
.topic-title-reset-button:hover,.topic-title-reset-button:focus-visible { color:var(--brand); opacity:1; }
.topic-title-input.is-saving { color: #666b76; }
.topic-title-input.is-save-error { border-color: #df5b57; }
.benchmark-evidence { display: flex; align-items: stretch; justify-content: space-between; gap: 14px; margin: -2px 0 14px; padding: 10px 12px; border: 1px solid #dedafc; border-radius: 10px; background: #faf9ff; }
.benchmark-evidence.compact { margin: 0 0 10px; padding: 8px 11px; }
.benchmark-evidence-source { min-width: 0; display: grid; align-content: center; gap: 3px; }
.benchmark-evidence-source > span { color: var(--muted); font-size: 12px; }
.benchmark-evidence-source a, .benchmark-evidence-source strong { min-width: 0; overflow: hidden; color: #303744; font-size: 12px; font-weight: 650; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.benchmark-evidence-source a:hover { color: var(--brand); text-decoration: underline; text-underline-offset: 2px; }
.benchmark-evidence-source i { color: var(--brand); font-style: normal; font-weight: 500; }
.benchmark-metric-strip { flex: 0 0 auto; display: flex; align-items: stretch; overflow: hidden; border: 1px solid #e3e0f7; border-radius: 8px; background: #fff; }
.benchmark-interaction-zone { position:relative; display:flex; align-items:stretch; }
.benchmark-interaction-zone.is-refreshable { cursor:pointer; transition:background .12s ease; }
.benchmark-interaction-zone.is-refreshable:hover { background:var(--brand-soft); }
.benchmark-interaction-zone.is-refreshable:hover .benchmark-metrics-refresh { background:transparent; }
.benchmark-interaction-zone.is-syncing { min-height:48px; cursor:wait; }
.benchmark-interaction-zone.is-syncing > :not(.benchmark-sync-overlay) { visibility:hidden; }
.benchmark-interaction-zone .benchmark-sync-overlay { width:100%; border-radius:0; }
.benchmark-metrics-refresh { width:32px; flex:0 0 32px; display:grid; place-items:center; border:0; border-right:1px solid #eceaf5; padding:0; color:var(--brand); background:#faf9ff; cursor:pointer; font-size:18px; line-height:1; }
.benchmark-metrics-refresh:hover { background:var(--brand-soft); }
.benchmark-metrics-refresh:disabled { cursor:wait; opacity:.65; }
.benchmark-metrics-refresh.is-refreshing span { animation:spin .8s linear infinite; }
.benchmark-metric-strip > div:not(.benchmark-interaction-zone), .benchmark-interaction-zone > div { min-width: 58px; display: grid; place-items: start; align-content: center; gap: 2px; padding: 6px 9px; border-left: 1px solid #eceaf5; }
.benchmark-interaction-zone > div:first-of-type { border-left:0; }
.benchmark-metric-strip span { color: #8b92a0; font-size: 12px; }
.benchmark-metric-strip strong { color: #414956; font-size: 12px; font-weight: 600; }
.benchmark-metric-strip .benchmark-age strong { color: var(--brand); }
.inline-lineage-link { padding: 0; vertical-align: baseline; font-size: inherit; }
.topic-status-pill, .workflow-badge { display: inline-flex; border-radius: 999px; padding: 5px 8px; color: var(--brand); background: var(--brand-soft); font-size: 12px; font-weight: 600; }
.workflow-badge { align-self: flex-start; color: var(--green); background: var(--green-soft); }
.topic-definition { padding: 15px; border: 1px solid var(--line); border-radius: 11px; background: var(--panel-soft); }
.topic-two-columns, .topic-evaluation-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.evaluation-mode-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px 18px; margin:18px 0 12px; }
.evaluation-mode-row strong { font-size: 13px; }
.evaluation-mode-row p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.topic-evaluation-grid .field textarea { min-height: 86px; }
.topic-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; padding-top: 16px; border-top: 1px solid var(--line); }
.topic-table-wrap { width: 100%; overflow-x: auto; }
.topic-table { width: 100%; min-width: 920px; border-collapse: collapse; table-layout: fixed; }
.topic-table th, .topic-table td { padding: 12px 14px; border-bottom: 1px solid var(--line); color: #4a5260; font-size: 12px; line-height: 1.5; text-align: left; vertical-align: middle; }
.topic-table th { position: sticky; top: 0; z-index: 2; color: var(--muted); background: var(--panel-soft); font-weight: 600; }
.topic-table tbody tr { transition: background .15s ease; }
.topic-table tbody tr:hover { background: #faf9ff; }
.topic-table tbody tr:last-child td { border-bottom: 0; }
.topic-table td:first-child small { display: block; overflow: hidden; margin-top: 4px; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.topic-table th:first-child, .topic-table td:first-child { width: 31%; }
.topic-table th:nth-child(2), .topic-table td:nth-child(2) { width: 11%; }
.topic-table th:nth-child(3), .topic-table td:nth-child(3) { width: 12%; }
.topic-table th:nth-child(4), .topic-table td:nth-child(4) { width: 12%; }
.topic-table th:nth-child(5), .topic-table td:nth-child(5) { width: 12%; }
.topic-table th:nth-child(6), .topic-table td:nth-child(6) { width: 12%; }
.topic-table-title { max-width: 100%; overflow: hidden; border: 0; padding: 0; color: #222a37; background: transparent; cursor: pointer; font-size: 12px; font-weight: 700; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.topic-table-title:hover { color: var(--brand); }
.topic-table-source { display: inline-flex; border-radius: 999px; padding: 4px 7px; color: #596273; background: #f0f2f5; }
.topic-table-status { display: inline-flex; border-radius: 999px; padding: 4px 7px; color: var(--brand); background: var(--brand-soft); font-weight: 600; }
.topic-table-stage { color: var(--brand); font-weight: 650; }
.topic-table-empty { padding: 52px 16px !important; color: var(--muted) !important; text-align: center !important; }
.button.accent { background: var(--green); }
.studio-layout { display: grid; grid-template-columns: 260px minmax(0,1fr); gap: 16px; align-items: start; }
.studio-rail-switch,
.studio-rail-toggle,
.studio-rail-backdrop,
.topic-rail-switch,
.topic-rail-toggle,
.topic-rail-backdrop { display:none; }
.content-rail, .workbench { border: 1px solid var(--line); border-radius: 13px; background: var(--panel); box-shadow: var(--shadow); }
.content-rail { position:sticky; top:16px; overflow:hidden; }
.content-rail.candidate-overlay-open { overflow:visible; }
.rail-head { display: flex; justify-content: space-between; align-items: center; padding: 14px; border-bottom: 1px solid var(--line); }
.rail-head > div { display: grid; gap: 2px; }
.rail-head small { color: var(--muted); font-size: 12px; }
.rail-overlay-slot { position: relative; }
.candidate-slot { z-index: 6; }
.active-slot { z-index: 5; }
.rail-expandable { width: 100%; }
.rail-expandable.expanded { position: absolute; z-index: 10; top: 0; left: 0; overflow: hidden; border: 1px solid #d8d3ff; border-radius: 0 0 11px 11px; background: #fff; box-shadow: 0 18px 38px rgba(31,38,48,.2); }
.workflow-candidates { padding: 10px 8px 9px; border-bottom: 1px solid var(--line); background: #faf9ff; }
.workflow-candidates > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; padding: 0 4px 8px; }
.workflow-candidates > header > div { display: grid; gap: 2px; }
.workflow-candidates > header strong { color: #5145c9; font-size: 12px; }
.workflow-candidates > header small { color: var(--muted); font-size: 12px; }
.workflow-candidates > header .text-button { color: var(--brand); font-size: 12px; }
.workflow-candidate-list { display: grid; gap: 6px; overflow-y: auto; }
.workflow-candidates:not(.expanded) .workflow-candidate-card:nth-child(n+3) { display:none; }
.workflow-candidate-card { display: grid; gap: 7px; padding: 9px; border: 1px dashed #cfc9ff; border-radius: 9px; background: #fff; }
.workflow-candidate-title { overflow: hidden; border: 0; padding: 0; color: #2d3340; background: transparent; cursor: pointer; font-size: 12px; font-weight: 600; line-height: 1.45; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.workflow-candidate-title:hover { color: var(--brand); }
.workflow-candidate-card > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 12px; }
.candidate-join-button { color: #fff; border-color: var(--brand); background: var(--brand); }
.candidate-join-button:hover { background: var(--brand-dark); }
.rail-expand-button { width:calc(100% - 8px); display:block; margin:7px 4px 0; border:0; border-top:1px solid var(--line); padding:8px 4px 2px; color:var(--brand); background:transparent; cursor:pointer; font-size:12px; }
.rail-expand-button:hover { color:var(--brand-dark); }
.active-project-section { min-height:0; padding-bottom:1px; background:var(--panel); display:flex; flex-direction:column; overflow:hidden; }
.active-project-label { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 12px 0 14px; color: var(--muted); font-size: 12px; font-weight: 600; }
.active-project-label .text-button { color: var(--brand); font-size: 12px; font-weight: 500; }
.active-project-label.rail-tabs { gap: 0; padding: 6px 8px 0 8px; }
.rail-tab { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; background: transparent; border: 0; color: var(--muted); font-size: 12px; font-weight: 500; cursor: pointer; border-bottom: 2px solid transparent; transition: color 0.15s, border-color 0.15s; }
.rail-tab:hover { color: #1f1f24; }
.rail-tab.active { color: var(--brand); border-bottom-color: var(--brand); font-weight: 600; }
.rail-tab__count { display: inline-block; min-width: 18px; padding: 0 5px; border-radius: 999px; background: #e8eaf0; color: var(--muted); font-size: 12px; line-height: 16px; text-align: center; }
.rail-tab.active .rail-tab__count { background: var(--brand-soft); color: var(--brand); }
#activeProjectLabel { position:relative; }
#activeProjectLabel::before {
  content:"";
  position:absolute;
  z-index:1;
  top:9px;
  bottom:9px;
  left:50%;
  width:1px;
  background:#dfe3ea;
  transform:translateX(-.5px);
  pointer-events:none;
}
#activeProjectLabel .rail-tab {
  position:relative;
  flex:1 1 50%;
  justify-content:center;
  border-bottom:0;
}
#activeProjectLabel .rail-tab.active::after {
  content:"";
  position:absolute;
  right:auto;
  bottom:0;
  left:50%;
  width:104px;
  height:2px;
  background:var(--brand);
  transform:translateX(-50%);
}
.content-list {
  flex:1 1 auto;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  overflow-y:overlay;
  padding:8px;
  scrollbar-width:thin;
  scrollbar-color:#c9ced8 transparent;
}
.content-list::-webkit-scrollbar { width:5px; }
.content-list::-webkit-scrollbar-track { background:transparent; }
.content-list::-webkit-scrollbar-thumb { border-radius:999px; background:#c9ced8; }
.content-item { width: 100%; display: grid; gap: 7px; padding: 11px; border: 1px solid transparent; border-radius: 9px; background: transparent; cursor: pointer; text-align: left; }
.content-item:hover { background: var(--panel-soft); }
.content-item.active { border-color: #d9d5ff; background: var(--brand-soft); }
.content-item-title { overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; font-size:13px; font-weight:600; line-height:1.45; text-overflow:ellipsis; }
.content-item-meta { display: flex; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 12px; }
.mini-progress { height: 4px; overflow: hidden; border-radius: 999px; background: #e8eaf0; }
.mini-progress span { display: block; height: 100%; border-radius: inherit; background: var(--brand); }
.rail-empty { padding: 28px 12px; color: var(--muted); font-size: 12px; text-align: center; }

.workbench { min-height: 650px; overflow: hidden; }
.workbench-empty { min-height: 650px; display: grid; place-items: center; align-content: center; gap: 10px; padding: 40px; text-align: center; }
.workbench-empty h2, .workbench-empty p { margin: 0; }
.workbench-empty p { max-width: 440px; color: var(--muted); line-height: 1.7; }
.empty-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 16px; color: var(--brand); background: var(--brand-soft); font-size: 24px; }
.record-head { display:grid; grid-template-columns:minmax(0,1fr) max-content; grid-template-rows:auto auto; align-items:start; column-gap:18px; padding:18px 20px 14px; }
.record-head > div:first-child { display:contents; }
.record-head-actions, .asset-card-actions { display: flex; align-items: center; gap: 10px; }
.record-head-actions { grid-column:2; grid-row:1; align-self:start; }
.record-head h2 { grid-column:1 / -1; grid-row:2; min-width:0; margin:6px 0 0; font-size:20px; }
.record-meta { grid-column:1; grid-row:1; min-width:0; display:flex; align-items:center; gap:8px; color:var(--muted); font-size:12px; }
.status-pill { min-height:24px; display:inline-flex; align-items:center; padding: 4px 7px; border-radius: 999px; color: var(--brand); background: var(--brand-soft); line-height:1.35; }
#deleteContentButton { min-height:24px; display:inline-flex; flex:0 0 auto; align-items:center; justify-content:center; padding:4px 7px; line-height:1.35; white-space:nowrap; }

.stepper { display: grid; grid-template-columns: repeat(8, minmax(74px,1fr)); padding: 0 20px 16px; overflow-x: auto; }
.step-button { position: relative; display: grid; justify-items: center; gap: 6px; border: 0; padding: 0 4px; color: var(--muted); background: transparent; cursor: pointer; min-width: 78px; }
.step-button::before { content: ""; position: absolute; top: 13px; left: 0; right: 0; height: 2px; background: var(--line); z-index: 0; }
.step-button:first-child::before { left: 50%; }
.step-button:last-child::before { right: 50%; }
.step-dot { position: relative; z-index: 1; width: 27px; height: 27px; display: grid; place-items: center; border: 2px solid var(--line); border-radius: 50%; color: var(--muted); background: var(--panel); font-size: 14.3px; }
.step-button.done::before, .step-button.done .step-dot { border-color: var(--brand); background: var(--brand); color: #fff; }
.step-button.done::before { background: var(--brand); }
.step-button.active { color: var(--brand); font-weight: 600; }
.step-button.active .step-dot { border-color: var(--brand); color: var(--brand); box-shadow: 0 0 0 4px var(--brand-soft); }
.step-name { font-size: 12px; white-space: nowrap; }

.stage-area { min-height: 440px; padding: 20px; border-top: 1px solid var(--line); background: #fbfcfd; }
.stage-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 18px; }
.stage-heading h3 { margin: 0 0 5px; font-size: 18px; }
.stage-heading p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.review-ai-placeholder { display:inline-flex; cursor:not-allowed; }
.stage-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.stage-card { padding: 15px; border: 1px solid var(--line); border-radius: 11px; background: var(--panel); }
.stage-card h4 { margin: 0 0 12px; font-size: 14px; }
.stage-card.full { grid-column: 1 / -1; }
.field { display: grid; gap: 6px; margin-bottom: 12px; }
.inspiration-link-status {
  min-height: 18px;
  color: var(--muted);
  font-size: 12px;
  line-height: 18px;
}
.inspiration-link-status.is-saving { color: #b7791f; }
.inspiration-link-status.is-saved { color: #15803d; }
.inspiration-link-status.is-error { color: #dc2626; }
.field:last-child { margin-bottom: 0; }
.field > span, .field-label { color: #4e5765; font-size: 12px; font-weight: 600; }
.field-save-head { display: flex; min-height: 18px; align-items: center; justify-content: space-between; gap: 10px; }
.field-save-head > span:first-child { color: #4e5765; font-size: 12px; font-weight: 600; }
.field-save-status { margin-left: auto; color: #17855f !important; font-size: 12px !important; font-weight: 500 !important; white-space: nowrap; }
.field-save-status.hidden { display: none; }
.field-save-status.saving { color: var(--brand) !important; }
.field-save-status.error { color: #bd4545 !important; }
.field input, .field textarea, .field select, .block-textarea, .source-textarea {
  width: 100%; border: 1px solid var(--line); border-radius: 8px; padding: 9px 10px; color: var(--text); background: var(--panel);
}
.field textarea, .block-textarea, .source-textarea { resize: vertical; }
.field input, .field select { resize: none !important; }
.field textarea { min-height: 92px; }
.field input:focus, .field textarea:focus, .field select:focus, .block-textarea:focus, .source-textarea:focus { border-color: var(--brand); }
.hint { color: var(--muted); font-size: 12px; line-height: 1.55; }
/* 字段错误态:整片淡黄高亮 + 下方小字,温和不刺眼 */
.field.has-error { background: #fff8e1; border-radius: 8px; box-shadow: 6px 0 0 0 #fff8e1, -6px 0 0 0 #fff8e1; }
.field.has-error > input, .field.has-error > textarea, .field.has-error > select { background: #fffdf3; }
.field > .field-error { display: none; color: #8a6d3b; font-size: 12px !important; line-height: 1.4; margin-top: 2px; }
.field > .field-error.is-shown { display: block; }
.mode-toggle, .mode-choice, .segmented { display: inline-flex; gap: 4px; padding: 4px; border: 1px solid var(--line); border-radius: 9px; background: var(--panel-soft); }
.mode-toggle button, .mode-choice button, .segmented button { border: 0; border-radius: 6px; padding: 7px 10px; color: var(--muted); background: transparent; cursor: pointer; }
.mode-toggle button.active, .mode-choice button.active, .segmented button.active { color: #fff; background: var(--brand); }
.mode-toggle button:disabled { opacity: .55; cursor: not-allowed; }
.topic-workspace textarea:disabled { color: #747c89; background: #f6f7f9; cursor: not-allowed; }

.compare-header, .compare-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px; }
.compare-header { margin-bottom: 10px; }
.benchmark-column-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.benchmark-column-heading > div { display: grid; gap: 2px; min-width: 0; }
.script-column-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.script-column-heading > div { display: grid; gap: 2px; min-width: 0; }
.script-column-heading > .direct-reuse-choice { flex: 0 0 auto; display: grid; justify-items: start; gap: 5px; }
.script-column-heading > .direct-reuse-choice > strong { color: #9299a5; font-size: 13px; line-height: 1.2; font-weight: 500; }
.direct-reuse-toggle { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; color: #4f5967; cursor: pointer; font-size: 14px; line-height: 1.2; white-space: nowrap; }
.direct-reuse-toggle input { width: 16px; height: 16px; margin: 0; accent-color: var(--brand); cursor: pointer; }
.direct-reuse-toggle:hover span { color: var(--brand); }
.direct-reuse-summary { margin-bottom: 10px; padding: 18px 20px; border: 1px solid #d9d5ff; border-radius: 10px; background: #faf9ff; }
.direct-reuse-summary strong { display: block; margin-bottom: 5px; font-size: 16px; }
.direct-reuse-summary p { margin: 0; color: #515b69; font-size: 14px; line-height: 1.65; }
.direct-reuse-summary small { display: block; margin-top: 7px; color: var(--muted); font-size: 12px; }
.direct-reuse-diagnosis { display: grid; justify-items: start; gap: 8px; padding: 22px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); }
.direct-reuse-diagnosis strong { font-size: 16px; }
.direct-reuse-diagnosis p { max-width: 760px; margin: 0 0 6px; color: var(--muted); font-size: 14px; line-height: 1.7; }
.benchmark-deconstruct-button { flex: 0 0 auto; height: 32px; box-sizing: border-box; border: 1px solid #cec8ff; border-radius: 8px; padding: 0 9px; color: var(--brand); background: var(--brand-soft); cursor: pointer; font-size: 14px; font-weight: 650; }
.benchmark-deconstruct-button:hover, .benchmark-deconstruct-button[aria-expanded="true"] { color: #fff; background: var(--brand); }
.benchmark-column-heading > .benchmark-column-actions { flex: 0 0 auto; display: flex; grid-auto-flow: unset; align-items: center; gap: 6px; flex-wrap: nowrap; }
.benchmark-column-actions .benchmark-deconstruct-button { white-space: nowrap; }
.benchmark-full-copy-button { color: #626b7a; border-color: #d9dde5; background: #fff; font-weight: 500; }
.benchmark-full-copy-button:hover { color: #3f4653; border-color: #cbd0d8; background: #f7f8fa; }
.benchmark-full-copy-button:disabled { color: #a0a6b0; border-color: var(--line); background: #f6f7f9; cursor: not-allowed; }
.compare-column-title { padding: 10px 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--panel); }
.compare-column-title strong { display: block; font-size: 13px; }
.compare-column-title small { color: var(--muted); font-size: 12px; }
.compare-column-title small em { color: #8c93a0; font-style: normal; font-weight: 500; }
.compare-row { margin-bottom: 10px; }
.compare-block { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); }
.compare-block-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 7px; }
.compare-block-head strong { font-size: 12px; }
.compare-block-label-group { min-width: 0; display: inline-flex; align-items: center; gap: 8px; }
.compare-block-head .benchmark-title-origin { overflow: hidden; color: var(--muted); font-size: 12px; font-weight: 400; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.compare-block-head span { color: var(--muted); font-size: 12px; }
.compare-block-head .copy-block-meta { display: inline-flex; align-items: center; gap: 8px; }
.copy-block-meta i, .copy-block-meta em { font-style: normal; font-weight: 400; }
.copy-block-meta em { color: #989eaa; }
.compare-block-head .field-save-meta { display: inline-flex; align-items: center; gap: 10px; margin-left: auto; }
.compare-block-head .field-save-meta > .field-save-status { width: 92px; flex: 0 0 92px; margin-left: 0; text-align: right; }
.source-textarea { min-height: 82px; color: #4f5967; background: var(--panel-soft); }
.block-textarea { min-height: 82px; }
.compare-row-title .source-textarea, .compare-row-title .block-textarea { min-height: 64px; height: 64px; }
.compare-row-hook .source-textarea, .compare-row-hook .block-textarea { min-height: 108px; height: 108px; }
.compare-row-body .source-textarea, .compare-row-body .block-textarea { min-height: clamp(280px, 38vh, 460px); height: clamp(280px, 38vh, 460px); }
.compare-row-ending .source-textarea, .compare-row-ending .block-textarea { min-height: 108px; height: 108px; }
.block-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 7px; }
.mini-button { border: 1px solid var(--line); border-radius: 7px; padding: 5px 8px; color: var(--brand); background: var(--panel); cursor: pointer; font-size: 12px; }
.block-actions .mini-button[data-assist] { width: 96px; flex: 0 0 96px; overflow: hidden; padding-right: 6px; padding-left: 6px; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.creation-topline { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 12px; }
.internal-benchmark-link { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin: 0 0 12px; padding: 12px 14px; border: 1px solid #dcd7ff; border-radius: 10px; background: #f7f5ff; }
.internal-benchmark-link div { display: grid; gap: 3px; min-width: 0; }
.internal-benchmark-link span { color: var(--brand); font-size: 12px; font-weight: 700; }
.internal-benchmark-link strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.internal-benchmark-link small { color: var(--muted); font-size: 12px; }
.single-reference { padding: 6px 9px; border-radius: 999px; color: var(--green); background: var(--green-soft); font-size: 12px; }
.benchmark-deconstruction-drawer { position: fixed; z-index: 80; inset: 0 auto 0 0; display: flex; flex-direction: column; border-right: 1px solid #d9d5ff; background: #f8f9fc; box-shadow: 18px 0 48px rgba(26,31,43,.18); opacity: 0; pointer-events: none; clip-path: inset(0 0 0 100%); transition: clip-path .24s ease, opacity .18s ease; }
.benchmark-deconstruction-drawer.open { opacity: 1; pointer-events: auto; clip-path: inset(0); }
.benchmark-drawer-head { min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 10px 20px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.97); }
.benchmark-deconstruction-head { min-height: 0; padding-bottom: 6px; }
.benchmark-drawer-head > div { display: grid; gap: 2px; }
.benchmark-drawer-head h2 { margin: 0; font-size: 20px; }
.benchmark-drawer-head small { color: var(--muted); font-size: 12px; }
.benchmark-drawer-close { border: 1px solid var(--line); border-radius: 8px; padding: 7px 9px; color: #626b7a; background: #fff; cursor: pointer; font-size: 12px; }
.benchmark-drawer-close:hover { color: var(--brand); border-color: #cbc5ff; }
.benchmark-deconstruction-title-row { display: flex; align-items: baseline; gap: 10px; }
.benchmark-deconstruction-title-row small { font-size: 14px; white-space: nowrap; }
.benchmark-drawer-icon-close { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid transparent; border-radius: 8px; color: #7a8391; background: transparent; cursor: pointer; font-size: 20px; line-height: 1; }
.benchmark-drawer-icon-close:hover { border-color: var(--line); color: var(--text); background: #f7f8fa; }
.benchmark-drawer-scroll { min-height: 0; flex: 1; overflow-y: auto; padding: 14px 8px 22px 16px; }
.benchmark-structure-summary { display: grid; gap: 6px; border: 1px dashed #cbc6ed; border-radius: 11px; padding: 13px; background: #fff; }
.benchmark-structure-summary.ready { border-style: solid; background: #f5f3ff; }
.benchmark-structure-summary.stale { border-color: #efb56f; background: #fff8ed; }
.benchmark-structure-summary.stale > span { color: #b76818; }
.benchmark-structure-summary > span, .benchmark-reuse-summary span { color: var(--brand); font-size: 12px; font-weight: 700; }
.benchmark-structure-summary strong { font-size: 12px; line-height: 1.6; }
.benchmark-structure-flow { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.benchmark-structure-flow span { display: flex; align-items: center; gap: 5px; padding: 5px 7px; border-radius: 999px; color: #555e6d; background: #fff; font-size: 12px; }
.benchmark-structure-flow i { width: 17px; height: 17px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--brand); font-size: 12px; font-style: normal; }
.benchmark-analysis-list { display: grid; gap: 10px; margin-top: 10px; }
.benchmark-analysis-card { overflow: hidden; border: 1px solid var(--line); border-left: 3px solid var(--brand); border-radius: 10px; background: #fff; }
.benchmark-analysis-card > header { display: flex; align-items: center; gap: 9px; padding: 10px 11px; border-bottom: 1px solid #eef0f3; }
.benchmark-analysis-card > header > span { color: #b0a9f4; font-size: 12px; font-weight: 700; }
.benchmark-analysis-card > header > div { display: grid; gap: 2px; }
.benchmark-analysis-card > header strong { font-size: 12px; }
.benchmark-analysis-card > header small { color: var(--muted); font-size: 12px; }
.benchmark-analysis-quote { margin: 0; padding: 10px 11px; color: #4b5564; background: #fafbfc; font-size: 12px; line-height: 1.65; white-space: pre-wrap; }
.benchmark-analysis-card dl { display: grid; gap: 7px; margin: 0; padding: 10px 11px 12px; }
.benchmark-analysis-card dl > div { display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 7px; }
.benchmark-analysis-card dt { color: var(--muted); font-size: 12px; }
.benchmark-analysis-card dd { margin: 0; color: #3d4654; font-size: 12px; line-height: 1.55; }
.benchmark-analysis-card .takeaway { border-radius: 7px; padding: 7px; background: #f5f3ff; }
.benchmark-analysis-card .takeaway dd { color: var(--brand); }
.benchmark-analysis-waiting { padding: 12px; color: var(--muted); font-size: 12px; text-align: center; }
.benchmark-reuse-summary { display: grid; gap: 8px; margin-top: 10px; }
.benchmark-reuse-summary > div { border: 1px solid #dcd8ff; border-radius: 9px; padding: 10px; background: #fff; }
.benchmark-reuse-summary > div.risk { border-color: #f0d5b6; background: #fffaf3; }
.benchmark-reuse-summary .risk span { color: #b76818; }
.benchmark-reuse-summary p { margin: 5px 0 0; color: #444d5b; font-size: 12px; line-height: 1.6; }
.benchmark-deconstruction-drawer > footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 16px; border-top: 1px solid var(--line); background: #fff; }
.benchmark-deconstruction-drawer > footer small { color: var(--muted); font-size: 12px; }
.benchmark-deconstruction-actions { display: flex; align-items: center; gap: 8px; min-width: 0; }
.benchmark-deconstruction-actions .button { min-height: 30px; padding: 5px 12px; font-size: 14px; }
#copyDiagnosisBenchmarkButton { white-space: nowrap; }
.benchmark-generated-at { white-space: nowrap; }
.benchmark-deconstruction-meta { min-width: 0; display: grid; gap: 1px; }
.benchmark-deconstruction-meta small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.benchmark-collapse-button { min-height: 30px; padding: 5px 12px; font-size: 14px; font-weight: 400; white-space: nowrap; }
.shoot-break-drawer { background:#f8f9fc; }
.shoot-break-backdrop { position:fixed; z-index:79; inset:0; display:block; width:100%; height:100%; border:0; padding:0; background:transparent; opacity:0; pointer-events:none; cursor:default; }
.shoot-break-backdrop.open { opacity:1; pointer-events:auto; }
.shoot-break-scroll { display:grid; align-content:start; gap:12px; }
.shoot-break-panel { overflow:hidden; border:1px solid var(--line); border-radius:11px; background:#fff; }
.shoot-break-panel > header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 13px; border-bottom:1px solid #eceef3; background:#fafbfc; }
.shoot-break-panel > header strong { font-size:13px; }
.shoot-break-panel > header small { color:var(--muted); font-size:12px; }
.shoot-break-meta { display:flex; align-items:center; justify-content:flex-end; gap:10px; color:var(--muted); font-size:12px; white-space:nowrap; }
.shoot-break-meta .prod-final-script-save { margin-left:0; }
.shoot-break-meta .prod-final-script-save.error { color:#bd4545 !important; }
.shoot-break-result-panel { border-color:#d9d4ff; border-radius:6px; }
.shoot-break-result-panel > header { background:#f6f4ff; }
.shoot-break-copy { min-height:180px; padding:16px; color:#313947; font-size:14px; line-height:1.9; white-space:pre-wrap; overflow-wrap:anywhere; }
.shoot-break-result { min-height:360px; max-height:560px; overflow-x:hidden; overflow-y:auto; padding-right:16px; padding-left:16px; outline:0; background:#fff; scrollbar-width:thin; scrollbar-color:#c9cdd8 transparent; }
.shoot-break-result:focus { box-shadow:inset 0 0 0 1px rgba(102,88,232,.38); }
.shoot-break-result::-webkit-scrollbar { width:11px; }
.shoot-break-result::-webkit-scrollbar-track { background:transparent; }
.shoot-break-result::-webkit-scrollbar-thumb { border-radius:4px; background:#c9cdd8; }
.shoot-break-result::-webkit-scrollbar-thumb:hover { background:#888a93; }
.shoot-break-result::-webkit-scrollbar-button { display:none; width:0; height:0; }
.shoot-break-result > span { color:var(--muted); }
.shoot-break-loading { display:flex; align-items:center; gap:9px; }
.shoot-break-loading i { width:15px; height:15px; border:2px solid #d9d4ff; border-top-color:var(--brand); border-radius:50%; animation:shoot-break-spin .8s linear infinite; }
@keyframes shoot-break-spin { to { transform:rotate(360deg); } }
.shoot-break-error { color:var(--red,#d84c55) !important; }
.shoot-break-guard { margin:0; padding:10px 12px; border:1px dashed #d9d4ff; border-radius:9px; color:#6d7280; background:#f6f4ff; font-size:12px; line-height:1.65; }

.diagnosis-overview { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 18px; }
.diagnosis-summary { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; color: var(--muted); font-size: 12px; }
.diagnosis-summary > span:first-child { border-radius: 999px; padding: 6px 9px; font-weight: 600; }
.diagnosis-summary .ready { color: var(--green); background: var(--green-soft); }
.diagnosis-summary .needs-work { color: var(--orange); background: var(--orange-soft); }
.diagnosis-summary em { color: var(--orange); font-style: normal; }
.diagnosis-workspace { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(320px,.92fr); gap: 14px; align-items: start; }
.diagnosis-script, .diagnosis-advice { min-width: 0; border: 1px solid var(--line); border-radius: 11px; padding: 14px; background: var(--panel); }
.diagnosis-advice { max-height: 680px; overflow-y: auto; }
.diagnosis-column-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.diagnosis-column-head strong { font-size: 13px; }
.diagnosis-column-head small { color: var(--muted); font-size: 12px; }
.diagnosis-script-block { display: grid; gap: 6px; margin-bottom: 10px; }
.diagnosis-script-block > span { color: #4e5765; font-size: 12px; font-weight: 600; }
.diagnosis-script-block textarea { min-height: 86px; width: 100%; resize: vertical; border: 1px solid var(--line); border-radius: 8px; padding: 10px; }
.diagnosis-script-block:nth-of-type(4) textarea { min-height: 150px; }
.diagnosis-scope-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 10px 0 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fbfbfd; }
.diagnosis-scope-bar > span { display: grid; gap: 2px; }
.diagnosis-scope-bar strong { font-size: 12px; }
.diagnosis-scope-bar small { color: var(--muted); font-size: 12px; }
.diagnosis-scope-bar > div { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.diagnosis-scope-bar .needs-review { border-color: #efb56f; color: #b76818; background: #fff6e9; }
.diagnosis-issue.stale { border-left-color: #e5a354; background: #fffaf2; }
.diagnosis-issue.stale .diagnosis-issue-title > span { color: #b76818; background: #fff0d8; }
.diagnosis-issue { margin-bottom: 9px; border: 1px solid var(--line); border-left: 3px solid var(--line); border-radius: 9px; padding: 11px; }
.diagnosis-issue.must { border-left-color: var(--red); }
.diagnosis-issue.suggestion { border-left-color: var(--orange); }
.diagnosis-issue.pass { border-left-color: var(--green); opacity: .72; }
.diagnosis-issue-title { display: flex; align-items: center; gap: 8px; }
.diagnosis-issue-title span { border-radius: 999px; padding: 3px 6px; color: var(--muted); background: var(--panel-soft); font-size: 12px; }
.diagnosis-issue-title strong { font-size: 12px; }
.diagnosis-issue p { margin: 7px 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.diagnosis-suggestion { display: flex; justify-content: space-between; gap: 10px; align-items: flex-end; color: var(--brand); font-size: 12px; }
.diagnosis-suggestion > div { display: flex; gap: 5px; flex: 0 0 auto; }
.benchmark-reference { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 12px; }
.benchmark-reference summary { color: var(--muted); cursor: pointer; font-size: 12px; }
.benchmark-reference p { display: grid; grid-template-columns: 70px minmax(0,1fr); gap: 8px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.diagnosis-paired-head { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.9fr); gap: 14px; margin-top: 12px; }
.diagnosis-paired-head > div { display: grid; gap: 2px; padding: 0 10px; }
.diagnosis-paired-head .diagnosis-copy-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.diagnosis-copy-heading > span { display: grid; gap: 2px; }
.diagnosis-paired-head strong { font-size: 12px; }
.diagnosis-paired-head small { color: var(--muted); font-size: 12px; }
.diagnosis-paired-head small em { color: #8a91a0; font-style: normal; font-weight: 500; }
.diagnosis-paired-list { display: grid; gap: 10px; margin-top: 7px; }
.diagnosis-paired-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.9fr); gap: 14px; align-items: stretch; }
.diagnosis-paired-row > * { box-sizing: border-box; min-width: 0; height: 100%; margin: 0; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); }
.diagnosis-paired-title { min-height: 150px; }
.diagnosis-paired-hook { min-height: 170px; }
.diagnosis-paired-body { min-height: 330px; }
.diagnosis-paired-ending { min-height: 210px; }
.diagnosis-paired-compliance { min-height: 170px; }
.diagnosis-paired-row .diagnosis-script-block { display: flex; flex-direction: column; }
.diagnosis-paired-row .diagnosis-copy-block-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.diagnosis-copy-block-head i { color: #4e5765; font-style: normal; font-weight: 600; }
.diagnosis-copy-block-head em { color: #9299a6; font-size: 12px; font-style: normal; font-weight: 500; }
.diagnosis-field-meta { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; }
.diagnosis-field-meta > em { color: #9299a6; font-size: 12px; font-style: normal; font-weight: 500; white-space: nowrap; }
.diagnosis-field-meta .field-save-status { order: -1; width: 92px; flex: 0 0 92px; margin-left: 0; text-align: right; }
.diagnosis-paired-row .diagnosis-script-block textarea { flex: 1; min-height: 0; resize: vertical; }
.diagnosis-module-advice { display: flex; flex-direction: column; border-left-width: 3px !important; }
.diagnosis-module-advice.pass { border-left-color: var(--green); }
.diagnosis-module-advice.must { border-left-color: var(--red); }
.diagnosis-module-advice.suggestion { border-left-color: var(--orange); }
.diagnosis-module-advice.stale { border-left-color: #e5a354; background: #fffaf2; }
.diagnosis-module-advice.empty { border-left-color: #cfd5df; }
.diagnosis-module-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.diagnosis-module-head > div { display: grid; gap: 2px; }
.diagnosis-module-head strong { font-size: 12px; }
.diagnosis-module-head small { color: var(--muted); font-size: 12px; }
.diagnosis-module-result { display: grid; gap: 10px; }
.diagnosis-result-label { display: flex; align-items: center; gap: 8px; }
.diagnosis-result-label > span { padding: 3px 7px; border-radius: 999px; color: #687184; background: #f1f3f6; font-size: 12px; }
.diagnosis-result-label strong { font-size: 12px; }
.diagnosis-conclusion, .diagnosis-guidance { display: grid; gap: 4px; }
.diagnosis-conclusion strong, .diagnosis-guidance strong { color: #6c7482; font-size: 12px; }
.diagnosis-conclusion p, .diagnosis-guidance p { margin: 0; color: #3e4756; font-size: 12px; line-height: 1.65; white-space: pre-wrap; }
.diagnosis-guidance { padding: 9px 10px; border-radius: 8px; background: #f6f5ff; }
.diagnosis-guidance p { color: var(--brand); }
.diagnosis-module-actions { display: flex; gap: 7px; justify-content: flex-end; margin-top: auto; padding-top: 10px; }
.diagnosis-module-empty { display: grid; place-content: center; gap: 5px; flex: 1; color: var(--muted); text-align: center; }
.diagnosis-module-empty strong { color: #555f70; font-size: 12px; }
.diagnosis-module-empty span { font-size: 12px; }
.diagnosis-compliance-source { display: flex; flex-direction: column; justify-content: center; gap: 10px; }
.diagnosis-compliance-source header { display: grid; gap: 3px; }
.diagnosis-compliance-source header strong { font-size: 12px; }
.diagnosis-compliance-source header span, .diagnosis-compliance-source p { color: var(--muted); font-size: 12px; line-height: 1.6; }
.diagnosis-compliance-source p { margin: 0; }
.diagnosis-compliance-source > div { display: flex; gap: 6px; flex-wrap: wrap; }
.diagnosis-compliance-source > div span { padding: 4px 7px; border-radius: 999px; color: var(--brand); background: var(--brand-soft); font-size: 12px; }
.diagnosis-benchmark-reference { margin-top: 10px; }
.diagnosis-benchmark-summary { display: grid; gap: 7px; border: 1px solid #dcd8ff; border-radius: 10px; padding: 12px; background: #f5f3ff; }
.diagnosis-benchmark-summary > span { color: var(--brand); font-size: 12px; font-weight: 700; }
.diagnosis-benchmark-summary > strong, .diagnosis-benchmark-summary > a { color: #303847; font-size: 12px; font-weight: 700; line-height: 1.5; text-decoration: none; }
.diagnosis-benchmark-summary > a:hover { color: var(--brand); }
.diagnosis-benchmark-summary i { font-style: normal; }
.diagnosis-benchmark-list { display: grid; gap: 10px; margin-top: 10px; }
.diagnosis-benchmark-card { overflow: hidden; border: 1px solid var(--line); border-left: 3px solid var(--brand); border-radius: 10px; background: #fff; }
.diagnosis-benchmark-card > header { display: flex; align-items: center; gap: 9px; padding: 10px 11px; border-bottom: 1px solid #eef0f3; }
.diagnosis-benchmark-card > header > span { color: #b0a9f4; font-size: 12px; font-weight: 700; }
.diagnosis-benchmark-card > header > div { display: flex; flex: 1; align-items: baseline; justify-content: space-between; gap: 10px; }
.diagnosis-benchmark-card > header strong { font-size: 12px; }
.diagnosis-benchmark-card > header small { color: var(--muted); font-size: 12px; }
.diagnosis-benchmark-copy { max-height: 360px; overflow-y: auto; padding: 11px 12px 14px; color: #424b59; background: #fbfbfc; font-size: 12px; line-height: 1.75; white-space: pre-wrap; overflow-wrap: anywhere; }
.diagnosis-benchmark-copy > span { color: var(--muted); }
.diagnosis-benchmark-title .diagnosis-benchmark-copy { max-height: 120px; }
.diagnosis-benchmark-hook .diagnosis-benchmark-copy { max-height: 190px; }
.diagnosis-benchmark-ending .diagnosis-benchmark-copy { max-height: 220px; }
.empty-state.compact { padding: 24px 14px; }
.score-box { display: grid; place-items: center; align-content: center; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); }
.score-value { font-size: 42px; font-weight: 700; color: var(--brand); }
.score-box small { color: var(--muted); }
.check-list { display: grid; gap: 8px; }
.check-item { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 10px; padding: 11px; border: 1px solid var(--line); border-radius: 9px; background: var(--panel); }
.check-mark { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; }
.check-mark.pass { color: var(--green); background: var(--green-soft); }
.check-mark.fail { color: var(--orange); background: var(--orange-soft); }
.check-item strong { font-size: 12px; }
.check-item p { margin: 3px 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.check-action { color: var(--brand); font-size: 12px; }
.empty-state { padding: 38px 18px; border: 1px dashed #cfd5df; border-radius: 11px; color: var(--muted); background: var(--panel); text-align: center; }

.milestone-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.milestone { padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); }
.milestone-top { display: flex; align-items: center; gap: 7px; margin-bottom: 10px; }
.milestone-tools { position: absolute; right: 8px; top: 8px; display: inline-flex; align-items: center; gap: 5px; }
.milestone-lock {
  width: 22px; height: 22px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid #d8d4ea; background: #fff; color: #8b82b0;
  cursor: pointer; padding: 0; line-height: 1;
  transition: transform .12s ease, background .12s ease, color .12s ease, border-color .12s ease;
}
.milestone-lock:hover { transform: scale(1.05); }
.milestone-lock:focus-visible { outline: none; box-shadow: 0 0 0 2px rgba(124,107,228,0.35); }
.milestone-lock.is-locked {
  background: linear-gradient(135deg,#6658e8,#8c66eb);
  border-color: #5b4dcf; color: #fff;
}
.milestone-lock.is-locked:hover { background: linear-gradient(135deg,#7566ee,#9b78f0); }
.milestone-lock.is-unlocked { background: #f7f4ff; color: #b4accb; }
.milestone-lock:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.milestone-dot { width: 9px; height: 9px; border-radius: 50%; }
.milestone-dot.script { background: #6658e8; }
.milestone-dot.shoot { background: #3d82dc; }
.milestone-dot.edit { background: #b66bd6; }
.milestone-dot.publish { background: #ef7b3d; }

  /* ===== 拍剪子节点分叉（数字人/真人） ===== */
  .schedule-top { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,650px); column-gap:20px; align-items:start; margin-bottom:18px; }
  .schedule-top-heading { min-width: 0; align-self: start; overflow-wrap: anywhere; }
  .schedule-top-heading .stage-hint { white-space: normal; }
  .schedule-top-right { display:flex; flex-direction:column; align-items:stretch; gap:2px; min-width:0; width:100%; max-width:650px; justify-self:end; box-sizing:border-box; }
  .milestone-inline-row { display:flex; flex-wrap:nowrap; gap:8px; justify-content:space-between; align-items:stretch; min-width:0; width:100%; max-width:100%; box-sizing:border-box; }
  .schedule-risk-row { margin-top:0 !important; padding-top:0; width:100%; max-width:100%; box-sizing:border-box; }
  .milestone-inline { position: relative; flex: 1 1 0; min-width: 0; padding: 7px 10px 7px 10px; border:1px solid var(--line,#e3e0f0); border-radius:9px; background:var(--panel,#fff); }
  .milestone-inline .milestone-top { display:flex; align-items:center; gap:4px; margin-bottom:5px; font-size:12px; position: relative; min-height: 20px; }
  .milestone-inline .milestone-top strong { font-size:12px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .milestone-inline .field input[type="date"] {
  padding: 4px 8px !important;
  font-size: 12px !important;
  width: 100%;
  box-sizing: border-box;
  resize: none !important;
  height: 28px !important;
  min-height: 28px !important;
  max-height: 28px !important;
  line-height: 1.4 !important;
  overflow: hidden !important;
  background: var(--panel);
}
  .milestone-inline .field input[type="date"]::-webkit-calendar-picker-indicator { width:12px; height:12px; padding:0; }
  .milestone-inline .milestone-note-tip { width:13px; height:13px; font-size:12px; border-color:#d8d4ea; color:#8b82b0; flex: 0 0 auto; margin-left: 0; }
  .milestone-inline .milestone-note-tip:hover, .milestone-inline .milestone-note-tip:focus-visible { color:#6c5faa; border-color:#a597d3; outline:none; }
  .milestone-inline .milestone-dot { width: 7px; height: 7px; }
  .milestone-inline .milestone-lock { width: 13px; height: 13px; }
  .milestone-inline .milestone-lock svg { width: 9px; height: 9px; }
  .milestone-inline .milestone-tools { position: static; margin-left: auto; gap: 3px; }
  .milestone-arrow { display:inline-flex; align-items:center; justify-content:center; color:#c8c2dc; font-size:16px; flex:0 0 auto; align-self: stretch; line-height: 1; }
  .prod-track-banner { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:10px 14px; background:var(--soft,#f5f3ff); border:1px solid var(--line,#e3e0f0); border-radius:10px; margin-bottom:14px; font-size:13px; }
  .prod-track-banner strong { color:var(--brand,#6658e8); }
  .prod-track-hint { color:var(--muted,#888); font-size:12px; }
  .schedule-risk-row .ok-banner,
  .schedule-risk-row .risk-banner { margin: 0; padding: 3.5px 14px; font-size: 12px; line-height: 1.55; border-radius: 8px; }
.stepper-region { display: flex; align-items: center; justify-content: flex-start; padding: 0 0 6px 20px; position: relative; min-height: 30px; }
.stepper-region[hidden] { display: none; }
.stepper-region.has-production-subnav { min-height: 48px; }
.prod-track-toggle { flex: 0 0 auto; align-self: center; margin-right: 16px; padding: 3px; }
.prod-track-toggle button { font-size: 12px; padding: 5px 10px; }
/* hover 切换按钮组时浮窗显示(纯 CSS,无布局占位) */
.prod-track-tip { display: none; position: absolute; top: calc(100% - 2px); left: 20px; z-index: 30; flex-direction: column; gap: 2px; max-width: min(280px, calc(100vw - 32px)); padding: 7px 11px; border-radius: 8px; border: 1px solid #e3e2ee; background: rgba(255,255,255,0.96); color: var(--muted, #6b6483); font-size: 12px; line-height: 1.45; text-align: left; box-shadow: 0 6px 18px rgba(18,24,34,0.10); pointer-events: none; }
.prod-track-toggle:hover ~ .prod-track-tip,
.prod-track-toggle:focus-within ~ .prod-track-tip { display: flex; }
  .prod-subnav-anchor { display: flex; flex-direction: column; align-items: center; width: max-content; max-width: 560px; gap: 0; }
  .prod-subnav-frame { position: relative; box-sizing: border-box; width: 100%; padding: 4.5px 8px; border: 1.5px dashed var(--line, #d9d4ec); border-radius: 10px; background: transparent; }
  .prod-subnav-frame .prod-sub-nav { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; }
  .prod-subnav-arrow { display: block; width: 100%; height: 14px; color: var(--line, #d9d4ec); margin-top: -16px; }
  .prod-subnav-ybranch { display: block; width: 100%; height: 14px; }
  .prod-subnav-arrow-stem { display: block; width: 0; height: 12px; border-left: 1.5px dashed var(--line, #cfc8e3); }
  .prod-subnav-arrow-tip { display: block; line-height: 1; font-size: 12px; color: var(--line, #cfc8e3); margin-top: -2px; }
  .prod-step { display:inline-flex; align-items:center; gap:5px; padding:4px 10px; border:1px solid var(--line,#e3e0f0); background:var(--panel,#fff); border-radius:999px; font-size:12px; cursor:pointer; color:var(--muted,#666); transition:.15s; }
  .prod-step:hover { border-color:var(--brand,#6658e8); }
  .prod-step .prod-step-idx { display:inline-flex; align-items:center; justify-content:center; width:14px; height:14px; border-radius:50%; background:#e6e3f2; font-size:12px; color:#888; }
  .prod-step.active { border-color:var(--brand,#6658e8); color:var(--brand,#6658e8); background:var(--soft,#f5f3ff); font-weight:600; }
  .prod-step.active .prod-step-idx { background:var(--brand,#6658e8); color:#fff; }
  .prod-step.done { color:#1a7f43; border-color:#bfe6cb; background:#f1faf3; }
  .prod-step.done .prod-step-idx { background:#1a7f43; color:#fff; }
  .prod-step.locked { opacity:.55; cursor:not-allowed; }
  .prod-step-arrow { color:#cfcadf; font-size:12px; }
  .prod-subpage { border:0; border-radius:0; padding:4px 2px 6px 2px; margin:0; background:transparent; }
  .prod-subpage-head { display:flex; align-items:center; gap:10px; margin-bottom:6px; }
  .prod-subpage-head h3 { margin:0; font-size:15px; }
  .prod-sub-state { font-size:12px; padding:1px 8px; border-radius:10px; }
  .prod-sub-state.active { background:#eaf0ff; color:#3d6bdc; }
  .prod-sub-state.done { background:#e7f6ec; color:#1a7f43; }
  .prod-sub-state.blocked { background:#fff1e6; color:#c9711a; }
  .prod-subpage-desc { margin:0 0 12px; color:var(--muted,#777); font-size:13px; line-height:1.6; }
  .prod-subpage-actions { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
  .prod-subpage-actions--end { justify-content:flex-end; margin-top:14px; }
  .prod-checklist-item.prod-checklist-missing { animation:prod-checklist-missing-pulse 1.55s ease both; }
  @keyframes prod-checklist-missing-pulse {
    0%, 100% { border-color:var(--line,#e3e0f0); box-shadow:none; background:var(--panel,#fff); }
    25%, 75% { border-color:#e24b55; box-shadow:0 0 0 2px rgba(226,75,85,.14), 0 3px 9px rgba(226,75,85,.13); background:#fff8f8; }
  }
  .prod-hint { font-size:12px; padding:8px 12px; border-radius:8px; margin:6px 0; }
  .prod-hint.warn { background:var(--orange-soft,#fff5ec); color:var(--orange,#c9711a); }
  .prod-hint.ok { background:#f1faf3; color:#1a7f43; }
  .prod-subpage-note { color:var(--muted,#999); font-size:12px; }

  /* 拍摄 / 剪辑 可勾选清单（形态1：勾选即进度） */
  .prod-checklist { display:flex; flex-direction:column; gap:8px; margin:4px 0 14px; }
  .prod-checklist-item { display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--line,#e3e0f0); border-radius:10px; cursor:pointer; background:var(--panel,#fff); transition:background .15s, border-color .15s; }
  .prod-checklist-item:hover { background:#faf8ff; border-color:#d6cfee; }
  .prod-checklist-input { position:absolute; opacity:0; width:0; height:0; margin:0; padding:0; }
  .prod-checklist-box { flex:0 0 auto; width:18px; height:18px; border-radius:6px; border:1.5px solid var(--line,#c9c2e0); display:flex; align-items:center; justify-content:center; font-size:12px; color:#fff; background:#fff; }
  .prod-checklist-item.checked .prod-checklist-box { background:#1f9d55; border-color:#1f9d55; }
  .prod-checklist-label { flex:1 1 auto; min-width:0; font-size:13.5px; color:var(--ink,#333); }
  .prod-shoot-grid .prod-checklist-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .prod-checklist-item.checked .prod-checklist-label { color:var(--muted,#888); }
  .prod-checklist-tag { flex:0 0 auto; font-size:12px; padding:1px 7px; border-radius:9px; background:#f0edf8; color:#7a6fa3; }
  .prod-checklist-item.optional .prod-checklist-tag { background:#f4f4f4; color:#999; }

  /* ===== 子流程子页面（仿轻语，功能未接入） ===== */
  .ps-section { margin: 14px 0; }
  .ps-section-title { display:flex; align-items:center; align-content:center; justify-content:flex-start; gap:8px; font-size:13px; font-weight:600; color:var(--ink,#333); margin-bottom:10px; text-align:left; }
  .prod-voice-grid .ps-section-title { font-size:14px; }
  .ps-section-hint { font-size:12px; font-weight:400; color:var(--muted,#999); padding:1px 8px; border:1px dashed var(--line,#e3e0f0); border-radius:999px; }
  .ps-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); gap:10px; }
  .ps-card { position:relative; display:flex; flex-direction:column; align-items:center; gap:6px; padding:14px 10px 12px; border:1.5px solid var(--line,#e3e0f0); border-radius:12px; background:var(--panel,#fff); cursor:pointer; transition:border-color .15s, box-shadow .15s; text-align:center; }
  .ps-card:hover { border-color:#c3b9e8; }
  .ps-card.selected { border-color:var(--brand,#6658e8); box-shadow:0 0 0 3px rgba(102,88,232,.12); }
  .ps-card-tick { position:absolute; top:6px; right:6px; width:18px; height:18px; border-radius:50%; background:var(--brand,#6658e8); color:#fff; font-size:12px; line-height:18px; display:none; }
  .ps-card.selected .ps-card-tick { display:block; }
  .ps-avatar { width:46px; height:46px; border-radius:50%; color:#fff; font-size:18px; font-weight:700; display:flex; align-items:center; justify-content:center; }
  .ps-card-label { font-size:13px; font-weight:600; color:var(--ink,#333); }
  .ps-card-sub { font-size:12px; color:var(--muted,#999); }
  .ps-card-play { font-size:12px; color:var(--brand,#6658e8); margin-top:2px; }
  .ps-card-add { border-style:dashed; color:var(--muted,#999); justify-content:center; }
  .ps-card-add-icon { width:34px; height:34px; border-radius:50%; background:var(--soft,#f5f3ff); color:var(--brand,#6658e8); font-size:20px; line-height:32px; }
  .ps-cover-card { padding:0; overflow:hidden; }
  .ps-cover-thumb { width:100%; height:78px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:24px; font-weight:700; }
  .ps-cover-card .ps-card-label { padding:6px 8px 10px; }

  .ps-action { display:flex; align-items:center; gap:12px; margin:14px 0 6px; flex-wrap:wrap; }
  .ps-action-note { font-size:12px; color:var(--muted,#999); }
  .ps-action--voice { flex-wrap:nowrap; width:100%; justify-content:flex-start; }
  .prod-voice-action-note { flex:0 1 auto; min-width:0; margin-left:0; text-align:left !important; line-height:1.5; transition:color .15s ease; }
  .prod-voice-action-note.is-generating { color:var(--brand,#6658e8); }

  .prod-subpage .field { margin-bottom:10px; }
  .prod-title-input { width:100%; box-sizing:border-box; padding:9px 12px; border:1px solid var(--line,#e3e0f0); border-radius:9px; font-size:13px; color:var(--ink,#333); background:var(--panel,#fff); }
  .prod-title-input:focus { outline:none; border-color:var(--brand,#6658e8); }

  .ps-result { margin:12px 0; }
  .ps-filerow { display:flex; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--line,#e3e0f0); border-radius:10px; background:var(--panel-soft,#faf9ff); flex-wrap:wrap; }
  .ps-file-icon { font-size:16px; }
  .ps-file-name { font-weight:600; font-size:13px; }
  .ps-file-meta { font-size:12px; color:var(--muted,#999); }
  .ps-file-actions { margin-left:auto; display:flex; gap:6px; }

  .ps-preview { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; height:150px; border:1.5px dashed var(--line,#e3e0f0); border-radius:12px; background:var(--panel,#fff); color:var(--muted,#8b8aa6); margin:10px 0; }
  .ps-preview-icon { font-size:26px; }
  .ps-preview-label { font-size:13px; font-weight:600; color:#888; }
  .ps-preview-sub { font-size:12px; }

  .ps-tpl-grid { display:flex; flex-wrap:wrap; gap:8px; }
  .ps-tpl { border:1px solid var(--line,#e3e0f0); background:var(--panel,#fff); border-radius:999px; padding:7px 14px; font-size:12px; color:var(--ink,#444); cursor:pointer; }
  .ps-tpl:hover { border-color:var(--brand,#6658e8); color:var(--brand,#6658e8); }
  .ps-tpl.selected { background:var(--brand,#6658e8); color:#fff; border-color:var(--brand,#6658e8); }

  .ps-toggle-row { display:flex; flex-wrap:wrap; gap:14px; }
  .ps-toggle { display:flex; align-items:center; gap:7px; font-size:13px; color:var(--ink,#444); cursor:pointer; }
  .ps-toggle input { display:none; }
  .ps-toggle-switch { width:34px; height:18px; border-radius:999px; background:var(--line,#d8d4ea); position:relative; transition:background .15s; flex:none; }
  .ps-toggle-switch::after { content:""; position:absolute; top:2px; left:2px; width:14px; height:14px; border-radius:50%; background:#fff; transition:left .15s; }
  .ps-toggle.on .ps-toggle-switch { background:var(--brand,#6658e8); }

  /* 声音生成子页：轻语式双列布局（阶段1） */
  .ps-section-tools { margin-left:auto; display:flex; gap:8px; align-items:center; text-align:left; }
  .prod-voice-grid { display:flex; gap:16px; align-items:stretch; }
.prod-voice-col-left { flex:1.45; display:flex; flex-direction:column; min-width:0; }
  .prod-voice-col-right { flex:1; display:flex; flex-direction:column; gap:16px; min-width:0; }
  .prod-final-script { background:var(--panel-soft,#faf9ff); padding:12px 14px; border-radius:10px; min-height:240px; max-height:360px; overflow:auto; font-size:14px; line-height:1.7; color:var(--ink,#333); white-space:pre-wrap; word-break:break-word; }
  .prod-final-script--editable { border:1px dashed transparent; cursor:text; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
  .prod-final-script--editable:hover { border-color:var(--line,#e3e0f0); }
  .prod-final-script--editable:focus { outline:none; border-color:var(--brand,#6658e8); border-style:solid; background:var(--panel,#fff); box-shadow:0 0 0 3px rgba(102,88,232,.10); }
  .prod-final-script--editable[data-empty="true"]::before { content:attr(data-placeholder); color:var(--muted,#999); pointer-events:none; display:block; }
  .prod-voice-busy #prodFinalScript[aria-disabled="true"] { opacity:.62; cursor:not-allowed; user-select:none; background:var(--panel-soft,#faf9ff); }
  .prod-voice-busy [data-prod-model]:disabled,
  .prod-voice-busy [data-prod-speed]:disabled,
  .prod-voice-busy #prodVoiceSelect:disabled { cursor:not-allowed; opacity:.58; }
  /* 最终文案标题行工具区 - 左右分布 */
  .ps-section-tools {
    display: flex;
    align-items: center;
    gap: 16px;
  }
  .ps-section-tools-left {
    display: flex;
    align-items: center;
    gap: 8px;
  }
  .ps-section-tools-right {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .prod-final-script-count {
    width: 116px;
    flex: 0 0 116px;
    gap: 0;
    white-space: nowrap;
    font-size: 12px;
    font-weight: normal;
    color: var(--muted, #999);
    font-variant-numeric: tabular-nums;
    display: inline-flex;
    align-items: center;
  }
  .prod-final-script-count-value {
    width: 42px;
    flex: 0 0 42px;
    text-align: left;
  }
  .prod-final-script-duration {
    width: 74px;
    flex: 0 0 74px;
    display: inline-flex;
    justify-content: flex-start;
    text-align: left;
  }
  .prod-final-script-count #prodFinalScriptCount {
    color: var(--muted, #999);
    font-weight: normal;
  }
  .prod-final-script-save {
    width: 64px;
    flex: 0 0 64px;
    white-space: nowrap;
    justify-content: flex-end;
    font-size: 12px;
    font-weight: normal;
    font-variant-numeric: tabular-nums;
    display: inline-flex;
    align-items: center;
    color: #1a7f43 !important;
  }
  .prod-final-script-save::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #1a7f43 !important;
    margin-right: 4px;
  }
  #prodFinalScriptSaveStatus {
    transform: translateX(-6px);
    width: 60px;
    flex-basis: 60px;
    justify-content: flex-end;
  }
  .prod-voice-col-left .ps-section-tools { gap: 12px; }
  .prod-voice-col-left .ps-section-tools-right { gap: 4px; }
  .prod-voice-col-left .ps-section-tools-left,
  .prod-voice-col-left .prod-final-script-count {
    transform: translateX(18px);
  }
  .prod-final-script-save.is-saving {
    color: #d4b65c !important;
  }
  .prod-final-script-save.is-saving::before {
    background: #d4b65c !important;
  }
  .prod-final-script-note { margin:10px 0 0; font-size:12px; color:var(--muted,#999); }
  .prod-lang { font-size:12px; padding:4px 8px; border-radius:8px; border:1px solid var(--line,#e3e0f0); background:var(--panel,#fff); color:var(--ink,#444); }

/* 拍剪·声音配置：下拉 + 试听按钮（一行） */
.prod-config-row--voice { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.prod-config-label-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.prod-config-label-row > label { margin:0; color:var(--muted,#888); font-size:12px; line-height:1.5; }
.prod-voice-pick { display: flex; align-items: stretch; gap: 8px; }
.prod-voice-select { flex: 1; min-width: 0; height:36px; min-height:36px; font-size: 13px; padding: 0 28px 0 12px; border-radius: 10px; border: 1px solid var(--line,#e3e0f0); background: var(--panel,#fff); color: var(--ink,#333); cursor: pointer; appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--muted,#888) 50%), linear-gradient(135deg, var(--muted,#888) 50%, transparent 50%); background-position: calc(100% - 16px) 50%, calc(100% - 11px) 50%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; }
.prod-voice-select:focus { outline: none; border-color: var(--brand,#6658e8); box-shadow: 0 0 0 3px rgba(102,88,232,.15); }
.prod-voice-select:disabled { color: var(--muted,#999); cursor: not-allowed; background-color: var(--panel-soft,#faf9ff); }
.prod-voice-pick__play {
  position: relative;
  flex: 0 0 auto; width: 36px; height: 36px;
  border-radius: 999px; border: 1.5px solid var(--line,#e3e0f0);
  background: #fff; color: var(--brand,#6658e8);
  font-size: 0; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.prod-voice-pick__play:hover:not(:disabled) { background: var(--brand,#6658e8); color: #fff; border-color: var(--brand,#6658e8); }
.prod-voice-pick__play:disabled { opacity: .45; cursor: not-allowed; }
.prod-voice-pick__play .prod-btn-icon { width: 14px; height: 14px; display: block; fill: currentColor; }
.prod-voice-pick__play .prod-btn-icon__pause { display: none; }
.prod-voice-pick__play[data-state="playing"] .prod-btn-icon__pause { display: block; }
.prod-voice-pick__play[data-state="playing"] .prod-btn-icon__play { display: none; }
.prod-voice-hint { margin: 0; font-size: 12px; line-height: 1.5; color: var(--muted,#888); }
.prod-model-hint { margin: 6px 0 0; font-size: 12px; line-height: 1.5; color: var(--muted,#888); }
.prod-voice-player { display: flex; flex-direction: column; gap: 4px; margin-top: 10px; padding: 10px 12px; border: 1px solid #e2e6ec; border-radius: 10px; background: #f7f8fa; }
  /* 进度条和时间占位区直接相接；长时长的预留宽度只留在时间区内部。 */
  .prod-voice-player__row { display: flex; align-items: center; gap: 0; }
  .prod-voice-player__bar { flex: 1; min-width: 0; height: 8px; border-radius: 999px; background: #e7ebf0; position: relative; overflow: visible; cursor: grab; padding: 0; margin: 0 -2px; box-sizing: border-box; }
  .prod-voice-player__bar:active { cursor: grabbing; }
  .prod-voice-player__fill { position: absolute; left: 1px; top: 1px; bottom: 1px; width: 0%; max-width: calc(100% - 2px); border-radius: 999px; background: rgba(124,99,255,0.55); transition: width .12s linear; }
  .prod-voice-player__bar-thumb { position: absolute; left: 0%; top: 50%; transform: translate(-50%, -50%) scale(.6); width: 10px; height: 10px; border-radius: 50%; background: #fff; border: 1.5px solid #aab0bd; box-shadow: none; opacity: 0; pointer-events: none; transition: opacity .12s, transform .12s; z-index: 2; }
  .prod-voice-player__bar:hover .prod-voice-player__bar-thumb,
  .prod-voice-player__bar:focus-within .prod-voice-player__bar-thumb,
  .prod-voice-player__bar[data-scrubbing="1"] .prod-voice-player__bar-thumb { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  .prod-voice-player__time { flex:0 0 auto; min-width:10ch; margin-left:0; font-size:12px; color:var(--muted,#888); font-variant-numeric:tabular-nums; white-space:nowrap; text-align:right; }
  .prod-voice-player__time > span:first-child { font-weight:400; }
  .prod-voice-player.has-audio-progress .prod-voice-player__time > span:first-child { color:var(--ink,#333); font-weight:600; }
  .prod-voice-player__tools { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 2px; }
  .prod-voice-rate-pills { padding: 0; }
  .prod-vol.prod-voice-vol { max-width:200px; margin-left:auto; padding:0; gap:3px; justify-content:flex-end; border-radius:0; background:transparent; }
  .prod-voice-vol .prod-vol-icon { padding:0; }
  .prod-voice-vol .prod-vol-icon__svg { width:30px; height:30px; }
  .prod-voice-vol .prod-vol-slider { margin:0; }
/* 拍剪·克隆结果区（生成后动态填充） */
.prod-voice-result-empty { padding: 22px 16px; text-align: center; color: var(--muted,#888); font-size: 13px; background: var(--panel-soft,#faf9ff); border: 1px dashed var(--line,#eee); border-radius: 10px; }
.prod-voice-result-loading { padding: 22px 16px; text-align: center; color: var(--brand,#6658e8); font-size: 13px; }
.prod-audio-tools { display: flex; gap: 8px; margin-top: 10px; padding-left: 52px; }
.prod-voice-result-dur { font-variant-numeric: tabular-nums; }
  .prod-config-row { margin-bottom:10px; }
  .prod-config-row > label, .prod-range-row > label { display:block; font-size:12px; color:var(--muted,#888); margin-bottom:5px; }
  .prod-model-toggle { display:flex; gap:6px; }
  .prod-model-toggle button { flex:1; padding:7px 0; font-size:12px; border-radius:8px; border:1.5px solid var(--line,#e3e0f0); background:var(--panel,#fff); color:var(--ink,#333); cursor:pointer; }
  .prod-model-toggle button.active { border-color:var(--brand,#6658e8); background:rgba(102,88,232,.08); color:var(--brand,#6658e8); font-weight:600; }
  .prod-adv > summary { cursor:pointer; font-size:12px; color:var(--muted,#888); list-style:none; user-select:none; }
  .prod-adv > summary::-webkit-details-marker { display:none; }
  .prod-adv-flat { margin: 4px 0 14px; border: 1px solid var(--line,#e3e0f0); border-radius: 10px; background: var(--panel-soft,#faf9ff); }
.prod-adv-flat__title { display:flex; align-items:center; justify-content:space-between; gap:16px; font-size: 12px; font-weight: 600; color: var(--ink,#444); padding: 9px 12px; border-bottom: 1px dashed var(--line,#e3e0f0); letter-spacing: .02em; }
.prod-adv-flat__body { padding: 10px 12px 12px; }
.prod-adv-flat__body .prod-range-row { margin-bottom: 0; }
.prod-adv-flat__body input[type="range"] {
  --range-progress:33.333%;
  -webkit-appearance:none; appearance:none;
  width:100%; height:8px; margin:5px 0;
  border:0; border-radius:999px; outline:none; cursor:pointer;
  background:
    linear-gradient(to right, rgba(124,99,255,.55) 0 var(--range-progress), transparent var(--range-progress) 100%) center / 100% 6px no-repeat,
    rgba(111,120,135,.12);
}
.prod-voice-pick__play[data-play-tip]::after,
.prod-result-card-play[data-play-tip]::after {
  content: attr(data-play-tip);
  position: absolute;
  z-index: 2147483647;
  top: calc(100% + 10px);
  right: 0;
  display: block;
  width: max-content;
  max-width: 220px;
  box-sizing: border-box;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 7px;
  padding: 6px 9px;
  color: #fff;
  background: rgba(39,45,56,.70);
  box-shadow: 0 6px 18px rgba(18,24,34,.14);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  pointer-events: none;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.35;
  white-space: normal;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-2px);
  transition: opacity .12s ease, transform .12s ease, visibility 0s linear .12s;
}
.prod-voice-pick__play[data-play-tip]:hover:not(.is-tip-suppressed)::after,
.prod-voice-pick__play[data-play-tip]:focus-visible:not(.is-tip-suppressed)::after,
.prod-result-card-play[data-play-tip]:hover:not(.is-tip-suppressed)::after,
.prod-result-card-play[data-play-tip]:focus-visible:not(.is-tip-suppressed)::after {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition-delay: 0s;
}
.prod-voice-pick__play.is-tip-suppressed::after,
.prod-result-card-play.is-tip-suppressed::after { opacity:0; visibility:hidden; transform:translateY(-2px); }
/* 结果播放器的按钮下方紧邻进度区，提示固定向上展开，避免遮住进度条和倍速。 */
.prod-result-card-play[data-play-tip]::after {
  top: auto;
  right: auto;
  bottom: calc(100% + 10px);
  left: 0;
}
.prod-adv-flat__body input[type="range"]::-webkit-slider-runnable-track { height:8px; border:0; border-radius:999px; background:transparent; }
.prod-adv-flat__body input[type="range"]::-webkit-slider-thumb { -webkit-appearance:none; width:16px; height:16px; margin-top:-4px; border:0; border-radius:50%; background:var(--brand,#6658e8); box-shadow:0 1px 3px rgba(102,88,232,.22); cursor:grab; }
.prod-adv-flat__body input[type="range"]:active::-webkit-slider-thumb { cursor:grabbing; }
.prod-adv-flat__body input[type="range"]::-moz-range-track { height:8px; border:0; border-radius:999px; background:transparent; }
.prod-adv-flat__body input[type="range"]::-moz-range-progress { height:6px; border:0; border-radius:999px; background:rgba(124,99,255,.55); }
.prod-adv-flat__body input[type="range"]::-moz-range-thumb { width:16px; height:16px; border:0; border-radius:50%; background:var(--brand,#6658e8); box-shadow:0 1px 3px rgba(102,88,232,.22); cursor:grab; }
.prod-adv-flat__body input[type="range"]:disabled { cursor:not-allowed; opacity:.58; }
  .prod-range-row { margin-bottom:10px; }
  .prod-range-row:last-child { margin-bottom:0; }
  .prod-range-val { color:var(--brand,#6658e8); font-weight:600; }
  .prod-emotion { width:100%; padding:6px 10px; font-size:13px; border-radius:8px; border:1px solid var(--line,#e3e0f0); background:var(--panel,#fff); color:var(--ink,#333); }
  .prod-audio-box { background:var(--panel-soft,#faf9ff); padding:12px; border-radius:10px; }
  .prod-audio-row { display:flex; align-items:center; gap:12px; }
  .prod-audio-play {
    flex: none; width: 36px; height: 36px;
    border-radius: 50%; border: 1.5px solid var(--line, #e3e0f0);
    background: var(--panel, #fff); color: var(--ink, #333);
    font-size: 0; line-height: 1; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    position: relative;
    transition: background .15s, border-color .15s, color .15s;
  }
  .prod-audio-play:hover:not(:disabled) { border-color: var(--brand, #6658e8); color: var(--brand, #6658e8); }
  .prod-audio-play:disabled { opacity: .5; cursor: not-allowed; }
  .prod-audio-play .prod-btn-icon { width: 14px; height: 14px; display: block; fill: currentColor; }
  .prod-audio-play .prod-btn-icon__pause { display: none; }
  .prod-audio-play[data-state="playing"] .prod-btn-icon__pause { display: block; }
  .prod-audio-play[data-state="playing"] .prod-btn-icon__play { display: none; }
  .prod-audio-main { flex:1; min-width:0; }
  .prod-audio-name { font-size:13px; color:var(--ink,#333); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .prod-audio-wave { height:18px; background:repeating-linear-gradient(90deg, var(--line,#cfc8e3) 0 2px, transparent 2px 5px); border-radius:3px; opacity:.6; margin-top:6px; }
  .prod-audio-meta { display:flex; justify-content:space-between; font-size:12px; color:var(--muted,#999); margin-top:4px; }
  /* 拍剪·生成声音 loading：按钮转圈 + 温馨提示框（让用户判断是否卡住） */
  .prod-spinner { display:inline-block; width:14px; height:14px; border:2px solid rgba(255,255,255,0.35); border-top-color:#fff; border-radius:50%; animation:prod-spin 0.8s linear infinite; vertical-align:-2px; margin-right:8px; box-sizing:border-box; }
  @keyframes prod-spin { to { transform: rotate(360deg); } }
  .ps-action-note--generating { display:block; margin-top:10px; padding:10px 14px; background:var(--brand-soft,#eeecff); border:1px solid rgba(124,99,255,0.18); border-radius:10px; color:var(--ink,#333); font-size:13px; line-height:1.5; text-align:center; }
  .ps-action-note--generating[hidden] { display:none; }
  .ps-toggle.on .ps-toggle-switch::after { left:18px; }
  /* ===== 克隆结果·卡片（UI 重做）：大圆播放按钮 + 紫色 pill + 波形 + 倍速 + 音量 ===== */
  .prod-result-card { background:var(--panel-soft,#faf9ff); border:1px solid var(--line,#e3e0f0); border-radius:14px; padding:14px 16px 12px; box-shadow:0 1px 2px rgba(0,0,0,.02); }
  .prod-result-card-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
  .prod-result-card-head-title { display:flex; align-items:center; gap:8px; min-width:0; }
  .prod-result-card-head-title { font-size:14px; color:var(--ink,#333); font-weight:400; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:380px; }
  /* 三个音频区域（声音源、克隆结果、视频驱动音频）共用同一淡灰容器。 */
  .prod-result-card--voice { border:1px solid #e2e6ec; border-radius: 10px; background:#f7f8fa; }
  .prod-result-card--voice .prod-result-card-head-title { display:block; flex:1; max-width:none; width:0; }
  .prod-result-card-body { display:flex; gap:18px; align-items:flex-start; }
  .prod-result-card-play {
    flex: none; width: 54px; height: 54px;
    border-radius: 50%; border: none;
    background: linear-gradient(135deg, #8473ff 0%, #c173ee 100%);
    color: #fff; cursor: pointer; position: relative;
    display: flex; align-items: center; justify-content: center;
    font-size: 0;
    transition: transform .12s ease, filter .12s ease;
  }
  .prod-result-card-play:hover:not(:disabled) { transform: scale(1.04); filter: brightness(1.06); }
  .prod-result-card-play:disabled { opacity: .55; cursor: not-allowed; }
  .prod-result-card-play .prod-btn-icon { width: 20px; height: 20px; display: block; fill: currentColor; }
  .prod-result-card-play .prod-btn-icon__pause { display: none; }
  .prod-result-card-play[data-state="playing"] .prod-btn-icon__pause { display: block; }
  .prod-result-card-play[data-state="playing"] .prod-btn-icon__play { display: none; }
  .prod-result-card-main { flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; }
  .prod-result-card-name { font-size:13.5px; color:var(--ink,#333); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-weight:500; }
  .prod-result-card-wave { height:54px; border-radius:6px; position:relative; overflow:hidden; background:linear-gradient(180deg, #faf9ff 0%, #f3efff 100%); }
  .prod-result-card-wave canvas { display:block; width:100%; height:100%; }
  .prod-result-card-status { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:8px 14px; color:var(--muted,#7d8493); font-size:13px; text-align:center; }
  .prod-result-card-status-copy { display:block; width:max-content; max-width:100%; text-align:left; }
  .prod-result-card.is-generating .prod-result-card-status { color:var(--brand,#6658e8); }
  .prod-result-card-bar { height:6px; border-radius:3px; background:rgba(124,99,255,0.14); position:relative; overflow:visible; cursor:grab; padding:6px 0; margin:0 -2px; box-sizing:content-box; }
  .prod-result-card-bar:active { cursor:grabbing; }
  .prod-result-card-bar.is-disabled { cursor:not-allowed; pointer-events:none; opacity:.62; }
  .prod-result-card-bar-fill { position:absolute; left:0; top:6px; bottom:6px; width:0%; border-radius:inherit; background:linear-gradient(90deg, #5a4fff 0%, #8a5ff5 50%, #f05fb2 100%); transition:width .12s linear; }
  .prod-result-card-bar-thumb { position:absolute; left:0%; top:50%; transform:translate(-50%, -50%) scale(.6); width:14px; height:14px; border-radius:50%; background:#fff; border:2px solid #8a5ff5; box-shadow:0 2px 6px rgba(124,99,255,.35); opacity:0; pointer-events:none; transition:opacity .12s, transform .12s; z-index:2; }
  .prod-result-card-bar:hover .prod-result-card-bar-thumb,
  .prod-result-card-bar:focus-within .prod-result-card-bar-thumb,
  .prod-result-card-bar[data-scrubbing="1"] .prod-result-card-bar-thumb { opacity:1; transform:translate(-50%, -50%) scale(1); }
  .prod-result-card-time { display:flex; justify-content:flex-end; gap:4px; font-size:12px; color:var(--muted,#999); margin-top:2px; }
  .prod-result-card-time b { color:var(--ink,#333); font-weight:400; }
  .prod-result-card--voice.has-audio-progress .prod-result-card-time b { font-weight:600; }
  /* 驱动音频卡片：时间 + 倍速 + 音量 同行 */
  .prod-result-card-controls {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:4px;
  }
  .prod-result-card-controls .prod-result-card-time {
    margin-top:0;
    flex: 0 0 auto;
  }
  .prod-result-card-controls .prod-rate-pills {
    flex: 0 0 auto;
  }
  .prod-result-card-controls .prod-vol {
    flex: 0 0 auto;
  }
  /* 进度条在 progress-row 内，不是卡片的直接子元素；用后代选择器覆盖旧紫色轨道。 */
  .prod-result-card--voice .prod-result-card-progress--voice { width:100%; height:8px; margin:8px 0 0; padding:0; box-sizing:border-box; border-radius:999px; background:#e7ebf0; }
  .prod-result-card-progress--voice .prod-result-card-bar-fill { left:1px; top:1px; bottom:1px; max-width:calc(100% - 2px); border-radius:999px; background:rgba(124,99,255,.55); }
  .prod-result-card-progress--voice .prod-result-card-bar-thumb { width:10px; height:10px; border:1.5px solid #aab0bd; box-shadow:none; }
  .prod-result-card-controls--voice { flex-wrap:nowrap; justify-content:flex-start; gap:6px; width:100%; margin-top:2px; padding-left:0; }
  .prod-result-card-controls--voice .prod-rate-pills { min-width:0; gap:3px; }
  .prod-result-card-controls--voice .prod-rate-pill { padding-left:4px; padding-right:4px; }
  .prod-result-card-controls--voice .prod-vol { margin-left:auto; gap:3px; justify-content:flex-end; }
  .prod-result-card-controls--voice .prod-vol-slider { margin:0; }
  .prod-result-card-controls--voice .prod-vol-icon { padding:0; }
  .prod-result-card-controls--voice .prod-vol-icon__svg { width:30px; height:30px; }
  .prod-result-card-controls--voice .prod-result-card-time { margin-left:auto; flex:0 0 auto; gap:3px; font-size:12px; white-space:nowrap; text-align:right; }
  .prod-result-card-controls--voice .prod-result-card-time b { font-weight:400; }
  .prod-result-card-progress-row { display:flex; align-items:center; gap:0; width:100%; margin-top:8px; }
  .prod-result-card-progress-row .prod-result-card-progress--voice { flex:1 1 0; width:auto; min-width:0; margin:0; }
  .prod-result-card-progress-row .prod-result-card-time { flex:0 0 auto; min-width:10ch; justify-content:flex-end; margin:0; white-space:nowrap; font-variant-numeric:tabular-nums; text-align:right; }
  .prod-video-drive-result { margin-top:4px; }
  .prod-video-drive-result .prod-result-card-body { align-items:flex-start; }
  .prod-video-drive-result .prod-result-card-main { gap:6px; }
  /* 视频页左栏会明显窄于整页视口，不能用 viewport 断点判断是否换行。
     始终允许控件在卡片内换行，避免倍速/音量溢出到右侧视频预览下方而无法点击。 */
  .prod-video-drive-result .prod-result-card-controls {
    flex-wrap:nowrap;
    justify-content:flex-start;
    gap:3px 8px;
  }
  .prod-video-drive-result .prod-rate-pills { flex-wrap:nowrap; max-width:none; }
  .prod-video-drive-result .prod-vol { margin-left:auto; }
  /* 倍速项由实际剩余宽度逐个收纳，不再使用固定屏幕断点。 */
  .prod-video-drive-result .prod-rate-wide { display:flex !important; flex-wrap:nowrap; }
  .prod-video-drive-result .prod-rate-compact { display:none !important; }
  /* 按文字笔画而不是按钮盒子对齐：倍速首项与上方进度条左端同线。 */
  .prod-voice-player__tools .prod-rate-pills,
  .prod-result-card-controls--voice .prod-rate-pills {
    margin-left: 0;
  }
  .prod-voice-player__tools .prod-rate-wide > .prod-rate-pill:first-child,
  .prod-voice-player__tools .prod-rate-compact > .prod-rate-pill:first-child,
  .prod-result-card-controls--voice .prod-rate-wide > .prod-rate-pill:first-child,
  .prod-result-card-controls--voice .prod-rate-compact > .prod-rate-pill:first-child {
    padding-left: 0;
  }
  .prod-result-card-tools { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:8px; padding-left:72px; }
  .prod-rate-pills { display:flex; align-items:center; gap:6px; padding:0; margin-left:-7px; border-radius:0; background:transparent; }
  .prod-rate-wide { display:flex; align-items:center; gap:6px; }
  .prod-rate-pill[hidden] { display:none !important; }
  .prod-rate-wide > .prod-rate-more--wide { display:block; }
  .prod-rate-wide > .prod-rate-more--wide[hidden] { display:none !important; }
  .prod-rate-compact { display:none; align-items:center; gap:4px; }
  .prod-rate-more { position:relative; flex:0 0 auto; }
  /* 与“选择声音”下拉框相同的灰色向下三角，不增加圆形外观。 */
  .prod-rate-more-toggle { width:24px; height:28px; display:flex; align-items:center; justify-content:center; box-sizing:border-box; border:0; border-radius:0; color:transparent; background:transparent; cursor:pointer; user-select:none; font-size:0; line-height:1; }
  .prod-rate-more-toggle::after { content:""; width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent; border-top:6px solid var(--muted,#888); }
  .prod-rate-more-toggle:hover,
  .prod-rate-more-toggle[aria-expanded="true"] { background:transparent; }
  .prod-rate-more-toggle:hover::after,
  .prod-rate-more-toggle[aria-expanded="true"]::after { border-top-color:var(--ink,#333); }
  .prod-rate-more-menu { position:absolute; z-index:12; right:0; bottom:calc(100% + 6px); display:grid; grid-template-columns:repeat(5,max-content); gap:4px; padding:6px; border:1px solid var(--line,#e3e0f0); border-radius:9px; background:var(--panel,#fff); box-shadow:0 8px 24px rgba(43,39,70,.12); }
  .prod-rate-more-menu[hidden] { display:none !important; }
  .prod-rate-pill {
    border:none; background:transparent; color:var(--muted,#999);
    font-size:12.5px; font-weight:500; padding:3px 7px; border-radius:6px; line-height:1.4;
    text-shadow:none; cursor:pointer; transition:color .15s, text-shadow .15s; min-width:auto;
  }
  .prod-rate-pill:hover:not(.active) { color:var(--ink,#333); }
  .prod-rate-pill.active {
    background:transparent; color:var(--brand,#6658e8); font-weight:500;
    text-shadow:.35px 0 currentColor,-.35px 0 currentColor;
  }
  .prod-vol { display:flex; align-items:center; gap:6px; min-width:0; }
  /* 音量图标按钮：去边框/去圆头背景，变成纯线性 icon（紧靠滑块，"二级控件"视觉权重） */
  .prod-vol-icon {
    width:auto; height:auto; padding:2px; border:none; background:transparent;
    color:var(--muted,#888); cursor:pointer; line-height:0;
    display:flex; align-items:center; justify-content:center; transition:color .15s;
  }
  .prod-vol-icon:hover { color:var(--ink,#333); }
  .prod-vol-icon__svg { width:15px; height:15px; display:block; fill:currentColor; }
  .prod-vol-icon__svg--mute { display:none; }
  .prod-vol-icon.is-mute .prod-vol-icon__svg--speaker { display:none; }
  .prod-vol-icon.is-mute .prod-vol-icon__svg--mute { display:block; }
  /* 滑块：纯线性灰轨道 + 极小灰边滑块，不抢主进度条的视觉 */
  .prod-vol-slider {
    -webkit-appearance:none; appearance:none; width:90px; height:3px;
    background:#e3e0f0; border-radius:2px; outline:none; cursor:pointer;
  }
  .prod-vol-slider::-webkit-slider-thumb {
    -webkit-appearance:none; width:11px; height:11px; border-radius:50%;
    background:#fff; border:1.5px solid var(--muted,#aab0bd); cursor:pointer;
  }
  .prod-vol-slider::-moz-range-thumb {
    width:11px; height:11px; border-radius:50%; background:#fff; border:1.5px solid var(--muted,#aab0bd); cursor:pointer;
  }
  .prod-vol-val { font-size:12px; color:var(--muted,#aab0bd); font-weight:500; width:3ch; min-width:3ch; flex:0 0 3ch; text-align:right; font-variant-numeric: tabular-nums; }
  /* 声音生成页：宽版与窄版共用同一倍速集合；音量组始终贴播放器右侧。 */
  #prodVoicePlayer .prod-voice-player__tools > .prod-vol,
  .prod-result-card--voice .prod-result-card-controls--voice > .prod-vol {
    margin-left:auto;
    justify-content:flex-end;
    flex:0 0 auto;
  }
  #prodVoicePlayer .prod-voice-player__tools,
  .prod-result-card--voice .prod-result-card-controls--voice { gap:2px; }
  #prodVoicePlayer .prod-voice-player__tools > .prod-rate-pills,
  .prod-result-card--voice .prod-result-card-controls--voice > .prod-rate-pills {
    flex:1 1 auto;
    min-width:0;
  }
  #prodVoicePlayer .prod-rate-wide,
  .prod-result-card--voice .prod-rate-wide { gap:4px; }
  #prodVoicePlayer .prod-rate-wide .prod-rate-pill,
  .prod-result-card--voice .prod-rate-wide .prod-rate-pill { padding-left:4px; padding-right:4px; }
  .prod-voice-player,
  .prod-result-card--voice { container-type:inline-size; }
  @container (max-width: 520px) {
    .prod-voice-player__tools,
    .prod-result-card-controls--voice { flex-wrap:nowrap; justify-content:space-between; gap:8px; }
    .prod-voice-player__tools .prod-rate-pills,
    .prod-result-card-controls--voice .prod-rate-pills { flex:0 0 auto; margin-left:0; }
    .prod-voice-player__tools .prod-vol,
    .prod-result-card-controls--voice .prod-vol { flex:0 1 150px; min-width:118px; margin-left:auto; }
    .prod-voice-player__tools .prod-vol-slider,
    .prod-result-card-controls--voice .prod-vol-slider { flex:1 1 64px; width:auto; min-width:52px; }
  }
  @media (max-width:1160px) {
    html.is-sogou-browser .prod-voice-player__tools,
    html.is-sogou-browser .prod-result-card-controls--voice { flex-wrap:nowrap; justify-content:space-between; gap:8px; }
    html.is-sogou-browser .prod-voice-player__tools .prod-rate-pills,
    html.is-sogou-browser .prod-result-card-controls--voice .prod-rate-pills { flex:0 0 auto; margin-left:0; }
    html.is-sogou-browser .prod-voice-player__tools .prod-vol,
    html.is-sogou-browser .prod-result-card-controls--voice .prod-vol { flex:0 1 150px; min-width:118px; margin-left:auto; }
    html.is-sogou-browser .prod-voice-player__tools .prod-vol-slider,
    html.is-sogou-browser .prod-result-card-controls--voice .prod-vol-slider { flex:1 1 64px; width:auto; min-width:52px; }
  }
  /* 标题区 pill（克隆结果·标题行） */
  .ps-section-tags { display:inline-flex; gap:6px; align-items:center; margin-right:4px; }
  .ps-pill {
    display:inline-flex; align-items:center; height:24px; padding:0 10px;
    border-radius:999px; font-size:12px; font-weight:500; line-height:1;
    border:1px solid transparent;
  }
  .ps-pill--brand { background:rgba(124,99,255,0.12); color:var(--brand,#7c63ff); }
  .ps-pill--muted { background:#f1eefa; color:var(--ink,#555); border-color:#ece9f5; }
  /* 克隆结果区 / 子步骤标题行右侧 ps-pill：保留彩色胶囊标签样式 */
  .ps-pill--model {                  /* ← 模型 pill：Creator OS 紫色 */
    background: linear-gradient(180deg, rgba(124,99,255,0.16), rgba(108,92,231,0.10));
    color: var(--brand,#6C5CE7);
    border-color: rgba(124,99,255,0.22);
  }
  .ps-pill--speed {                  /* 倍速 pill：与生成模型统一为 Creator OS 紫色 */
    background: linear-gradient(180deg, rgba(124,99,255,0.16), rgba(108,92,231,0.10));
    color: var(--brand,#6C5CE7);
    border-color: rgba(124,99,255,0.22);
  }
  .ps-pill--accent {                 /* ← 重音/口音 pill：橙珊瑚色 */
    background: linear-gradient(180deg, rgba(249,115,22,0.14), rgba(234,88,12,0.08));
    color: #C2410C;
    border-color: rgba(249,115,22,0.22);
  }
  .ps-pill--pending {                /* ← 兜底：若未来出现 pending，仍保持"灰胶囊"样式，不会变纯文字 */
    background: #f5f3fb;
    color: #8e91a8;
    border-color: #e9e7f1;
  }
  .prod-result-empty {
    display:flex; align-items:center; justify-content:center; padding:30px 12px;
    border:1px dashed var(--line,#e3e0f0); border-radius:12px;
    font-size:13px; color:var(--muted,#aaa); text-align:center;
  }
  /* ===== 视频生成：双栏布局（左配置 / 右预览） ===== */
  .prod-video-grid { display:flex; gap:20px; align-items:flex-start; justify-content:flex-start; min-height:0; padding:2px 0; }
  .prod-video-col-config { flex:1; display:flex; flex-direction:column; min-width:0; max-width:calc(100% - 300px - 20px); }
  .prod-video-col-preview { flex:0 0 300px; width:300px; min-width:300px; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; }

  .prod-video-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
  .prod-video-head h4 { margin:0; font-size:14px; font-weight:600; color:var(--ink,#333); }
  .prod-video-head-tools { display:flex; gap:8px; }

  .prod-video-mode { display:flex; background:var(--panel-soft,#f5f3ff); border-radius:10px; padding:3px; gap:2px; margin-bottom:14px; }
  .prod-video-mode button { flex:1; padding:7px 14px; font-size:12px; border:none; background:transparent; color:var(--muted,#999); border-radius:8px; cursor:pointer; transition:all .15s; }
  .prod-video-mode button.active { background:var(--panel,#fff); color:var(--brand,#6658e8); font-weight:600; box-shadow:0 1px 3px rgba(0,0,0,.08); }

  .prod-video-label { font-size:14px; font-weight:600; color:var(--ink,#444); margin-bottom:8px; }
  .prod-video-avatar-heading { margin-bottom:8px; }
  .prod-video-avatar-heading .prod-video-label { margin-bottom:0; }
  .prod-video-label .prod-video-label-hint { font-weight:400; color:var(--muted,#999); font-size:12px; margin-left:6px; }

  .prod-video-avatars {
    display:flex; flex-direction:row; flex-wrap:nowrap;
    gap:10px; margin-bottom:14px;
    overflow-x:auto; overflow-y:visible;
    padding:2px 2px 10px 2px; scroll-padding: 0 2px;
    min-height:150px;  /* 紧凑布局：贴底无空隙 */
    height:auto;
    flex-shrink:0;
  }
  .prod-video-avatars::-webkit-scrollbar { height:8px; }
  .prod-video-avatars::-webkit-scrollbar-track { background: #f5f4f9; border-radius: 999px; }
  .prod-video-avatars::-webkit-scrollbar-thumb { background: #d7d3e8; border-radius: 999px; }
  .prod-video-avatars::-webkit-scrollbar-thumb:hover { background: #bdb7d6; }
  .prod-avatar-card {
    position:relative;
    flex: 0 0 auto;
    width: 108px;
    min-width: 108px;
    height: 156px;
    display:flex;
    flex-direction:column;
    gap:6px;
    padding:8px;
    border:1.5px solid var(--line,#e3e0f0);
    border-radius:12px;
    background:var(--panel,#fff);
    cursor:pointer;
    transition:border-color .15s, box-shadow .15s;
  }
  .prod-avatar-card:hover { border-color:#c3b9e8; }
  .prod-avatar-card.selected { border-color:var(--brand,#6658e8); box-shadow:0 0 0 3px rgba(102,88,232,.12); }
  .prod-avatar-card .prod-avatar-tick { position:absolute; top:6px; right:6px; width:16px; height:16px; border-radius:50%; background:var(--brand,#6658e8); color:#fff; font-size:12px; line-height:16px; display:none; align-items:center; justify-content:center; z-index:2; }
  .prod-avatar-card.selected .prod-avatar-tick { display:flex; }
  .prod-avatar-card .prod-avatar-name { font-size:12px; font-weight:600; color:var(--ink,#333); line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; width:100%; }
  .prod-avatar-card .prod-avatar-thumb-wrap { flex:1; min-height:0; position:relative; border-radius:8px; overflow:hidden; background:var(--panel-soft,#f3f0ff); }
  .prod-avatar-card .prod-avatar-thumb-wrap .prod-avatar-circle { width:100%; height:100%; border-radius:8px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:24px; font-weight:700; }
  .prod-avatar-card .prod-avatar-thumb { width:100%; height:100%; border-radius:8px; object-fit:cover; display:block; }
  .prod-avatar-card__actions { position:absolute; right:0; bottom:0; left:0; z-index:3; display:flex; align-items:center; justify-content:center; height:34px; background:rgba(31,35,43,.7); opacity:0; transform:translateY(100%); transition:opacity .16s ease,transform .16s ease; }
  .prod-avatar-card:hover .prod-avatar-card__actions,
  .prod-avatar-card:focus-within .prod-avatar-card__actions { opacity:1; transform:translateY(0); }
  .prod-avatar-card__actions button { display:flex; align-items:center; justify-content:center; width:30px; height:34px; padding:0; border:0; color:#fff; background:transparent; cursor:pointer; }
  .prod-avatar-card__actions button:hover { background:rgba(255,255,255,.18); }
  .prod-avatar-card__actions svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
  .prod-avatar-card.add-more {
    border-style:dashed;
    color:var(--muted,#999);
  }
  .prod-avatar-card.add-more .prod-avatar-thumb-wrap { background: var(--brand-soft,#eeecff); display:flex; align-items:center; justify-content:center; }
  .prod-avatar-card.add-more .prod-avatar-thumb-wrap .prod-avatar-circle { background: transparent; color: var(--brand,#6658e8); font-size:30px; width:auto; height:auto; }
  /* 兼容 JS 老写法（直接把 "+" 圆圈放在 add-more 卡片根下而不是 thumb-wrap 内）时，仍然保持整张卡高度 156px，圆圈不会塌： */
  .prod-avatar-card.add-more > .prod-avatar-circle:first-child {
    width:100%;
    flex:1;
    min-height:0;
    border-radius:8px;
    background: var(--brand-soft,#eeecff);
    color: var(--brand,#6658e8);
    font-size:30px;
    display:flex; align-items:center; justify-content:center;
  }

  .modal.avatar-preview-modal__dialog { width:min(458px,100%); }
  .avatar-preview-modal__head { margin-bottom:0; }
  .avatar-preview-modal__body { display:flex; width:100%; aspect-ratio:9 / 16; align-items:stretch; justify-content:stretch; min-height:0; padding:0; border-radius:10px; background:#f7f4ee; overflow:hidden; }
  .avatar-preview-modal__body video { display:block; width:100%; height:100%; min-width:100%; min-height:100%; object-fit:cover; background:#f7f4ee; }
  @media (max-height:860px) {
    .modal.avatar-preview-modal__dialog { width:min(380px,100%); }
  }

  .prod-video-audio { border:1px solid var(--line,#e3e0f0); border-radius:10px; padding:12px; background:var(--panel-soft,#faf9ff); margin-bottom:14px; }
  .prod-video-audio-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
  .prod-video-audio-head label { font-size:12px; font-weight:600; color:var(--ink,#444); }
  .prod-video-audio-empty { font-size:12px; color:var(--muted,#999); }
  .prod-video-audio-btn { width:100%; padding:10px; border:1.5px dashed var(--brand,#6658e8); border-radius:10px; background:var(--panel,#fff); color:var(--brand,#6658e8); font-size:13px; font-weight:600; cursor:pointer; transition:background .15s; }
  .prod-video-audio-btn:hover { background:var(--brand-soft,#eeecff); }
  .prod-video-audio-selected { display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:8px; background:var(--panel,#fff); border:1px solid var(--line,#e3e0f0); font-size:12px; color:var(--ink,#333); }
  .prod-video-audio-selected .name { flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .prod-video-audio-selected .remove { color:var(--muted,#999); cursor:pointer; font-size:12px; }

  .prod-video-model { margin-bottom:5px; }
  .prod-video-model label { display:block; font-size:14px; font-weight:600; color:var(--ink,#333); margin-bottom:5px; }
  .prod-video-model select { width:100%; padding:9px 12px; border:1px solid var(--line,#e3e0f0); border-radius:10px; background:var(--panel,#fff); color:var(--ink,#333); font-size:13px; appearance:none; -webkit-appearance:none; background-image:linear-gradient(45deg, transparent 50%, var(--muted,#888) 50%), linear-gradient(135deg, var(--muted,#888) 50%, transparent 50%); background-position:calc(100% - 16px) calc(50% - 2px), calc(100% - 11px) calc(50% - 2px); background-size:5px 5px, 5px 5px; background-repeat:no-repeat; padding-right:28px; }
  .prod-video-model select:focus { outline:none; border-color:var(--brand,#6658e8); box-shadow:0 0 0 3px rgba(102,88,232,.12); }

  .prod-video-generate { width:100%; padding:12px; border:none; border-radius:12px; background:linear-gradient(135deg, var(--brand,#6658e8), #9a8af0); color:#fff; font-size:14px; font-weight:600; cursor:pointer; transition:transform .12s, box-shadow .15s; box-shadow:0 4px 12px rgba(102,88,232,.25); }
  .prod-video-generate-actions { display:flex; gap:10px; align-items:stretch; }
  .prod-video-generate-actions .prod-video-generate { flex:1; }
  .prod-video-cancel { flex:0 0 auto; min-width:96px; }
  .prod-video-generate:hover { transform:translateY(-1px); box-shadow:0 6px 16px rgba(102,88,232,.32); }
  .prod-video-generate:disabled { opacity:.5; cursor:not-allowed; transform:none; box-shadow:none; }

  .prod-video-preview { width:300px; min-height:670px; height:auto; flex:0 0 auto; display:flex; flex-direction:column; border:1px solid var(--line,#e3e0f0); border-radius:16px; overflow:hidden; background:var(--panel,#fff); box-shadow:0 1px 2px rgba(15,18,42,.04), 0 4px 18px rgba(15,18,42,.05); }
  .prod-video-preview-head { height:54px; flex:0 0 54px; display:flex; align-items:center; justify-content:space-between; padding:0 18px; border-bottom:1px solid var(--line,#ece8f4); font-size:15px; font-weight:700; color:var(--ink,#1e1b35); background:var(--panel,#fff); letter-spacing:0.2px; box-sizing:border-box; }
  .prod-video-preview-body { height:536px; flex:0 0 536px; width:100%; box-sizing:border-box; display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--panel,#fff); color:var(--muted,#8b8aa6); gap:10px; padding:24px; position:relative; overflow:hidden; }
  .prod-video-preview-body.video-active { background:#000; padding:0; }
  /* 兼容旧的 inner-box 类（防止某些路径没卸掉时仍然有独立壳显示）：直接 100% 铺满、无边框无阴影、无内边距 */
  .prod-video-preview-inner-box { width:100%; height:100%; max-width:100%; max-height:100%; background:#000; border-radius:0; overflow:hidden; position:relative; box-shadow:none; display:block; padding:0; margin:0; }
  .prod-video-preview-body.video-active .prod-video-preview-inner-box { border-radius:0; box-shadow:none; background:#000; }
  .prod-video-preview-icon { font-size:42px; opacity:.55; }
  .prod-video-preview-label { font-size:14px; font-weight:600; color:#888; }
  .prod-video-preview-body:has(video) .prod-video-preview-label { display:none; }
  .prod-video-preview-body:has(video) .prod-video-preview-sub   { display:none; }
  .prod-video-preview-body:has(video) .prod-video-preview-icon  { display:none; }
  .prod-video-preview-sub { font-size:12px; }
  .prod-video-preview-video { width:100%; height:100%; max-height:100%; border-radius:0; background:#000; object-fit:contain; display:block; }
  .prod-video-col-preview > .prod-video-preview { min-height:0; height:auto; }
  .prod-video-col-preview .prod-video-preview-body {
    height:auto;
    aspect-ratio:9 / 16;
    flex:0 0 auto;
  }
  .s-real-video::-webkit-media-controls,
  .s-real-video::-webkit-media-controls-enclosure { display:none !important; }
  /* 网感剪辑页面预览区适配 */
  .prod-video-preview--edit { margin-left:0; }
  .prod-video-preview-foot {
    min-height:80px;
    height:auto;
    flex:0 0 auto;
    box-sizing:border-box;
    padding: 12px 18px 10px;
    border-top: 1px solid var(--line,#ece8f4);
    background: var(--panel,#fff);
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-radius: 0 0 15px 15px;
    overflow: visible;
  }
  .pvf-title-row {
    display: block;
    width: 100%;
    min-width: 0;
  }
  .pvf-title {
    font-size: 15px;
    line-height: 1.4;
    font-weight: 400;          /* ← 不加粗 */
    color: var(--ink,#1e1b35);
    letter-spacing: 0.15px;
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;              /* ← 关键：在 flex 容器中允许收缩，触发 ellipsis */
    flex-shrink: 1;            /* ← 允许 flex 子项收缩 */
    white-space: nowrap;       /* ← 一行 */
    overflow: hidden;          /* ← 超出截断 */
    text-overflow: ellipsis;   /* ← 截断末尾加省略号 */
  }
  .pvf-specs-row {
    display: flex;
    flex-wrap: wrap; /* 窄屏自动折行 */
    align-items: center;
    gap: 6px 8px;   /* 横向8px / 纵向6px */
    justify-content: flex-start; /* 参数全部规整到左侧一块儿 */
  }
  .pvf-chip {
    display: inline-flex;
    align-items: center;
    padding: 3px 6px;
    font-size: 12px;
    line-height: 1.6;
    font-weight: 500;
    color: #6b6e7e;        /* 统一的灰色参数字 */
    background: #f3f2f6;   /* 浅灰底，Creator OS 风格 */
    border: 1px solid #e8e7ec;
    border-radius: 7px;
    white-space: nowrap;
  }

  .prod-video-result { margin-top:14px; }


  .ps-shotlist { margin:0; padding-left:18px; font-size:13px; line-height:1.9; color:var(--ink,#444); }
  .ps-timeline { display:flex; gap:4px; height:42px; }
  .ps-timeline-clip { display:flex; align-items:center; justify-content:center; font-size:12px; color:#fff; border-radius:6px; background:linear-gradient(135deg,var(--brand,#6658e8),#9a8af0); }
.milestone-note { display: block; min-height: 16px; margin-top: 6px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.legend-dot.content-color { background: linear-gradient(90deg,#6658e8 0 45%,#2d8a61 45% 100%); }
.legend-dot.review { background: #d38a3b; }
.risk-banner { margin-top: 12px; padding: 11px; border: 1px solid #f0d97b; border-radius: 9px; color: var(--yellow); background: var(--yellow-soft); font-size: 12px; line-height: 1.55; }
.ok-banner { margin-top: 12px; padding: 11px; border-radius: 9px; color: var(--green); background: var(--green-soft); font-size: 12px; }
.check-row { display: flex; align-items: flex-start; gap: 8px; color: #4f5967; font-size: 12px; }
.check-row input { margin-top: 2px; accent-color: var(--brand); }

.publish-pack { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(260px,.75fr); gap: 14px; }
.publish-video-path-block { display: grid; gap: 8px; }
.publish-path-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; align-items: center; }
.publish-path-row .button { white-space: nowrap; }
.publish-video-select-row { grid-template-columns: minmax(0, 1fr) auto 34px; }
.publish-root-gear { width: 34px; min-width: 34px; padding: 0; font-size: 15px; }
.publish-invalid { border-color: #dc4b55 !important; box-shadow: 0 0 0 3px rgba(220,75,85,.12) !important; }
.publish-account-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fafbfc; }
.publish-account-copy { min-width: 0; display: flex; align-items: center; gap: 9px; }
.publish-account-copy strong { display: block; font-size: 12px; }
.publish-account-copy small { display: block; margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.publish-status-dot { flex: 0 0 auto; width: 9px; height: 9px; border-radius: 50%; background: #aab1bd; }
.publish-account-card[data-status="ready"] .publish-status-dot, .publish-account-card[data-status="filled"] .publish-status-dot { background: var(--green); box-shadow: 0 0 0 4px var(--green-soft); }
.publish-account-card[data-status="starting"] .publish-status-dot, .publish-account-card[data-status="waiting_login"] .publish-status-dot, .publish-account-card[data-status="uploading"] .publish-status-dot { background: var(--orange); box-shadow: 0 0 0 4px var(--orange-soft); }
.publish-account-card[data-status="failed"] .publish-status-dot { background: #dc4b55; box-shadow: 0 0 0 4px #fff0f1; }
.publish-config-options { display:flex; align-items:center; gap:20px; margin:0 0 12px; padding:10px 12px; border:1px solid var(--line); border-radius:9px; background:var(--panel-soft); }
.publish-config-check { align-items:center; color:var(--ink); font-size:14px; cursor:pointer; }
.publish-config-check input { width:16px; height:16px; margin:0; cursor:pointer; }
.publish-schedule-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-bottom:12px; padding:12px; border:1px solid var(--line); border-radius:9px; background:var(--panel-soft); }
.publish-schedule-fields[hidden] { display: none; }
.publish-schedule-fields .field { margin-bottom:0; }
.publish-time-presets { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.publish-time-presets > span { color:var(--muted); font-size:12px; }
.publish-time-presets > div { display:flex; align-items:center; gap:6px; }
.publish-time-presets button { min-width:58px; padding:6px 10px; border:1px solid var(--line); border-radius:7px; color:var(--muted); background:var(--panel); cursor:pointer; font-size:12px; }
.publish-time-presets button:hover { border-color:var(--brand); color:var(--brand); }
.publish-time-presets button.active { border-color:var(--brand); color:var(--brand); background:var(--brand-soft); font-weight:600; }
.button.compact { padding: 7px 10px; font-size: 12px; white-space: nowrap; }
.publish-status-card { padding: 16px; border: 1px solid var(--line); border-radius: 11px; background: var(--panel); }
.publish-status-card .big-status { display: inline-flex; margin-bottom: 12px; padding: 6px 9px; border-radius: 999px; color: var(--brand); background: var(--brand-soft); font-size: 12px; }
.publish-checklist { display: grid; gap: 8px; margin: 10px 0 14px; color: var(--muted); font-size: 12px; }
.publish-checklist span.done { color: var(--green); }

/* ===== 发布区三栏：左侧竖屏预览 / 中间发布内容 / 右侧发布配置 ===== */
.publish-pack {
  grid-template-columns:minmax(300px,.72fr) minmax(400px,1.15fr) minmax(360px,.95fr);
  gap:16px;
  align-items:start;
}
.publish-pack > .stage-card { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.publish-content-settings,
.publish-config { min-width:0; }
.publish-materials__header h3,
.publish-cover-materials__header h3,
.publish-content-settings .field > span:not(.field-save-head),
.publish-content-settings .field-save-head > span:first-child,
.publish-content-settings .publish-cover-row__label,
.publish-content-settings .publish-copy-arrangement__head strong,
.publish-config__header h3,
.publish-config .field > span {
  color:var(--ink);
  font-family:inherit;
  font-size:16px !important;
  font-weight:600;
  line-height:1.4;
}
.publish-materials { min-width:0; }
.publish-materials__header { display:flex; align-items:stretch; gap:10px; height:45px; min-height:45px; margin-bottom:0; }
.publish-materials__header h3 { display:flex; align-items:center; height:45px; min-height:45px; margin:0; flex:0 0 auto; }
.publish-materials__path { display:flex; align-items:center; align-self:stretch; flex:1 1 auto; min-width:0; height:45px; min-height:45px; box-sizing:border-box; font-size:12px; color:var(--muted); padding:10px; background:var(--bg-soft); border:1px solid var(--line); border-radius:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-family:inherit; }
.publish-materials__path.is-empty { display: none; }
.publish-materials__actions { display:flex; align-items:center; gap:6px; flex:0 0 auto; min-height:44px; margin-left:auto; }
.publish-video-select-button { display:inline-flex; align-items:center; justify-content:center; width:88px; min-width:88px; box-sizing:border-box; }
.button.secondary.compact:disabled,
.button.secondary.compact[disabled] { opacity: 0.45; cursor: not-allowed; pointer-events: none; }
.publish-video-preview {
  position:relative;
  isolation:isolate;
  width:min(100%,300px);
  box-sizing:border-box;
  margin:0 auto 10px;
  padding-inline:10px;
  border:1px solid transparent;
  border-radius:24px;
  background:#fff;
  box-shadow:none;
  display:flex;
  flex-direction:column;
  overflow:visible;
}
.publish-video-preview-head,
.publish-video-preview-foot {
  position:relative;
  z-index:1;
  width:100%;
  padding-inline:0;
}
.publish-video-preview-head { border-radius:23px 23px 0 0; }
.publish-video-preview-foot { padding:12px 0 10px; border-radius:0 0 23px 23px; }
.publish-video-preview-frame {
  position:absolute;
  z-index:20;
  inset:1px -1px 0;
  margin:0;
  border:1px solid #7b818b;
  border-radius:24px;
  box-shadow:
    0 0 0 2px #2f333a,
    0 0 0 3px rgba(255,255,255,.72),
    0 9px 22px rgba(20,24,32,.16),
    inset 0 0 0 1px rgba(255,255,255,.42);
  pointer-events:none;
}
/* 侧键参数与剪辑页保持一致，只做装饰，不参与播放器布局。 */
.publish-video-preview::before,
.publish-video-preview::after { content:""; position:absolute; z-index:-1; width:3px; background:#353941; pointer-events:none; }
.publish-video-preview::before { top:88px; right:-5px; height:42px; border-radius:0 3px 3px 0; }
.publish-video-preview::after { top:78px; left:-5px; height:68px; border-radius:3px 0 0 3px; background:linear-gradient(to bottom,#353941 0 12px,transparent 12px 22px,#353941 22px 42px,transparent 42px 48px,#353941 48px 68px); }
.publish-video-preview-body { position:relative; z-index:1; width:100%; height:auto; flex:0 0 auto; aspect-ratio:9/16; padding:0; gap:0; display:flex; align-items:center; justify-content:center; background:#111; overflow:hidden; }
.publish-video-preview.is-empty .publish-video-preview-body { background:#f7f4ee; }
.publish-video-preview__placeholder { text-align:center; color:var(--muted); padding:16px; }
.publish-video-preview__icon { font-size:32px; color:var(--brand); margin-bottom:6px; }
.publish-video-preview__video { display:block; width:100%; height:100%; object-fit:contain; background:#111; border-radius:0; }
.publish-player-controls { position:absolute; z-index:3; left:0; right:0; bottom:0; padding:5px 3px 5px; color:#fff; background:linear-gradient(transparent,rgba(0,0,0,.88) 38%); }
.publish-player-controls[hidden], .publish-player-controls__menu[hidden] { display:none !important; }
.publish-player-controls__row { display:flex; align-items:center; gap:3px; min-height:29px; }
.publish-player-controls__button { flex:0 0 28px; width:28px; height:28px; padding:0; border:0; border-radius:5px; background:transparent; color:#fff; font-size:19px; line-height:1; cursor:pointer; }
.publish-player-controls__row > #publishPlayerPlay { display:flex; align-items:center; justify-content:center; gap:3px; flex-basis:28px; width:28px; font-size:15px; }
#publishPlayerPlay.is-playing::before, #publishPlayerPlay.is-playing::after { content:""; display:block; width:3px; height:12px; background:currentColor; }
.publish-player-controls__row > #publishPlayerFullscreen { position:relative; left:6px; margin-left:3px; }
.publish-player-controls__row #publishPlayerMore { position:relative; left:1px; display:flex; align-items:center; justify-content:center; width:28px; height:28px; font-size:20px; }
.publish-speed-glyph { position:relative; top:-1px; line-height:1; }
.publish-player-controls__button:hover, .publish-player-controls__button:focus-visible { background:rgba(255,255,255,.16); }
.publish-player-controls__button svg { display:block; width:22px; height:22px; margin:auto; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
#publishPlayerFullscreen .publish-fullscreen-enter { font-size:19px; line-height:1; }
#publishPlayerFullscreen .publish-fullscreen-exit { display:none; width:19px; height:19px; transform:scale(.90); }
#publishPlayerFullscreen.is-fullscreen .publish-fullscreen-enter { display:none; }
#publishPlayerFullscreen.is-fullscreen .publish-fullscreen-exit { display:block; }
.publish-player-controls__button .publish-volume-muted, .publish-player-controls__button.is-muted .publish-volume-waves { display:none; }
.publish-player-controls__button.is-muted .publish-volume-muted { display:block; }
.publish-player-controls__time { flex:0 0 68px; width:68px; white-space:nowrap; font-size:12px; font-variant-numeric:tabular-nums; }
.publish-player-controls__volume { position:relative; flex:0 0 28px; width:28px; height:28px; }
.publish-player-controls__volume input { position:absolute; z-index:4; left:28px; top:1px; width:0; height:26px; margin:0; padding:0; border:0; border-radius:0; opacity:0; pointer-events:none; background:transparent; appearance:none; -webkit-appearance:none; transition:width .15s ease, opacity .15s ease; }
.publish-player-controls__volume:hover input, .publish-player-controls__volume:focus-within input { width:84px; opacity:1; pointer-events:auto; }
.publish-player-controls__volume input::-webkit-slider-runnable-track { height:3px; border-radius:4px; background:#d6d6d6; }
.publish-player-controls__volume input::-webkit-slider-thumb { width:12px; height:12px; margin-top:-4.5px; border:0; border-radius:50%; appearance:none; -webkit-appearance:none; background:#fff; }
.publish-player-controls__volume input::-moz-range-track { height:3px; border-radius:4px; background:#d6d6d6; }
.publish-player-controls__volume input::-moz-range-thumb { width:12px; height:12px; border:0; border-radius:50%; background:#fff; }
.publish-player-controls__volume-value { position:absolute; z-index:5; top:-26px; transform:translateX(-50%); padding:2px 5px; border-radius:4px; background:rgba(25,25,27,.92); color:#fff; font-size:11px; line-height:16px; white-space:nowrap; pointer-events:none; font-variant-numeric:tabular-nums; }
.publish-player-controls__volume-value[hidden] { display:none; }
.publish-player-controls__spacer { flex:1 1 auto; min-width:0; }
.publish-player-controls__more { position:relative; flex:0 0 28px; height:28px; }
.publish-player-controls__menu { position:absolute; right:23px; bottom:1px; display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:2px; width:150px; padding:4px; border-radius:8px; background:#242428; box-shadow:0 5px 18px rgba(0,0,0,.35); }
.publish-player-controls__menu button { display:block; width:100%; padding:6px 9px; border:0; border-radius:5px; background:transparent; color:#fff; text-align:left; cursor:pointer; }
.publish-player-controls__menu button:hover, .publish-player-controls__menu button:focus-visible { background:#504c74; }
.publish-player-controls__seek { display:block; width:calc(100% - 18px); height:11px; margin:2.7px 11px 1px 7px; padding:0; border:0; appearance:none; -webkit-appearance:none; background:transparent; cursor:pointer; }
.publish-player-controls__seek::-webkit-slider-runnable-track { height:4px; border-radius:4px; background:linear-gradient(to right,#fff 0 var(--publish-seek-played,0%),#bcbcbc var(--publish-seek-played,0%) 100%); }
.publish-player-controls__seek::-webkit-slider-thumb { width:11px; height:11px; margin-top:-3.5px; border:0; border-radius:50%; appearance:none; -webkit-appearance:none; background:#fff; }
.publish-player-controls__seek::-moz-range-track { height:4px; border-radius:4px; background:linear-gradient(to right,#fff 0 var(--publish-seek-played,0%),#bcbcbc var(--publish-seek-played,0%) 100%); }
.publish-player-controls__seek::-moz-range-thumb { width:11px; height:11px; border:0; border-radius:50%; background:#fff; }
.publish-video-preview:fullscreen { width:100%; height:100%; max-width:none; border:0; border-radius:0; background:#111; justify-content:center; }
.publish-video-preview:fullscreen .publish-video-preview-body { flex:1 1 auto; min-height:0; aspect-ratio:auto; }
.publish-video-preview:fullscreen .publish-video-preview-head, .publish-video-preview:fullscreen .publish-video-preview-foot, .publish-video-preview:fullscreen .publish-video-preview-frame { display:none; }
.publish-video-preview__hint { font-size:12px; line-height:1.6; }
.publish-video-preview__hint span { color:var(--brand); }
.publish-video-preview__filename { position:absolute; left:8px; right:8px; bottom:8px; background:rgba(255,255,255,0.92); padding:4px 8px; border-radius:6px; font-size:12px; color:var(--ink); }
.publish-tags-field { display:block; }
.publish-content-settings .field > input,
.publish-content-settings .field > textarea,
.publish-content-settings .publish-tags {
  border:1px solid var(--line);
  border-radius:8px;
  padding:9px 11px;
  color:var(--text);
  background:var(--panel);
  font-family:inherit;
  font-size:14px !important;
  line-height:1.55;
}
.publish-content-settings .field > input:focus,
.publish-content-settings .field > textarea:focus,
.publish-content-settings .publish-tags:focus-within {
  border-color:#aaa1ff;
  outline:0;
  box-shadow:0 0 0 1px rgba(102,86,238,.10), 0 0 4px rgba(102,86,238,.08);
}
.publish-content-settings .field > input::placeholder,
.publish-content-settings .field > textarea::placeholder,
.publish-content-settings .publish-tag-input::placeholder { color:#b7bdc8; opacity:1; }
.publish-tags { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.publish-tag-chip { display:inline-flex; align-items:center; gap:4px; padding:3px 4px 3px 8px; border-radius:999px; background:var(--brand-soft); color:var(--brand); font-size:12px; }
.publish-tag-chip__x { background:none; border:none; color:inherit; cursor:pointer; padding:0 4px; font-size:12px; line-height:1; opacity:0.6; }
.publish-tag-chip__x:hover { opacity:1; }
.publish-content-settings .publish-tag-input { flex:1; min-width:120px; border:none; outline:none; background:transparent; font-family:inherit; font-size:14px !important; line-height:1.55; padding:0; }
.publish-cover-materials { margin-top:28px; }
.publish-cover-materials__header { position:relative; display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.publish-cover-materials__header h3 { margin:0; }
.publish-cover-materials__actions { display:flex; align-items:center; justify-content:flex-end; gap:6px; transform:translateY(2px); }
.publish-cover-gallery { display:flex; align-items:flex-start; gap:10px; min-height:0; padding:0; overflow:visible; }
.publish-cover-empty,
.publish-cover-thumb { flex:0 0 112px; width:112px; min-height:142px; padding:7px; border:1px dashed var(--line); border-radius:12px; background:#fff; box-sizing:border-box; }
.publish-cover-empty { display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; min-height:0; aspect-ratio:3/4; color:var(--muted); text-align:left; cursor:pointer; font-family:inherit; }
.publish-cover-empty:hover { border-color:var(--brand); }
.publish-cover-empty > strong { display:block; overflow:hidden; margin:0 0 7px; color:var(--ink); font-size:12px; font-weight:700; line-height:18px; text-overflow:ellipsis; white-space:nowrap; }
.publish-cover-empty > span { display:flex; flex:1 1 auto; align-items:center; justify-content:center; width:100%; min-height:0; border-radius:8px; color:var(--brand); background:var(--brand-soft); font-size:30px; }
.publish-cover-error { position:absolute; left:0; top:27px; z-index:1; display:block; max-width:calc(100% - 6px); overflow:hidden; color:#d83b4b; font-size:11px; font-weight:500; line-height:13px; text-overflow:ellipsis; white-space:nowrap; }
.publish-cover-error[hidden] { display:none; }
.publish-cover-thumb { border-style:solid; border-color:var(--brand); box-shadow:0 0 0 2px rgba(102,86,238,.15); }
.publish-cover-thumb { min-height:0; padding:0; aspect-ratio:3/4; overflow:hidden; border-radius:7px; }
.publish-cover-thumb__name { display:none; }
.publish-cover-thumb__image { position:relative; width:100%; height:100%; aspect-ratio:auto; overflow:hidden; border-radius:6px; background:var(--bg-soft); cursor:pointer; }
.publish-cover-thumb__image img { display:block; width:100%; height:100%; object-fit:cover; }
.publish-cover-thumb__missing { display:flex; align-items:center; justify-content:center; width:100%; height:100%; box-sizing:border-box; padding:12px; color:#8a6470; background:#f8f1f3; font-size:12px; line-height:1.55; text-align:center; }
.publish-cover-thumb.is-missing { border-color:#d7a9b5; box-shadow:0 0 0 2px rgba(184,104,125,.1); }
.publish-cover-thumb__check { position:absolute; top:5px; right:5px; display:block; width:18px; height:18px; cursor:pointer; }
.publish-cover-thumb__check input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.publish-cover-thumb__check span { display:flex; align-items:center; justify-content:center; width:18px; height:18px; box-sizing:border-box; border:1.5px solid rgba(255,255,255,.95); border-radius:4px; color:transparent; background:rgba(24,28,38,.42); font-size:12px; font-weight:700; transition:background .14s,border-color .14s,color .14s; }
.publish-cover-thumb__check input:checked + span { border-color:var(--brand); color:#fff; background:var(--brand); }
.publish-cover-thumb__check input:focus-visible + span { outline:2px solid #fff; outline-offset:1px; }
.publish-cover-thumb__actions { position:absolute; right:0; bottom:0; left:0; display:flex; align-items:center; justify-content:center; height:34px; background:rgba(31,35,43,.68); opacity:0; transform:translateY(100%); transition:opacity .16s ease,transform .16s ease; }
.publish-cover-thumb:hover .publish-cover-thumb__actions,
.publish-cover-thumb:focus-within .publish-cover-thumb__actions { opacity:1; transform:translateY(0); }
.publish-cover-thumb__actions button { display:flex; align-items:center; justify-content:center; width:32px; height:34px; padding:0; border:0; color:#fff; background:transparent; cursor:pointer; }
.publish-cover-thumb__actions button:hover { background:rgba(255,255,255,.18); }
.publish-cover-thumb__actions svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.publish-cover-lightbox { position:fixed; inset:0; z-index:10050; display:flex; align-items:center; justify-content:center; padding:28px; background:rgba(17,20,28,.72); backdrop-filter:blur(3px); }
.publish-cover-lightbox[hidden] { display:none; }
.publish-cover-lightbox__panel { position:relative; display:flex; flex-direction:column; align-items:center; max-width:min(760px,92vw); max-height:90vh; padding:16px; border-radius:14px; background:#fff; box-shadow:0 24px 70px rgba(0,0,0,.35); }
.publish-cover-lightbox__panel img { display:block; max-width:100%; max-height:calc(90vh - 72px); object-fit:contain; border-radius:8px; background:#f7f4ee; }
.publish-cover-lightbox__close { position:absolute; top:8px; right:8px; z-index:1; display:flex; align-items:center; justify-content:center; width:32px; height:32px; padding:0; border:1px solid rgba(255,255,255,.45); border-radius:50%; color:#fff; background:rgba(20,23,30,.58); cursor:pointer; font-size:22px; line-height:1; }
.publish-cover-lightbox__name { max-width:100%; margin-top:10px; overflow:hidden; color:var(--muted); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.publish-cover-materials > .hint { display:block; margin-top:10px; }
.publish-config { display:flex; flex-direction:column; }
.publish-config__header { display:flex; align-items:center; justify-content:space-between; height:45px; min-height:45px; box-sizing:border-box; margin-bottom:8px; }
.publish-config__header h3 { display:flex; align-items:center; height:45px; margin:0; }
.publish-config__header > .button { align-self:center; }
.publish-config__summary { font-size:12px; color:var(--muted); margin-bottom:8px; }
.publish-config__warn { color:var(--orange); font-size:12px; margin-top:2px; }
.publish-config__platform { margin-bottom:8px; }
.publish-accounts { display:flex; flex-direction:column; gap:6px; margin-bottom:10px; }
.publish-account-item { display:grid; grid-template-columns:18px 36px minmax(0,1fr) 28px auto; align-items:center; gap:10px; padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:#fff; cursor:pointer; transition:all 0.15s; margin:0; }
.publish-account-item:hover { border-color:var(--brand); background:#f7f8fb; }
.publish-account-item.is-selected { border-color:var(--brand); background:var(--brand-soft); box-shadow:0 0 0 1px var(--brand) inset; }
.publish-account-item__check { display:flex; align-items:center; justify-content:center; width:18px; height:18px; margin:0; cursor:pointer; border:1.5px solid var(--line); border-radius:4px; background:#fff; transition:all 0.12s; color:transparent; user-select:none; box-sizing:border-box; }
.publish-account-item__check:hover { border-color:var(--brand); }
.publish-account-item__check:focus-visible { outline:2px solid var(--brand); outline-offset:1px; }
.publish-account-item__check.is-checked { background:var(--brand); border-color:var(--brand); color:#fff; }
.publish-account-item__check svg { display:block; pointer-events:none; }
.publish-account-item--paused { grid-template-columns:36px minmax(0,1fr) 28px auto; cursor:default; background:#fafafa; border-style:dashed; }
.publish-account-item--paused:hover { border-color:var(--line); background:#fafafa; }
.publish-account-item__logo { width:36px; height:36px; border-radius:8px; overflow:hidden; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:#fff; }
.publish-account-item__logo svg { display:block; }
/* 老 avatar 类保留空实现，避免残留报错；新代码只用 __logo */
.publish-account-item__avatar { display:none; }
.publish-account-item__copy { min-width:0; display:flex; flex-direction:column; min-height:36px; }
.publish-account-item__name { display:block; font-size:13px; color:var(--ink); font-weight:600; line-height:18px; height:18px; }
.publish-account-item__copy small { font-size:12px; color:var(--muted); }
.publish-account-item__remark { display:block; font-size:12px; color:#9aa0a6; margin-top:4px; line-height:14px; height:14px; font-style:normal; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.publish-account-item__remark.is-empty { visibility:hidden; }
.publish-account-item__status { font-size:14px; line-height:1; text-align:center; }
.publish-account-item__status.is-ready { color:var(--green); }
.publish-account-item__status.is-paused { color:#faad14; }
.publish-account-item__status.is-off { color:#ccd0d8; }
/* 拖动排序:logo 区域做 handle,整行可拖;按钮显式 draggable=false 兜底防误触 */
.publish-account-item.is-draggable .publish-account-item__logo { cursor: grab; }
.publish-account-item.is-draggable .publish-account-item__logo:active { cursor: grabbing; }
.publish-account-item.is-dragging { opacity: 0.35; transform: scale(0.98); transition: opacity 0.12s, transform 0.12s; }
.publish-account-item.drag-over-above { box-shadow: inset 0 2px 0 0 var(--brand); }
.publish-account-item.drag-over-below { box-shadow: inset 0 -2px 0 0 var(--brand); }
.publish-account-item__btns { display:flex; flex-direction:column; align-items:flex-end; gap:4px; }
.publish-account-item__btnrow { display:flex; flex-wrap:wrap; gap:4px; justify-content:flex-end; }
.publish-account-item__btn { border:1px solid var(--line); background:#fff; color:var(--muted); font-size:12px; padding:3px 8px; border-radius:6px; cursor:pointer; transition:all 0.15s; white-space:nowrap; }
.publish-account-item__btn:hover { border-color:var(--brand); color:var(--brand); }
.publish-account-item__btn.is-danger:hover { border-color:#dc4b55; color:#dc4b55; }
/* 主页链接未获取到时的待办态：灰底浅字，提示用户先打开后台 */
.publish-account-item__btn.is-pending { color:#9aa0a6; border-color:#e3e6ec; background:#f7f8fa; }
.publish-account-item__btn.is-pending:hover { color:#6b7280; border-color:#c8ccd2; background:#f0f2f5; }
/* 账号区 tab：运营中 / 暂停运营 */
.publish-accounts-tabs { display:flex; gap:6px; margin:2px 0 10px; }
.publish-accounts-tab { flex:1 1 0; border:1px solid var(--line); background:#fff; color:var(--muted); font-size:12px; padding:7px 8px; border-radius:8px; cursor:pointer; transition:all 0.15s; display:flex; align-items:center; justify-content:center; gap:6px; }
.publish-accounts-tab:hover { border-color:var(--brand); color:var(--brand); }
.publish-accounts-tab.is-active { border-color:var(--brand); background:var(--brand-soft); color:var(--brand); font-weight:600; }
.publish-accounts-tab__count { display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:var(--brand); color:#fff; font-size:12px; font-weight:600; }
.publish-accounts-tab:not(.is-active) .publish-accounts-tab__count { background:#cbd5e1; }
.publish-accounts-tab--active { position:relative; }
.publish-select-all { position:absolute; left:10px; top:50%; transform:translateY(-50%); display:inline-flex; align-items:center; gap:5px; color:var(--muted); font-size:12px; font-weight:400; line-height:1; }
.publish-select-all__box { display:inline-flex; align-items:center; justify-content:center; width:15px; height:15px; border:1.5px solid #cbd5e1; border-radius:4px; background:transparent; color:transparent; box-sizing:border-box; transition:border-color .15s,background-color .15s,color .15s; }
.publish-select-all:hover .publish-select-all__box { border-color:#94a3b8; }
.publish-select-all.is-checked .publish-select-all__box { border-color:var(--brand); background:var(--brand); color:#fff; }
.publish-select-all.is-mixed .publish-select-all__box { border-color:var(--brand); background:var(--brand); }
.publish-select-all.is-mixed .publish-select-all__box::after { content:""; width:7px; height:2px; border-radius:2px; background:#fff; }
.publish-select-all.is-mixed svg { display:none; }
.publish-select-all svg { display:block; pointer-events:none; }
.publish-accounts--paused { margin-top:10px; }
/* 编辑弹窗 logo */
.publish-account-modal__editlogo { width:48px; height:48px; border-radius:10px; overflow:hidden; display:flex; align-items:center; justify-content:center; background:#fff; border:1px solid var(--line); margin-bottom:12px; }
.publish-account-modal__editlogo svg { display:block; }
.publish-config__aux { display:flex; gap:8px; margin-bottom:10px; }
.publish-config__cta { width:100%; padding:12px; font-size:14px; font-weight:600; background:linear-gradient(135deg,var(--brand) 0%,#d63a3a 100%); box-shadow:0 4px 12px rgba(229,62,62,0.25); }
.publish-config__cta:hover { transform:translateY(-1px); box-shadow:0 6px 16px rgba(229,62,62,0.35); }
.publish-config__cta-guard { display:block; width:100%; margin-bottom:10px; }
.publish-config__cta-guard:not(.is-ready) { cursor:not-allowed; }
.publish-config__cta-guard .publish-config__cta:disabled { pointer-events:none; transform:none; box-shadow:none; }
.publish-config__validation { min-height:20px; margin-top:8px; color:#d64545; font-size:14px !important; line-height:20px; text-decoration:none; }
.publish-config__validation.is-ready { color:#13895f; }
.publish-results { grid-column:1 / -1; margin-top:18px; padding:0; overflow:hidden; border:1px solid var(--line); border-radius:14px; background:#fff; }
.publish-results__header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:18px 22px 14px; border-bottom:1px solid var(--line); }
.publish-results__header h3 { margin:0; color:var(--ink); font-size:18px; line-height:1.35; }
.publish-results__header p { margin:5px 0 0; color:var(--muted); font-size:12px; }
.publish-results__header > small { padding-top:4px; color:var(--muted); font-size:12px; white-space:nowrap; }
.publish-results__body { display:grid; grid-template-columns:34px 90px minmax(180px,1fr) 130px 500px; column-gap:12px; padding:0 22px 12px; }
.publish-result-row { display:grid; grid-template-columns:subgrid; grid-column:1 / -1; align-items:center; column-gap:12px; min-width:0; min-height:68px; border-bottom:1px solid var(--line); }
.publish-result-row:last-child { border-bottom:0; }
.publish-result-row__logo { display:flex; align-items:center; justify-content:center; width:32px; height:32px; overflow:hidden; border-radius:8px; background:#f6f7fb; }
.publish-result-row__logo svg { display:block; width:100%; height:100%; }
.publish-result-row__platform { color:var(--ink); font-size:14px; }
.publish-result-row__account { min-width:0; overflow:hidden; color:var(--ink); font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.publish-result-status { display:inline-flex; grid-column:4; align-items:center; justify-self:start; width:116px; box-sizing:border-box; padding:5px 10px; border-radius:999px; color:#687384; background:#f2f4f8; font-size:12px; font-weight:600; text-align:left; white-space:nowrap; }
.publish-result-status i { width:8px; height:8px; margin-right:7px; border-radius:50%; background:#98a1b0; }
.publish-result-status.is-published { color:#087b4d; background:#eaf8f0; }
.publish-result-status.is-published i { background:#1aaa69; }
.publish-result-status.is-reviewing { color:#8b6500; background:#fff5d9; }
.publish-result-status.is-reviewing i { background:#e5a800; }
.publish-result-status.is-capturing { color:#315fc7; background:#edf3ff; }
.publish-result-status.is-capturing i { background:#4979e8; }
.publish-result-status.is-failed { color:#c33f48; background:#fff0f1; }
.publish-result-status.is-failed i { background:#e34f58; }
.publish-result-row__actions { display:flex; grid-column:5; align-items:center; justify-content:flex-end; gap:8px; min-width:0; }
.publish-result-link-editor { display:grid; flex:0 1 380px; grid-template-columns:minmax(180px,1fr) auto; align-items:center; width:min(380px,32vw); min-width:260px; min-height:42px; box-sizing:border-box; padding:5px 8px 5px 10px; border:1px solid #aaa1ff; border-radius:9px; background:#fff; box-shadow:0 3px 12px rgba(42,36,98,.1); }
.publish-result-link-editor[hidden] { display:none; }
.publish-result-link-editor input { min-width:0; padding:5px 8px; border:0; outline:0; color:var(--ink); background:transparent; font:inherit; }
.publish-result-link-editor__state { padding-left:10px; color:var(--muted); font-size:11px; white-space:nowrap; }
.publish-result-link-editor__state.is-saving { color:#b98400; }
.publish-result-link-editor__state.is-saved { color:#13895f; }
.publish-result-link-editor__state.is-error { color:#d64545; }
.publish-result-row.is-editing-link .publish-result-row__actions > [data-publish-result-action="open"],.publish-result-row.is-editing-link .publish-result-row__actions > [data-publish-result-action="copy"],.publish-result-row.is-editing-link .publish-result-row__actions > [data-publish-result-action="retry"]{display:none}
.publish-results-empty { grid-column:1 / -1; padding:26px 0 14px; color:var(--muted); font-size:13px; text-align:center; }
@media (max-width:900px) {
  .publish-results { overflow-x:auto; }
  .publish-results__body { min-width:960px; }
  .publish-result-row { padding:10px 0; }
}
.publish-account-modal { position:fixed; inset:0; z-index:9999; display:flex; align-items:stretch; justify-content:flex-end; pointer-events:none; }
.publish-account-modal[hidden] { display:none; }
.publish-account-modal__backdrop { position:absolute; inset:0; background:rgba(15,18,28,0.18); backdrop-filter:blur(1px); pointer-events:auto; }
.publish-account-modal__panel { pointer-events:auto; position:relative; background:#fff; border-radius:14px 0 0 14px; width:480px; max-width:90vw; height:100vh; max-height:none; overflow:hidden; display:flex; flex-direction:column; box-shadow:-12px 0 36px rgba(15,18,28,0.22); transform:translateX(100%); transition:transform 0.22s ease-out; }
.publish-account-modal:not([hidden]) .publish-account-modal__panel { transform:translateX(0); }
.publish-account-modal__header { display:flex; align-items:center; justify-content:space-between; padding:14px 20px; border-bottom:1px solid var(--line); }
.publish-account-modal__title-group { display:inline-flex; align-items:center; gap:8px; }
.publish-account-modal__close { background:none; border:none; font-size:22px; color:var(--muted); cursor:pointer; padding:2px 8px; line-height:1; }
.publish-account-modal__close:hover { color:var(--ink); }
.publish-account-modal__body { padding:20px; overflow-y:auto; display:flex; flex-direction:column; gap:10px; }
.publish-account-modal__body .field { margin:0; }
.publish-account-modal__panel--compact { width:420px; }
.publish-account-modal__panel--compact .publish-account-modal__body { padding:16px 18px; gap:8px; }
.publish-account-modal__hint { margin:0; color:var(--muted); font-size:12px; line-height:1.55; }
.fetch-home-steps { margin:0; padding-left:18px; color:var(--ink); font-size:13px; line-height:1.7; }
.fetch-home-steps li::marker { color:var(--brand); font-weight:600; }
.publish-account-modal__panel--compact input[type="url"] { font-family:ui-monospace, "JetBrains Mono", monospace; font-size:12px; }
.publish-account-modal__panel--compact input.has-error { border-color:#dc4b55; background:#fef7f7; }
.publish-account-modal__tip { background:var(--brand-soft); color:var(--brand); padding:10px 14px; border-radius:8px; font-size:12px; line-height:1.6; margin-bottom:6px; }

.publish-account-modal__loginbox { display:flex; align-items:center; gap:10px; padding:10px 14px; border-radius:8px; font-size:12px; line-height:1.5; background:#f6f7f9; border:1px solid var(--line); color:var(--muted); }
.publish-account-modal__loginbox.is-waiting { background:#fff7ed; border-color:#ffd9a8; color:#9a5b00; }

/* 字段标题里的 ? 提示触发器:浅灰圆圈 + 灰色问号,hover 才告知 */
.field--with-tip .field__title { display:inline-flex; align-items:center; gap:6px; }
.tip-trigger {
  position: relative;
  display: inline-flex; align-items: center; justify-content: center;
  align-self: center;
  width: 16px; height: 16px; padding: 0;
  border-radius: 50%;
  border: 1px solid #d0d5dd;
  background: transparent;
  color: #6b7280;
  font-size: 12px; font-weight: 400; line-height: 1;
  cursor: help;
  transition: border-color 0.15s, color 0.15s;
}
.tip-trigger:hover, .tip-trigger:focus-visible { border-color: #9aa0a6; color: #4e5765; outline: none; }
.tip-popover {
  display: none;
  position: absolute;
  top: 46px; left: 16px; right: 16px;
  padding: 10px 14px;
  background: #f6f7f9;
  border: 1px solid #e3e6ea;
  border-radius: 8px;
  color: #4e5765;
  font-size: 12px; line-height: 1.6; font-weight: 400;
  text-align: left;
  box-shadow: 0 4px 16px rgba(0,0,0,0.06);
  z-index: 5;
}
.tip-popover__title {
  display: block;
  color: #2c3340;
  font-weight: 600;
  margin-bottom: 6px;
}
.tip-popover__steps { margin: 0; padding-left: 18px; }
.tip-popover__steps li { margin: 4px 0; }
.publish-account-modal.is-tip-open .tip-popover { display: block; }
.publish-account-modal__loginbox.is-detected { background:#ecfdf5; border-color:#a7f3d0; color:#047857; }
.publish-account-modal__loginbox.is-detected .publish-account-modal__logindot { background:#10b981; }
.publish-account-modal__loginbox.is-failed { background:#fef2f2; border-color:#fecaca; color:#dc4b55; }
.publish-account-modal__logindot { width:10px; height:10px; flex:0 0 10px; border-radius:50%; background:#cbd5e1; box-shadow:0 0 0 0 rgba(0,0,0,0); }
.publish-account-modal__loginbox.is-waiting .publish-account-modal__logindot { background:#fb923c; animation:publish-logindot-pulse 1.4s ease-in-out infinite; }
.publish-account-modal__loginbox.is-failed .publish-account-modal__logindot { background:#ef4444; }
@keyframes publish-logindot-pulse { 0% { box-shadow:0 0 0 0 rgba(251,146,60,0.6); } 70% { box-shadow:0 0 0 8px rgba(251,146,60,0); } 100% { box-shadow:0 0 0 0 rgba(251,146,60,0); } }
.publish-account-modal__loginstatus { margin:0; flex:1 1 auto; }
/* 发布页账号区：只显示已配置账号 */
.publish-accounts__empty { text-align:center; padding:24px 16px; border:1px dashed var(--line); border-radius:10px; background:var(--bg-soft); margin-top:10px; }
.publish-accounts__empty-icon { font-size:28px; color:var(--brand); line-height:1; }
.publish-accounts__empty-title { font-weight:600; color:var(--ink); margin-top:6px; font-size:14px; }
.publish-accounts__empty-hint { font-size:12px; color:var(--muted); margin-top:6px; line-height:1.7; }
/* 账号行「打开后台」按钮（与 打开主页 同在第二行） */
.button.ghost { background:#fff; border:1px solid var(--line); color:var(--muted); }
.button.ghost:hover { border-color:var(--brand); color:var(--brand); }

/* 二维码弹窗（视频号主页等浏览器打不开、需微信扫码场景） */
.qr-modal { position:fixed; inset:0; z-index:2147483000; display:flex; align-items:center; justify-content:center; }
.qr-modal[hidden] { display:none; }
.qr-modal__backdrop { position:absolute; inset:0; background:rgba(15,18,28,0.45); backdrop-filter:blur(1px); }
.qr-modal__panel { position:relative; z-index:1; width:300px; max-width:92vw; background:#fff; border-radius:14px; box-shadow:0 20px 60px rgba(0,0,0,0.28); overflow:hidden; }
.qr-modal__header { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-bottom:1px solid var(--line); }
.qr-modal__header strong { font-size:14px; color:var(--ink); }
.qr-modal__close { border:none; background:none; font-size:20px; line-height:1; color:var(--muted); cursor:pointer; }
.qr-modal__close:hover { color:var(--ink); }
.qr-modal__body { padding:18px 16px 20px; text-align:center; }
.qr-modal__code { display:flex; align-items:center; justify-content:center; margin-bottom:12px; }
.qr-modal__code svg { display:block; border:1px solid var(--line); border-radius:8px; }
.qr-modal__caption { font-size:12px; color:var(--muted); line-height:1.6; }
.publish-config__summary { font-size:12px; color:var(--muted); line-height:1.6; padding:10px 12px; background:var(--brand-soft); border-radius:8px; }
.publish-config__summary strong { color:var(--brand); }
.publish-account-modal__required { color:#dc4b55; margin-right:2px; font-weight:600; }
.publish-account-modal__footer { display:flex; justify-content:flex-end; gap:10px; padding:14px 20px; border-top:1px solid var(--line); }
.publish-account-modal__footer .button.primary { background:linear-gradient(135deg,var(--brand) 0%,#d63a3a 100%); }
.publish-platform-row { display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:4px; width:100%; margin-top:2px; }
.publish-platform-pill { display:flex; align-items:center; justify-content:center; gap:4px; padding:5px 4px; min-width:0; border-radius:999px; border:1px solid var(--line); background:#fff; color:var(--ink); font-size:12px; line-height:1; cursor:pointer; transition:all 0.15s; white-space:nowrap; overflow:hidden; }
.publish-platform-pill > span { overflow:hidden; text-overflow:ellipsis; }
.publish-platform-pill:hover:not(.is-dimmed):not(.is-selected) { border-color:var(--brand); color:var(--brand); }
.publish-platform-pill.is-dimmed { opacity:0.4; cursor:pointer; }
.publish-platform-pill.is-selected { background:linear-gradient(135deg,var(--brand) 0%,#d63a3a 100%); color:#fff; border-color:transparent; box-shadow:0 2px 8px rgba(229,62,62,0.25); cursor:pointer; }
.publish-platform-pill.is-selected:hover { color:#fff; }
.publish-platform-pill__check { width:12px; height:12px; border-radius:50%; border:1.5px solid var(--line); background:#fff; display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; transition:all 0.15s; }
.publish-platform-pill__check svg { display:none; }
.publish-platform-pill:hover:not(.is-dimmed):not(.is-selected) .publish-platform-pill__check { border-color:var(--brand); }
.publish-platform-pill.is-selected .publish-platform-pill__check { background:var(--brand); border-color:var(--brand); }
.publish-platform-pill.is-selected .publish-platform-pill__check svg { display:block; }
/* pill 里的官方 logo SVG 容器：16x16，logo 自适应 */
.publish-platform-pill__logo { width:16px; height:16px; border-radius:4px; overflow:hidden; flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; background:#fff; }
.publish-platform-pill__logo svg { display:block; width:100%; height:100%; }
/* 老 dot 类保留空壳避免报错；新代码只用 __logo */
.publish-platform-pill__dot { display:none; }

/* ===== publish: field head meta (label + 字数 + 自动保存状态) ===== */
.publish-field-meta { display: inline-flex; align-items: center; gap: 10px; }
.publish-field-meta em { font-style: normal; color: var(--muted); font-size: 12px; font-weight: 400; }

/* ===== publish: 复制安排面板 ===== */
/* 发布页：字数 + 自动保存并排（与 diagnosis-field-meta 统一） */
.field-save-head .publish-field-meta { display: inline-flex; align-items: center; gap: 8px; }

/* 复制安排：精简版（只有 header + meta + 一键复制全部） */
.publish-copy-arrangement { margin-top: 14px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: linear-gradient(180deg, #fffaf8, #fff); }
.publish-copy-arrangement__head { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; }
.publish-copy-arrangement__head strong { font-size: 13px; font-weight: 600; color: var(--ink); }
.publish-copy-arrangement__head small { font-size: 12px; color: var(--muted); line-height: 1.5; }
.publish-copy-arrangement__actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 4px; }
.publish-copy-arrangement__meta { font-size: 12px; color: var(--muted); }
.publish-copy-arrangement__button-guard { display:inline-flex; }
.publish-copy-arrangement__button-guard .button:disabled { pointer-events:none; }

/* 字段行尾的 [AI·生成] [复制] 双按钮组（发布标题/文案/标签三处复用） */
.field-suffix-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 8px; }
.field-suffix-actions .button { padding: 5px 10px; font-size: 12px; }

@media (max-width:1280px) {
  .publish-pack { grid-template-columns:minmax(280px,.72fr) minmax(360px,1.05fr); }
  .publish-config { grid-column:1 / -1; }
}
@media (max-width:820px) {
  .publish-pack { grid-template-columns:1fr; }
  .publish-config { grid-column:auto; }
  .publish-video-preview { width:min(calc(100% - 8px),300px); }
}

@media (min-width:821px) and (max-width:1160px) {
  .publish-video-preview { width:300px; }
}


.metric-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; }
.metric-field { display: grid; gap: 5px; }
.metric-field span { color: var(--muted); font-size: 12px; }
.metric-field input { width: 100%; border: 1px solid var(--line); border-radius: 8px; padding: 8px; }

.asset-preview { display: grid; grid-template-columns: 180px minmax(0,1fr); gap: 14px; }
.asset-cover { min-height: 210px; display: grid; align-content: end; padding: 16px; border-radius: 12px; color: #fff; background: linear-gradient(145deg, #6658e8, #8b79f1 55%, #3e347e); }
.asset-cover small { opacity: .75; }
.asset-cover strong { margin-top: 6px; font-size: 18px; line-height: 1.4; }

.stage-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 20px; border-top: 1px solid var(--line); background: var(--panel); }
.footer-actions { display: flex; gap: 8px; }
.footer-status { color: var(--muted); font-size: 12px; }

.view-intro { display:flex; min-height:64px; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px 18px; margin-bottom:12px; }
.view-intro.toolbar-only { min-height: 44px; justify-content: flex-end; }
.view-intro.inspiration-filter-toolbar { justify-content: flex-start; }
.view-intro h2 { margin-top: 0; }
.view-intro p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.legend { display: flex; gap: 12px; color: var(--muted); font-size: 12px; }
.legend span { display: flex; align-items: center; gap: 5px; }
.legend-dot { width: 8px; height: 8px; border-radius: 50%; }
.inspiration-capture {
  display: grid; grid-template-columns: 44px minmax(0,1.1fr) minmax(0,1fr) minmax(0,.8fr) auto; gap: 12px; align-items: end;
  margin-bottom: 16px; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); box-shadow: var(--shadow);
}
.inspiration-capture .field { margin: 0; }
.capture-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 11px; color: var(--brand); background: var(--brand-soft); }
.inspiration-capture .field input {
  box-sizing: border-box; height: 42px; min-height: 42px; padding-top: 0; padding-bottom: 0;
}
.inspiration-capture > .button {
  box-sizing: border-box; height: 42px; min-height: 42px; padding-top: 0; padding-bottom: 0;
}
.inspiration-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.inspiration-card { display: grid; gap: 11px; padding: 15px; border: 1px solid var(--line); border-radius: 11px; background: var(--panel); box-shadow: var(--shadow); }
.inspiration-card-top { display: flex; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 12px; }
.inspiration-card h3 { margin: 0; font-size: 14px; line-height: 1.5; }
.inspiration-card p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.inspiration-link { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--blue); font-size: 12px; }
.inspiration-actions { display: flex; gap: 7px; margin-top: auto; }
.inspiration-filter-row { display: flex; align-items: center; justify-content: flex-start; gap: 8px; flex-wrap: wrap; }
.inspiration-filter-groups { display: flex; align-items: flex-end; gap: 8px; flex-wrap: wrap; }
.inspiration-filter-group { display: grid; gap: 4px; }
.inspiration-filter-label { padding-left: 4px; color: #7a8391; font-size: 12px; line-height: 1; }
.inspiration-status-filter-group { padding-left: 6px; border-left: 1px solid var(--line); }
.inspiration-status-filter-group .segmented { background: #f7f6ff; }
.inspiration-filter-group .segmented { min-height: 32px; padding: 2px; }
.inspiration-filter-group .segmented button { padding: 5px 7px; }
.inspiration-table-shell { position: relative; }
.inspiration-table-main { display:grid; grid-template-columns:minmax(0,1fr) var(--actions-column-width,96px); overflow:hidden; border:1px solid var(--line); border-radius:12px; background:var(--panel); box-shadow:var(--shadow); }
.inspiration-table-wrap { position:relative; min-width:0; overflow-x:auto; border:0; border-radius:0; background:var(--panel); box-shadow:none; }
.inspiration-table { width: 100%; min-width: 1264px; border-collapse: collapse; table-layout: fixed; }
.inspiration-table .col-date { width: 78px; }
.inspiration-table .col-source { width: 68px; }
.inspiration-table .col-title { width: auto; }
.inspiration-table .col-metric { width: 52px; }
.inspiration-table .col-published { width: 78px; }
.inspiration-table .col-original { width: 156px; }
.inspiration-table .col-note { width: 92px; }
.inspiration-table .col-status { width: 72px; }
.inspiration-table .col-actions { width: 154px; }
.inspiration-table th, .inspiration-table td { box-sizing: border-box; height: 44px; border-bottom: 1px solid var(--line); padding: 8px 10px; color: #4c5564; font-size: 12px; text-align: left; vertical-align: middle; }
.inspiration-table th { position: relative; height: 36px; color: #7a8391; background: #fafbfc; font-weight: 600; white-space: nowrap; }
.inspiration-metric-heading { display: inline-flex; align-items: center; gap: 4px; }
.inspiration-metric-help { width: 14px; height: 14px; font-size: 10px; }
.inspiration-table td:first-child, .inspiration-table td:nth-child(9) { white-space: nowrap; }
.column-resizer { position: absolute; z-index: 4; top: 0; right: -5px; bottom: 0; width: 10px; cursor: col-resize; touch-action: none; }
.column-resizer::after { position: absolute; top: 8px; right: 4px; bottom: 8px; width: 1px; content: ""; background: transparent; }
.column-resizer:hover::after, .column-resizer.dragging::after { background: var(--brand); }
.inspiration-table tbody tr:last-child td { border-bottom: 0; }
.inspiration-table tbody tr:hover td { background: #fcfcff; }
.inspiration-table tr.focused-inspiration td { background: #f0eeff; box-shadow: inset 0 1px 0 #d8d3ff, inset 0 -1px 0 #d8d3ff; }
.inspiration-table tr.focused-inspiration td:first-child { box-shadow: inset 3px 0 0 var(--brand), inset 0 1px 0 #d8d3ff, inset 0 -1px 0 #d8d3ff; }
.inspiration-actions-pane { position:relative; z-index:8; min-width:0; border-left:1px solid var(--line); background:#fff; box-shadow:-8px 0 12px -12px rgba(31,38,51,.55); }
.inspiration-actions-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.inspiration-actions-table th,
.inspiration-actions-table td { box-sizing:border-box; height:44px; border-bottom:1px solid var(--line); padding:8px 7px; color:#4c5564; font-size:12px; text-align:left; vertical-align:middle; }
.inspiration-actions-table th { height:36px; color:#7a8391; background:#fafbfc; font-weight:600; white-space:nowrap; }
.inspiration-actions-table tbody tr:last-child td { border-bottom:0; }
.inspiration-actions-table tbody tr:hover td { background:#fcfcff; }
.inspiration-actions-table tr.focused-inspiration td { background:#f0eeff; box-shadow:inset 0 1px 0 #d8d3ff,inset 0 -1px 0 #d8d3ff; }
.inspiration-actions-table tr.discarded { opacity:.58; }
.inspiration-table tr.discarded { opacity: .58; }
.inspiration-table th:nth-child(n+4):nth-child(-n+8) { text-align: left; }
.source-platform { display: inline-flex; padding: 3px 6px; border-radius: 999px; color: #47505f; background: #eef1f5; white-space: nowrap; }
.source-douyin { color: #111827; background: #edf0f4; }
.source-xiaohongshu { color: #c53b43; background: #fff0f1; }
.source-kuaishou { color: #ef6b28; background: #fff3e9; }
.source-shipinhao { color: #078b4d; background: #e9f8f0; }
.source-weixin_article { color: #16875d; background: #eaf8f1; }

.paid-refresh-backdrop { position:fixed; inset:0; z-index:1800; display:grid; place-items:center; padding:20px; background:rgba(29,34,45,.34); backdrop-filter:blur(12px) saturate(.88); -webkit-backdrop-filter:blur(12px) saturate(.88); }
.paid-refresh-backdrop[hidden] { display:none; }
.paid-refresh-dialog { position:relative; width:min(520px,100%); padding:34px 32px 28px; border:1px solid rgba(255,255,255,.72); border-radius:18px; background:rgba(255,255,255,.92); box-shadow:0 24px 72px rgba(23,29,42,.22); text-align:center; }
.paid-refresh-close { position:absolute; top:12px; right:14px; border:0; background:transparent; color:#8992a3; font-size:24px; line-height:1; cursor:pointer; }
.paid-refresh-icon { display:grid; place-items:center; width:52px; height:52px; margin:0 auto 14px; border-radius:50%; color:var(--brand); background:var(--brand-soft); font-size:25px; }
.paid-refresh-dialog .eyebrow { margin:0 0 7px; color:#8b93a2; }
.paid-refresh-dialog h2 { margin:0; color:#dc3545; font-size:20px; }
.paid-refresh-dialog > p:not(.eyebrow) { margin:12px 0 0; color:#687284; font-size:14px; line-height:1.65; }
.paid-refresh-dialog #paidRefreshLimitMessage { text-align:center; }
.paid-refresh-dialog #paidRefreshLimitMessage span { display:block; }
.paid-refresh-dialog .paid-refresh-time { text-align:center; }
.paid-refresh-dialog #paidRefreshLimitTime { color:var(--ink); font-weight:700; }
.paid-refresh-dialog .paid-refresh-countdown { margin:10px 0 0; color:#687284; font-weight:400; font-variant-numeric:tabular-nums; letter-spacing:.02em; white-space:nowrap; }
.paid-refresh-dialog #paidRefreshLimitCountdownValue { color:var(--ink); font-weight:700; }
.paid-refresh-dialog .button { min-width:112px; margin-top:28px; }
.source-title-cell { overflow: visible; }
.source-title-cell a, .source-title-cell button:not(.source-field-retry) { max-width: 100%; display: block; overflow: hidden; border: 0; padding: 0; color: #222936; background: transparent; font-size: 12px; font-weight: 650; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; text-align: left; }
.source-title-cell a:hover { color: var(--brand); }
.source-metric { padding-right:4px !important; padding-left:4px !important; text-align: left !important; font-variant-numeric: tabular-nums; white-space:nowrap; }
.source-data-zone { transition: color .12s ease, background .12s ease; }
.source-data-zone-first { position: relative; overflow: visible !important; }
.source-row-refreshable .source-data-zone { cursor: pointer; }
.source-row-refreshable:has(.source-data-zone:hover) .source-data-zone { color: var(--brand); background: var(--brand-soft) !important; }
.source-row-syncing .source-data-zone { color: transparent !important; background: rgba(238, 240, 246, .34) !important; backdrop-filter: blur(3px); cursor: wait; }
.source-sync-overlay { position: absolute; z-index: 20; top: 0; left: 0; width: var(--source-data-zone-width); height: 100%; display: flex; align-items: center; justify-content: center; gap: 8px; overflow: hidden; isolation: isolate; border-radius: 5px; color: #3f4653 !important; pointer-events: none; font-size: 12px; font-weight: 400; letter-spacing: .02em; filter: none !important; backdrop-filter: none !important; }
.source-sync-overlay::before { position: absolute; z-index: -1; inset: 0; content: ""; background: rgba(247, 248, 251, .94); box-shadow: inset 0 0 0 1px rgba(222,225,234,.55); }
.source-sync-overlay > i,
.source-sync-overlay > span { position: relative; z-index: 2; color: #3f4653 !important; filter: none !important; text-shadow: none; }
.source-sync-overlay > i { width: 14px; height: 14px; flex: 0 0 auto; border: 2px solid rgba(102,88,232,.22); border-top-color: var(--brand); border-radius: 50%; animation: source-sync-spin .7s linear infinite; }
@keyframes source-sync-spin { to { transform: rotate(360deg); } }
.source-row-syncing .source-data-zone { filter: none !important; backdrop-filter: none !important; }
.table-link, .note-cell, .inspiration-row-actions button { border: 0; padding: 2px 3px; color: var(--brand); background: transparent; cursor: pointer; font-size: 12px; white-space: nowrap; }
.source-copy-cell { min-width: 0; }
.source-copy-layout { position:relative; display: flex; align-items: center; gap: 5px; min-width: 0; }
.source-field-retry-cell { position: relative; }
.source-field-retry-layout { position:relative; display:flex; align-items:center; min-width:0; }
.source-field-retry-layout > a,
.source-field-retry-layout > button:not(.source-field-retry),
.source-field-retry-layout > span { min-width:0; }
.source-field-retry {
  position:absolute;
  z-index:5;
  top:50%;
  left:-20px;
  width:20px;
  height:20px;
  overflow:hidden;
  visibility:hidden;
  opacity:0;
  display:grid;
  place-items:center;
  border:0;
  border-radius:5px;
  padding:0;
  color:var(--brand);
  background:var(--brand-soft);
  cursor:pointer;
  font-size:14px;
  line-height:1;
  transform:translateY(-50%);
  transition:opacity .14s ease;
}
.source-field-retry > span { display:block; width:1em; height:1em; line-height:1; text-align:center; }
.source-field-retry-cell:hover .source-field-retry,
.source-field-retry-cell:focus-within .source-field-retry {
  visibility:visible;
  opacity:1;
}
.source-field-retry:hover { color:#fff; background:var(--brand); }
.source-copy-preview { flex: 1; min-width: 0; overflow: hidden; border: 0; padding: 2px 0; color: #333d4e; background: transparent; cursor: pointer; font-size: 12px; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.source-copy-preview:hover { color: var(--brand); text-decoration: underline; text-underline-offset: 2px; }
.source-copy-button { flex: 0 0 auto; visibility: hidden; opacity: 0; border: 1px solid #d9dde5; border-radius: 4px; padding: 3px 6px; color: #596273; background: #fff; cursor: pointer; font-size: 12px; transition: opacity .14s ease; }
.source-copy-cell:hover .source-copy-button,
.source-copy-cell:focus-within .source-copy-button { visibility: visible; opacity: 1; }
.source-copy-button:hover { border-color: #bbb4ff; color: var(--brand); background: var(--brand-soft); }
.source-age-cell { color: #6f7785; font-size: 12px; white-space: nowrap; }
.note-cell { max-width: 78px; overflow: hidden; color: #6c7482; text-overflow: ellipsis; }
.inspiration-row-actions { vertical-align: middle !important; }
.inspiration-row-actions-inner {
  display:grid;
  grid-template-columns:minmax(0,1fr) 30px;
  align-items:center;
  column-gap:4px;
  min-height:100%;
}
.inspiration-row-actions-inner > button:first-child { justify-self:start; }
.inspiration-row-actions-inner > button:last-child:not(:first-child) { justify-self:end; }
.inspiration-row-actions button[disabled] { color: #a7adb7; cursor: default; }
.sync-status { display: inline-flex; align-items: center; padding: 3px 6px; border-radius: 999px; white-space: nowrap; }
.sync-status.success { color: #16875d; background: #e9f8f1; }
.sync-status.running, .sync-status.queued { color: var(--brand); background: var(--brand-soft); }
.sync-status.failed { color: #b94747; background: #fff0f0; }
.sync-status.idle { color: #9a681b; background: #fff5df; }
.sync-status.plain { color: #7e8794; background: #f1f3f6; }
.sync-status.current { color: #6c7482; background: #f1f3f6; }
.sync-status.discarded { color: #9b6d25; background: #fff4df; }
.current-stage-status { display: inline-flex; align-items: center; padding: 3px 6px; border-radius: 999px; color: #6f7785; background: #f3f4f6; white-space: nowrap; }
.current-stage-status.active { color: var(--brand); background: var(--brand-soft); }
.current-stage-status.planning { color: #9a681b; background: #fff5df; }
.current-stage-status.waiting { color: #236f56; background: #e9f8f1; }
.current-stage-status.complete { color: #6f7785; background: #f1f3f6; }
.current-stage-status.muted { padding-right: 0; padding-left: 0; background: transparent; }
.wechat-field-map { position: absolute; z-index: 30; right: 0; bottom: calc(100% + 6px); left: 0; display: grid; grid-template-columns: 78px 68px minmax(306px,1fr) repeat(5,52px) 78px 156px 92px 72px 154px; align-items: center; min-width: 1264px; min-height: 34px; border: 1px solid #efc766; border-radius: 8px; color: #7b4c09; background: #fff3bd; box-shadow: 0 8px 22px rgba(92,66,15,.12); opacity: 0; pointer-events: none; transform: translateY(8px); transition: opacity .15s ease, transform .15s ease; white-space: nowrap; font-size: 12px; overflow: hidden; }
.wechat-field-map span { box-sizing: border-box; min-width: 0; height: 34px; padding: 10px 7px 8px; border-right: 1px solid rgba(190,145,37,.18); text-align: left; overflow: hidden; text-overflow: ellipsis; }
.wechat-field-map span:last-child { border-right: 0; }
.inspiration-table-shell:has(.metric-column:hover) .wechat-field-map { opacity: 1; transform: translateY(0); }
.source-settings-modal { width: min(680px,100%); max-height: 88vh; overflow-y: auto; }
.cookie-field-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.cookie-field-title { display: inline-flex; align-items: center; gap: 7px; }
.cookie-config-state { display: inline-flex; align-items: center; min-height: 18px; padding: 2px 7px; border-radius: 999px; color: #7d8591; background: #f0f2f5; font-size: 12px; font-weight: 500; }
.cookie-config-state.configured { color: #16875d; background: #e9f8f1; }
.cookie-config-state.saving, .cookie-config-state.logging-in { color: var(--brand); background: var(--brand-soft); }
.cookie-config-state.error { color: #b94747; background: #fff0f0; }
.cookie-field-head button { border: 1px solid #d8dce5; border-radius: 6px; padding: 4px 8px; color: var(--brand); background: #fff; cursor: pointer; font-size: 12px; }
.cookie-field-head button:hover { border-color: #bdb6ff; background: var(--brand-soft); }
.cookie-field-head button[disabled] { color: #9da3ad; background: #f5f6f8; cursor: wait; }
.modal.source-text-modal { display: flex; flex-direction: column; width: min(760px,100%); max-height: min(86vh,800px); overflow: hidden; }
.source-text-workspace { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(260px,.72fr); gap: 12px; min-height: 0; }
.source-text-pane, .source-note-pane { display: flex; min-width: 0; min-height: 0; flex-direction: column; }
.source-text-modal .eyebrow { font-size:12px; }
.source-text-modal-head > div { min-width: 0; }
.source-text-modal-head h2 { min-width: 0; max-width: 100%; }
.source-title-link { display: block; max-width: 100%; overflow: hidden; color: inherit; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.source-title-link[href]:hover { color: var(--brand); }
.source-text-editor-head { display: flex; min-height: 24px; align-items: center; gap: 10px; margin: -2px 2px 8px; color: var(--muted); font-size: 12px; }
.source-text-editor-head strong { color: #3b4350; font-size: 14px; }
.source-text-editor-head [role="status"] { margin-left: auto; }
#sourceTextSaveStatus { color: #17855f; }
#sourceTextSaveStatus.saving { color: var(--brand); }
#sourceTextSaveStatus.error { color: #bd4545; }
#sourceNoteSaveStatus { color: #17855f; }
#sourceNoteSaveStatus.saving { color: var(--brand); }
#sourceNoteSaveStatus.error { color: #bd4545; }
.rich-text-toolbar { display: flex; min-height: 40px; align-items: center; gap: 4px; padding: 4px 7px; border: 1px solid var(--line); border-bottom: 0; border-radius: 9px 9px 0 0; background: #f7f8fa; }
.rich-text-toolbar button, .rich-text-toolbar label { position: relative; box-sizing: border-box; display: inline-flex; min-width: 30px; height: 30px; align-items: center; justify-content: center; margin: 0; padding: 0 8px; overflow: hidden; border: 1px solid transparent; border-radius: 6px; color: #4e5664; background: transparent; font: inherit; font-size: 12px; cursor: pointer; }
.rich-text-toolbar button:hover, .rich-text-toolbar label:hover { border-color: #d6d2ff; color: var(--brand); background: #fff; }
.rich-text-toolbar input[type="color"] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; opacity: .001; cursor: pointer; pointer-events: auto; }
.rich-text-toolbar .rich-color-tool { --swatch-color:#343b48; gap:6px; min-width:72px; border-color:#dfe2e8; background:#fff; }
.rich-text-toolbar .rich-color-icon { position:relative; display:grid; width:20px; height:20px; place-items:center; border:1px solid #d9dde5; border-radius:4px; color:#343b48; background:#fff; font-size:12px; font-weight:700; line-height:1; }
.rich-text-toolbar .text-color-tool .rich-color-icon::after { position:absolute; right:2px; bottom:2px; left:2px; height:3px; border-radius:2px; background:var(--swatch-color); content:""; }
.rich-text-toolbar .highlight-color-tool .rich-color-icon { background:var(--swatch-color); }
.rich-text-toolbar .rich-color-name { color:#596271; font-size:12px; font-weight:500; white-space:nowrap; }
.rich-toolbar-divider { width: 1px; height: 16px; margin: 0 3px; background: #dfe2e8; }
.rich-text-toolbar.compact { gap: 3px; }
.rich-text-toolbar.compact button, .rich-text-toolbar.compact label { min-width: 28px; padding: 0 6px; }
.rich-text-toolbar.compact .rich-color-tool { min-width:34px; }
.rich-text-toolbar.compact .rich-color-name { display:none; }
.rich-text-editor { box-sizing: border-box; flex: 0 1 auto; width: 100%; height: min(58vh,520px); min-height: min(48vh,420px); max-height: 58vh; overflow-x: hidden; overflow-y: auto; margin: 0; padding: 16px; border: 1px solid var(--line); border-radius: 0 0 9px 9px; outline: none; color: #343b48; background: #fafbfc; font-family: inherit; font-size: 14px; line-height: 1.75; overflow-wrap: anywhere; white-space: normal; transition: border-color .15s ease, box-shadow .15s ease, background .15s ease; }
.rich-text-editor:empty::before { color: #a1a7b0; content: attr(data-placeholder); pointer-events: none; }
.rich-text-editor p { margin: 0 0 .9em; }
.rich-text-editor blockquote { margin: 10px 0; padding: 4px 10px; border-left: 3px solid #c9c3ff; color: #626a78; background: #f7f6ff; }
.rich-text-editor img { display: block; max-width: 100%; height: auto; margin: 14px auto; border-radius: 4px; }
.rich-text-editor:focus { border-color: #aaa1ff; background: #fff; box-shadow: 0 0 0 3px rgba(102,86,238,.1); }
.note-rich-editor { color: #4d5563; background: #fffdf8; }
.source-text-actions { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(260px,.72fr); gap: 12px; align-items: center; margin-top: 14px; }
.source-text-actions-pane { display: flex; min-width: 0; align-items: center; gap: 8px; }
.source-text-action-spacer { flex: 1 1 auto; }
#undoSourceTextButton:disabled { opacity: .42; cursor: default; }
@media (max-width: 820px) {
  .source-text-modal { max-height: 92vh; }
  .source-text-workspace { grid-template-columns: minmax(0,1.45fr) minmax(170px,.72fr); gap: 8px; }
  .source-text-actions { grid-template-columns: minmax(0,1.45fr) minmax(170px,.72fr); gap: 8px; }
  .rich-text-editor { height: 58vh; min-height: 280px; max-height: 560px; }
}
.schedule-view-tabs { display: inline-flex; align-items: center; gap: 3px; border: 1px solid var(--line); border-radius: 8px; padding: 3px; background: var(--panel-soft); }
.schedule-view-tabs button { border: 0; border-radius: 6px; padding: 6px 9px; color: var(--muted); background: transparent; cursor: pointer; font-size: 12px; white-space: nowrap; }
.schedule-view-tabs button:hover { color: var(--brand); background: #fff; }
.schedule-view-tabs button.active { color: #fff; background: var(--brand); box-shadow: 0 2px 5px rgba(101,86,232,.18); }
.production-planner { display: grid; grid-template-columns: 360px minmax(0,1fr); gap: 14px; align-items: start; }
.lifecycle-board-shell, .topic-progress-shell, .schedule-completed-shell { overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: var(--panel); box-shadow: var(--shadow); }
.lifecycle-board-shell > header, .topic-progress-shell > header, .schedule-completed-shell > header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px 14px; padding:15px 16px; border-bottom:1px solid var(--line); }
.lifecycle-board-shell > header h3, .topic-progress-shell > header h3, .schedule-completed-shell > header h3 { margin: 4px 0 0; font-size: 18px; }
.lifecycle-board-shell > header > div:first-child,
.topic-progress-shell > header > div:first-child,
.schedule-completed-shell > header > div:first-child { display:flex; flex-wrap:wrap; align-items:baseline; column-gap:10px; }
.lifecycle-board-shell > header > div:first-child > .eyebrow,
.topic-progress-shell > header > div:first-child > .eyebrow,
.schedule-completed-shell > header > div:first-child > .eyebrow { flex-basis:100%; }
.schedule-header-stat { color:var(--muted); font-size:12px; font-weight:400; white-space:nowrap; }
.lifecycle-board-shell > header > span, .topic-progress-shell > header > span, .schedule-completed-shell > header > span { color: var(--muted); font-size: 12px; }
.schedule-shell-actions { min-width:0; display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; }
.schedule-shell-actions > span { color: var(--muted); font-size: 12px; white-space: nowrap; }
.schedule-completed-body { padding: 16px; }
.schedule-completed-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-bottom: 14px; }
.schedule-completed-summary > div { display: grid; gap: 3px; border: 1px solid #e4e7ee; border-radius: 10px; padding: 12px 14px; background: #fafbfc; }
.schedule-completed-summary strong { color: #27303d; font-size: 20px; }
.schedule-completed-summary span { color: var(--muted); font-size: 12px; }
.schedule-completed-list { display: grid; gap: 8px; }
.schedule-completed-row { width: 100%; display: grid; grid-template-columns: 92px 24px minmax(0,1fr) auto; align-items: center; gap: 10px; border: 1px solid #e1e5ec; border-left: 4px solid var(--content-color); border-radius: 10px; padding: 11px 13px; color: #303846; background: #fff; cursor: pointer; text-align: left; }
.schedule-completed-row:hover { border-color: color-mix(in srgb,var(--content-color) 38%,#e1e5ec); background: #fcfcff; }
.schedule-completed-row > i { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--content-color); font-size: 12px; font-style: normal; }
.schedule-completed-date { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.schedule-completed-copy { min-width: 0; display: grid; gap: 3px; }
.schedule-completed-copy strong { overflow: hidden; color: #29313d; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.schedule-completed-copy small { color: var(--muted); font-size: 12px; }
.schedule-completed-open { color: var(--brand); font-size: 12px; white-space: nowrap; }
.lifecycle-board-scroll { overflow-x: auto; padding: 12px; }
.lifecycle-board { min-width: 1760px; display: grid; grid-template-columns: repeat(8,minmax(210px,1fr)); gap: 10px; align-items: stretch; }
.lifecycle-column { min-height: 520px; overflow: hidden; border: 1px solid #e2e4e9; border-radius: 11px; background: #f6f7f9; }
.lifecycle-column > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 11px 12px; border-bottom: 1px solid #e2e4e9; background: rgba(255,255,255,.72); }
.lifecycle-column > header > div { display: flex; align-items: center; gap: 7px; }
.lifecycle-column > header i { width: 19px; height: 19px; display: grid; place-items: center; border-radius: 50%; color: var(--brand); background: var(--brand-soft); font-size: 12px; font-style: normal; font-weight: 700; }
.lifecycle-column > header strong { color: #313946; font-size: 12px; }
.lifecycle-column > header span { min-width: 20px; height: 20px; display: grid; place-items: center; border-radius: 999px; color: var(--muted); background: #fff; font-size: 12px; }
.lifecycle-column-cards { display: grid; align-content: start; gap: 8px; padding: 9px; }
.lifecycle-card { width: 100%; display: grid; gap: 7px; border: 1px solid #e1e3e8; border-left: 4px solid var(--content-color); border-radius: 9px; padding: 10px; color: #333b48; background: #fff; cursor: pointer; text-align: left; box-shadow: 0 3px 8px rgba(31,38,48,.04); }
.lifecycle-card:hover { border-color: color-mix(in srgb,var(--content-color) 34%,#e1e3e8); transform: translateY(-1px); }
.lifecycle-card strong { font-size: 12px; line-height: 1.5; }
.lifecycle-card-source { justify-self: start; border-radius: 999px; padding: 3px 6px; color: var(--brand); background: var(--brand-soft); font-size: 12px; }
.lifecycle-card small { padding-top: 7px; border-top: 1px solid #eceef1; color: var(--muted); font-size: 12px; }
.lifecycle-column-empty { padding: 26px 8px; color: #a1a7b0; font-size: 12px; text-align: center; }
.topic-progress-list { display: grid; gap: 10px; padding: 12px; }
.topic-progress-card { overflow-x: auto; border: 1px solid var(--line); border-left: 4px solid var(--content-color); border-radius: 11px; padding: 12px; background: #fff; }
.topic-progress-card > header { min-width: 840px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 17px; }
.topic-progress-card > header button { overflow: hidden; border: 0; padding: 0; color: #27303d; background: transparent; cursor: pointer; font-size: 12px; font-weight: 700; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.topic-progress-card > header button:hover { color: var(--brand); }
.topic-progress-card > header span { flex: 0 0 auto; color: var(--muted); font-size: 12px; }
.topic-progress-card > header > div { min-width: 0; display: grid; gap: 4px; }
.topic-progress-card > header > div > span { justify-self: start; border-radius: 999px; padding: 3px 6px; color: var(--brand); background: var(--brand-soft); font-size: 12px; }
.topic-progress-card > header > div > strong { overflow: hidden; color: #27303d; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.topic-progress-card > header > div > small { color: var(--muted); font-size: 12px; }
.topic-progress-track { position: relative; min-width: 840px; display: grid; grid-template-columns: repeat(8,minmax(88px,1fr)); gap: 0; }
.topic-progress-track::before { content: ""; position: absolute; top: 13px; left: 6.25%; right: 6.25%; height: 2px; background: #e2e4e8; }
.topic-progress-node { position: relative; z-index: 1; display: grid; justify-items: center; gap: 4px; color: #9299a5; text-align: center; }
.topic-progress-node i { width: 27px; height: 27px; display: grid; place-items: center; border: 2px solid #dce0e6; border-radius: 50%; color: #9299a5; background: #fff; font-size: 12px; font-style: normal; font-weight: 700; }
.topic-progress-node strong { font-size: 12px; }
.topic-progress-node span, .topic-progress-node small { font-size: 12px; }
.topic-progress-node.complete i { border-color: var(--brand); color: #fff; background: var(--brand); }
.topic-progress-node.complete strong, .topic-progress-node.current strong { color: #383f4b; }
.topic-progress-node.current i { border-color: var(--brand); color: var(--brand); background: var(--brand-soft); box-shadow: 0 0 0 4px rgba(101,86,232,.10); }
.topic-progress-node.current span { color: var(--brand); font-weight: 650; }
.topic-progress-empty { padding: 58px 16px; color: var(--muted); font-size: 12px; text-align: center; }
.schedule-pool, .production-calendar { border: 1px solid var(--line); border-radius: 13px; background: var(--panel); box-shadow: var(--shadow); overflow: hidden; }
.schedule-pool { position: sticky; top: 16px; }
.schedule-pool-head, .calendar-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 15px; border-bottom: 1px solid var(--line); }
.schedule-pool-head h3, .calendar-toolbar h3 { margin: 4px 0 0; font-size: 18px; }
.schedule-extended-hint { display: block; min-height: 14px; margin-top: 3px; color: var(--brand); font-size: 12px; }
.schedule-pool-head > small { color: var(--muted); font-size: 12px; }
.schedule-pool-help { margin: 0; padding: 11px 15px; color: var(--muted); background: var(--panel-soft); font-size: 12px; line-height: 1.55; }
.schedule-pool-list { max-height: calc(100vh - 270px); overflow-y: auto; padding: 10px 8px; }
.schedule-pool-item { margin-bottom: 9px; padding: 4.5px 3px 7.33px; border: 1px solid var(--line); border-left: 4px solid var(--content-color); border-radius: 10px; background: var(--panel); }
.schedule-pool-title { width: 100%; display: flex; justify-content: space-between; align-items: start; gap: 10px; border: 0; padding: 0; background: transparent; cursor: pointer; text-align: left; }
.schedule-pool-title span { min-width: 0; flex: 1 1 auto; display: flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 700; line-height: 1.4; }
.schedule-pool-title span > b { min-width: 0; overflow: hidden; display: block; color:var(--content-color); font: inherit; text-overflow: ellipsis; white-space: nowrap; }
.schedule-pool-title span > i { display:none; }
.schedule-pool-title i { flex: 0 0 auto; width: 8px; height: 8px; margin-top: 4px; border-radius: 50%; background: var(--content-color); }
.schedule-pool-title small { flex: 0 0 auto; display:flex; align-items:center; gap:4px; color: var(--muted); font-size: 12px; }
.schedule-pool-title small b { color:var(--content-color); font-weight:700; }
.schedule-pool-title small i { width:auto; height:auto; margin:0; border-radius:0; color:#a1a8b4; background:transparent; font-style:normal; }
.schedule-pool-progress { height: 3px; margin: 4.5px 0 6.5px; overflow: hidden; border-radius: 999px; background: #eceef2; }
.schedule-pool-progress span { display: block; height: 100%; border-radius: inherit; background: var(--content-color); }
.schedule-node-row { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 4px; }
.schedule-node { min-width: 0; display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 1px 2.5px; border: 1px dashed #cfd5df; border-radius: 8px; padding: 3.5px 3.5px; color: var(--muted); background: var(--panel-soft); cursor: grab; text-align: left; touch-action: none; user-select: none; -webkit-user-drag: element; }
.schedule-node .drag-handle { grid-row: 1 / 3; color: var(--content-color); }
.schedule-node strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.schedule-node small { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.schedule-node.scheduled { border-style: solid; border-color: color-mix(in srgb,var(--content-color) 28%,white); color: var(--text); background: color-mix(in srgb,var(--content-color) 8%,white); }
.schedule-node.locked { cursor: not-allowed; }
.schedule-node.selected, .calendar-event.selected { outline: 2px solid var(--content-color); outline-offset: 1px; }
.schedule-node.is-dragging, .calendar-event.is-dragging { opacity: .45; cursor: grabbing; }
.schedule-drag-active, .schedule-drag-active * { cursor: grabbing !important; }
.schedule-drag-ghost {
  position: fixed !important; inset: auto !important; z-index: 9999; display: grid; gap: 3px; margin: 0 !important; pointer-events: none !important;
  opacity: .94 !important; border: 1px solid #d9dce5 !important; border-color: color-mix(in srgb,var(--content-color) 48%,white) !important;
  border-left: 4px solid var(--content-color) !important; border-radius: 9px !important; padding: 9px 11px !important;
  color: var(--text) !important; background: #fff !important; background: color-mix(in srgb,var(--content-color) 9%,white) !important;
  box-shadow: 0 14px 34px rgba(30,36,55,.24), 0 0 0 2px rgba(255,255,255,.9) !important;
  transform-origin: top left; will-change: transform; transition: border-color .12s ease, background .12s ease, opacity .12s ease;
}
.schedule-drag-ghost.drop-not-allowed {
  opacity: .72 !important; border-color: #a8afb9 !important; border-left-color: #8e96a2 !important;
  background: rgba(238,241,246,.92) !important; filter: grayscale(.35);
}
.schedule-drag-ghost em { color: var(--content-color); font-size: 12px; font-style: normal; font-weight: 700; }
.schedule-drag-ghost span { overflow: hidden; font-size: 12px; font-weight: 650; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.schedule-drag-ghost small { color: var(--muted); font-size: 12px; }
.schedule-native-drag-preview {
  position: fixed; left: -10000px; top: -10000px; z-index: 10000; width: 240px; display: grid; gap: 3px;
  border: 1px solid color-mix(in srgb,var(--content-color) 48%,white); border-left: 5px solid var(--content-color);
  border-radius: 9px; padding: 10px 12px; color: var(--text); background: color-mix(in srgb,var(--content-color) 9%,white);
  box-shadow: 0 14px 34px rgba(30,36,55,.26); pointer-events: none;
}
.schedule-native-drag-preview em { color: var(--content-color); font-size: 12px; font-style: normal; font-weight: 700; }
.schedule-native-drag-preview span { overflow: hidden; font-size: 12px; font-weight: 650; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.schedule-inline-risk { margin: 8px 0 0; color: var(--orange); font-size: 12px; line-height: 1.45; }
.schedule-pool-empty { padding: 26px 10px; color: var(--muted); font-size: 12px; line-height: 1.6; text-align: center; }
.calendar-actions { display: flex; align-items: center; gap: 6px; }
.calendar-actions .schedule-view-tabs { margin-left: 6px; }
.calendar-actions :is(.schedule-mode-tabs, .schedule-view-tabs) button { padding-right: 8px; padding-left: 8px; }
.calendar-actions > .icon-button,
.calendar-actions > #calendarTodayButton { min-height: 36px; height: 36px; }
.button.compact { padding: 7px 10px; font-size: 12px; }
.production-calendar .calendar-toolbar { display:block; padding-right:10px; padding-bottom:5px; }
.production-calendar .calendar-toolbar > .eyebrow { display:block; width:100%; }
.calendar-toolbar-main { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; }
.calendar-toolbar-title { min-width:0; display:flex; align-items:baseline; gap:10px; }
.calendar-toolbar-title h3 { margin:0; }
.calendar-toolbar-title .schedule-extended-hint { margin:0; }
.calendar-notice { display: flex; flex-wrap: wrap; gap: 12px; padding: 5px 15px 9px; color: var(--muted); background: var(--panel-soft); font-size: 12px; }
.calendar-notice span::before { content: "✓"; margin-right: 4px; color: var(--green); }
.calendar-notice span.is-negative::before { content:"×"; color:#d34b58; font-weight:700; }
.calendar-scroll { position: relative; max-height: calc(100vh - 240px); min-height: 500px; overflow-x: hidden; overflow-y: auto; overscroll-behavior-y: auto; scrollbar-gutter: stable; }
.calendar-weekdays, .production-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); }
.calendar-weekdays { position: sticky; top: 0; z-index: 20; background: var(--panel); }
.calendar-weekdays span { padding: 8px; border-top: 1px solid var(--line); border-right: 1px solid var(--line); color: var(--muted); font-size: 12px; text-align: center; }
.calendar-weekdays span:last-child { border-right: 0; }
.production-day { position: relative; min-width: 0; min-height: 116px; padding: 7px; border-top: 1px solid var(--line); border-right: 1px solid var(--line); background: #fff; transition: background-color .08s linear; }
.production-grid.month .production-day:nth-child(7n) { border-right: 0; }
.production-grid.week .production-day { min-height: 440px; }
.production-day.previous-month { background: #f7f8fa; }
.production-day.past-unavailable:not(.previous-month) { background: #fafafb; }
.production-day.next-month { background: #fffdf5; }
.production-day.outside > header, .production-day.past-unavailable > header { opacity: .46; }
.production-day.month-start { box-shadow: inset 3px 0 0 color-mix(in srgb,var(--brand) 35%,transparent); }
.production-day.month-start > header { opacity: 1; }
.production-day > header strong b { margin-right: 4px; color: var(--brand); font-size: 12px; font-weight: 700; }
.production-day.today { box-shadow: inset 0 0 0 2px var(--brand); }
.production-day.drag-over { background: #f3f1ff; outline: 1px dashed rgba(99,86,229,.72); outline-offset: -5px; box-shadow: none; transition: none; }
.production-day.drop-blocked { cursor: not-allowed; }
.production-day.drop-blocked.drag-hover-blocked::before {
  content: ""; position: absolute; inset: 0; z-index: 8; pointer-events: none;
  background: rgba(238, 241, 246, .72); backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px);
}
.production-day.drop-blocked.drag-hover-blocked::after {
  content: attr(data-drop-message); position: absolute; inset: 0; z-index: 9; display: grid; place-items: center; pointer-events: none;
  color: #7d8694; font-size: 12px; font-weight: 400; letter-spacing: .02em;
}
.production-day > header { display: flex; align-items: center; gap: 4px; margin-bottom: 6px; }
.production-day > header strong { flex: 1 1 auto; min-width: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 6px; font-size: 12px; }
.production-day > header strong .month-tag { color: var(--brand); font-size: 12px; font-weight: 700; }
.production-day > header span { flex: 0 0 auto; padding: 2px 5px; border-radius: 999px; color: var(--brand); background: var(--brand-soft); font-size: 12px; }
.production-day-events { display: grid; gap: 4px; }
.calendar-event, .calendar-review { min-width: 0; display: grid; gap: 2px; border: 0; border-left: 3px solid var(--content-color); border-radius: 6px; padding: 5px 6px; background: color-mix(in srgb,var(--content-color) 9%,white); cursor: grab; text-align: left; }
.calendar-event { touch-action: none; user-select: none; -webkit-user-drag: element; }
.calendar-event.locked { cursor: not-allowed; }
.calendar-event em, .calendar-review em { color: var(--content-color); font-size: 12px; font-style: normal; font-weight: 700; }
.calendar-event span, .calendar-review span { overflow: hidden; color: #424a57; font-size: 12px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.calendar-review { --content-color:#d38a3b; cursor:grab; background:#fff7eb; touch-action:none; }
.calendar-review:active,.calendar-review.is-dragging { cursor:grabbing; opacity:.6; }
.calendar-extension-zone { width: 100%; min-height: 66px; display: grid; grid-template-columns: auto auto; align-content: center; justify-content: center; gap: 2px 8px; border: 0; border-top: 1px dashed #c9c4ff; padding: 12px; color: var(--brand); background: linear-gradient(180deg,#fbfaff,#f4f1ff); cursor: ns-resize; transition: .18s ease; }
.calendar-extension-zone > span { grid-row: 1 / 3; align-self: center; font-size: 20px; transition: transform .18s ease; }
.calendar-extension-zone strong { font-size: 12px; font-weight: 600; }
.calendar-extension-zone small { color: var(--muted); font-size: 12px; }
.calendar-extension-zone:hover, .calendar-extension-zone.drag-active { background: #ebe7ff; box-shadow: inset 0 0 0 2px var(--brand); }
.calendar-extension-zone.drag-active > span { transform: translateY(5px); }
.schedule-card, .batch-card { margin-bottom: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); box-shadow: var(--shadow); overflow: hidden; }
.schedule-card-head { display: flex; justify-content: space-between; gap: 12px; padding: 13px 15px; border-bottom: 1px solid var(--line); }
.schedule-card-head strong { font-size: 13px; }
.schedule-card-head span { color: var(--muted); font-size: 12px; }
.schedule-lane { display: grid; grid-template-columns: 120px repeat(3,minmax(0,1fr)); align-items: stretch; }
.schedule-lane > div { padding: 13px; border-right: 1px solid var(--line); }
.schedule-lane > div:last-child { border-right: 0; }
.lane-content { font-size: 12px; }
.lane-content strong { display: block; margin-bottom: 3px; }
.lane-content span { color: var(--muted); }
.batch-card { display: grid; grid-template-columns: minmax(220px,1fr) repeat(5,85px) 120px; align-items: center; padding: 13px 15px; gap: 8px; }
.batch-title { min-width: 0; }
.batch-title strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.batch-title span, .batch-metric span { color: var(--muted); font-size: 12px; }
.batch-metric strong { display: block; font-size: 12px; }

.asset-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.asset-card { position: relative; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); box-shadow: var(--shadow); }
.asset-card-top { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.asset-card h3 { margin: 0 0 8px; font-size: 15px; line-height: 1.45; }
.asset-card p { margin: 0 0 12px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.review-summary-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.review-summary-grid article { min-height:108px; display:flex; flex-direction:column; justify-content:center; gap:6px; padding:13px 16px; border:1px solid var(--line); border-radius:13px; background:var(--panel); box-shadow:var(--shadow); }
.review-summary-grid article.attention { border-color:#efd9cf; background:#fff9f7; }
.review-summary-grid span,.review-summary-grid small { color:var(--muted); font-size:12px; }
.review-summary-grid strong { color:var(--text); font-size:25px; line-height:1; }
.review-summary-grid .attention strong { color:#c25e43; }
.review-cycle-toolbar { display:flex; justify-content:flex-end; margin-bottom:16px; }
.review-list-section { margin-bottom:16px; border:1px solid var(--line); border-radius:14px; background:var(--panel); box-shadow:var(--shadow); overflow:hidden; }
.review-list-section.pending { border-color:#ead7cd; }
.review-list-section.reviewed { border-color:#d9e4d1; }
.review-list-section > header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:16px 18px 12px; border-bottom:1px solid var(--line); }
.review-list-section > header > div { display:grid; gap:3px; }
.review-list-section > header span { color:var(--brand); font-size:12px; font-weight:800; letter-spacing:.12em; }
.review-list-section > header h3 { margin:0; font-size:17px; }
.review-list-section > header p,.review-list-section > header > strong { margin:0; color:var(--muted); font-size:12px; font-weight:400; }
.review-list-row { width:100%; display:grid; grid-template-columns:minmax(240px,1.4fr) repeat(5,minmax(54px,.38fr)) minmax(210px,1fr) 118px; align-items:center; gap:10px; border:0; border-bottom:1px solid var(--line); padding:14px 18px; color:inherit; background:#fff; cursor:pointer; text-align:left; }
.review-list-row:last-child { border-bottom:0; }
.review-list-row:hover { background:#faf9ff; }
.review-list-title,.review-list-metric,.review-list-insight { min-width:0; display:grid; gap:3px; }
.review-list-title strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
.review-list-title span,.review-list-metric span { color:var(--muted); font-size:12px; }
.review-list-metric strong { font-size:12px; }
.review-list-insight { grid-template-columns:auto minmax(0,1fr); align-items:center; }
.review-list-insight p { margin:0; overflow:hidden; color:var(--muted); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.review-list-arrow { color:var(--brand); font-size:12px; font-weight:800; white-space:nowrap; text-align:right; }
.review-section-empty { padding:22px; color:var(--muted); font-size:12px; text-align:center; }
.asset-list { border:1px solid var(--line); border-radius:14px; background:var(--panel); box-shadow:var(--shadow); overflow:visible; }
.asset-library-section { margin-bottom:16px; overflow:hidden; border:1px solid var(--line); border-radius:14px; background:var(--panel); box-shadow:var(--shadow); }
.asset-library-section.pending { border-color:#ead7cd; }
.asset-library-section.archived { border-color:#d9e4d1; }
.asset-library-section > header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:16px 18px 12px; border-bottom:1px solid var(--line); }
.asset-library-section > header > div { display:grid; gap:3px; }
.asset-library-section > header span { color:var(--brand); font-size:12px; font-weight:800; letter-spacing:.12em; }
.asset-library-section > header h3 { margin:0; font-size:17px; }
.asset-library-section > header p,.asset-library-section > header > strong { margin:0; color:var(--muted); font-size:14px; font-weight:400; }
.asset-list.embedded { border:0; border-radius:0; box-shadow:none; }
.asset-section-empty { padding:28px 18px; color:var(--muted); font-size:14px; text-align:center; }
.asset-list-scroller { overflow-x:auto; border-radius:inherit; }
.asset-list-table { min-width:1390px; }
.asset-list-header,.asset-list-row,.asset-benchmark-row { display:grid; grid-template-columns:minmax(260px,1.35fr) 72px minmax(210px,1fr) repeat(5,64px) 112px 86px 112px; align-items:center; gap:12px; }
.asset-list-header { padding:11px 16px; border-bottom:1px solid var(--line); color:var(--muted); background:#f7f8fb; font-size:12px; }
.asset-list-row { position:relative; min-height:92px; padding:14px 16px; border-bottom:1px solid var(--line); }
.asset-list-record:last-child .asset-list-row,.asset-list-record:last-child .asset-benchmark-row { border-bottom:0; }
.asset-list-row:hover { background:#fbfbfe; }
.asset-list-title,.asset-list-date { min-width:0; display:grid; gap:5px; }
.asset-list-title strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
.asset-list-title span,.asset-list-date span { color:var(--muted); font-size:12px; }
.asset-list-summary { min-width:0; }
.asset-list-summary p { margin:0 0 7px; overflow:hidden; color:var(--muted); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.asset-list-date strong { font-size:12px; }
.asset-list-metric { color:#263143; font-size:12px; font-variant-numeric:tabular-nums; text-align:left; }
.asset-metrics-zone { position:relative; grid-column:span 5; display:grid; grid-template-columns:repeat(5,64px); gap:12px; align-items:center; min-width:0; margin:-8px -6px; padding:8px 6px; border:0; border-radius:8px; color:inherit; background:transparent; cursor:pointer; text-align:left; }
.asset-metrics-zone:hover { background:rgba(101,84,223,.055); }
.asset-metrics-zone > i { position:absolute; inset:0; display:grid; place-items:center; border-radius:8px; color:#667085; background:rgba(245,246,250,.74); backdrop-filter:blur(3px); font-size:12px; font-style:normal; }
.asset-metrics-zone.is-syncing { cursor:wait; }
.asset-list-actions { display:flex; justify-content:flex-end; gap:8px; }
.asset-list-actions a { text-decoration:none; }
.asset-benchmark-toggle { width:max-content; padding:0; border:0; background:transparent; color:#6554df; font-size:12px; cursor:pointer; display:inline-flex; align-items:center; gap:5px; }
.asset-benchmark-toggle:hover span { text-decoration:underline; }
.asset-benchmark-toggle i { width:13px; height:13px; display:grid; place-items:center; border:1px solid #ded9ff; border-radius:50%; font-size:12px; font-style:normal; }
.asset-benchmark-row { min-height:70px; padding:11px 16px; border-bottom:1px solid var(--line); background:#f8f6ff; box-shadow:inset 3px 0 0 #8a74ee; }
.asset-benchmark-row:hover { background:#f5f2ff; }
.asset-benchmark-title { min-width:0; display:grid; grid-template-columns:minmax(0,1fr); align-items:center; gap:4px; }
.asset-benchmark-title a,.asset-benchmark-title strong { min-width:0; overflow:hidden; color:#5141c7; font-size:12px; font-weight:700; text-decoration:none; text-overflow:ellipsis; white-space:nowrap; }
.asset-benchmark-title a:hover { text-decoration:underline; }
.asset-benchmark-title small { color:var(--muted); font-size:12px; font-weight:400; }
.asset-benchmark-summary,.asset-benchmark-relation { overflow:hidden; color:var(--muted); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.asset-reuse-control { position: relative; display: flex; align-items: center; gap: 3px; }
.reuse-history-count { min-width: 20px; height: 20px; display: grid; place-items: center; border: 1px solid #d9dce4; border-radius: 999px; padding: 0 6px; color: #818998; background: #f7f8fa; cursor: pointer; font-size: 12px; line-height: 1; }
.reuse-history-count:hover, .reuse-history-count.has-history { border-color: #cbc5ff; color: var(--brand); background: var(--brand-soft); }
.reuse-history-popover { position: absolute; z-index: 16; top: calc(100% + 8px); right: 0; width: min(320px, calc(100vw - 48px)); overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: #fff; box-shadow: 0 16px 42px rgba(24,30,40,.18); }
.reuse-history-popover[hidden] { display: none; }
.reuse-history-popover > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 12px; border-bottom: 1px solid var(--line); background: #fafbfc; }
.reuse-history-popover > header strong { font-size: 12px; }
.reuse-history-popover > header span { color: var(--muted); font-size: 12px; }
.reuse-history-list { display: grid; max-height: 280px; overflow-y: auto; padding: 6px; }
.reuse-history-item { display: grid; gap: 4px; border: 0; border-radius: 8px; padding: 9px; color: var(--text); background: transparent; cursor: pointer; text-align: left; }
.reuse-history-item:hover { color: var(--brand); background: var(--brand-soft); }
.reuse-history-item strong { overflow: hidden; font-size: 12px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.reuse-history-item span { color: var(--muted); font-size: 12px; }
.reuse-history-empty { padding: 18px 10px; color: var(--muted); font-size: 12px; text-align: center; }
.tag-list { display: flex; flex-wrap: wrap; gap: 5px; }
.tag { padding: 4px 7px; border-radius: 999px; color: var(--brand); background: var(--brand-soft); font-size: 12px; }
.muted { color: var(--muted); }

.modal-backdrop { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; padding: 20px; background: rgba(18,22,30,.48); }
.modal-backdrop[hidden] { display: none; }

/* ===== 拍剪·上传声音弹窗（抄轻语：宽弹窗 + 左右大虚框/卡片，套项目 light theme） ===== */
.voice-upload-modal { width: min(880px, 100%); padding: 22px 24px 22px; }
.voice-upload-modal__head { align-items: flex-start; gap: 18px; margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.voice-upload-modal__head-l { flex: 0 0 auto; }
.voice-upload-modal__head-l .eyebrow { margin: 0 0 4px; color: var(--brand); font-size: 12px; font-weight: 700; letter-spacing: .16em; }
.voice-upload-modal__head-l h2 { margin: 0; color: var(--ink); font-size: 22px; line-height: 1.25; }
.voice-upload-modal__head-r { flex: 1 1 auto; display: flex; align-items: flex-start; justify-content: flex-end; gap: 14px; min-width: 0; }
.voice-upload-modal__hint { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; text-align: right; max-width: 46ch; }
.voice-upload-modal__head .icon-button { color: var(--muted); font-size: 22px; line-height: 1; padding: 2px 8px; background: none; border: none; cursor: pointer; flex-shrink: 0; align-self: flex-start; margin-top: 2px; }
.voice-upload-modal__head .icon-button:hover { color: var(--ink); }
.voice-upload-modal__body { display: grid; grid-template-columns: 1.4fr 1fr; gap: 20px; min-height: 380px; }
.voice-upload-modal__drop { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; min-height: 380px; padding: 28px 24px; border-radius: 12px; border: 1.5px dashed var(--line); background: var(--panel-soft); text-align: center; cursor: copy; transition: border-color .15s ease, background .15s ease; outline: none; }
.voice-upload-modal__drop:hover, .voice-upload-modal__drop:focus, .voice-upload-modal__drop.is-drag { border-color: var(--brand); background: var(--brand-soft); }
.voice-upload-modal__dropicon { display: flex; align-items: center; justify-content: center; color: var(--brand); margin-bottom: 6px; opacity: .9; }
.voice-upload-modal__dropicon svg { width: 64px; height: 64px; }
.voice-upload-modal__droptext { color: var(--ink); font-size: 15px; font-weight: 600; }
.voice-upload-modal__dropsub { color: var(--muted); font-size: 12px; line-height: 1.6; max-width: 38ch; }
.voice-upload-modal__filemeta { margin-top: 8px; padding: 8px 12px; border-radius: 8px; background: var(--brand-soft); border: 1px solid color-mix(in srgb, var(--brand) 30%, transparent); color: var(--brand); font-size: 12px; line-height: 1.45; max-width: 100%; word-break: break-all; text-align: left; }
.voice-upload-modal__right { display: flex; flex-direction: column; gap: 14px; padding: 22px 20px; border-radius: 12px; background: var(--panel-soft); border: 1px solid var(--line); min-height: 380px; }
.voice-upload-modal__right .field { margin: 0; }
.voice-upload-modal__namefield { margin: 0; }
#voiceUploadModal .voice-upload-modal__namefield > span,
#voiceUploadModal .voice-upload-modal__namefield input { font-size: 14px !important; }
#voiceUploadNameHint { color: var(--muted); font-size: 12px; }
.voice-upload-modal__save { margin-top: auto; align-self: stretch; padding: 13px 18px; border: none; border-radius: 999px; background: linear-gradient(135deg, #7c63ff 0%, #d63a6a 100%); color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; box-shadow: 0 6px 14px rgba(124,99,255,.28); display: inline-flex; align-items: center; justify-content: center; gap: 6px; transition: transform .12s ease, box-shadow .12s ease, opacity .15s ease; }
.voice-upload-modal__save:not(:disabled):hover { transform: translateY(-1px); box-shadow: 0 10px 20px rgba(124,99,255,.34); }
  .voice-upload-modal__save:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; }
  .voice-upload-modal__rules { display: flex; align-items: center; gap: 8px; margin: 0 0 16px; padding: 9px 12px; border-radius: 9px; background: var(--brand-soft); border: 1px solid color-mix(in srgb, var(--brand) 22%, transparent); color: var(--brand); font-size: 12px; line-height: 1.5; }
  .voice-upload-modal__rules-dot { flex: 0 0 auto; width: 6px; height: 6px; border-radius: 50%; background: var(--brand); }
  .voice-upload-modal__filemeta--error { background: #FFF9E6; border-color: #F5D442; color: #E53E3E; }
  .voice-upload-modal__savehint { margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; text-align: center; }
  /* ===== 上传形象弹窗（仿上传声音同款布局） ===== */
  .avatar-upload-modal { width: min(880px, 100%); padding: 22px 24px 22px; }
  .avatar-upload-modal__head { align-items: flex-start; gap: 18px; margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
  .avatar-upload-modal__head h2 { margin: 0; color: var(--ink); font-size: 22px; line-height: 1.25; }
  .avatar-upload-modal__hint { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
  .avatar-upload-modal__head .icon-button { color: var(--muted); font-size: 22px; line-height: 1; padding: 2px 8px; background: none; border: none; cursor: pointer; flex-shrink: 0; align-self: flex-start; margin-top: 2px; }
  .avatar-upload-modal__head .icon-button:hover { color: var(--ink); }
  .avatar-upload-modal__rules { display: flex; align-items: center; gap: 8px; margin: 0 0 16px; padding: 9px 12px; border-radius: 9px; background: var(--brand-soft); border: 1px solid color-mix(in srgb, var(--brand) 22%, transparent); color: var(--brand); font-size: 12px; line-height: 1.5; }
  .avatar-upload-modal__rules-dot { flex: 0 0 auto; width: 6px; height: 6px; border-radius: 50%; background: var(--brand); }
  .avatar-upload-modal__body { display: grid; grid-template-columns: 1.4fr 1fr; gap: 20px; min-height: 380px; }
  .avatar-upload-modal__drop { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; min-height: 380px; padding: 28px 24px; border-radius: 12px; border: 1.5px dashed var(--line); background: var(--panel-soft); text-align: center; cursor: pointer; transition: border-color .15s ease, background .15s ease; outline: none; }
  .avatar-upload-modal__drop:hover, .avatar-upload-modal__drop:focus, .avatar-upload-modal__drop.is-drag { border-color: var(--brand); background: var(--brand-soft); }
  .avatar-upload-modal__dropicon { display: flex; align-items: center; justify-content: center; color: var(--brand); margin-bottom: 6px; opacity: .9; }
  .avatar-upload-modal__dropicon svg { width: 56px; height: 56px; }
  .avatar-upload-modal__droptext { color: var(--ink); font-size: 15px; font-weight: 600; }
  .avatar-upload-modal__dropsub { color: var(--muted); font-size: 12px; line-height: 1.6; max-width: 38ch; }
  .avatar-upload-modal__filemeta { margin-top: 8px; padding: 8px 12px; border-radius: 8px; background: var(--brand-soft); border: 1px solid color-mix(in srgb, var(--brand) 30%, transparent); color: var(--brand); font-size: 12px; line-height: 1.45; max-width: 100%; word-break: break-all; text-align: left; }
  .avatar-upload-modal__filemeta--error { background: #FFF9E6 !important; border-color: #F5D442 !important; color: #E53E3E !important; }
  .avatar-upload-modal__right { display: flex; flex-direction: column; gap: 14px; padding: 22px 20px; border-radius: 12px; background: var(--panel-soft); border: 1px solid var(--line); min-height: 380px; }
  .avatar-upload-modal__right .field { margin: 0; position: relative; }
  .avatar-upload-modal__right .field > span { display: block; font-size: 13px; font-weight: 600; color: var(--ink); margin-bottom: 8px; }
  .avatar-upload-modal__right .field > span em { color: var(--brand); font-style: normal; }
  .avatar-upload-modal__right input { font-size: 13px; }
  .avatar-upload-modal__counter { position: absolute; right: 0; bottom: -18px; font-size: 12px; color: var(--muted); }
  .avatar-upload-modal__save { margin-top: auto; align-self: stretch; padding: 13px 18px; border: none; border-radius: 999px; background: linear-gradient(135deg, #7c63ff 0%, #d63a6a 100%); color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; box-shadow: 0 6px 14px rgba(124,99,255,.28); display: inline-flex; align-items: center; justify-content: center; gap: 6px; transition: transform .12s ease, box-shadow .12s ease, opacity .15s ease; }
  .avatar-upload-modal__save:not(:disabled):hover { transform: translateY(-1px); box-shadow: 0 10px 20px rgba(124,99,255,.34); }
  .avatar-upload-modal__save:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; }
  .avatar-upload-modal__savehint { margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; text-align: center; }
  @media (max-width: 720px) {
    .avatar-upload-modal { width: 100%; }
    .avatar-upload-modal__head { flex-direction: column; }
    .avatar-upload-modal__hint { text-align: left; }
    .avatar-upload-modal__body { grid-template-columns: 1fr; min-height: 0; }
    .avatar-upload-modal__drop, .avatar-upload-modal__right { min-height: 0; }
  }
@media (max-width: 720px) {
  .voice-upload-modal { width: 100%; }
  .voice-upload-modal__head { flex-direction: column; }
  .voice-upload-modal__head-r { justify-content: space-between; width: 100%; }
  .voice-upload-modal__hint { text-align: left; }
  .voice-upload-modal__body { grid-template-columns: 1fr; min-height: 0; }
  .voice-upload-modal__drop, .voice-upload-modal__right { min-height: 0; }
}
.modal { width: min(480px,100%); padding: 18px; border-radius: 14px; background: var(--panel); box-shadow: 0 22px 60px rgba(18,22,30,.22); }
.auth-modal-backdrop { z-index: 10020; }
.phone-auth-modal { width:min(440px, calc(100vw - 28px)); display:grid; gap:14px; }
.phone-auth-code-row { display:flex; gap:8px; }
.phone-auth-code-row input { min-width:0; flex:1 1 auto; }
.phone-auth-code-row .button { flex:0 0 110px; font-size:13px; }
.phone-auth-status { height:18px; min-height:18px; margin:0; color:var(--muted); font-size:12px; line-height:18px; }
.account-entry { display:inline-flex; align-items:center; gap:7px; border:0; background:transparent; color:var(--ink); font-size:13px; cursor:pointer; padding:6px 4px; }
.account-entry-mark { display:grid; place-items:center; width:26px; height:26px; border-radius:8px; background:#ebe8ff; color:var(--brand); font-weight:800; }
.account-entry.is-signed-in { color:var(--brand); }
.auth-modal-backdrop { position:fixed; inset:0; z-index:10020; padding:0; background:#f5f6fa; overflow:auto; }
.phone-auth-page { width:100%; min-height:100vh; display:grid; grid-template-columns:minmax(360px,44%) minmax(440px,1fr); background:#fff; }
.phone-auth-intro { position:relative; display:flex; flex-direction:column; min-height:100vh; padding:38px clamp(34px,6vw,100px); color:#fff; background:radial-gradient(circle at 78% 20%,rgba(166,150,255,.52),transparent 26%),linear-gradient(145deg,#242052 0%,#433894 55%,#6758dc 100%); overflow:hidden; }
.phone-auth-intro::after { content:""; position:absolute; right:-130px; bottom:-100px; width:420px; height:420px; border:1px solid rgba(255,255,255,.18); border-radius:50%; box-shadow:0 0 0 56px rgba(255,255,255,.06),0 0 0 112px rgba(255,255,255,.04); }
.phone-auth-brand { display:flex; align-items:center; gap:10px; position:relative; z-index:1; font-size:17px; }
.phone-auth-brand span { display:grid; place-items:center; width:36px; height:36px; border-radius:11px; background:#fff; color:#5f52dc; font-weight:900; }
.phone-auth-intro-copy { position:relative; z-index:1; margin:auto 0; max-width:470px; }
.phone-auth-intro-copy p { margin:0 0 13px; font-size:12px; letter-spacing:.14em; color:#c9c1ff; font-weight:700; }
.phone-auth-intro-copy h1 { margin:0; font-size:clamp(30px,3.3vw,46px); line-height:1.25; letter-spacing:-.04em; }
.phone-auth-intro-copy span { display:block; max-width:370px; margin-top:22px; color:#dedaff; font-size:15px; line-height:1.8; }
.phone-auth-benefits { position:relative; z-index:1; display:grid; gap:14px; }
.phone-auth-benefits div { display:flex; gap:12px; align-items:center; color:#e4e0ff; font-size:13px; }
.phone-auth-benefits b { color:#c6bfff; font-size:12px; letter-spacing:.08em; }
.phone-auth-main { position:relative; display:grid; place-items:center; min-height:100vh; padding:48px 24px; background:#fcfcfe; }
.phone-auth-card { width:min(420px,100%); height:560px; box-sizing:border-box; display:grid; align-content:start; gap:16px; }
.phone-auth-tabs { min-height:42px; }
.phone-auth-tabs { display:flex; gap:4px; padding:4px; border-radius:10px; background:#f1f0f8; }
.phone-auth-tabs button { flex:1; border:0; border-radius:7px; padding:8px 6px; background:transparent; color:var(--muted); font-size:13px; cursor:pointer; }
.phone-auth-tabs button.active { background:#fff; color:var(--brand); font-weight:700; box-shadow:0 1px 4px rgba(36,32,82,.12); }
.phone-auth-card h2 { margin:-6px 0 0; font-size:26px; }
.phone-auth-card .muted { margin:-7px 0 7px; line-height:1.65; }
.phone-auth-card .field { gap:8px; }
.phone-auth-card .field > span { font-weight:700; font-size:14px; }
.phone-auth-card input { height:45px; border-radius:10px; }
.phone-auth-field { position:relative; }
#phoneAuthPasswordField { transform:translateY(4px); }
#phoneAuthCodeField,
.phone-auth-register-prompt { transform:translateY(8px); }
.phone-auth-field-error { position:absolute; z-index:1; top:calc(100% + 4px); left:0; height:17px; color:#d9363e; font-size:12px; line-height:17px; pointer-events:none; }
.phone-auth-card input.is-invalid { border-color:#d9363e; }
.phone-auth-card .phone-auth-code-row .button { min-height:45px; border-radius:10px; }
.phone-auth-code-row .button[data-disabled-tip] { position:relative; overflow:visible; }
.phone-auth-code-row .button[data-disabled-tip]:hover::after { content:attr(data-disabled-tip); position:absolute; z-index:30; right:0; bottom:calc(100% + 8px); width:max-content; max-width:240px; padding:6px 9px; border-radius:6px; background:#20283a; color:#fff; box-shadow:0 5px 16px rgba(22,30,50,.18); font-size:12px; font-weight:500; line-height:18px; white-space:nowrap; pointer-events:none; }
.phone-auth-register-prompt { display:grid; grid-template-rows:auto 45px; gap:8px; margin:0 0 14px; pointer-events:none; }
.phone-auth-register-prompt > span { visibility:hidden; font-size:12px; line-height:1.45; }
.phone-auth-register-prompt button { width:100%; height:45px; min-height:45px; box-sizing:border-box; border:0; border-radius:10px; padding:0; background:#eeeaff; color:#594ad5; font:inherit; font-size:14px; cursor:pointer; pointer-events:auto; }
.phone-auth-register-prompt button strong { margin-left:8px; color:#4d3fd2; }
.phone-auth-register-prompt button:hover { background:#e5e0ff; }
.phone-auth-card.is-login-mode .phone-auth-register-prompt { transform:translateY(-8px); }
.phone-auth-card.is-login-mode .phone-auth-submit { transform:translateY(-21px); }
.phone-auth-card.is-register-mode .phone-auth-submit { transform:translateY(-5px); }
.phone-auth-forgot { justify-self:start; display:inline-flex; align-items:center; width:max-content; margin:-5px 0 -18px; padding:0; border:0; background:transparent; color:#4b5565; font-size:13px; cursor:pointer; transform:translateY(4px); }
.phone-auth-forgot strong { margin-left:6px; color:var(--brand); }
.phone-auth-forgot strong { pointer-events:none; }
.phone-auth-forgot:hover,
.phone-auth-forgot:active,
.phone-auth-forgot:focus-visible { color:#4b5565; }
.phone-auth-forgot:hover strong,
.phone-auth-forgot:active strong,
.phone-auth-forgot:focus-visible strong { color:var(--brand); }
.phone-auth-submit { width:100%; height:45px; min-height:45px; box-sizing:border-box; padding:0; font-size:15px; }
.phone-auth-close { position:absolute; top:26px; right:28px; }
.phone-auth-agreement { margin:0; color:var(--muted); font-size:12px; text-align:center; line-height:1.6; }
body.phone-auth-open { overflow:hidden; }
.account-modal-backdrop { z-index:120; }
.account-modal-card { position:relative; width:min(780px,calc(100vw - 32px)); box-sizing:border-box; display:grid; gap:18px; padding:28px; border:1px solid #e2e5ef; border-radius:18px; background:#fff; box-shadow:0 24px 70px rgba(28,34,58,.2); }
.account-modal-card h2 { margin:-10px 0 0; font-size:24px; }
.account-modal-close { position:absolute; top:18px; right:18px; }
.account-profile { display:flex; align-items:center; gap:12px; padding:15px; border-radius:13px; background:#f6f5fb; }
.account-profile-mark { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; background:linear-gradient(135deg,#7668f3,#5747dd); color:#fff; font-weight:800; }
.account-profile div { min-width:0; display:grid; gap:3px; }
.account-profile small { color:var(--muted); }
.account-profile > b { margin-left:auto; padding:5px 9px; border-radius:99px; background:#e9e5ff; color:#5948df; font-size:12px; white-space:nowrap; }
.account-profile > b.is-expired { border:1px solid #edc9c9; color:var(--red); background:linear-gradient(90deg,rgba(255,240,240,.95),rgba(255,240,240,.45)); }
.account-membership-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.account-membership-summary > div { display:grid; gap:6px; padding:12px; border:1px solid #e6e8f0; border-radius:11px; }
.account-membership-summary span { color:var(--muted); font-size:12px; }
.account-membership-summary strong { font-size:14px; }
#headerProfileExpiry { white-space:nowrap; font-variant-numeric:tabular-nums; }
.account-membership-message { min-height:22px; margin:0; color:#8a5a00; font-size:14px; line-height:22px; }
.account-membership-guide-link { display:inline; margin:0 2px; border:0; padding:0; color:var(--blue); background:transparent; cursor:pointer; font:inherit; line-height:inherit; }
.account-membership-guide-link:hover { color:#225da8; text-decoration:underline; text-underline-offset:2px; }
.account-code-field { display:grid; gap:8px; font-size:14px; font-weight:700; }
.account-code-field > div { display:flex; gap:8px; }
.account-code-field input { min-width:0; flex:1; height:42px; }
.account-code-field button { flex:0 0 96px; }
.account-modal-actions { display:flex; justify-content:flex-end; padding-top:2px; }
.generation-failure-message { color:#c0392b; }
.membership-activation-link { display:inline; border:0; padding:0; color:var(--blue); background:transparent; cursor:pointer; font:inherit; line-height:inherit; text-decoration:underline; text-underline-offset:2px; }
.membership-activation-link:hover { color:#225da8; }
.generation-failure-message .membership-guidance-actions { margin-top:10px; }
.membership-guidance-actions { display:inline-flex; align-items:center; flex-wrap:wrap; gap:7px; }
.membership-guidance-link { display:inline; border:0; padding:0; background:transparent; cursor:pointer; font:inherit; font-weight:800; line-height:inherit; text-decoration:underline; text-underline-offset:3px; }
.membership-guidance-link.is-experience { color:#c46b16; }
.membership-guidance-link.is-paid { color:#356fd3; }
.membership-guidance-link:hover { filter:brightness(.82); }
.membership-flow-backdrop { z-index:132; align-items:center; overflow:auto; }
.membership-flow-modal { position:relative; width:min(780px,calc(100vw - 32px)); box-sizing:border-box; padding:30px; border:1px solid #e2e5ef; border-radius:20px; background:#fff; box-shadow:0 24px 70px rgba(28,34,58,.26); }
.membership-flow-page[hidden] { display:none !important; }
.membership-flow-nav { min-height:38px; display:grid; grid-template-columns:auto 1fr 32px; align-items:center; gap:12px; margin:0 0 16px; }
.membership-flow-close { position:absolute; top:24px; right:30px; z-index:2; }
.membership-flow-back { position:static; z-index:2; border:0; padding:5px 0; color:var(--blue); background:transparent; font:inherit; font-weight:700; cursor:pointer; }
.membership-flow-status { width:100%; box-sizing:border-box; display:grid; justify-items:center; gap:20px; margin:auto; padding:4px 22px 22px; text-align:center; }
.membership-flow-status h2 { margin:8px 0 18px; font-size:30px; line-height:1.25; }
.membership-flow-status > p { margin:0; color:#5d6474; font-size:18px; line-height:1.7; }
.membership-flow-status .membership-access-icon { width:58px; height:58px; border-radius:18px; }
.membership-flow-status .membership-access-actions { max-width:560px; padding:18px 22px; }
.membership-flow-status .membership-guidance-actions { font-size:18px; }
.membership-flow-activation-entry { margin-top:0; }
.membership-access-modal { position:relative; width:min(500px,calc(100vw - 32px)); display:grid; justify-items:center; gap:14px; padding:32px; border:1px solid #e2e5ef; border-radius:18px; background:#fff; box-shadow:0 24px 70px rgba(28,34,58,.26); text-align:center; }
.membership-access-close { position:absolute; top:15px; right:15px; }
.membership-access-icon { width:52px; height:52px; display:grid; place-items:center; border-radius:16px; color:#6a57e8; background:#f0edff; font-size:28px; font-weight:800; }
.membership-access-modal h2 { margin:0; font-size:23px; }
.membership-access-modal > p { margin:0; color:#5d6474; font-size:15px; line-height:1.7; }
.membership-access-actions { display:grid; gap:10px; justify-items:center; width:100%; padding:15px 18px; border-radius:12px; background:#f7f8fc; }
.membership-access-actions > span:first-child { display:none; }
.membership-access-actions .membership-guidance-actions { justify-content:center; font-size:16px; }
.membership-purchase-modal { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 210px; gap:22px; align-items:center; }
.membership-purchase-close { position:absolute; z-index:1; top:18px; right:18px; }
.membership-purchase-copy { min-width:0; }
.membership-purchase-copy h2 { margin:5px 0 10px; font-size:24px; }
.membership-purchase-copy > p:not(.eyebrow) { margin:0; color:var(--muted); font-size:14px; line-height:1.7; }
.membership-purchase-copy > .membership-purchase-experience-tip { margin-top:6px; color:#8a5a00; }
.membership-purchase-experience-tip > strong { color:var(--red); font-weight:800; }
.membership-purchase-experience-tip button { display:inline; border:0; padding:0; color:var(--blue); background:transparent; cursor:pointer; font:inherit; line-height:inherit; }
.membership-purchase-experience-tip button:hover { color:#225da8; text-decoration:underline; text-underline-offset:2px; }
.membership-purchase-steps { display:grid; gap:15px; margin:24px 0; padding:0; list-style:none; }
.membership-purchase-steps li { display:flex; align-items:flex-start; gap:11px; }
.membership-purchase-steps li > span { flex:0 0 26px; width:26px; height:26px; display:grid; place-items:center; border-radius:50%; color:var(--blue); background:var(--blue-soft); font-size:12px; font-weight:800; }
.membership-purchase-steps div { display:grid; gap:3px; }
.membership-purchase-steps strong { font-size:14px; line-height:1.4; }
.membership-purchase-steps small { color:var(--muted); font-size:12px; line-height:1.55; }
.membership-note-keyword { color:var(--red); font-style:normal; }
.membership-note-warning { color:inherit; font-weight:700; }
.membership-purchase-redeem { color:var(--blue); border-color:#cdddf3; }
.membership-purchase-qr { margin:0; padding:12px; border:1px solid var(--line); border-radius:15px; background:#fafbfc; text-align:center; }
.membership-purchase-qr img { display:block; width:100%; max-height:310px; border-radius:10px; object-fit:contain; background:#fff; }
.membership-purchase-qr figcaption { margin-top:10px; color:var(--muted); font-size:12px; }
@media(max-width:560px){.account-membership-summary{grid-template-columns:1fr}.account-code-field>div{align-items:stretch;flex-direction:column}.account-code-field button{flex:auto}}
@media(max-width:720px){.membership-flow-backdrop{align-items:start}.membership-flow-modal{width:min(780px,calc(100vw - 20px));padding:18px 20px 24px;margin:auto}.membership-flow-close{top:18px;right:20px}.membership-flow-nav{margin-bottom:16px}.membership-flow-status{padding:4px 2px 12px}.membership-flow-status h2{font-size:25px}.membership-flow-status>p{font-size:16px}.membership-purchase-modal{grid-template-columns:1fr;gap:20px}.membership-purchase-qr{grid-row:2;justify-self:center;width:min(210px,100%)}.membership-purchase-qr img{max-height:310px}.membership-purchase-redeem{width:100%}}
@media(max-width:760px){.phone-auth-page{grid-template-columns:1fr}.phone-auth-intro{display:none}.phone-auth-main{padding:64px 24px 32px}.phone-auth-card{height:560px}.phone-auth-close{top:18px;right:18px}}
.phone-auth-status.is-error { color:#c43a3a; }
.phone-auth-status.is-success { color:#18824b; }
#aliyunCaptchaMount:empty { display:none; }
@media (max-width:480px) { .phone-auth-code-row .button { flex-basis:102px; padding-left:6px; padding-right:6px; } }
.modal-head { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.modal-head h2 { margin: 4px 0 0; font-size: 20px; }

/* 全站浮窗关闭键：固定在弹窗边框右上角；视觉无边框，32px 热区保持不变。 */
.modal-backdrop :is(.modal, .account-modal-card, .membership-flow-modal, .phone-auth-page, .onboarding-card) { position:relative; }
.modal-backdrop :is(.modal, .account-modal-card, .membership-flow-modal, .phone-auth-page, .onboarding-card) button[aria-label="关闭"],
.modal-backdrop :is(.modal, .account-modal-card, .membership-flow-modal, .phone-auth-page, .onboarding-card) button[aria-label="关闭新手引导"] {
  position:absolute;
  top:18px;
  right:18px;
  z-index:5;
  width:32px;
  height:32px;
  min-width:32px;
  padding:0;
  display:grid;
  place-items:center;
  border:0;
  border-radius:8px;
  color:#687080;
  background:transparent;
  font-size:32px;
  font-weight:300;
  line-height:1;
  cursor:pointer;
}
.modal-backdrop :is(.modal, .account-modal-card, .membership-flow-modal, .phone-auth-page, .onboarding-card) button[aria-label="关闭"]:hover,
.modal-backdrop :is(.modal, .account-modal-card, .membership-flow-modal, .phone-auth-page, .onboarding-card) button[aria-label="关闭新手引导"]:hover {
  color:var(--ink);
  background:rgba(27,31,42,.06);
}
.modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }
.capture-idea-modal { width:min(640px,100%); }
.capture-idea-head { align-items:flex-start; margin-bottom:12px; }
.capture-idea-title-row { display:flex; align-items:flex-end; gap:14px; margin-top:4px; }
.capture-idea-title-row h2 { margin:0; }
.capture-idea-title-row strong { border-left:1px solid #cfd4dd; padding-left:14px; color:#343b48; font-size:16px; font-weight:700; line-height:1.35; white-space:nowrap; }
.capture-idea-guide { display:grid; gap:2px; margin:0 0 18px; color:#7b8391; font-size:14px; line-height:1.6; }
.capture-idea-guide span { display:block; }
.capture-draft-recovery { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:0 0 16px; padding:10px 12px; border:1px solid #ddd8ff; border-radius:9px; color:#626b7a; background:#f7f5ff; font-size:13px; line-height:1.5; }
.capture-draft-recovery[hidden] { display:none; }
.capture-draft-recovery button { flex:0 0 auto; border:0; padding:3px 0; color:var(--brand); background:transparent; font-size:12px; font-weight:600; cursor:pointer; }
.capture-draft-recovery button:hover { text-decoration:underline; }
.capture-idea-modal .inspiration-draft-status { display:inline-block; color:#17855f !important; font-size:12px !important; font-weight:500 !important; }
.capture-idea-modal .inspiration-draft-status.saving { color:var(--brand) !important; }
.capture-idea-modal .inspiration-draft-status.error { color:#bd4545 !important; }
.capture-idea-modal .field > .capture-field-label,
.capture-idea-modal .field-save-head > .capture-field-label { display:inline-flex; align-items:baseline; gap:0; color:#343b48; font-size:16px !important; line-height:1.4; }
.capture-idea-modal .capture-field-label strong { font-size:inherit; font-weight:600; }
.capture-idea-modal .capture-field-label em { font-size:inherit; font-style:normal; font-weight:400; }
.capture-idea-modal .field-save-head { align-items:center; }
.capture-idea-modal .capture-field-meta { display:inline-flex; align-items:center; justify-content:flex-end; gap:4px; margin-left:auto; }
.capture-idea-modal .capture-field-meta > em { min-width:44px; color:#7b8391; font-size:12px; font-style:normal; font-weight:400; text-align:right; white-space:nowrap; }
.capture-idea-modal .capture-field-meta .inspiration-draft-status { display:inline-flex; align-items:center; justify-content:flex-end; width:60px; flex:0 0 60px; margin-left:0; color:#1a7f43 !important; font-weight:400 !important; }
.capture-idea-modal .capture-field-meta .inspiration-draft-status::before { content:""; width:6px; height:6px; flex-shrink:0; margin-right:4px; border-radius:50%; background:currentColor; }
.capture-idea-modal .capture-field-meta .inspiration-draft-status.saving { color:#d4b65c !important; }
.capture-idea-modal input,
.capture-idea-modal textarea { width:100%; box-sizing:border-box; }
#newContentModal #newContentUrl:focus,
#newContentModal #newContentUrl:focus-visible { border-color:#aaa1ff; outline:none !important; box-shadow:0 0 0 1px rgba(102,86,238,.10),0 0 4px rgba(102,86,238,.08); }
#newContentModal #newContentName { height:96px; min-height:96px; max-height:96px; overflow-y:auto; resize:none; line-height:1.55; }
#newContentModal #newContentNotes { height:72px; min-height:72px; max-height:72px; overflow-y:auto; resize:none; line-height:1.55; }
.reuse-topic-confirm-modal { width: min(520px, 100%); }
.confirm-action-modal { width:min(500px,100%); padding:0; overflow:hidden; }
.confirm-action-head { align-items:flex-start; margin:0; padding:20px 22px 17px; border-bottom:1px solid var(--line); }
.confirm-action-head .eyebrow { margin:0; }
.confirm-action-body { display:grid; grid-template-columns:36px minmax(0,1fr); gap:12px; align-items:start; padding:20px 22px; background:#fafbfe; }
.confirm-action-symbol { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; color:#b56b17; background:#fff2d8; font-weight:700; }
.confirm-action-body strong { display:block; color:var(--ink); font-size:14px; line-height:1.65; }
.confirm-action-body p { margin:7px 0 0; color:var(--muted); line-height:1.65; }
.confirm-action-actions { margin:0; padding:15px 22px 18px; border-top:1px solid var(--line); background:#fff; }
.confirm-action-modal[data-tone="danger"] .confirm-action-symbol { color:#c44040; background:#fff0f0; }
.confirm-action-modal[data-tone="danger"] #acceptConfirmActionButton { border-color:#c84c4c; background:#c84c4c; }
.review-complete-button.is-locked { border-color:#d8dde7; color:#99a1af; background:#eef1f5; box-shadow:none; cursor:not-allowed; }
.review-complete-button.is-locked:hover { border-color:#d8dde7; color:#99a1af; background:#eef1f5; transform:none; }

/* Other creator commitments: reusable type templates and independent calendar instances. */
.operational-schedule-pool { position:relative; z-index:12; padding:14px 8px 8px; border-bottom:1px solid var(--line); background:#fbfaff; }
.operational-schedule-pool > header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.operational-schedule-pool > header > div { min-width:0; width:100%; display:flex; flex-direction:column; gap:2px; }
.operational-schedule-title-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.operational-schedule-pool > header strong { font-size:14px; color:var(--text); }
.operational-schedule-pool > header small { font-size:12px; color:var(--muted); }
.operational-type-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.operational-type-card { min-width:0; display:grid; grid-template-columns:25px minmax(0,1fr); grid-template-rows:25px auto; align-items:center; column-gap:5px; row-gap:0; padding:3.5px 3px 3.5px 6px; border:1px solid color-mix(in srgb,var(--schedule-color) 28%,var(--line)); border-radius:10px; background:color-mix(in srgb,var(--schedule-color) 7%,#fff); cursor:grab; user-select:none; touch-action:none; }
.operational-type-card:active,.operational-type-card.is-dragging { cursor:grabbing; opacity:.58; }
.operational-type-card .drag-handle { grid-column:1; grid-row:2; justify-self:center; color:var(--schedule-color); font-size:15px; line-height:12px; }
.operational-type-card > i { grid-column:1; grid-row:1; display:grid; place-items:center; width:25px; height:25px; border-radius:8px; color:var(--schedule-color); background:color-mix(in srgb,var(--schedule-color) 12%,#fff); font-style:normal; }
.operational-type-card > div { min-width:0; grid-column:2; grid-row:1 / span 2; align-self:center; }
.operational-type-card strong,.operational-type-card small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.operational-type-card strong { color:color-mix(in srgb,var(--schedule-color) 80%,#1f2937); font-size:13px; }
.operational-type-card small { margin-top:2px; color:var(--muted); font-size:12px; }
.review-batch-context { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:12px; padding:12px 14px; border:1px solid #ead7b7; border-radius:12px; background:#fffaf1; }
.review-batch-context > div { min-width:0; display:grid; gap:3px; }
.review-batch-context strong { font-size:14px; color:var(--text); }
.review-batch-context span { color:var(--muted); font-size:12px; }
.operational-type-overflow-anchor { position:static; }
.operational-type-expand { width:100%; border:0; background:transparent; color:var(--brand); font-size:12px; cursor:pointer; }
.operational-type-expand { display:flex; align-items:center; justify-content:center; gap:6px; padding:8px 0 0; }
.operational-type-expand span { font-size:13px; }
.operational-type-overflow { position:absolute; top:calc(100% - 8px); left:0; right:0; z-index:24; box-sizing:border-box; max-height:calc(100vh - 330px); overflow-y:auto; padding:9px 10px 8px; border:0; border-bottom:1px solid var(--line); border-radius:0 0 13px 13px; background:#fbfaff; box-shadow:none; backdrop-filter:none; }
.content-schedule-pool > header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 15px 9px 10px; }
.content-schedule-pool > header > div { min-width:0; display:flex; flex-direction:column; gap:2px; }
.content-schedule-pool > header strong { color:var(--text); font-size:14px; }
.content-schedule-pool > header small,.content-schedule-pool > header > span { color:var(--muted); font-size:12px; }
.content-schedule-pool .schedule-pool-list { padding-top:5px; }
.calendar-event.operational { background:color-mix(in srgb,var(--content-color) 9%,#fff); border-color:color-mix(in srgb,var(--content-color) 28%,var(--line)); }
.calendar-event.operational.completed { opacity:.66; }
.calendar-event.operational.completed span { text-decoration:line-through; }

.schedule-type-manager-modal { width:min(720px,100%); max-height:min(86vh,760px); overflow:auto; }
.schedule-type-manager-modal .modal-head p { margin:7px 0 0; }
.schedule-type-manager-list { display:grid; gap:10px; }
.schedule-type-manager-row { display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:12px; padding:12px; border:1px solid color-mix(in srgb,var(--schedule-color) 28%,var(--line)); border-radius:12px; background:color-mix(in srgb,var(--schedule-color) 5%,#fff); }
.schedule-type-manager-row.inactive { filter:grayscale(.65); opacity:.72; }
.schedule-type-symbol { display:grid; place-items:center; width:42px; height:42px; border-radius:11px; color:var(--schedule-color); background:color-mix(in srgb,var(--schedule-color) 12%,#fff); font-size:18px; }
.schedule-type-manager-row > div:nth-child(2) { min-width:0; }
.schedule-type-manager-row > div:nth-child(2) strong,.schedule-type-manager-row > div:nth-child(2) small { display:block; }
.schedule-type-manager-row > div:nth-child(2) small { margin-top:4px; color:var(--muted); }
.schedule-type-manager-row > div:last-child { display:flex; align-items:center; gap:6px; }
.button.danger,.button.danger.ghost { color:#c44040; }
.button.danger.ghost { border-color:transparent; background:transparent; }
.schedule-type-editor-modal,.schedule-event-editor-modal { width:min(560px,100%); }
.schedule-type-visual-field { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:14px; padding:13px; border:1px solid var(--line); border-radius:10px; }
.schedule-type-visual-field > div strong,.schedule-type-visual-field > div small { display:block; }
.schedule-type-visual-field > div small { margin-top:3px; color:var(--muted); }
.schedule-type-visual-field label { display:flex; align-items:center; gap:9px; color:var(--muted); font-variant-numeric:tabular-nums; }
.schedule-type-visual-field input[type="color"] { width:38px; height:38px; padding:3px; border:1px solid var(--line); border-radius:9px; background:#fff; }
.schedule-type-preview { --schedule-color:#4f8580; display:flex; align-items:center; gap:12px; margin-top:14px; padding:14px; border:1px solid color-mix(in srgb,var(--schedule-color) 35%,var(--line)); border-radius:11px; background:color-mix(in srgb,var(--schedule-color) 6%,#fff); }
.schedule-type-preview > span { display:grid; place-items:center; width:40px; height:40px; border-radius:10px; color:var(--schedule-color); background:color-mix(in srgb,var(--schedule-color) 12%,#fff); }
.schedule-type-preview strong,.schedule-type-preview small { display:block; }
.schedule-type-preview small { margin-top:3px; color:var(--muted); }
.schedule-event-complete { display:flex; align-items:center; gap:8px; margin-top:14px; color:var(--text); }
.schedule-event-actions { display:grid; grid-template-columns:auto 1fr auto auto; }

@media (max-width: 1100px) {
  .operational-type-list { grid-template-columns:1fr; }
  .schedule-type-manager-row { grid-template-columns:42px minmax(0,1fr); }
  .schedule-type-manager-row > div:last-child { grid-column:1 / -1; justify-content:flex-end; }
}
.reuse-topic-source { display: grid; gap: 5px; border: 1px solid #ddd9ff; border-radius: 10px; padding: 11px 13px; background: var(--brand-soft); }
.reuse-topic-source span { color: var(--muted); font-size: 12px; }
.reuse-topic-source strong { overflow: hidden; font-size: 13px; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; }
.reuse-topic-notes { display: grid; gap: 12px; margin-top: 16px; }
.reuse-topic-notes > div { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; align-items: start; }
.reuse-topic-notes > div > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; color: var(--brand); background: var(--brand-soft); font-size: 12px; font-weight: 700; }
.reuse-topic-notes p { display: grid; gap: 4px; margin: 0; }
.reuse-topic-notes p strong { font-size: 12px; }
.reuse-topic-notes p small { color: var(--muted); font-size: 12px; line-height: 1.6; }
.candidate-options { display: grid; gap: 10px; max-height: min(54vh, 520px); overflow-y: auto; padding: 2px; }
.candidate-option { position: relative; display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 10px; align-items: start; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; cursor: pointer; transition: border-color .16s ease, background .16s ease, box-shadow .16s ease; }
.candidate-option:hover { border-color: #b9b1ff; background: #faf9ff; }
.candidate-option:has(input:checked),
.candidate-option:has(input:focus-visible) { border-color: #aaa1ff; background: #fff; box-shadow: 0 0 0 1px rgba(102,86,238,.10), 0 0 4px rgba(102,86,238,.08); }
.candidate-option input { position: absolute; opacity: 0; pointer-events: none; }
.candidate-check { display: grid; place-items: center; width: 22px; height: 22px; border: 1px solid #cfd3dc; border-radius: 6px; color: transparent; background: #fff; font-size: 14px; font-weight: 800; line-height: 1; }
.candidate-option input:checked + .candidate-check { border-color: var(--brand); background: var(--brand); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); }
.candidate-copy { display: grid; gap: 6px; min-width: 0; }
.candidate-copy strong { color: var(--text); font-size: 13px; }
.candidate-copy > span { white-space: pre-wrap; line-height: 1.65; color: var(--text); }
.candidate-section { display: grid; gap: 10px; }
.candidate-section-title { color: #555f70; font-size: 12px; font-weight: 700; }
.candidate-history { border-top: 1px solid var(--line); padding-top: 10px; }
.candidate-history summary { color: var(--brand); cursor: pointer; font-size: 12px; font-weight: 650; }
.candidate-history-list { display: grid; gap: 10px; padding-top: 10px; }
.history-button { margin-left: auto; color: #687184; }
.ai-chat-launcher-group { display: none !important; position: fixed; right: 22px; bottom: 22px; z-index: 72; align-items: center; gap: 7px; transition: right .22s ease, transform .16s ease, opacity .16s ease; }
body.gpt-drawer-visible .ai-chat-launcher-group { right: min(922px, calc(100vw - 170px)); }
.ai-chat-launcher { display: flex; align-items: center; gap: 9px; border: 1px solid #dfe3e9; border-radius: 999px; padding: 7px 9px 7px 7px; color: #343a45; background: rgba(255,255,255,.96); box-shadow: 0 12px 34px rgba(25,31,42,.16); cursor: pointer; transition: transform .16s ease, box-shadow .16s ease; }
.ai-chat-launcher:hover { transform: translateY(-2px); box-shadow: 0 16px 38px rgba(25,31,42,.2); }
.ai-chat-options-launcher { width: 34px; height: 34px; border: 1px solid #dfe3e9; border-radius: 50%; color: #606877; background: rgba(255,255,255,.96); box-shadow: 0 8px 24px rgba(25,31,42,.12); cursor: pointer; font-size: 12px; letter-spacing: -1px; }
.ai-chat-options-launcher:hover { color: var(--brand); border-color: #cec8ff; background: var(--brand-soft); }
.ai-chat-launcher-mark, .ai-chat-brand-mark, .ai-chat-welcome-mark, .ai-chat-empty-mark { display: grid; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(145deg,#1f2630,#6658e8); font-weight: 750; }
.ai-chat-launcher-mark { width: 42px; height: 42px; font-size: 18px; }
.ai-chat-launcher-tip { padding-right: 5px; font-size: 12px; white-space: nowrap; }
.ai-chat-panel { position: fixed; z-index: 71; top: 0; right: 0; width: min(900px, 100vw); height: 100vh; display: flex; flex-direction: column; border-left: 1px solid var(--line); background: #fff; box-shadow: -18px 0 48px rgba(24,30,40,.12); opacity: 0; pointer-events: none; transform: translateX(102%); transition: transform .22s ease, opacity .18s ease; }
.ai-chat-panel.open { opacity: 1; pointer-events: auto; transform: translateX(0); }
body.ai-chat-open .ai-chat-launcher-group { opacity: 0; pointer-events: none; transform: translateY(12px) scale(.94); }
.ai-chat-head { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); }
.ai-chat-head > div:first-child { display: flex; align-items: center; gap: 10px; min-width: 0; }
.ai-chat-brand-mark { width: 34px; height: 34px; flex: 0 0 auto; font-size: 14px; }
.ai-chat-head > div:first-child > div { min-width: 0; display: grid; gap: 2px; }
.ai-chat-head strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.ai-chat-head small { color: var(--muted); font-size: 12px; }
.ai-chat-head-actions { display: flex; gap: 5px; }
.ai-chat-head-actions button { width: 32px; height: 32px; border: 0; border-radius: 8px; color: #59616f; background: transparent; cursor: pointer; font-size: 20px; }
.ai-chat-head-actions button:hover { background: var(--panel-soft); }
.ai-chat-mode-switch { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 9px 12px; border-bottom: 1px solid var(--line); background: #fbfbfc; }
.ai-chat-mode-switch button { display: grid; gap: 2px; border: 1px solid transparent; border-radius: 9px; padding: 8px 10px; color: var(--muted); background: transparent; cursor: pointer; text-align: left; }
.ai-chat-mode-switch button:hover { background: #f3f4f7; }
.ai-chat-mode-switch button.active { border-color: #d9d4ff; color: var(--brand); background: var(--brand-soft); }
.ai-chat-mode-switch button span { font-size: 12px; font-weight: 700; }
.ai-chat-mode-switch button small { font-size: 12px; }
.ai-chat-membership { min-height: 0; flex: 1; display: flex; flex-direction: column; gap: 16px; overflow-y: auto; padding: 28px 30px 24px; }
.ai-chat-membership-hero { display: flex; align-items: center; gap: 13px; margin-top: auto; }
.ai-chat-membership-hero > div { display: grid; gap: 3px; }
.ai-chat-membership-hero p { margin: 0; color: var(--brand); font-size: 12px; font-weight: 750; letter-spacing: .14em; }
.ai-chat-membership-hero h2 { margin: 0; font-size: 19px; line-height: 1.45; }
.ai-chat-membership-intro { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.7; }
.ai-chat-member-context { display: grid; gap: 5px; border: 1px solid #ddd9ff; border-radius: 11px; padding: 11px 12px; background: #f8f7ff; }
.ai-chat-member-context strong { font-size: 12px; }
.ai-chat-member-context p { display: -webkit-box; margin: 0; overflow: hidden; color: var(--muted); font-size: 12px; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.ai-chat-member-question { display: grid; gap: 7px; }
.ai-chat-member-question span { color: #555e6b; font-size: 12px; font-weight: 650; }
.ai-chat-member-question textarea { width: 100%; min-height: 102px; border: 1px solid var(--line); border-radius: 10px; padding: 10px 11px; resize: vertical; line-height: 1.6; }
.ai-chat-member-open { display: grid; gap: 3px; width: 100%; padding: 12px 14px; }
.ai-chat-member-open span { font-size: 12px; }
.ai-chat-member-open small { font-size: 12px; font-weight: 500; opacity: .8; }
.ai-chat-member-flow { display: flex; align-items: center; justify-content: center; gap: 7px; color: var(--muted); font-size: 12px; }
.ai-chat-member-flow i { color: #b0b5bf; font-style: normal; }
.ai-chat-member-note { min-height: 28px; margin: 0 0 auto; color: var(--muted); font-size: 12px; line-height: 1.55; text-align: center; }
.ai-chat-member-note.success { color: var(--green); }
.ai-chat-login { flex: 1; display: grid; align-content: center; gap: 13px; padding: 34px 42px; overflow-y: auto; }
.ai-chat-welcome-mark { width: 58px; height: 58px; font-size: 23px; }
.ai-chat-login h2, .ai-chat-empty h2 { margin: 4px 0 0; font-size: 22px; }
.ai-chat-login p { margin: 0 0 8px; color: var(--muted); font-size: 12px; line-height: 1.7; }
.ai-chat-login label { display: grid; gap: 6px; }
.ai-chat-login label span { color: #555e6b; font-size: 12px; font-weight: 650; }
.ai-chat-login input { width: 100%; border: 1px solid var(--line); border-radius: 9px; padding: 11px 12px; }
.ai-chat-login-actions { display: flex; gap: 8px; }
.ai-chat-login-actions .button { flex: 1; }
#aiChatLoginMessage { min-height: 18px; color: var(--red); font-size: 12px; }
.ai-chat-main { min-height: 0; flex: 1; display: flex; flex-direction: column; }
.ai-chat-context { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 10px 12px 0; padding: 9px 10px; border: 1px solid #dcd8ff; border-radius: 10px; background: #f7f6ff; }
.ai-chat-context > div { min-width: 0; display: grid; gap: 2px; }
.ai-chat-context strong { font-size: 12px; }
.ai-chat-context span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: 12px; }
.ai-chat-context > button { border: 0; color: var(--muted); background: transparent; cursor: pointer; }
.ai-chat-config-warning { display: grid; gap: 3px; margin: 8px 12px 0; padding: 10px 11px; border: 1px solid #f0d2a3; border-radius: 9px; color: #8f5a19; background: #fff8ec; }
.ai-chat-config-warning strong { font-size: 12px; }
.ai-chat-config-warning span { font-size: 12px; line-height: 1.5; }
.ai-chat-messages { min-height: 0; flex: 1; display: grid; align-content: start; gap: 14px; overflow-y: auto; padding: 18px 16px 12px; }
.ai-chat-message { display: grid; gap: 6px; max-width: 88%; }
.ai-chat-message.user { justify-self: end; }
.ai-chat-message.assistant { justify-self: start; }
.ai-chat-message > span { color: var(--muted); font-size: 12px; }
.ai-chat-message.user > span { text-align: right; }
.ai-chat-message-copy { border-radius: 14px; padding: 10px 12px; white-space: pre-wrap; word-break: break-word; font-size: 12px; line-height: 1.72; }
.ai-chat-message.user .ai-chat-message-copy { color: #fff; background: var(--brand); border-bottom-right-radius: 4px; }
.ai-chat-message.assistant .ai-chat-message-copy { border: 1px solid var(--line); background: var(--panel-soft); border-bottom-left-radius: 4px; }
.ai-chat-message-actions { display: flex; gap: 5px; }
.ai-chat-message-actions button { border: 0; padding: 3px 0; color: var(--muted); background: transparent; cursor: pointer; font-size: 12px; }
.ai-chat-message-actions button:hover { color: var(--brand); }
.ai-chat-empty { flex: 1; display: grid; align-content: center; gap: 10px; padding: 26px 34px 18px; }
.ai-chat-empty-mark { width: 52px; height: 52px; font-size: 20px; }
.ai-chat-empty button { border: 0; padding: 8px 0; color: #49515d; background: transparent; cursor: pointer; text-align: left; font-size: 12px; }
.ai-chat-empty button::before { content: "＋"; margin-right: 10px; color: var(--brand); }
.ai-chat-empty button:hover { color: var(--brand); }
.ai-chat-composer { margin: 0 12px 12px; border: 1px solid #d9dde5; border-radius: 16px; padding: 10px; background: #fff; box-shadow: 0 8px 24px rgba(31,38,48,.08); }
.ai-chat-composer:focus-within { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(102,88,232,.1), 0 8px 24px rgba(31,38,48,.08); }
.ai-chat-composer textarea { width: 100%; min-height: 68px; max-height: 180px; border: 0; padding: 4px; outline: 0; resize: none; }
.ai-chat-composer > div:last-child { display: flex; align-items: center; gap: 8px; }
.ai-chat-context-button { border: 0; padding: 5px; color: var(--muted); background: transparent; cursor: pointer; font-size: 12px; }
.ai-chat-context-button:hover { color: var(--brand); }
#aiChatUserLabel { min-width: 0; flex: 1; overflow: hidden; border: 0; padding: 3px; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); background: transparent; cursor: pointer; font-size: 12px; text-align: right; }
#aiChatUserLabel:hover { color: var(--brand); }
.ai-chat-send { width: 32px; height: 32px; flex: 0 0 auto; border: 0; border-radius: 50%; color: #fff; background: var(--brand); cursor: pointer; font-size: 17px; }
.ai-chat-send:disabled { opacity: .38; cursor: not-allowed; }
.ai-chat-selection-chip { width: fit-content; display: flex; align-items: center; gap: 6px; margin-bottom: 4px; border-radius: 999px; padding: 4px 7px; color: var(--brand); background: var(--brand-soft); font-size: 12px; }
.ai-chat-selection-chip button { border: 0; padding: 0; color: inherit; background: transparent; cursor: pointer; }
.footer-status.saving { color: #8a6b24; }
.footer-status.error { color: #c33f3f; }
/* 浮窗提醒：全站最顶层，任何弹窗遮罩（z-index 9999 及以下）都不能压住它 */
.toast { position: fixed; right: 22px; bottom: 22px; z-index: 2147483000; width: max-content; min-width: 0; max-width: min(360px, calc(100vw - 32px)); box-sizing: border-box; padding: 10px 13px; border-radius: 9px; color: #fff; background: #272d39; box-shadow: var(--shadow); opacity: 0; transform: translateY(10px); pointer-events: none; transition: .2s ease; font-size: 12px; line-height: 1.6; text-align: left; overflow-wrap: break-word; }
.toast.show { opacity: 1; transform: translateY(0); }
.toast.pointer { transform: translate(-50%, calc(-100% + 6px)); }
.toast.pointer.show { transform: translate(-50%, -100%); }
.toast.success { background: #27ae60; }
.toast.error { background: #c0392b; }
.toast.warning { background: #e0a000; }
@media (max-width: 392px) { .toast { min-width: 0; max-width: calc(100vw - 32px); } }

/* 工作台：完全由排期派生的行动首页 */
#dashboardBoard { display: grid; gap: 14px; padding-bottom: 0; }
.dashboard-toolbar { min-height: 54px; display: flex; align-items: center; justify-content: flex-start; flex-wrap:nowrap; gap: 9px 18px; border: 1px solid var(--line); border-radius: 13px; padding: 9px 12px; background: var(--panel); box-shadow: 0 7px 22px rgba(31,38,48,.045); }
.dashboard-summary { min-width: 0; flex:1 1 auto; display: flex; align-items: center; flex-wrap: wrap; gap: 7px 20px; color: var(--muted); font-size: 12px; }
.dashboard-summary span,
.dashboard-summary button { white-space: nowrap; }
.dashboard-summary button { display:inline-flex; align-items:baseline; padding:2px 0; border:0; color:inherit; background:transparent; cursor:pointer; font:inherit; }
.dashboard-summary button:hover { color:var(--brand); }
.dashboard-summary button:focus-visible { border-radius:3px; outline:2px solid rgba(100,85,235,.32); outline-offset:3px; }
.dashboard-summary b { margin: 0 2px; color: var(--text); font-size: 14px; }
.dashboard-section { position:relative; overflow:hidden; container-name:dashboard-section; container-type:inline-size; scroll-margin-top:88px; border:1px solid var(--line); border-radius:15px; background:var(--panel); box-shadow:var(--shadow); }
.dashboard-section.dashboard-section-target { animation: dashboard-section-target-pulse 1.35s ease both; }
@keyframes dashboard-section-target-pulse {
  0%, 100% { box-shadow: var(--shadow); }
  28%, 72% { border-color:#e24b55; box-shadow:0 0 0 2px rgba(226,75,85,.14), 0 3px 9px rgba(226,75,85,.13), var(--shadow); }
}
.dashboard-section > header { min-height:68px; display:flex; align-items:center; justify-content:space-between; flex-wrap:nowrap; gap:10px 16px; padding:13px 16px; border-bottom:1px solid var(--line); }
.dashboard-section > header > div:first-child { min-width:max-content; flex:0 1 auto; display: grid; gap: 3px; }
.dashboard-section > header > .dashboard-section-tabs { flex:0 0 auto; white-space:nowrap; }
.dashboard-section > header p { margin: 0; color: var(--brand); font-size: 12px; font-weight: 750; letter-spacing: .14em; white-space:nowrap; }
.dashboard-section > header h2 { margin: 0; font-size: 16px; white-space:nowrap; }
.dashboard-section-tabs { display: inline-flex; align-items: center; gap: 2px; border: 1px solid var(--line); border-radius: 10px; padding: 2px; background: #fff; }
.dashboard-section-tabs button { min-height: 28px; border: 0; border-radius: 8px; padding: 0 10px; color: var(--muted); background: transparent; cursor: pointer; font-size: 12px; }
.dashboard-section-tabs button:hover { color: var(--brand); }
.dashboard-section-tabs button.active { color: #fff; background: var(--brand); box-shadow: 0 3px 9px rgba(100,85,235,.2); }
.dashboard-section > header > .dashboard-section-tabs { margin-right: -6px; }
.dashboard-section.overdue { border-color: #edc9c9; }
.dashboard-section.overdue > header { background: linear-gradient(90deg, rgba(255,240,240,.82), #fff 52%); }
.dashboard-section.overdue > header p { color: var(--red); }
.dashboard-section.today > header { background: linear-gradient(90deg, rgba(238,236,255,.78), #fff 52%); }
.dashboard-section.upcoming > header { background: linear-gradient(90deg, rgba(234,247,240,.72), #fff 52%); }
.dashboard-section.upcoming > header p { color: var(--green); }
.dashboard-task-list { display: grid; gap: 8px; padding: 10px; }
.dashboard-task { position: relative; min-height: 112px; display: grid; grid-template-columns: 34px minmax(0,1fr) 82px; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: 11px; padding: 8px 11px; background: #fff; cursor: pointer; transition: border-color .14s ease, background-color .14s ease, box-shadow .14s ease, opacity .14s ease, transform .14s ease; }
.dashboard-task-index { position: absolute; z-index: 2; top: -1px; left: -1px; width: 22px; height: 22px; display: grid; place-items: center; border: 1px solid; border-radius: 9px 0 7px 0; font-size: 13px; font-weight: 400; line-height: 1; }
.dashboard-section.today .dashboard-task-index { border-color: #e0dcff; color: #8176d8; background: linear-gradient(90deg, #efedff 0%, rgba(239,237,255,.16) 100%); }
.dashboard-section.overdue .dashboard-task-index { border-color: #f2dddd; color: #d28585; background: linear-gradient(90deg, #fff0f0 0%, rgba(255,240,240,.16) 100%); }
.dashboard-section.upcoming .dashboard-task-index { border-color: #d8ebdf; color: #6aa78c; background: linear-gradient(90deg, #ebf8f1 0%, rgba(235,248,241,.16) 100%); }
.dashboard-task:hover { border-color: #cbc5ff; box-shadow: 0 7px 18px rgba(54,45,135,.08); }
.dashboard-section.today .dashboard-task:hover { border-color: #c8c2f7; background: rgba(108,92,231,.025); background-clip: padding-box; box-shadow: none; }
.dashboard-section.overdue .dashboard-task:hover { border-color: #f1cccc; background: rgba(214,58,58,.025); background-clip: padding-box; box-shadow: none; }
.dashboard-section.upcoming .dashboard-task:hover { border-color: #c9e5d6; background: rgba(52,154,104,.025); background-clip: padding-box; box-shadow: none; }
.dashboard-task.dragging { opacity: .42; transform: scale(.994); }
.dashboard-task.drag-over { border-color: var(--brand); box-shadow: inset 0 3px 0 var(--brand); }
.dashboard-drag-ghost { position: fixed; z-index: 1600; margin: 0; pointer-events: none; opacity: .92; transform: rotate(.25deg); box-shadow: 0 16px 38px rgba(27,33,48,.2); }
.dashboard-task.done { opacity: .58; background: #fafbfc; }
.dashboard-task.done .dashboard-task-main > strong, .dashboard-task.done .dashboard-task-main > small { text-decoration: line-through; }
.dashboard-row-controls { align-self: stretch; display: grid; grid-template-rows: 20px 23px 20px; place-items: center; align-content: center; gap: 3px; }
.dashboard-row-controls > button[data-dashboard-move] { width: 23px; height: 20px; display: grid; place-items: center; overflow: visible; border: 0; border-radius: 5px; padding: 0; color: #cfd5de; background: transparent; cursor: pointer; }
.dashboard-row-controls > button[data-dashboard-move] > span { position: relative; display: block; width: 23px; height: 15px; overflow: visible; color: inherit; font-size: 0; line-height: 0; }
.dashboard-row-controls > button[data-dashboard-move] > span::before,
.dashboard-row-controls > button[data-dashboard-move] > span::after { content: ""; position: absolute; width: 11.5px; height: 1px; background: currentColor; }
.dashboard-row-controls > button[data-dashboard-move="up"] > span::before { top: 5.5px; left: 0; transform: rotate(-18deg); transform-origin: right center; }
.dashboard-row-controls > button[data-dashboard-move="up"] > span::after { top: 5.5px; right: 0; transform: rotate(18deg); transform-origin: left center; }
.dashboard-row-controls > button[data-dashboard-move="down"] > span::before { top: 9px; left: 0; transform: rotate(18deg); transform-origin: right center; }
.dashboard-row-controls > button[data-dashboard-move="down"] > span::after { top: 9px; right: 0; transform: rotate(-18deg); transform-origin: left center; }
.dashboard-row-controls > button[data-dashboard-move]:hover { color: var(--brand); background: var(--brand-soft); }
.dashboard-move-placeholder { width: 23px; height: 20px; }
.dashboard-check { width: 23px; height: 23px; display: grid; place-items: center; border: 1px solid #cfd5de; border-radius: 50%; color: #fff; background: #fff; cursor: pointer; font-size: 12px; }
.dashboard-check:hover { border-color: var(--brand); }
.dashboard-task.done .dashboard-check { border-color: var(--green); background: var(--green); }
.dashboard-check-wrap { position: relative; width: 23px; height: 23px; }
.dashboard-check-wrap::after { content: ""; position: absolute; z-index: 7; top: -14px; left: 100%; width: 10px; height: 52px; }
.dashboard-schedule-actions { position: absolute; z-index: 8; top: 50%; left: 23px; display: grid; gap: 3px; padding-left: 6px; opacity: 0; pointer-events: none; transform: translate(-4px,-50%); transition: opacity .12s ease, transform .12s ease; }
.dashboard-check-wrap:hover .dashboard-schedule-actions, .dashboard-check-wrap:focus-within .dashboard-schedule-actions { opacity: 1; pointer-events: auto; transform: translate(0,-50%); }
.dashboard-schedule-actions button { width: 42px; height: 22px; border: 1px solid #d9ddea; border-radius: 6px; color: #68717f; background: rgba(255,255,255,.96); box-shadow: 0 4px 12px rgba(26,32,45,.08); cursor: pointer; font-size: 12px; }
.dashboard-schedule-actions button:hover { color: var(--brand); border-color: #c8c1ff; background: var(--brand-soft); }
.dashboard-audit-mark { width: 23px; height: 23px; display: grid; place-items: center; border: 1px solid #d8dce5; border-radius: 50%; color: #9299a5; background: #f7f8fa; font-size: 12px; }
.dashboard-task.audit { cursor: default; background: #fafbfc; }
.dashboard-task.audit .dashboard-task-date i { display: none; }
.dashboard-order { color: #737c89; font-size: 13.5px; font-weight: 500; font-variant-numeric: tabular-nums; }
.dashboard-task-main { min-width: 0; display: grid; gap: 4px; }
.dashboard-task-tags { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; color: var(--muted); font-size: 12px; }
.dashboard-task-tags > span { border-radius: 999px; padding: 3px 6px; background: var(--panel-soft); }
.dashboard-task-tags .dashboard-stage-tag { color: var(--brand); background: var(--brand-soft); font-weight: 700; }
.dashboard-section.overdue .dashboard-due-tag { color: var(--red); background: var(--red-soft); }
.dashboard-section.today .dashboard-due-tag { color: var(--brand); background: var(--brand-soft); }
.dashboard-section.upcoming .dashboard-due-tag { color: var(--green); background: var(--green-soft); }
.dashboard-task-main > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.dashboard-task-main > small { color: #555e6b; font-size: 12px; }
.dashboard-task-main > .dashboard-task-current { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.dashboard-task-main > p { overflow: hidden; margin: 1px 0 0; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: 12px; }
.dashboard-task-date { align-self: stretch; display: grid; align-content: center; justify-items: end; gap: 3px; border-left: 1px solid var(--line); padding-left: 10px; color: var(--muted); }
.dashboard-task-date > span { font-size: 12px; }
.dashboard-task-date > strong { color: var(--text); font-size: 12px; font-variant-numeric: tabular-nums; }
.dashboard-drag-handle { color: #9aa2ae; cursor: grab; font-size: 15px; font-style: normal; line-height: 1; }
.dashboard-drag-handle:active { cursor: grabbing; }
.dashboard-empty { min-height: 72px; display: grid; place-items: center; color: #9aa2ae; font-size: 12px; }
.dashboard-reschedule-modal { width: min(460px, calc(100vw - 28px)); }
.dashboard-reschedule-validation { min-height: 20px; margin: -3px 0 6px; color: var(--red); font-size: 12px; }

@media (max-width: 1080px) {
  .review-summary-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .review-list-row { grid-template-columns:minmax(220px,1fr) repeat(2,70px) minmax(180px,1fr) 118px; }
  .review-list-row .review-list-metric:nth-of-type(n+4) { display:none; }
  .asset-list-scroller { overflow-x:auto; }
  .topic-library-layout { grid-template-columns: 250px minmax(0,1fr); }
  .diagnosis-workspace { grid-template-columns: 1fr; }
  .app-shell { grid-template-columns: 74px minmax(0,1fr); }
  .brand-copy, .nav-item span:last-child, .product-intro-nav span:last-child, .sidebar-version-meta, .sidebar-version-link { display: none; }
  .brand { justify-content: center; padding-inline: 0; }
  .nav-item, .product-intro-nav { justify-content: center; }
  .sidebar-version { display: flex; justify-content: center; padding: 9px; }
  .studio-layout { grid-template-columns: 220px minmax(0,1fr); }
  .asset-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .inspiration-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .production-planner { grid-template-columns: 280px minmax(590px,1fr); overflow-x: auto; }
}

@media (max-width: 820px) {
  /* 客户端直播演示仍沿用 820px / 125% 基线的固定上下排；网页端按真实空间自然折行。 */
  html.is-desktop-client .dashboard-toolbar { align-items:stretch; flex-direction:column; }
  html.is-desktop-client .dashboard-section > header { align-items:stretch; flex-direction:column; }
  html.is-desktop-client .dashboard-section-tabs { align-self:flex-start; }
  html.is-desktop-client .dashboard-task { grid-template-columns:30px minmax(0,1fr); }
  html.is-desktop-client .dashboard-task-date { grid-column:2; grid-row:2; min-height:auto; display:flex; align-items:center; justify-content:flex-start; border-left:0; padding-left:0; }
  html.is-desktop-client .dashboard-drag-handle { margin-left:auto; }
  .diagnosis-paired-head { display: none; }
  .diagnosis-paired-row { grid-template-columns: 1fr; }
  .topic-library-layout { position:relative; grid-template-columns:minmax(0,1fr); gap:10px; }
  .topic-rail-toggle {
    position:fixed; z-index:71; top:43px; left:41px;
    display:inline-flex; align-items:center; justify-content:center;
    width:21.77px; height:28px; min-height:28px; padding:0; border:0;
    border-radius:6px; color:#5145c9; background:transparent; box-shadow:none;
    font-size:0; cursor:pointer; user-select:none;
  }
  .topic-rail-toggle:hover { color:var(--brand); background:rgba(102,88,232,.08); }
  .topic-rail-toggle > span,
  .topic-rail-toggle > strong { display:none; }
  .topic-rail-toggle::before { content:"☰"; position:absolute; top:2px; left:2px; display:grid; place-items:center; width:13.33px; height:24px; font-size:14px; line-height:1; transform:scaleX(1.333); transform-origin:left center; }
  .topic-rail-switch:checked + .topic-rail-toggle::before { content:"«"; top:calc(50% - 4px); left:-3px; font-family:"Segoe UI Light","Segoe UI Symbol",sans-serif; font-size:17px; font-weight:300; transform:translateY(-50%) scale(1.6,2); transform-origin:left center; }
  .topic-rail-backdrop {
    position:fixed; z-index:69; inset:0 0 0 41px; display:block; visibility:hidden;
    background:rgba(21,25,36,.25); opacity:0; cursor:pointer;
    transition:opacity .18s ease, visibility .18s ease;
  }
  .topic-library-layout > .topic-list {
    position:fixed; z-index:70; top:0; bottom:0; left:41px;
    width:min(320px,calc(100vw - 41px)); max-width:min(320px,calc(100vw - 41px)); max-height:100vh;
    display:block; overflow-x:hidden; overflow-y:auto; visibility:hidden; clip-path:inset(0 100% 0 0);
    border-radius:0; box-shadow:0 18px 52px rgba(20,24,35,.22);
    transition:clip-path .2s ease, visibility .2s ease;
  }
  #topicRailSwitch:checked ~ .topic-rail-backdrop { visibility:visible; opacity:1; }
  #topicRailSwitch:checked ~ #topicList { visibility:visible; clip-path:inset(0); }
  .topic-library-layout.list-mode .topic-rail-toggle,
  .topic-library-layout.list-mode .topic-rail-backdrop { display:none; }
  .topic-two-columns, .topic-evaluation-grid { grid-template-columns: 1fr; }
  .main-area { padding: 0 14px 28px; }
  .studio-layout { grid-template-columns: 1fr; }
  .content-rail { position: static; }
  .content-list { display: flex; max-height: none; overflow-x: auto; }
  .content-item { min-width: 230px; }
  .stage-grid, .publish-pack, .asset-preview { grid-template-columns: 1fr; }
  .metric-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .asset-grid { grid-template-columns: 1fr; }
  .inspiration-capture { grid-template-columns: 40px minmax(0,1fr); }
  .inspiration-capture .field, .inspiration-capture .button { grid-column: 2; }
  .inspiration-grid { grid-template-columns: 1fr; }
  .batch-card { grid-template-columns: minmax(180px,1fr) repeat(2,80px) 100px; }
  .batch-card .batch-metric:nth-of-type(n+4) { display: none; }
  .production-planner { grid-template-columns: 1fr; overflow: visible; }
  html.is-desktop-client .lifecycle-board-shell > header,
  html.is-desktop-client .topic-progress-shell > header,
  html.is-desktop-client .schedule-completed-shell > header { align-items:flex-start; flex-direction:column; }
  html.is-desktop-client .schedule-shell-actions { width:100%; justify-content:space-between; }
  .schedule-completed-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .schedule-completed-row { grid-template-columns: 72px 22px minmax(0,1fr) auto; }
  .schedule-pool { position: static; }
  .schedule-pool-list { max-height: none; }
  .production-calendar { overflow-x: auto; }
  .calendar-toolbar, .calendar-notice, .calendar-scroll { min-width: 720px; }
}

/* 网页端只在任务卡自身确实放不下右侧排期列时降为两列。 */
@container dashboard-section (max-width: 560px) {
  .dashboard-task { grid-template-columns:30px minmax(0,1fr); }
  .dashboard-task-date { grid-column:2; grid-row:2; min-height:auto; display:flex; align-items:center; justify-content:flex-start; border-left:0; padding-left:0; }
  .dashboard-drag-handle { margin-left:auto; }
}

@media (max-width: 600px) {
  .ai-chat-panel { width: 100vw; }
  body.ai-chat-open .ai-chat-launcher { opacity: 0; pointer-events: none; }
  .ai-chat-launcher-tip { display: none; }
  html.is-desktop-client .topic-toolbar,
  html.is-desktop-client .evaluation-mode-row { align-items:stretch; flex-direction:column; }
  html.is-desktop-client .topic-toolbar-right { align-items:stretch; justify-content:flex-start; flex-direction:column; }
  .topbar { min-height: 78px; }
  .date-label { display: none; }
  .topbar h1 { font-size: 20px; }
  .compare-header { display: none; }
  .compare-header:has(.direct-reuse-toggle) { display: block; }
  .compare-header:has(.direct-reuse-toggle) > :first-child { display: none; }
  .compare-header:has(.direct-reuse-toggle) .script-column-heading { display: flex; }
  .compare-row { grid-template-columns: 1fr; }
  .compare-block:first-child::before { content: "创作依据"; display: block; margin-bottom: 8px; color: var(--brand); font-size: 12px; font-weight: 700; }
  .compare-block:last-child::before { content: "我的脚本"; display: block; margin-bottom: 8px; color: var(--green); font-size: 12px; font-weight: 700; }
  .diagnosis-overview { grid-template-columns: 1fr; }
  .milestone-grid { grid-template-columns: 1fr; }
  .schedule-top { grid-template-columns: 1fr; row-gap: 2px; }
  .schedule-top-heading, .schedule-top-right { max-width:100%; width:100%; justify-self:stretch; }
  .milestone-inline-row { justify-content: flex-start; flex-wrap: wrap; }
  .milestone-inline { flex: 1 1 130px; }
  .milestone-arrow { transform: rotate(90deg); padding-top:0; }
  .metric-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .stage-footer { align-items: stretch; flex-wrap: wrap; }
  .footer-status { order: 3; width: 100%; }
  .schedule-lane { grid-template-columns: 1fr; }
  .schedule-lane > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .batch-card { grid-template-columns: 1fr 1fr; }
  .batch-title { grid-column: 1 / -1; }
  html.is-desktop-client .view-intro { align-items:flex-start; flex-direction:column; }
  .inspiration-capture { grid-template-columns: 1fr; }
  .inspiration-capture .field:nth-of-type(2), .inspiration-capture .button { grid-column: auto; }
  .capture-icon { display: none; }
}

/* 生产排期窄屏专用：通用响应式规则之后仍锁定左右双栏，超出部分交给底部横向滚动。 */
@media (max-width: 820px) {
  #scheduleView.active .production-planner {
    min-width: 884px !important;
    grid-template-columns: 280px minmax(590px, 1fr) !important;
    overflow: visible !important;
  }
  #scheduleView.active .schedule-pool { position: sticky; }
  #scheduleView.active .schedule-pool-list { max-height: calc(100vh - 270px); }
  .app-shell:has(#scheduleView.active) { min-width: 884px; }
  .app-shell:has(#scheduleView.active) .desktop-horizontal-scroll {
    position: fixed; z-index: 95; right: 0; bottom: 0; left: 41px;
    display: block; height: 14px; overflow-x: scroll; overflow-y: hidden;
    border-top: 1px solid #d9dde7; background: #f4f5f8;
    scrollbar-color: #8b8f98 #e6e8ed; scrollbar-width: auto;
  }
  .app-shell:has(#scheduleView.active) .desktop-horizontal-scroll::-webkit-scrollbar { height: 13px; }
  .app-shell:has(#scheduleView.active) .desktop-horizontal-scroll-spacer { height: 1px; }
  #scheduleView.active .production-calendar { overflow: visible; }
  #scheduleView.active .calendar-scroll { overflow-x: visible; scrollbar-gutter: auto; }
}
/* V1 管理后台：参数配置与用户会员 */
.admin-nav-item { margin-top: 10px; }
.admin-shell { display: grid; gap: 14px; }
.account-settings-page { max-width: 920px; margin: 0 auto; display: grid; gap: 14px; }
.account-settings-card { max-width: 860px; margin: 0 auto; padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow); }
.account-settings-page .account-settings-card { width: 100%; max-width: none; margin: 0; }
.account-settings-card > h2, .account-settings-card header h2 { margin: 4px 0 6px; font-size: 20px; }
.account-settings-card > p:not(.eyebrow), .account-settings-card header p:not(.eyebrow) { margin: 0; color: var(--muted); }
.account-settings-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.account-settings-role { padding: 5px 9px; border-radius: 999px; background: #f0edff; color: var(--primary); font-size: 12px; white-space: nowrap; }
.account-settings-form { max-width: 620px; display: grid; gap: 16px; padding-top: 20px; }
.account-settings-form input { width: 100%; }
.account-settings-form input:disabled { background: #f7f8fa; color: var(--muted); }
.account-settings-actions { display: flex; align-items: center; justify-content: flex-end; gap: 14px; }
.account-settings-actions span { margin-right: auto; font-size: 13px; }
.account-settings-actions .is-success { color: var(--green); }
.account-settings-actions .is-error { color: var(--red); }
.account-preference-list { display: grid; padding-top: 4px; }
.account-preference-row { min-width: 0; display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.account-preference-row:last-child { border-bottom: 0; padding-bottom: 0; }
.account-preference-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; color: var(--brand); background: var(--brand-soft); font-size: 17px; }
.account-preference-row > div { min-width: 0; display: grid; gap: 4px; }
.account-preference-row strong { font-size: 14px; }
.account-preference-row p { overflow: hidden; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; text-overflow: ellipsis; white-space: nowrap; }
.account-preference-row p.is-empty { color: #9aa2ae; }
.account-preference-row small { color: #9aa2ae; font-size: 11px; line-height: 1.5; }
.account-preference-row.is-upcoming { opacity: .82; }
.account-preference-row .button { min-width: 84px; }
.partner-placeholder { display: grid; gap: 7px; margin-top: 20px; padding: 18px; border: 1px dashed var(--line); border-radius: 12px; background: #fafbfc; }
.partner-placeholder span { color: var(--muted); font-size: 13px; line-height: 1.7; }
.admin-toolbar { min-height:52px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px 16px; padding:8px 10px; border:1px solid var(--line); border-radius:12px; background:var(--panel); box-shadow:var(--shadow); }
.admin-local-badge { padding: 6px 9px; border-radius: 999px; color: var(--green); background: var(--green-soft); font-size: 12px; font-weight: 700; white-space: nowrap; }
.admin-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); box-shadow: var(--shadow); }
.admin-panel-head { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:10px 20px; padding:20px 22px 16px; border-bottom:1px solid var(--line); }
.admin-panel-head h2 { margin: 4px 0; font-size: 18px; }
.admin-panel-head p:not(.eyebrow), .admin-panel-head > span { margin: 0; color: var(--muted); font-size: 12px; }
.admin-save-state { padding: 6px 9px; border-radius: 999px; background: var(--panel-soft); white-space: nowrap; }
.admin-settings-form { display: grid; gap: 16px; padding: 18px 22px 22px; }
.admin-settings-module { min-width: 0; display: grid; gap: 12px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.admin-settings-module-head { display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:10px 20px; padding:0 2px 2px; }
.admin-settings-module-head h3 { margin: 3px 0 0; font-size: 17px; }
.admin-settings-module-head > p { max-width: 560px; margin: 0; color: var(--muted); font-size: 12px; text-align: right; }
.admin-data-provider-module { background: #fcfdfd; }
.admin-setting-group { min-width: 0; margin: 0; border: 1px solid var(--line); border-radius: 12px; padding: 16px; }
.admin-setting-group legend { padding: 0 7px; font-weight: 700; }
.admin-setting-grid { display: grid; grid-template-columns: minmax(170px, .65fr) minmax(280px, 1.35fr); gap: 14px; }
.admin-setting-grid .field { min-width: 0; }
.admin-setting-grid input, .admin-setting-grid select { width: 100%; min-height: 40px; border: 1px solid var(--line); border-radius: 9px; padding: 9px 10px; background: #fff; }
.admin-setting-note { margin: 0 0 14px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.admin-ai-provider-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.admin-ai-provider-card { min-width: 0; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 10px 12px; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcff; }
.admin-ai-provider-card header { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.admin-ai-provider-card .field { min-width: 0; }
.admin-ai-provider-card input, .admin-ai-assignment input, .admin-ai-assignment select { width: 100%; min-height: 38px; border: 1px solid var(--line); border-radius: 9px; padding: 8px 10px; background: #fff; }
.admin-ai-assignment-list { display: grid; gap: 8px; }
.admin-ai-assignment { display: grid; grid-template-columns: minmax(210px, 1.2fr) 68px minmax(150px, .7fr) minmax(230px, 1fr); align-items: end; gap: 12px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcff; }
.admin-ai-stage { align-self: center; min-width: 0; display: grid; gap: 3px; }
.admin-ai-stage strong { font-size: 14px; }
.admin-ai-stage span { color: var(--muted); font-size: 12px; }
.admin-ai-status { align-self: center; justify-self: start; border-radius: 999px; padding: 3px 7px; background: #f1f3f7; color: var(--muted); font-size: 11px; white-space: nowrap; }
.admin-ai-status.is-live { background: #edf9f1; color: var(--green); }
.admin-configured-models { overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; }
.admin-configured-models table { width: 100%; min-width: 780px; border-collapse: collapse; background: #fff; }
.admin-configured-models th, .admin-configured-models td { padding: 11px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; font-size: 12px; }
.admin-configured-models th { color: var(--muted); background: #fbfcff; font-weight: 600; }
.admin-configured-models tr:last-child td { border-bottom: 0; }
.admin-configured-models td:first-child strong, .admin-configured-models td:first-child small { display: block; }
.admin-configured-models td:first-child small { margin-top: 3px; color: var(--muted); }
.admin-model-availability { display: inline-flex; border-radius: 999px; padding: 4px 8px; color: var(--orange); background: #fff6ea; white-space: nowrap; }
.admin-model-availability.is-ready { color: var(--green); background: #edf9f1; }
.admin-model-stage-pill { display: inline-flex; margin: 2px 4px 2px 0; border-radius: 999px; padding: 3px 7px; color: var(--brand); background: var(--brand-soft); white-space: nowrap; }
.admin-model-actions { white-space: nowrap; }
.admin-model-actions .button + .button { margin-left: 6px; }
.admin-data-provider-list td:nth-child(2) { color: var(--muted); word-break: break-all; }
.admin-ai-edit-target { outline: 2px solid rgba(101, 85, 235, .22); outline-offset: 3px; }
.configured-state, .unconfigured-state { margin-left: 7px; font-size: 12px; font-style: normal; }
.configured-state { color: var(--green); }
.unconfigured-state { color: var(--orange); }
.admin-form-actions { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px 16px; color:var(--muted); font-size:12px; }
.admin-stat-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.admin-stat-grid article { display: grid; gap: 8px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); box-shadow: var(--shadow); }
.admin-stat-grid span { color: var(--muted); font-size: 12px; }
.admin-stat-grid strong { font-size: 22px; }
.admin-table-wrap { overflow: auto; }
.admin-table { width: 100%; min-width: 1040px; border-collapse: collapse; }
.admin-table th, .admin-table td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; font-size: 12px; vertical-align: middle; }
.admin-table th { position: sticky; top: 0; background: var(--panel-soft); color: var(--muted); font-weight: 600; }
.admin-table td:first-child { min-width: 190px; }
.admin-table td:first-child strong, .admin-table td:first-child small { display: block; }
.admin-table td:first-child small { margin-top: 3px; color: var(--muted); }
.admin-table select, .admin-table input { width: 100%; min-width: 96px; border: 1px solid var(--line); border-radius: 8px; padding: 7px 8px; background: #fff; }
.admin-table tr:last-child td { border-bottom: 0; }
.local-data-row { background: #faf9ff; }
.local-pill { display: inline-flex; padding: 5px 8px; border-radius: 999px; color: var(--brand); background: var(--brand-soft); font-size: 12px; font-weight: 700; }
.admin-empty { text-align: center !important; color: var(--muted); }
.admin-loading { min-height: 280px; display: grid; place-items: center; color: var(--muted); }
.button.compact { padding: 6px 9px; font-size: 12px; }

@media (max-width: 1080px) {
  .admin-setting-grid { grid-template-columns: 1fr; }
  .admin-ai-provider-grid { grid-template-columns: 1fr; }
  .admin-ai-assignment { grid-template-columns: minmax(180px, 1fr) 72px minmax(140px, .8fr) minmax(200px, 1fr); }
  .admin-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .account-settings-card { padding: 18px; }
  .account-preference-row { grid-template-columns: 36px minmax(0,1fr); }
  .account-preference-row > .button { grid-column: 2; justify-self: start; }
  .account-preference-row p { white-space: normal; }
  html.is-desktop-client .admin-toolbar,
  html.is-desktop-client .admin-panel-head,
  html.is-desktop-client .admin-form-actions { align-items:stretch; flex-direction:column; }
  html.is-desktop-client .admin-settings-module-head { align-items:flex-start; flex-direction:column; }
  .admin-settings-module-head > p { text-align: left; }
  .admin-ai-provider-card, .admin-ai-assignment { grid-template-columns: 1fr; }
  .admin-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

  /* ===== 驱动音频区：标题行 + 名称/按钮 右侧排布 ===== */
  .prod-video-driveaudio { gap: 6px !important; }
  .prod-video-driveaudio-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
  .prod-video-driveaudio-head > label { font-weight:600; color:var(--ink,#333); font-size:14px; margin:0; }
  .prod-video-driveaudio-hint { flex:1 1 auto; min-width:0; color:var(--muted,#7b8494); font-size:12px; font-weight:400; line-height:1.4; }
  .prod-video-audio-name { font-size:13px; font-weight:600; color:var(--ink,#333); }
  .prod-video-audio-empty { font-size:12px; color:var(--muted,#999); }
  .prod-config-row--voice > label { display:block; font-size:13px; font-weight:600; color:var(--ink,#333); margin:0 0 6px; }
/* ===== V2 视频生成：模型 pill + 高级设置（画质增强） ===== */
.prod-video-model-pill {
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 12px; border-radius: 999px;
  background: linear-gradient(135deg, rgba(102,88,232,.08), rgba(214,58,106,.08));
  border: 1px solid rgba(102,88,232,.28);
  font-size: 13px; font-weight: 600; color: #5143ce;
  cursor:pointer; user-select:none;
}
.prod-video-model label.prod-video-model-option {
  display:inline-flex; align-items:center; gap:8px;
  margin:0; color:inherit; font:inherit;
  line-height:1.3; white-space:nowrap; cursor:pointer;
}
/* 扁平化高级设置样式 */
.prod-video-advanced-flat {
  margin-top: 4px;
  padding: 0 0 0 12px;
}

details.prod-video-advanced {
  margin-top: 8px; padding: 10px 12px; border-radius: 10px;
  background: #f7f8fb; border: 1px solid #e3e7ed;
}
details.prod-video-advanced > summary {
  list-style: none; cursor: pointer;
  font-size: 13px; font-weight: 600; color: #1f2630;
  display: flex; align-items: center; justify-content: space-between; user-select: none;
}
details.prod-video-advanced > summary::-webkit-details-marker { display: none; }
details.prod-video-advanced > summary::after {
  content: "▾"; color: #6f7887; font-size: 12px; transition: transform .15s ease;
}
details.prod-video-advanced[open] > summary::after { transform: rotate(180deg); }
details.prod-video-advanced[open] > summary { margin-bottom: 10px; }

label.prod-video-enhance {
  display:flex; align-items:center; gap:10px;
  padding: 4px 0;
  background: transparent; border: 0;
  cursor: pointer; user-select: none;
}
label.prod-video-enhance:hover { background: transparent; }
label.prod-video-enhance > input[type="checkbox"],
label.prod-video-model-option > input[type="checkbox"] { position: absolute; opacity: 0; pointer-events: none; }
label.prod-video-enhance > .box,
label.prod-video-model-option > .box {
  flex: 0 0 auto; width: 16.2px; height: 16.2px; border-radius: 5.4px;
  border: 1.5px solid #c7ccd5; background: #fff;
  display: grid; place-items: center;
  margin-top: 1px;
  transition: all .14s ease;
  position: relative;
}
label.prod-video-enhance > .box::after,
label.prod-video-model-option > .box::after {
  content: ""; width: 9px; height: 4.5px;
  border-left: 1.8px solid #fff; border-bottom: 1.8px solid #fff;
  transform: rotate(-45deg) translate(1px, -1px) scale(0);
  transform-origin: center;
  transition: transform .15s ease;
  display: block;
}
label.prod-video-enhance > input[type="checkbox"]:checked + .box,
label.prod-video-model-option > input[type="checkbox"]:checked + .box {
  background: linear-gradient(135deg, #6658e8, #d63a6a); border-color: transparent;
  box-shadow: 0 0 0 2.7px rgba(102,88,232,.16);
}
label.prod-video-enhance > input[type="checkbox"]:checked + .box::after,
label.prod-video-model-option > input[type="checkbox"]:checked + .box::after { transform: rotate(-45deg) translate(1px, -1px) scale(1); }
label.prod-video-enhance > input[type="checkbox"]:focus-visible + .box,
label.prod-video-model-option > input[type="checkbox"]:focus-visible + .box { outline: 2.7px solid rgba(102,88,232,.22); outline-offset: 1px; }
.prod-video-enhance__title { font-size: 13px; font-weight: 700; color: #1f2630; line-height: 1.3; }
.prod-video-enhance__line { display:flex; align-items:baseline; gap:8px; min-width:0; }
.prod-video-enhance__desc  { font-size: 12px; color: #6f7887; line-height: 1.4; margin:0; }
.prod-video-result { width:100%; margin-top:16px; }
.prod-video-result .prod-voice-result-empty:not(#prodVideoResultEmpty) { text-align:left; }
.s-title-position-control { margin:14px 0 16px; }
.s-title-scale-control { margin:0 0 16px; }
.s-title-position-control input[type="range"],
.s-title-scale-control input[type="range"],
.s-card-layout-pane input[data-se-card-scale] { cursor:ew-resize; }

/* =========================================================
 * S-EDITOR: 网感剪辑三栏编辑器 (Creator OS 统一样式)
 * ========================================================= */

/* —— 视频源行 —— */
.s-edit-title-row { width:100%; align-items:flex-start; position:relative; }
.s-edit-heading-main { display:flex; align-items:center; gap:10px; min-width:0; }
.s-edit-source-inline {
  display:flex; align-items:center; gap:7px; width:436px; min-width:0; max-width:436px; box-sizing:border-box;
  position:absolute; top:50%; right:0; margin-left:auto; padding:3px 5px 3px 9px; transform:translateY(-50%);
  border:1px solid #E5E8F0; border-radius:8px; background:#fff;
}
.s-edit-title-row + .prod-subpage-desc { padding-right:450px; box-sizing:border-box; }
.s-edit-source-inline .s-edit-source-name { flex:1 1 auto; width:0; max-width:none; padding:3px 8px; }
.s-edit-source-inline .s-edit-source-label { flex:0 0 auto; }
.s-edit-source-inline .s-edit-btn-link { flex:0 0 auto; }
.s-edit-source-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  background: #fff;
  border: 1px solid #E5E8F0;
  border-radius: 10px;
  margin: 14px 0 18px;
  flex-wrap: wrap;
  gap: 12px;
}
.s-edit-source-left { display:flex; align-items:center; gap:10px; flex-wrap: wrap; }
.s-edit-source-label { color:#8A94A6; font-size:13px; font-weight:500; }
.s-edit-source-name {
  font-size: 13px; font-weight:400; color:#1F2330;
  background:#F5F6FA; padding:4px 10px; border-radius:6px;
  font-family:var(--ui-font);
  max-width: 320px; white-space: nowrap; overflow:hidden; text-overflow:ellipsis;
}
.s-edit-btn-link {
  font-size:12px; color:#6C5CE7; background:#F3F1FF; padding:3px 10px; border-radius:6px;
  transition: all 0.15s; font-weight:500;
}
.s-edit-btn-link:hover { background:#E8E4FF; }
.s-edit-source-right { display:flex; gap:8px; align-items:center; }
.s-edit-source-right .button { min-width:58px; height:32px; padding:0 12px; }
@media (max-width: 1050px) {
  .s-edit-title-row { flex-wrap:wrap; }
  .s-edit-source-inline { position:static; width:min(100%,436px); margin-left:auto; transform:none; }
  .s-edit-title-row + .prod-subpage-desc { padding-right:0; }
}

/* —— 三栏主网格 —— */
.s-edit-grid {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr) 300px;
  gap: 14px;
  align-items: start;
  min-height: 640px;
}
.s-guest-save-notice {
  min-height:36px; box-sizing:border-box; display:flex; align-items:center; justify-content:center; gap:10px;
  margin:-4px 0 10px; padding:7px 12px; border:1px solid #FFD267; border-radius:8px;
  color:#8A5A00; background:#FFF8E5; font-size:12px; line-height:20px;
}
.s-guest-save-notice[hidden] { display:none !important; }
.s-guest-save-notice button { padding:0; border:0; background:transparent; color:#5A46D4; font:inherit; font-weight:700; cursor:pointer; }
.s-guest-save-notice button:hover { text-decoration:underline; }
@media (max-width: 1360px) {
  .s-edit-grid { grid-template-columns: 220px minmax(0, 1fr) 300px; gap:8px; }
}
/* 820px 以下才进入既有移动端单列；桌面浏览器缩窄仍按后文的桌面让位链保持三栏。 */
@media (max-width: 820px) {
  .s-edit-grid { grid-template-columns: 1fr; }
}

/* —— 左：参数面板 —— */
.s-param-panel {
  background:#fff; border:1px solid #E5E8F0; border-radius:10px;
  padding: 0 10px 10px; display:flex; flex-direction:column; gap:4px;
  position: sticky; top: 86px; max-height: calc(100vh - 170px); overflow-y:auto; min-width:0;
}
.s-param-header {
  height:54px; min-height:54px; box-sizing:border-box;
  display:flex; align-items:center; justify-content:space-between;
  padding:0; margin:0 8px 6px; border-bottom:0;
}
.s-param-group-title { font-size:14px; font-weight:600; color:#1F2330; }
.s-param-header .s-edit-reset-defaults {
  flex:0 0 auto; margin-left:auto; padding:3px 6px; white-space:nowrap;
  color:#7A5B14; background:#FFF7DF; font-size:11px;
}
.s-param-header .s-edit-reset-defaults:hover { background:#FFEDB5; }
.s-param-nav {
  display:flex;
  flex-direction:column;
  margin-inline:-10px;
}
.s-edit-reset-button {
  height:32px;
  padding:0 12px !important;
  border:1px solid #DDE1EA !important;
  border-radius:8px;
  color:#7B8495 !important;
  background:transparent !important;
  box-shadow:none !important;
  font-size:12px !important;
  font-weight:400 !important;
  line-height:30px;
  cursor:pointer;
}
.s-edit-reset-button:hover,
.s-edit-reset-button:focus-visible {
  border-color:#C8CEDA !important;
  color:#606A79 !important;
  background:transparent !important;
}
.s-edit-reset-button:disabled,
.s-edit-reset-button[aria-disabled="true"] {
  cursor:not-allowed;
}

.s-param-item {
  display:grid;
  grid-template-columns:32px minmax(0, 1fr) 36px;
  grid-template-rows:20px auto;
  align-items:center;
  column-gap:10px;
  row-gap:3px;
  padding:10px 22px; border-radius:0; cursor:pointer;
  border:0; transition:background 0.18s;
}
.s-param-item::before {
  display:none;
}
.s-param-item:hover { background:#F5F6FA; }
.s-param-item.active {
  background:#F3F1FF;
}
.s-param-left { display:contents; }

.s-param-icon {
  width:32px; height:32px; border-radius:8px; background:#F5F6FA;
  display:flex; align-items:center; justify-content:center;
  font-size:16.8px; font-weight:600; flex-shrink:0;
  grid-column:1; grid-row:1 / 3;
  align-self:center;
}
.s-param-item.active .s-param-icon { background:#6C5CE7; color:#fff; }
.s-pi-title { color:#6C5CE7; }
.s-pi-sub   { color:#0984E3; }
.s-pi-card  { color:#FD79A8; }
.s-pi-sfx   { color:#FF9F43; }
.s-pi-bgm   { color:#9B59B6; }
.s-pi-pip   { color:#00B894; }
.s-pi-sticker { color:#E17055; }

@media (min-width:1161px) {
  #studioView .s-param-icon {
    width:36px;
    height:36px;
    border-radius:9px;
    font-size:18.9px;
    transform:translateX(-4px);
  }
}

.s-param-info { display:contents; }
.s-param-name { grid-column:2; grid-row:1; min-width:0; font-size:13px; font-weight:600; color:#4B5563; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.s-param-item.active .s-param-name { color:#1F2330; }
.s-param-desc { grid-column:2 / -1; grid-row:2; min-width:0; font-size:12px; color:#8A94A6; margin-top:1px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* toggle */
.s-toggle {
  width:36px; height:20px; background:#E5E8F0; border-radius:10px; position:relative;
  transition: background 0.2s; flex-shrink:0; border:0; padding:0; cursor:pointer;
  grid-column:3; grid-row:1;
}
.s-param-item .s-toggle { transform:translateX(4px); }
.s-toggle-dot {
  position:absolute; top:2px; left:2px; width:16px; height:16px; background:#fff;
  border-radius:50%; transition: all 0.2s; box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.s-toggle.on { background:#6C5CE7; }
.s-toggle.on .s-toggle-dot { left:18px; }
.s-toggle.is-disabled { opacity:.38; cursor:not-allowed; }

/* —— 中：配置面板 —— */
.s-config-panel {
  background:#fff; border:1px solid #E5E8F0; border-radius:10px;
  height:720px; min-height:720px; min-width:0; box-sizing:border-box; overflow:hidden;
}
.s-config-scroll { height:100%; box-sizing:border-box; padding:0 15px 20px; max-height:none; overflow-y:auto; }
.s-config-scroll:has(.s-config-mode[data-se-config="subtitle"] [data-se-subtitle-pane="edit"].active) { padding-bottom:10px; }
.s-config-mode[hidden] { display:none !important; }
.s-config-section-title {
  font-size:14px; font-weight:700; color:#1F2330;
  height:54px; min-height:54px; box-sizing:border-box;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:0; margin-bottom:18px; border-bottom:1px solid #EEF0F5;
}
.s-config-mode[data-se-config="title"] .s-config-section-title { margin-bottom:12px; }
.s-config-mode[data-se-config="title"] { min-height:100%; display:block; overflow:visible; }
.s-title-section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.s-title-section-head .s-title-ai-button { flex:0 0 auto; font-weight:400; }
.s-config-mode[data-se-config="title"] .s-title-inputs { gap:7px; margin-bottom:12px; }
.s-config-mode[data-se-config="title"] .s-config-row { margin-bottom:14px; }
.s-config-mode[data-se-config="title"] .s-config-hint { margin-bottom:12px; }
.s-config-mode[data-se-config="title"] .s-title-setting-row { flex-direction:column; align-items:stretch; gap:9px; }
.s-config-mode[data-se-config="title"] .s-title-setting-row .s-config-label { width:auto; padding:0; color:#1F2330; font-size:14px; font-weight:700; line-height:1.4; }
.s-title-setting-controls { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.s-config-mode[data-se-config="title"] .s-chip-group,
.s-card-layout-pane .s-chip-group { gap:4px; padding:0; border-radius:0; background:transparent; }
.s-config-mode[data-se-config="title"] .s-chip,
.s-card-layout-pane .s-card-display-controls .s-chip { min-width:92px; height:36px; padding:0 16px; border:1px solid #DDE1EA !important; border-radius:8px !important; background:#fff; color:#6D7584; box-shadow:none !important; font-size:14px; font-weight:500; }
.s-config-mode[data-se-config="title"] .s-chip.active,
.s-card-layout-pane .s-card-display-controls .s-chip.active { border-color:#6C5CE7 !important; background:#6C5CE7; color:#fff; box-shadow:none !important; }
.s-config-mode[data-se-config="title"] .s-chip:disabled { border-color:#E5E8F0 !important; background:#F5F6F8; color:#A4ABB7; opacity:1; cursor:not-allowed; }
.s-config-mode[data-se-config="title"] .s-chip:disabled:hover { color:#A4ABB7; }

.s-title-inputs { display:flex; flex-direction:column; gap:10px; margin-bottom:18px; }
.s-title-input-wrap { position:relative; display:flex; align-items:center; }
.s-title-input {
  flex:1; height:42px; padding: 0 14px; background:#F5F6FA;
  border:1.5px solid transparent; border-radius:6px;
  font-size:14px !important; font-weight:400; color:#1F2330;
  transition: all 0.18s;
}
.s-title-input:focus {
  background:#fff; border-color:#6C5CE7; box-shadow: 0 0 0 3px #E8E4FF;
}
.s-config-row { display:flex; align-items:flex-start; gap:14px; margin-bottom:14px; }
.s-config-label {
  width:72px; flex-shrink:0; font-size:13px; color:#8A94A6; padding-top:8px;
}

.s-chip-group { display:inline-flex; background:#F5F6FA; padding:3px; border-radius:8px; }
.s-chip {
  padding:6px 14px; font-size:13px; color:#8A94A6; border-radius:6px;
  transition: all 0.15s; font-weight:500;
}
.s-chip:hover { color:#4B5563; }
.s-chip.active { background:#6C5CE7; color:#fff; box-shadow:0 2px 4px rgba(108,92,231,0.2); }

.s-duration { display:flex; align-items:center; height:36px; box-sizing:border-box; border:1px solid #E5E8F0; border-radius:8px; background:#F8F9FC; overflow:hidden; }
.s-duration[hidden] { display:none !important; }
.s-duration input {
  width:56px; height:100%; box-sizing:border-box; border:0; background:transparent; padding:0 8px;
  font-size:14px !important; font-weight:400; color:#1F2330; text-align:center;
}
.s-duration input:focus,.s-duration input:focus-visible,
.s-card-seconds input:focus,.s-card-seconds input:focus-visible { outline:none !important; border:0 !important; box-shadow:none !important; }
.s-duration input::-webkit-inner-spin-button,.s-duration input::-webkit-outer-spin-button,
.s-card-seconds input::-webkit-inner-spin-button,.s-card-seconds input::-webkit-outer-spin-button { height:28px; margin:0; cursor:pointer; }
.s-duration-unit { padding:0 9px 0 2px; color:#8A94A6; font-size:14px; font-weight:400; }

.s-config-hint {
  padding:10px 14px; background:#F5F6FA; border-radius:8px; line-height:1.6;
  font-size:12px; color:#8A94A6; margin-bottom:18px;
}

.s-tpl-grid {
  display:grid; grid-template-columns:repeat(2,1fr); gap:12px; align-content:start;
}
.s-config-mode[data-se-config="title"] .s-tpl-grid { margin-bottom:16px; }
.s-title-style-workspace { display:grid; grid-template-columns:minmax(210px,.86fr) minmax(250px,1.14fr); gap:14px; align-items:start; min-width:0; }
.s-title-style-source,
.s-title-style-params { min-width:0; }
.s-title-style-source { padding:14px 4px 14px 14px; border:1px solid #E5E8F0; border-radius:10px; background:#FAFBFD; }
.s-title-style-column-head { display:flex; flex-direction:column; gap:3px; margin-bottom:12px; }
.s-title-style-column-head strong { color:#1F2330; font-size:14px; }
.s-title-style-column-head span { color:#8A94A6; font-size:11px; line-height:1.5; }
.s-config-mode[data-se-config="title"] .s-title-style-source .s-tpl-grid { grid-template-columns:1fr; gap:9px; max-height:500px; margin:0; padding-right:5px; overflow-y:auto; overscroll-behavior:contain; }
.s-title-style-source .s-tpl-grid::-webkit-scrollbar { width:6px; }
.s-title-style-source .s-tpl-grid::-webkit-scrollbar-thumb { border-radius:3px; background:#DDE1EA; }
.s-title-style-source .s-tpl-item { padding:7px; border-radius:8px; }
.s-title-style-source .s-tpl-preview { min-height:62px; margin-bottom:5px; padding:9px 6px; border-radius:6px; }
.s-title-style-source .s-tpl-add { min-height:84px; }
.s-title-style-source .s-tpl-add-icon { width:30px; height:30px; margin-bottom:5px; font-size:20px; }
.s-title-style-params .s-title-current-style { margin-bottom:10px; }
.s-title-style-params .s-title-style-editor { margin-bottom:0; }
@media (max-width:1360px) {
  .s-title-style-workspace { grid-template-columns:minmax(180px,.8fr) minmax(230px,1.2fr); gap:10px; }
  .s-title-style-source { padding:14px 4px 14px 14px; }
  .s-title-style-editor { padding:14px; }
}
@media (max-width:1160px) {
  .s-title-style-workspace { grid-template-columns:minmax(150px,.8fr) minmax(0,1.2fr); gap:10px; }
}
.s-tpl-item {
  border:2px solid transparent; background:#F5F6FA; border-radius:10px;
  padding:10px; cursor:pointer; transition: all 0.18s;
}
.s-tpl-item:hover { border-color: #E8E4FF; }
.s-tpl-item.active {
  border-color:#6C5CE7; background:#F3F1FF;
  box-shadow: 0 2px 8px rgba(108,92,231,0.15);
}
.s-tpl-preview {
  background:#1F2330; border-radius:8px; padding:18px 10px;
  min-height:86px; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:4px; margin-bottom:8px;
  text-align:center;
}
.s-tpl-name { font-size:12px; font-weight:600; text-align:center; color:#4B5563; }
.s-tpl-item.active .s-tpl-name { color:#6C5CE7; }

.stl-l1, .stl-l2 { font-weight:700; line-height:1.3; white-space:nowrap; }
/* 样式1 橙白超粗宋（默认模板） */
.s-tpl-s1 .stl-l1,.s-tpl-s1 .stl-l2 { font-size:15px; line-height:1; letter-spacing:.33px; font-weight:900; font-style:normal; font-family:"Source Han Serif SC Heavy","Noto Serif SC","Songti SC",SimSun,serif; text-shadow:2px 2px 3px rgba(0,0,0,.82); }
.s-tpl-s1 .stl-l1 { color:#EE8631; }
.s-tpl-s1 .stl-l2 { color:#F5F5F5; margin-top:0; }
/* 样式2 黄色喜脉体 */
.s-tpl-s2 .stl-l1 { color:#FFE600; font-size:15px; text-shadow:2px 2px 0 #000,-1px -1px 0 #000; }
.s-tpl-s2 .stl-l2 { color:#fff; font-size:13px; text-shadow:1.5px 1.5px 0 #000; }
/* 样式3 黄白行楷 */
.s-tpl-s3 .stl-l1 { color:#FFD23F; font-size:15px; font-family:"KaiTi","STKaiti",serif; }
.s-tpl-s3 .stl-l2 { color:#fff; font-size:13px; font-family:"KaiTi","STKaiti",serif; }
/* 样式4 黄白标题黑 */
.s-tpl-s4 .stl-l1 { color:#FFE066; font-size:15px; -webkit-text-stroke:1.5px #000; paint-order:stroke fill; }
.s-tpl-s4 .stl-l2 { color:#fff; font-size:13px; -webkit-text-stroke:1.5px #000; paint-order:stroke fill; }
/* 样式5 黄白大楷 */
.s-tpl-s5 .stl-l1 { color:#FFD700; font-size:17px; font-weight:900; font-family:"STKaiti","KaiTi",serif; }
.s-tpl-s5 .stl-l2 { color:#fff; font-size:14px; font-weight:700; font-family:"STKaiti","KaiTi",serif; }

/* 自定义卡 */
.s-tpl-add {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  min-height:140px; background:#fff; border:2px dashed #E5E8F0; color:#8A94A6;
}
.s-tpl-add:hover { border-color:#6C5CE7; color:#6C5CE7; background:#F3F1FF; }
.s-tpl-add-icon {
  width:40px; height:40px; border-radius:50%; background:#F5F6FA;
  display:flex; align-items:center; justify-content:center; font-size:24px; margin-bottom:8px;
}
.s-tpl-add:hover .s-tpl-add-icon { background:#fff; }

.s-title-current-style { display:flex; flex-direction:column; align-items:stretch; gap:10px; max-width:100%; box-sizing:border-box; overflow:hidden; margin:0 0 14px; padding:12px 14px; border:1px solid #E5E8F0; border-radius:9px; background:#FAFBFD; }
.s-title-current-header { display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; }
.s-title-current-header > span { flex:0 0 auto; color:#8A94A6; font-size:12px; line-height:30px; white-space:nowrap; }
.s-title-current-copy { display:flex; align-items:center; gap:7px; min-width:0; flex-wrap:wrap; }
.s-title-current-copy strong { width:max-content; min-width:max-content; flex:0 0 max-content; color:#1F2330; font-size:14px; white-space:nowrap; }
.s-title-current-copy em { padding:2px 7px; border-radius:999px; background:#EEF1F6; color:#6D7584; font-size:11px; font-style:normal; white-space:nowrap; }
.s-title-current-copy em.is-modified { background:#FFF1D6; color:#9A6500; }
.s-title-current-style .button { flex:0 0 auto; min-width:max-content; max-width:100%; height:30px; margin-left:auto; padding:0 10px; font-size:12px; white-space:nowrap; }
.s-title-current-style [data-se-subtitle-reset],
.s-title-current-style [data-se-cover-reset] { font-weight:400; }
.s-title-style-editor { margin-bottom:20px; padding:14px; border:1px solid #E5E8F0; border-radius:10px; background:#fff; }
.s-title-style-editor-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.s-title-style-editor-head > strong { width:4em; min-width:4em; flex:0 0 4em; color:#1F2330; font-size:14px; white-space:nowrap; }
.s-title-line-tabs { display:inline-flex; gap:3px; padding:3px; border-radius:7px; background:#F2F3F7; }
.s-title-line-tabs button { min-width:62px; height:29px; padding:0 10px; border:0; border-radius:5px; background:transparent; color:#6D7584; font-size:12px; cursor:pointer; }
.s-title-line-tabs button.active { background:#fff; color:#5C49E8; font-weight:700; box-shadow:0 1px 4px rgba(31,35,48,.1); }
.s-title-style-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.s-title-style-fields[hidden] { display:none !important; }
.s-title-style-field { display:flex; flex-direction:column; gap:6px; min-width:0; color:#6D7584; font-size:12px; }
.s-title-style-field-wide { grid-column:1 / -1; }
.s-title-style-field select,
.s-title-style-field input[type="number"] { width:100%; height:36px; box-sizing:border-box; padding:0 10px; border:1px solid #DDE1EA; border-radius:7px; background:#F8F9FC; color:#1F2330; font-size:13px; }
.s-title-style-field input[type="color"] { width:100%; height:36px; box-sizing:border-box; padding:3px 5px; border:1px solid #DDE1EA; border-radius:7px; background:#F8F9FC; cursor:pointer; }
.s-title-style-check { grid-column:1 / -1; display:flex; align-items:center; gap:8px; color:#4B5563; font-size:12px; cursor:pointer; }
.s-title-style-check input { width:16px; height:16px; accent-color:#6C5CE7; }

/* —— 右：预览面板 —— */
.s-preview-panel.prod-video-preview {
  width: 300px !important;
  min-width: 300px !important;
  max-width: 300px !important;
  height: 720px !important;
  flex: 0 0 720px !important;
  padding: 0 !important;
  gap: 0 !important;
  border-radius: 16px !important;
  border: 1px solid rgb(227, 231, 237) !important;
  box-shadow: rgba(15, 18, 42, 0.04) 0px 1px 2px 0px, rgba(15, 18, 42, 0.05) 0px 4px 18px 0px !important;
  overflow: hidden !important;
  justify-self: start;
}

.s-field-block {
  display:flex; flex-direction:column; gap:8px; margin:0 0 16px;
  color:#4B5563; font-size:13px; font-weight:600;
}
.s-field-block > span { display:flex; align-items:center; justify-content:space-between; }
.s-field-block b { color:#6C5CE7; font-variant-numeric:tabular-nums; }
.s-field-block input[type="text"],
.s-field-block input[type="number"],
.s-field-block textarea {
  width:100%; box-sizing:border-box; padding:10px 12px; border:1px solid #E5E8F0;
  border-radius:8px; background:#F8F9FC; color:#1F2330; font:inherit; resize:vertical;
}
.s-field-block input:focus, .s-field-block textarea:focus {
  outline:none; border-color:#6C5CE7; box-shadow:0 0 0 3px #E8E4FF; background:#fff;
}
.s-field-block input[type="range"] { width:100%; accent-color:#6C5CE7; }
.s-position-control { display:block; box-sizing:border-box; padding:0; border:0; border-radius:0; background:transparent; }
.s-position-control > span { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; color:#1F2330; font-size:14px; font-weight:700; }
.s-title-scale-control input[type="range"],
.s-position-control input[type="range"] { display:block; width:100%; margin:0; accent-color:#6C5CE7; cursor:ew-resize; }
.s-subtitle-preview { min-height:74px; font-size:14px; font-weight:800; }
.s-subtitle-preview-white { color:#fff; text-shadow:2px 2px 0 #000,-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000; }
.s-subtitle-preview-yellow { color:#FFE066; text-shadow:2px 2px 0 #000,-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000; }
.s-subtitle-workflow-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; margin-bottom:20px; padding:0; background:transparent; }
.s-subtitle-workflow-tabs button { display:flex; align-items:center; justify-content:center; gap:7px; min-width:0; min-height:42px; padding:8px 17px 8px 21px; border:0 !important; border-top:1px solid #17191D !important; border-bottom:1px solid #17191D !important; border-radius:0; clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%,14px 50%); background:#F0F1F4; color:#6D7584; font-size:14px; font-weight:500; cursor:pointer; }
.s-subtitle-workflow-tabs button:first-child { padding-left:12px; border-left:1px solid #17191D !important; clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%); }
.s-subtitle-workflow-tabs button:last-child { position:relative; filter:none; }
.s-subtitle-workflow-tabs button:last-child::before,
.s-subtitle-workflow-tabs button:last-child::after { content:""; position:absolute; z-index:2; top:50%; right:0; width:25.24px; height:1px; background:#17191D; transform-origin:right center; pointer-events:none; }
.s-subtitle-workflow-tabs button:last-child::before { transform:translateY(-.5px) rotate(56.31deg); }
.s-subtitle-workflow-tabs button:last-child::after { transform:translateY(-.5px) rotate(-56.31deg); }
.s-subtitle-workflow-tabs button span { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; flex:0 0 20px; border:1px solid #B9BFCA; border-radius:50%; color:#6D7584; font-size:12px; font-weight:400; }
.s-subtitle-workflow-tabs button b { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:inherit; }
.s-subtitle-workflow-tabs button.active { background:#E3E5EA; color:#1F2330; font-weight:700; box-shadow:none; }
.s-subtitle-workflow-tabs button.active span { border-color:#6D7584; color:#1F2330; background:#fff; font-weight:700; }
.s-subtitle-workflow-pane[hidden] { display:none !important; }
.s-config-mode[data-se-config="subtitle"] { min-height:100%; display:flex; flex-direction:column; overflow:visible; }
.s-config-mode[data-se-config="subtitle"]:has([data-se-subtitle-pane="edit"].active) { height:100%; min-height:0; overflow:hidden; }
.s-config-mode[data-se-config="subtitle"] .s-subtitle-workflow-pane.active[data-se-subtitle-pane="edit"] { flex:1 1 auto; min-height:0; display:flex; flex-direction:column; }
.s-subtitle-generate-card { min-height:210px; display:flex; flex-direction:column; align-items:stretch; justify-content:center; gap:12px; padding:8px 0; border:0; border-radius:0; background:transparent; }
.s-subtitle-generate-card strong { color:#1F2330; font-size:16px; }
.s-subtitle-generate-card p { margin:0 0 7px; color:#8A94A6; font-size:13px; line-height:1.7; }
.s-subtitle-generate-card > span { color:#8A94A6; font-size:12px; }
.s-subtitle-generate-card > .button { align-self:flex-start; }
.s-subtitle-workflow-tabs button.is-complete { color:#16845B; }
.s-subtitle-workflow-tabs button.is-complete span { border-color:#16845B; background:#E8F8F1; color:#16845B; }
.s-subtitle-next-guide { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:4px; padding:14px 16px; border:1px solid #A9E3CB; border-radius:10px; background:#F0FBF6; }
.s-subtitle-next-guide[hidden] { display:none !important; }
.s-subtitle-next-guide > div { display:flex; flex-direction:column; gap:3px; }
.s-subtitle-next-guide strong { color:#16845B; font-size:15px; }
.s-subtitle-next-guide span { color:#6D7584; font-size:12px; }
.s-subtitle-next-guide .button { flex:0 0 auto; }
.s-subtitle-step-action { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:18px; padding-top:14px; border-top:1px solid #E5E8F0; }
.s-subtitle-step-action span { color:#8A94A6; font-size:12px; line-height:1.5; }
.s-subtitle-step-action .button { flex:0 0 auto; }
.s-subtitle-style-mode { display:flex; flex-direction:column; align-items:flex-start; gap:9px; margin-bottom:14px; }
.s-subtitle-style-title { color:#1F2330; font-size:14px; font-weight:700; line-height:1.4; }
.s-subtitle-style-controls { gap:4px; padding:0; border-radius:0; background:transparent; }
.s-subtitle-style-controls .s-chip { min-width:92px; height:36px; padding:0 16px; border:1px solid #DDE1EA !important; border-radius:8px !important; background:#fff; color:#6D7584; box-shadow:none !important; font-size:14px; font-weight:500; }
.s-subtitle-style-controls .s-chip.active { border-color:#6C5CE7 !important; background:#6C5CE7; color:#fff; box-shadow:none !important; }
.s-subtitle-style-controls .s-chip:disabled { border-color:#E5E8F0 !important; background:#F5F6F8; color:#A4ABB7; opacity:1; cursor:not-allowed; }
@media (max-width:900px) {
  .s-subtitle-workflow-tabs button { padding-left:17px; padding-right:13px; }
  .s-subtitle-workflow-tabs button span { display:none; }
}
.s-subtitle-audio-source { display:flex; align-items:center; gap:12px; min-width:0; padding:10px 12px; border:1px solid #E5E8F0; border-radius:9px; background:#fff; font-size:13px; }
.s-subtitle-audio-source span { flex:0 0 auto; color:#8A94A6; }
.s-subtitle-audio-source b { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#343A46; font-weight:400; }
.s-subtitle-av-controls { display:grid; grid-template-columns:minmax(0,1fr) minmax(190px,.72fr); gap:16px; padding:14px 16px; border:1px solid #E5E8F0; border-radius:10px; background:#fff; }
.s-subtitle-av-controls .s-field-block { margin:0; }
.s-subtitle-av-controls select { width:100%; height:36px; padding:0 34px 0 12px; border:1px solid #DDE1EA; border-radius:8px; background:#F7F8FB; color:#1F2330; font:inherit; }
@media (max-width:900px) { .s-subtitle-av-controls { grid-template-columns:1fr; } }
.ste-inline-empty { display:grid; place-items:center; min-height:220px; padding:24px; border:1px dashed #DDE1EA; border-radius:10px; color:#8A94A6; font-size:14px; background:#FAFAFD; text-align:center; }
.ste-inline-empty[hidden], .ste-inline-table-wrap[hidden] { display:none !important; }
.ste-edit-tip { display:block; flex:0 0 auto; margin:0 0 10px; padding:9px 12px; border:1px solid #F1D8A7; border-radius:8px; background:#FFF9ED; color:#7A6750; font-size:12px; line-height:1.5; }
.ste-edit-tip[hidden] { display:none !important; }
.ste-edit-tip strong { margin-right:6px; color:#9A6500; font-size:12px; }
.ste-inline-table-wrap { flex:1 1 auto; min-height:0; max-height:none; overflow:auto; border:1px solid #E5E8F0; border-radius:10px; background:#fff; }
.ste-inline-table-wrap .ste-table { min-width:620px; font-size:12px; }
.ste-inline-table-wrap .ste-table th { padding:8px 6px; font-size:12px !important; }
.ste-inline-table-wrap .ste-table td { padding:6px 5px; font-size:12px !important; }
.ste-inline-table-wrap .ste-col-idx { width:42px; font-size:12px !important; font-weight:400; }
.ste-inline-table-wrap .ste-col-content { min-width:238px; }
.ste-inline-table-wrap .ste-input { height:32px; box-sizing:border-box; padding:0 6px; font-size:12px !important; }
.ste-inline-table-wrap .ste-input-content { min-width:220px; }
.ste-inline-table-wrap .ste-input-content.is-over-limit { border-color:#EF4444; background:#FFF7F7; box-shadow:0 0 0 2px rgba(239,68,68,.08); }
.ste-inline-table-wrap .ste-col-time { width:76px; }
.ste-inline-table-wrap .ste-input-time { width:68px; padding-left:3px; padding-right:3px; font-size:12px !important; }
.ste-inline-table-wrap .ste-col-dur { width:54px; min-width:54px; padding-left:3px; padding-right:3px; font-size:12px !important; }
.ste-inline-table-wrap .ste-col-actions { width:78px; min-width:78px; }
.ste-inline-table-wrap .ste-link { padding:3px 4px; font-size:12px; font-weight:400; }
.ste-inline-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:32px; flex:0 0 auto; padding-top:8px; color:#8A94A6; font-size:12px; white-space:nowrap; }
.ste-autosave-status { color:#6D7584; font-size:12px; white-space:nowrap; }
.s-bgm-source-tabs { gap:4px; margin-bottom:14px; padding:0; border-radius:0; background:transparent; }
.s-bgm-source-tabs .s-chip {
  min-width:92px; height:36px; padding:0 16px;
  border:1px solid #DDE1EA !important; border-radius:8px !important;
  background:#fff; color:#6D7584; box-shadow:none !important;
  font-size:14px; font-weight:500;
}
.s-bgm-source-tabs .s-chip.active {
  border-color:#6C5CE7 !important; background:#6C5CE7; color:#fff; box-shadow:none !important;
}
.s-bgm-library { display:flex; flex-direction:column; gap:7px; margin-bottom:16px; }
.s-bgm-library[hidden], .s-bgm-upload[hidden] { display:none !important; }
.s-bgm-item {
  display:flex; align-items:center; justify-content:space-between; width:100%; padding:10px 12px;
  border:1px solid #E5E8F0; border-radius:8px; background:#F8F9FC; color:#4B5563;
  text-align:left; cursor:pointer;
}
.s-bgm-item:hover { border-color:#CFC8FF; background:#F6F4FF; }
.s-bgm-item.active { border-color:#6C5CE7; background:#F0EDFF; color:#4F3FD0; }
.s-bgm-item [data-se-bgm-preview] { color:#6C5CE7; font-size:12px; font-weight:700; padding-left:10px; }
.s-bgm-upload { display:flex; align-items:center; gap:10px; padding:12px; margin-bottom:16px; border:1px dashed #CFC8FF; border-radius:8px; color:#8A94A6; }
.s-config-mode[data-se-config="card"] .s-field-block,
.s-config-mode[data-se-config="card"] .s-config-label,
.s-config-mode[data-se-config="card"] .s-chip { font-size:14px !important; }
.s-config-mode[data-se-config="card"] [data-se-card-name] { font-size:14px !important; font-weight:700 !important; }
.s-config-mode[data-se-config="card"] [data-se-card-intro] { font-size:14px !important; font-weight:400 !important; line-height:1.55; }
.s-field-help { margin-top:-3px; color:#8A94A6; font-size:12px; font-weight:400; }
.s-card-style-box { margin:0 0 16px; padding:0; border:0; border-radius:0; background:transparent; }
.s-card-layer-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; margin-bottom:20px; padding:0; background:transparent; }
.s-card-layer-tabs button { display:flex; align-items:center; justify-content:center; gap:7px; min-width:0; min-height:42px; padding:8px 17px 8px 21px; border:0 !important; border-top:1px solid #17191D !important; border-bottom:1px solid #17191D !important; border-radius:0; clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%,14px 50%); background:#F0F1F4; color:#6D7584; font-size:14px; font-weight:500; cursor:pointer; }
.s-card-layer-tabs button:first-child { padding-left:12px; border-left:1px solid #17191D !important; clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%); }
.s-card-layer-tabs button:last-child { position:relative; filter:none; }
.s-card-layer-tabs button:last-child::before,
.s-card-layer-tabs button:last-child::after { content:""; position:absolute; z-index:2; top:50%; right:0; width:25.24px; height:1px; background:#17191D; transform-origin:right center; pointer-events:none; }
.s-card-layer-tabs button:last-child::before { transform:translateY(-.5px) rotate(56.31deg); }
.s-card-layer-tabs button:last-child::after { transform:translateY(-.5px) rotate(-56.31deg); }
.s-card-layer-tabs button span { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border:1px solid #B9BFCA; border-radius:50%; color:#6D7584; font-size:12px; font-weight:400; }
.s-card-layer-tabs button b { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:inherit; }
.s-card-layer-tabs button.active { background:#E3E5EA; color:#1F2330; font-weight:700; box-shadow:none; }
.s-card-layer-tabs button.active span { border-color:#6D7584; color:#1F2330; background:#fff; font-weight:700; }
.s-card-style-box [hidden] { display:none !important; }
.s-card-shared-text { display:flex; flex-direction:column; gap:7px; margin-bottom:16px; color:#4B5563; font-size:14px; font-weight:600; }
.s-card-text-heading { display:flex; align-items:baseline; gap:12px; min-width:0; }
.s-card-text-heading > [data-se-card-text-label] { flex:0 0 auto; color:#1F2330; font-size:14px; font-weight:700; }
.s-card-text-heading .s-field-help { min-width:0; margin:0; color:#8A94A6; font-size:12px; font-weight:400; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.s-card-shared-text textarea { width:100%; min-height:72px; box-sizing:border-box; padding:11px 14px; border:1.5px solid transparent; border-radius:6px; background:#F5F6FA; color:#1F2330; font-size:14px; font-weight:400; line-height:1.55; resize:vertical; transition:all .18s; }
.s-card-style-box[data-target="name"] .s-card-shared-text textarea { height:42px; min-height:42px; padding-top:9px; padding-bottom:9px; resize:none; overflow:hidden; }
.s-card-style-box[data-target="intro"] .s-card-shared-text textarea { min-height:96px; }
.s-card-shared-text textarea:focus { outline:none; border-color:#6C5CE7; background:#fff; box-shadow:0 0 0 3px #E8E4FF; }
.s-card-style-title { margin:0 0 10px; color:#1F2330; font-size:14px; font-weight:700; }
.s-card-style-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:11px 12px; }
.s-card-style-grid label { display:flex; flex-direction:column; gap:6px; min-width:0; color:#6D7584; font-size:14px; font-weight:500; }
.s-card-style-grid .s-card-font-control { grid-column:span 3; }
.s-card-style-grid .s-card-color-control { grid-column:span 1; }
.s-card-style-grid label.wide { grid-column:1 / -1; }
.s-card-style-grid label > span { display:flex; align-items:center; justify-content:space-between; }
.s-card-style-grid b { color:#6C5CE7; font-weight:600; }
.s-card-style-grid select { width:100%; height:34px; padding:0 8px; border:1px solid #E5E8F0; border-radius:7px; background:#fff; color:#1F2330; font-size:14px; }
.s-card-style-grid input[type="color"] { width:100%; height:34px; padding:3px; border:1px solid #E5E8F0; border-radius:7px; background:#fff; cursor:pointer; }
.s-card-style-grid input[type="range"] { width:100%; accent-color:#6C5CE7; }
.s-card-style-grid label.s-card-bold { grid-column:span 1; flex-direction:column; align-items:flex-start; gap:6px; color:#6D7584; }
.s-card-style-grid .s-card-bold input { width:16px; height:16px; accent-color:#6C5CE7; }
.s-card-style-help { margin-top:9px; color:#8A94A6; font-size:12px; line-height:1.55; }
.s-card-layout-pane { padding:2px 0 0; }
.s-card-layout-heading { display:flex; align-items:baseline; gap:12px; margin-bottom:12px; }
.s-card-layout-heading .s-card-style-title { margin:0; }
.s-card-layout-heading > span { color:#8A94A6; font-size:12px; font-weight:400; }
.s-card-layout-pane .s-field-block { margin-bottom:18px; }
.s-card-timing-heading { margin-top:22px; padding-top:18px; border-top:1px solid #E5E8F0; }
.s-card-timing-heading .s-card-timing-title { margin:0; }
.s-card-timing-list { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.s-card-timing-item { padding:14px; border:1px solid #E5E8F0; border-radius:10px; background:#fff; }
.s-card-timing-item > strong { display:block; margin-bottom:11px; color:#343A46; font-size:14px; }
.s-card-timing-item--shared { padding:0; border:0; border-radius:0; background:transparent; }
.s-card-duration-section { margin-top:14px; padding-top:14px; border-top:1px solid #E5E8F0; }
.s-card-duration-section .s-card-style-title { margin-bottom:9px; }
.s-card-duration-row { align-items:center; }
.s-card-duration-row .s-config-label { padding-top:0; }
.s-card-display-controls { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.s-card-seconds { display:flex; align-items:center; height:34px; border:1px solid #E5E8F0; border-radius:7px; background:#F8F9FC; overflow:hidden; }
.s-card-seconds[hidden] { display:none !important; }
.s-card-seconds input { width:56px; height:100%; padding:0 8px; border:0; background:transparent; color:#1F2330; font-size:14px !important; font-weight:400 !important; text-align:center; }
.s-card-seconds span { padding-right:9px; color:#8A94A6; font-size:14px !important; font-weight:400 !important; }
@media (max-width:900px) {
  .s-card-layer-tabs button { padding-left:17px; padding-right:13px; }
  .s-card-layer-tabs button span { display:none; }
  .s-card-timing-list { grid-template-columns:1fr; }
}
.s-cover-panel-title { display:none; color:#1F2330; font-size:14px; font-weight:700; }
.s-preview-panel.prod-video-preview > .prod-video-preview-head { margin:0 18px; padding:0; gap:10px; border-bottom-color:#EEF0F5; }
.s-preview-title-status { min-width:0; display:flex; align-items:center; gap:10px; }
.s-preview-panel-title { color:#1F2330; font-size:14px; font-weight:700; white-space:nowrap; }
.s-preview-state-switch { display:flex; min-width:0; align-items:center; gap:8px; }
.s-preview-action-row { height:50px; flex:0 0 50px; box-sizing:border-box; padding:0 18px; display:flex; align-items:center; justify-content:space-between; gap:10px; border-bottom:1px solid #EEF0F5; background:#fff; }
.s-preview-source-indicator { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#7B8495; font-size:12px; }
.s-cover-mode-row { display:none; height:50px; flex:0 0 50px; box-sizing:border-box; padding:0 18px; align-items:center; justify-content:space-between; gap:10px; border-bottom:1px solid #EEF0F5; background:#fff; }
.s-cover-mode-row-left { min-width:0; display:flex; align-items:center; gap:8px; }
.s-preview-result-actions { flex:0 0 auto; display:flex; align-items:center; justify-content:flex-end; gap:4px; margin-left:auto; }
.s-preview-result-actions .button { min-width:48px; height:32px; padding:0 8px; }
.s-preview-result-actions [data-se-action="apply-cut"] { min-width:90px; }
.s-preview-result-actions [data-se-play-final] { min-width:68px; }
.s-cover-result-actions { display:none; align-items:center; gap:8px; }
.s-cover-result-actions .button { min-width:58px; height:32px; padding:0 12px; }
.s-preview-sync-status { padding:0; border:0; border-radius:0; background:transparent; font-size:12px; font-weight:400; white-space:nowrap; }
.s-preview-state-switch .s-preview-sync-status { display:inline-flex; align-items:center; }
.s-preview-sync-status.is-dirty { color:#B86B00; background:transparent; border:0; }
.s-preview-sync-status.is-synced { color:#16845B; background:transparent; border:0; }
.s-preview-sync-status.is-empty { color:#7B8494; background:transparent; border:0; }
.s-preview-sync-status.is-rendering { color:#5A46D4; background:transparent; border:0; }
.s-preview-mode { min-width:68px; height:32px; padding:0 10px; border:1px solid #D9DDE7; border-radius:8px; background:#fff; color:#6D7584; font-size:12px; font-weight:700; cursor:pointer; }
.s-preview-mode.active { background:#6C5CE7; color:#fff; }
.s-preview-mode:disabled { opacity:.4; cursor:not-allowed; }
.s-cover-generate-status { display:inline-flex; padding:4px 8px; border-radius:6px; font-size:12px; font-weight:400; white-space:nowrap; }
.s-cover-generate-status.is-pending { color:#B86B00; background:#FFF4D7; border:1px solid #FFD267; }
.s-cover-generate-status.is-ready { color:#16845B; background:#E8F8F1; border:1px solid #A9E3CB; }
.s-preview-panel.prod-video-preview .prod-video-preview-body {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
}
.s-preview-panel.prod-video-preview .prod-video-preview-video {
  object-fit: contain !important;
  width: 100% !important;
  height: 100% !important;
  max-height: 100% !important;
  border-radius: 0 !important;
  background: #000 !important;
  display: block !important;
}
.s-preview-panel.prod-video-preview .s-preview-head {
  display: none !important;
}
/* 防止网感剪辑内部的样式切换JS动态给 body 加上 s-preview-style-N 类时改变尺寸/背景/圆角等 */
.s-preview-panel.prod-video-preview > .prod-video-preview-body,
.s-preview-panel.prod-video-preview > .prod-video-preview-body[class*="s-preview-style-"] {
  height: 536px !important;
  flex: 0 0 536px !important;
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  background: #000 !important;
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  border: none !important;
  margin: 0 !important;
}
.s-preview-panel {
  background:#fff; border:1px solid #E5E8F0; border-radius:10px; padding:16px;
  display:flex; flex-direction:column; position:sticky; top:86px;
}
.s-preview-head { margin-bottom:12px; }
.s-preview-title-row {
  display:flex; align-items:baseline; gap:10px; margin-bottom:12px; flex-wrap:wrap;
}
.s-preview-title { font-size:15px; font-weight:600; color:#1F2330; }
.s-preview-filename {
  font-size:12px; color:#8A94A6;
  font-family:"SF Mono", Consolas, Menlo, monospace;
  max-width:200px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.s-preview-tabs {
  display:flex; align-items:center; gap:6px; padding:3px; background:#F5F6FA; border-radius:8px;
}
.s-p-tab {
  padding:5px 12px; font-size:12px; color:#8A94A6; border-radius:6px; flex:1;
  font-weight:500; transition: all 0.15s;
}
.s-p-tab:hover { color:#4B5563; }
.s-p-tab.active { background:#fff; color:#1F2330; box-shadow: 0 1px 2px rgba(31,35,48,0.06); font-weight:600; }

.s-p-btn-link { padding:5px 12px; border-radius:6px; font-size:12px; font-weight:500; }
.s-p-btn-link.blue    { background:#E6F2FE; color:#0984E3; }
.s-p-btn-link.primary { background:#6C5CE7; color:#fff; }
.s-p-btn-link:hover   { opacity:0.85; }

/* 视频播放器容器 */
.s-video-wrap {
  width:100%; aspect-ratio: 9/16; max-height:520px;
  background:#000; border-radius:10px; overflow:hidden; margin-bottom:12px; position:relative;
}
.s-video-player { width:100%; height:100%; position:relative; overflow:hidden; background:#000; }
.s-video-bg {
  position:absolute; inset:0;
  background:#000;
}
/* 模拟人物 */
.s-video-person {
  position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:82%; height:85%;
}
.svp-hair {
  position:absolute; top:6%; left:50%; transform:translateX(-50%);
  width:52%; height:22%; background:#1a1a1a;
  border-radius:50% 50% 40% 40%;
}
.svp-face {
  position:absolute; top:15%; left:50%; transform:translateX(-50%);
  width:44%; height:26%;
  background: linear-gradient(180deg, #F5D0A9 0%, #E8B98A 100%);
  border-radius: 44% 44% 40% 40%;
}
.svp-glasses {
  position:absolute; top:32%; left:50%; transform:translateX(-50%);
  width:78%; height:22%; display:flex; gap:4px; align-items:center; justify-content:center;
}
.svp-glasses::before, .svp-glasses::after {
  content:""; width:36%; height:100%;
  border:2.5px solid #2d2d4a; border-radius:4px;
  background: rgba(180,200,255,0.15);
}
.svp-mouth {
  position:absolute; bottom:18%; left:50%; transform:translateX(-50%);
  width:20%; height:8%; background:#C06060; border-radius:0 0 10px 10px;
}
.svp-body {
  position:absolute; bottom:0; left:50%; transform:translateX(-50%);
  width:90%; height:52%;
  background: linear-gradient(180deg, #F5F5F5 0%, #E0E0E0 100%);
  border-radius: 40% 40% 0 0 / 16% 16% 0 0;
}

/* 标题叠加层 */
.s-video-overlay-stage {
  position:absolute; top:0; left:50%; z-index:3; height:100%; aspect-ratio:9 / 16;
  transform:translateX(-50%); overflow:hidden; contain:paint; pointer-events:none;
}
.s-video-overlay-stage > [data-se-module] { pointer-events:auto; }
.s-canonical-overlay-image {
  position:absolute; inset:0; z-index:2; display:block; width:100%; height:100%;
  object-fit:fill; pointer-events:none; user-select:none;
}
.s-canonical-overlay-image[hidden] { display:none !important; }
/* 文字像素由最终合成所用的 libass 直接输出；DOM 叠层只保留交互边框和拖拽手柄。 */
.s-video-overlay-stage.is-canonical-raster .s-ot-line,
.s-video-overlay-stage.is-canonical-raster .s-overlay-subtitle .os-word,
.s-video-overlay-stage.is-canonical-raster .s-overlay-card > strong,
.s-video-overlay-stage.is-canonical-raster .s-overlay-card > span { visibility:hidden; }
.s-video-overlay-stage.is-canonical-raster .s-overlay-card { background:transparent; text-shadow:none !important; }
.s-video-overlay-stage .s-preview-selectable:hover,
.s-video-overlay-stage .s-preview-selectable.is-selected { outline-offset:-3px; }
.s-video-overlay-stage .s-overlay-titles.s-preview-selectable:hover,
.s-video-overlay-stage .s-overlay-titles.s-preview-selectable.is-selected {
  outline:none;
  box-shadow:0 5px 16px rgba(20,72,12,.24);
}
.s-overlay-titles {
  position:absolute; top:5%; left:50%; transform:translateX(-50%) scale(var(--title-scale,1)); transform-origin:top center;
  display:flex; flex-direction:column; align-items:center;
  box-sizing:border-box; width:max-content; max-width:none; padding:0 5px;
  overflow:visible; text-align:center; z-index:10;
  user-select:none; cursor:grab;
}
.s-overlay-titles::after {
  content:""; position:absolute; inset:-.5px; z-index:3; box-sizing:border-box;
  border:1px solid #39FF14; border-radius:0; opacity:0; pointer-events:none;
}
.s-overlay-titles:hover::after,
.s-overlay-titles.is-selected::after { opacity:1; }
.s-overlay-titles:active { cursor:grabbing; }
.s-title-resize-handle,.s-card-resize-handle { display:none; position:absolute; z-index:4; width:14px; height:14px; padding:0; border:0; border-radius:50%; background:transparent; box-shadow:none; }
.s-title-resize-handle::before,.s-card-resize-handle::before { content:""; position:absolute; top:50%; left:50%; box-sizing:border-box; width:7px; height:7px; border:1px solid #39FF14; border-radius:50%; background:#fff; box-shadow:0 1px 4px rgba(31,35,48,.32); transform:translate(-50%,-50%); }
.s-title-resize-handle.is-nw,.s-card-resize-handle.is-nw { top:-7px; left:-7px; cursor:nwse-resize; }
.s-title-resize-handle.is-ne,.s-card-resize-handle.is-ne { top:-7px; right:-7px; cursor:nesw-resize; }
.s-title-resize-handle.is-sw,.s-card-resize-handle.is-sw { bottom:-7px; left:-7px; cursor:nesw-resize; }
.s-title-resize-handle.is-se,.s-card-resize-handle.is-se { right:-7px; bottom:-7px; cursor:nwse-resize; }
.s-overlay-titles.is-selected .s-title-resize-handle { display:block; }
.s-title-resize-handle:hover,.s-title-resize-handle.is-resizing { background:transparent; transform:scale(1.16); }
.s-card-resize-handle:hover,.s-card-resize-handle.is-resizing { background:transparent; transform:scale(1.16); }
.s-ot-line { width:max-content; max-width:none; margin-left:auto; margin-right:auto; overflow:visible; text-align:center; text-overflow:clip; overflow-wrap:normal; word-break:keep-all; font-weight:700; line-height:1.35; white-space:nowrap; }
.s-ot-line.line1 {
  color:#FF8C42; font-size:22px;
  font-family:"Noto Serif SC","Songti SC",SimSun,serif;
  text-shadow: 1px 2px 6px rgba(0,0,0,0.5); margin-bottom:4px;
}
.s-ot-line.line2 {
  color:#fff; font-size:18px;
  font-family:"Noto Serif SC","Songti SC",SimSun,serif;
  text-shadow: 1px 2px 6px rgba(0,0,0,0.5);
}
/* 样式模板联动类（用于预览实时切换） */
.s-preview-style-0 .s-ot-line { text-shadow:1px 2px 6px rgba(0,0,0,.5); }
.s-preview-style-0 .s-ot-line.line1 { color:#FF8C42; font-size:22px; font-family:"Noto Serif SC","Songti SC",SimSun,serif; }
.s-preview-style-0 .s-ot-line.line2 { color:#fff; font-size:18px; font-family:"Noto Serif SC","Songti SC",SimSun,serif; }

.s-preview-style-1 .s-ot-line { text-shadow:2px 2px 0 #000,-1px -1px 0 #000; }
.s-preview-style-1 .s-ot-line.line1 { color:#FFE600; font-size:22px; font-family:inherit; }
.s-preview-style-1 .s-ot-line.line2 { color:#fff; font-size:18px; font-family:inherit; }

.s-preview-style-2 .s-ot-line.line1 { color:#FFD23F; font-size:22px; font-family:"KaiTi","STKaiti",serif; text-shadow:none; }
.s-preview-style-2 .s-ot-line.line2 { color:#fff; font-size:18px; font-family:"KaiTi","STKaiti",serif; text-shadow:none; }

.s-preview-style-3 .s-ot-line { paint-order:stroke fill; text-shadow:none; }
.s-preview-style-3 .s-ot-line.line1 { color:#FFE066; font-size:22px; -webkit-text-stroke:2px #000; }
.s-preview-style-3 .s-ot-line.line2 { color:#fff; font-size:18px; -webkit-text-stroke:1.8px #000; }

.s-preview-style-4 .s-ot-line.line1 { color:#FFD700; font-size:24px; font-weight:900; font-family:"STKaiti","KaiTi",serif; text-shadow:none; }
.s-preview-style-4 .s-ot-line.line2 { color:#fff; font-size:19px; font-weight:700; font-family:"STKaiti","KaiTi",serif; text-shadow:none; }

/* 字幕叠加 */
.s-overlay-subtitle {
  position:absolute; bottom:16%; left:50%; transform:translateX(-50%);
  font-size:16px; font-weight:700; color:#fff; z-index:10; text-align:center;
  box-sizing:border-box; width:max-content; padding:6px 3px; max-width:95%; overflow:visible;
  border-radius:0; background:none !important; background-color:transparent !important;
  background-image:none !important; filter:none !important; backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  text-overflow:clip; white-space:normal; overflow-wrap:normal; word-break:keep-all; line-height:1.4;
  text-shadow:2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000;
}

/* —— 封面制作：中栏配置 + 右侧播放器/画布双模式 —— */
.s-cover-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; margin-bottom:20px; padding:0; background:transparent; }
.s-cover-tabs button { display:flex; align-items:center; justify-content:center; gap:7px; min-width:0; min-height:42px; padding:8px 17px 8px 21px; border:0 !important; border-top:1px solid #17191D !important; border-bottom:1px solid #17191D !important; border-radius:0; clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%,14px 50%); background:#F0F1F4; color:#6D7584; font-size:14px; font-weight:500; cursor:pointer; }
.s-cover-tabs button:first-child { padding-left:12px; border-left:1px solid #17191D !important; clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%); }
.s-cover-tabs button:last-child { position:relative; filter:none; }
.s-cover-tabs button:last-child::before,
.s-cover-tabs button:last-child::after { content:""; position:absolute; z-index:2; top:50%; right:0; width:25.24px; height:1px; background:#17191D; transform-origin:right center; pointer-events:none; }
.s-cover-tabs button:last-child::before { transform:translateY(-.5px) rotate(56.31deg); }
.s-cover-tabs button:last-child::after { transform:translateY(-.5px) rotate(-56.31deg); }
.s-cover-tabs button span { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; flex:0 0 20px; border:1px solid #B9BFCA; border-radius:50%; color:#6D7584; font-size:12px; font-weight:400; }
.s-cover-tabs button b { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:inherit; }
.s-cover-tabs button.active { background:#E3E5EA; color:#1F2330; font-weight:700; box-shadow:none; }
.s-cover-tabs button.active span { border-color:#6D7584; color:#1F2330; background:#fff; font-weight:700; }
.s-cover-tab-panel[hidden], .s-cover-source-panel[hidden] { display:none !important; }
.s-cover-template { display:grid; grid-template-columns:108px 1fr; grid-template-rows:auto auto; gap:5px 12px; width:100%; padding:10px; border:2px solid #6C5CE7; border-radius:10px; background:#F6F4FF; text-align:left; cursor:pointer; }
.s-cover-template-preview { grid-row:1 / 3; width:108px; aspect-ratio:9/16; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:8px; box-sizing:border-box; border-radius:7px; background:linear-gradient(rgba(0,0,0,.34),rgba(0,0,0,.34)),linear-gradient(145deg,#87CEEB,#477B60); color:#fff; font-family:"Source Han Serif SC Heavy","Noto Serif SC","Songti SC",SimSun,serif; font-size:13px; font-weight:900; line-height:1.2; text-align:center; -webkit-text-stroke:0 transparent; }
.s-cover-template-preview > span,.s-cover-canvas-text > span { display:block; white-space:nowrap; }
.s-cover-template-preview > span { transform-origin:center; }
.s-cover-template strong { align-self:end; color:#2B3040; font-size:14px; }
.s-cover-template small { align-self:start; color:#8A94A6; font-size:12px; line-height:1.5; }
.s-cover-source-tabs { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:14px; }
.s-cover-source-tabs button { min-height:0; padding:10px; border:1px solid #E2E5ED; border-radius:10px; background:#F8F9FC; color:#4B5563; text-align:left; cursor:pointer; }
.s-cover-source-tabs button.active { border-color:#6C5CE7; background:#F1EEFF; box-shadow:0 0 0 2px rgba(108,92,231,.1); }
.s-cover-source-tabs button:disabled { opacity:.52; cursor:not-allowed; border-color:#E2E5ED; background:#F3F4F7; box-shadow:none; }
.s-cover-source-tabs button:disabled strong,.s-cover-source-tabs button:disabled small { color:#9AA2B1; }
.s-cover-source-tabs strong,.s-cover-source-tabs small { display:block; }
.s-cover-source-tabs strong { margin-bottom:4px; font-size:13px; }
.s-cover-source-tabs small { color:#8A94A6; font-size:12px; line-height:1.35; }
.s-cover-source-panel { padding:12px; margin-bottom:14px; border:1px solid #E5E8F0; border-radius:10px; background:#FAFAFD; }
.s-cover-frame-hint { margin:0; padding:0; border-radius:0; background:transparent; }
.s-cover-source-panel[data-se-cover-source-panel="upload"] { padding:0; border:0; background:transparent; }
.s-cover-image-drop { min-height:0; box-sizing:border-box; padding:10px 18px; border:2px dashed #8B7CF6; border-radius:10px; background:#F3F0FF; color:#1F2330; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:9px; text-align:center; cursor:pointer; transition:border-color .15s,background .15s,box-shadow .15s; }
.s-cover-image-drop:hover,.s-cover-image-drop:focus-visible,.s-cover-image-drop.is-dragging { outline:none; border-color:#5B46E8; background:#EDE8FF; box-shadow:0 0 0 4px rgba(108,92,231,.12); }
.s-cover-image-drop.is-uploading { opacity:.68; pointer-events:none; }
.s-cover-image-drop svg { width:50px; height:50px; fill:none; stroke:#6C5CE7; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.s-cover-image-drop strong { font-size:15px; font-weight:700; }
.s-cover-image-drop span { color:#7B8494; font-size:12px; line-height:1.55; }
.s-cover-image-drop .s-cover-image-drop-title { display:flex; align-items:center; justify-content:center; gap:6px; color:#1F2330; line-height:1; }
.s-cover-image-drop small { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#6C5CE7; font-size:12px; font-weight:600; }
.s-cover-text-help { color:#8A94A6; font-size:12px; font-weight:400; line-height:1.55; }
.s-cover-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:15px; }
.s-cover-form-grid label { display:flex; flex-direction:column; gap:6px; min-width:0; color:#6D7584; font-size:13px; font-weight:600; }
.s-cover-form-grid label > span { display:flex; justify-content:space-between; align-items:center; }
.s-cover-form-grid b { color:#6C5CE7; }
.s-cover-form-grid input[type="range"] { width:100%; accent-color:#6C5CE7; }
.s-cover-form-grid input[type="color"] { width:100%; height:34px; padding:3px; border:1px solid #E5E8F0; border-radius:7px; background:#fff; }
.s-cover-form-grid select { width:100%; height:34px; padding:0 8px; border:1px solid #E5E8F0; border-radius:7px; background:#fff; color:#2B3040; }
.s-cover-form-grid label.toggle-line { flex-direction:row; align-items:center; gap:8px; }
.s-cover-form-grid label.toggle-line input { width:16px; height:16px; accent-color:#6C5CE7; }
.s-cover-form-grid.compact { padding-top:14px; border-top:1px solid #E5E8F0; }
.s-cover-style-row { display:flex; gap:6px; margin-bottom:15px; }
.s-cover-style-row button { min-width:38px; height:34px; padding:0 10px; border:1px solid #DDE1EA; border-radius:7px; background:#fff; color:#4B5563; cursor:pointer; }
.s-cover-style-row button.active { color:#fff; border-color:#6C5CE7; background:#6C5CE7; }
.s-cover-italic-icon { display:inline-block; font-style:normal; font-weight:700; transform:skewX(-14deg); transform-origin:center; }
.s-cover-master-toggle { display:flex; align-items:center; gap:9px; margin-bottom:16px; color:#2B3040; font-size:14px; font-weight:700; }
.s-cover-master-toggle input { width:18px; height:18px; accent-color:#6C5CE7; }

/* 字幕与封面沿用标题的“左侧起点 + 右侧参数”统一编辑结构。 */
.s-subtitle-style-workspace,
.s-cover-style-workspace { margin-top:0; }
.s-subtitle-style-workspace .s-title-style-source,
.s-cover-style-workspace .s-title-style-source { align-self:stretch; }
.s-subtitle-style-workspace .s-tpl-grid,
.s-cover-style-workspace .s-tpl-grid { grid-template-columns:1fr; gap:9px; max-height:540px; margin:0; padding-right:5px; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
.s-subtitle-style-workspace .s-tpl-item,
.s-cover-style-workspace .s-tpl-item { display:flex; width:100%; min-width:0; box-sizing:border-box; flex-direction:column; align-items:stretch; padding:7px; border-radius:8px; text-align:center; }
.s-subtitle-style-workspace .s-tpl-add,
.s-cover-style-workspace .s-tpl-add { min-height:84px; align-items:center; justify-content:center; }
.s-subtitle-style-workspace .s-tpl-preview { display:flex; width:100%; min-height:62px; box-sizing:border-box; align-items:center; justify-content:center; margin:0 0 5px; padding:9px 6px; border-radius:6px; background:#1F2330; }
.s-subtitle-font-row { grid-column:1 / -1; display:grid; grid-template-columns:minmax(120px,1fr) auto auto; align-items:start; gap:8px; min-width:0; }
.s-subtitle-font-field { min-width:0; }
.s-subtitle-font-check { display:flex; min-width:34px; flex-direction:column; align-items:flex-start; justify-content:flex-end; gap:6px; color:#4B5563; font-size:12px; cursor:pointer; }
.s-subtitle-font-check input { width:16px; height:16px; margin:0; accent-color:#6C5CE7; }
.s-cover-style-workspace .s-cover-template { display:flex; grid-template:none; gap:0; background:#F5F6FA; }
.s-cover-style-workspace .s-cover-template.active { background:#F3F1FF; }
.s-cover-style-workspace .s-cover-template-preview { display:flex; width:100%; height:62px; min-height:62px; aspect-ratio:auto; box-sizing:border-box; flex:none; align-items:center; justify-content:center; margin:0 0 5px; padding:9px 6px; border-radius:6px; }
.s-subtitle-style-editor .s-title-style-fields { margin-bottom:14px; }
.s-subtitle-position-control { margin:0 0 14px; }
.s-cover-source-section { margin-bottom:18px; }
.s-cover-source-section > .s-subtitle-style-title { margin-bottom:10px; }
.s-cover-style-heading { margin:4px 0 10px; }
.s-cover-style-editor { max-height:570px; overflow-y:auto; overscroll-behavior:contain; }
.s-cover-style-editor > .s-field-block { margin:0 0 14px; }
.s-cover-style-editor > .s-field-block,
.s-cover-form-grid label { font-weight:400; }
.s-cover-style-editor > .s-field-block:has(> textarea[data-se-cover-input="text"]) > span { color:#1F2330; font-size:14px; font-weight:700; }
.s-cover-style-editor textarea[data-se-cover-input="text"] { font-size:14px !important; font-weight:400; line-height:1.5; }
.s-cover-form-grid b { font-weight:400; }
.s-cover-mask-heading { margin:6px 0 12px; padding-top:14px; border-top:1px solid #E5E8F0; color:#1F2330; font-size:14px; font-weight:700; }
@media (max-width:1160px) {
  .s-subtitle-style-workspace,
  .s-cover-style-workspace { grid-template-columns:minmax(150px,.8fr) minmax(0,1.2fr); }
}
.s-video-preview-meta {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.s-cover-frame-footer { display:none; width:100%; min-width:0; }
.s-cover-frame-footer[hidden] { display:none !important; }
.s-cover-frame-footer > input[type="range"] { display:block; width:100%; height:18px; margin:0; accent-color:#6C5CE7; cursor:ew-resize; touch-action:none; }
.s-cover-frame-footer-row { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:5px; }
.s-cover-frame-time { display:flex; align-items:center; gap:5px; color:#8A94A6; font-size:12px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.s-cover-frame-time b { color:#4B5563; font-weight:600; }
.s-cover-frame-time i { color:#B2B8C4; font-style:normal; }
.s-cover-frame-footer .button { height:28px; padding:0 11px; font-size:12px; white-space:nowrap; }
.s-cover-editing .prod-video-preview-foot { display:flex !important; padding:8px 18px 7px; gap:0; }
.s-cover-editing .s-video-preview-meta { display:none !important; }
.s-cover-editing .s-cover-frame-footer:not([hidden]) { display:block; }
.s-cover-editing .s-preview-state-switch,
.s-cover-editing .s-preview-title-status,
.s-cover-editing .s-preview-sync-status { display:none !important; }
.s-cover-editing .s-preview-action-row { display:none !important; }
.s-cover-editing .s-cover-panel-title { display:block; }
.s-cover-editing .s-cover-mode-row { display:flex; }
.s-cover-editing .s-cover-result-actions { display:flex; }
.s-cover-editing .s-preview-panel.prod-video-preview { height:720px !important; flex-basis:720px !important; }
.s-cover-stage { display:none; position:absolute; top:0; left:50%; z-index:4; height:100%; aspect-ratio:9 / 16; transform:translateX(-50%); overflow:hidden; pointer-events:none; }
.s-cover-safe-area { position:absolute; top:12.5%; left:0; z-index:5; width:100%; height:75%; overflow:hidden; pointer-events:none; }
.s-cover-canvas-image,.s-cover-canvas-mask,.s-cover-canvas-text { display:none; position:absolute; pointer-events:none; }
.is-cover-canvas .s-cover-stage { display:block; }
.is-cover-canvas .s-cover-canvas-image { inset:0; z-index:4; width:100%; height:100%; object-fit:cover; background:#000; }
.is-cover-canvas .s-cover-canvas-mask { inset:8% 9%; box-sizing:border-box; z-index:5; }
.is-cover-canvas .s-cover-canvas-text { display:block; z-index:6; width:calc(100% - 40px); max-width:calc(100% - 40px); padding:5px 0; box-sizing:border-box; white-space:pre; overflow-wrap:normal; }
.s-cover-crop-guide { position:absolute; left:0; z-index:8; width:100%; height:12.5%; background:rgba(15,18,30,.58); box-shadow:inset 0 -1px 0 rgba(255,255,255,.32); pointer-events:auto; cursor:not-allowed; }
.s-cover-crop-guide.is-top { top:0; }
.s-cover-crop-guide.is-bottom { bottom:0; transform:rotate(180deg); }
.is-cover-canvas [data-se-module],
.is-cover-canvas .s-video-person,
.is-cover-canvas .s-player-ctrl { display:none !important; }
.s-preview-selectable { pointer-events:auto; cursor:pointer; border-radius:6px; }
.s-preview-selectable:hover { outline:2px dashed rgba(255,216,0,.95); outline-offset:4px; }
.s-preview-selectable.is-selected {
  outline:1px solid #FFD400; outline-offset:4px;
  box-shadow:0 0 0 1px rgba(255,212,0,.18), 0 5px 16px rgba(55,44,0,.25);
}
.s-preview-selectable.is-burned-proxy > * { visibility:hidden; }
.s-preview-selectable.is-burned-proxy { background:transparent !important; text-shadow:none !important; }
.s-overlay-subtitle.is-white { color:#fff; }
.s-overlay-subtitle.is-yellow { color:#FFE066; }
.s-overlay-subtitle { cursor:grab; }
.s-overlay-subtitle.s-preview-selectable:hover,
.s-overlay-subtitle.s-preview-selectable.is-selected,
.s-overlay-subtitle.is-dragging {
  border-radius:0; outline:1px solid #39FF14; outline-offset:4px;
  background:transparent !important; box-shadow:none;
}
.s-overlay-subtitle.is-dragging { cursor:grabbing; }
.os-word { margin:0 2px; display:inline-block; }
.s-overlay-subtitle .os-word {
  display:block; margin:0; white-space:pre-line; text-align:center;
  background:none !important; background-color:transparent !important;
  background-image:none !important; box-shadow:none !important; filter:none !important;
  backdrop-filter:none !important; -webkit-backdrop-filter:none !important;
  text-box-trim:trim-both; text-box-edge:cap alphabetic;
}
.os-word.hl { color:#FFE066; }

.s-overlay-card {
  position:absolute; z-index:4; display:flex; flex-direction:column; align-items:flex-start;
  max-width:72%; padding:8px; border-radius:4px; color:#fff;
  background:rgba(0,0,0,.44); text-shadow:0 1px 2px rgba(0,0,0,.65);
  cursor:grab; user-select:none; touch-action:none; transform:scale(var(--card-scale,1)); transform-origin:left bottom;
}
.s-overlay-card::after { content:""; position:absolute; inset:-.5px; z-index:3; box-sizing:border-box; border:1px solid #39FF14; border-radius:0; opacity:0; pointer-events:none; }
.s-overlay-card:hover::after,.s-overlay-card.is-selected::after,.s-overlay-card.is-dragging::after { opacity:1; }
.s-overlay-card:hover { outline:none; }
.s-overlay-card.is-dragging { cursor:grabbing; outline:none; }
.s-overlay-card.is-selected .s-card-resize-handle { display:block; }
.s-overlay-card strong { font-size:14px; line-height:1; white-space:nowrap; }
.s-overlay-card span { font-size:12px; line-height:1.35; opacity:.92; white-space:pre; }

/* 播放器控制条 */
.s-player-ctrl {
  position:absolute; bottom:0; left:0; right:0; z-index:20;
  box-sizing:border-box; height:52px; min-height:52px; padding:12px 10px;
  background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.72) 54%,rgba(0,0,0,.82) 100%);
  display:flex; align-items:center; gap:6px;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .18s ease,visibility 0s linear .18s;
}
.s-player-ctrl[hidden] { display:none !important; }
.prod-video-preview-body.is-native-controls-visible .s-player-ctrl,
.s-player-ctrl:focus-within {
  opacity:1; visibility:visible; pointer-events:auto; transition-delay:0s;
}
.s-player-button {
  width:28px; height:28px; flex:0 0 28px; padding:0; border:0; border-radius:6px;
  display:flex; align-items:center; justify-content:center;
  color:#fff; background:transparent; line-height:0; cursor:pointer;
  transition:background-color .15s ease,opacity .15s ease;
}
.s-player-button:hover,.s-player-button:focus-visible { background:rgba(255,255,255,.16); outline:none; }
.s-player-button svg { display:block; width:17px; height:17px; overflow:visible; }
.s-player-button svg path { fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.s-player-button svg circle { fill:currentColor; }
.s-play-btn { font-size:14px; }
.s-play-btn [data-se-play-icon] { fill:currentColor; stroke:none; }
.s-play-btn [data-se-pause-icon] { fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; }
.s-player-time {
  font-size:12px; color:rgba(255,255,255,.94); flex-shrink:0; min-width:72px; text-align:center;
  font-variant-numeric: tabular-nums;
}
.spt-sep { opacity:0.5; margin:0 2px; }
.s-progress-wrap { flex:1; min-width:36px; padding:0 4px; }
.s-progress-bg {
  height:4px; background:rgba(255,255,255,0.25); border-radius:2px;
  position:relative; cursor:pointer;
}
.s-progress-buffer, .s-progress-fill {
  position:absolute; left:0; top:0; height:100%; border-radius:2px;
}
.s-progress-buffer { background:rgba(255,255,255,0.28); width:0%; transition:width .18s linear; }
.s-progress-fill { background:#fff; width:0%; z-index:1; transition:width .12s linear; }
.s-player-buffering-state {
  position:absolute; left:50%; top:50%; z-index:20; display:flex; align-items:center; gap:8px;
  max-width:calc(100% - 32px); padding:9px 13px; border:1px solid rgba(255,255,255,.16);
  border-radius:999px; color:#fff; background:rgba(20,23,29,.78); box-shadow:0 8px 24px rgba(0,0,0,.26);
  backdrop-filter:blur(7px); transform:translate(-50%,-50%); pointer-events:none;
}
.s-player-buffering-state[hidden] { display:none !important; }
.s-player-buffering-state span { width:14px; height:14px; flex:0 0 14px; border:2px solid rgba(255,255,255,.35); border-top-color:#fff; border-radius:50%; animation:s-player-buffer-spin .75s linear infinite; }
.s-player-buffering-state b { overflow:hidden; color:#fff; font-size:12px; font-weight:600; white-space:nowrap; text-overflow:ellipsis; }
@keyframes s-player-buffer-spin { to { transform:rotate(360deg); } }
.s-player-button .s-volume-muted { display:none; }
.s-player-button.is-muted .s-volume-waves { display:none; }
.s-player-button.is-muted .s-volume-muted { display:block; }
.s-player-volume { position:relative; width:28px; height:28px; flex:0 0 28px; }
.s-player-volume-panel {
  position:absolute; left:50%; bottom:34px; z-index:46; box-sizing:border-box;
  width:44px; min-height:142px; padding:10px 7px 7px; border:1px solid rgba(255,255,255,.18);
  border-radius:9px; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:7px;
  color:#fff; background:rgba(24,27,34,.94); box-shadow:0 10px 28px rgba(0,0,0,.36);
  backdrop-filter:blur(8px); transform:translateX(-50%);
}
.s-player-volume-panel[hidden] { display:none !important; }
.s-player-volume-panel input[type="range"] {
  width:18px; height:92px; min-height:92px; margin:0; padding:0; border:0;
  writing-mode:vertical-lr; direction:rtl; accent-color:#fff; cursor:pointer;
}
.s-player-volume-panel .s-volume-mute-button { width:28px; height:28px; flex:0 0 28px; }
.s-composite-fullscreen-icon { display:block; width:16px; height:16px; overflow:visible; }
.s-composite-fullscreen-icon path { fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.s-player-more-menu {
  position:absolute; right:8px; bottom:52px; z-index:45; width:164px; box-sizing:border-box;
  padding:10px; border:1px solid rgba(255,255,255,.18); border-radius:9px;
  color:#fff; background:rgba(24,27,34,.94); box-shadow:0 10px 28px rgba(0,0,0,.36);
  backdrop-filter:blur(8px);
}
.s-player-more-menu[hidden] { display:none !important; }
.s-player-more-menu strong { display:block; margin-bottom:7px; color:rgba(255,255,255,.72); font-size:11px; font-weight:600; }
.s-player-more-menu > div { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; }
.s-player-more-menu button { height:28px; padding:0; border:0; border-radius:6px; color:#fff; background:rgba(255,255,255,.08); font-size:11px; cursor:pointer; }
.s-player-more-menu button:hover,.s-player-more-menu button.active { background:#6C5CE7; }
/* 视频生成与剪辑预览同步发布页的双行播放控制条。 */
.s-player-ctrl { height:auto; min-height:0; padding:5px 3px 5px; display:block; background:linear-gradient(transparent,rgba(0,0,0,.88) 38%); }
.s-player-ctrl-row { display:flex; align-items:center; gap:3px; min-height:29px; }
.s-player-button { border-radius:5px; }
.s-play-btn svg { width:15px; height:15px; }
.s-play-btn [data-se-pause-icon] { stroke-width:1.7; }
.s-player-time { flex:0 0 68px; width:68px; min-width:0; text-align:left; white-space:nowrap; }
.spt-sep { opacity:1; margin:0 2px; }
.s-player-volume { flex:0 0 28px; }
.s-player-volume-panel { position:absolute; left:28px; top:1px; bottom:auto; z-index:46; width:0; height:26px; min-height:0; padding:0; border:0; border-radius:0; display:block; opacity:0; pointer-events:none; background:transparent; box-shadow:none; backdrop-filter:none; transform:none; transition:width .15s ease,opacity .15s ease; }
.s-player-volume:hover .s-player-volume-panel,.s-player-volume:focus-within .s-player-volume-panel { width:84px; opacity:1; pointer-events:auto; }
.s-player-volume-panel input[type="range"] { width:100%; height:26px; min-height:0; margin:0; padding:0; appearance:none; -webkit-appearance:none; writing-mode:horizontal-tb; direction:ltr; background:transparent; cursor:pointer; }
.s-player-volume-panel input[type="range"]::-webkit-slider-runnable-track { height:3px; border-radius:4px; background:#d6d6d6; }
.s-player-volume-panel input[type="range"]::-webkit-slider-thumb { width:12px; height:12px; margin-top:-4.5px; border:0; border-radius:50%; appearance:none; -webkit-appearance:none; background:#fff; }
.s-player-volume-panel input[type="range"]::-moz-range-track { height:3px; border-radius:4px; background:#d6d6d6; }
.s-player-volume-panel input[type="range"]::-moz-range-thumb { width:12px; height:12px; border:0; border-radius:50%; background:#fff; }
.s-player-volume-value { position:absolute; top:-26px; left:var(--s-volume-percent,100%); transform:translateX(-50%); padding:2px 5px; border-radius:4px; color:#fff; background:rgba(25,25,27,.92); font-size:11px; line-height:16px; white-space:nowrap; pointer-events:none; }
.s-player-volume-value[hidden] { display:none !important; }
.s-player-spacer { flex:1 1 auto; min-width:0; }
.s-player-ctrl-row > [data-se-fullscreen] { position:relative; left:6px; margin-left:3px; }
.s-player-ctrl-row > [data-se-fullscreen] > span { font-size:19px; line-height:1; }
.s-player-ctrl-row > [data-se-fullscreen] > svg { width:19px; height:19px; margin:auto; transform:scale(.90); }
.s-player-ctrl-row > [data-se-more] { position:relative; left:1px; font-size:20px; line-height:1; }
.s-progress-wrap { width:calc(100% - 18px); min-width:0; height:11px; margin:2.7px 11px 1px 7px; padding:0; }
.s-progress-bg { top:3.5px; height:4px; border-radius:4px; background:#bcbcbc; }
.s-progress-buffer { display:none; }
.s-progress-fill { border-radius:4px; }
.s-progress-fill::after { content:""; position:absolute; right:-5.5px; top:-3.5px; width:11px; height:11px; border-radius:50%; background:#fff; }
.s-player-more-menu { right:23px; bottom:41px; width:150px; padding:4px; border:0; border-radius:8px; background:#242428; backdrop-filter:none; }
.s-player-more-menu > div { gap:2px; }
.s-player-more-menu button { padding:6px 9px; height:auto; background:transparent; text-align:left; }
@media (hover:none) {
  .s-player-ctrl { opacity:1; visibility:visible; pointer-events:auto; transition-delay:0s; }
}

/* 上方固定 536px 的剪辑预览规则必须在全屏时解除。 */
.s-preview-panel.prod-video-preview > .prod-video-preview-body:fullscreen,
.s-preview-panel.prod-video-preview > .prod-video-preview-body:-webkit-full-screen {
  width:100vw !important;
  height:100vh !important;
  max-width:none !important;
  max-height:none !important;
  flex:0 0 100vh !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:#000 !important;
  overflow:hidden !important;
}
.prod-video-preview-body:fullscreen .prod-video-preview-video,
.prod-video-preview-body:-webkit-full-screen .prod-video-preview-video {
  width:100% !important;
  height:100% !important;
  max-height:none !important;
  object-fit:contain !important;
}

.s-preview-foot { padding:8px 0; }
.s-preview-foot > div, .s-preview-foot {
  padding:8px 12px; background:#F5F6FA; border-radius:8px;
  font-size:12px; color:#8A94A6;
}

/* 剪辑操作区 */
.s-edit-foot-actions { margin-top: 16px; }
.s-edit-foot-actions .ps-action { margin-top:0; }
.s-title-rendering [aria-disabled="true"] { cursor:not-allowed !important; opacity:.52; }
.s-title-rendering .s-overlay-titles { pointer-events:none; }

/* 滚动条 */
.s-param-panel::-webkit-scrollbar, .s-config-scroll::-webkit-scrollbar { width:6px; }
.s-param-panel::-webkit-scrollbar-thumb, .s-config-scroll::-webkit-scrollbar-thumb { background:#E5E8F0; border-radius:3px; }

/* ============================================================
 * S-EDITOR: 真实视频层（覆盖在 s-video-bg 之上，人物画之下/之上随条件切换显示）
 * ============================================================ */
.s-video-player { position: relative; overflow: hidden; }
.s-real-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #000;
  display: none;
  z-index: 2; /* 低于字幕/标题叠层(z-index~3)，高于背景 */
  border-radius: 18px;
}
/* 生成页与剪辑页共用真实视频类时，预览画面必须覆盖旧的默认隐藏态。 */
.prod-video-preview-body > .prod-video-preview-video.s-real-video {
  display: block;
  border-radius: 0;
}
/* 有真实视频时：把原纯 CSS 人物画淡出，避免两层画面打架 */
.s-video-person { transition: opacity .35s ease; }

/* ===== 字幕编辑器样式（参考轻语风格）===== */
.ste-modal { position: fixed; top:0; left:0; right:0; bottom:0; z-index:9999; }
.ste-modal[hidden] { display:none !important; }
.ste-modal-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.55); backdrop-filter:blur(4px); }
.ste-modal-dialog { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:900px; max-width:95vw; max-height:85vh; background:#fff; border-radius:16px; box-shadow:0 20px 60px rgba(0,0,0,.3); display:flex; flex-direction:column; overflow:hidden; }
.ste-modal-header { display:flex; align-items:center; justify-content:space-between; padding:20px 24px 16px; border-bottom:1px solid #f0edf7; }
.ste-modal-header h3 { margin:0; font-size:18px; font-weight:700; color:#1a1a2e; }
.ste-close-btn { background:none; border:none; font-size:20px; color:#999; cursor:pointer; width:32px; height:32px; border-radius:8px; display:flex; align-items:center; justify-content:center; }
.ste-close-btn:hover { background:#f0edf7; color:#555; }
.ste-modal-body { flex:1; overflow:auto; padding:0; }
.ste-table-wrap { overflow:auto; }
.ste-table { width:100%; border-collapse:collapse; font-size:13px; }
.ste-table thead { position:sticky; top:0; z-index:2; }
.ste-table th { background:#faf8ff; color:#6b7280; font-weight:600; text-align:left; padding:12px 16px; border-bottom:1px solid #ebe8f5; font-size:12px; white-space:nowrap; }
.ste-table td { padding:10px 12px; border-bottom:1px solid #f3f1f9; }
.ste-table tbody tr:hover { background:#faf8ff; }
.ste-table tbody tr:nth-child(even) { background:#fcfbff; }
.ste-table tbody tr:nth-child(even):hover { background:#f5f3ff; }
.ste-col-idx { width:50px; text-align:center; color:#8b8fa3; font-weight:600; }
.ste-col-content { min-width:300px; }
.ste-col-time { width:100px; }
.ste-col-dur { width:80px; color:#8b8fa3; text-align:center; }
.ste-col-actions { width:120px; text-align:center; }
.ste-input { width:100%; padding:8px 10px; border:1px solid #e0dce8; border-radius:8px; background:#fff; font-size:13px; color:#1a1a2e; outline:none; transition:border-color .15s, box-shadow .15s; font-family:inherit; }
.ste-input:focus { border-color:#6658e8; box-shadow:0 0 0 3px rgba(102,88,232,.12); }
.ste-input-content { min-width:280px; }
.ste-input-time { width:90px; text-align:center; font-variant-numeric:tabular-nums; }
.ste-link { background:none; border:none; cursor:pointer; font-size:13px; font-weight:500; padding:4px 8px; border-radius:6px; }
.ste-link:hover { background:#f0edf7; }
.ste-link-blue { color:#6658e8; }
.ste-link-red { color:#e74c3c; }
.ste-modal-footer { display:flex; justify-content:flex-end; gap:10px; padding:16px 24px; border-top:1px solid #f0edf7; }
.ste-btn { padding:8px 24px; border-radius:8px; font-size:14px; font-weight:600; cursor:pointer; border:none; transition:all .15s; }
.ste-btn-cancel { background:#f5f3f9; color:#6b7280; }
.ste-btn-cancel:hover { background:#ebe8f5; }
.ste-btn-confirm { background:linear-gradient(135deg, #6658e8, #7c6ef0); color:#fff; box-shadow:0 2px 8px rgba(102,88,232,.3); }
.ste-btn-confirm:hover { transform:translateY(-1px); box-shadow:0 4px 12px rgba(102,88,232,.4); }
/* 自定义滚动条 */
.ste-table-wrap::-webkit-scrollbar { width:8px; height:8px; }
.ste-table-wrap::-webkit-scrollbar-track { background:#F5F3F9; border-radius:4px; }
.ste-table-wrap::-webkit-scrollbar-thumb { background:#c9cdd8; border-radius:4px; }
.ste-table-wrap::-webkit-scrollbar-thumb:hover { background:#888A93; }

/* ============================================================
 * GLOBAL UI SYSTEM v1 · 2026-08-27
 * 最终覆盖层：统一不同浏览器的字体、字号、页面基线与组件节奏。
 * ============================================================ */
.s-subtitle-preview-zhuque {
  color:#fff;
  font-family:"Zhuque Fangsong (technical preview)",FangSong,"STFangsong",serif;
  font-weight:400;
  letter-spacing:3px;
  line-height:1;
  text-shadow:2px 2px 3px rgba(0,0,0,.82);
}

.initial-loading-shell { box-sizing:border-box; padding:18px 0; background:var(--bg); }
.initial-loading-shell[hidden] { display:none !important; }
.initial-loading-shell__head { width:38%; height:24px; margin-bottom:18px; border-radius:7px; background:#eceef3; }
.initial-loading-shell__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.initial-loading-shell__card { height:132px; border:1px solid var(--line); border-radius:12px; background:linear-gradient(100deg,#fff 25%,#f4f5f8 42%,#fff 60%); background-size:300% 100%; animation:initial-loading-shimmer 1.25s ease-in-out infinite; }
.route-loading-card { display:grid; gap:12px; min-height:320px; padding:20px; border:1px solid var(--line); border-radius:12px; background:var(--panel); }
.route-loading-card__bar { display:block; width:52%; height:18px; border-radius:6px; background:#eceef3; }
.route-loading-card__bar.is-short { width:34%; }
.route-loading-card__panel { display:block; min-height:220px; border-radius:10px; background:linear-gradient(100deg,#f7f8fa 25%,#eceef3 42%,#f7f8fa 60%); background-size:300% 100%; animation:initial-loading-shimmer 1.25s ease-in-out infinite; }
.route-loading-card small { color:var(--muted); }
.route-loading-card.is-error { min-height:120px; color:var(--red); }
@keyframes initial-loading-shimmer { from { background-position:100% 0; } to { background-position:0 0; } }
@media (max-width:900px) { .initial-loading-shell__grid { grid-template-columns:1fr; } }

:root {
  --ui-font: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", Arial, sans-serif;
  --ui-page-gutter: 14px;
  --ui-page-right-gutter: 5px;
  --ui-space: 16px;
  --ui-horizontal-gap: 10px;
  --ui-panel-gap: 10px;
  --ui-title-description-gap: 16px;
  --ui-radius: 12px;
  --ui-control-height: 38px;
}

html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scrollbar-gutter: stable;
}

/* 页面主滚动条保留槽位，但不显示无意义的上下箭头。 */
html::-webkit-scrollbar-button,
body::-webkit-scrollbar-button {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  background: transparent !important;
}

body {
  font-family: var(--ui-font);
  font-size: 16px;
  line-height: 1.55;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

button, input, textarea, select {
  font-family: inherit;
  font-size: 14px;
  line-height: 1.5;
}
input, textarea { font-size: 16px !important; }
select, select option { font-family:var(--ui-font); font-size:14px !important; line-height:1.5; }

.main-area {
  padding: 0 var(--ui-page-gutter) 40px;
  padding-right: var(--ui-page-right-gutter, 5px);
}
.topbar { min-height: 112px; }
.topbar h1, .view-intro h2 { font-size: 24px; line-height: 1.3; }
.topbar-subtitle, .view-intro p { font-size: 14px !important; line-height: 1.55; }

/* 同级页面内容统一从同一条基线开始。 */
.view { min-width: 0; }
.view-intro,
.view-intro.toolbar-only,
.topic-toolbar {
  min-height: 48px;
  margin: 0 0 var(--ui-space);
  padding: 0;
  align-items: center;
}
.studio-layout,
.topic-library-layout,
.admin-shell,
.diagnosis-workspace,
.schedule-top,
.publish-pack,
.inspiration-grid,
.production-planner,
.asset-grid,
.dashboard-focus-grid,
.dashboard-sections-grid,
.dashboard-section-column,
#dashboardBoard { gap: var(--ui-panel-gap); }

/* 卡片、看板、工作区统一圆角和边框语言。 */
.inspiration-capture,
.inspiration-board,
.topic-list,
.topic-workspace,
.content-rail,
.workbench,
.schedule-pool,
.production-calendar,
.review-list-section,
.asset-list,
.admin-toolbar,
.admin-panel,
.dashboard-section {
  border-color: var(--line);
  border-radius: var(--ui-radius);
}

/* 表单与按钮统一高度、字号和圆角。 */
.field { gap: 7px; margin-bottom: 14px; }
.field > span,
.field-label,
.field-save-head > span:first-child { font-size: 12px !important; line-height: 1.45; }
.field input,
.field select,
.field textarea,
.block-textarea,
.source-textarea {
  min-height: var(--ui-control-height);
  padding: 9px 11px;
  border-radius: 8px;
  font-size: 16px !important;
  line-height: 1.55;
  resize: none;
}
.field textarea,
.block-textarea,
.source-textarea {
  resize: vertical;
}
.button {
  min-height: 36px;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.4;
}
.button.compact { min-height: 32px; padding: 6px 10px; font-size: 12px; }
.segmented button,
.schedule-view-tabs button,
.dashboard-section-tabs button { font-size: 14px !important; }
.dashboard-section-tabs button { min-height: 30px; padding: 0 11px; white-space: nowrap; }

/* 文案环节创作方式切换与全站视图标签使用同一规格。 */
#creationModeToggle {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 2px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}
#creationModeToggle button {
  min-height: 30px;
  border: 0;
  border-radius: 8px;
  padding: 0 11px;
  color: var(--muted);
  background: transparent;
  cursor: pointer;
  font-size: 14px !important;
  white-space: nowrap;
}
#creationModeToggle button:hover { color: var(--brand); }
#creationModeToggle button.active {
  color: #fff;
  background: var(--brand);
  box-shadow: 0 3px 9px rgba(100,85,235,.2);
}

/* 文案对照编辑区统一标题与输入内容字号。 */
.compare-column-title strong,
.compare-block-head strong,
.compare-block:first-child::before,
.compare-block:last-child::before { font-size: 16px !important; }
.source-textarea,
.block-textarea { font-size: 14px !important; }
.compare-block {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 12px 0 0;
}
.compare-block-head { padding: 0 12px; }
.compare-block .source-textarea,
.compare-block .block-textarea {
  width: calc(100% + 2px);
  max-width: none;
  margin-left: -1px;
  border-radius: 0;
}
.compare-block .source-textarea {
  flex: 1 1 auto;
  margin-bottom: -1px;
  border-radius: 0 0 10px 10px;
}
.compare-block .block-actions { padding: 0 12px 12px; }
.compare-block .source-textarea:focus,
.compare-block .block-textarea:focus {
  position: relative;
  z-index: 2;
  border-color: #aaa1ff;
  border-radius: 0 0 9px 9px;
  outline: 0;
  box-shadow: 0 0 0 1px rgba(102,86,238,.10), 0 0 4px rgba(102,86,238,.08);
}
.compare-row .compare-block:has(> textarea:focus) {
  overflow: visible;
}
/* 文案页左右编辑框最终字号：覆盖全站输入框 16px 基准。 */
.compare-row .compare-block textarea.source-textarea,
.compare-row .compare-block textarea.block-textarea {
  font-size: 14px !important;
}
.compare-row .compare-block textarea.source-textarea::placeholder,
.compare-row .compare-block textarea.block-textarea::placeholder {
  font-size: 14px;
}
.compare-row .compare-block textarea.block-textarea::placeholder {
  color: #b7bdc8;
  opacity: 1;
}
/* 左侧输入框铺满等高外框并与三边重合；右侧标题框沿用开头3秒的原生拖动机制。 */
.compare-row-title .compare-block textarea.source-textarea {
  flex: 1 1 auto;
  height: auto;
  min-height: 64px;
  max-height: none;
  overflow-y: auto;
  resize: vertical;
}
.compare-row-title .compare-block textarea.block-textarea {
  flex: 1 1 auto;
}
.compare-row-title .compare-block .block-actions {
  flex: 0 0 auto;
}
.benchmark-evidence.compact .benchmark-evidence-source > span {
  color: var(--text);
  font-size: 16px !important;
  font-weight: 700;
}
.benchmark-evidence.compact .benchmark-evidence-source > a,
.benchmark-evidence.compact .benchmark-evidence-source > strong {
  font-size: 14px !important;
}

/* 辅助文字不得再缩到 8–10px，Chrome 与搜狗保持同一可读基准。 */
.muted,
.hint,
.topic-toolbar .muted,
.admin-panel-head p:not(.eyebrow),
.admin-panel-head > span,
.admin-form-actions,
.admin-stat-grid span,
.review-summary-grid span,
.review-summary-grid small,
.review-list-section > header p,
.review-list-section > header > strong {
  font-size: 14px !important;
  line-height: 1.5;
}
.eyebrow,
.field-save-status,
.review-list-section > header span,
.dashboard-section > header p { font-size: 12px !important; }

/* 工作台任务字号与垂直节奏统一。 */
.dashboard-section > header { min-height: 72px; padding: 13px 16px; }
.dashboard-section > header h2 { font-size: 18px; }
.dashboard-task { min-height: 112px; padding-top: 13px; padding-bottom: 13px; }
.dashboard-task-tags,
.dashboard-task-main > small,
.dashboard-task-main > p,
.dashboard-task-date > span { font-size: 14px !important; }
.dashboard-task-main > strong,
.dashboard-task-date > strong { font-size: 16px !important; }

/* 数据列表：表头、正文和行高采用统一规格。 */
.inspiration-table th,
.asset-list-header,
.admin-table th,
.ste-table th { font-size: 12px !important; }
.inspiration-table td,
.admin-table td,
.ste-table td { font-size: 14px !important; }
.inspiration-table th { height:36px; padding:8px 10px; vertical-align:middle; }
.inspiration-table td { height:44px; padding:8px 10px; vertical-align:middle; }
.inspiration-table-shell {
  min-width: 0;
  max-width: 100%;
  overflow: clip;
}
.inspiration-table-wrap {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}
.asset-list-header { padding: 12px 16px; }
.asset-list-row { min-height: 98px; }
.asset-list-title strong,
.asset-benchmark-title a,
.asset-benchmark-title strong { font-size: 16px !important; }
.asset-list-title span,
.asset-list-date span,
.asset-list-summary p,
.asset-list-date strong,
.asset-list-metric,
.asset-benchmark-toggle,
.asset-benchmark-title small,
.asset-benchmark-summary,
.asset-benchmark-relation,
.asset-metrics-zone > i { font-size: 14px !important; }

/* 复盘与后台保持同一信息层级。 */
.review-list-title strong,
.review-list-metric strong { font-size: 16px; }
.review-list-title span,
.review-list-metric span,
.review-list-insight p { font-size: 14px; }
.review-section-empty { font-size: 14px; }
.admin-toolbar { min-height: 56px; padding: 10px 12px; }
.admin-panel-head { padding: 18px; }
.admin-panel-head h2 { font-size: 18px; }

/* 全站数据为空时的默认提示统一为 14px。 */
.empty-state,
.topic-empty,
.rail-empty,
.diagnosis-module-empty strong,
.diagnosis-module-empty span,
.prod-video-audio-empty,
.publish-accounts__empty-title,
.publish-accounts__empty-hint,
.lifecycle-column-empty,
.topic-progress-empty,
.schedule-pool-empty,
.review-section-empty,
.asset-section-empty,
.reuse-history-empty,
.dashboard-empty,
.admin-empty {
  font-size: 14px !important;
}

@media (max-width: 1200px) {
  :root { --ui-page-gutter: 14px; }
}

/* 桌面浏览器宽度让位链 1/5：先回收大块冗余留白；不改变移动端布局。 */
@media (min-width: 821px) and (max-width: 1500px) {
  :root {
    --ui-space: 12px;
    --ui-horizontal-gap: 8px;
    --ui-panel-gap: 8px;
  }
  .main-area { padding-left:10px; }
  .studio-layout { grid-template-columns:240px minmax(0,1fr); gap:8px; }
  .topic-library-layout { grid-template-columns:280px minmax(0,1fr); gap:8px; }
}

/* 桌面浏览器宽度让位链 2/5：冗余留白用尽后，再折叠主导航。 */
@media (min-width: 761px) and (max-width: 1450px) {
  .app-shell { grid-template-columns:41px minmax(0,1fr); }
  .sidebar { padding:18px 8px 14px; }
  .brand { justify-content:center; padding:0 0 22px; }
  .brand-copy { display:none; }
  .nav-item,
  .product-intro-nav { width:calc(100% - 4px); margin-inline:2px; justify-content:center; gap:0; min-height:42px; padding:10px 8px; text-align:center; }
  .nav-item > span:first-child,
  .product-intro-nav > span:first-child { width:22px; }
  .nav-item > span:not(:first-child),
  .product-intro-nav > span:not(:first-child) { display:none; }
  .nav-item.requires-login::after { right:3px; top:7px; transform:none; }
  .sidebar-version { display:flex; align-items:center; justify-content:center; padding:8px; }
  .sidebar-version-mark { grid-row:auto; }
  .sidebar-version-meta,
  .sidebar-version-link { display:none; }

}

/* 桌面浏览器宽度让位链 3/5：主导航已折叠后，再把创作选题列表改为抽屉。 */
@media (max-width: 1370px) {
  .studio-layout { position:relative; grid-template-columns:minmax(0,1fr); gap:10px; }
  .studio-rail-toggle {
    position:absolute; z-index:71; top:-53px; left:-14px;
    display:inline-flex; align-items:center; justify-content:center;
    width:21.77px; height:28px; min-height:28px; padding:0; border:0;
    border-radius:6px; color:#5145c9; background:transparent; box-shadow:none;
    font-size:0; cursor:pointer; user-select:none;
  }
  .studio-rail-toggle:hover { color:var(--brand); background:rgba(102,88,232,.08); }
  .studio-rail-toggle > span,
  .studio-rail-toggle > strong { display:none; }
  .studio-rail-toggle::before { content:"☰"; position:absolute; top:2px; left:2px; display:grid; place-items:center; width:13.33px; height:24px; font-size:14px; line-height:1; transform:scaleX(1.333); transform-origin:left center; }
  .studio-rail-switch:checked + .studio-rail-toggle::before { content:"«"; top:calc(50% - 4px); left:-3px; font-family:"Segoe UI Light","Segoe UI Symbol",sans-serif; font-size:17px; font-weight:300; transform:translateY(-50%) scale(1.6,2); transform-origin:left center; }
  .studio-rail-backdrop {
    position:fixed; z-index:69; top:0; right:0; bottom:0; left:41px; display:block; visibility:hidden;
    background:rgba(21,25,36,.25); opacity:0; cursor:pointer;
    transition:opacity .18s ease, visibility .18s ease;
  }
  .studio-layout > .content-rail {
    position:fixed; z-index:70; top:0; bottom:0; left:41px;
    width:min(320px,calc(100vw - 41px)); max-width:min(320px,calc(100vw - 41px)); max-height:100vh;
    border-radius:0;
    overflow-x:hidden; overflow-y:auto; visibility:hidden; clip-path:inset(0 100% 0 0);
    box-shadow:0 18px 52px rgba(20,24,35,.22);
    transition:clip-path .2s ease, visibility .2s ease;
  }
  .studio-rail-switch:checked ~ .studio-rail-backdrop { visibility:visible; opacity:1; }
  .studio-rail-switch:checked ~ .content-rail { visibility:visible; clip-path:inset(0); }
  .workbench { min-width:0; }
}

/* 笔记本折叠导航：41px 常驻，悬停后以覆盖式抽屉展开，不挤压正文。 */
@media (min-width: 761px) and (max-width: 1450px) {
  .studio-rail-toggle {
    position: fixed;
    top: 43px;
    left: 41px;
  }
  .sidebar {
    position: sticky;
    top: 0;
    align-self: start;
    height: 100vh;
    z-index: 60;
    width: 41px;
    overflow: visible;
    padding: 18px 4px 14px;
    box-shadow: none;
    transition: width .18s ease, box-shadow .18s ease;
  }
  .sidebar::after {
    display:none;
  }
  .sidebar:hover {
    z-index: 72;
    width: 116px;
    box-shadow: none;
  }
  .sidebar:hover::after { opacity:0; }
  .sidebar .brand-mark { position:absolute; top:0; left:4px; width:26px; height:26px; flex:none; border-radius:8px; font-size:14px; }
  .sidebar .brand,
  .sidebar:hover .brand { position:relative; justify-content:flex-start; height:48px; min-height:48px; flex:0 0 48px; gap:0; padding-left:36px; }
  .sidebar:hover .brand-copy { display:grid; align-content:center; gap:2px; height:26px; }
  .sidebar:hover .brand-copy strong { font-size:13px; line-height:1; white-space:nowrap; }
  .sidebar:hover .brand-copy small { font-size:9px; line-height:1; white-space:nowrap; }
  .sidebar .nav-item,
  .sidebar .product-intro-nav,
  .sidebar:hover .nav-item,
  .sidebar:hover .product-intro-nav {
    position: relative;
    justify-content: flex-start;
    gap: 0;
    min-height: 42px;
    padding: 10px 8px 10px 31px;
    text-align: left;
  }
  .sidebar .nav-item > span:first-child,
  .sidebar .product-intro-nav > span:first-child,
  .sidebar:hover .nav-item > span:first-child,
  .sidebar:hover .product-intro-nav > span:first-child {
    position:absolute;
    top:10px;
    left:10px;
    width:14px;
    flex:none;
    transform:none;
  }
  .sidebar:hover .nav-item > span:not(:first-child),
  .sidebar:hover .product-intro-nav > span:not(:first-child) { display: inline; white-space: nowrap; }
  .sidebar:hover .nav-item.requires-login::after { right: 7px; top: 50%; transform: translateY(-50%); }
  /* 选题列表展开时保留纯图标窄栏，以名称浮层代替导航抽屉展开。 */
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover { z-index:60; width:41px; }
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover::after { opacity:0; }
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .brand-copy { display:none; }
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .nav-item > span:not(:first-child),
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .product-intro-nav > span:not(:first-child) { display:none; }
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .nav-item.requires-login::after { right:3px; top:7px; transform:none; }
  .sidebar:not(:hover) .nav-item > span:first-child,
  .sidebar:not(:hover) .product-intro-nav > span:first-child,
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .nav-item > span:first-child,
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .product-intro-nav > span:first-child {
    left:calc(50% - 1px);
    transform:translateX(-50%);
  }
  .sidebar:not(:hover) .nav-item,
  .sidebar:not(:hover) .product-intro-nav,
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .nav-item,
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .product-intro-nav {
    width:29px;
    margin-inline:auto;
    min-width:0;
    padding:10px 0;
  }
  .sidebar:hover .nav-item,
  .sidebar:hover .product-intro-nav {
    width:calc(100% - 4px);
    margin-inline:2px;
    padding:10px 8px 10px 31px;
  }
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .nav-item,
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .product-intro-nav {
    width:29px;
    margin-inline:auto;
    min-width:0;
    padding:10px 0;
  }
  .sidebar:not(:hover) .nav-item.active,
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .nav-item.active {
    background:transparent;
  }
  .sidebar:not(:hover) .nav-item.active::before,
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .nav-item.active::before {
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    z-index:0;
    width:35px;
    height:42px;
    border-radius:9px;
    background:rgba(129,117,255,.2);
    transform:translate(-50%,-50%);
  }
  .sidebar:not(:hover) .nav-item.active > span,
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .nav-item.active > span {
    z-index:1;
  }
}

@media (max-width: 760px) {
  .app-shell { display:block; }
  .sidebar { position:sticky; z-index:20; height:auto; top:0; flex-direction:row; align-items:center; padding:9px 12px; }
  .brand { padding:0; margin-right:8px; }
  .brand-mark { width:32px; height:32px; }
  .main-nav { display:flex; flex:1; overflow-x:auto; }
  .sidebar-footer { margin-top:0; display:flex; }
  .nav-item, .product-intro-nav { width:auto; padding:8px 10px; }
  .sidebar-version { display:none; }
  .main-area { padding-left:14px; padding-right:var(--ui-page-right-gutter, 5px); }
  .studio-rail-backdrop,
  .topic-rail-backdrop { left:52px; }
  .topic-library-layout > .topic-list { left:52px; width:calc(100vw - 52px); max-width:calc(100vw - 52px); }
  .studio-layout > .content-rail { left:52px; width:0; max-width:calc(100vw - 52px); }
  .studio-rail-switch:checked ~ .content-rail { width:calc(100vw - 52px); }
}

/* Creator OS 当前只提供电脑版：继续缩窄时仍保留竖向窄导航，并由页面底部水平滚动承接。 */
@media (max-width: 760px) {
  html { overflow-x:visible; }
  html::-webkit-scrollbar:horizontal,
  body::-webkit-scrollbar:horizontal { display:none; height:0 !important; }
  .app-shell { display:grid; grid-template-columns:41px minmax(0,1fr); }
  .sidebar {
    position:sticky; z-index:60; top:0; left:0; align-self:start;
    width:41px; height:100vh; flex-direction:column; align-items:stretch;
    overflow:visible; padding:18px 4px 14px;
  }
  .brand {
    position:relative; height:48px; min-height:48px; flex:0 0 48px;
    justify-content:flex-start; margin-right:0; padding:0 0 0 36px;
  }
  .brand-mark { position:absolute; top:0; left:4px; width:26px; height:26px; border-radius:8px; font-size:14px; }
  .brand-copy { display:none; }
  .main-nav { display:grid; flex:none; overflow:visible; }
  .sidebar-footer { margin-top:auto; display:grid; }
  .nav-item,
  .product-intro-nav {
    position:relative; width:29px; min-width:0; min-height:42px;
    margin-inline:auto; justify-content:flex-start; padding:10px 0;
  }
  .nav-item > span:first-child,
  .product-intro-nav > span:first-child {
    position:absolute; top:10px; left:calc(50% - 1px); width:14px;
    transform:translateX(-50%);
  }
  .nav-item > span:not(:first-child),
  .product-intro-nav > span:not(:first-child) { display:none; }
  .sidebar-version { display:flex; align-items:center; justify-content:center; padding:8px; }
  .topic-rail-toggle { left:41px; }
  .topic-rail-backdrop { left:41px; }
  .topic-library-layout > .topic-list {
    left:41px; width:min(320px,calc(100vw - 41px)); max-width:min(320px,calc(100vw - 41px));
  }
  .studio-rail-toggle { position:fixed; top:43px; left:41px; }
  .studio-rail-backdrop { left:41px; }
  .studio-layout > .content-rail,
  .studio-rail-switch:checked ~ .content-rail {
    left:41px; width:min(320px,calc(100vw - 41px)); max-width:min(320px,calc(100vw - 41px));
  }
  .sidebar:hover { z-index:72; width:116px; box-shadow:none; }
  .sidebar:hover .brand-copy { display:grid; align-content:center; gap:2px; height:26px; }
  .sidebar:hover .brand-copy strong { font-size:13px; line-height:1; white-space:nowrap; }
  .sidebar:hover .brand-copy small { font-size:9px; line-height:1; white-space:nowrap; }
  .sidebar:hover .nav-item > span:not(:first-child),
  .sidebar:hover .product-intro-nav > span:not(:first-child) { display:inline; white-space:nowrap; }
  .sidebar:hover .nav-item,
  .sidebar:hover .product-intro-nav { width:calc(100% - 4px); margin-inline:2px; padding:10px 8px 10px 31px; }
  .sidebar:hover .nav-item > span:first-child,
  .sidebar:hover .product-intro-nav > span:first-child { left:10px; transform:none; }
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover { z-index:60; width:41px; }
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .brand-copy { display:none; }
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .nav-item > span:not(:first-child),
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .product-intro-nav > span:not(:first-child) { display:none; }
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .nav-item,
  body:has(:is(#studioView.active #studioRailSwitch:checked, #topicsView.active #topicRailSwitch:checked)) .sidebar:hover .product-intro-nav { width:29px; margin-inline:auto; padding:10px 0; }
}

/* 只有低于 640px 的极窄电脑版才锁定 760px 工作区并启用固定水平滚动。 */
@media (max-width: 640px) {
  html { overflow-x:hidden; }
  .app-shell { min-width:760px; grid-template-columns:41px minmax(719px,1fr); }
  .desktop-horizontal-scroll {
    position:fixed; z-index:95; right:0; bottom:0; left:41px;
    display:block; height:14px; overflow-x:scroll; overflow-y:hidden;
    border-top:1px solid #d9dde7; background:#f4f5f8;
    scrollbar-color:#8b8f98 #e6e8ed; scrollbar-width:auto;
  }
  .desktop-horizontal-scroll::-webkit-scrollbar { height:13px; }
  .desktop-horizontal-scroll::-webkit-scrollbar-track { background:#e6e8ed; }
  .desktop-horizontal-scroll::-webkit-scrollbar-thumb { min-width:48px; border:2px solid #e6e8ed; border-radius:999px; background:#8b8f98; }
  .desktop-horizontal-scroll::-webkit-scrollbar-thumb:hover { background:#6f747d; }
  .desktop-horizontal-scroll-spacer { height:1px; }

  /* 灵感页只滚动数据列，右侧操作列始终留在当前视口。 */
  html:has(#inspirationView.active) { overflow-x:hidden; }
  .app-shell:has(#inspirationView.active) {
    min-width:0;
    grid-template-columns:41px minmax(0,1fr);
  }
  body:has(#inspirationView.active) > .desktop-horizontal-scroll { display:none !important; }
  #inspirationView.active,
  #inspirationView.active .inspiration-board,
  #inspirationView.active .inspiration-table-shell,
  #inspirationView.active .inspiration-table-main { min-width:0; max-width:100%; }
}

/* 生产排期达到双栏最小宽度后立即启用底部横向承接，不等待全站 640px 阈值。 */
@media (max-width: 820px) {
  html.is-desktop-client #scheduleView .production-planner {
    min-width:884px;
    grid-template-columns:280px minmax(590px,1fr);
    overflow:visible;
  }
  html.is-desktop-client #scheduleView .schedule-pool { position:sticky; }
  html.is-desktop-client #scheduleView .schedule-pool-list { max-height:calc(100vh - 270px); }
  html.is-desktop-client:has(#scheduleView.active):has(.desktop-horizontal-scroll.has-overflow) { overflow-x:hidden; }
  html.is-desktop-client:has(#scheduleView.active) .desktop-horizontal-scroll.has-overflow {
    position:fixed; z-index:95; right:0; bottom:0; left:41px;
    display:block; height:14px; overflow-x:scroll; overflow-y:hidden;
    border-top:1px solid #d9dde7; background:#f4f5f8;
    scrollbar-color:#8b8f98 #e6e8ed; scrollbar-width:auto;
  }
  html.is-desktop-client:has(#scheduleView.active) .desktop-horizontal-scroll.has-overflow::-webkit-scrollbar { height:13px; }
  html.is-desktop-client:has(#scheduleView.active) .desktop-horizontal-scroll.has-overflow::-webkit-scrollbar-track { background:#e6e8ed; }
  html.is-desktop-client:has(#scheduleView.active) .desktop-horizontal-scroll.has-overflow::-webkit-scrollbar-thumb { min-width:48px; border:2px solid #e6e8ed; border-radius:999px; background:#8b8f98; }
  html.is-desktop-client:has(#scheduleView.active) .desktop-horizontal-scroll.has-overflow::-webkit-scrollbar-thumb:hover { background:#6f747d; }
  html.is-desktop-client:has(#scheduleView.active) .desktop-horizontal-scroll-spacer { height:1px; }
}

@media (max-width: 760px) {
  :root { --ui-page-gutter: 14px; --ui-space: 12px; }
  .topbar { min-height: 96px; }
  .topbar h1, .view-intro h2 { font-size: 22px; }
}

/* 工作台决策层：只突出下一步动作和真正需要人工介入的问题。 */
.dashboard-focus-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(360px, 1fr);
  gap: 16px;
  margin-bottom: 0;
}
.dashboard-focus-card {
  position: relative;
  display: flex;
  padding: 13px 16px;
  border: 1px solid #d9d4ff;
  border-radius: 14px;
  background: linear-gradient(125deg, #f4f1ff 0%, #fff 68%);
  box-shadow: var(--shadow);
}
.dashboard-focus-card.solo { grid-column: 1 / -1; }
.dashboard-focus-card.clear { border-color: #d8e8df; background: linear-gradient(125deg, #eff9f3, #fff 68%); }
.dashboard-focus-copy { min-width: 0; width: 100%; flex: 1 1 auto; display: flex; flex-direction: column; gap: 8px; }
.dashboard-focus-heading p,
.dashboard-alert-card header p { margin: 0; color: var(--brand); font-size: 12px !important; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.dashboard-focus-heading-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-top: 2px; }
.dashboard-focus-heading h2 { margin: 0; font-size: 18px; line-height: 1.35; }
.dashboard-focus-reason { color: #6658e8; font-size: 14px; font-weight: 600; }
.dashboard-focus-reason.is-overdue { color: transparent; background: linear-gradient(90deg, #ff6b6b 0%, #d63a3a 100%); -webkit-background-clip: text; background-clip: text; }
.dashboard-focus-title { overflow: hidden; display: -webkit-box; margin: 1px 0 3px; font-size: 22px; line-height: 1.4; text-overflow: ellipsis; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.dashboard-focus-footer { margin-top: 0; padding-right: 112px; }
.dashboard-focus-meta { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; color: var(--muted); font-size: 14px; }
.dashboard-focus-meta b { padding: 4px 9px; border-radius: 999px; color: var(--brand); background: #e8e4ff; font-size: 12px; }
.dashboard-focus-action { position: absolute; right: 16px; bottom: 13px; }
.dashboard-alert-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #eadfd5;
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--shadow);
}
.dashboard-alert-card > header { min-height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 16px; border-bottom: 1px solid var(--line); background: linear-gradient(90deg, rgba(196,123,49,.10), #fff 58%); }
.dashboard-alert-card header h2 { margin: 2px 0 0; font-size: 18px; }
.dashboard-alert-card > header > span { color: var(--muted); font-size: 12px; }
.dashboard-alert-card > div { display: grid; }
.dashboard-alert-item {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: 92px max-content 1fr;
  align-items: center;
  column-gap: clamp(5px, .7vw, 10px);
  min-height: 56px;
  padding: 10px 16px;
  border: 0;
  border-bottom: 1px solid var(--line);
  color: inherit;
  background: #fff;
  text-decoration: none;
  text-align: left;
  cursor: pointer;
}
.dashboard-alert-item:last-child { border-bottom: 0; }
.dashboard-alert-item:hover { background: rgba(196,123,49,.025); }
.dashboard-alert-item > span { width: max-content; padding: 4px 7px; border-radius: 999px; font-size: 12px; }
.dashboard-alert-item.danger > span { color: var(--red); background: var(--red-soft); }
.dashboard-alert-item.warning > span { color: #a16413; background: #fff0cf; }
.dashboard-alert-item strong { min-width:max-content; overflow:visible; font-size:14px; text-overflow:clip; white-space:nowrap; }
.dashboard-alert-item i { justify-self: end; color: var(--brand); font-size: 12px; font-style: normal; white-space: nowrap; }

.dashboard-sections-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 16px;
}
.dashboard-section-column {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 16px;
}
.dashboard-sections-grid .dashboard-section { min-width: 0; }
.dashboard-sections-grid .dashboard-section > header { flex-wrap: nowrap; column-gap: 5px; padding-left: 10px; }
.dashboard-sections-grid .dashboard-section-tabs button { padding-right: 8px; padding-left: 8px; }
.dashboard-sections-grid .dashboard-task { grid-template-columns: 34px minmax(0, 1fr) minmax(92px, max-content); }
.dashboard-sections-grid .dashboard-task-date { grid-column: 3; grid-row: 1; width: 100%; min-width: 92px; align-self: stretch; justify-self: stretch; display: grid; align-content: center; justify-content: stretch; justify-items: end; gap: 3px; border-left: 1px solid var(--line); padding-left: 10px; text-align: right; white-space: nowrap; }
.dashboard-sections-grid .dashboard-drag-handle { margin-left: 0; }
.dashboard-sections-grid.is-single-column { grid-template-columns: 1fr; }
.dashboard-sections-grid.is-single-column .dashboard-section-column { display: contents; }
.dashboard-sections-grid.is-single-column .dashboard-section[data-dashboard-section="today"] { order: 1; }
.dashboard-sections-grid.is-single-column .dashboard-section[data-dashboard-section="overdue"] { order: 2; }
.dashboard-sections-grid.is-single-column .dashboard-section[data-dashboard-section="upcoming"] { order: 3; }

@media (max-width: 900px) {
  .dashboard-focus-grid { grid-template-columns: 1fr; }
  .dashboard-focus-card.solo { grid-column: auto; }
  .dashboard-alert-card { min-width:0; }
}

@media (max-width: 520px) {
  .dashboard-alert-item { grid-template-columns:1fr auto; }
  .dashboard-alert-item > span { grid-column:1 / -1; }
}

/* 灵感池表格严格收口为：表头/标签 12px，正文 14px。 */
.inspiration-table th { font-size: 12px !important; font-weight: 600; }
.inspiration-table td,
.inspiration-table .source-metric,
.inspiration-table .source-age-cell { font-size: 14px !important; }
.inspiration-table .source-title-cell a,
.inspiration-table .source-title-cell button:not(.source-field-retry) {
  font-size: 14px !important;
  font-weight: 700;
}
.inspiration-table .source-platform,
.inspiration-table .sync-status,
.inspiration-table .current-stage-status,
.inspiration-table .source-copy-preview,
.inspiration-table .source-copy-button,
.inspiration-table .note-cell,
.inspiration-table .inspiration-row-actions button,
.inspiration-actions-table .inspiration-row-actions button,
.inspiration-table .table-link {
  font-size: 12px !important;
  line-height: 1.4;
}
.inspiration-table th:nth-child(n+4):nth-child(-n+10),
.inspiration-table td:nth-child(n+4):nth-child(-n+10),
.inspiration-table .source-metric,
.inspiration-table .source-age-cell {
  font-size: 12px !important;
}

/* 拍剪排期日期必须压过全站表单的 16px 基线。 */
.schedule-top .milestone-inline .milestone-date-text {
  font-size: 12px !important;
  height: 32px !important;
  min-height: 32px !important;
  max-height: 32px !important;
  padding: 3px 30px 3px 6px !important;
  resize: none !important;
  overflow: hidden;
}

/* 选题库沿用全站字号层级：标题 16/20px、正文与控件 14px、辅助信息 12px。 */
#topicsView,
#topicsView button,
#topicsView input,
#topicsView textarea,
#topicsView select {
  font-family: var(--ui-font);
}

#topicsView button,
#topicsView input,
#topicsView textarea,
#topicsView select,
#topicsView .topic-empty {
  font-size: 14px !important;
  line-height: 1.5;
}

#topicsView .field > span,
#topicsView .field-label {
  font-size: 14px !important;
  line-height: 1.45;
  font-weight: 600;
}

#topicsView .topic-list-item strong,
#topicsView .topic-table-title,
#topicsView .benchmark-evidence-source a,
#topicsView .benchmark-evidence-source strong,
#topicsView .benchmark-metric-strip strong {
  font-size: 14px !important;
}

#topicsView .evaluation-mode-row strong {
  font-size: 16px !important;
  line-height: 1.4;
}

#topicsView .topic-list-item > span,
#topicsView .topic-workspace-head p,
#topicsView .evaluation-mode-row p,
#topicsView .topic-status-pill,
#topicsView .workflow-badge,
#topicsView .benchmark-evidence-source > span,
#topicsView .benchmark-metric-strip span,
#topicsView .topic-table th,
#topicsView .topic-table td:first-child small {
  font-size: 12px !important;
  line-height: 1.5;
}

#topicsView .topic-toolbar .muted,
#topicsView .topic-table td {
  font-size: 14px !important;
  line-height: 1.5;
}

#topicsView .topic-workspace-head h2 {
  margin: 4px 0 0;
  font-size: 20px;
  line-height: 1.4;
}

#topicsView .topic-workspace-meta {
  min-width: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

#topicsView .topic-workspace-meta p { margin: 0; }

#topicsView .topic-workspace-meta .topic-status-pill {
  padding: 2px 8px;
  line-height: 1.35;
}

#topicsView .topic-workspace-head > .workflow-badge {
  align-self: flex-start;
  padding: 2px 8px;
  line-height: 1.35;
  white-space: nowrap;
}

#topicsView .topic-definition .topic-two-columns textarea {
  box-sizing: border-box;
  height: 86px;
  min-height: 86px;
  resize: vertical;
}

#topicsView .topic-definition .topic-two-columns {
  align-items: start;
}

#topicsView .topic-definition .topic-two-columns .field {
  grid-template-rows: 20px auto;
  align-content: start;
  gap: 8px;
  margin-bottom: 0;
}

#topicsView .topic-definition .topic-two-columns .field > span {
  display: flex;
  align-items: center;
  height: 20px;
  line-height: 20px;
}

#topicsView .topic-evaluation-grid {
  align-items: start;
}

#topicsView .topic-evaluation-grid .field {
  grid-template-rows: 20px auto;
  align-content: start;
  gap: 8px;
  margin-bottom: 0;
}

#topicsView .topic-evaluation-grid .field > span {
  display: flex;
  align-items: center;
  height: 20px;
  line-height: 20px;
}

#topicsView .topic-evaluation-grid textarea {
  box-sizing: border-box;
  height: 86px;
  min-height: 86px;
  resize: vertical;
}

#topicsView .topic-list-item > span {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 64px 64px;
  align-items: center;
  gap: 8px;
}

#topicsView .topic-list-item > span i {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#topicsView .topic-list-item > span i:nth-child(2) {
  text-align: left;
}

#topicsView .topic-list-item > span i:nth-child(3) {
  text-align: right;
}

/* 生产日历日期使用常规字重，月份标题也不再加粗。 */
.production-calendar .calendar-toolbar h3 {
  font-size:14px;
  font-weight:400;
  white-space:nowrap;
}

.production-calendar .production-day > header strong {
  font-size: 12px;
  font-weight: 400;
}

.production-calendar .production-day > header strong .month-tag,
.production-calendar .production-day > header strong b {
  font-size: 12px;
  font-weight: 400;
}

/* 生产排期页灰色辅助信息统一为 12px。 */
#scheduleView .legend,
#scheduleView .operational-schedule-pool > header small,
#scheduleView .operational-type-card small,
#scheduleView .content-schedule-pool > header small,
#scheduleView .content-schedule-pool > header > span,
#scheduleView .schedule-pool-head > small,
#scheduleView .schedule-pool-help,
#scheduleView .schedule-pool-title small,
#scheduleView .schedule-shell-actions > span,
#scheduleView .calendar-notice,
#scheduleView .calendar-weekdays span,
#scheduleView .calendar-extension-zone small,
#scheduleView .lifecycle-board-shell > header > span,
#scheduleView .topic-progress-shell > header > span,
#scheduleView .schedule-completed-shell > header > span,
#scheduleView .schedule-completed-summary span,
#scheduleView .schedule-completed-date,
#scheduleView .schedule-completed-copy small,
#scheduleView .topic-progress-card > header span,
#scheduleView .topic-progress-card > header small {
  font-size: 12px !important;
  line-height: 1.5;
}

#scheduleView .calendar-weekdays span {
  color: #111827;
  font-family: "Microsoft YaHei", "Microsoft YaHei UI", sans-serif;
  font-weight: 700 !important;
  -webkit-text-stroke: 0;
}

#scheduleView .calendar-weekdays span:nth-child(-n+3) {
  font-weight: 900 !important;
  -webkit-text-stroke: .4px currentColor;
}
.schedule-top .milestone-date-control { position: relative; display: block; height: 32px; }
.schedule-top .milestone-inline .milestone-date-picker {
  position: absolute !important;
  right: 8px;
  bottom: 0;
  width: 1px !important;
  height: 1px !important;
  min-height: 1px !important;
  max-height: 1px !important;
  padding: 0 !important;
  border: 0 !important;
  opacity: 0;
  pointer-events: none;
}
.schedule-top .milestone-date-picker-button {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: 5px;
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  transform: translateY(-50%);
  border: 0;
  padding: 0;
  color: #252b35;
  background: transparent;
  cursor: pointer;
}
.schedule-top .milestone-date-picker-button svg {
  width: 12px;
  height: 12px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ===== 拍剪 · 拍摄清单 两栏布局：左=最终文案 右=检查项 ===== */
.prod-shoot-grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: 16px;
  align-items: stretch;
}
.prod-shoot-col-left {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.prod-shoot-col-right {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.prod-shoot-checklist-title {
  min-height:32px;
  margin-bottom:10px;
}
.prod-shoot-checklist-section {
  width:100%;
}
.prod-edit-checklist-section { margin-top:0; }
.prod-shoot-checklist-section > .prod-checklist {
  margin-top:0;
}
.prod-shoot-col-left .ps-section {
  flex: 1;
}
.prod-shoot-col-left .prod-final-script {
  min-height: 340px;
  max-height: 560px;
}
.prod-shoot-script-count,
.prod-shoot-script-save {
  font-size: 12px;
  font-weight: 400;
  color: var(--muted, #6f7887);
}
.prod-shoot-script-save {
  color: #1a7f43;
  margin-left: 16px;
}
.prod-shoot-script-save.saving {
  color: #1a7f43;
}
.prod-shoot-grid.is-single-column {
  grid-template-columns: minmax(0, 1fr);
}
.prod-shoot-grid.is-single-column .prod-shoot-col-left,
.prod-shoot-grid.is-single-column .prod-shoot-col-right {
  width: 100%;
}
@media (max-width: 1080px) {
  .prod-shoot-col-left,
  .prod-shoot-col-right {
    width: 100%;
  }
  .prod-shoot-col-left .prod-final-script {
    min-height: 220px;
    max-height: 380px;
  }
}

/* ===== 标题封面 · 轻语风格 ===== */
.pcov-container {
  display: flex;
  gap: 16px;
  align-items: stretch;
  min-height: 680px;
}

.pcov-left {
  flex: 1.3;
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 12px;
  overflow: hidden;
}

.pcov-right {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 12px;
  overflow: hidden;
}

/* 发布标题输入行 */
.pcov-title-input-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border, #e2e8f0);
  background: var(--bg-subtle, #f8fafc);
}

.pcov-title-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink, #333);
  white-space: nowrap;
}

.pcov-title-input {
  flex: 1;
  height: 34px;
  padding: 0 12px;
  font-size: 13px;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 8px;
  background: var(--bg-surface, #fff);
  color: var(--ink, #333);
  outline: none;
  transition: border-color .15s;
}

.pcov-title-input:focus {
  border-color: var(--primary, #5b6abf);
  box-shadow: 0 0 0 2px rgba(91, 106, 191, 0.15);
}

/* 主内容区 */
.pcov-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 16px;
  gap: 14px;
}

/* 预览面板 */
.pcov-preview-panel {
  flex: 1;
  display: flex;
  flex-direction: column;
  background: var(--bg-subtle, #f8fafc);
  border-radius: 10px;
  overflow: hidden;
}

.pcov-preview-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border, #e2e8f0);
}

.pcov-preview-title-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink, #333);
}

.pcov-preview-size-label {
  font-size: 12px;
  color: var(--muted, #6f7887);
}

.pcov-preview {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  margin: 16px auto;
  width: 270px;
  height: 360px;
  border-radius: 10px;
  transition: all 0.25s ease;
  box-shadow: 0 4px 20px rgba(0,0,0,0.12);
}

.pcov-preview-title {
  font-size: 20px;
  font-weight: 700;
  text-align: center;
  padding: 0 16px;
  line-height: 1.4;
  cursor: pointer;
}

.pcov-preview-footer {
  padding: 8px 14px;
  font-size: 12px;
  color: var(--muted, #6f7887);
  text-align: center;
  border-top: 1px solid var(--border, #e2e8f0);
}

/* 上传封面图片 */
.pcov-cover-img {
  position: absolute;
  top: 0;
  left: 0;
  transform-origin: top left;
  user-select: none;
  pointer-events: auto;
  cursor: grab;
}
.pcov-cover-img.dragging {
  cursor: grabbing;
}

/* 缩放工具栏 */
.pcov-cover-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  background: var(--surface-2, #f7f8fa);
  border-top: 1px solid var(--border, #e2e8f0);
}
.pcov-zoom-btn {
  width: 28px;
  height: 28px;
  border: 1px solid var(--border, #d0d7de);
  background: #fff;
  border-radius: 6px;
  cursor: pointer;
  font-size: 16px;
  font-weight: 700;
  color: var(--text, #1f2328);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.pcov-zoom-btn:hover {
  background: var(--surface-hover, #f0f1f3);
}
.pcov-zoom-slider {
  flex: 1;
  height: 4px;
  -webkit-appearance: none;
  appearance: none;
  background: var(--border, #d0d7de);
  border-radius: 2px;
  outline: none;
  cursor: pointer;
}
.pcov-zoom-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--accent, #5b6abf);
  cursor: pointer;
  border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}
.pcov-zoom-slider::-moz-range-thumb {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--accent, #5b6abf);
  cursor: pointer;
  border: 2px solid #fff;
}
.pcov-zoom-label {
  font-size: 12px;
  color: var(--muted, #6f7887);
  min-width: 36px;
  text-align: right;
  flex-shrink: 0;
}
  background: var(--bg-surface, #fff);
}

/* 操作栏 */
.pcov-action-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  background: var(--bg-surface, #fff);
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 10px;
}

.pcov-action-left {
  display: flex;
  gap: 8px;
}

.pcov-action-right {
  display: flex;
}

/* 右侧 Tab */
.pcov-tabs {
  display: flex;
  border-bottom: 1px solid var(--border, #e2e8f0);
  background: var(--bg-subtle, #f8fafc);
}

.pcov-tab {
  flex: 1;
  padding: 12px 8px;
  font-size: 13px;
  font-weight: 500;
  text-align: center;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: all 0.15s ease;
  color: var(--muted, #6f7887);
}

.pcov-tab:hover {
  color: var(--text, #1a1a2e);
}

.pcov-tab.active {
  color: var(--primary, #5b6abf);
  border-bottom-color: var(--primary, #5b6abf);
  background: var(--bg-surface, #fff);
}

/* 模板网格 */
.pcov-tab-content {
  flex: 1;
  overflow-y: auto;
  padding: 14px;
}

.pcov-tpl-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.pcov-tpl-card {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  cursor: pointer;
  transition: transform 0.15s, box-shadow 0.15s;
  aspect-ratio: 3/4;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 2px solid transparent;
  padding: 8px;
}

.pcov-tpl-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.pcov-tpl-card.active {
  border-color: var(--primary, #5b6abf);
  box-shadow: 0 0 0 2px rgba(91,106,191,0.2), 0 4px 12px rgba(0,0,0,0.15);
}

/* 模板徽章（星标） */
.pcov-tpl-badge {
  position: absolute;
  top: 6px;
  left: 6px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(255,255,255,0.9);
  color: #ffa500;
  font-size: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

/* 选中对勾 */
.pcov-tpl-check-badge {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--primary, #5b6abf);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

/* 模板预览文字 */
.pcov-tpl-preview-text {
  font-size: 13px;
  font-weight: 600;
  text-align: center;
  padding: 0 6px;
  line-height: 1.3;
  z-index: 1;
}

/* 模板副标题 */
.pcov-tpl-sub {
  font-size: 12px;
  margin-top: 4px;
  opacity: 0.9;
  text-align: center;
  padding: 0 4px;
  z-index: 1;
}

/* 模板名称（底部标签） */
.pcov-tpl-name {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 5px 6px;
  font-size: 12px;
  text-align: center;
  background: rgba(0,0,0,0.45);
  color: #fff;
  backdrop-filter: blur(4px);
  z-index: 2;
}

/* 卡片框模板特殊样式 */
.pcov-tpl-card.pcov-tpl-card.active {
  border-color: var(--primary, #5b6abf);
}

/* 右侧装饰线（卡片框模板） */
.pcov-tpl-deco-right {
  position: absolute;
  right: 12px;
  top: 20%;
  width: 2px;
  height: 30%;
  background: var(--primary, #5b6abf);
  z-index: 1;
}

/* 渐变模板特殊样式 */
.pcov-tpl-gradient {
  position: relative;
}

.pcov-tpl-gradient::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.4) 100%);
  pointer-events: none;
}

/* 上传自定义封面 */
.pcov-tpl-upload {
  background: var(--bg-subtle, #f5f3ff) !important;
  border: 2px dashed #c3b9e8;
  color: var(--muted, #6f7887);
}

.pcov-tpl-upload:hover {
  border-color: var(--primary, #5b6abf);
  color: var(--primary, #5b6abf);
  background: var(--primary-soft, #eeecff) !important;
}

.pcov-tpl-plus {
  font-size: 32px;
  font-weight: 300;
  line-height: 1;
  color: var(--muted, #999);
}

.pcov-tpl-upload-label {
  font-size: 12px;
  text-align: center;
  margin-top: 6px;
  line-height: 1.3;
}

/* 其他Tab内容 */
.pcov-source-list,
.pcov-text-list,
.pcov-mask-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pcov-source-row {
  display: flex;
  gap: 10px;
  margin-bottom: 12px;
}

.pcov-source-item {
  flex: 1;
  padding: 14px 10px;
  border-radius: 10px;
  background: var(--bg-subtle, #f8fafc);
  cursor: pointer;
  text-align: center;
  transition: all 0.15s;
  border: 1px solid transparent;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.pcov-source-item:hover {
  background: var(--bg-surface, #fff);
  border-color: var(--border, #e2e8f0);
}

.pcov-source-item.active {
  background: var(--primary, #5b6abf);
  color: #fff;
  border-color: var(--primary, #5b6abf);
}

.pcov-source-icon {
  font-size: 22px;
}

.pcov-source-label {
  font-size: 12px;
  font-weight: 500;
}

.pcov-source-detail {
  min-height: 120px;
  padding: 12px;
  border-radius: 8px;
  background: var(--bg-subtle, #f8fafc);
  border: 1px dashed var(--border, #e2e8f0);
  font-size: 13px;
}

.pcov-source-hint {
  color: var(--muted, #6f7887);
  text-align: center;
  padding: 20px 0;
}

.pcov-source-detail-btns {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}

.pcov-source-video-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 200px;
  overflow-y: auto;
}

.pcov-source-video-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  border: 1px solid var(--border, #e2e8f0);
}

.pcov-source-video-item:hover {
  border-color: var(--primary, #5b6abf);
}

.pcov-source-video-thumb {
  width: 48px;
  height: 48px;
  border-radius: 4px;
  background: #000;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 20px;
}

.pcov-source-video-info {
  flex: 1;
  min-width: 0;
}

.pcov-source-video-name {
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pcov-source-video-meta {
  font-size: 12px;
  color: var(--muted, #6f7887);
}

.pcov-source-ai {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pcov-source-ai textarea {
  width: 100%;
  min-height: 60px;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 6px;
  padding: 8px 10px;
  font-size: 13px;
  resize: vertical;
  font-family: inherit;
}

.pcov-source-ai-status {
  font-size: 12px;
  color: var(--muted, #6f7887);
}

.pcov-text-item,
.pcov-mask-item {
  padding: 12px 14px;
  border-radius: 8px;
  background: var(--bg-subtle, #f8fafc);
  cursor: pointer;
  font-size: 13px;
  transition: all 0.15s;
  border: 1px solid transparent;
}

.pcov-text-item:hover,
.pcov-mask-item:hover {
  background: var(--bg-surface, #fff);
  border-color: var(--border, #e2e8f0);
}

.pcov-mask-item.active {
  background: var(--primary, #5b6abf);
  color: #fff;
  border-color: var(--primary, #5b6abf);
}

/* 响应式 */
@media (max-width: 1080px) {
  .pcov-container {
    flex-direction: column;
  }
  .pcov-tpl-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  .pcov-preview {
    width: 300px;
    height: 400px;
  }
}

@media (max-width: 640px) {
  .pcov-tpl-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .pcov-title-input-row {
    flex-wrap: wrap;
  }
  .pcov-preview {
    width: 225px;
    height: 300px;
  }
}


.milestone-inline .field.no-save-indicator {
  resize: none !important;
  height: 28px !important;
  min-height: 28px !important;
  max-height: 28px !important;
  overflow: hidden !important;
  margin-bottom: 0 !important;
  gap: 0 !important;
  display: block !important;
}
.milestone-inline .field.no-save-indicator input[type="date"] {
  display: block;
}

/* ===== 2026-08 全站字号与层级规则 ===== */
/* 字号底线已经在源码中完成审计：任何原先低于 12px 的声明均提升为 12px。 */
body,
button,
input,
textarea,
select { font-family: Inter, "Microsoft YaHei", "PingFang SC", system-ui, sans-serif; }

/* 页面头部：24 / 18 / 14；右上操作与定位语所在行对齐。 */
.topbar h1,
.view-intro h2 { font-size:var(--font-page-title); }
.page-header-tagline-input { font-size:var(--font-tagline); }
.page-header-description { font-size:var(--font-body); }
.top-actions { align-self:flex-start; margin-top:32px; }
.date-label { font-size:var(--font-body); }
#newContentButton { font-size:var(--font-section); }

/* 压缩头部垂直留白并上移右侧用户模块，不改变“记录灵感”按钮自身尺寸。 */
.topbar { min-height:96px; }
.top-actions { margin-top:10px; }

/* 页面头部账号区：英文更紧凑，标题原位；账号行与英文、操作行与中文定位语分别对齐。 */
.topbar { align-items:flex-start; }
.page-header-copy > .eyebrow {
  box-sizing:border-box;
  height:18px;
  padding-top:4px;
  font-size:14px !important;
  line-height:14px;
}
.topbar-side {
  flex:0 0 auto;
  display:grid;
  grid-template-rows:18px auto;
  justify-items:end;
  align-self:flex-start;
  min-width:max-content;
}
.header-account-row {
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
  height:18px;
  padding-top:4px;
  box-sizing:border-box;
}
.header-account-area {
  position:relative;
  z-index:30;
  display:flex;
  align-items:flex-start;
  justify-content:flex-end;
  height:18px;
  padding-top:0;
  box-sizing:border-box;
  font-size:14px;
  line-height:14px;
}
.header-auth-links { display:flex; align-items:center; gap:8px; }
.header-auth-links > span { width:1px; height:10px; background:#d8dce5; }
.header-auth-links [data-header-auth-mode="login"] { font-weight:700; }
.header-auth-links button,
.header-user-trigger,
.header-user-dropdown button {
  border:0;
  padding:0;
  color:#596273;
  background:transparent;
  font:inherit;
  cursor:pointer;
}
.header-auth-links button:hover,
.header-user-trigger:hover { color:var(--brand); }
.header-user-menu { position:relative; }
.header-user-trigger { display:flex; align-items:center; gap:5px; margin-top:-3px; white-space:nowrap; }
.header-user-avatar {
  display:grid;
  place-items:center;
  width:18px;
  height:18px;
  border-radius:6px;
  color:#fff;
  background:var(--brand);
  font-size:10px;
  font-weight:800;
}
.header-user-arrow { position:relative; width:13px; height:9px; margin-left:2px; color:#aab1bf; transition:transform .14s ease; }
.header-user-arrow::before,
.header-user-arrow::after { content:""; position:absolute; top:4px; width:7px; height:1px; background:currentColor; }
.header-user-arrow::before { left:0; transform:rotate(28deg); transform-origin:right center; }
.header-user-arrow::after { right:0; transform:rotate(-28deg); transform-origin:left center; }
.header-user-trigger[aria-expanded="true"] .header-user-arrow { transform:rotate(180deg); }
.header-user-dropdown {
  position:absolute;
  top:24px;
  right:0;
  width:144px;
  padding:6px;
  border:1px solid #e0e4ec;
  border-radius:9px;
  background:#fff;
  box-shadow:0 12px 30px rgba(25,32,48,.14);
}
.header-user-dropdown[hidden] { display:none; }
.header-user-dropdown button { display:block; width:100%; padding:8px 9px; border-radius:6px; text-align:left; font-size:12px; }
.header-user-dropdown button:hover { color:var(--brand); background:#f3f1ff; }
.topbar-side .top-actions {
  align-self:start;
  margin-top:3px;
  min-height:31px;
}
.topbar-side .date-label { font-size:var(--font-body); }
#newContentButton {
  box-sizing:border-box;
  min-height:0;
  height:auto;
  padding:4px 12px;
  font-size:16px;
  line-height:1.2;
}
.header-auth-modal { width:min(420px,100%); }
.header-auth-modal .field { margin-top:12px; }
.header-auth-message { min-height:18px; margin:6px 0 -4px; color:#c43a3a; font-size:12px; line-height:18px; }
.header-profile-modal { width:min(620px,calc(100vw - 32px)); }
.header-profile-summary { display:flex; align-items:center; gap:12px; padding:15px; border-radius:12px; background:#f6f5fb; }
.header-profile-avatar { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; color:#fff; background:var(--brand); font-weight:800; }
.header-profile-summary > div { display:grid; gap:4px; min-width:0; }
.header-profile-summary small { color:var(--muted); }

@media (max-width:760px) {
  .topbar { gap:10px; }
  .topbar-side .date-label { display:none; }
  .header-auth-links { gap:5px; }
  #newContentButton { padding-inline:8px; font-size:14px; }
}

/* 创作闭环左侧内容项目。 */
.rail-head > div > strong { font-size:var(--font-section); }
.rail-head small { font-size:var(--font-min); }
.rail-tab { font-size:var(--font-body); font-weight:400; }
.rail-tab.active { font-weight:600; }
.rail-tab__count,
.rail-tab.active .rail-tab__count { font-size:var(--font-body); font-weight:400; }
.workflow-candidate-heading {
  display:inline-flex !important;
  align-items:center;
  gap:6px !important;
}
.workflow-candidates {
  background:linear-gradient(
    180deg,
    #fff9e8 0%,
    #fffcf5 56%,
    #fff 100%
  );
}
.workflow-candidates.expanded {
  background:linear-gradient(
    180deg,
    #fff9e8 0%,
    #fffcf5 56%,
    #fff 100%
  );
  border:0 !important;
  border-radius:11px;
  outline:1px solid var(--line) !important;
  outline-offset:0;
  box-shadow:none !important;
  filter:none !important;
  backdrop-filter:none !important;
  animation:none !important;
  transform:none !important;
  transition:none !important;
}
.workflow-candidates > header { align-items:center; }
.workflow-candidates > header .text-button {
  padding:0;
  font-size:var(--font-body);
  line-height:20px;
}
.workflow-candidates > header .workflow-candidate-heading strong {
  font-size:var(--font-body);
  font-weight:600;
}
.workflow-candidate-heading .rail-tab__count {
  color:var(--brand);
  background:var(--brand-soft);
  font-size:var(--font-body);
  font-weight:400;
}
.workflow-candidate-list {
  gap:0;
  margin:0 -8px -9px;
}
.workflow-candidates.expanded .workflow-candidate-list {
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:#c9ced8 transparent;
}
.workflow-candidates.expanded .workflow-candidate-list::-webkit-scrollbar { width:5px; }
.workflow-candidates.expanded .workflow-candidate-list::-webkit-scrollbar-track { background:transparent; }
.workflow-candidates.expanded .workflow-candidate-list::-webkit-scrollbar-thumb {
  border-radius:999px;
  background:#c9ced8;
}
.workflow-candidates.expanded .rail-expand-button {
  position:relative;
  box-sizing:border-box;
  width:100%;
  margin:7px 0 0;
  border-top:0;
}
.workflow-candidates.expanded .rail-expand-button::before {
  content:"";
  position:absolute;
  top:0;
  right:0;
  left:0;
  height:1px;
  background:var(--line);
}
.workflow-candidate-card {
  position:relative;
  gap:4px;
  padding:6px 14px 7px;
  border:0;
  border-radius:0;
  background:transparent;
  transition:background-color .15s ease;
}
.workflow-candidate-card::after {
  content:"";
  position:absolute;
  right:14px;
  bottom:0;
  left:14px;
  height:1px;
  background:#eceef3;
}
.workflow-candidate-card:last-child::after { display:none; }
.workflow-candidates:not(.expanded) .workflow-candidate-card:nth-child(2)::after { display:none; }
.workflow-candidate-card:hover,
.active-project-section.is-creating .content-item:hover,
.active-project-section.is-reviewing .content-item:hover { background:#f7f8fb; }
.active-project-section.is-creating {
  background:linear-gradient(
    180deg,
    #f0f9f4 0%,
    #f7fcf9 56%,
    #fff 100%
  );
}
.active-project-section.is-reviewing {
  background:linear-gradient(
    180deg,
    #fff3f3 0%,
    #fffafa 56%,
    #fff 100%
  );
}
.active-project-section.is-creating .content-list,
.active-project-section.is-reviewing .content-list { background:transparent; }
.workflow-candidate-title,
.content-item-title { font-size:var(--font-body); }
.workflow-candidate-title,
.active-project-section.is-reviewing .content-item-title,
.active-project-section.is-reviewing .content-item.active .content-item-title { font-weight:400; }
.candidate-join-button {
  box-sizing:border-box;
  height:22px;
  min-height:22px;
  display:inline-flex;
  align-items:center;
  gap:3px;
  padding:0 8px;
  border-color:transparent;
  color:var(--muted) !important;
  background:transparent;
  line-height:1;
}
.candidate-join-button > span { line-height:1; }
.candidate-join-button:hover,
.candidate-join-button:focus-visible {
  border-color:var(--brand);
  color:#fff !important;
  background:var(--brand);
}
.candidate-join-plus {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  font-weight:400;
  line-height:1;
}
.content-list { padding:0; background:#fff; }
.content-item {
  position:relative;
  gap:7px;
  padding:6px 14px 7px;
  border:0;
  border-radius:0;
  background:transparent;
  transition:background-color .15s ease;
}
.content-item::after {
  content:"";
  position:absolute;
  z-index:2;
  right:14px;
  bottom:0;
  left:14px;
  display:block;
  height:1px;
  background:#eceef3;
  pointer-events:none;
}
.content-item:last-child::after { display:none; }
.content-item:hover { background:#f7f8fb; }
.content-item.active,
.content-item.active:hover { background:var(--brand-soft); }
.content-item-title { font-size:var(--font-body); font-weight:400; transition:color .15s ease; }
.content-item-title:hover { color:var(--brand); }
.content-item.active .content-item-title { font-weight:600; }
.content-item-meta { font-size:var(--font-min); font-weight:400; }

/* 选题库左侧列表沿用创作闭环的微信聊天式矩形条目。 */
#topicsView .topic-list {
  padding: 0;
  background: #fff;
}
#topicsView .topic-list-item {
  position: relative;
  gap: 7px;
  padding: 6px 14px 7px;
  border: 0;
  border-radius: 0;
  background: #fff;
  transition: background-color .15s ease;
}
#topicsView .topic-list-item::after {
  content: "";
  position: absolute;
  z-index: 2;
  right: 14px;
  bottom: 0;
  left: 14px;
  height: 1px;
  background: #eceef3;
  pointer-events: none;
}
#topicsView .topic-list-item:last-child::after { display: none; }
#topicsView .topic-list-item:hover { background: #f7f8fb; }
#topicsView .topic-list-item.active,
#topicsView .topic-list-item.active:hover { background: var(--brand-soft); }
#topicsView .topic-list-item strong {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  max-height: 3em;
  font-weight: 400;
  line-height: 1.5;
  overflow-wrap: anywhere;
  text-overflow: ellipsis;
  transition: color .15s ease;
}
#topicsView .topic-list-item strong:hover { color: var(--brand); }
#topicsView .topic-list-item.active strong { font-weight: 600; }

/* 内容标题与八个主流程。 */
.record-head h2 { font-size:var(--font-record-title); }
.step-name { font-size:var(--font-body); }

/* 拍剪排期说明、节点标题与日期。 */
.schedule-top-heading .stage-hint,
.schedule-risk-row,
.milestone-inline .milestone-top strong { font-size:var(--font-note); }
.schedule-top .milestone-inline .milestone-date-text,
.milestone-inline .field input[type="date"] { font-size:var(--font-note) !important; }

/* 声音生成页：16 / 14 / 13。 */
.prod-subpage-head h3 { font-size:var(--font-section); }
.prod-sub-state { font-size:var(--font-body); }
.prod-subpage-desc { font-size:var(--font-note); }
.prod-voice-grid .ps-section-title { font-size:var(--font-body); }
.prod-voice-grid button,
.prod-voice-grid .button,
.prod-voice-grid select,
.prod-voice-grid input,
.prod-voice-grid .prod-final-script-note,
.prod-voice-grid .ps-action-note,
.prod-voice-grid .prod-voice-hint { font-size:var(--font-note); }
.prod-config-label-row label,
.prod-config-row > label,
.prod-range-row > label,
.prod-range-label,
.prod-adv-flat__title { font-size:var(--font-note); font-weight:600; }
.prod-model-toggle button { font-size:var(--font-note); }
.prod-model-toggle button:disabled { color:#9299a6; background:#f5f6f8; border-color:#e3e7ed; cursor:not-allowed; opacity:1; }

/* 语速、固定宽度数值、进度条保持同一行。 */
.prod-range-row--speed {
  display:grid;
  grid-template-columns:auto 5ch minmax(0,1fr);
  align-items:center;
  gap:8px;
}
.prod-range-row--speed > .prod-range-label { display:block; margin:0; white-space:nowrap; }
.prod-range-row--speed .prod-range-val { display:block; width:5ch; min-width:5ch; text-align:left; font-size:var(--font-note); font-weight:400; font-variant-numeric:tabular-nums; }
.prod-range-row--speed input[type="range"] { display:block; width:100%; min-width:0; margin:0; }
.prod-speed-presets { display:flex; align-items:center; justify-content:flex-end; gap:14px; margin-left:auto; }
.prod-speed-presets button { min-width:0; height:auto; border:0; border-radius:0; padding:0; color:var(--muted); background:transparent; cursor:pointer; font:inherit; font-weight:400; font-variant-numeric:tabular-nums; }
.prod-speed-presets button:hover { color:var(--brand); background:transparent; }
.prod-speed-presets button.active { color:var(--brand); background:transparent; font-weight:400; text-shadow:.35px 0 currentColor,-.35px 0 currentColor; }
.prod-speed-presets button:disabled { opacity:.48; cursor:not-allowed; }
@media (max-width: 480px) { .prod-speed-presets { gap:8px; } }

/* 克隆结果标题、标签与操作。 */
.prod-voice-col-right > .ps-section:last-child .ps-section-title { font-size:var(--font-body); }
.prod-voice-col-right > .ps-section:last-child .ps-section-tools { gap:4px; }
.prod-voice-col-right > .ps-section:last-child .ps-pill,
.prod-voice-col-right > .ps-section:last-child .button { font-size:var(--font-note); }

/* 工作台底部操作。保留流程返回，只移除“撤回上一步编辑”。 */
.stage-footer .button { font-size:var(--font-section); }

/* 站点级顶部导航：承载工作台与产品介绍，不与左侧业务模块混排。 */
.site-top-nav {
  position:sticky;
  z-index:30;
  top:0;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:0 calc(-1 * var(--ui-page-gutter));
  padding:0 var(--ui-page-gutter);
  border-bottom:1px solid var(--line);
  background:rgba(244,246,249,.94);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.site-top-nav__label { display:flex; align-items:center; gap:8px; color:#8a91a0; font-size:10px; font-weight:700; letter-spacing:1.4px; }
.site-top-nav__label > span { width:6px; height:6px; border-radius:50%; background:var(--brand); box-shadow:0 0 0 4px rgba(102,88,232,.1); }
.site-top-nav__links { align-self:stretch; display:flex; align-items:stretch; gap:4px; }
.site-top-nav__links a { position:relative; display:flex; align-items:center; gap:6px; padding:0 14px; color:#687181; font-size:12px; font-weight:500; text-decoration:none; }
.site-top-nav__links a:hover { color:var(--brand); background:rgba(102,88,232,.05); }
.site-top-nav__links a.active { color:var(--brand); font-weight:700; }
.site-top-nav__links a.active::after { content:""; position:absolute; left:14px; right:14px; bottom:0; height:2px; border-radius:2px 2px 0 0; background:var(--brand); }
.site-top-nav__links a span { font-size:11px; }
@media(max-width:820px){
  .site-top-nav { margin:0 -14px; padding:0 14px; }
  .site-top-nav__label { display:none; }
  .site-top-nav__links { width:100%; }
  .site-top-nav__links a { flex:1; justify-content:center; }
}

/* 产品介绍与账号操作同排，固定放在登录/用户入口左侧。 */
.product-intro-header-link {
  min-height:0;
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-right:10px;
  padding:0 10px 0 0;
  border-right:1px solid #d8dce5;
  color:#596273;
  font-size:14px;
  font-weight:400;
  line-height:14px;
  white-space:nowrap;
  text-decoration:none;
  transition:color .16s ease;
}
.product-intro-header-link:hover {
  color:var(--brand);
}
.product-intro-header-link span { font-size:12px; }
.header-guide-button {
  min-width:0;
  height:14px;
  border-top:0;
  border-bottom:0;
  border-left:0;
  background:transparent;
  font-family:inherit;
  cursor:pointer;
}
@media(max-width:820px){
  .product-intro-header-link { margin-right:8px; padding-right:8px; }
}
@media(max-width:560px){
  a.product-intro-header-link { font-size:0; gap:0; }
  a.product-intro-header-link::before { content:"介绍"; font-size:12px; }
  a.product-intro-header-link span { display:none; }
  .header-guide-button { font-size:12px; }
}

/* 全站可编辑表单控件统一轻量选中态；不改变 resize 与原生拖动手柄。 */
.editor-focus-frame {
  position: absolute;
  box-sizing: border-box;
  pointer-events: none;
  z-index: 5;
  border: 1px solid #aaa1ff;
  box-shadow: 0 0 0 1px rgba(102,86,238,.10), 0 0 4px rgba(102,86,238,.08);
}
textarea.has-editor-focus-frame:focus,
.prod-final-script--editable.has-editor-focus-frame:focus {
  border-color: transparent !important;
  outline: none !important;
  box-shadow: none !important;
}

/* 全站“后续接入”入口统一使用红色禁止指针，避免误解为当前可点击。 */
:where([title="后续接入"],[data-tooltip="后续接入"]),
:where([title="后续接入"],[data-tooltip="后续接入"]) *{
  cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Ccircle cx='14' cy='14' r='10.5' fill='white' stroke='%23ef4444' stroke-width='3'/%3E%3Cpath d='M6.6 6.6 21.4 21.4' stroke='%23ef4444' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") 14 14,not-allowed!important;
}
.field-save-status,
.compare-block-head .field-save-meta > .field-save-status,
.diagnosis-field-meta .field-save-status {
  display: inline-block;
  width: 64px;
  flex: 0 0 64px;
  text-align: right;
  white-space: nowrap;
}
.field-save-status.saving,
.prod-final-script-save.saving { color: #d4b65c !important; }
.prod-final-script-save.saving::before { background: #d4b65c !important; }
.diagnosis-field-meta,
.compare-block-head .field-save-meta { gap: 4px; }
.diagnosis-field-meta .field-save-status,
.compare-block-head .field-save-meta > .field-save-status {
  order: 1;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  width: 60px;
  flex: 0 0 60px;
  transform: translateX(-6px);
  color: #1a7f43 !important;
  font-weight: 400 !important;
}
.diagnosis-field-meta .field-save-status::before,
.compare-block-head .field-save-meta > .field-save-status::before {
  content: "";
  width: 6px;
  height: 6px;
  flex-shrink: 0;
  margin-right: 4px;
  border-radius: 50%;
  background: currentColor;
}
.diagnosis-field-meta .field-save-status.saving,
.compare-block-head .field-save-meta > .field-save-status.saving { color: #d4b65c !important; }
.diagnosis-field-meta .field-save-status.error,
.compare-block-head .field-save-meta > .field-save-status.error { color: #bd4545 !important; }
.app-shell input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]):focus,
.app-shell textarea:focus,
.app-shell select:focus,
.app-shell [contenteditable="true"]:focus {
  border-color: #aaa1ff;
  outline: 0;
  box-shadow: 0 0 0 1px rgba(102,86,238,.10), 0 0 4px rgba(102,86,238,.08);
}

/* 仅统一输入控件内部的默认占位文字，不影响标题、说明、提示和状态文案。 */
.app-shell input::placeholder,
.app-shell textarea::placeholder {
  color: #b7bdc8;
  opacity: 1;
}
.app-shell .rich-text-editor:empty::before,
.app-shell .prod-final-script--editable[data-empty="true"]::before {
  color: #b7bdc8;
}

/* 诊断页沿用文案页字号层级：模块标题 16px，正文 14px，辅助信息 12px。 */
#stageArea .diagnosis-paired-head strong,
#stageArea .diagnosis-copy-block-head i,
#stageArea .diagnosis-module-head strong,
#stageArea .diagnosis-compliance-source header strong {
  font-size: 16px !important;
}
#stageArea .diagnosis-script-block textarea,
#stageArea .diagnosis-conclusion p,
#stageArea .diagnosis-guidance p,
#stageArea .diagnosis-module-empty strong,
#stageArea .diagnosis-module-empty span,
#stageArea .diagnosis-module-empty p,
#stageArea .diagnosis-compliance-source p {
  font-size: 14px !important;
}

/* 诊断页左侧文案卡片沿用文案页对标文案的贴边输入结构。 */
#stageArea .diagnosis-paired-row .diagnosis-script-block {
  overflow: hidden;
  padding: 12px 0 0;
}
#stageArea .diagnosis-paired-row .diagnosis-copy-block-head {
  flex: 0 0 auto;
  padding: 0 12px;
}
#stageArea .diagnosis-paired-row .diagnosis-script-block textarea {
  width: calc(100% + 2px);
  max-width: none;
  margin-left: -1px;
  margin-bottom: -1px;
  border-radius: 0 0 10px 10px;
}
#stageArea .diagnosis-paired-row .diagnosis-script-block textarea:focus {
  position: relative;
  z-index: 2;
  border-color: #aaa1ff;
  border-radius: 0 0 9px 9px;
  outline: 0;
  box-shadow: 0 0 0 1px rgba(102,86,238,.10), 0 0 4px rgba(102,86,238,.08);
}
#stageArea .diagnosis-paired-row .diagnosis-script-block:has(> textarea:focus) {
  overflow: visible;
}

/* 上传声音弹窗不受通用 480px 弹窗宽度覆盖；右栏完整容纳 10 个汉字。 */
.modal.voice-upload-modal {
  width: min(680px, calc(100vw - 28px));
}
.voice-upload-modal .voice-upload-modal__body {
  grid-template-columns: minmax(0, 1fr) minmax(220px, .72fr);
}
#voiceUploadNameInput::placeholder {
  color: #b7bdc8;
  opacity: 1;
}
#voiceUploadNameInput:focus,
#voiceUploadNameInput:focus-visible {
  border-color: #aaa1ff;
  outline: 0;
  box-shadow: 0 0 0 1px rgba(102,86,238,.10), 0 0 4px rgba(102,86,238,.08);
}
@media (max-width: 720px) {
  .voice-upload-modal .voice-upload-modal__body { grid-template-columns: 1fr; }
}

/* 上传形象仅同步本日已调整的上传声音规格，原有上传规则与保存逻辑保持不变。 */
.modal.avatar-upload-modal {
  width: min(680px, calc(100vw - 28px));
}
.avatar-upload-modal .avatar-upload-modal__body {
  grid-template-columns: minmax(0, 1fr) minmax(220px, .72fr);
}
#avatarUploadModal .avatar-upload-modal__namefield > span,
#avatarUploadModal .avatar-upload-modal__namefield input {
  font-size: 14px !important;
}
#avatarUploadNameInput::placeholder {
  color: #b7bdc8;
  opacity: 1;
}
#avatarUploadNameInput:focus,
#avatarUploadNameInput:focus-visible {
  border-color: #aaa1ff;
  outline: 0;
  box-shadow: 0 0 0 1px rgba(102,86,238,.10), 0 0 4px rgba(102,86,238,.08);
}
@media (max-width: 720px) {
  .avatar-upload-modal .avatar-upload-modal__body { grid-template-columns: 1fr; }
}

/* 声音生成双栏等高；克隆结果与上方配置区的间距收紧约三分之一。 */
.prod-voice-col-left > .ps-section {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
}
.prod-voice-col-left > .ps-section > .ps-section-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-height: 0;
  border: 1px solid transparent;
  border-radius: 10px;
  overflow: hidden;
  background: var(--panel-soft, #faf9ff);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.prod-voice-col-left > .ps-section > .ps-section-body:hover {
  border-color: var(--line, #e3e0f0);
}
.prod-voice-col-left > .ps-section > .ps-section-body:focus-within {
  border-color: #aaa1ff;
  box-shadow: 0 0 0 1px rgba(102,86,238,.10), 0 0 4px rgba(102,86,238,.08);
}
.prod-voice-col-left #prodFinalScript {
  flex: 1 1 0;
  height: 0;
  max-height: none;
  overflow-y: auto;
  border: 0;
  border-radius: 0;
  outline: none;
  box-shadow: none;
}
.prod-voice-col-right > .ps-section:last-child {
  margin-top: 20px;
  margin-bottom: 0;
}
.prod-final-script-heading-note {
  min-width: 0;
  min-height: 32px;
  display: block;
  box-sizing: border-box;
  padding-top: 7px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--muted, #999);
  justify-self: stretch;
  text-align: left;
}
.prod-final-script-heading-label {
  min-height: 32px;
  display: flex;
  flex-shrink: 0;
  align-items: center;
  line-height: 1.5;
}
.prod-voice-col-left > .ps-section > .prod-final-script-heading {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr) max-content;
  align-items: start;
  column-gap: var(--ui-title-description-gap, 16px);
}
.prod-voice-col-left > .ps-section > .prod-final-script-heading > .prod-final-script-heading-controls {
  min-width: 0;
  min-height: 32px;
  display: grid;
  grid-template-columns: 100px 116px 60px;
  column-gap: 8px;
  margin-left: 0;
  align-items: center;
  justify-self: end;
  white-space: nowrap;
}

/* 单条内容复盘：链接、真实指标、结论与下一步留在同一条内容记录内。 */
.review-detail-shell{display:grid;gap:16px;padding:2px 0 10px}
.review-detail-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:8px 2px 2px}
.review-detail-eyebrow{display:block;margin-bottom:8px;color:#6554e8;font-size:12px;font-weight:800;letter-spacing:.18em}
.review-detail-head h3{margin:0;color:#172033;font-size:28px;line-height:1.25}
.review-detail-head p{margin:8px 0 0;color:#7a8496;font-size:13px}
.review-platform-tabs{display:flex;gap:6px;padding:5px;border:1px solid #e1e5ee;border-radius:14px;background:#fff;overflow-x:auto}
.review-platform-tabs button{display:inline-flex;flex:none;align-items:center;gap:8px;padding:9px 15px;border:0;border-radius:10px;background:transparent;color:#667085;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.review-platform-tabs button.active{background:#6654e8;color:#fff;box-shadow:0 5px 14px rgba(102,84,232,.2)}
.review-platform-tabs button.is-placeholder{opacity:.62;cursor:not-allowed}
.review-platform-tab__icon{display:inline-flex;width:20px;height:20px;flex:0 0 20px;overflow:hidden;border-radius:5px}
.review-platform-tab__icon svg{display:block;width:100%;height:100%}
.review-layer-note{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #e4e0ff;border-radius:13px;background:#f8f7ff;color:#747d8e;font-size:12px}
.review-layer-note strong{flex:none;color:#5947d8;font-size:13px}
.review-data-source{display:grid;grid-template-columns:8px auto minmax(0,1fr);align-items:center;gap:8px;padding:0 4px;color:#788294;font-size:12px}
.review-data-source>span{width:8px;height:8px;border-radius:50%;background:#c5cad4}
.review-data-source>span.ready{background:#24925d;box-shadow:0 0 0 4px #e7f6ee}
.review-data-source>span.waiting{background:#d5a72b;box-shadow:0 0 0 4px #fff6d9}
.review-data-source>strong{color:#4e5869;font-size:12px;white-space:nowrap}
.review-data-source>p{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.review-platform-data-section{min-width:0;padding:0;border:0;background:transparent;overflow-x:auto}
.review-platform-data-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
.review-platform-data-heading h4{margin:0;color:#172033;font-size:16px}.review-platform-data-heading p{margin:5px 0 0;color:#8b94a5;font-size:12px}
.review-platform-data-heading>span{display:inline-flex;align-items:center;gap:8px;color:#657084;font-size:12px;white-space:nowrap}.review-platform-data-heading>span i{width:8px;height:8px;border-radius:50%;background:#d5a72b;box-shadow:0 0 0 4px #fff6d9}.review-platform-data-heading>span i.ready{background:#24925d;box-shadow:0 0 0 4px #e7f6ee}
.review-platform-data-table{width:100%;min-width:840px;overflow:hidden;border:1px solid #e5e8ef;border-radius:12px;background:#fff}
.review-platform-data-row{display:grid;grid-template-columns:minmax(80px,.68fr) minmax(90px,1fr) minmax(64px,.72fr) repeat(5,minmax(62px,.68fr)) minmax(185px,1.6fr) 110px;align-items:center;min-height:44px;border-top:1px solid #edf0f5;color:#4c5564;font-size:12px}.review-platform-data-row.head{min-height:36px;border-top:0;background:#fafbfc;color:#7a8391;font-size:12px;font-weight:600}.review-platform-data-row.head>span{white-space:nowrap}.review-platform-data-row.head>span:last-child{text-align:right}
.review-platform-data-row>span,.review-platform-data-row>div,.review-platform-data-row>label{min-width:0;padding:6px clamp(5px,.65vw,10px);box-sizing:border-box}.review-platform-data-name{display:flex;align-items:center;gap:7px}.review-platform-data-name>span{display:inline-flex;width:18px;height:18px;flex:0 0 18px;overflow:hidden;border-radius:5px}.review-platform-data-name svg{display:block;width:100%;height:100%}.review-platform-data-name strong{overflow:visible;color:#202939;text-overflow:clip;white-space:nowrap}
.review-platform-data-state{display:flex;align-items:center;gap:7px;white-space:nowrap}.review-platform-data-state i{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#b9c0cb}.review-platform-data-state.ready{color:#168252}.review-platform-data-state.ready i{background:#20a46b}.review-platform-data-state.waiting{color:#a8780c}.review-platform-data-state.waiting i{background:#e9a800}.review-platform-data-state.empty{color:#929baa}
.review-platform-data-row label{display:flex;align-items:center;margin:0}.review-platform-data-row input{width:100%;min-width:0;height:28px;box-sizing:border-box;padding:0 6px;border:1px solid transparent;border-radius:6px;outline:0;background:transparent;color:#172033;font-family:inherit;font-size:12px!important;line-height:26px;font-weight:700;font-variant-numeric:tabular-nums;transition:border-color .16s,box-shadow .16s,background .16s}.review-platform-data-row input:hover{border-color:transparent;background:transparent}.review-platform-data-row input:focus{border-color:#8475ef;background:#fff;box-shadow:0 0 0 2px rgba(102,84,232,.09)}.review-platform-data-row input::placeholder{color:#b5bcc7;font-weight:400}.review-platform-data-row input::-webkit-inner-spin-button,.review-platform-data-row input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.review-platform-data-row input[type=number]{appearance:textfield;-moz-appearance:textfield}
.review-platform-data-date,.review-platform-data-age{color:#737d8e;white-space:nowrap;font-variant-numeric:tabular-nums}.review-platform-data-update{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;color:#7b8595;font-size:11px}.review-platform-data-update>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-platform-data-save{color:#929baa;font-size:11px;white-space:nowrap}.review-platform-data-save.saved{color:#1b8858}.review-platform-data-save.saving{color:#b7791f}.review-platform-data-save.error{color:#c84545}
.review-platform-data-refreshable .review-platform-data-zone{cursor:pointer}.review-platform-data-refreshable .review-platform-data-zone input{cursor:text}.review-platform-data-row.is-refreshing .review-platform-data-zone{cursor:wait;background:#f4f1ff}.review-platform-data-row.is-refreshing .review-platform-data-zone input{pointer-events:none;opacity:.55}
.review-platform-data-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.review-platform-refresh-button,.review-platform-open-button{display:inline-flex;height:28px;box-sizing:border-box;align-items:center;justify-content:center;border:1px solid #dfe3eb;border-radius:8px;background:#fff;color:#6654e8;text-decoration:none;cursor:pointer}.review-platform-refresh-button{width:30px;padding:0;font-size:17px;line-height:1}.review-platform-open-button{min-width:44px;padding:0 9px;font-size:12px;font-weight:600}.review-platform-refresh-button:hover:not(:disabled),.review-platform-open-button:hover:not(:disabled){border-color:#cfc7ff;background:#f6f4ff}.review-platform-refresh-button:disabled,.review-platform-open-button:disabled{color:#b5bcc7;cursor:not-allowed;opacity:.58}.review-platform-data-row.is-refreshing .review-platform-refresh-button{cursor:wait;animation:review-data-spin .8s linear infinite}@keyframes review-data-spin{to{transform:rotate(360deg)}}
.review-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.review-summary-card{display:flex;min-width:0;min-height:112px;box-sizing:border-box;flex-direction:column;justify-content:center;padding:17px 18px;border:1px solid #e1e5ee;border-radius:16px;background:#fff}
.review-summary-card>span{color:#7a8496;font-size:12px;font-weight:700}
.review-summary-card>input,.review-summary-card>strong{width:100%;box-sizing:border-box;margin:8px 0 4px;padding:0;border:0;outline:0;background:transparent;color:#172033;font-size:25px;font-weight:800;line-height:1.2}
.review-summary-card>input{border-bottom:1px solid transparent;border-radius:0;transition:border-color .16s,color .16s}
.review-summary-card>input:hover{border-bottom-color:#ddd8ff}
.review-summary-card>input:focus{border-bottom-color:#6654e8;color:#5b49df}
.review-summary-card>input::-webkit-inner-spin-button,.review-summary-card>input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.review-summary-card>input[type=number]{appearance:textfield;-moz-appearance:textfield}
.review-summary-card>small{color:#9aa2b1;font-size:11px}
.review-detail-main{display:block}
.review-panel{box-sizing:border-box;padding:18px;border:1px solid #e1e5ee;border-radius:18px;background:#fff}
.review-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}
.review-panel-head h4{margin:0;color:#172033;font-size:16px}
.review-panel-head p{margin:5px 0 0;color:#8b94a5;font-size:12px}
.review-panel-head>span{padding:6px 10px;border-radius:999px;background:#f0edff;color:#6554e8;font-size:11px;font-weight:700}
.review-trend-empty{display:flex;min-height:218px;flex-direction:column;align-items:center;justify-content:center;padding:20px;border:1px dashed #dcd8ff;border-radius:14px;background:linear-gradient(180deg,#fbfaff,#fff);text-align:center}
.review-trend-empty i{width:76px;height:38px;margin-bottom:15px;border-left:2px solid #d2caff;border-bottom:2px solid #d2caff;background:linear-gradient(145deg,transparent 45%,#8475ef 46%,#8475ef 49%,transparent 50%)}
.review-trend-empty strong{color:#4b5567;font-size:14px}
.review-trend-empty p{max-width:360px;margin:7px 0 0;color:#929aab;font-size:12px;line-height:1.65}
.review-baseline-chart{display:grid;gap:17px;min-height:218px;box-sizing:border-box;align-content:center;padding:22px 18px;border:1px solid #ece9ff;border-radius:14px;background:linear-gradient(180deg,#fbfaff,#fff)}
.review-baseline-row{display:grid;grid-template-columns:42px minmax(0,1fr) 70px;align-items:center;gap:12px;color:#727c8e;font-size:12px}
.review-baseline-row>div{height:9px;overflow:hidden;border-radius:999px;background:#eceaf8}
.review-baseline-row i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8979f2,#6654e8)}
.review-baseline-row strong{color:#313a4a;text-align:right;font-variant-numeric:tabular-nums}
.review-baseline-chart>p{margin:3px 0 0;color:#929aab;font-size:11px;text-align:center}
.review-real-trend{display:grid;min-height:218px;box-sizing:border-box;align-content:center;padding:20px 18px 14px;border:1px solid #e8e4ff;border-radius:14px;background:linear-gradient(180deg,#fbfaff,#fff)}
.review-real-trend svg{width:100%;height:170px;overflow:visible}
.review-real-trend svg line{stroke:#e1deef;stroke-width:1}
.review-real-trend svg polyline{fill:none;stroke:#6654e8;stroke-width:2.5;vector-effect:non-scaling-stroke}
.review-real-trend svg circle{fill:#fff;stroke:#6654e8;stroke-width:1.5;vector-effect:non-scaling-stroke}
.review-real-trend>div{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;color:#929aab;font-size:11px}
.review-real-trend>div strong{color:#596274;text-align:center}.review-real-trend>div span:last-child{text-align:right}
.review-conclusion-panel{display:grid;align-content:start;gap:11px}
.review-conclusion-panel .review-panel-head{margin-bottom:0}
.review-conclusion-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.review-conclusion-fields .field{margin:0}.review-conclusion-panel textarea{min-height:118px}
.review-platform-panel{padding-bottom:8px}
.review-platform-table{overflow:hidden;border:1px solid #e5e8ef;border-radius:13px}
.review-platform-row{display:grid;grid-template-columns:130px minmax(180px,1fr) 150px 70px;align-items:center;gap:12px;min-height:48px;padding:0 14px;border-top:1px solid #edf0f5;color:#596274;font-size:12px}
.review-platform-row.head{min-height:38px;border-top:0;background:#f8f9fc;color:#8a93a4;font-weight:700}
.review-platform-row>a{color:#5d4bdd;font-weight:700;text-align:right;text-decoration:none}
.review-link-cell{overflow:hidden;color:#737d8e;text-overflow:ellipsis;white-space:nowrap}
.review-sync-state.ready{color:#248653}.review-sync-state.waiting{color:#b18416}
.review-platform-empty{padding:28px;color:#929aab;text-align:center;font-size:13px}
.review-detail-footer{display:grid;grid-template-columns:minmax(190px,260px) minmax(0,1fr) auto;align-items:end;gap:16px;padding:16px 18px;border:1px solid #e1e5ee;border-radius:16px;background:#fafbfe}
.review-detail-footer p{align-self:center;margin:0;color:#828c9d;font-size:12px}
.review-cycle-field{margin:0}
.review-cycle-field select{
  height:36px;
  min-height:36px;
  padding:0 28px 0 12px;
  border:1px solid var(--line,#e3e0f0);
  border-radius:10px;
  background-color:var(--panel,#fff);
  background-image:linear-gradient(45deg,transparent 50%,var(--muted,#888) 50%),linear-gradient(135deg,var(--muted,#888) 50%,transparent 50%);
  background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;
  background-repeat:no-repeat;
  background-size:5px 5px,5px 5px;
  color:var(--ink,#333);
  font-size:13px!important;
  line-height:1;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
}
.review-cycle-field select:focus{outline:none;border-color:var(--brand,#6658e8);box-shadow:0 0 0 3px rgba(102,88,232,.15)}
@media(max-width:1120px){.review-detail-main{grid-template-columns:1fr}.review-platform-row{grid-template-columns:100px minmax(140px,1fr) 130px 60px}}
@media(max-width:760px){.review-detail-head{align-items:flex-start;flex-direction:column}.review-layer-note{align-items:flex-start;flex-direction:column}.review-data-source{grid-template-columns:8px 1fr}.review-data-source>p{grid-column:1/-1;white-space:normal}.review-detail-footer{grid-template-columns:1fr}.review-platform-table{overflow-x:auto}.review-platform-row{min-width:620px}.review-conclusion-fields{grid-template-columns:1fr}}
.prod-final-script-heading-controls .prod-final-script-count,
#prodFinalScriptSaveStatus {
  transform: none;
}
.prod-final-script-heading-controls > [data-tooltip] {
  display: block;
  width: 100px;
}
.prod-final-script-heading-controls [data-prod-use-diagnosis] {
  width: 100px;
  min-width: 100px;
}
.prod-voice-grid > .prod-voice-col-left > .ps-section > .ps-section-title,
.prod-voice-grid > .prod-voice-col-right > .ps-section:first-child > .ps-section-title {
  min-height: 32px;
  justify-content: flex-start;
  text-align: left;
}
.prod-voice-grid > .prod-voice-col-left > .ps-section > .prod-final-script-heading {
  align-items: start;
  align-content: start;
}
.prod-voice-grid > .prod-voice-col-right > .ps-section:first-child > .ps-section-title {
  align-items: start;
  align-content: start;
}
.prod-voice-grid > .prod-voice-col-right > .ps-section:first-child > .ps-section-title > span:first-child {
  min-height: 32px;
  display: flex;
  align-items: center;
  align-self: start;
  line-height: 1.5;
}

/* 最终文案标题区按自身可用宽度换行，不受整个浏览器宽度或右栏内容干扰。 */
@container (max-width: 900px) {
  .prod-voice-col-left > .ps-section > .prod-final-script-heading {
    grid-template-columns: max-content minmax(0, 1fr);
    row-gap: 4px;
  }
  .prod-final-script-heading-label {
    grid-column: 1;
    grid-row: 1;
  }
  .prod-voice-col-left > .ps-section > .prod-final-script-heading > .prod-final-script-heading-controls {
    grid-column: 2;
    grid-row: 1;
  }
  .prod-final-script-heading-note {
    grid-column: 2;
    grid-row: 2;
    width: 100%;
  }
}

@container (max-width: 700px) {
  .prod-voice-col-left > .ps-section > .prod-final-script-heading > .prod-final-script-heading-controls {
    grid-template-columns: 96px 108px 54px;
    column-gap: 6px;
  }
  .prod-final-script-heading-controls > [data-tooltip],
  .prod-final-script-heading-controls [data-prod-use-diagnosis] {
    width: 96px;
    min-width: 96px;
  }
}

/* 发布标题、发布文案、标签和发布后链接：复用文案页“我的脚本”整块编辑卡片结构。 */
.publish-content-settings .field:has(> [data-field="publish_title"]),
.publish-content-settings .field:has(> [data-field="publish_copy"]),
.publish-content-settings .publish-tags-field,
.publish-content-settings .publish-link-field {
  display:grid;
  gap:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel);
}
.publish-content-settings .publish-copy-arrangement + .publish-link-field {
  margin-top:14px;
}
.publish-content-settings .field:has(> [data-field="publish_title"]):focus-within,
.publish-content-settings .field:has(> [data-field="publish_copy"]):focus-within,
.publish-content-settings .publish-tags-field:focus-within,
.publish-content-settings .publish-link-field:focus-within {
  overflow:visible;
  border-color:#aaa1ff;
  box-shadow:0 0 0 1px rgba(102,86,238,.10), 0 0 4px rgba(102,86,238,.08);
}
.publish-content-settings .field:has(> [data-field="publish_title"]) > .field-save-head,
.publish-content-settings .field:has(> [data-field="publish_copy"]) > .field-save-head,
.publish-content-settings .publish-tags-field > .field-save-head,
.publish-content-settings .publish-tags-field > span:first-child,
.publish-content-settings .publish-link-field > .field-save-head {
  box-sizing:border-box;
  min-height:44px;
  padding:10px 12px;
  border-bottom:1px solid var(--line);
}
.publish-content-settings .field:has(> [data-field="publish_title"]) > textarea,
.publish-content-settings .field:has(> [data-field="publish_copy"]) > textarea,
.publish-content-settings .publish-tags-field > .publish-tags,
.publish-content-settings .publish-link-field > input {
  min-height:64px;
  margin:0;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:var(--panel);
}
.publish-content-settings .field:has(> textarea[data-field="publish_title"]) > textarea[data-field="publish_title"] {
  box-sizing:border-box;
  height:42px;
  min-height:42px;
  max-height:42px;
  padding:9px 11px;
  line-height:24px;
  overflow-x:hidden;
  overflow-y:auto;
  resize:none;
  text-align:left;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.publish-content-settings .field:has(> [data-field="publish_copy"]) > textarea {
  height:106px;
  min-height:106px;
}
.publish-content-settings .publish-link-field > input {
  min-height:48px;
  padding:9px 11px;
}
.publish-content-settings .publish-link-field > .hint {
  box-sizing:border-box;
  min-height:42px;
  padding:9px 12px;
  border-top:1px solid var(--line);
}
.publish-content-settings .field:has(> [data-field="publish_title"]) > .field-suffix-actions,
.publish-content-settings .field:has(> [data-field="publish_copy"]) > .field-suffix-actions,
.publish-content-settings .publish-tags-field > .field-suffix-actions {
  justify-content:space-between;
  min-height:48px;
  box-sizing:border-box;
  margin:0;
  padding:8px 12px;
  border-top:1px solid var(--line);
}
.publish-content-settings .field-suffix-actions .button {
  border:1px solid var(--line) !important;
  color:var(--brand) !important;
  background:var(--panel) !important;
  box-shadow:none !important;
  font-weight:500;
}
.publish-content-settings .field-suffix-actions .button:hover {
  border-color:var(--brand) !important;
}
.publish-content-settings [data-copy-field-btn],
.publish-content-settings #copyArrangementButton {
  border-color:var(--line) !important;
  color:#7b8495 !important;
  background:transparent !important;
  box-shadow:none !important;
  font-weight:400;
}
.publish-content-settings [data-copy-field-btn]:hover,
.publish-content-settings #copyArrangementButton:hover {
  border-color:#c8ced8 !important;
  color:#5f6877 !important;
  background:#f8f9fb !important;
}

/* 发布标题/文案头部：字数与保存状态按文案页的紧凑元信息间距排列。 */
.publish-content-settings .field-save-head .publish-field-meta {
  display:inline-flex;
  align-items:center;
  gap:4px;
}
/* 发布页内容标题与“视频素材”统一使用同一黑色，不继承全站表单灰色。 */
.publish-materials__header h3,
.publish-content-settings .field-save-head > span:first-child,
.publish-content-settings .publish-tags-field > span:first-child,
.publish-content-settings .publish-copy-arrangement__head strong,
.publish-content-settings .publish-link-field .field-save-head > span:first-child {
  color:#0F172A !important;
}
.publish-content-settings .publish-field-meta > .field-save-status {
  display:inline-flex;
  width:auto;
  flex:0 0 auto;
  margin-left:0;
  text-align:left;
  transform:none;
}
.publish-local-storage-status.is-actionable {
  color: #dc2626;
  cursor: pointer;
  text-decoration: none;
}
.publish-local-storage-status {
  display:block;
  box-sizing:border-box;
  margin:9px 0 5px;
  padding:0;
  font-size:14px !important;
  line-height:24px !important;
  transform:none;
}

.publish-config__validation:has(~ .publish-config__cta-guard [disabled]) {
  cursor: default;
}

.publish-config__validation.is-local-actionable {
  cursor: pointer;
  text-decoration: none;
}
.publish-account-modal #confirmAccountLoginButton.is-resume-action {
  animation: account-resume-pulse 1.2s ease-in-out 2;
  box-shadow: 0 0 0 5px rgba(102, 88, 232, 0.18);
}

@keyframes account-resume-pulse {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

/* 一级面板只使用同一组横纵间距；置于最终覆盖层，避免页面局部旧值反向覆盖。 */
.studio-layout,
.topic-library-layout,
.admin-shell,
.diagnosis-workspace,
.schedule-top,
.publish-pack,
.inspiration-grid,
.production-planner,
.asset-grid,
.dashboard-focus-grid,
.dashboard-sections-grid,
.dashboard-section-column,
#dashboardBoard {
  gap: var(--ui-panel-gap, 10px);
}

/* 各业务页相邻一级边框的纵向节奏统一为 10px；字段和弹窗内部保持原值。 */
.inspiration-capture,
.benchmark-evidence,
.schedule-top,
.prod-track-banner,
.schedule-card,
.batch-card,
.review-summary-grid,
.review-cycle-toolbar,
.review-list-section,
.asset-library-section {
  margin-bottom: var(--ui-panel-gap, 10px);
}

.publish-cover-materials,
.publish-copy-arrangement {
  margin-top: var(--ui-panel-gap, 10px);
}

.stage-grid,
.review-summary-grid {
  gap: var(--ui-panel-gap, 10px);
}

/* 全站嵌套边框：大外框到内部边框四周统一 10px；子边框彼此仍为 10px。 */
.topic-library-layout:not(.list-mode) .topic-workspace,
.topic-definition,
.stage-card,
.diagnosis-script,
.diagnosis-advice,
.admin-settings-module,
.admin-settings-form,
.schedule-completed-body,
.lifecycle-board-scroll,
.topic-progress-list,
.inspiration-capture {
  padding: var(--ui-panel-gap, 10px);
}

.topic-two-columns,
.topic-evaluation-grid,
.compare-header,
.compare-row,
.diagnosis-paired-row,
.admin-setting-grid,
.admin-ai-provider-grid,
.publish-schedule-fields,
.source-text-workspace,
.prod-voice-grid,
.prod-voice-col-right,
.asset-preview {
  gap: var(--ui-panel-gap, 10px);
}

/* 创作闭环阶段区：外框到阶段卡上下 10px、左右 14px。 */
#studioView .stage-area {
  padding: var(--ui-panel-gap, 10px) 14px;
}

#studioView .stage-heading {
  margin-bottom: var(--ui-panel-gap, 10px);
}

/* 拍剪提示中的开拍资源：文字链接保持轻量，APP 二维码只在悬停或键盘聚焦时向上展开。 */
.kaipai-resource-link {
  color: #2563eb;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px dashed rgba(37, 99, 235, .38);
  transition: color .15s ease, border-color .15s ease;
}
.kaipai-resource-link:hover,
.kaipai-resource-link:focus-visible {
  color: #1d4ed8;
  border-bottom-color: currentColor;
  outline: none;
}
.kaipai-app-ref {
  position: relative;
  z-index: 4;
  display: inline-block;
}
.kaipai-qr-hint {
  position: absolute;
  z-index: 40;
  left: 50%;
  bottom: calc(100% + 8px);
  box-sizing: border-box;
  width: 132px;
  padding: 5px;
  border: 1px solid rgba(30, 41, 59, .10);
  border-radius: 8px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 8px 22px rgba(15, 23, 42, .14);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, 4px) scale(.96);
  transform-origin: 50% 100%;
  transition: opacity .14s ease, transform .14s ease, visibility .14s ease;
}
.kaipai-qr-hint img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px;
}
.kaipai-app-ref:hover .kaipai-qr-hint,
.kaipai-app-ref:focus-within .kaipai-qr-hint {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0) scale(1);
}

/* 剪辑播放器跨屏统一采用 300px 窄屏内部布局。 */
#studioView .s-preview-panel.prod-video-preview {
  position: sticky;
  top: 54px;
  width: 300px !important;
  min-width: 300px !important;
  max-width: 300px !important;
  height: auto !important;
  min-height: 0 !important;
  flex-basis: auto !important;
  padding-inline: 10px !important;
  box-sizing: border-box;
  overflow: visible !important;
  border-color: transparent !important;
  border-radius: 24px !important;
  box-shadow: none !important;
}
#studioView .s-preview-panel.prod-video-preview > .s-preview-head {
  display: block !important;
  position: absolute;
  z-index: 20;
  inset: 1px -1px 0;
  margin: 0;
  border: 1px solid #7b818b;
  border-radius: 24px;
  box-shadow: 0 0 0 2px #2f333a, 0 0 0 3px rgba(255,255,255,.72), 0 9px 22px rgba(20,24,32,.16), inset 0 0 0 1px rgba(255,255,255,.42);
  pointer-events: none;
}
#studioView .s-preview-panel.prod-video-preview::before,
#studioView .s-preview-panel.prod-video-preview::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 3px;
  background: #353941;
  pointer-events: none;
}
#studioView .s-preview-panel.prod-video-preview::before {
  top: 88px;
  right: -5px;
  height: 42px;
  border-radius: 0 3px 3px 0;
}
#studioView .s-preview-panel.prod-video-preview::after {
  top: 78px;
  left: -5px;
  height: 68px;
  border-radius: 3px 0 0 3px;
  background: linear-gradient(to bottom, #353941 0 12px, transparent 12px 22px, #353941 22px 42px, transparent 42px 48px, #353941 48px 68px);
}
#studioView .s-preview-panel.prod-video-preview > .prod-video-preview-head {
  width: 100%;
  height: auto;
  min-height: 86px;
  flex: 0 0 auto;
  margin: 0;
  padding: 16px 0 7px;
  box-sizing: border-box;
  flex-wrap: wrap;
  align-content: center;
  row-gap: 8px;
  border-radius: 21px 21px 0 0;
}
#studioView .s-preview-panel.prod-video-preview .s-preview-title-status,
#studioView .s-preview-panel.prod-video-preview .s-preview-result-actions {
  width: 100%;
}
#studioView .s-preview-panel.prod-video-preview .s-preview-result-actions {
  margin-left: 0;
  justify-content: flex-start;
}
#studioView .s-preview-panel.prod-video-preview .s-preview-result-actions [data-se-result-action="open"] { margin-left: auto; }
#studioView .s-preview-panel.prod-video-preview > .s-preview-action-row,
#studioView .s-preview-panel.prod-video-preview > .s-cover-mode-row {
  width: 100%;
  padding-inline: 0;
}
#studioView .s-preview-panel.prod-video-preview > .s-preview-action-row {
  height: 44px;
  flex-basis: 44px;
  gap: 8px;
}
#studioView .s-preview-panel.prod-video-preview .s-preview-state-switch {
  flex: 0 0 auto;
  min-width: 0;
  gap: 6px;
}
#studioView .s-preview-panel.prod-video-preview .s-preview-mode {
  min-width: 0;
  padding-inline: 10px;
  white-space: nowrap;
}
#studioView .s-preview-panel.prod-video-preview .s-preview-source-indicator {
  flex: 1 1 auto;
  width: 0;
}
#studioView .s-preview-panel.prod-video-preview > .prod-video-preview-body,
#studioView .s-preview-panel.prod-video-preview > .prod-video-preview-body[class*="s-preview-style-"] {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 9 / 16;
  flex: 0 0 auto !important;
}
#studioView .s-preview-panel.prod-video-preview .prod-video-preview-video { object-fit: contain !important; }
#studioView .s-preview-panel.prod-video-preview > .prod-video-preview-foot {
  width: 100%;
  padding-inline: 0;
  padding-bottom: 10px;
}
#studioView .s-cover-editing .s-preview-panel.prod-video-preview {
  height: auto !important;
  flex-basis: auto !important;
}

/* 生成视频播放器跨宽度统一复用原窄屏样式。 */
#studioView .prod-video-col-preview {
  flex: 0 0 300px;
  width: 300px;
  min-width: 300px;
  transform: translateY(-11px);
  position: relative;
}
#studioView .prod-video-col-preview > .prod-video-preview {
  width: 100%;
  min-height: 0;
  height: auto;
  padding-inline: 10px;
  box-sizing: border-box;
  border-color: #7b818b;
  border-radius: 22px;
  box-shadow:
    0 0 0 2px #2f333a,
    0 0 0 3px rgba(255,255,255,.72),
    0 9px 22px rgba(20,24,32,.16),
    inset 0 0 0 1px rgba(255,255,255,.42);
}
#studioView .prod-video-col-preview::before,
#studioView .prod-video-col-preview::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 3px;
  background: #353941;
  pointer-events: none;
}
#studioView .prod-video-col-preview::before {
  top: 88px;
  right: -4px;
  height: 42px;
  border-radius: 0 3px 3px 0;
}
#studioView .prod-video-col-preview::after {
  top: 78px;
  left: -4px;
  height: 68px;
  border-radius: 3px 0 0 3px;
  background: linear-gradient(to bottom, #353941 0 12px, transparent 12px 22px, #353941 22px 42px, transparent 42px 48px, #353941 48px 68px);
}
#studioView .prod-video-col-preview .prod-video-preview-head {
  width: 100%;
  height: 54px;
  flex-basis: 54px;
  padding-inline: 0;
  font-size: 14px;
  align-items: center;
}
#studioView .prod-video-col-preview .prod-video-preview-head > span:first-child {
  align-self: auto;
  margin-top: 0;
  line-height: 1.5;
}
#studioView .prod-video-col-preview .prod-video-preview-head > .ps-section-tools {
  gap: 6px;
  align-self: auto;
  margin-top: 0;
}
#studioView .prod-video-col-preview .prod-video-preview-head .button.compact {
  min-width: 48px;
  min-height: 30px;
  height: 30px;
  padding: 0 7px;
  border-radius: 8px;
  font-size: 12px;
}
#studioView .prod-video-col-preview .prod-video-preview-body {
  width: 100%;
  height: auto;
  aspect-ratio: 9 / 16;
  flex: 0 0 auto;
}
#studioView .prod-video-col-preview .prod-video-preview-foot {
  width: 100%;
  padding-inline: 0;
  padding-bottom: 10px;
}
#studioView .prod-video-col-preview .prod-video-preview-video { object-fit: contain; }

/* 桌面浏览器缩窄后的内容布局（同时覆盖 125% 直播演示基线）。
   这里只保留排期、声音生成和视频生成等结构差异；剪辑播放器已跨宽度统一。 */
@media (min-width: 821px) and (max-width: 1160px) {
  /* 1. 排期：保持全屏的左右并排，左侧说明随可用宽度自然换行。 */
  #studioView .schedule-top {
    grid-template-columns: minmax(0, 1fr) minmax(0, 650px);
    column-gap: 10px;
    row-gap: 0;
  }
  #studioView .schedule-top-right {
    width: 100%;
    max-width: 650px;
    justify-self: end;
  }
  #studioView .milestone-inline-row { gap: 6px; }
  #studioView .milestone-inline { padding-inline: 8px; }

  /* 2. 声音生成：保留可对照的双栏，允许标题工具自然换行。 */
  #studioView .prod-voice-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.22fr) minmax(280px, .78fr);
    gap: 10px;
  }
  #studioView .prod-voice-col-right { gap: 10px; }
  #studioView .prod-voice-grid .ps-section-title {
    min-width: 0;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    justify-content: flex-start;
    row-gap: 6px;
    text-align: left;
  }
  #studioView .prod-voice-col-left > .ps-section > .prod-final-script-heading {
    align-items: start;
    align-content: start;
  }
  #studioView .prod-voice-grid .ps-section-tools { min-width: 0; }
  #studioView .prod-final-script-heading-note { min-width: 0; }
  #studioView .prod-voice-col-left .ps-section-tools-left,
  #studioView .prod-voice-col-left .prod-final-script-count { transform: none; }

  /* 3. 视频生成：窄屏预览宽度与剪辑页保持一致，高度随 9:16 画面自适应。 */
  #studioView .prod-video-grid { gap: 10px; }
  #studioView .prod-video-col-config {
    max-width: none;
    flex: 1 1 auto;
  }
  #studioView .prod-video-driveaudio-head { flex-wrap: wrap; }
  #studioView .prod-video-driveaudio-hint { flex-basis: 180px; }

  /* 4. 剪辑视频：窄屏仍保留左侧纵向参数栏，配置和实时预览保持同屏。 */
  #studioView .s-edit-grid {
    grid-template-columns: 128px minmax(0, 1fr) 300px;
    gap: 10px;
    min-height: 0;
  }
  #studioView .s-param-panel {
    grid-column: 1;
    grid-row: 1;
    position: sticky;
    top: 54px;
    max-height: none;
    min-height: 0;
    height: auto;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    padding: 2px;
    overflow: hidden;
  }
  #studioView .s-param-header {
    flex: 0 0 auto;
    width: 100%;
    height: auto;
    min-height: 68px;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: 6px;
    margin: 0;
    padding: 6px 8px;
    border-right: 0;
    border-bottom: 0;
  }
  #studioView .s-param-header .s-edit-reset-defaults { margin-left: 0; }
  #studioView .s-param-nav {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    min-width: 0;
    width: calc(100% + 4px);
    margin-inline: -2px;
    padding-bottom: 0;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: thin;
  }
  #studioView .s-param-nav::-webkit-scrollbar {
    width: 6px;
  }
  #studioView .s-param-nav::-webkit-scrollbar-thumb {
    border-radius: 3px;
    background: #D7D9E0;
  }
  #studioView .s-param-item {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    height: auto;
    min-height: 48px;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: 4px minmax(0, 1fr) 36px;
    grid-template-rows: 20px auto;
    align-items: center;
    column-gap: 8px;
    row-gap: 3px;
    padding: 7px 10px;
  }
  #studioView .s-param-item::before {
    content:"";
    display:block;
    grid-column:1;
    grid-row:1 / 3;
    align-self:stretch;
    width:4px;
    min-height:32px;
    border-radius:2px;
    background:#D9DDE7;
  }
  #studioView .s-param-item.active::before { background:#6C5CE7; }
  #studioView .s-param-item .s-param-left {
    display: contents;
  }
  #studioView .s-param-item .s-param-info {
    display: contents;
  }
  #studioView .s-param-item .s-param-name {
    grid-column: 2;
    grid-row: 1;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: clip;
    text-align: left;
  }
  #studioView .s-param-item .s-param-desc {
    display: block;
    grid-column: 2 / -1;
    grid-row: 2;
    min-width: 0;
    margin-top: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow-wrap: normal;
    line-height: 1.35;
  }
  #studioView .s-param-item .s-toggle {
    grid-column: 3;
    grid-row: 1;
    margin-left: 0;
  }
  #studioView .s-config-panel {
    grid-column: 2;
    height: auto;
    min-height: 0;
    align-self: stretch;
  }
  #studioView .s-edit-grid:has(.s-config-mode[data-se-config="subtitle"] [data-se-subtitle-pane="edit"].active) {
    --s-subtitle-edit-panel-height: 736px;
  }
  #studioView .s-edit-grid:has(.s-config-mode[data-se-config="subtitle"] [data-se-subtitle-pane="edit"].active) .s-config-panel {
    height: var(--s-subtitle-edit-panel-height) !important;
    min-height: var(--s-subtitle-edit-panel-height) !important;
  }
  #studioView .s-edit-grid:has(.s-config-mode[data-se-config="subtitle"] [data-se-subtitle-pane="edit"].active) .s-preview-panel.prod-video-preview {
    height: calc(var(--s-subtitle-edit-panel-height) - 6px) !important;
    min-height: calc(var(--s-subtitle-edit-panel-height) - 6px) !important;
  }
  #studioView .s-edit-grid:has(.s-config-mode[data-se-config="subtitle"] [data-se-subtitle-pane="edit"].active) .s-preview-panel.prod-video-preview > .prod-video-preview-foot {
    padding-bottom: 4px;
  }
  #studioView .s-config-scroll { padding-inline: 15px; }
  #studioView .s-title-style-workspace,
  #studioView .s-subtitle-style-workspace,
  #studioView .s-cover-style-workspace {
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
  }
  #studioView .s-title-style-source,
  #studioView .s-subtitle-style-source,
  #studioView .s-cover-style-source {
    width: 190px;
    max-width: 190px;
    box-sizing: border-box;
  }
  #studioView .s-title-style-fields {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
  }
  #studioView .s-config-mode[data-se-config="subtitle"] .s-title-style-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  #studioView .s-config-mode[data-se-config="subtitle"] .s-subtitle-font-row {
    grid-column: 1 / -1;
  }
  #studioView .s-config-mode[data-se-config="title"] .s-title-style-field {
    grid-column: span 3;
  }
  #studioView .s-config-mode[data-se-config="title"] .s-title-style-field-wide {
    grid-column: 1 / span 4;
    grid-row: 1;
  }
  #studioView .s-config-mode[data-se-config="title"] .s-title-style-check {
    grid-column: span 1;
    grid-row: 1;
    min-width: 0;
    flex-direction: column-reverse;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 6px;
  }
  #studioView .s-config-mode[data-se-config="title"] .s-title-style-check input {
    margin: 0;
  }
  #studioView .s-preview-panel.prod-video-preview { grid-column: 3; }
}

/* 声音生成双栏共用纵向网格：右侧选择声音区以左侧文案框上边缘为准。 */
.prod-voice-grid {
  display: grid;
  container-type: inline-size;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
  grid-template-rows: auto auto auto;
  column-gap: var(--ui-panel-gap, 10px);
  row-gap: 0;
  align-items: stretch;
}
.prod-voice-col-left,
.prod-voice-col-right {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: 1 / 4;
  min-width: 0;
  gap: 0;
}
.prod-voice-col-left { grid-column: 1; }
.prod-voice-col-right { grid-column: 2; }
.prod-voice-col-left > .ps-section,
.prod-voice-col-right > .ps-section:first-child {
  display: contents;
}
.prod-voice-col-left > .ps-section > .ps-section-title,
.prod-voice-col-right > .ps-section:first-child > .ps-section-title {
  grid-row: 1;
}
.prod-voice-col-left > .ps-section > .ps-section-body {
  grid-row: 2 / 4;
}
.prod-voice-col-right > .ps-section:first-child > .ps-section-body {
  grid-row: 2;
}
.prod-voice-col-right > .ps-section:first-child .prod-config-row--voice {
  transform: translateY(-7.35px);
}
.prod-voice-col-right > .ps-section:last-child {
  grid-row: 3;
}

@media (min-width: 821px) and (max-width: 1160px) {
  #studioView .prod-voice-grid {
    grid-template-columns: minmax(0, 1.22fr) minmax(280px, .78fr);
    column-gap: 10px;
    row-gap: 0;
  }
  #studioView .prod-voice-col-right { gap: 0; }
}

/* 侧栏品牌文字按真实剩余宽度缩放，兼容不同 Chromium 字体度量与页面缩放。 */
.brand-copy {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
  overflow: visible;
}
.brand-copy strong,
.brand-copy small {
  display: block;
  white-space: nowrap;
  transform-origin: left center;
}
html.is-sogou-browser .brand-copy small { transform: scaleX(.72); }

/* 搜狗旧 Chromium 不完整支持 subgrid：让两栏子项直接参与外层网格。 */
html.is-sogou-browser .prod-voice-col-left,
html.is-sogou-browser .prod-voice-col-right {
  display: contents;
}
html.is-sogou-browser .prod-voice-col-left > .ps-section > .ps-section-title,
html.is-sogou-browser .prod-voice-col-left > .ps-section > .ps-section-body {
  grid-column: 1;
}
html.is-sogou-browser .prod-voice-col-right > .ps-section:first-child > .ps-section-title,
html.is-sogou-browser .prod-voice-col-right > .ps-section:first-child > .ps-section-body,
html.is-sogou-browser .prod-voice-col-right > .ps-section:last-child {
  grid-column: 2;
}
.prod-voice-col-left > .ps-section > .ps-section-title,
.prod-voice-col-left > .ps-section > .ps-section-body,
.prod-voice-col-right > .ps-section:first-child > .ps-section-title,
.prod-voice-col-right > .ps-section:first-child > .ps-section-body,
.prod-voice-col-right > .ps-section:last-child,
.prod-voice-col-right .prod-config-row,
.prod-voice-col-right .prod-voice-pick,
.prod-voice-col-right .prod-model-toggle,
.prod-voice-col-right .prod-adv-flat,
.prod-voice-col-right .ps-action,
.prod-voice-col-right #prodVoiceResult {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.prod-voice-col-right > .ps-section:first-child > .ps-section-body,
.prod-voice-col-right > .ps-section:last-child {
  width: 100%;
}

/* 生成视频·驱动音频标题行复用“最终文案”的三段式顶对齐规则。 */
#studioView .prod-video-driveaudio-head {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr) max-content;
  align-items: start;
  align-content: start;
  column-gap: var(--ui-title-description-gap, 16px);
  row-gap: 4px;
}
#studioView .prod-video-driveaudio-head > label {
  min-height: 32px;
  display: flex;
  align-items: center;
  align-self: start;
  margin: 0;
  line-height: 1.5;
  text-align: left;
}
#studioView .prod-video-driveaudio-head > .prod-video-driveaudio-hint {
  min-width: 0;
  min-height: 32px;
  display: block;
  box-sizing: border-box;
  padding-top: 7px;
  align-self: start;
  line-height: 1.5;
  text-align: left;
}
#studioView .prod-video-driveaudio-head > .ps-section-tools {
  min-height: 32px;
  margin-left: 0;
  align-self: start;
  justify-self: end;
}

/* 克隆结果：动作区、标题工具行与播放器使用固定节奏。 */
.prod-voice-col-right .ps-action--voice {
  margin-bottom: 0;
}
.prod-voice-storage {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-width:0;
  padding:10px 12px;
  margin:0 0 4px;
  border:1px solid var(--line,#e3e0f0);
  border-radius:10px;
  background:var(--panel-soft,#faf9ff);
  transition:border-color .16s ease, box-shadow .16s ease;
}
.prod-voice-storage.has-error {
  border-color:#ef4444;
  box-shadow:0 0 0 1px rgba(239,68,68,.12);
}
.prod-voice-storage__copy {
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.prod-voice-storage__copy strong { flex:0 0 auto; }
.prod-voice-storage__copy span {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--muted,#758096);
}
.prod-voice-storage__copy span.is-empty { color:#d97706; }
.prod-voice-storage #configureProdVoiceRootButton.is-configured {
  color:#8a94a6;
  font-weight:400;
  background:transparent;
  border-color:#d8dde7;
  box-shadow:none;
}
.prod-voice-storage #configureProdVoiceRootButton.is-configured:hover {
  color:#687386;
  background:#f3f5f8;
  border-color:#cfd5df;
}
.prod-voice-storage__error {
  display:block;
  margin:0 0 8px 12px;
  color:#dc2626;
  line-height:1.4;
}
.prod-voice-storage__error[hidden] { display:none; }
.prod-voice-col-right > .ps-section:last-child > .ps-section-title {
  display: flex;
  align-items: center;
  align-content: center;
  justify-content: space-between;
  min-height: 32px;
  margin-bottom: 10px;
}
.prod-voice-col-right > .ps-section:last-child .ps-section-tools,
.prod-voice-col-right > .ps-section:last-child .ps-section-tags {
  display: flex;
  align-items: center;
}
/* 发布校验提示只做视觉上移，不改变按钮及其他元素的布局位置。 */
.publish-config__validation {
  transform: translateY(-6px);
}

/* 字幕样式区默认跟随可用宽度压缩；横向滚动只留给最终极窄屏。 */
#studioView .s-config-panel:has(.s-config-mode[data-se-config="subtitle"]:not([hidden])) .s-config-scroll {
  overflow-x:hidden;
}
#studioView .s-config-mode[data-se-config="subtitle"] .s-subtitle-style-workspace {
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  overflow-x:hidden;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  scrollbar-gutter:auto;
  padding-bottom:0;
  transform:none;
  transform-origin:center;
}
#studioView .s-config-mode[data-se-config="subtitle"] .s-subtitle-style-workspace > .s-title-style-source,
#studioView .s-config-mode[data-se-config="subtitle"] .s-subtitle-style-workspace > .s-title-style-params {
  transform:none;
  transform-origin:center;
}
#studioView .s-config-mode[data-se-config="subtitle"] .s-subtitle-style-workspace::-webkit-scrollbar {
  height:8px;
}
#studioView .s-config-mode[data-se-config="subtitle"] .s-subtitle-style-workspace::-webkit-scrollbar-thumb {
  border-radius:4px;
  background:#DDE1EA;
}
@media (min-width:821px) and (max-width:1360px) {
  #studioView .s-config-mode[data-se-config="subtitle"] .s-subtitle-style-workspace {
    grid-template-columns:minmax(150px,.8fr) minmax(0,1.2fr);
  }
  #studioView .s-config-mode[data-se-config="subtitle"] .s-title-style-params {
    width:auto;
    min-width:0;
    max-width:none;
  }
}
/* 窄屏下生成声音按钮保持单行；仅微调横向内边距。 */
.prod-voice-col-right [data-prod-action="voice"] {
  flex:0 0 auto;
  padding-left:8px;
  padding-right:8px;
  white-space:nowrap;
}
/* 发布页三列一级区域：宽屏与窄屏的水平边框间距统一为 14px。 */
.publish-pack { column-gap:14px; }

/* 响应式文字职责：短标签固定占位，说明与提示承担换行。 */
.button,
.text-button,
.nav-item,
.product-intro-nav,
.field > span:first-child,
.field-label,
.s-param-group-title,
.s-config-label,
.s-edit-source-label,
.prod-config-label-row > label,
.prod-range-label,
.prod-video-label,
.ps-section-title > span:first-child,
.rail-tab {
  flex-shrink:0;
  white-space:nowrap;
}

.hint,
.muted,
.page-header-description,
.topbar-subtitle,
.view-intro p,
.prod-subpage-desc,
.prod-video-label-hint,
.publish-config__summary,
.publish-accounts__empty-hint {
  min-width:0;
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
}

/* 桌面浏览器宽度让位链 4/5：选题列表已折叠后，参数导航才缩成无图标窄栏；名称始终单行。 */
@media (min-width:1101px) and (max-width:1160px) {
  #studioView .s-edit-grid {
    grid-template-columns:220px minmax(0,1fr) 300px;
    gap:10px;
  }
  #studioView .s-param-panel {
    padding:0 10px 10px;
    gap:4px;
    overflow-y:auto;
  }
  #studioView .s-param-header {
    height:54px;
    min-height:54px;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin:0 8px 6px;
    padding:0;
  }
  #studioView .s-param-header .s-edit-reset-defaults { margin-left:auto; }
  #studioView .s-param-nav {
    display:flex;
    flex-direction:column;
    width:auto;
    margin-inline:-10px;
    padding-bottom:0;
    overflow:visible;
  }
  #studioView .s-param-item {
    min-height:0;
    grid-template-columns:minmax(0,1fr) 36px;
    grid-template-rows:20px auto;
    column-gap:10px;
    row-gap:3px;
    padding:10px 22px;
  }
  #studioView .s-param-item .s-param-icon { display:none; }
  #studioView .s-param-item::before { display:none; }
  #studioView .s-param-item .s-param-name { grid-column:1; grid-row:1; }
  #studioView .s-param-item .s-param-desc {
    display:block;
    grid-column:1 / -1;
    grid-row:2;
    white-space:nowrap;
  }
  #studioView .s-param-item .s-toggle { grid-column:2; grid-row:1; }
}

@media (min-width:821px) and (max-width:1100px) {
  #studioView .s-edit-grid { grid-template-columns:144px minmax(0,1fr) 300px; }
  #studioView .s-param-header { padding:14px 8px 6px; }
  #studioView .s-param-item .s-param-icon { display:none; }
  #studioView .s-param-item {
    grid-template-columns:4px minmax(0,1fr) 36px;
  }
  #studioView .s-param-item .s-param-name {
    grid-column:2;
    white-space:nowrap;
    text-overflow:ellipsis;
  }
  #studioView .s-param-item .s-param-desc { grid-column:2 / -1; }
  #studioView .s-param-item .s-toggle { grid-column:3; }
}

/* 参数内容是第一层让位者：只压缩弹性列和大块冗余空间，不压缩正常设计边距。 */
@media (min-width:821px) and (max-width:1500px) {
  #studioView .s-config-scroll {
    min-width:0;
    overflow-x:hidden !important;
  }
  #studioView .s-title-style-workspace,
  #studioView .s-subtitle-style-workspace,
  #studioView .s-cover-style-workspace {
    width:100%;
    min-width:0;
    max-width:100%;
    grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr) !important;
    gap:14px;
    overflow-x:hidden !important;
    padding-bottom:0;
    transform:none;
  }
  #studioView .s-title-style-workspace > .s-title-style-source,
  #studioView .s-subtitle-style-workspace > .s-title-style-source,
  #studioView .s-cover-style-workspace > .s-title-style-source {
    width:auto;
    min-width:0;
    max-width:none;
    padding:14px 4px 14px 14px;
    transform:none;
  }
  #studioView .s-title-style-workspace > .s-title-style-params,
  #studioView .s-subtitle-style-workspace > .s-title-style-params,
  #studioView .s-cover-style-workspace > .s-title-style-params {
    width:auto;
    min-width:0;
    max-width:none;
    transform:none;
  }
  #studioView .s-title-style-editor,
  #studioView .s-subtitle-style-editor,
  #studioView .s-cover-style-editor { min-width:0; padding:14px; }
  #studioView .s-title-style-fields,
  #studioView .s-cover-form-grid { min-width:0; gap:12px; }
  #studioView .s-title-style-field,
  #studioView .s-subtitle-font-field,
  #studioView .s-cover-form-grid label { min-width:0; }
  #studioView .s-title-style-field select,
  #studioView .s-cover-form-grid select {
    min-width:0;
    text-overflow:ellipsis;
  }
}

@media (min-width:1101px) and (max-width:1160px) {
  #studioView .s-title-style-workspace,
  #studioView .s-subtitle-style-workspace,
  #studioView .s-cover-style-workspace {
    grid-template-columns:minmax(160px,.8fr) minmax(0,1.2fr) !important;
    gap:10px;
  }
}

@media (min-width:821px) and (max-width:1100px) {
  #studioView .s-title-style-workspace,
  #studioView .s-subtitle-style-workspace,
  #studioView .s-cover-style-workspace {
    grid-template-columns:minmax(210px,.72fr) minmax(0,1.28fr) !important;
    gap:14px;
  }
  #studioView .s-title-style-workspace > .s-title-style-source,
  #studioView .s-subtitle-style-workspace > .s-title-style-source,
  #studioView .s-cover-style-workspace > .s-title-style-source { padding:14px 4px 14px 14px; }
  #studioView .s-title-style-editor,
  #studioView .s-subtitle-style-editor,
  #studioView .s-cover-style-editor { padding:14px; }
}

/* 模板列始终只允许纵向浏览，任何断点都不产生水平滑动条。 */
#studioView .s-title-style-workspace > .s-title-style-source,
#studioView .s-subtitle-style-workspace > .s-title-style-source,
#studioView .s-cover-style-workspace > .s-title-style-source,
#studioView .s-title-style-source .s-tpl-grid,
#studioView .s-subtitle-style-workspace .s-tpl-grid,
#studioView .s-cover-style-workspace .s-tpl-grid {
  min-width:0;
  max-width:100%;
  overflow-x:hidden !important;
}

/* 响应式只压缩大块冗余空间；原有正常设计边距保持原值，只有参与压缩的边距才以 10px 为下限。 */
#studioView .s-title-style-source .s-tpl-item,
#studioView .s-title-style-source .s-tpl-preview,
#studioView .s-cover-style-workspace .s-cover-template-preview {
  width:100%;
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
  overflow:hidden;
}
#studioView .s-title-style-source .stl-l1,
#studioView .s-title-style-source .stl-l2,
#studioView .s-subtitle-style-workspace .s-subtitle-preview,
#studioView .s-cover-style-workspace .s-cover-template-preview > span,
#studioView .s-title-style-source .s-tpl-name {
  display:block;
  min-width:0;
  max-width:100%;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:clip;
}

/* 封面模板两行文字达到安全宽度后不再压缩；不足空间由模板与参数共同工作区横向浏览。 */
@media (min-width:821px) {
  #studioView .s-cover-style-workspace > .s-title-style-source {
    min-width:210px;
  }
  #studioView .s-cover-style-workspace .s-cover-template-preview > span {
    width:max-content;
    max-width:none;
    overflow:visible;
    white-space:nowrap;
  }
}

/* 图标取消后统一进入完整窄栏：状态竖条 + 完整单行标题 + 弹性空白 + 开关。 */
@media (min-width:821px) and (max-width:1160px) {
  #studioView .s-edit-grid {
    grid-template-columns:144px minmax(0,1fr) 300px;
    gap:10px;
  }
  #studioView .s-param-panel {
    padding:2px;
    gap:4px;
    overflow:hidden;
  }
  #studioView .s-param-header {
    height:auto;
    min-height:68px;
    flex-direction:column;
    align-items:stretch;
    justify-content:center;
    gap:6px;
    margin:0;
    padding:14px 8px 6px;
  }
  #studioView .s-param-header .s-edit-reset-defaults { margin-left:0; }
  #studioView .s-param-nav {
    width:calc(100% + 4px);
    margin-inline:-2px;
    overflow-x:hidden;
    overflow-y:auto;
  }
  #studioView .s-param-item {
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    grid-template-columns:4px max-content minmax(0,1fr) 36px;
    grid-template-rows:20px auto;
    column-gap:8px;
    padding:7px 14px 7px 10px;
  }
  #studioView .s-param-item::before {
    content:"";
    display:block;
    grid-column:1;
    grid-row:1 / 3;
    align-self:stretch;
    width:4px;
    min-height:32px;
    border-radius:2px;
    background:#D9DDE7;
  }
  #studioView .s-param-item.active::before { background:#6C5CE7; }
  #studioView .s-param-item .s-param-icon { display:none; }
  #studioView .s-param-item .s-param-name {
    grid-column:2;
    grid-row:1;
    width:max-content;
    max-width:none;
    overflow:visible;
    white-space:nowrap;
    text-overflow:clip;
  }
  #studioView .s-param-item .s-param-desc {
    grid-column:2 / -1;
    grid-row:2;
    min-width:0;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
  }
  #studioView .s-param-item .s-toggle {
    grid-column:4;
    grid-row:1;
    margin-left:0;
    justify-self:end;
  }
}

/* 桌面浏览器宽度让位链 5/5：前三类导航完成让位后，仅在工作区真实溢出时显示顶部横向滚动条。 */
.s-style-workspace-top-scroll {
  display:none;
  width:100%;
  height:14px;
  box-sizing:border-box;
  margin:0 0 6px;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  scrollbar-color:#c9cdd8 #eef0f5;
  scrollbar-width:auto;
}
.s-style-workspace-top-scroll.has-overflow { display:none; }
.s-style-workspace-top-scroll__spacer { height:1px; pointer-events:none; }
.s-style-workspace-top-scroll::-webkit-scrollbar { height:14px; }
.s-style-workspace-top-scroll::-webkit-scrollbar-track { border-radius:999px; background:#eef0f5; }
.s-style-workspace-top-scroll::-webkit-scrollbar-thumb { border-radius:999px; background:#c9cdd8; }

/* 模板区与参数区纵向滚动条只统一粗细和滑块颜色。 */
#studioView .s-config-scroll::-webkit-scrollbar,
#studioView .s-title-style-source .s-tpl-grid::-webkit-scrollbar,
#studioView .s-title-style-editor::-webkit-scrollbar { width:8px !important; }
#studioView .s-config-scroll::-webkit-scrollbar-thumb,
#studioView .s-title-style-source .s-tpl-grid::-webkit-scrollbar-thumb,
#studioView .s-title-style-editor::-webkit-scrollbar-thumb { background:#c9cdd8 !important; }
#studioView .s-config-scroll::-webkit-scrollbar-thumb:hover,
#studioView .s-title-style-source .s-tpl-grid::-webkit-scrollbar-thumb:hover,
#studioView .s-title-style-editor::-webkit-scrollbar-thumb:hover { background:#888A93 !important; }

/* 模板区滚动条贴右边框；把让出的 4px 补回列表内边距，模板内容宽度保持不变。 */
#studioView .s-title-style-workspace > .s-title-style-source,
#studioView .s-subtitle-style-workspace > .s-title-style-source,
#studioView .s-cover-style-workspace > .s-title-style-source { padding-right:0; }
#studioView .s-title-style-source .s-tpl-grid { padding-right:9px; }

/* 横向浏览只保留上方代理滚动条；外层参数容器在任何尺寸都不得生成底部横向滚动条。 */
#studioView .s-config-scroll { overflow-x:hidden !important; }
#studioView .s-title-style-workspace,
#studioView .s-subtitle-style-workspace,
#studioView .s-cover-style-workspace { overflow-x:hidden; }
#studioView .s-title-style-workspace::-webkit-scrollbar:horizontal,
#studioView .s-subtitle-style-workspace::-webkit-scrollbar:horizontal,
#studioView .s-cover-style-workspace::-webkit-scrollbar:horizontal { height:0; }

/* 参数区自身只承载纵向浏览；横向浏览统一交给“模板 + 参数”共同工作区。 */
#studioView .s-title-style-params,
#studioView .s-title-style-editor,
#studioView .s-subtitle-style-editor,
#studioView .s-cover-style-editor {
  overflow-x:hidden !important;
}

@media (max-width:1050px) {
  #studioView .s-config-scroll,
  #studioView .s-config-panel:has(.s-config-mode[data-se-config="title"]:not([hidden])) .s-config-scroll,
  #studioView .s-config-panel:has(.s-config-mode[data-se-config="subtitle"]:not([hidden])) .s-config-scroll,
  #studioView .s-config-panel:has(.s-config-mode[data-se-config="cover"]:not([hidden])) .s-config-scroll {
    overflow-x:hidden !important;
  }
  #studioView .s-title-style-workspace,
  #studioView .s-subtitle-style-workspace,
  #studioView .s-cover-style-workspace {
    width:100%;
    min-width:0;
    max-width:100%;
    grid-template-columns:210px minmax(250px,1fr);
    gap:14px;
    overflow-x:auto !important;
    overflow-y:visible;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
    transform:none;
  }
  #studioView .s-title-style-workspace::-webkit-scrollbar,
  #studioView .s-subtitle-style-workspace::-webkit-scrollbar,
  #studioView .s-cover-style-workspace::-webkit-scrollbar { height:0; }
  #studioView .s-subtitle-style-workspace > .s-title-style-source,
  #studioView .s-subtitle-style-workspace > .s-title-style-params { transform:none; }
  #studioView .s-title-style-workspace > .s-title-style-params,
  #studioView .s-subtitle-style-workspace > .s-title-style-params,
  #studioView .s-cover-style-workspace > .s-title-style-params {
    min-width:250px;
    max-width:none;
    overflow-x:visible;
  }
}

/* 编辑器按真实可用宽度让位：宽参数栏造成内容溢出时，先切成无图标窄栏。 */
@media (min-width:821px) {
  #studioView .s-edit-grid.is-param-nav-compact {
    grid-template-columns:144px minmax(0,1fr) 300px;
    gap:10px;
  }
  #studioView .s-edit-grid.is-param-nav-compact .s-param-panel {
    grid-column:1;
    grid-row:1;
    position:sticky;
    top:54px;
    max-height:none;
    min-height:0;
    height:auto;
    align-self:stretch;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:4px;
    padding:2px;
    overflow:hidden;
  }
  #studioView .s-edit-grid.is-param-nav-compact .s-param-header {
    flex:0 0 auto;
    width:100%;
    height:auto;
    min-height:68px;
    flex-direction:column;
    align-items:stretch;
    justify-content:center;
    gap:6px;
    margin:0;
    padding:14px 8px 6px;
    border-right:0;
    border-bottom:0;
  }
  #studioView .s-edit-grid.is-param-nav-compact .s-param-header .s-edit-reset-defaults { margin-left:0; }
  #studioView .s-edit-grid.is-param-nav-compact .s-param-nav {
    display:flex;
    flex:1 1 auto;
    flex-direction:column;
    align-items:stretch;
    gap:4px;
    min-width:0;
    width:calc(100% + 4px);
    margin-inline:-2px;
    padding-bottom:0;
    overflow-x:hidden;
    overflow-y:auto;
    scrollbar-width:thin;
  }
  #studioView .s-edit-grid.is-param-nav-compact .s-param-nav::-webkit-scrollbar { width:6px; }
  #studioView .s-edit-grid.is-param-nav-compact .s-param-nav::-webkit-scrollbar-thumb {
    border-radius:3px;
    background:#D7D9E0;
  }
  #studioView .s-edit-grid.is-param-nav-compact .s-param-item {
    flex:0 0 auto;
    width:100%;
    max-width:100%;
    height:auto;
    min-height:48px;
    box-sizing:border-box;
    display:grid;
    grid-template-columns:4px minmax(0,1fr) 36px;
    grid-template-rows:20px auto;
    align-items:center;
    column-gap:8px;
    row-gap:3px;
    padding:7px 14px 7px 10px;
  }
  #studioView .s-edit-grid.is-param-nav-compact .s-param-item::before {
    content:"";
    display:block;
    grid-column:1;
    grid-row:1 / 3;
    align-self:stretch;
    width:4px;
    min-height:32px;
    border-radius:2px;
    background:#D9DDE7;
  }
  #studioView .s-edit-grid.is-param-nav-compact .s-param-item.active::before { background:#6C5CE7; }
  #studioView .s-edit-grid.is-param-nav-compact .s-param-item .s-param-left,
  #studioView .s-edit-grid.is-param-nav-compact .s-param-item .s-param-info { display:contents; }
  #studioView .s-edit-grid.is-param-nav-compact .s-param-item .s-param-icon { display:none; }
  #studioView .s-edit-grid.is-param-nav-compact .s-param-item .s-param-name {
    grid-column:2;
    grid-row:1;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
    text-align:left;
  }
  #studioView .s-edit-grid.is-param-nav-compact .s-param-item .s-param-desc {
    display:block;
    grid-column:2 / -1;
    grid-row:2;
    min-width:0;
    margin-top:0;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
    overflow-wrap:normal;
    line-height:1.35;
  }
  #studioView .s-edit-grid.is-param-nav-compact .s-param-item .s-toggle {
    grid-column:3;
    grid-row:1;
    margin-left:0;
  }
  #studioView .s-edit-grid.is-param-nav-compact .s-config-panel { grid-column:2; }
  #studioView .s-edit-grid.is-param-nav-compact .s-preview-panel.prod-video-preview { grid-column:3; }

  /* 参数导航完成让位后仍有真实溢出，才固定模板/参数最小宽度并显示顶部代理滚动条。 */
  #studioView .s-edit-grid.is-workspace-scrollable .s-title-style-workspace,
  #studioView .s-edit-grid.is-workspace-scrollable .s-subtitle-style-workspace,
  #studioView .s-edit-grid.is-workspace-scrollable .s-cover-style-workspace {
    width:100%;
    min-width:0;
    max-width:100%;
    grid-template-columns:210px minmax(250px,1fr) !important;
    gap:14px;
    overflow-x:auto !important;
    overflow-y:visible;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
    transform:none;
  }
  #studioView .s-edit-grid.is-workspace-scrollable .s-title-style-workspace > .s-title-style-params,
  #studioView .s-edit-grid.is-workspace-scrollable .s-subtitle-style-workspace > .s-title-style-params,
  #studioView .s-edit-grid.is-workspace-scrollable .s-cover-style-workspace > .s-title-style-params {
    min-width:250px;
    max-width:none;
    overflow-x:visible;
  }
  #studioView .s-edit-grid.is-workspace-scrollable .s-style-workspace-top-scroll.has-overflow { display:block; }
}

@media (min-width:821px) and (max-width:1160px) {
  #studioView .s-edit-grid.is-param-nav-compact .s-param-item {
    width:100%;
    max-width:100%;
    grid-template-columns:4px max-content minmax(0,1fr) 36px;
  }
  #studioView .s-edit-grid.is-param-nav-compact .s-param-item .s-param-name {
    grid-column:2;
    width:max-content;
    max-width:none;
    overflow:visible;
    white-space:nowrap;
    text-overflow:clip;
  }
  #studioView .s-edit-grid.is-param-nav-compact .s-param-item .s-toggle { grid-column:4; justify-self:end; }
}

/* 封面模板安全宽度必须由网格列承担，禁止子容器溢出后覆盖参数列。 */
@media (min-width:821px) {
  #studioView .s-cover-style-workspace {
    grid-template-columns:minmax(210px,.8fr) minmax(0,1.2fr) !important;
  }
  #studioView .s-edit-grid.is-workspace-scrollable .s-cover-style-workspace {
    grid-template-columns:210px minmax(250px,1fr) !important;
  }
}
.prod-video-progress{width:min(320px,72%);height:8px;margin:14px auto 8px;border-radius:999px;background:#ebe9f7;overflow:hidden}
.prod-video-progress-bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,#7462ed,#5b4ae0);transition:width .25s ease}

/* 全站文本框字数与自动保存状态：字数在左、固定 10px 间距、状态槽内左对齐。 */
.field-save-status,
.prod-final-script-save,
#sourceTextSaveStatus,
#sourceNoteSaveStatus,
.capture-idea-modal .inspiration-draft-status {
  box-sizing:border-box;
  width:54px;
  min-width:54px;
  flex:0 0 54px;
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  color:#1a7f43 !important;
  font-size:12px !important;
  font-weight:400 !important;
  line-height:1.4;
  text-align:left;
  white-space:nowrap;
  transform:none;
}
.field-save-status::before,
.prod-final-script-save::before,
#sourceTextSaveStatus::before,
#sourceNoteSaveStatus::before,
.capture-idea-modal .inspiration-draft-status::before {
  content:"";
  width:6px;
  height:6px;
  flex:0 0 6px;
  margin-right:4px;
  border-radius:50%;
  background:currentColor !important;
}
.field-save-status.saving,
.prod-final-script-save.saving,
#sourceTextSaveStatus.saving,
#sourceNoteSaveStatus.saving,
.capture-idea-modal .inspiration-draft-status.saving {
  color:#d4a72c !important;
}
.field-save-status.error,
#sourceTextSaveStatus.error,
#sourceNoteSaveStatus.error,
.capture-idea-modal .inspiration-draft-status.error {
  color:#bd4545 !important;
}
.field-save-head > .field-save-status,
.source-text-editor-head > [role="status"] { margin-left:auto; }
.diagnosis-field-meta,
.compare-block-head .field-save-meta,
.field-save-head .publish-field-meta,
.capture-idea-modal .capture-field-meta,
.ps-section-tools-right {
  gap:0;
  justify-content:flex-end;
  margin-left:auto;
  transform:translateX(6px);
}
.field-save-head > .field-save-status,
.source-text-editor-head > [role="status"] { transform:translateX(6px); }
.diagnosis-field-meta .field-save-status,
.compare-block-head .field-save-meta > .field-save-status,
.publish-content-settings .publish-field-meta > .field-save-status,
.capture-idea-modal .capture-field-meta .inspiration-draft-status,
#prodShootScriptSaveStatus {
  order:1;
  width:54px;
  min-width:54px;
  flex-basis:54px;
  margin-left:10px;
  justify-content:flex-start;
  text-align:left;
  transform:none;
}
.prod-voice-col-left > .ps-section > .prod-final-script-heading > .prod-final-script-heading-controls {
  grid-template-columns:100px 116px 54px;
  column-gap:10px;
  transform:translateX(6px);
}
#prodFinalScriptSaveStatus {
  width:54px;
  min-width:54px;
  flex-basis:54px;
  margin-left:0;
  justify-content:flex-start;
  text-align:left;
  transform:none;
}
