/*
 * Editorial Control Room
 * Presentation-only skin for the existing local workbench.
 * No selectors below are used as application state; removing this file or
 * opening the page with ?ui=legacy restores the original Light Atelier skin.
 */
html.ui-editorial {
  scroll-behavior: smooth;
  --paper: #f4f1ea;
  --paper-2: #ede9e0;
  --panel: #fffdf8;
  --panel-2: #f8f5ee;
  --ink: #1d252c;
  --ink-2: #4e5b66;
  --ink-3: #69727d;
  --line: #dad5ca;
  --line-2: #e7e2d9;
  --line-soft: #eee9df;
  --accent: #0f5e56;
  --accent-ink: #0a443f;
  --accent-soft: #e3f0ed;
  --accent-deep: #0a3b36;
  --acc: #0f5e56;
  --acc2: #b6d94c;
  --warn: #e58b4e;
  --bad: #d95c5c;
  --c-blue: #0f5e56;
  --c-blue-ink: #0a443f;
  --c-green: #b6d94c;
  --c-green-ink: #4f6810;
  --c-amber: #e58b4e;
  --c-amber-ink: #a55222;
  --c-red: #d95c5c;
  --c-red-ink: #a53b3b;
  --green-tint: #f1f7dc;
  --green-line: rgba(122, 153, 38, .38);
  --amber-soft: #fff0e5;
  --red-soft: #fbe9e7;
  --neutral-bg: #efede8;
  --panel-warm: #fffdf8;
  --shadow-sm: 0 1px 0 rgba(29, 37, 44, .05), 0 8px 22px rgba(62, 55, 42, .055);
  --shadow-md: 0 2px 0 rgba(29, 37, 44, .06), 0 18px 42px rgba(62, 55, 42, .12);
  --shadow-accent: 0 6px 18px rgba(15, 94, 86, .16);
}

html.ui-editorial body {
  background:
    radial-gradient(760px 520px at 100% -12%, rgba(15, 94, 86, .07), transparent 66%),
    radial-gradient(680px 480px at 0% 100%, rgba(182, 217, 76, .09), transparent 65%),
    var(--paper);
  color: var(--ink);
}

html.ui-editorial body::before {
  opacity: .025;
  mix-blend-mode: multiply;
}

html.ui-editorial .side {
  width: 236px;
  flex-basis: 236px;
  padding: 24px 17px 18px;
  border-right: 1px solid var(--line);
  background: rgba(255, 253, 248, .78);
  box-shadow: 8px 0 28px rgba(62, 55, 42, .04);
}

html.ui-editorial .logo {
  padding: 2px 8px 22px;
  border-bottom: 1px solid var(--line-2);
}

html.ui-editorial .logo .mark {
  width: 40px;
  height: 40px;
  flex-basis: 40px;
  border-radius: 12px;
  background: var(--ink);
  box-shadow: 4px 4px 0 var(--acc2);
}

html.ui-editorial .logo .name {
  color: var(--ink);
  letter-spacing: -.02em;
}

html.ui-editorial .logo .sub {
  color: var(--ink-3);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: 10px;
}

html.ui-editorial .nav {
  gap: 6px;
  margin-top: 14px;
}

html.ui-editorial .nav .label,
html.ui-editorial .nav-workflow-label {
  color: var(--ink-3);
  letter-spacing: .14em;
  font-size: 10px;
  font-weight: 800;
}

html.ui-editorial .nav-workflow-label.copy-label {
  color: var(--accent-ink);
}

html.ui-editorial .nav-workflow-label.video-label {
  color: var(--c-amber-ink);
}

html.ui-editorial .nav button {
  min-height: 42px;
  border-radius: 7px;
  color: var(--ink-2);
  font-size: var(--fs-sm);
  transition: background .18s ease, color .18s ease, transform .22s cubic-bezier(.34,1.56,.64,1);
}

html.ui-editorial .nav button:hover {
  background: var(--panel-2);
  color: var(--ink);
  transform: translateX(3px) scale(1.02);
}

html.ui-editorial .nav button.active,
html.ui-editorial .nav button.copy-link.active {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--panel);
  box-shadow: 4px 4px 0 var(--acc2);
}

html.ui-editorial .nav button.video-link.active {
  background: #7d421f;
  border-color: #7d421f;
  color: #fffaf2;
  box-shadow: 4px 4px 0 #f0b56f;
}

html.ui-editorial .nav button.active .ico,
html.ui-editorial .nav button.video-link.active .ico {
  color: inherit;
}

html.ui-editorial .foot {
  padding: 13px;
  border-radius: 8px;
  background: var(--panel-2);
  border-color: var(--line);
}

html.ui-editorial .foot .mh-item {
  border-radius: 6px;
  background: var(--panel);
  border-color: var(--line-2);
}

html.ui-editorial .main {
  background: transparent;
}

html.ui-editorial .topbar {
  min-height: 72px;
  padding: 15px 30px;
  background: rgba(244, 241, 234, .84);
  border-bottom-color: var(--line);
}

html.ui-editorial {
  --step-pulse-rgb: 15,94,86;
}

html.ui-editorial .stepper.video {
  --step-pulse-rgb: 229,139,78;
}

@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
  html.ui-editorial .side { background: var(--panel); }
  html.ui-editorial .topbar { background: var(--paper); }
}

html.ui-editorial .topbar .ptitle {
  font-size: var(--fs-title);
  letter-spacing: -.035em;
}

