/* AI 书籍写作插件（ai_book_writer）前台 + 后台共用样式 —— abw- 前缀，全核心 CSS 变量
   前台经 layout_head、后台经 admin_head 注入同一文件（后台 admin.css 与前台 app.css 变量同名同值） */

/* ---- 页面骨架 ---- */
.abw-page { max-width: 860px; margin: 0 auto; }
.abw-head-row {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  margin-bottom: 18px;
}
.abw-head-row h1 {
  margin: 0; font-family: var(--serif); font-size: 22px; font-weight: 700;
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-width: 0;
}
.abw-h1-name { word-break: break-all; }

/* 返回钮（幽灵描边族，未挂核心 .btn 基类，此处自带完整按钮样式） */
.abw-back {
  display: inline-flex; align-items: center; gap: 4px;
  margin-left: auto; padding: 7px 15px;
  border: 1px solid var(--bd-2); border-radius: 999px;
  background: transparent; color: var(--tx-2);
  font-size: 13px; font-family: inherit; white-space: nowrap;
  transition: border-color .15s, color .15s, background .15s;
}
a.abw-back:hover { border-color: var(--ac); color: var(--ac-2); background: var(--card); text-decoration: none; }

/* 引导语 */
.abw-lead { color: var(--tx-2); font-size: 14px; line-height: 1.8; margin-bottom: 16px; }

/* ---- 门槛提示卡 ---- */
.abw-gate { display: flex; gap: 16px; padding: 26px 24px; align-items: flex-start; }
.abw-gate-ic { color: var(--warn); flex-shrink: 0; margin-top: 2px; }
.abw-gate-body h2 { font-size: 17px; margin-bottom: 8px; }
.abw-gate-body p { font-size: 13.5px; margin-bottom: 0; }

/* ---- 配额行 ---- */
.abw-quota-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; flex-wrap: wrap; margin-bottom: 16px;
}

/* ---- 空态 ---- */
.abw-empty-ic { color: var(--tx-3); opacity: .55; margin-bottom: 10px; }

