/* ============================================================================
   v2-admin.css — 花漾培训系统 2.0 管理员端样式
   Apple 风格，完全复用 style.css 的 CSS 变量（--primary/--accent/--success/--danger/
   --warning/--radius-*/--shadow-*/--space-*）与 .btn/.card/.form__input/.tag 等类名；
   本文件只定义 v2- 前缀新类，不与现有类冲突。
   ============================================================================ */

/* --------------------------------------------------------------------------
   1. 徽章 / 状态色（草稿灰 / 进行中蓝 / 已完成绿 / 已分析紫 / 待审橙 / 拒绝红）
   -------------------------------------------------------------------------- */
.v2-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: var(--radius-full);
  font-size: 11px;
  font-weight: var(--fw-semibold);
  line-height: 1.5;
  white-space: nowrap;
  letter-spacing: 0.02em;
}
.v2-badge--gray   { background: var(--bg-inset); color: var(--text-tertiary); }
.v2-badge--blue   { background: var(--accent-bg); color: var(--accent); }
.v2-badge--green  { background: var(--success-bg); color: var(--success); }
.v2-badge--orange { background: var(--warning-bg); color: #c77f0a; }
.v2-badge--red    { background: var(--danger-bg); color: var(--danger); }
.v2-badge--purple { background: rgba(175, 82, 222, 0.12); color: #af52de; }

[data-theme="dark"] .v2-badge--orange { color: #ffb340; }
[data-theme="dark"] .v2-badge--purple { background: rgba(191, 90, 242, 0.18); color: #bf5af2; }

.v2-pulse { animation: v2-pulse 1.6s ease-in-out infinite; }
@keyframes v2-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.55; }
}

/* 题型 / 模块小标签 */
.v2-chip {
  display: inline-flex;
  align-items: center;
  padding: 2px 9px;
  border-radius: var(--radius-full);
  font-size: 11px;
  font-weight: var(--fw-semibold);
  background: var(--bg-inset);
  color: var(--text-secondary);
  white-space: nowrap;
  line-height: 1.6;
}
.v2-chip--single   { background: var(--accent-bg); color: var(--accent); }
.v2-chip--multiple { background: var(--success-bg); color: var(--success); }
.v2-chip--rating   { background: var(--warning-bg); color: #c77f0a; }
.v2-chip--open     { background: var(--bg-inset); color: var(--text-secondary); }
.v2-chip--module   { background: rgba(175, 82, 222, 0.10); color: #af52de; }
.v2-chip--req      { background: var(--warning-bg); color: #c77f0a; }
[data-theme="dark"] .v2-chip--rating,
[data-theme="dark"] .v2-chip--req { color: #ffb340; }
[data-theme="dark"] .v2-chip--module { background: rgba(191, 90, 242, 0.16); color: #bf5af2; }

/* --------------------------------------------------------------------------
   2. 页面骨架 / 页头 / 返回链接
   -------------------------------------------------------------------------- */
.v2-page {
  display: flex;
  flex-direction: column;
  gap: var(--space-lg);
}
.v2-page__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-md);
  flex-wrap: wrap;
  padding-bottom: var(--space-md);
  border-bottom: 1px solid var(--border-light);
}
.v2-page__header h1 {
  font-size: 28px;
  font-weight: var(--fw-bold);
  letter-spacing: -0.02em;
  margin-bottom: var(--space-xs);
}
.v2-page__header p {
  font-size: var(--fs-base);
  color: var(--text-secondary);
  max-width: 640px;
}
.v2-page__header--stack { flex-direction: column; }
.v2-page__title-row {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  flex-wrap: wrap;
}
.v2-page__title-row h1 { margin-bottom: 0; }

.v2-back {
  display: inline-block;
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  margin-bottom: var(--space-sm);
  transition: color 0.2s var(--ease);
}
.v2-back:hover { color: var(--accent); }

/* 概览统计卡 */
.v2-stat-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: var(--space-md);
}
.v2-stat-card {
  background: var(--bg);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-xl);
  padding: var(--space-md) var(--space-lg);
  text-align: center;
  box-shadow: var(--shadow-sm);
}
.v2-stat-card__num {
  font-size: var(--fs-2xl);
  font-weight: var(--fw-bold);
  color: var(--accent);
  letter-spacing: -0.02em;
}
.v2-stat-card__label {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  margin-top: 2px;
}

/* --------------------------------------------------------------------------
   3. Tabs（页签）
   -------------------------------------------------------------------------- */
.v2-tabs {
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--border-light);
  overflow-x: auto;
}
.v2-tabs__tab {
  padding: 10px 18px;
  font-size: var(--fs-base);
  font-weight: var(--fw-medium);
  color: var(--text-tertiary);
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s var(--ease);
}
.v2-tabs__tab:hover { color: var(--text); }
.v2-tabs__tab--active {
  color: var(--accent);
  border-bottom-color: var(--accent);
  font-weight: var(--fw-semibold);
}
.v2-tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  margin-left: 4px;
  border-radius: 10px;
  background: var(--accent-bg);
  color: var(--accent);
  font-size: 11px;
  font-weight: var(--fw-semibold);
}
.v2-tab-panel { animation: fadeIn 0.25s var(--ease); }

/* 次级 tabs（按题/按人） */
.v2-subtabs {
  display: inline-flex;
  gap: 2px;
  padding: 3px;
  background: var(--bg-inset);
  border-radius: var(--radius-full);
  margin-bottom: var(--space-md);
}
.v2-subtabs__tab {
  padding: 6px 16px;
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  color: var(--text-secondary);
  border-radius: var(--radius-full);
  background: transparent;
  cursor: pointer;
  transition: all 0.2s var(--ease);
}
.v2-subtabs__tab--active {
  background: var(--bg);
  color: var(--text);
  font-weight: var(--fw-semibold);
  box-shadow: var(--shadow-sm);
}

/* --------------------------------------------------------------------------
   4. 工具栏 / 提示条
   -------------------------------------------------------------------------- */
.v2-toolbar {
  display: flex;
  gap: var(--space-sm);
  flex-wrap: wrap;
  margin-bottom: var(--space-md);
}
.v2-tip {
  padding: 10px 14px;
  border-radius: var(--radius-md);
  background: var(--accent-bg);
  color: var(--text-secondary);
  font-size: var(--fs-sm);
  line-height: var(--lh-relaxed);
  margin-bottom: var(--space-md);
}

/* --------------------------------------------------------------------------
   5. 批次卡片
   -------------------------------------------------------------------------- */
.v2-batch-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: var(--space-md);
}
.v2-batch-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  background: var(--bg);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-xl);
  padding: var(--space-lg);
  box-shadow: var(--shadow-sm);
  transition: box-shadow 0.3s var(--ease), transform 0.3s var(--ease);
}
.v2-batch-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.v2-batch-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-sm);
}
.v2-batch-card__title {
  font-size: var(--fs-md);
  font-weight: var(--fw-semibold);
  color: var(--text);
  letter-spacing: -0.01em;
}
.v2-batch-card__desc {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  line-height: var(--lh-relaxed);
}
.v2-batch-card__meta {
  display: flex;
  gap: var(--space-md);
  padding: var(--space-sm) 0;
  border-top: 1px solid var(--border-light);
  border-bottom: 1px solid var(--border-light);
  flex-wrap: wrap;
}
.v2-batch-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: var(--fs-xs);
  color: var(--text-tertiary);
}
.v2-batch-meta strong {
  font-size: var(--fs-md);
  font-weight: var(--fw-semibold);
  color: var(--text);
}
.v2-batch-meta--danger strong { color: var(--danger); }
.v2-batch-card__progress {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}
.v2-batch-card__progress .progress-bar { flex: 1; }
.v2-batch-card__progress-label {
  font-size: var(--fs-xs);
  color: var(--text-tertiary);
  flex-shrink: 0;
}
.v2-batch-card__progress-text {
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--text);
  flex-shrink: 0;
  min-width: 40px;
  text-align: right;
}
.v2-batch-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
  flex-wrap: wrap;
  margin-top: auto;
}
.v2-batch-card__time {
  font-size: var(--fs-xs);
  color: var(--text-tertiary);
}