html.ui-editorial .topbar .pmeta {
  height: 32px;
  border-radius: 6px;
  background: var(--panel);
  border-color: var(--line);
  font-size: 11px;
}

html.ui-editorial .workflow-context {
  min-height: 60px;
  padding: 12px 30px;
  background: rgba(255, 253, 248, .86);
  border-bottom-color: var(--line);
}

html.ui-editorial .workflow-context .wf-mark {
  border-radius: 7px;
  background: var(--ink);
  color: var(--panel);
}

html.ui-editorial .workflow-context.video .wf-mark {
  background: var(--c-amber);
  color: var(--ink);
}

html.ui-editorial .stepper {
  min-height: 70px;
  padding: 11px 30px;
  background: rgba(255, 253, 248, .9);
  border-bottom-color: var(--line);
}

html.ui-editorial .step {
  min-height: 44px;
  border-radius: 7px;
  font-size: var(--fs-sm);
}

html.ui-editorial .step:hover {
  background: var(--panel-2);
}

html.ui-editorial .step .num {
  width: 38px;
  height: 38px;
  flex-basis: 38px;
  border-radius: 8px;
  font-size: var(--fs-sm);
}

html.ui-editorial .step.now .num {
  box-shadow: 0 0 0 4px var(--accent-soft);
}

html.ui-editorial .step .arrow {
  height: 2px;
  background: var(--line);
}

html.ui-editorial .content {
  padding: 28px 32px 52px;
}

html.ui-editorial .view-head {
  margin-bottom: 22px;
}

html.ui-editorial .view-head h2 {
  font-size: var(--fs-display);
  letter-spacing: -.035em;
}

html.ui-editorial .view-head p {
  color: var(--ink-2);
}

html.ui-editorial .view-head .workbench-kicker {
  border-radius: 5px;
  padding: 4px 8px;
  background: var(--ink);
  color: var(--panel);
  font-size: 10px;
  letter-spacing: .13em;
  text-transform: uppercase;
}

html.ui-editorial .view-head .workbench-kicker.video {
  background: var(--c-amber);
  color: var(--ink);
}

html.ui-editorial .panel,
html.ui-editorial .card {
  border-radius: 10px;
  border-color: var(--line);
  background: var(--panel);
  box-shadow: var(--surface-glow), var(--shadow-sm);
}

html.ui-editorial .card {
  margin-bottom: 18px;
}

html.ui-editorial button,
html.ui-editorial select,
html.ui-editorial input,
html.ui-editorial textarea {
  font-family: inherit;
}

html.ui-editorial button {
  border-radius: 6px;
  transition: transform .18s cubic-bezier(.34,1.56,.64,1), box-shadow .18s ease, background .14s ease, border-color .14s ease;
}

html.ui-editorial button:hover:not(:disabled):not(.is-loading) {
  transform:translateY(-2px) scale(1.015);
}

html.ui-editorial button:active:not(:disabled):not(.is-loading) {
  transform:translateY(1px) scale(.985);
  transition-duration:.08s;
}

html.ui-editorial button.primary {
  background: var(--accent);
  border-color: var(--accent);
  box-shadow: var(--shadow-accent);
}

/* Existing utility controls already have their own semantics. Keep them
   neutral instead of letting the generic primary rule turn them blue with
   their legacy muted text color (an unreadable 1:1-ish contrast pair). */
html.ui-editorial .task-center-batchbar button,
html.ui-editorial .library-close,
html.ui-editorial .vclose,
html.ui-editorial .pw-toggle,
html.ui-editorial .copy-mode-btn,
html.ui-editorial .copy-plan-choice-btn,
html.ui-editorial .copy-plan-option-button,
html.ui-editorial .copy-plan-store-option,
html.ui-editorial .copy-plan-row-edit,
html.ui-editorial .copy-plan-row-reset,
html.ui-editorial .plan-count-btn,
html.ui-editorial .task-error-copy,
html.ui-editorial .task-detail-copy-error {
  background: var(--panel);
  border-color: var(--line);
  color: var(--ink-2);
  box-shadow: none;
}

html.ui-editorial .copy-mode-btn.active,
html.ui-editorial .copy-plan-choice-btn.is-active,
html.ui-editorial .copy-plan-option-button.is-active,
html.ui-editorial .copy-plan-store-option.is-active {
  background: var(--accent-soft);
  border-color: rgba(15, 94, 86, .32);
  color: var(--accent-ink);
  box-shadow: 0 1px 2px rgba(15, 94, 86, .10);
}

html.ui-editorial .pw-toggle,
html.ui-editorial .library-close,
html.ui-editorial .vclose {
  background: var(--panel-2);
}

html.ui-editorial .copy-mode-btn.active strong {
  color: var(--accent-ink);
}

/* Danger actions on light surfaces need the darker semantic ink; the
   original coral token is intentionally reserved for fills and indicators. */
html.ui-editorial button.ghost[style*="--c-red"],
html.ui-editorial #retryFailBtn,
html.ui-editorial .acard-actions .btn-no {
  color: var(--c-red-ink) !important;
}

html.ui-editorial button.ghost {
  background: var(--panel);
  border-color: var(--line);
  color: var(--ink-2);
}

html.ui-editorial button.ok {
  background: var(--acc2);
  border-color: #9fbe3d;
  color: #243000;
}

html.ui-editorial button.danger {
  background: var(--red-soft);
  border-color: rgba(217, 92, 92, .4);
  color: var(--c-red-ink);
}

/* The Editorial status fills are intentionally light. Use the shared dark
   ink for text so passed, warning, and rejected actions stay readable. */
