:root {
  --red:#D8342A;
  --ink:#0E3A37; --muted:#5E7875; --line:#D5E9E6; --bg:#FFFFFF;
  --accent:#D8342A; --accent2:#B0251F; --chip:#F3FAF9; --page:#F3FAF9;
  --ok:#3B6D11; --err:#A32D2D;
}
* { box-sizing:border-box; }
body {
  margin:0; font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;
  color:var(--ink); background:var(--page); line-height:1.7; -webkit-font-smoothing:antialiased;
}
.page { max-width:900px; margin:0 auto; padding:32px 20px 80px; }

/* 工作台标题区：纯色底（透明=与页面底色一致），去掉 portal.css 里 .hero 的径向渐变与下划线 */
.hero { text-align:center; margin-bottom:28px; background:transparent; border-bottom:none; }
.hero h1 { font-size:34px; margin:0 0 6px; font-weight:800; letter-spacing:.5px; }
.hero .sub { color:var(--muted); margin:0 0 12px; }
.badge {
  display:inline-block; padding:4px 12px; border-radius:999px; font-size:13px;
  background:var(--chip); color:var(--muted); border:1px solid var(--line);
}
.badge.mock { background:#FAEEDA; color:#854F0B; border-color:#EF9F27; }
.badge.live { background:#EAF3DE; color:var(--ok); border-color:#97C459; }

.card {
  background:var(--bg); border:1px solid var(--line); border-radius:14px;
  padding:26px 30px; margin-bottom:22px;
}
.card h2 { font-size:19px; margin:0 0 18px; }
.hidden { display:none; }

label { display:block; margin-bottom:14px; font-size:14px; font-weight:500; }
label .req { color:var(--err); }
input[type=text] {
  width:100%; margin-top:6px; padding:11px 13px; font-size:15px;
  border:1px solid var(--line); border-radius:9px; font-family:inherit;
}
input[type=text]:focus { outline:2px solid var(--accent2); border-color:var(--accent2); }

button.primary {
  background:var(--accent); color:#fff; border:none; padding:12px 26px;
  font-size:16px; border-radius:9px; cursor:pointer; font-family:inherit;
}
button.primary:hover { background:var(--accent2); }
button.primary:disabled { background:#9ca3af; cursor:not-allowed; }
a.ghost {
  display:inline-block; padding:11px 20px; border:1px solid var(--accent);
  color:var(--accent); border-radius:9px; text-decoration:none; font-size:15px;
}
.hint { color:var(--muted); font-size:13px; margin:14px 0 0; }

.stage {
  font-size:16px; font-weight:500; color:var(--accent);
  padding:12px 14px; background:var(--chip); border-radius:9px; margin-bottom:14px;
}
.barWrap { margin-bottom:14px; }
.barTrack {
  height:10px; background:var(--chip); border:1px solid var(--line);
  border-radius:999px; overflow:hidden;
}
.barFill {
  height:100%; background:var(--accent2); border-radius:999px;
  width:0%; transition:width .6s ease;
}
.barMeta {
  display:flex; justify-content:space-between; margin-top:6px;
  font-size:13px; color:var(--muted);
}
.barMeta #pctText { color:var(--accent); font-weight:500; }
.log {
  list-style:none; padding:0; margin:0; max-height:280px; overflow:auto;
  font-size:13px; color:#374151; font-family:"SFMono-Regular",Consolas,monospace;
}
.log li { padding:5px 4px; border-bottom:1px dashed var(--line); }

.actions { display:flex; gap:12px; align-items:center; margin-bottom:16px; }
.quality {
  font-size:13px; color:var(--muted); background:var(--chip);
  border-radius:9px; padding:10px 14px; margin-bottom:16px; white-space:pre-wrap;
  max-height:160px; overflow:auto;
}
.report { width:100%; min-height:640px; border:1px solid var(--line); border-radius:10px; background:#fff; }

.error pre {
  color:var(--err); white-space:pre-wrap; font-size:13px;
  background:#FCEBEB; padding:14px; border-radius:9px;
}

/* 账户栏（默认强制隐藏，登录后由 body.logged-in 控制显示——CSS 双保险，防缓存/状态污染） */
.acctBar {
  display:none !important; gap:18px; align-items:center; justify-content:space-between;
  background:var(--bg); border:1px solid var(--line); border-radius:12px;
  padding:12px 20px; margin-bottom:22px; font-size:14px; flex-wrap:wrap;
}
body.logged-in .acctBar { display:flex !important; }
.creditsNum { color:var(--accent); font-size:17px; }
.acctLinks a { color:var(--accent); text-decoration:none; margin-left:12px; font-size:13px; }
.acctLinks a:hover { text-decoration:underline; }

/* 登录/注册区：左侧标语 + 右侧表单 */
.authWrap { display:grid; grid-template-columns:1fr 1fr; gap:30px; align-items:center; }
.authLeft { border-right:1px solid var(--line); padding-right:30px; }
.authTagline { font-size:20px; font-weight:600; color:var(--ink); line-height:1.75; margin:0; }
.authRight h2 { margin-bottom:14px; }
@media (max-width:640px) {
  .authWrap { grid-template-columns:1fr; gap:18px; }
  .authLeft { border-right:none; padding-right:0; border-bottom:1px solid var(--line); padding-bottom:18px; }
  .authTagline { font-size:17px; }
}

/* 未登录顶栏（钩子文案 + 登录/注册快捷入口，上下两行） */
.guestBar {
  display:flex; flex-direction:column; gap:10px; align-items:center; justify-content:center;
  background:var(--bg); border:1px solid var(--line); border-radius:12px;
  padding:16px 18px; margin-bottom:22px; font-size:14px;
}
.gb-text { color:var(--muted); text-align:center; line-height:1.6; }
.gb-btn {
  background:var(--accent); color:#fff; padding:9px 24px; border-radius:9px;
  font-weight:500; font-size:14px; transition:background .15s;
}
.gb-btn:hover { background:var(--accent2); }

button.ghostBtn {
  background:#fff; color:var(--accent); border:1px solid var(--accent);
  padding:12px 26px; font-size:16px; border-radius:9px; cursor:pointer; font-family:inherit;
}
button.ghostBtn:hover { background:var(--chip); }
.costTag { font-size:13px; color:var(--muted); font-weight:400; margin-left:8px; }

/* 报告列表 / 积分明细 */
.reportList { list-style:none; padding:0; margin:0; font-size:14px; }
.reportList li { padding:9px 4px; border-bottom:1px dashed var(--line); }
.reportList li.empty { color:var(--muted); }
.rpTitle { font-weight:500; }
.rpMeta { color:var(--muted); font-size:12px; margin-left:6px; }
.reportList a { color:var(--accent); text-decoration:none; margin-left:10px; font-size:13px; }
.reportList a:hover { text-decoration:underline; }

/* 管理后台表格 */
.tbl { width:100%; border-collapse:collapse; font-size:13px; }
.tbl th, .tbl td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--line); }
.tbl th { background:var(--chip); font-weight:500; }

/* 模型通道切换 */
.channelRow { display:flex; gap:12px; flex-wrap:wrap; }
.channelBtn {
  padding:12px 22px; font-size:15px; border-radius:9px; cursor:pointer;
  border:1px solid var(--line); background:#fff; color:var(--ink); font-family:inherit;
  transition:all .15s ease;
}
.channelBtn:hover { border-color:var(--accent2); }
.channelBtn.active {
  background:var(--accent); color:#fff; border-color:var(--accent); font-weight:500;
}

/* 报告问答 */
.qaHint { line-height:1.9; margin:0 0 20px; }   /* 提示两行不挤，与输入框拉开距离 */
textarea {
  width:100%; padding:11px 13px; font-size:15px; font-family:inherit;
  border:1px solid var(--line); border-radius:9px; resize:vertical; margin-bottom:14px;
}
textarea:focus { outline:2px solid var(--accent2); border-color:var(--accent2); }
.qaAnswer {
  background:var(--chip); border:1px solid var(--line); border-radius:9px;
  padding:14px 16px; font-size:14px; line-height:1.8; white-space:pre-wrap; margin-top:14px;
}
.qaAnswer.blocked { background:#FAEEDA; border-color:#EF9F27; color:#854F0B; }
.humanLinks { margin-top:14px; font-size:14px; }
.humanLinks a { color:var(--accent); text-decoration:none; margin-left:10px; }
.humanLinks a:hover { text-decoration:underline; }

/* ---------- 顶部品牌条 ---------- */
.topBrand {
  display:flex; align-items:center; justify-content:center; gap:8px;
  font-size:14px; color:var(--ink); font-weight:500; margin-bottom:16px;
}
.tbMark {
  width:24px; height:24px; border-radius:6px; background:var(--accent);
  color:#fff; display:inline-flex; align-items:center; justify-content:center;
  font-size:14px; font-weight:600;
}

/* ---------- 产品介绍卡（未登录首屏） ---------- */
.introCard h2 { margin-bottom:10px; }
.intro-sub { font-size:15px; color:#334155; margin-bottom:18px; }
.intro-points { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:16px; }
.intro-points .pt {
  background:var(--chip); border:1px solid var(--line); border-radius:10px;
  padding:12px 14px; font-size:13px; color:#334155;
}
.intro-points .pt b { display:block; color:var(--accent); font-size:15px; margin-bottom:4px; }
.intro-eg {
  background:#fef2f2; border:1px solid #fecaca; border-radius:10px;
  padding:12px 14px; font-size:13px; color:#334155;
}
.eg-label {
  display:inline-block; background:var(--accent); color:#fff; font-size:11px;
  padding:2px 9px; border-radius:999px; margin-right:8px; font-weight:500;
}

/* ---------- 表单引导 ---------- */
.formGuide { font-size:14px; color:var(--muted); margin:-6px 0 16px; }
.field-hint { display:block; font-size:12px; color:var(--muted); font-weight:400; margin-top:5px; }

/* ---------- 报告后引导 ---------- */
.nextSteps {
  background:var(--chip); border:1px solid var(--line); border-radius:12px;
  padding:16px 18px; margin:16px 0;
}
.ns-title { font-size:14px; font-weight:600; color:var(--ink); margin-bottom:10px; }
.ns-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.ns-item { font-size:13px; color:#334155; background:#fff; border:1px solid var(--line); border-radius:9px; padding:10px 12px; }
.ns-item b { display:block; color:var(--accent); margin-bottom:4px; }

/* ---------- 案例报告区 ---------- */
.caseCat { margin-bottom:18px; }
.caseCat:last-child { margin-bottom:0; }
.caseCatName { font-size:14px; font-weight:600; color:var(--ink); margin-bottom:8px; }
.caseItems { display:flex; flex-direction:column; gap:8px; }
.caseItem {
  display:flex; align-items:center; gap:10px;
  background:var(--chip); border:1px solid var(--line); border-radius:9px;
  padding:11px 14px; font-size:13px; transition:all .15s;
}
.caseItem:hover { border-color:var(--accent); }
.caseItem .ct { color:var(--ink); font-weight:500; white-space:nowrap; }
.caseItem .cn { color:var(--muted); font-size:12px; flex:1; }
.caseItem .cv { color:var(--accent); font-size:13px; white-space:nowrap; font-weight:500; }
.caseEmpty { font-size:13px; color:var(--muted); padding:4px 0; }
/* limitCard / casesCard 下面紧跟其他元素，去掉底部边框避免重复分隔线 */
.card.limitCard, .card.casesCard { border-bottom:none !important; }

/* ---------- 产品介绍与案例（未登录直接展开；登录后折叠查看） ---------- */
.introFold summary {
  cursor:pointer; list-style:none; user-select:none;
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  background:var(--bg); border:1px solid var(--line); border-radius:12px;
  padding:16px 24px; font-size:16px; font-weight:600; color:var(--ink);
}
.introFold summary::-webkit-details-marker { display:none; }
.introFold summary::after { content:"▾"; color:var(--accent); font-size:14px; transition:transform .2s; }
.introFold[open] summary::after { transform:rotate(180deg); }

/* ---------- 产出报告的局限（折叠块） ---------- */
.limitCard { padding:0; overflow:hidden; border-bottom:none; }
.limitCard summary {
  cursor:pointer; padding:18px 26px; font-size:17px; font-weight:600; color:var(--ink);
  list-style:none; display:flex; align-items:center; justify-content:space-between; gap:10px;
  user-select:none;
}
.limitCard summary::-webkit-details-marker { display:none; }
.limitCard summary::after { content:"▾"; color:var(--accent); font-size:14px; transition:transform .2s; }
.limitCard[open] summary::after { transform:rotate(180deg); }
.limTip { font-size:12px; color:var(--muted); font-weight:400; }
.limitCard .limBody {
  border-top:1px solid var(--line); padding:20px 26px 24px;
  font-size:14px; color:#334155;
}
.limBody p { margin-bottom:12px; }
.limList { margin:0 0 12px; padding-left:20px; }
.limList li { margin-bottom:8px; }
.limNote {
  background:var(--chip); border:1px solid var(--line); border-radius:10px;
  padding:14px 16px; margin:16px 0 12px; font-size:14px; color:#334155;
}
.limNote b { color:var(--ink); }
.limUpsell {
  background:#fef2f2; border:1px solid #fecaca; border-radius:10px;
  padding:14px 16px; font-size:14px; color:#7f1d1d;
}
.limUpsell b { color:var(--accent); }

/* ---------- 为什么失败率高 / 为什么用这套（未登录首屏） ---------- */
.whyCard h2 { margin-bottom:16px; }
.whyPain { font-size:15px; color:#334155; }
.whyPain p { margin-bottom:10px; }
.whyPain p:last-child { margin-bottom:0; }
.whyPain .num { color:var(--accent); font-size:24px; font-weight:700; }
.whyPain .cost { color:var(--accent); font-weight:600; }
.whyList { color:#475569; font-weight:500; }
.whyDilemma { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:6px 0 20px; }
.whyCol { background:#fef2f2; border:1px solid #fecaca; border-radius:10px; padding:14px 16px; }
.whyColTitle { font-size:14px; font-weight:600; color:var(--ink); margin-bottom:6px; }
.whyColText { font-size:13px; color:#7f1d1d; }
.whySolution { font-size:15px; color:#334155; }
.whySolution p { margin-bottom:10px; }
.whySolution p:last-child { margin-bottom:0; }
.whySolution .dim { color:var(--accent); font-weight:500; }
.whyStrong { font-weight:600; color:var(--ink); font-size:16px; }

@media (max-width:640px) {
  .intro-points, .ns-grid { grid-template-columns:1fr; }
}

/* ---------- 推广中心（分销） ---------- */
.promoTop { display:flex; gap:24px; flex-wrap:wrap; margin-bottom:18px; }
.promoInfo { flex:1; min-width:200px; }
.promoInfo p { margin:0 0 8px; font-size:14px; color:#334155; }
.promoInfo b { color:var(--ink); }
.promoCode { flex:1; min-width:220px; background:var(--chip); border:1px solid var(--line); border-radius:10px; padding:14px 16px; }
.pc-label { margin:0 0 6px; font-size:12px; color:var(--muted); }
.promoCodeBox { font-size:24px; font-weight:700; letter-spacing:2px; color:var(--accent); margin-bottom:8px; font-family:monospace; }
.pc-link { margin:0; font-size:12px; color:var(--muted); word-break:break-all; }
.pc-link a { color:var(--accent); text-decoration:none; }
.promoTeam, .promoComm { margin-top:16px; }
.promoTeam h3, .promoComm h3 { font-size:14px; color:var(--ink); margin:0 0 8px; }
.reportList li.empty { color:var(--muted); font-size:13px; list-style:none; padding:4px 0; }

/* ---------- 套餐与兑换 ---------- */
.pkgList { display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:12px; margin-bottom:16px; }
.pkg { border:1px solid var(--line); border-radius:10px; padding:14px 16px; background:var(--bg); }
.pkg:hover { border-color:var(--accent); }
.pkgName { font-size:15px; font-weight:600; color:var(--ink); margin-bottom:4px; }
.pkgPrice { font-size:22px; font-weight:700; color:var(--accent); margin-bottom:6px; }
.pkgMeta { font-size:12px; color:#334155; margin-bottom:2px; }
.pkgDesc { font-size:12px; color:var(--muted); margin-top:6px; line-height:1.5; }
.redeemRow { display:flex; gap:10px; }
.redeemRow input { flex:1; padding:10px 14px; border:1px solid var(--line); border-radius:8px; font-size:14px; }
.redeemRow input:focus { outline:none; border-color:var(--accent); }

/* ---------- 推广文案 ---------- */
.promoTxt { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; background:var(--bg); border:1px solid var(--line); border-radius:8px; padding:10px 14px; margin-bottom:8px; font-size:13px; color:#374151; }
.promoTxt a { color:var(--accent); text-decoration:none; flex-shrink:0; }

/* ---------- 后台：总览卡 + 锚点导航 ---------- */
.statRow { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:12px; margin-bottom:18px; }
.statCard { background:#fff; border:1px solid var(--line); border-radius:10px; padding:14px 16px; }
.statCard .sv { font-size:26px; font-weight:700; color:var(--accent); }
.statCard .sl { font-size:12px; color:var(--muted); margin-top:2px; }
.adminNav { position:sticky; top:0; z-index:20; background:#fff; border:1px solid var(--line); border-radius:10px; padding:10px 14px; margin-bottom:16px; display:flex; flex-wrap:wrap; gap:4px 16px; }
.adminNav a { color:var(--ink); text-decoration:none; font-size:13px; padding:4px 0; }
.adminNav a:hover { color:var(--accent); }
.tblFilter { width:100%; max-width:320px; padding:8px 12px; border:1px solid var(--line); border-radius:8px; font-size:13px; margin-bottom:10px; }

/* ---------- 价格条（未登录页：产品介绍与案例之后，登录/注册之前） ---------- */
.priceCard { border-color:#fecaca; }
.priceRow { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.priceOld { font-size:15px; color:var(--muted); text-decoration:line-through; }
.priceNow { font-size:40px; font-weight:800; color:var(--accent); line-height:1.1; }
.priceUnit { font-size:16px; color:var(--ink); }
.priceTags { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.priceTag {
  font-size:12px; color:var(--err); background:#FCEBEB;
  border:1px solid #fecaca; border-radius:999px; padding:3px 11px; font-weight:500;
}
.priceNote { font-size:13px; color:var(--muted); margin:12px 0 18px; }
.priceBtn {
  display:inline-block; background:var(--accent); color:#fff; padding:12px 30px;
  border-radius:9px; font-weight:500; font-size:15px; text-decoration:none;
}
.priceBtn:hover { background:var(--accent2); }

/* ---------- 输入卡：中断可续跑提示（紧贴「开始研究」按钮上方） ---------- */
.resumeNote {
  background:var(--chip); border:1px solid var(--line); border-radius:9px;
  padding:10px 14px; font-size:13px; color:#334155; margin:0 0 16px;
}
.resumeNote b { color:var(--accent); }

/* ---------- 发起调研前的确认弹窗 ---------- */
.modalMask {
  position:fixed; left:0; top:0; right:0; bottom:0; z-index:90;
  background:rgba(14,58,55,.45); display:flex; align-items:center; justify-content:center; padding:20px;
}
.modalMask.hidden { display:none !important; }
.modalBox { background:#fff; border-radius:14px; padding:26px 28px; width:100%; max-width:520px; max-height:86vh; overflow:auto; }
.modalTitle { font-size:18px; margin:0 0 10px; color:var(--ink); }
.modalText { font-size:14px; color:#334155; margin:0 0 14px; }
.modalText b { color:var(--err); }
.modalList { list-style:none; padding:0; margin:0 0 18px; }
.modalList li {
  padding:8px 12px; background:var(--chip); border:1px solid var(--line);
  border-radius:8px; margin-bottom:6px; font-size:13px; color:#334155;
}
.modalList li:last-child { margin-bottom:0; }
.modalList li b { color:var(--ink); }
.modalActions { display:flex; gap:12px; flex-wrap:wrap; }

@media (max-width:640px) {
  .priceNow { font-size:32px; }
  .modalBox { padding:20px 18px; }
}