/* --------------------------------------------------------------------------
   6. 问题管理
   -------------------------------------------------------------------------- */
.v2-question-list { display: flex; flex-direction: column; gap: var(--space-sm); }
.v2-question-card {
  background: var(--bg);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  padding: var(--space-md) var(--space-lg);
  box-shadow: var(--shadow-sm);
}
.v2-question-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-sm);
  flex-wrap: wrap;
}
.v2-question-card__title {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  flex-wrap: wrap;
  min-width: 0;
}
.v2-question-card__num {
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  color: var(--text-tertiary);
}
.v2-question-card__text {
  font-size: var(--fs-base);
  font-weight: var(--fw-semibold);
  color: var(--text);
  line-height: var(--lh-normal);
}
.v2-question-card__actions { flex-shrink: 0; }
.v2-question-card__guide {
  margin-top: var(--space-sm);
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  line-height: var(--lh-relaxed);
}
.v2-question-card__opts {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
  margin-top: var(--space-sm);
}
.v2-opt-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: var(--radius-full);
  background: var(--bg-inset);
  font-size: var(--fs-xs);
  color: var(--text-secondary);
  line-height: 1.6;
}
.v2-opt-pill b { color: var(--text-tertiary); }
.v2-opt-more { font-size: var(--fs-xs); color: var(--text-tertiary); align-self: center; }
.v2-question-card__meta {
  display: flex;
  gap: var(--space-md);
  margin-top: var(--space-sm);
  padding-top: var(--space-sm);
  border-top: 1px solid var(--border-light);
  font-size: var(--fs-xs);
  color: var(--text-tertiary);
}