html.ui-editorial .acard .bt .ok,
html.ui-editorial a.dl,
html.ui-editorial .copy-draft-actions .copy-draft-review.passed,
html.ui-editorial .copy-draft-actions .copy-draft-review.regenerating,
html.ui-editorial .copy-result-actions button.copy-review-pass.is-active,
html.ui-editorial .copy-result-actions button.copy-review-regenerate.is-active {
  color: var(--ink);
}

html.ui-editorial .copy-draft-actions .copy-draft-review.rejected,
html.ui-editorial .copy-result-actions button.copy-review-reject.is-active,
html.ui-editorial #genBar .prog .fail,
html.ui-editorial #vidBar .prog .fail,
html.ui-editorial .tm-center-badge.alert {
  color: #1e1414;
}

html.ui-editorial .stepper.video .step.done .num,
html.ui-editorial .stepper.video .step.now .num,
html.ui-editorial .workflow-overview-card.video .workflow-overview-head .workflow-overview-mark {
  color: var(--ink);
}

html.ui-editorial input,
html.ui-editorial select,
html.ui-editorial textarea {
  border-color: var(--line);
  border-radius: 6px;
  background: var(--panel);
  color: var(--ink);
}

html.ui-editorial input:focus-visible,
html.ui-editorial select:focus-visible,
html.ui-editorial textarea:focus-visible,
html.ui-editorial button:focus-visible,
html.ui-editorial a:focus-visible,
html.ui-editorial summary:focus-visible {
  outline: 3px solid rgba(15, 94, 86, .28);
  outline-offset: 2px;
}

/* 顶栏状态条：黑横幅 → 融合式仪表条（方向A：去「贴上去的黑」，与纸感底长成一体） */
html.ui-editorial .task-monitor {
  background: linear-gradient(180deg, var(--panel-2), var(--panel));
  border-bottom: 1px solid var(--line);
  box-shadow: var(--surface-glow);
  color: var(--ink-2);
}

html.ui-editorial .task-monitor .tm-cap {
  color: var(--ink-3);
  font-weight: 600;
  letter-spacing: .06em;
}

html.ui-editorial .task-monitor .tm-center-button {
  background: var(--accent);
  border-color: var(--accent-deep);
  color: #f4f8f6;
}

html.ui-editorial .task-monitor .tm-item {
  color: var(--ink-2);
}

html.ui-editorial .task-monitor .tm-count,
html.ui-editorial .task-monitor .tm-status {
  color: var(--ink);
}

html.ui-editorial .task-monitor .tm-sep {
  color: var(--line);
}

html.ui-editorial .task-center-drawer,
html.ui-editorial .task-detail-drawer,
html.ui-editorial .library-drawer,
html.ui-editorial .library-modal-box,
html.ui-editorial .plan-picker {
  background: var(--panel);
  border-left-color: var(--line);
  box-shadow: -18px 0 48px rgba(29, 37, 44, .16);
}

html.ui-editorial .task-center-head,
html.ui-editorial .task-detail-head,
html.ui-editorial .library-drawer-head {
  background: rgba(255, 253, 248, .96);
  color: var(--ink);
  border-bottom: 1px solid var(--line-soft);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 18px 20px 14px;
}

html.ui-editorial .task-center-head h3,
html.ui-editorial .task-detail-head h3,
html.ui-editorial .library-drawer-head h2 {
  color: var(--ink);
}

html.ui-editorial .task-center-head .task-center-sub,
html.ui-editorial .task-detail-head .task-detail-sub,
html.ui-editorial .library-drawer-head p {
  color: var(--ink-3);
}

/* 生产进度条：黑横幅 → 融合式仪表条（与顶栏同型，去「贴上去的黑」） */
html.ui-editorial #genBar,
html.ui-editorial #vidBar {
  background: linear-gradient(180deg, var(--panel-2), var(--panel));
  border-bottom-color: var(--line);
  box-shadow: var(--surface-glow);
  color: var(--ink-2);
}

html.ui-editorial #genBar .label,
html.ui-editorial #vidBar .label {
  color: var(--ink);
}

html.ui-editorial #genBar .fakebar,
html.ui-editorial #vidBar .fakebar {
  background: var(--paper-2);
  border: 1px solid var(--line-2);
}

html.ui-editorial #genBar .fakebar-fill,
html.ui-editorial #vidBar .fakebar-fill {
  background: var(--acc2);
}

html.ui-editorial .workflow-overview {
  gap: 18px;
}

html.ui-editorial .workflow-overview-card {
  position: relative;
  border-radius: 10px;
  border-color: var(--line);
  background: var(--panel);
  box-shadow: var(--surface-glow), var(--shadow-sm);
  overflow: hidden;
}

html.ui-editorial .workflow-overview-card::after {
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  content: '';
  background: var(--accent);
}

html.ui-editorial .workflow-overview-card.video::after {
  background: var(--c-amber);
}

html.ui-editorial .workflow-overview-card:hover {
  border-color: var(--ink);
  box-shadow: var(--surface-glow), var(--shadow-md);
  transform:translateY(-3px) scale(1.008);
}

html.ui-editorial .workflow-overview-card:active {
  transform:translateY(-1px) scale(.995);
}

html.ui-editorial .workflow-overview-head {
  margin: 0 -18px 14px;
  padding: 20px 18px 14px;
  border-bottom: 1px solid var(--line-2);
}

html.ui-editorial .workflow-overview-head .workflow-overview-mark {
  border-radius: 7px;
  background: var(--ink);
  color: var(--panel);
}

