/* ===== 墨灵 · 小说创作器 样式 ===== */

body { background-image: radial-gradient(circle at 20% 10%, rgba(184,137,58,.06), transparent 40%), radial-gradient(circle at 80% 90%, rgba(156,59,46,.05), transparent 40%); }

/* 步骤卡片 */
.step-card {
  background: #fff;
  border: 1px solid rgba(184,137,58,.2);
  border-radius: 1.25rem;
  padding: 1.75rem 1.5rem;
  box-shadow: 0 10px 40px -20px rgba(26,24,20,.4);
}
@media (min-width:768px){ .step-card{ padding:2.5rem; } }

/* 代理模式卡片 */
.proxy-mode-card {
  transition: border-color .15s, background .15s;
}
.proxy-mode-card:hover { box-shadow: 0 2px 8px rgba(184,137,58,.15); }

.step-title { font-family:"Noto Serif SC",serif; font-weight:900; font-size:1.4rem; display:flex; align-items:center; gap:.6rem; margin-bottom:.5rem; }
.step-num { display:inline-flex; align-items:center; justify-content:center; width:2rem; height:2rem; border-radius:50%; background:#9c3b2e; color:#faf7f0; font-size:1rem; flex:none; }
.step-desc { color:rgba(26,24,20,.6); font-size:.9rem; margin-bottom:1.25rem; line-height:1.6; }
.field-label { font-weight:700; font-size:.95rem; margin-bottom:.6rem; }

/* 输入框 */
.input-base {
  width:100%; background:#faf7f0; border:1px solid rgba(184,137,58,.3);
  border-radius:.65rem; padding:.7rem .9rem; font-size:.95rem; color:#1a1814;
  transition:border .2s, box-shadow .2s; resize:vertical;
}
.input-base:focus { outline:none; border-color:#b8893a; box-shadow:0 0 0 3px rgba(184,137,58,.15); }

/* 上传区 */
.upload-zone {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  border:2px dashed rgba(184,137,58,.4); border-radius:1rem; padding:2.2rem 1rem;
  cursor:pointer; text-align:center; transition:.2s; background:#faf7f0;
}
.upload-zone:hover, .upload-zone.dragover { border-color:#b8893a; background:#f5efe2; }

/* 标签选择 */
.tag-grid { display:flex; flex-wrap:wrap; gap:.55rem; }
.tag {
  padding:.45rem 1rem; border-radius:999px; font-size:.88rem; cursor:pointer;
  border:1px solid rgba(26,24,20,.18); background:#fff; transition:.18s; user-select:none;
}
.tag:hover { border-color:#b8893a; }
.tag.active { background:#1a1814; color:#faf7f0; border-color:#1a1814; }

/* 作家库 */
.author-group-title { font-family:"Noto Serif SC",serif; font-weight:700; color:#9c3b2e; font-size:1.05rem; margin-bottom:.7rem; padding-left:.5rem; border-left:3px solid #b8893a; }
.author-grid { display:grid; grid-template-columns:1fr; gap:.75rem; }
@media (min-width:640px){ .author-grid{ grid-template-columns:1fr 1fr; } }
.author-card {
  border:1px solid rgba(26,24,20,.15); border-radius:.9rem; padding:.9rem 1rem; cursor:pointer;
  transition:.18s; background:#fff; position:relative;
}
.author-card:hover { border-color:#b8893a; transform:translateY(-2px); }
.author-card.active { border-color:#9c3b2e; background:#fbf3f0; box-shadow:0 0 0 2px rgba(156,59,46,.2); }
.author-card .auth-name { font-family:"Noto Serif SC",serif; font-weight:700; font-size:1.05rem; }
.author-card .auth-works { font-size:.78rem; color:#b8893a; margin:.2rem 0 .35rem; }
.author-card .auth-style { font-size:.82rem; color:rgba(26,24,20,.65); line-height:1.55; }
.author-card .auth-check { position:absolute; top:.7rem; right:.7rem; color:#9c3b2e; opacity:0; transition:.18s; }
.author-card.active .auth-check { opacity:1; }

/* 开关行 */
.switch-row { display:flex; align-items:center; gap:.6rem; font-size:.92rem; cursor:pointer; }
.switch-row input[type=checkbox] { width:1.15rem; height:1.15rem; accent-color:#9c3b2e; cursor:pointer; }

/* 勾选卡 */
.check-card { display:flex; gap:.8rem; align-items:flex-start; border:1px solid rgba(26,24,20,.14); border-radius:.85rem; padding:.9rem 1rem; cursor:pointer; transition:.18s; }
.check-card:hover { border-color:#b8893a; }
.check-card input { margin-top:.25rem; width:1.1rem; height:1.1rem; accent-color:#9c3b2e; flex:none; }
.check-card strong { font-size:.95rem; }
.check-card p { font-size:.8rem; color:rgba(26,24,20,.55); margin-top:.15rem; line-height:1.5; }

/* 插图样图 */
.illust-card { border:2px solid transparent; border-radius:.85rem; overflow:hidden; cursor:pointer; background:#fff; box-shadow:0 4px 16px -8px rgba(0,0,0,.3); transition:.18s; }
.illust-card:hover { transform:translateY(-3px); }
.illust-card.active { border-color:#9c3b2e; box-shadow:0 0 0 3px rgba(156,59,46,.25); }
.illust-card img { width:100%; height:110px; object-fit:cover; display:block; }
.illust-card .illust-meta { padding:.55rem .65rem; }
.illust-card .illust-name { font-weight:700; font-size:.85rem; display:flex; align-items:center; justify-content:space-between; }
.illust-card .illust-desc { font-size:.72rem; color:rgba(26,24,20,.55); margin-top:.2rem; line-height:1.45; }

/* 导航按钮 */
.step-nav { display:flex; justify-content:space-between; align-items:center; margin-top:1.5rem; gap:1rem; }
.btn-next { background:#1a1814; color:#faf7f0; padding:.7rem 1.6rem; border-radius:999px; font-size:.92rem; transition:.18s; }
.btn-next:hover { background:#9c3b2e; }
.btn-prev { color:rgba(26,24,20,.55); font-size:.9rem; }
.btn-prev:hover { color:#9c3b2e; }

/* 进度条步骤点 */
.step-dot { display:inline-flex; align-items:center; justify-content:center; width:1.6rem; height:1.6rem; border-radius:50%; background:#fff; border:1.5px solid rgba(184,137,58,.4); font-size:.75rem; margin-bottom:.2rem; transition:.2s; }
.step-item.done .step-dot { background:#b8893a; color:#fff; border-color:#b8893a; }
.step-item.current .step-dot { background:#9c3b2e; color:#fff; border-color:#9c3b2e; transform:scale(1.15); }
.step-item.current { color:#9c3b2e; font-weight:700; }

/* 指令输出框 */
.prompt-box {
  background:#1a1814; color:#e8e2d4; border-radius:.9rem; padding:1.3rem 1.4rem;
  font-family:"Noto Sans SC",monospace; font-size:.82rem; line-height:1.7;
  white-space:pre-wrap; word-break:break-word; max-height:520px; overflow:auto;
}
.prompt-box::-webkit-scrollbar { width:8px; }
.prompt-box::-webkit-scrollbar-thumb { background:rgba(184,137,58,.5); border-radius:4px; }

/* 正文阅读样式 */
.prose-novel { font-family:"Noto Serif SC",serif; font-size:1rem; line-height:2; color:#2a2620; max-height:70vh; overflow:auto; padding-right:.5rem; }
.prose-novel h2 { font-weight:900; font-size:1.3rem; margin:1.4rem 0 .8rem; color:#9c3b2e; }
.prose-novel h3 { font-weight:700; font-size:1.1rem; margin:1rem 0 .5rem; }
.prose-novel p { margin:.7rem 0; text-indent:2em; }
.prose-novel strong { color:#1a1814; }
.prose-novel::-webkit-scrollbar { width:8px; }
.prose-novel::-webkit-scrollbar-thumb { background:rgba(184,137,58,.4); border-radius:4px; }
.illust-tag { display:inline-block; background:rgba(184,137,58,.15); color:#b8893a; padding:.1rem .5rem; border-radius:.4rem; font-size:.85rem; text-indent:0; }

/* 续写分隔线 */
.continue-divider {
  display: flex; align-items: center; gap: .75rem;
  margin: 1.5rem 0; color: rgba(184,137,58,.7); font-size: .78rem;
}
.continue-divider::before, .continue-divider::after {
  content: ''; flex: 1; height: 1px; background: rgba(184,137,58,.3);
}
.continue-divider span { white-space: nowrap; padding: 0 .3rem; }

/* 动画 */
.form-step { animation: fadeIn .4s ease; }
@keyframes fadeIn { from{ opacity:0; transform:translateY(12px);} to{ opacity:1; transform:none;} }

/* ═══════════════════════════════════════════════════════
   TokenHot · AI Agent 配置 & SOP 流水线 专属样式
═══════════════════════════════════════════════════════ */

/* ── 流水线总览卡片 ── */
.pipeline-card {
  background:#fff;
  border:1px solid rgba(184,137,58,.25);
  border-radius:1.25rem;
  padding:1.5rem;
  box-shadow:0 8px 32px -16px rgba(26,24,20,.3);
  transition:.2s;
}
.pipeline-card:hover { box-shadow:0 12px 40px -16px rgba(26,24,20,.4); }

/* ── Agent 卡片 ── */
.agent-card {
  border:1.5px solid rgba(184,137,58,.2);
  border-radius:1rem;
  padding:1.25rem;
  background:#faf7f0;
  transition:.2s;
  position:relative;
}
.agent-card.verified  { border-color:#22c55e; background:#f0fdf4; }
.agent-card.failed    { border-color:#ef4444; background:#fef2f2; }
.agent-card.testing   { border-color:#b8893a; background:#fffbeb; }

.agent-badge {
  display:inline-flex; align-items:center; gap:.3rem;
  font-size:.72rem; padding:.2rem .7rem; border-radius:999px; font-weight:700;
}
.agent-badge.idle     { background:rgba(26,24,20,.08); color:rgba(26,24,20,.5); }
.agent-badge.ok       { background:#dcfce7; color:#15803d; }
.agent-badge.err      { background:#fee2e2; color:#b91c1c; }
.agent-badge.testing  { background:#fef9c3; color:#a16207; }

.agent-role-tag {
  font-size:.7rem; padding:.15rem .55rem; border-radius:.35rem;
  background:rgba(184,137,58,.12); color:#b8893a; font-weight:700;
}

/* ── 流水线步骤条 ── */
.sop-pipeline {
  display:flex; align-items:center; gap:0; overflow-x:auto;
  padding:.5rem 0; scroll-snap-type:x mandatory;
}
.sop-step {
  flex:none; scroll-snap-align:start;
  display:flex; flex-direction:column; align-items:center; text-align:center;
  min-width:7rem; padding:.6rem .4rem;
  position:relative;
}
.sop-step + .sop-step::before {
  content:''; position:absolute; left:0; top:1.4rem;
  width:100%; height:2px; background:rgba(184,137,58,.25); z-index:0;
  transform:translateX(-50%);
}
.sop-dot {
  width:2.4rem; height:2.4rem; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:1rem; z-index:1; position:relative;
  border:2px solid rgba(184,137,58,.3); background:#fff;
  transition:.2s;
}
.sop-step.active   .sop-dot { background:#9c3b2e; border-color:#9c3b2e; color:#fff; transform:scale(1.15); }
.sop-step.done     .sop-dot { background:#22c55e; border-color:#22c55e; color:#fff; }
.sop-step.running  .sop-dot { background:#b8893a; border-color:#b8893a; color:#fff; animation:sopPulse 1.2s infinite; }
.sop-step-label { font-size:.72rem; color:rgba(26,24,20,.6); margin-top:.35rem; line-height:1.35; }
.sop-step.active .sop-step-label { color:#9c3b2e; font-weight:700; }
.sop-step.done   .sop-step-label { color:#15803d; }

@keyframes sopPulse { 0%,100%{box-shadow:0 0 0 0 rgba(184,137,58,.4)} 50%{box-shadow:0 0 0 8px rgba(184,137,58,0)} }

/* ── Agent 运行进度条 ── */
.agent-progress-wrap {
  height:.35rem; background:rgba(26,24,20,.08); border-radius:999px; overflow:hidden; margin-top:.5rem;
}
.agent-progress-bar {
  height:100%; border-radius:999px; transition:width .4s ease;
  background:linear-gradient(90deg,#b8893a,#9c3b2e);
}

/* ── 输出日志面板 ── */
.agent-log {
  background:#0d1117; color:#c9d1d9;
  border-radius:.75rem; padding:1rem 1.1rem;
  font-family:'Courier New',monospace; font-size:.8rem; line-height:1.7;
  max-height:260px; overflow-y:auto;
  white-space:pre-wrap; word-break:break-all;
}
.agent-log::-webkit-scrollbar { width:6px; }
.agent-log::-webkit-scrollbar-thumb { background:rgba(184,137,58,.4); border-radius:3px; }
.log-ok   { color:#3fb950; }
.log-err  { color:#f85149; }
.log-warn { color:#d29922; }
.log-info { color:#58a6ff; }
.log-dim  { color:#6e7681; }

/* ── 自检流程卡 ── */
.selfcheck-step {
  display:flex; align-items:center; gap:.75rem;
  padding:.6rem .8rem; border-radius:.65rem;
  font-size:.88rem; transition:.2s;
}
.selfcheck-step.pending { background:rgba(26,24,20,.04); color:rgba(26,24,20,.5); }
.selfcheck-step.running { background:#fffbeb; color:#a16207; }
.selfcheck-step.ok      { background:#f0fdf4; color:#15803d; }
.selfcheck-step.err     { background:#fef2f2; color:#b91c1c; }
.selfcheck-icon { font-size:1rem; flex:none; width:1.4rem; text-align:center; }

/* ── TokenHot 品牌色条 ── */
.th-brand-bar {
  background:linear-gradient(135deg,#1a365d 0%,#2d6a9f 50%,#b8893a 100%);
  border-radius:.75rem; padding:1rem 1.25rem; color:#fff;
}
.th-brand-bar h3 { color:#fff; font-size:1rem; font-weight:700; margin:0 0 .2rem; }
.th-brand-bar p  { color:rgba(255,255,255,.8); font-size:.82rem; margin:0; }

/* ── 模型选择器（带角色标签） ── */
.model-select-wrap {
  display:flex; align-items:center; gap:.6rem; flex-wrap:wrap;
}
.model-select-wrap select {
  flex:1; min-width:0;
  background:#faf7f0; border:1px solid rgba(184,137,58,.3);
  border-radius:.6rem; padding:.5rem .8rem; font-size:.85rem; color:#1a1814;
}
.model-select-wrap select:focus { outline:none; border-color:#b8893a; }

/* ── 全局检测按钮 ── */
.btn-verify-all {
  display:inline-flex; align-items:center; gap:.5rem;
  background:linear-gradient(135deg,#1a365d,#9c3b2e);
  color:#fff; padding:.75rem 2rem; border-radius:999px;
  font-weight:700; font-size:.95rem; cursor:pointer; border:none;
  transition:.2s; box-shadow:0 4px 16px -4px rgba(156,59,46,.4);
}
.btn-verify-all:hover { opacity:.9; transform:translateY(-1px); }
.btn-verify-all:disabled { opacity:.5; cursor:not-allowed; transform:none; }

/* ── SOP 方案架构图 ── */
.arch-layer {
  border-left:3px solid; padding:1rem 1.25rem 1rem 1.5rem;
  border-radius:0 .75rem .75rem 0; margin-bottom:.75rem;
  background:#fff;
}
.arch-layer.layer-strategy  { border-color:#1a365d; }
.arch-layer.layer-plan       { border-color:#b8893a; }
.arch-layer.layer-outline    { border-color:#553c9a; }
.arch-layer.layer-produce    { border-color:#9c3b2e; }
.arch-layer.layer-review     { border-color:#276749; }
.arch-layer.layer-qa         { border-color:#0e7490; }
.arch-layer-title { font-weight:700; font-size:.95rem; margin-bottom:.3rem; display:flex; align-items:center; gap:.5rem; }
.arch-layer-desc  { font-size:.82rem; color:rgba(26,24,20,.6); line-height:1.6; }

/* ── 模型角色矩阵表格 ── */
.model-matrix { width:100%; border-collapse:collapse; font-size:.82rem; }
.model-matrix th { background:#1a365d; color:#fff; padding:.6rem .75rem; text-align:left; font-weight:600; }
.model-matrix td { padding:.55rem .75rem; border-bottom:1px solid rgba(184,137,58,.15); vertical-align:top; }
.model-matrix tr:nth-child(even) td { background:rgba(184,137,58,.04); }
.model-matrix tr:hover td { background:rgba(184,137,58,.1); }
.model-tag { display:inline-block; font-size:.68rem; padding:.1rem .4rem; border-radius:.3rem; font-weight:700; }
.model-tag.claude  { background:#e0e7ff; color:#3730a3; }
.model-tag.gpt     { background:#dcfce7; color:#15803d; }
.model-tag.gemini  { background:#fef3c7; color:#b45309; }
.model-tag.deepseek{ background:#ede9fe; color:#6d28d9; }
.model-tag.custom  { background:#f1f5f9; color:#475569; }

/* ── 扩写功能专属 ── */
.expand-zone {
  border:2px dashed rgba(156,59,46,.3); border-radius:1rem;
  padding:1.25rem; background:rgba(156,59,46,.02);
  transition:.2s;
}
.expand-zone:hover { border-color:#9c3b2e; background:rgba(156,59,46,.05); }

.rounds-indicator {
  display:inline-flex; align-items:center; gap:.4rem;
  background:rgba(184,137,58,.12); padding:.3rem .8rem;
  border-radius:.5rem; font-size:.82rem; color:#b8893a; font-weight:700;
}

/* ── 章节卡片 ── */
.chapter-card {
  border:1px solid rgba(184,137,58,.18); border-radius:.85rem;
  padding:1rem 1.1rem; background:#fff; transition:.18s; cursor:pointer;
}
.chapter-card:hover { border-color:#b8893a; transform:translateY(-2px); }
.chapter-card.active { border-color:#9c3b2e; background:#fbf3f0; }
.chapter-num { font-size:.72rem; color:#b8893a; font-weight:700; text-transform:uppercase; margin-bottom:.2rem; }
.chapter-title { font-family:"Noto Serif SC",serif; font-size:.95rem; font-weight:700; }
.chapter-status { font-size:.7rem; margin-top:.3rem; }
.chapter-status.done    { color:#15803d; }
.chapter-status.pending { color:rgba(26,24,20,.4); }
.chapter-status.writing { color:#b8893a; }

/* ── 质检面板 ── */
.qa-item {
  display:flex; align-items:flex-start; gap:.75rem;
  padding:.65rem .8rem; border-radius:.6rem; font-size:.85rem;
  border:1px solid rgba(26,24,20,.08);
}
.qa-item.pass { background:#f0fdf4; border-color:#bbf7d0; color:#15803d; }
.qa-item.warn { background:#fffbeb; border-color:#fde68a; color:#a16207; }
.qa-item.fail { background:#fef2f2; border-color:#fecaca; color:#b91c1c; }
.qa-icon { font-size:1rem; flex:none; margin-top:.05rem; }