/* 选项编辑器（modal 内） */
.v2-option-row {
  display: flex;
  gap: var(--space-xs);
  margin-bottom: var(--space-xs);
  align-items: center;
}
.v2-option-row__label { flex: 1; min-width: 0; }
.v2-option-row__hint { flex: 1; min-width: 0; }
.v2-option-row .btn { flex-shrink: 0; }

/* 开关样 checkbox */
.v2-switch {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  cursor: pointer;
  margin: var(--space-sm) 0 var(--space-md);
  user-select: none;
}
.v2-switch input {
  width: 18px;
  height: 18px;
  accent-color: var(--accent);
  cursor: pointer;
}

/* --------------------------------------------------------------------------
   7. AI 生成问题面板
   -------------------------------------------------------------------------- */
.v2-ai-panel {
  border: 1px dashed var(--accent);
  border-radius: var(--radius-xl);
  padding: var(--space-md);
  margin-bottom: var(--space-lg);
  background: rgba(0, 113, 227, 0.02);
}
.v2-ai-panel__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-sm);
  margin-bottom: var(--space-sm);
  flex-wrap: wrap;
}
.v2-ai-panel__head h3 { font-size: var(--fs-md); }
.v2-ai-panel__head p { font-size: var(--fs-sm); color: var(--text-secondary); margin-top: 2px; }
.v2-ai-panel__done {
  padding: var(--space-md);
  text-align: center;
  font-weight: var(--fw-semibold);
  color: var(--success);
}
.v2-ai-list { display: flex; flex-direction: column; gap: var(--space-sm); }
.v2-ai-card {
  background: var(--bg);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  padding: var(--space-md);
  transition: opacity 0.2s var(--ease);
}
.v2-ai-card--added { opacity: 0.6; }
.v2-ai-card__head {
  display: flex;
  align-items: flex-start;
  gap: var(--space-sm);
  flex-wrap: wrap;
}
.v2-ai-card__check { margin-top: 3px; accent-color: var(--accent); width: 16px; height: 16px; }
.v2-ai-card__title {
  flex: 1;
  min-width: 200px;
  font-size: var(--fs-base);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-normal);
}
.v2-scenario {
  margin-top: var(--space-sm);
  padding: 8px 12px;
  border-radius: var(--radius-md);
  background: var(--bg-inset);
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  line-height: var(--lh-relaxed);
}
.v2-scenario b { color: var(--accent); margin-right: 4px; }
.v2-ai-card__guide {
  margin-top: var(--space-sm);
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  line-height: var(--lh-relaxed);
}
.v2-ai-card__meta {
  margin-top: var(--space-sm);
  font-size: var(--fs-xs);
  color: var(--text-secondary);
}
.v2-ai-card__foot {
  display: flex;
  justify-content: flex-end;
  margin-top: var(--space-sm);
  padding-top: var(--space-sm);
  border-top: 1px solid var(--border-light);
}