html.ui-editorial .workflow-overview-card.video .workflow-overview-head .workflow-overview-mark {
  background: var(--c-amber);
  color: #fffaf2;
}

html.ui-editorial .workflow-overview-stat {
  border-color: var(--line-2);
  background: var(--panel-warm);
  transition:background .16s ease,box-shadow .18s ease,transform .18s cubic-bezier(.34,1.56,.64,1);
}

html.ui-editorial .workflow-overview-stat:hover {
  background: var(--surface-raised);
  box-shadow: var(--surface-glow), var(--shadow-sm);
  transform:translateY(-2px) scale(1.01);
}

html.ui-editorial .workflow-overview-stat:active {
  transform:translateY(0) scale(.99);
}

html.ui-editorial .workflow-overview-stat.attention {
  background: var(--accent-soft);
  box-shadow: inset 0 0 0 1px rgba(15, 94, 86, .22);
}

html.ui-editorial .workflow-overview-card.video .workflow-overview-stat.attention {
  background: var(--amber-soft);
  box-shadow: inset 0 0 0 1px rgba(229, 139, 78, .3);
}

html.ui-editorial .workflow-overview-stat b {
  color: var(--ink);
}

html.ui-editorial .workflow-overview-stat-action {
  color: var(--accent-ink);
}

html.ui-editorial .workflow-overview-card.video .workflow-overview-stat-action {
  color: var(--c-amber-ink);
}

html.ui-editorial .dash-exception-row {
  border-color: var(--line);
  background: var(--panel);
}

html.ui-editorial .dash-exception-row button {
  border-color: var(--line);
  background: var(--panel-2);
  color: var(--accent-ink);
}

html.ui-editorial .toast {
  border-color: var(--line);
  box-shadow: var(--shadow-md);
}

@media (max-width: 1040px) {
  html.ui-editorial .side {
    width: 208px;
    flex-basis: 208px;
  }
  html.ui-editorial .topbar,
  html.ui-editorial .workflow-context,
  html.ui-editorial .content,
  html.ui-editorial .stepper {
    padding-left: 22px;
    padding-right: 22px;
  }
}

@media (max-width: 780px) {
  html.ui-editorial .content {
    padding: 18px 14px 30px;
  }
  html.ui-editorial .topbar {
    min-height: 60px;
    padding-top: 11px;
    padding-bottom: 11px;
  }
  html.ui-editorial .topbar .ptitle {
    font-size: var(--fs-h);
  }
  html.ui-editorial .workflow-context {
    padding-top: 9px;
    padding-bottom: 9px;
  }
  html.ui-editorial .workflow-overview-card {
    min-width: 0;
  }
}

@media (max-width: 640px) {
  html.ui-editorial .view-head h2 {
    font-size: 24px;
  }
  html.ui-editorial .workflow-overview-stats {
    max-width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  html.ui-editorial *,
  html.ui-editorial *::before,
  html.ui-editorial *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
  }
}

/* The legacy class is intentionally explicit for screenshots and support. */
html.ui-legacy .ui-editorial-only { display: none !important; }

html.ui-editorial .copy-draft-batch-status {
  background: var(--panel);
  border-color: var(--line);
  color: var(--ink-2);
  letter-spacing: .01em;
}
html.ui-editorial .copy-draft-batch-status:before {
  content: '';
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  margin-right: 5px;
  border-radius: 50%;
  background: var(--accent);
}
@media (max-width: 760px) {
  html.ui-editorial .copy-draft-head { align-items: flex-start; }
  html.ui-editorial .copy-draft-batch-status { max-width: 100%; }
}

/* ============================================================
 * 墨青换色收口：index.html 内 42 处蓝 rgba(24,90,219,*) 硬编码
 * 属 legacy 共享基线（不可改动），此处按同语义逐选择器覆盖为墨青，
 * 消除「墨青底 + 蓝边框/蓝光晕」混色。全部规则仅 ui-editorial 作用域。
 * ============================================================ */
html.ui-editorial .nav button.active,
html.ui-editorial .nav button.copy-link.active {
  border-color: rgba(15, 94, 86, .22);
}

html.ui-editorial .workflow-context.copy {
  border-bottom-color: rgba(15, 94, 86, .20);
}

html.ui-editorial .workflow-overview-stat.attention {
  box-shadow: inset 0 0 0 1px rgba(15, 94, 86, .20);
}

html.ui-editorial .stepper.copy {
  border-bottom-color: rgba(15, 94, 86, .20);
}

html.ui-editorial .task-monitor .tm-item.live {
  border-color: rgba(15, 94, 86, .28);
}

html.ui-editorial .task-monitor.copy-scope #tmImg {
  border-color: rgba(15, 94, 86, .28);
}

@keyframes tmPulseEditorial {
  0% { box-shadow: 0 0 0 0 rgba(15, 94, 86, .5); }
  70% { box-shadow: 0 0 0 6px rgba(15, 94, 86, 0); }
  100% { box-shadow: 0 0 0 0 rgba(15, 94, 86, 0); }
}

html.ui-editorial .task-monitor .tm-dot.running {
  animation-name: tmPulseEditorial;
}

html.ui-editorial .quick-copy-chip,
html.ui-editorial .copy-quick-chip {
  background: rgba(15, 94, 86, .10);
}

html.ui-editorial .copy-workflow-steps span.active {
  border-color: rgba(15, 94, 86, .28);
}