/* ---- 任务列表（工作台） ---- */
.abw-task-list { padding: 6px 20px; }
.abw-task-row {
  display: flex; align-items: center; gap: 14px;
  padding: 15px 0; border-bottom: 1px solid var(--soft-2); flex-wrap: wrap;
}
.abw-task-row:last-child { border-bottom: none; }
.abw-task-main { flex: 1; min-width: 220px; }
.abw-task-title {
  display: block; font-weight: 600; font-size: 14.5px; color: var(--tx);
  margin-bottom: 4px; word-break: break-all;
}
a.abw-task-title:hover { color: var(--ac-2); text-decoration: none; }
.abw-task-meta {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  font-size: 12.5px; color: var(--tx-3);
}
.abw-task-meta .ic { margin-right: 3px; }
.abw-task-prog { display: inline-flex; align-items: center; gap: 8px; }
.abw-task-ops { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.abw-task-ops form { margin: 0; }

/* ---- 状态徽章（六态；前台列表/任务页/后台表格共用） ---- */
.abw-badge {
  display: inline-flex; align-items: center;
  padding: 2px 10px; border-radius: 999px;
  font-size: 11.5px; font-weight: 600; white-space: nowrap; line-height: 1.7;
  border: 1px solid transparent;
}
/* 0 资料待确认（中性） */
.abw-b0 { background: var(--soft); color: var(--tx-3); border-color: var(--bd); }
/* 1 结构待确认：需用户行动，警示 */
.abw-b1 { background: var(--warn-soft); color: var(--warn); border-color: #EAD9AE; }
/* 2 正文生成中：进行时，主题色 */
.abw-b2 { background: var(--ac-soft); color: var(--ac-2); border-color: #EFD4C8; }
/* 3 待预览发布：就绪，成功 */
.abw-b3 { background: var(--ok-soft); color: var(--ok); border-color: #CBE5D3; }
/* 4 已提交待审（终态）：等站长，中性偏稳 */
.abw-b4 { background: var(--soft); color: var(--tx-2); border-color: var(--bd-2); }
/* 8 生成失败：错误 */
.abw-b8 { background: var(--err-soft); color: var(--err); border-color: #EAC7BC; }

/* ---- 进度条（sm 列表内联 / lg 生成进度页） ---- */
.abw-progress {
  display: block; height: 8px; border-radius: 999px;
  background: var(--soft-2); border: 1px solid var(--bd); overflow: hidden;
}
.abw-progress-sm { height: 5px; width: 72px; }
.abw-progress-lg { height: 12px; margin-bottom: 14px; }
.abw-progress-bar {
  display: block; height: 100%; background: var(--ac);
  border-radius: 999px; transition: width .4s ease;
}

/* ---- 表单 ---- */
.abw-form { padding: 24px; }
.abw-form textarea { min-height: 88px; }
/* 计数行（字数/总量/超限提示并列，显式 flex+gap） */
.abw-counter { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.abw-opts { display: flex; align-items: center; gap: 10px 24px; flex-wrap: wrap; }
.abw-over { color: var(--err); font-weight: 600; }

/* 主操作按钮 DOM 居首（app.js data-confirm 无参 requestSubmit 取表单内第一个提交按钮）、
   视觉居后：order 把带 .abw-last 的确认/发布钮排到行尾 */
.abw-actions-rev .abw-last { order: 2; }

/* 重新生成结构（独立小表单行） */
.abw-regen {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  margin-top: 14px;
}
.abw-regen-note { font-size: 12.5px; }

/* ---- 第 3 步 · 生成进度卡 ---- */
.abw-gen { padding: 28px 24px; }
.abw-gen-meta {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  font-size: 13.5px; color: var(--tx-2); margin: 10px 0 10px;
}

/* ---- 第 4 步 · 书籍设定只读网格 ---- */
.abw-meta {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px 22px; margin: 0;
}
.abw-meta dt { font-size: 12px; color: var(--tx-3); margin-bottom: 3px; }
.abw-meta dd { font-size: 13.5px; color: var(--tx-2); margin: 0; word-break: break-all; }

/* ---- 状态卡（已提交待审 / 生成失败） ---- */
.abw-status-card { display: flex; gap: 16px; padding: 28px 24px; align-items: flex-start; }
.abw-status-ic { flex-shrink: 0; margin-top: 2px; }
.abw-ic-ok { color: var(--ok); }
.abw-ic-err { color: var(--err); }
.abw-status-body h2 { font-size: 17px; margin-bottom: 8px; }
.abw-status-body p { font-size: 13.5px; margin-bottom: 8px; }
.abw-status-body .btn { margin-top: 6px; }
.abw-reason { color: var(--err); font-size: 13.5px; }
.abw-ops { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.abw-ops form { margin: 0; }

/* ---- 第 1 步 · 资料卡确认 ---- */
.abw-refwarn { color: var(--warn); }
.abw-refhint { display: flex; align-items: center; gap: 6px; color: var(--ok); margin: 0 0 14px; }
.abw-sources ul { margin: 0; padding-left: 18px; }
.abw-sources li { font-size: 13px; color: var(--tx-2); margin: 7px 0; word-break: break-all; line-height: 1.6; }
.abw-sources a { color: var(--ac-2); }

/* 资料卡只读展示（预览页） */
.abw-refview {
  margin: 0; white-space: pre-wrap; word-break: break-word;
  font-family: inherit; font-size: 13px; line-height: 1.8; color: var(--tx-2);
  max-height: 320px; overflow: auto; padding: 4px 2px;
}

/* ---- 书工厂（后台） ---- */
.abw-factory { margin-bottom: 18px; }
.abw-factory-form { margin-top: 14px; }
.abw-factory-off { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0; }

/* ---- 后台任务面板 ---- */
.abw-admin-empty { padding: 42px 16px; text-align: center; color: var(--tx-3); font-size: 13.5px; }
.abw-cell-title { font-weight: 600; color: var(--tx); max-width: 220px; word-break: break-all; }
.abw-cell-prog { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.abw-cell-time { white-space: nowrap; }
.abw-err-txt { color: var(--err); font-size: 12px; }
/* 表格操作列内表单：行内排布不换行（配合核心 td.ta-r button 间距规则） */
.abw-inline-form { display: inline-block; margin: 0; }

/* ---- 响应式 ---- */
@media (max-width: 720px) {
  .abw-page { padding: 0 4px; }
  .abw-task-row { align-items: flex-start; flex-direction: column; gap: 10px; }
  .abw-task-ops { width: 100%; }
  .abw-status-card { flex-direction: column; gap: 10px; }
  .abw-back { margin-left: 0; }
}