/* --------------------------------------------------------------------------
   8. 回答明细
   -------------------------------------------------------------------------- */
.v2-answer-qlist { display: flex; flex-direction: column; gap: var(--space-sm); }
.v2-answer-q {
  background: var(--bg);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  padding: var(--space-md) var(--space-lg);
}
.v2-answer-q__head {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  flex-wrap: wrap;
}
.v2-answer-q__title {
  flex: 1;
  min-width: 200px;
  font-weight: var(--fw-semibold);
  color: var(--text);
}
.v2-answer-q__count {
  font-size: var(--fs-xs);
  color: var(--text-tertiary);
  white-space: nowrap;
}
.v2-answer-q__list {
  margin-top: var(--space-sm);
  padding-top: var(--space-sm);
  border-top: 1px solid var(--border-light);
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}
.v2-answer-item {
  padding: var(--space-sm) var(--space-md);
  border-radius: var(--radius-md);
  background: var(--bg-inset);
}
.v2-answer-item--refused {
  background: var(--danger-bg);
  border-left: 3px solid var(--danger);
}
.v2-answer-item__head {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  flex-wrap: wrap;
  margin-bottom: 4px;
}
.v2-answer-item__head b { font-size: var(--fs-sm); }
.v2-answer-item__reason {
  font-size: var(--fs-sm);
  color: var(--danger);
  line-height: var(--lh-relaxed);
}
.v2-answer-item__body {
  font-size: var(--fs-sm);
  color: var(--text);
  line-height: var(--lh-relaxed);
}
.v2-answer-none {
  font-size: var(--fs-xs);
  color: var(--text-tertiary);
  padding: 4px 0;
}

/* 按人视图 */
.v2-person-list { display: flex; flex-direction: column; gap: var(--space-xs); }
.v2-person-row {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  padding: var(--space-sm) var(--space-md);
  background: var(--bg);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  flex-wrap: wrap;
}
.v2-person-row__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  flex-shrink: 0;
}
.v2-person-row__info { flex: 1; min-width: 200px; }
.v2-person-row__name {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  flex-wrap: wrap;
  font-weight: var(--fw-semibold);
  font-size: var(--fs-base);
  margin-bottom: 4px;
}
.v2-person-row__progress {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}
.v2-person-row__progress .progress-bar { flex: 1; max-width: 220px; }
.v2-person-row__progress span {
  font-size: var(--fs-xs);
  color: var(--text-tertiary);
  white-space: nowrap;
}
.v2-person-row__stats {
  display: flex;
  gap: var(--space-md);
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  flex-shrink: 0;
}

/* --------------------------------------------------------------------------
   9. AI 分析
   -------------------------------------------------------------------------- */
.v2-analysis-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  padding: var(--space-lg);
  background: linear-gradient(135deg, var(--accent-bg) 0%, rgba(0, 113, 227, 0.02) 100%);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-xl);
  flex-wrap: wrap;
}
.v2-analysis-trigger__info { flex: 1; min-width: 240px; }
.v2-analysis-trigger__info h3 { font-size: var(--fs-md); margin-bottom: 4px; }
.v2-analysis-trigger__info p { font-size: var(--fs-sm); color: var(--text-secondary); line-height: var(--lh-relaxed); }

.v2-analysis-running {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-md);
  padding: var(--space-xl);
  background: var(--bg-inset);
  border-radius: var(--radius-lg);
  color: var(--text-secondary);
  font-size: var(--fs-base);
  text-align: center;
}