html.ui-editorial .workflow-task-status:focus-visible {
  box-shadow: 0 0 0 2px rgba(15, 94, 86, .20);
}

html.ui-editorial .accept-stats .chip.act {
  border-color: rgba(15, 94, 86, .20);
}

html.ui-editorial .src-chip {
  border-color: rgba(15, 94, 86, .20);
}

html.ui-editorial .plan-slot.empty:hover .slot-plus {
  text-shadow: 0 2px 6px rgba(15, 94, 86, .28);
}

html.ui-editorial .case-card-cover {
  background: linear-gradient(135deg, rgba(15, 94, 86, .12), rgba(15, 94, 86, .04));
  color: rgba(15, 94, 86, .75);
}

html.ui-editorial .library-filter.active {
  border-color: rgba(15, 94, 86, .28);
}

html.ui-editorial .library-selected-bar {
  border-color: rgba(15, 94, 86, .28);
}

html.ui-editorial .library-dropzone {
  border-color: rgba(15, 94, 86, .35);
  background: var(--accent-soft);
}

html.ui-editorial .copy-flow-step.current {
  border-color: rgba(15, 94, 86, .28);
}

html.ui-editorial .copy-mode-btn.active {
  border-color: rgba(15, 94, 86, .35);
  box-shadow: 0 0 0 2px rgba(15, 94, 86, .12);
}

html.ui-editorial .copy-production-plan {
  border-color: rgba(15, 94, 86, .20);
}

html.ui-editorial .copy-production-plan-actions .chip {
  border-color: rgba(15, 94, 86, .20);
}

html.ui-editorial .copy-plan-row .plan-count {
  border-color: rgba(15, 94, 86, .28);
}

html.ui-editorial .copy-plan-row .plan-count-control .plan-count-btn,
html.ui-editorial .copy-plan-row .plan-count-control input {
  border-color: rgba(15, 94, 86, .28);
}

html.ui-editorial .copy-plan-scope-toggle button.is-active,
html.ui-editorial .copy-plan-choice-btn.is-active {
  border-color: rgba(15, 94, 86, .20);
  box-shadow: 0 1px 2px rgba(15, 94, 86, .12);
}

html.ui-editorial .production-template-editor {
  border-color: rgba(15, 94, 86, .20);
  background: rgba(15, 94, 86, .04);
}

html.ui-editorial .daily-match-panel {
  border-color: rgba(15, 94, 86, .20);
  background: linear-gradient(135deg, rgba(15, 94, 86, .04), rgba(255, 255, 255, .7));
}

html.ui-editorial .view#input .plan-row:focus-within {
  border-color: rgba(15, 94, 86, .35);
}

html.ui-editorial .view#copy .copy-plan-row-reset:hover {
  border-color: rgba(15, 94, 86, .28);
}

html.ui-editorial .view#copy .copy-plan-option-button:hover,
html.ui-editorial .view#copy .copy-plan-option-button.is-active {
  border-color: rgba(15, 94, 86, .28);
}

html.ui-editorial .view#copy .copy-creation-mode button.is-active {
  border-color: rgba(15, 94, 86, .35);
  box-shadow: 0 0 0 2px rgba(15, 94, 86, .12);
}

html.ui-editorial .view#copy .copy-plan-row-edit:hover {
  border-color: rgba(15, 94, 86, .35);
}

html.ui-editorial #genBar .prog .fail,
html.ui-editorial #vidBar .prog .fail {
  color: var(--c-red-ink) !important;
  background: var(--red-soft);
  border: 1px solid rgba(217, 92, 92, .4);
}

html.ui-editorial #genBar .err-inline .err-line .err-copy,
html.ui-editorial #vidBar .err-inline .err-line .err-copy {
  color: var(--accent-soft);
  border-color: rgba(227, 240, 237, .45);
}

html.ui-editorial .view#copy .copy-batch-settings {
  border: 1px solid var(--line-soft);
  background: var(--panel-2);
  box-shadow: inset 0 1px 2px rgba(29, 37, 44, .02);
  border-radius: 8px;
  padding: 12px 16px;
}

html.ui-editorial .view#copy .copy-batch-settings-head strong {
  color: var(--accent-ink);
  letter-spacing: -.01em;
}

/* 顶栏告警轻量化：消灭大面积黄色高饱和度刺眼感，提升为精密控制台仪表通知。
   注意：本规则特异性 (0,2,1) 高于 legacy .banner.ok/.bad/.info 变体 (0,2,0)，
   变体必须在本皮肤内同骨架重定义，否则语义色被基类压制（2026-09-10 审核修复） */
html.ui-editorial .banner {
  background: rgba(255, 248, 242, .75);
  border: 1px solid rgba(229, 139, 78, .28);
  border-left: 3px solid var(--c-amber);
  color: var(--c-amber-ink);
  border-radius: 6px;
  padding: 8px 14px;
  margin-bottom: 14px;
  font-size: var(--fs-xs);
  box-shadow: 0 1px 2px rgba(229, 139, 78, .04);
}

html.ui-editorial .banner.ok {
  background: var(--green-tint);
  border-color: rgba(182, 217, 76, .45);
  border-left: 3px solid var(--c-green);
  color: var(--c-green-ink);
}

html.ui-editorial .banner.bad {
  background: var(--red-soft);
  border-color: rgba(217, 92, 92, .35);
  border-left: 3px solid var(--c-red);
  color: var(--c-red-ink);
}

html.ui-editorial .banner.info {
  background: var(--accent-soft);
  border-color: rgba(15, 94, 86, .25);
  border-left: 3px solid var(--accent);
  color: var(--accent-ink);
}