.v2-analysis-list { display: flex; flex-direction: column; gap: var(--space-sm); }
.v2-analysis-item {
  background: var(--bg);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  padding: var(--space-md) var(--space-lg);
  box-shadow: var(--shadow-sm);
}
.v2-analysis-item__head {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  flex-wrap: wrap;
}
.v2-analysis-item__title { font-weight: var(--fw-semibold); flex: 1; min-width: 160px; }
.v2-analysis-item__time { font-size: var(--fs-xs); color: var(--text-tertiary); }
.v2-analysis-item__error {
  margin-top: var(--space-sm);
  padding: 8px 12px;
  border-radius: var(--radius-md);
  background: var(--danger-bg);
  color: var(--danger);
  font-size: var(--fs-sm);
}
.v2-analysis-item__summary {
  margin-top: var(--space-sm);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.v2-kv { display: flex; gap: var(--space-sm); font-size: var(--fs-sm); line-height: var(--lh-relaxed); }
.v2-kv__k {
  flex-shrink: 0;
  min-width: 72px;
  color: var(--text-tertiary);
  font-size: var(--fs-xs);
  padding-top: 2px;
}
.v2-kv__v { color: var(--text); }
.v2-analysis-item__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
  margin-top: var(--space-sm);
  padding-top: var(--space-sm);
  border-top: 1px solid var(--border-light);
  flex-wrap: wrap;
}
.v2-analysis-item__drafts { font-size: var(--fs-xs); color: var(--text-tertiary); }

/* 完整报告 */
.v2-report-body { margin-top: var(--space-sm); }
.v2-report {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
  background: var(--bg-inset);
}
.v2-report__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
  flex-wrap: wrap;
}
.v2-report__head h3 { font-size: var(--fs-md); }
.v2-report-section { display: flex; flex-direction: column; gap: var(--space-sm); }
.v2-report-section > h4 {
  font-size: var(--fs-base);
  padding-bottom: var(--space-xs);
  border-bottom: 1px solid var(--border-light);
}
.v2-report-block { padding: var(--space-sm) var(--space-md); background: var(--bg); border-radius: var(--radius-md); }
.v2-report-block__label {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  color: var(--accent);
  margin-bottom: 4px;
}
.v2-report-li {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  line-height: var(--lh-relaxed);
  margin-bottom: 4px;
}
.v2-opt-item {
  padding: var(--space-sm) var(--space-md);
  background: var(--bg);
  border-radius: var(--radius-md);
  border-left: 3px solid var(--accent);
}
.v2-opt-item__head {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  flex-wrap: wrap;
  margin-bottom: 4px;
}
.v2-opt-item__chapter { font-size: var(--fs-xs); color: var(--text-tertiary); }
.v2-opt-item__content {
  font-size: var(--fs-sm);
  color: var(--text);
  line-height: var(--lh-relaxed);
}
.v2-opt-item__reason,
.v2-opt-item__evidence {
  margin-top: 4px;
  font-size: var(--fs-xs);
  color: var(--text-secondary);
  line-height: var(--lh-relaxed);
}
.v2-refusal-item {
  padding: var(--space-sm) var(--space-md);
  background: var(--bg);
  border-radius: var(--radius-md);
}
.v2-refusal-item__head {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  flex-wrap: wrap;
  margin-bottom: 4px;
}
.v2-direction-item {
  padding: var(--space-sm) var(--space-md);
  background: var(--bg);
  border-radius: var(--radius-md);
}
.v2-direction-item b { margin-right: var(--space-xs); }
.v2-direction-item p { font-size: var(--fs-xs); color: var(--text-secondary); margin-top: 2px; }
.v2-signal-list { display: flex; flex-direction: column; gap: var(--space-xs); }
.v2-signal {
  padding: var(--space-sm) var(--space-md);
  border-radius: var(--radius-md);
  background: var(--bg);
  border-left: 3px solid var(--warning);
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  flex-wrap: wrap;
}
.v2-signal p { width: 100%; font-size: var(--fs-xs); color: var(--text-secondary); line-height: var(--lh-relaxed); }
.v2-signal--good   { border-left-color: var(--success); }
.v2-signal--adjust { border-left-color: var(--warning); }
.v2-signal--bad    { border-left-color: var(--danger); }
.v2-risk-item {
  display: flex;
  gap: var(--space-sm);
  align-items: flex-start;
  padding: var(--space-sm) var(--space-md);
  background: var(--bg);
  border-radius: var(--radius-md);
}
.v2-risk-item b { font-size: var(--fs-sm); }
.v2-risk-item p { font-size: var(--fs-xs); color: var(--text-secondary); margin-top: 2px; line-height: var(--lh-relaxed); }

/* 触发分析后的结果卡 */
.v2-result-card {
  border: 1px solid var(--success);
  border-radius: var(--radius-xl);
  padding: var(--space-lg);
  background: linear-gradient(135deg, var(--success-bg) 0%, rgba(48, 177, 88, 0.02) 100%);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
}
.v2-result-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
  flex-wrap: wrap;
}
.v2-result-card__head h3 { font-size: var(--fs-md); color: var(--success); }
.v2-result-section { display: flex; flex-direction: column; gap: var(--space-xs); }
.v2-result-section > h4 { font-size: var(--fs-base); }
.v2-result-actions { display: flex; gap: var(--space-sm); }
.v2-draft-mini-list { display: flex; flex-direction: column; gap: var(--space-xs); }
.v2-draft-mini {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-sm) var(--space-md);
  background: var(--bg);
  border-radius: var(--radius-md);
  flex-wrap: wrap;
}
.v2-draft-mini__title { flex: 1; min-width: 160px; font-size: var(--fs-sm); font-weight: var(--fw-medium); }

/* --------------------------------------------------------------------------
   10. 草稿列表 / 详情
   -------------------------------------------------------------------------- */
.v2-draft-list { display: flex; flex-direction: column; gap: var(--space-sm); }
.v2-draft-card {
  background: var(--bg);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  padding: var(--space-md) var(--space-lg);
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}
.v2-draft-card__head {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  flex-wrap: wrap;
}
.v2-draft-card__title {
  flex: 1;
  min-width: 200px;
  font-size: var(--fs-base);
  font-weight: var(--fw-semibold);
  color: var(--text);
}
.v2-draft-card__meta {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  flex-wrap: wrap;
}
.v2-draft-card__time { font-size: var(--fs-xs); color: var(--text-tertiary); }
.v2-draft-card__summary {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  line-height: var(--lh-relaxed);
}
.v2-draft-card__foot {
  display: flex;
  justify-content: flex-end;
  padding-top: var(--space-sm);
  border-top: 1px solid var(--border-light);
}