/* 图文计划卡片容器降噪：以轻盈纸白面与发丝微边替代粗重框套框 */
html.ui-editorial .copy-plan-row {
  border: 1px solid var(--line-2);
  background: var(--panel);
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(29, 37, 44, .04);
  transition: border-color .18s ease, box-shadow .18s ease, transform .2s ease;
}

html.ui-editorial .copy-plan-row:hover {
  border-color: rgba(15, 94, 86, .32);
  box-shadow: 0 4px 14px rgba(29, 37, 44, .06);
}

html.ui-editorial .copy-plan-row .plan-assets {
  border: 1px solid var(--line-soft);
  background: rgba(248, 245, 238, .65);
  border-radius: 6px;
}

/* 核心验收工坊：画廊级装裱感（Gallery Framing） */
html.ui-editorial .copy-draft-image-review {
  background: rgba(248, 245, 238, .55);
  border: 1px solid var(--line-2);
  border-radius: 8px;
  padding: 12px;
}

html.ui-editorial .copy-draft-image-slot {
  border: 1px solid var(--line-2);
  border-radius: 7px;
  background: #ffffff;
  box-shadow: 0 1px 3px rgba(29, 37, 44, .05), inset 0 0 0 1px rgba(255, 255, 255, .7);
  transition: transform .22s cubic-bezier(.16, 1, .3, 1), box-shadow .22s ease, border-color .18s ease;
}

html.ui-editorial .copy-draft-image-slot:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(29, 37, 44, .09), 0 2px 4px rgba(29, 37, 44, .04);
  border-color: rgba(15, 94, 86, .35);
}

html.ui-editorial .copy-draft-image-slot.passed {
  border-color: rgba(182, 217, 76, .75);
  box-shadow: 0 2px 6px rgba(182, 217, 76, .15), inset 0 0 0 1px rgba(182, 217, 76, .25);
}

html.ui-editorial .copy-draft-image-slot.rejected,
html.ui-editorial .copy-draft-image-slot.failed {
  border-color: rgba(217, 92, 92, .65);
  box-shadow: 0 2px 6px rgba(217, 92, 92, .12), inset 0 0 0 1px rgba(217, 92, 92, .2);
}

html.ui-editorial .copy-draft-image-slot.regenerating,
html.ui-editorial .copy-draft-image-slot.unknown {
  border-color: rgba(229, 139, 78, .65);
  box-shadow: 0 2px 6px rgba(229, 139, 78, .12), inset 0 0 0 1px rgba(229, 139, 78, .2);
}

html.ui-editorial .copy-draft-image-meta {
  background: #ffffff;
  border-top: 1px solid var(--line-soft);
  padding: 6px 8px;
}

html.ui-editorial .copy-draft-image-meta .copy-draft-scene-tag {
  background: var(--accent-soft);
  color: var(--accent-ink);
  border: 1px solid rgba(15, 94, 86, .18);
  border-radius: 3px;
  padding: 1px 5px;
  font-size: var(--fs-note);
}

html.ui-editorial #copyKnowledgeIntakeBox,
html.ui-editorial #moduleKnowledgeIntakeBox {
  border-color: rgba(15, 94, 86, .20);
  background: rgba(15, 94, 86, .04);
}

html.ui-editorial #knowledgeIntakeCenter {
  border-color: rgba(15, 94, 86, .20);
  background: rgba(15, 94, 86, .04);
}

/* ══════════════════════════════════════════════════════════════
   视觉重塑第二期：任务中心与详情抽屉控制台化（Editorial HUD）
   ══════════════════════════════════════════════════════════════ */

/* 1. 抽屉磨砂景深与物理阻尼入场 */
html.ui-editorial .task-center-backdrop,
html.ui-editorial .task-detail-backdrop {
  background: rgba(15, 37, 34, .24);
  backdrop-filter: blur(8px) saturate(140%);
  -webkit-backdrop-filter: blur(8px) saturate(140%);
  transition: opacity .26s ease;
}

html.ui-editorial .task-center-drawer,
html.ui-editorial .task-detail-drawer {
  background: var(--panel);
  border-left: 1px solid var(--line);
  box-shadow: -1px 0 0 rgba(255, 255, 255, .8) inset,
              -16px 0 48px rgba(29, 37, 44, .10),
              -4px 0 12px rgba(29, 37, 44, .04);
  transition: transform .32s cubic-bezier(0.16, 1, 0.3, 1);
}

/* 2. 控制台头部与分段选择器（Segmented Deck） */
html.ui-editorial .task-center-head,
html.ui-editorial .task-detail-head {
  background: rgba(255, 253, 248, .92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line-soft);
  padding: 18px 20px 14px;
}

html.ui-editorial .task-center-close,
html.ui-editorial .task-detail-close {
  width: 28px;
  height: 28px;
  min-height: 0;
  padding: 0;
  border-radius: 6px;
  border: 1px solid var(--line-soft);
  background: var(--panel-2);
  color: var(--ink-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  cursor: pointer;
  box-shadow: none;
  transition: background .16s ease, border-color .16s ease, color .16s ease;
}

html.ui-editorial .task-center-close:hover,
html.ui-editorial .task-detail-close:hover {
  background: var(--paper);
  border-color: rgba(15, 94, 86, .35);
  color: var(--accent-ink);
  box-shadow: none;
  transform: none;
}

html.ui-editorial .task-center-head-actions {
  margin-bottom: 8px;
}

html.ui-editorial .task-center-head-actions #taskCenterRefresh {
  min-height: 0;
  height: 24px;
  padding: 0 10px;
  font-size: var(--fs-note);
  border-radius: 5px;
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--ink-2);
  box-shadow: 0 1px 2px rgba(29, 37, 44, .04);
}