.v2-page--draft { max-width: 860px; }
.v2-draft-detail__header {
  background: var(--bg);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-xl);
  padding: var(--space-lg);
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}
.v2-draft-detail__title { font-size: var(--fs-xl); font-weight: var(--fw-bold); letter-spacing: -0.02em; }
.v2-draft-detail__badges { display: flex; gap: var(--space-xs); flex-wrap: wrap; }
.v2-draft-detail__meta {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  flex-wrap: wrap;
}
.v2-draft-detail__summary {
  padding: var(--space-md) var(--space-lg);
  background: var(--warning-bg);
  border-radius: var(--radius-lg);
  border-left: 3px solid var(--warning);
}
.v2-draft-detail__summary-label {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  color: #c77f0a;
  margin-bottom: 4px;
}
[data-theme="dark"] .v2-draft-detail__summary-label { color: #ffb340; }
.v2-draft-detail__summary p { font-size: var(--fs-sm); color: var(--text); line-height: var(--lh-relaxed); }
.v2-draft-detail__preview { display: flex; flex-direction: column; gap: var(--space-md); }
.v2-draft-detail__preview-label {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  color: var(--text-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.v2-draft-detail__actions {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding-top: var(--space-md);
  border-top: 1px solid var(--border-light);
  flex-wrap: wrap;
}
.v2-draft-detail__actions .btn:last-child { margin-left: auto; }

/* --------------------------------------------------------------------------
   11. Sections 预览（草稿内容渲染）
   -------------------------------------------------------------------------- */
.v2-section-body { white-space: pre-line; }
.v2-section-highlight { margin: var(--space-sm) 0; }
.v2-section-tags { display: flex; flex-direction: column; gap: 2px; }
.v2-section-tags__title {
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  color: var(--text);
}
.v2-section-table caption {
  padding: 8px;
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  text-align: left;
  color: var(--text);
}

/* 垂直步骤条（草稿预览） */
.v2-steps { display: flex; flex-direction: column; gap: 0; }
.v2-step {
  display: flex;
  gap: var(--space-sm);
  align-items: flex-start;
  padding-bottom: var(--space-md);
  position: relative;
}
.v2-step:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 15px;
  top: 34px;
  bottom: 0;
  width: 2px;
  background: var(--border-light);
}
.v2-step__num {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  flex-shrink: 0;
  position: relative;
  z-index: 1;
  box-shadow: 0 2px 6px rgba(0, 113, 227, 0.3);
}
.v2-step__content { flex: 1; min-width: 0; padding-top: 2px; }
.v2-step__title { font-size: var(--fs-base); font-weight: var(--fw-semibold); margin-bottom: 2px; }
.v2-step__body {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  line-height: var(--lh-relaxed);
}

/* --------------------------------------------------------------------------
   12. 素材库
   -------------------------------------------------------------------------- */
.v2-insight-list { display: flex; flex-direction: column; gap: var(--space-sm); }
.v2-insight-card {
  background: var(--bg);
  border: 1px solid var(--border-light);
  border-radius: var(--radius-lg);
  padding: var(--space-md) var(--space-lg);
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
}
.v2-insight-card__head {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  flex-wrap: wrap;
}
.v2-insight-card__title {
  flex: 1;
  min-width: 200px;
  font-size: var(--fs-base);
  font-weight: var(--fw-semibold);
  color: var(--text);
}
.v2-insight-card__del {
  color: var(--text-tertiary);
  font-size: var(--fs-md);
  line-height: 1;
}
.v2-insight-card__summary {
  font-size: var(--fs-sm);
  color: var(--text-secondary);
  line-height: var(--lh-relaxed);
}
.v2-insight-card__meta {
  display: flex;
  gap: var(--space-md);
  flex-wrap: wrap;
  font-size: var(--fs-xs);
  color: var(--text-tertiary);
  padding-top: var(--space-sm);
  border-top: 1px solid var(--border-light);
}

/* --------------------------------------------------------------------------
   13. Modal / 确认框
   -------------------------------------------------------------------------- */
.modal__dialog--wide { max-width: 760px; }
.v2-modal-title {
  font-size: var(--fs-lg);
  font-weight: var(--fw-semibold);
  margin-bottom: var(--space-md);
}
.v2-confirm__title { font-size: var(--fs-md); margin-bottom: var(--space-sm); }
.v2-confirm__msg {
  font-size: var(--fs-base);
  color: var(--text-secondary);
  line-height: var(--lh-relaxed);
  margin-bottom: var(--space-md);
}
.v2-confirm__actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-sm);
  margin-top: var(--space-md);
}

/* --------------------------------------------------------------------------
   14. Loading / Empty / 无权限
   -------------------------------------------------------------------------- */
.v2-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-md);
  padding: var(--space-3xl);
  color: var(--text-secondary);
  font-size: var(--fs-sm);
}
.v2-loading__text { text-align: center; line-height: var(--lh-relaxed); }

.v2-empty {
  text-align: center;
  padding: var(--space-3xl) var(--space-lg);
  color: var(--text-tertiary);
}
.v2-empty__icon { font-size: 40px; margin-bottom: var(--space-sm); }
.v2-empty p { font-size: var(--fs-base); }

.v2-noperm {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-md);
  padding: var(--space-4xl) var(--space-lg);
  text-align: center;
}
.v2-noperm__icon { font-size: 48px; }
.v2-noperm h2 { font-size: var(--fs-xl); }
.v2-noperm p { font-size: var(--fs-base); color: var(--text-secondary); }

/* --------------------------------------------------------------------------
   15. 文本工具
   -------------------------------------------------------------------------- */
.v2-text-muted { color: var(--text-tertiary); }
.v2-text-danger { color: var(--danger); }

/* --------------------------------------------------------------------------
   16. 响应式
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
  .v2-batch-grid { grid-template-columns: 1fr; }
  .v2-stat-cards { grid-template-columns: repeat(2, 1fr); }
  .v2-analysis-trigger { flex-direction: column; align-items: stretch; }
  .v2-analysis-trigger .btn { align-self: flex-start; }
  .v2-page__header h1 { font-size: 24px; }
  .v2-draft-detail__actions { flex-direction: column; align-items: stretch; }
  .v2-draft-detail__actions .btn { width: 100%; }
  .v2-draft-detail__actions .btn:last-child { margin-left: 0; }
}