html.ui-editorial .task-center-head-actions #taskCenterRefresh:hover {
  background: #ffffff;
  color: var(--accent-ink);
  border-color: rgba(15, 94, 86, .35);
  transform: none;
}

html.ui-editorial .task-center-tabs {
  background: var(--panel-2);
  border: 1px solid var(--line-soft);
  border-radius: 7px;
  padding: 2.5px;
  gap: 2.5px;
  margin-bottom: 7px;
}

html.ui-editorial .task-center-tabs .task-center-tab {
  height: 26px;
  min-height: 0;
  padding: 0 10px;
  border: none;
  border-radius: 5px;
  background: transparent;
  color: var(--ink-2);
  font-size: var(--fs-xs);
  font-weight: 500;
  box-shadow: none;
  transition: all .16s ease;
}

html.ui-editorial .task-center-tabs .task-center-tab:hover {
  color: var(--ink);
  background: rgba(255, 255, 255, .55);
  box-shadow: none;
  transform: none;
}

html.ui-editorial .task-center-tabs .task-center-tab.active {
  background: #ffffff;
  color: var(--accent-ink);
  font-weight: 700;
  box-shadow: 0 1px 3px rgba(29, 37, 44, .08);
  transform: none;
}

/* 独立出现的重试/跳转微操作按钮（如空状态重试、加载更多） */
html.ui-editorial .task-center-empty .task-center-tab,
html.ui-editorial .task-detail-empty .task-center-tab,
html.ui-editorial .task-center-loadmore .task-center-tab,
html.ui-editorial .workflow-overview-empty .task-center-tab {
  min-height: 0;
  height: 28px;
  padding: 0 14px;
  font-size: var(--fs-note);
  border-radius: 6px;
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--ink-2);
  box-shadow: 0 1px 2px rgba(29, 37, 44, .04);
  transition: all .16s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

html.ui-editorial .task-center-empty .task-center-tab:hover,
html.ui-editorial .task-detail-empty .task-center-tab:hover,
html.ui-editorial .task-center-loadmore .task-center-tab:hover,
html.ui-editorial .workflow-overview-empty .task-center-tab:hover {
  background: #ffffff;
  border-color: rgba(15, 94, 86, .35);
  color: var(--accent-ink);
  box-shadow: 0 2px 6px rgba(29, 37, 44, .06);
  transform: none;
}

html.ui-editorial .task-center-advanced {
  margin-top: 6px;
  border: 1px solid var(--line-soft);
  border-radius: 7px;
  background: var(--panel-2);
  padding: 6px 10px;
}

html.ui-editorial .task-center-advanced summary {
  font-size: var(--fs-note);
  color: var(--ink-3);
  font-weight: 600;
  cursor: pointer;
}

html.ui-editorial .task-center-advanced-body {
  padding-top: 8px;
}

html.ui-editorial .task-center-batchbar {
  background: var(--panel-2);
  border: 1px solid var(--line-soft);
  border-radius: 7px;
  padding: 8px 12px;
}

html.ui-editorial .task-center-batchbar button {
  min-height: 0;
  height: 26px;
  padding: 0 10px;
  font-size: var(--fs-note);
  box-shadow: none;
}

/* 3. 任务卡片三段式结构化面板 */
html.ui-editorial .task-workitem,
html.ui-editorial .task-center-item {
  background: #ffffff;
  border: 1px solid var(--line-2);
  border-radius: 8px;
  padding: 14px 16px;
  margin-bottom: 10px;
  box-shadow: 0 1px 3px rgba(29, 37, 44, .03);
  position: relative;
  overflow: hidden;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

html.ui-editorial .task-workitem:hover,
html.ui-editorial .task-center-item:hover {
  border-color: rgba(15, 94, 86, .35);
  box-shadow: 0 4px 14px rgba(29, 37, 44, .06);
  transform: translateY(-1.5px);
}

/* 左侧状态信号微立柱 */
html.ui-editorial .task-workitem::before,
html.ui-editorial .task-center-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3.5px;
  background: var(--line);
}

html.ui-editorial .task-workitem.risk::before,
html.ui-editorial .task-center-item.risk::before {
  background: var(--c-amber);
}

html.ui-editorial .task-workitem.failed::before,
html.ui-editorial .task-center-item.failed::before {
  background: var(--c-red);
}

html.ui-editorial .task-workitem-head,
html.ui-editorial .task-center-item-head {
  padding-left: 2px;
}

html.ui-editorial .task-workitem-title,
html.ui-editorial .task-center-item-title {
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--ink);
}

html.ui-editorial .task-workitem-title small,
html.ui-editorial .task-center-item-title small {
  color: var(--ink-3);
  font-size: var(--fs-note);
}

html.ui-editorial .task-workitem-owner {
  background: var(--accent-soft);
  color: var(--accent-ink);
  border: 1px solid rgba(15, 94, 86, .18);
  border-radius: 4px;
  padding: 1px 6px;
  font-size: var(--fs-note);
  height: 20px;
  min-height: 0;
  display: inline-flex;
  align-items: center;
}

html.ui-editorial .task-workitem-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 9px 0 10px;
  padding-left: 2px;
}

html.ui-editorial .task-workitem-summary span {
  background: var(--panel-2);
  border: 1px solid var(--line-soft);
  border-radius: 4px;
  color: var(--ink-2);
  font-size: var(--fs-note);
  padding: 2px 7px;
  font-variant-numeric: tabular-nums;
  line-height: 1.4;
}

html.ui-editorial .task-workitem-state-meta {
  background: var(--panel-2);
  border: 1px solid var(--line-soft);
  border-radius: 6px;
  padding: 8px 11px;
  gap: 6px 12px;
  line-height: 1.5;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

html.ui-editorial .task-workitem-state-meta span {
  font-size: var(--fs-note);
  color: var(--ink-2);
  background: transparent;
  border: none;
  padding: 0;
  border-radius: 0;
}

html.ui-editorial .task-workitem-state-meta b {
  color: var(--ink-3);
  font-weight: 500;
  margin-right: 2px;
}

html.ui-editorial .task-workitem-state-status.warn,
html.ui-editorial .task-center-status.warn {
  color: var(--c-amber-ink);
}

html.ui-editorial .task-workitem-state-status.fail,
html.ui-editorial .task-center-status.fail {
  color: var(--c-red-ink);
}

html.ui-editorial .task-workitem-actions,
html.ui-editorial .task-center-actions {
  display: flex;
  gap: var(--gap-md);
  margin-top: 11px;
  padding-left: 2px;
}

html.ui-editorial .task-workitem-actions button,
html.ui-editorial .task-center-actions button {
  min-height: 0;
  height: 28px;
  padding: 0 12px;
  border-radius: 6px;
  font-size: var(--fs-xs);
  font-weight: 500;
  box-shadow: none;
  background: var(--panel);
  border: 1px solid var(--line);
  color: var(--ink-2);
  transition: all .16s ease;
}

html.ui-editorial .task-workitem-actions button:hover,
html.ui-editorial .task-center-actions button:hover {
  background: #ffffff;
  border-color: rgba(15, 94, 86, .35);
  color: var(--accent-ink);
  transform: none;
}

html.ui-editorial .task-workitem-actions button.primary,
html.ui-editorial .task-center-actions button.primary {
  background: var(--accent);
  border-color: var(--accent);
  color: #ffffff;
  font-weight: 600;
  box-shadow: 0 1px 3px rgba(15, 94, 86, .24);
}

html.ui-editorial .task-workitem-actions button.primary:hover,
html.ui-editorial .task-center-actions button.primary:hover {
  background: var(--accent-deep);
  border-color: var(--accent-deep);
  color: #ffffff;
}

/* 4. 详情抽屉仪表网格与装裱 */
html.ui-editorial .task-detail-summary {
  gap: 8px;
}

html.ui-editorial .task-detail-stat {
  background: #ffffff;
  border: 1px solid var(--line-2);
  border-radius: 6px;
  padding: 10px 12px;
  box-shadow: 0 1px 2px rgba(29, 37, 44, .03);
}

html.ui-editorial .task-detail-stat-label {
  font-size: var(--fs-note);
  color: var(--ink-3);
}

html.ui-editorial .task-detail-stat-value {
  font-size: var(--fs-md);
  color: var(--ink);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.02em;
}

html.ui-editorial .task-detail-risk {
  background: rgba(255, 248, 242, .85);
  border: 1px solid rgba(229, 139, 78, .30);
  border-left: 3.5px solid var(--c-amber);
  color: var(--c-amber-ink);
  border-radius: 6px;
  padding: 10px 14px;
}

html.ui-editorial .task-detail-failure {
  background: rgba(251, 233, 231, .85);
  border: 1px solid rgba(217, 92, 92, .32);
  border-left: 3.5px solid var(--c-red);
  color: var(--c-red-ink);
  border-radius: 6px;
  padding: 10px 14px;
}

html.ui-editorial .task-detail-asset {
  border: 1px solid var(--line-2);
  border-radius: 6px;
  background: #ffffff;
  box-shadow: 0 1px 3px rgba(29, 37, 44, .05), inset 0 0 0 1px rgba(255, 255, 255, .7);
}

html.ui-editorial .task-detail-actions {
  display: flex;
  gap: var(--gap-md);
  margin-top: 10px;
}

html.ui-editorial .task-detail-actions button,
html.ui-editorial .task-detail-copy-error {
  min-height: 0;
  height: 28px;
  padding: 0 12px;
  border-radius: 6px;
  font-size: var(--fs-xs);
  font-weight: 500;
  box-shadow: none;
  background: var(--panel);
  border: 1px solid var(--line);
  color: var(--ink-2);
  transition: all .16s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

html.ui-editorial .task-detail-actions button:hover,
html.ui-editorial .task-detail-copy-error:hover {
  background: #ffffff;
  border-color: rgba(15, 94, 86, .35);
  color: var(--accent-ink);
  transform: none;
}

html.ui-editorial .task-detail-actions button.primary {
  background: var(--accent);
  border-color: var(--accent);
  color: #ffffff;
  font-weight: 600;
  box-shadow: 0 1px 3px rgba(15, 94, 86, .24);
}

html.ui-editorial .task-detail-actions button.primary:hover {
  background: var(--accent-deep);
  border-color: var(--accent-deep);
  color: #ffffff;
}

html.ui-editorial .task-detail-timeline:before {
  background: var(--line-soft);
}

html.ui-editorial .task-detail-event:before {
  background: var(--accent);
  box-shadow: 0 0 0 2px var(--panel);
}
