/* ============================================================
   制趣AI 原型演示 · 样式表
   设计令牌沿用 15 份配置文档：深藏青蓝主色 + 微软雅黑标题 + 宋体感正文
   ============================================================ */

:root{
  --c-primary:#1f4e79;
  --c-primary-d:#16405f;
  --c-primary-l:#eaf0f7;
  --c-primary-ll:#f4f7fa;
  --c-text:#1a1a1a;
  --c-muted:#666666;
  --c-mute2:#8a97a6;
  --c-border:#c8d2de;
  --c-border-l:#e2e9f1;
  --c-bg:#f4f7fa;
  --c-white:#fff;

  --c-warn:#8a6d1f;
  --c-warn-bg:#fbf7ea;
  --c-danger:#a03030;
  --c-danger-d:#7d2424;
  --c-danger-bg:#fbf4f4;
  --c-danger-border:#e2c9c9;

  --ff:"Microsoft YaHei","微软雅黑","PingFang SC","Hiragino Sans GB",system-ui,-apple-system,sans-serif;
  --ff-num:"Consolas","SF Mono",Menlo,monospace;

  --w:1120px;
  --radius:3px;
}

*{box-sizing:border-box;margin:0;padding:0}

html{-webkit-text-size-adjust:100%}

body{
  font-family:var(--ff);
  font-size:15px;
  line-height:1.72;
  color:var(--c-text);
  background:var(--c-bg);
  -webkit-font-smoothing:antialiased;
  transition:background .5s ease;
}

body.is-veto{background:var(--c-danger-bg)}

/* ---------------- 顶栏 ---------------- */
.topbar{
  background:var(--c-white);
  border-bottom:1px solid var(--c-border);
  position:sticky;top:0;z-index:20;
}
.topbar-in{
  max-width:var(--w);margin:0 auto;padding:0 28px;height:58px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.brand{display:flex;align-items:baseline;gap:12px;min-width:0}
.brand-mark{
  font-size:15px;font-weight:700;color:var(--c-white);background:var(--c-primary);
  padding:3px 9px;border-radius:var(--radius);letter-spacing:.08em;
}
.brand-name{font-size:15px;font-weight:600;color:var(--c-primary);letter-spacing:.02em;white-space:nowrap}
.topbar-meta{display:flex;align-items:center;gap:12px;font-size:12.5px;color:var(--c-muted);white-space:nowrap}
.pill{
  display:inline-block;padding:2px 9px;border-radius:2px;font-size:12px;line-height:1.6;
  border:1px solid var(--c-border);color:var(--c-muted);background:var(--c-primary-ll);
}
.pill-ver{border-color:#b9cde1;color:var(--c-primary);background:var(--c-primary-l);font-weight:600}
.topbar-sep{width:1px;height:14px;background:var(--c-border)}
.topbar-note{color:var(--c-mute2)}

/* ---------------- 视图容器 ---------------- */
main{max-width:var(--w);margin:0 auto;padding:0 28px 72px}
.view{display:none}
.view-on{display:block}

/* ---------------- 落地页 ---------------- */
.hero{padding:64px 0 40px;max-width:820px}
.hero-title{
  font-size:38px;line-height:1.32;font-weight:700;color:var(--c-primary);
  letter-spacing:.01em;margin-bottom:22px;
}
.hero-sub{font-size:16px;line-height:1.85;color:#3d4a57;margin-bottom:14px}
.hero-hint{font-size:13.5px;color:var(--c-mute2)}

.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:8px}
.case-card{
  background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--radius);
  padding:24px 24px 20px;cursor:pointer;position:relative;overflow:hidden;
  transition:border-color .2s,transform .2s,box-shadow .2s;
  display:flex;flex-direction:column;min-height:214px;
}
.case-card:hover{border-color:var(--c-primary);transform:translateY(-2px);box-shadow:0 6px 18px rgba(31,78,121,.10)}
.case-card::before{content:'';position:absolute;left:0;top:0;width:100%;height:3px;background:var(--c-primary)}
.case-card[data-type="B"]::before{background:#6d8299}
.case-card[data-type="C"]::before{background:var(--c-danger)}

.case-code{font-size:12px;font-family:var(--ff-num);color:var(--c-mute2);letter-spacing:.06em;margin-bottom:10px}
.case-name{font-size:21px;font-weight:700;color:var(--c-text);margin-bottom:6px;letter-spacing:.01em}
.case-desc{font-size:13.5px;line-height:1.75;color:var(--c-muted);margin-bottom:auto}
.case-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.tag{font-size:12px;padding:2px 9px;border-radius:2px;border:1px solid var(--c-border);color:var(--c-muted);background:var(--c-primary-ll)}
.tag-s{color:var(--c-primary);border-color:#b9cde1;background:var(--c-primary-l);font-weight:600}
.tag-c{color:var(--c-danger);border-color:var(--c-danger-border);background:var(--c-danger-bg);font-weight:600}

.home-foot{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid var(--c-border);margin-top:52px;padding-top:24px;
}
.foot-item{padding-right:28px}
.foot-item + .foot-item{border-left:1px solid var(--c-border);padding-left:28px}
.foot-k{font-size:12.5px;font-weight:700;color:var(--c-primary);margin-bottom:5px;letter-spacing:.04em}
.foot-v{font-size:13px;line-height:1.7;color:var(--c-muted)}

/* ---------------- 通用 ---------------- */
.link-btn{
  background:none;border:none;font-family:var(--ff);font-size:13px;color:var(--c-muted);
  cursor:pointer;padding:0;transition:color .15s;
}
.link-btn:hover{color:var(--c-primary)}
.crumb{padding:26px 0 0}

.btn{
  font-family:var(--ff);font-size:14.5px;font-weight:600;letter-spacing:.02em;
  padding:10px 24px;border-radius:var(--radius);cursor:pointer;border:1px solid transparent;
  transition:background .18s,border-color .18s,color .18s;
}
.btn-primary{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}
.btn-primary:hover{background:var(--c-primary-d);border-color:var(--c-primary-d)}
.btn-ghost{background:transparent;color:var(--c-primary);border-color:var(--c-border)}
.btn-ghost:hover{border-color:var(--c-primary);background:var(--c-primary-l)}
.btn-sm{padding:6px 14px;font-size:13px}

/* ---------------- 资料页 ---------------- */
.input-head{
  display:flex;justify-content:space-between;align-items:flex-end;gap:40px;
  padding:18px 0 26px;border-bottom:1px solid var(--c-border);
}
.input-tag{font-size:12.5px;color:var(--c-mute2);font-family:var(--ff-num);letter-spacing:.05em;margin-bottom:8px}
.input-title{font-size:30px;font-weight:700;color:var(--c-primary);letter-spacing:.01em;line-height:1.35}
.input-desc{font-size:14.5px;color:var(--c-muted);margin-top:8px;max-width:640px;line-height:1.78}
.input-cta{text-align:right;flex-shrink:0}
.cta-note{font-size:12px;color:var(--c-mute2);line-height:1.65;margin-bottom:12px}

.input-body{padding-top:8px}
.inblock{border-bottom:1px solid var(--c-border-l);padding:22px 0}
.inblock:last-child{border-bottom:none}
.inblock-t{font-size:14px;font-weight:700;color:var(--c-primary);margin-bottom:14px;letter-spacing:.03em}
.ingrid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 48px}
.irow{display:flex;gap:14px;padding:7px 0;font-size:14px;line-height:1.7;align-items:baseline}
.irow-k{color:var(--c-mute2);flex-shrink:0;width:104px;font-size:13px}
.irow-v{color:var(--c-text);flex:1}
.irow-v.num{font-family:var(--ff-num);letter-spacing:.02em}

.matlist{display:flex;flex-wrap:wrap;gap:8px}
.mat{font-size:12.5px;padding:3px 10px;border-radius:2px;border:1px solid var(--c-border);background:var(--c-white);color:var(--c-muted)}
.mat.no{border-style:dashed;color:var(--c-mute2);background:transparent}

.matbar{
  display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:var(--radius);
  border:1px solid var(--c-border);background:var(--c-white);margin-top:6px;
}
.matbar.warn{border-color:#e6d9b0;background:var(--c-warn-bg)}
.matbar-k{font-size:13px;font-weight:700;color:var(--c-primary);flex-shrink:0}
.matbar.warn .matbar-k{color:var(--c-warn)}
.matbar-v{font-size:13.5px;color:var(--c-muted);line-height:1.7}

/* ---------------- 运行页 ---------------- */
.run-head{
  display:flex;justify-content:space-between;align-items:flex-end;gap:24px;
  padding:22px 0 20px;
}
.run-left{display:flex;flex-direction:column;gap:8px}
.run-title{font-size:26px;font-weight:700;color:var(--c-primary);line-height:1.3}
.run-right{display:flex;align-items:center;gap:14px;font-size:13px}
.run-clock{font-family:var(--ff-num);color:var(--c-mute2);letter-spacing:.03em}
.run-state{
  padding:3px 11px;border-radius:2px;font-size:12.5px;font-weight:600;
  background:var(--c-primary-l);color:var(--c-primary);border:1px solid #b9cde1;
}
.run-state.done{background:#eaf3ec;color:#256b3c;border-color:#c3ddca}
.run-state.veto{background:var(--c-danger-bg);color:var(--c-danger);border-color:var(--c-danger-border)}

/* 流水线 */
.pipe-wrap{
  background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--radius);
  padding:30px 32px 18px;margin-bottom:26px;overflow-x:auto;
}
.pipe{position:relative;display:flex;align-items:flex-start;gap:0;min-width:860px;padding-bottom:58px}

.pnode{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;z-index:2}
.pnode-dot{
  width:54px;height:54px;border-radius:50%;border:2px solid var(--c-border);background:var(--c-white);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--ff-num);font-size:14px;font-weight:700;color:var(--c-mute2);
  transition:all .28s ease;
}
.pnode-name{font-size:12px;color:var(--c-mute2);margin-top:9px;text-align:center;line-height:1.4;transition:color .28s}
.pnode-ms{font-family:var(--ff-num);font-size:11px;color:var(--c-mute2);margin-top:2px;height:14px;transition:color .28s}

/* 主链连接线：每个非首节点向左拉一条 */
.pnode::before{
  content:'';position:absolute;top:27px;left:-50%;width:100%;height:2px;
  background:var(--c-border-l);z-index:1;transition:background .28s;
}
.pnode:first-child::before{display:none}
.pnode.link-done::before{background:var(--c-primary)}
.pnode.link-gray::before{background:#e8ecf1}

.pnode.done .pnode-dot{background:var(--c-primary);border-color:var(--c-primary);color:#fff}
.pnode.done .pnode-name{color:var(--c-primary);font-weight:600}
.pnode.done .pnode-ms{color:var(--c-primary)}

.pnode.active .pnode-dot{border-color:var(--c-primary);color:var(--c-primary);box-shadow:0 0 0 5px var(--c-primary-l);background:var(--c-white)}
.pnode.active .pnode-name{color:var(--c-primary);font-weight:600}

.pnode.gray .pnode-dot{opacity:.32;border-style:dashed}
.pnode.gray .pnode-name{opacity:.4}

.pnode.over .pnode-dot{background:var(--c-danger);border-color:var(--c-danger);color:#fff;box-shadow:0 0 0 5px var(--c-danger-bg)}
.pnode.over .pnode-name{color:var(--c-danger);font-weight:700}

/* 旁挂节点：挂在宿主正下方 */
.pnode-side{
  position:absolute;top:96px;display:flex;flex-direction:column;align-items:center;width:100%;
}
.side-dot{
  width:38px;height:38px;border-radius:50%;border:1px dashed var(--c-border);background:var(--c-white);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--ff-num);font-size:11.5px;font-weight:700;color:var(--c-mute2);
  transition:all .28s ease;
}
.side-name{font-size:11px;color:var(--c-mute2);margin-top:6px;text-align:center;line-height:1.35;transition:color .28s}
.side-dot.done{background:var(--c-primary);border:1px solid var(--c-primary);color:#fff}
.side-dot.active{border:1px solid var(--c-primary);color:var(--c-primary);box-shadow:0 0 0 4px var(--c-primary-l)}
.side-dot.over{background:var(--c-danger);border:1px solid var(--c-danger);color:#fff;box-shadow:0 0 0 4px var(--c-danger-bg)}
.side-dot.gray{opacity:.32}
.side-name.done{color:var(--c-primary);font-weight:600}
.side-name.over{color:var(--c-danger);font-weight:700}
.side-name.gray{opacity:.4}
/* 旁挂与宿主的虚线 */
.pnode-side::before{
  content:'';position:absolute;top:-25px;left:50%;width:1px;height:25px;
  border-left:1px dashed var(--c-border);
}

.pipe-legend{
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  border-top:1px solid var(--c-border-l);padding-top:13px;
  font-size:12px;color:var(--c-mute2);
}
.pipe-legend > span{display:inline-flex;align-items:center;gap:6px}
.lg{display:inline-block;width:10px;height:10px;border-radius:50%;border:1px solid var(--c-border);background:#fff}
.lg-done{background:var(--c-primary);border-color:var(--c-primary)}
.lg-active{background:#fff;border-color:var(--c-primary);box-shadow:0 0 0 2px var(--c-primary-l)}
.lg-pending{background:#fff;border-color:var(--c-border)}
.lg-gray{background:#fff;border-style:dashed;opacity:.5}
.pipe-legend-note{margin-left:auto;color:#a8b3bf}

/* 手机端进度条：默认隐藏，≤768px 才显示 */
.m-progress{display:none}

/* ---------------- 结论卡片 ---------------- */
.cards{display:flex;flex-direction:column;gap:0}
.card{
  background:var(--c-white);border:1px solid var(--c-border);border-left:4px solid var(--c-primary);
  border-radius:var(--radius);padding:20px 26px 18px;margin-bottom:14px;
  animation:cardIn .38s ease both;
}
@keyframes cardIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}

.card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:10px}
.card-id{display:flex;align-items:baseline;gap:10px;min-width:0}
.card-code{font-family:var(--ff-num);font-size:12.5px;font-weight:700;color:var(--c-primary);background:var(--c-primary-l);padding:1px 7px;border-radius:2px;flex-shrink:0}
.card-name{font-size:15.5px;font-weight:700;color:var(--c-text);letter-spacing:.01em}

.badge{
  flex-shrink:0;font-family:var(--ff-num);font-size:13px;font-weight:700;letter-spacing:.02em;
  padding:4px 12px;border-radius:2px;border:1px solid var(--c-border);color:var(--c-muted);background:var(--c-primary-ll);
  white-space:nowrap;
}
.badge.b1{background:var(--c-primary);border-color:var(--c-primary);color:#fff}
.badge.b2{background:var(--c-primary-l);border-color:#b9cde1;color:var(--c-primary)}
.badge.b3{background:#f2f4f6;border-color:var(--c-border);color:#5c6b7a}
.badge.b4{background:var(--c-danger-bg);border-color:var(--c-danger-border);color:var(--c-danger)}

.card-line{font-size:14px;line-height:1.8;color:#3d4a57;margin-bottom:14px}
.card-line b{color:var(--c-text);font-weight:600}

.kv{display:grid;grid-template-columns:1fr 1fr;gap:0 36px;border-top:1px solid var(--c-border-l);padding-top:12px}
.kv-i{display:flex;justify-content:space-between;gap:14px;padding:5px 0;font-size:13px;border-bottom:1px dashed #eef2f6}
.kv-k{color:var(--c-mute2)}
.kv-v{color:var(--c-text);font-family:var(--ff-num);font-weight:600;letter-spacing:.01em}
.kv-v.txt{font-family:var(--ff);font-weight:400}

.card-note{
  margin-top:12px;font-size:12.5px;line-height:1.7;color:var(--c-warn);
  background:var(--c-warn-bg);border-left:2px solid #e6d9b0;padding:7px 12px;
}
.card-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.mini{font-size:11.5px;padding:1px 7px;border-radius:2px;border:1px solid var(--c-border);color:var(--c-muted);background:var(--c-white)}
.mini.fallback{color:var(--c-warn);border-color:#e6d9b0;background:var(--c-warn-bg);font-weight:600}

/* ---------------- 否决专报 ---------------- */
.veto{
  background:var(--c-white);border:1px solid var(--c-danger-border);border-left:4px solid var(--c-danger);
  border-radius:var(--radius);padding:32px 36px 30px;margin:32px 0 20px;
  animation:cardIn .42s ease both;
}
.veto-h{font-size:22px;font-weight:700;color:var(--c-danger);letter-spacing:.04em;margin-bottom:6px}
.veto-sub{font-size:13.5px;color:var(--c-muted);line-height:1.8;padding-bottom:20px;border-bottom:1px solid var(--c-danger-border)}
.veto-sub strong{color:var(--c-danger-d)}

.veto-sec{margin-top:24px}
.veto-sec-t{font-size:13px;font-weight:700;color:var(--c-muted);letter-spacing:.06em;margin-bottom:12px}

.vitem{padding:14px 0;border-bottom:1px solid #f0e6e6}
.vitem:last-child{border-bottom:none}
.vitem-h{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.vcode{font-family:var(--ff-num);font-size:13px;font-weight:700;color:#fff;background:var(--c-danger);padding:1px 8px;border-radius:2px}
.vname{font-size:14.5px;font-weight:600;color:var(--c-text)}
.vlv{font-size:11.5px;padding:1px 8px;border-radius:2px;border:1px solid var(--c-danger-border);color:var(--c-danger);background:var(--c-danger-bg);font-weight:600}

.ev{
  font-size:13px;line-height:1.8;color:#4a4a4a;background:#fafafa;border-left:2px solid var(--c-danger-border);
  padding:9px 14px;margin:7px 0;position:relative;
}
.ev::before{content:'原文';position:absolute;right:10px;top:7px;font-size:10.5px;color:#b9a5a5;letter-spacing:.08em}

.veto-extra{font-size:13px;line-height:1.8;color:var(--c-muted);background:#fafafa;padding:11px 15px;border-left:2px solid var(--c-border)}

.vfix{counter-reset:fx;list-style:none}
.vfix li{
  counter-increment:fx;font-size:13.5px;line-height:1.8;color:#3d4a57;
  padding:6px 0 6px 30px;position:relative;
}
.vfix li::before{
  content:counter(fx);position:absolute;left:0;top:6px;width:20px;height:20px;border-radius:50%;
  background:var(--c-primary-l);color:var(--c-primary);font-family:var(--ff-num);font-size:11.5px;
  font-weight:700;display:flex;align-items:center;justify-content:center;
}

/* ---------------- 终态：综合研判 ---------------- */
.final{margin-top:8px}
.final-block{
  background:var(--c-white);border:1px solid var(--c-border);border-top:3px solid var(--c-primary);
  border-radius:var(--radius);padding:32px 36px;animation:cardIn .42s ease both;
}
.final-h{font-size:13px;font-weight:700;color:var(--c-muted);letter-spacing:.08em;margin-bottom:22px}
.final-grid{display:grid;grid-template-columns:200px 1fr;gap:48px;align-items:center}
.score-box{text-align:center;border-right:1px solid var(--c-border-l);padding-right:40px}
.score-num{font-family:var(--ff-num);font-size:74px;font-weight:700;color:var(--c-primary);line-height:1;letter-spacing:-.02em}
.score-lv{
  display:inline-block;margin-top:14px;font-size:15px;font-weight:700;letter-spacing:.06em;
  color:#fff;background:var(--c-primary);padding:4px 18px;border-radius:2px;
}
.score-lv.b{background:#4d7a9e}
.score-lv.c{background:#7b8b9c}
.score-lbl{font-size:12px;color:var(--c-mute2);margin-top:12px;line-height:1.6}

.radar-wrap{display:flex;gap:36px;align-items:center}
.radar{flex-shrink:0}
.radar-legend{flex:1;min-width:0}
.rl-row{display:flex;justify-content:space-between;gap:12px;padding:4.5px 0;font-size:12.5px;border-bottom:1px dashed #eef2f6}
.rl-k{color:var(--c-muted)}
.rl-v{font-family:var(--ff-num);font-weight:600;color:var(--c-primary)}

.final-note{
  margin-top:26px;padding-top:20px;border-top:1px solid var(--c-border-l);
  font-size:13px;line-height:1.8;color:var(--c-muted);
}
.final-note strong{color:var(--c-warn)}

.advice{margin-top:26px}
.advice-t{font-size:13px;font-weight:700;color:var(--c-muted);letter-spacing:.06em;margin-bottom:12px}
.advice ul{list-style:none}
.advice li{
  font-size:14px;line-height:1.8;color:#3d4a57;padding:9px 0 9px 26px;position:relative;
  border-bottom:1px dashed #eef2f6;
}
.advice li:last-child{border-bottom:none}
.advice li::before{
  content:'';position:absolute;left:4px;top:17px;width:6px;height:6px;
  border-radius:50%;background:var(--c-primary);
}

.final-actions{display:flex;gap:12px;margin:26px 0 8px}

/* ---------------- 页脚 ---------------- */
.footer{
  border-top:1px solid var(--c-border);background:var(--c-white);
  padding:18px 28px;text-align:center;font-size:12px;color:var(--c-mute2);
}
.footer-sep{margin:0 10px;color:var(--c-border)}
.footer-line{line-height:1.9}
.footer-copy{margin-top:6px;font-size:11.5px;color:#9aa7b4;line-height:1.9}
.footer-icp{margin-top:4px}
.footer-a{color:#7f8d9b;text-decoration:none;border-bottom:1px solid transparent;transition:color .18s,border-color .18s}
.footer-a:hover{color:var(--c-primary);border-bottom-color:var(--c-primary)}

/* ============================================================
   返回键（资料页 / 运行页）
   ============================================================ */
.backbar{
  position:sticky;top:58px;z-index:18;
  padding:16px 0 10px;
  background:linear-gradient(180deg,var(--c-bg) 62%,rgba(244,247,250,.72));
}
.back-btn{
  display:inline-flex;align-items:center;gap:10px;cursor:pointer;
  min-height:44px;padding:0 20px 0 16px;
  border:1.5px solid var(--c-primary);border-radius:999px;
  background:var(--c-white);color:var(--c-primary);
  font-family:var(--ff);font-size:14px;font-weight:700;letter-spacing:.02em;
  box-shadow:0 2px 10px rgba(31,78,121,.12);
  transition:background .18s,color .18s,box-shadow .18s,transform .12s;
}
.back-btn:hover{
  background:var(--c-primary);color:#fff;box-shadow:0 4px 16px rgba(31,78,121,.24);
}
.back-btn:active{transform:translateY(1px)}
.back-ar{font-size:16px;line-height:1;transition:transform .18s}
.back-btn:hover .back-ar{transform:translateX(-3px)}
.back-k{
  font-size:10px;font-weight:600;letter-spacing:.04em;color:var(--c-mute2);
  border:1px solid var(--c-border);border-radius:3px;padding:0 5px;line-height:15px;
  background:var(--c-primary-ll);
}
.back-btn:hover .back-k{color:#fff;border-color:rgba(255,255,255,.5);background:transparent}

/* ============================================================
   联系我们 / 客户留言
   ============================================================ */
.contact{
  margin:48px auto 0;max-width:var(--w);
  border-top:1px solid var(--c-border);padding:44px 0 8px;
}
.ct-in{max-width:var(--w);margin:0 auto;padding:0 28px}
.ct-head{margin-bottom:24px}
.ct-tag{
  display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.08em;
  color:var(--c-primary);background:var(--c-primary-l);border:1px solid #c9d9ea;
  padding:3px 10px;border-radius:2px;margin-bottom:12px;
}
.ct-title{font-size:26px;line-height:1.45;color:var(--c-primary);letter-spacing:.01em}
.ct-sub{font-size:14px;color:var(--c-muted);line-height:1.85;margin-top:10px;max-width:760px}

.ct-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:20px;margin-top:8px;align-items:start}
.ct-form{
  background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--radius);
  padding:22px 22px 18px;
}
.ct-form-t{font-size:15px;font-weight:700;color:var(--c-primary);margin-bottom:16px}
.ct-row2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.ct-f{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--c-muted)}
.ct-f-full{margin-bottom:14px}
.ct-f > span{font-weight:600;letter-spacing:.02em}
.ct-f input,.ct-f select,.ct-f textarea{
  font-family:var(--ff);font-size:14px;color:var(--c-text);
  border:1px solid var(--c-border);border-radius:var(--radius);
  padding:10px 12px;background:#fff;width:100%;
  transition:border-color .16s,box-shadow .16s;
}
.ct-f textarea{resize:vertical;line-height:1.7;min-height:96px}
.ct-f input:focus,.ct-f select:focus,.ct-f textarea:focus{
  outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px rgba(31,78,121,.07);
}
.ct-f input::placeholder,.ct-f textarea::placeholder{color:#b3bfcc}
.ct-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ct-submit{
  font-family:var(--ff);font-size:14.5px;font-weight:700;letter-spacing:.03em;
  background:var(--c-primary);color:#fff;border:1px solid var(--c-primary);
  border-radius:var(--radius);padding:11px 30px;cursor:pointer;min-height:44px;
  transition:background .18s;
}
.ct-submit:hover{background:var(--c-primary-d)}
.ct-submit:disabled{opacity:.55;cursor:default}
.ct-hint{font-size:11.5px;color:var(--c-mute2);line-height:1.6}
.ct-done{margin-top:12px;font-size:13px;line-height:1.8;color:#2e7d5b;display:none}
.ct-done.on{
  display:block;background:#f2faf6;border:1px solid #cfe8da;border-radius:var(--radius);padding:12px 14px;
}
.ct-done b{color:#1f6b4a}

.ct-side{display:flex;flex-direction:column;gap:14px}
.ct-card{
  display:block;background:var(--c-white);border:1px solid var(--c-border);
  border-radius:var(--radius);padding:16px 18px;text-decoration:none;color:inherit;
  transition:border-color .18s,box-shadow .18s;
}
.ct-card-tel:hover{border-color:var(--c-primary);box-shadow:0 3px 14px rgba(31,78,121,.10)}
.ct-card-h{display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:700;color:var(--c-muted);letter-spacing:.03em}
.ct-ico{
  width:22px;height:22px;border-radius:5px;background:var(--c-primary);color:#fff;
  font-size:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:700;
}
.ct-ico.wx{background:#2aae67}
.ct-card-num{
  font-family:var(--ff-num);font-size:22px;font-weight:700;color:var(--c-primary);
  letter-spacing:.02em;margin:8px 0 4px;
}
.ct-card-s{font-size:11.5px;color:var(--c-mute2);line-height:1.7}

.ct-wx-body{display:flex;gap:14px;margin-top:12px;align-items:flex-start}
.ct-qr{
  width:104px;height:104px;flex-shrink:0;border:1px solid var(--c-border-l);
  border-radius:var(--radius);background:#fff;overflow:hidden;position:relative;
}
.ct-qr img{width:100%;height:100%;object-fit:cover;display:none}
.ct-qr img.ok{display:block}
.ct-qr-fb{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#f4f8fc,#eaf1f8);text-align:center;padding:6px;
}
.ct-qr-fb-t{font-size:10.5px;color:var(--c-mute2);letter-spacing:.06em}
.ct-qr-fb-n{font-family:var(--ff-num);font-size:11px;color:var(--c-primary);font-weight:700;margin-top:4px;word-break:break-all}
.ct-wx-info{min-width:0;flex:1}
.ct-wx-id{font-size:12.5px;color:var(--c-muted);line-height:1.7}
.ct-wx-id b{font-family:var(--ff-num);color:var(--c-text);font-size:13px}
.ct-copy{
  margin-top:8px;font-family:var(--ff);font-size:12px;font-weight:600;cursor:pointer;
  background:#fff;border:1px solid var(--c-primary);color:var(--c-primary);
  border-radius:var(--radius);padding:6px 14px;min-height:32px;
  transition:background .18s,color .18s;
}
.ct-copy:hover{background:var(--c-primary);color:#fff}
.ct-wx-tip{font-size:11px;color:var(--c-mute2);line-height:1.7;margin-top:8px}
.ct-org{font-size:13.5px;font-weight:700;color:var(--c-text);margin:8px 0 4px;line-height:1.6}
.ct-org-meta{margin-top:8px;padding-top:8px;border-top:1px dashed var(--c-border);font-size:11.5px;color:var(--c-mute2);line-height:1.9}
.ct-org-meta a{color:var(--c-primary);text-decoration:none}
.ct-org-meta a:hover{text-decoration:underline}

/* 留言处理流程卡 */
.ct-flow{margin:10px 0 12px;padding:0 0 0 18px;list-style:none;counter-reset:ctf}
.ct-flow li{
  counter-increment:ctf;position:relative;
  font-size:12.5px;color:var(--c-muted);line-height:1.75;
  padding:5px 0 5px 22px;
}
.ct-flow li::before{
  content:counter(ctf);position:absolute;left:0;top:6px;
  width:16px;height:16px;border-radius:50%;
  background:var(--c-primary-ll);color:var(--c-primary);
  font-size:10.5px;font-weight:700;line-height:16px;text-align:center;
}
.ct-flow li b{color:var(--c-text)}


/* ---------------- 响应式 ---------------- */

/* 平板 / 窄笔记本 */
@media (max-width:1080px){
  .case-grid{grid-template-columns:1fr}
  .home-foot{grid-template-columns:1fr}
  .foot-item{padding-right:0}
  .foot-item + .foot-item{border-left:none;padding-left:0;border-top:1px solid var(--c-border);margin-top:16px;padding-top:16px}
  .final-grid{grid-template-columns:1fr;gap:28px}
  .score-box{border-right:none;border-bottom:1px solid var(--c-border-l);padding:0 0 24px}
  .radar-wrap{flex-direction:column;gap:20px}
  .kv{grid-template-columns:1fr}
  .ingrid{grid-template-columns:1fr}
  .input-head{flex-direction:column;align-items:flex-start;gap:20px}
  .input-cta{text-align:left}
  .hero-title{font-size:30px}
}

/* ============================================================
   手机竖屏（≤ 768px）—— 主要使用场景
   目标：单手握持、拇指可点、不需要横向滚动
   ============================================================ */
@media (max-width:768px){

  body{font-size:15px;line-height:1.75}

  /* --- 顶栏：两行排布，副标题收进第二行 --- */
  .topbar-in{
    height:auto;padding:10px 16px;flex-direction:column;align-items:flex-start;gap:6px;
  }
  .brand{gap:8px;width:100%}
  .brand-mark{font-size:13px;padding:2px 7px}
  .brand-name{font-size:13.5px;white-space:normal;line-height:1.4}
  .topbar-meta{font-size:11.5px;gap:8px;flex-wrap:wrap}
  .topbar-sep{display:none}
  .topbar-note{font-size:11px}

  main{padding:0 16px 56px}

  /* --- 落地页 --- */
  .hero{padding:32px 0 24px}
  .hero-title{font-size:25px;line-height:1.42;margin-bottom:16px}
  .hero-title br{display:none}
  .hero-sub{font-size:14.5px;line-height:1.8;margin-bottom:12px}
  .hero-hint{font-size:12.5px}

  .case-grid{gap:12px;margin-top:4px}
  .case-card{padding:20px 18px 18px;min-height:0}
  .case-name{font-size:19px}
  .case-desc{font-size:13.5px}
  .case-tags{margin-top:14px}

  .home-foot{margin-top:32px;padding-top:18px}

  /* --- 通用按钮：拇指可点 --- */
  .btn{min-height:44px;padding:12px 22px;font-size:15px}
  .btn-sm{min-height:40px;padding:10px 16px;font-size:14px}
  .link-btn{font-size:13.5px;padding:8px 0;min-height:36px}

  /* --- 资料页 --- */
  .crumb{padding:16px 0 0}
  .input-head{padding:10px 0 18px;gap:14px}
  .input-title{font-size:24px}
  .input-desc{font-size:14px}
  .input-cta{width:100%;text-align:left}
  .cta-note{margin-bottom:10px}
  .input-cta .btn{width:100%}

  .inblock{padding:18px 0}
  .inblock-t{font-size:13.5px;margin-bottom:10px}
  .ingrid{gap:0}
  /* 手机端：标签在上、值在下，避免长文本被挤成一列窄条 */
  .irow{flex-direction:column;gap:2px;padding:8px 0;border-bottom:1px dashed #eef2f6}
  .irow:last-child{border-bottom:none}
  .irow-k{width:auto;font-size:12px}
  .irow-v{font-size:14px;line-height:1.65}

  .matlist{gap:6px}
  .mat{font-size:12px;padding:4px 9px}
  .matbar{flex-direction:column;align-items:flex-start;gap:6px;padding:12px 14px}
  .matbar-v{font-size:13px}

  /* --- 运行页头部 --- */
  .run-head{padding:14px 0 14px;flex-direction:column;align-items:flex-start;gap:10px}
  .run-left{gap:6px}
  .run-title{font-size:21px}
  .run-right{width:100%;justify-content:space-between}

  /* --- 手机端进度条（替代横向流水线） --- */
  .m-progress{
    display:block;
    background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--radius);
    padding:16px 16px 14px;margin-bottom:16px;
  }
  .m-progress-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px}
  .m-progress-label{font-size:13px;font-weight:700;color:var(--c-primary);letter-spacing:.03em}
  .m-progress-pct{font-family:var(--ff-num);font-size:15px;font-weight:700;color:var(--c-primary)}
  .m-progress-bar{height:6px;border-radius:3px;background:#e8eef4;overflow:hidden}
  .m-progress-bar i{display:block;height:100%;width:0;background:var(--c-primary);border-radius:3px;transition:width .5s ease}
  .m-progress-step{font-size:12.5px;color:var(--c-mute2);margin-top:8px;min-height:18px}
  .m-progress.is-veto .m-progress-label,
  .m-progress.is-veto .m-progress-pct{color:var(--c-danger)}
  .m-progress.is-veto .m-progress-bar i{background:var(--c-danger)}
  .m-progress.is-done .m-progress-label,
  .m-progress.is-done .m-progress-pct{color:#256b3c}
  .m-progress.is-done .m-progress-bar i{background:#256b3c}

  /* 宽屏才显示的横向流水线，手机隐藏 */
  .pipe-wrap{display:none}

  /* --- 结论卡片 --- */
  .card{padding:16px 16px 14px;margin-bottom:12px}
  .card-top{gap:10px;margin-bottom:9px;flex-wrap:wrap}
  .card-id{gap:8px}
  .card-name{font-size:14.5px;line-height:1.45}
  .card-code{font-size:11.5px}
  .badge{font-size:12px;padding:3px 10px}
  .card-line{font-size:13.5px;line-height:1.8;margin-bottom:12px}
  .kv{gap:0;padding-top:10px}
  .kv-i{font-size:13px;padding:6px 0}
  .kv-k{flex-shrink:0}
  .kv-v{text-align:right}
  .card-note{font-size:12px;padding:8px 10px}

  /* --- 否决专报 --- */
  .veto{padding:22px 16px 20px;margin:18px 0 14px}
  .veto-h{font-size:19px}
  .veto-sub{font-size:13px;padding-bottom:16px}
  .veto-sec{margin-top:20px}
  .vitem{padding:12px 0}
  .vitem-h{gap:7px}
  .vcode{font-size:12px;padding:1px 7px}
  .vname{font-size:14px;line-height:1.5;flex:1 0 100%}
  .vlv{font-size:11px}
  .ev{font-size:12.5px;line-height:1.8;padding:9px 12px 9px 12px;padding-right:44px}
  .vfix li{font-size:13.5px;line-height:1.8;padding-left:28px}
  .vfix li::before{width:18px;height:18px;font-size:11px}

  /* --- 终态 --- */
  .final-block{padding:22px 16px}
  .final-h{margin-bottom:16px}
  .final-grid{gap:22px}
  .score-num{font-size:60px}
  .score-lv{font-size:14px;padding:3px 15px;margin-top:10px}
  .rl-row{font-size:12.5px}
  .rl-k{font-size:12px}
  .final-note{font-size:12.5px;margin-top:20px;padding-top:16px}
  .advice{margin-top:20px}
  .advice li{font-size:13.5px;line-height:1.8;padding:9px 0 9px 22px}
  .advice li::before{top:16px}
  /* 底部操作按钮：竖排、占满整行 */
  .final-actions{flex-direction:column;gap:10px;margin-top:20px}
  .final-actions .btn{width:100%}

  .footer{padding:16px;font-size:11px;line-height:1.7}
  .footer-sep{display:none}
  .footer span{display:block}
}



/* ============================================================
   顶栏导航（本次新增）
   ============================================================ */
.topnav{display:flex;align-items:center;gap:2px;margin-left:auto;margin-right:8px}
.nav-btn{
  font-family:var(--ff);font-size:13px;color:var(--c-muted);background:transparent;border:none;
  padding:6px 12px;border-radius:2px;cursor:pointer;transition:all .2s;white-space:nowrap;
  display:inline-flex;align-items:center;gap:6px;
}
.nav-btn:hover{color:var(--c-primary);background:var(--c-primary-ll)}
.nav-btn.is-on{color:var(--c-primary);background:var(--c-primary-l);font-weight:700}
.nav-num{
  font-family:var(--ff-num);font-size:10.5px;font-weight:700;line-height:1;
  padding:2px 4px;border-radius:2px;background:var(--c-primary);color:#fff;
}
.nav-btn.is-on .nav-num{background:var(--c-primary)}

/* ============================================================
   能力矩阵视图
   ============================================================ */
.mx-head{padding:44px 0 22px;max-width:820px}
.mx-title{font-size:30px;font-weight:700;color:var(--c-primary);letter-spacing:.01em;line-height:1.35;margin-bottom:12px}
.mx-sub{font-size:14.5px;line-height:1.85;color:#3d4a57}

/* --- 统计条 --- */
.mx-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--radius);
  padding:22px 8px;margin:6px 0 20px;
}
.mx-stat{padding:0 20px;text-align:center}
.mx-stat + .mx-stat{border-left:1px solid var(--c-border-l)}
.mx-stat-n{font-family:var(--ff-num);font-size:30px;font-weight:700;color:var(--c-primary);line-height:1.1;letter-spacing:-.01em}
.mx-stat-n span{font-size:14px;font-weight:400;color:var(--c-mute2);margin-left:2px}
.mx-stat-k{font-size:12.5px;color:var(--c-muted);margin-top:6px}

/* --- 口径说明 --- */
.mx-note{
  font-size:13.5px;line-height:1.85;color:#3d4a57;
  background:var(--c-primary-ll);border-left:3px solid var(--c-primary);
  padding:14px 18px;margin-bottom:22px;
}
.mx-note b{color:var(--c-primary);font-weight:700}
.mx-note em{font-style:normal;background:#fff;padding:0 4px;border-bottom:1px solid var(--c-border);color:var(--c-text)}

/* --- 筛选 --- */
.mx-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;align-items:center}
.mx-filter-label{font-size:12.5px;color:var(--c-mute2);margin-right:2px}
.chip{
  font-family:var(--ff);font-size:12.5px;color:var(--c-muted);background:var(--c-white);
  border:1px solid var(--c-border);border-radius:2px;padding:5px 12px;cursor:pointer;transition:all .18s;
}
.chip:hover{border-color:var(--c-primary);color:var(--c-primary)}
.chip.is-on{background:var(--c-primary);border-color:var(--c-primary);color:#fff;font-weight:600}
.chip-sep{width:1px;height:16px;background:var(--c-border);margin:0 4px}

/* --- 列表 --- */
.mx-list{
  background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;
}
.mx-row{
  display:grid;grid-template-columns:44px 74px 1fr 132px 54px;
  align-items:center;gap:12px;padding:13px 20px;border-bottom:1px solid var(--c-border-l);
  transition:background .16s;
}
.mx-row:last-child{border-bottom:none}
.mx-row:hover{background:var(--c-primary-ll)}
.mx-row.is-off{display:none}
.mx-n{font-family:var(--ff-num);font-size:15px;font-weight:700;color:var(--c-primary)}
.mx-mid{display:flex;flex-direction:column;gap:2px;min-width:0}
.mx-id{font-family:var(--ff-num);font-size:11px;color:var(--c-mute2);letter-spacing:.04em}
.mx-body{min-width:0}
.mx-name{font-size:14.5px;font-weight:600;color:var(--c-text);line-height:1.5}
.mx-doc{font-size:12.5px;color:var(--c-muted);line-height:1.65;margin-top:3px}
.mx-kind{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.kk{font-size:11.5px;padding:2px 7px;border-radius:2px;border:1px solid var(--c-border);color:var(--c-muted);background:var(--c-primary-ll);white-space:nowrap}
.kk-base{color:#5c6b7a;border-color:#c8d2de;background:#f4f7fa}
.kk-judge{color:var(--c-primary);border-color:#b9cde1;background:var(--c-primary-l)}
.kk-crunch{color:#7a5c1f;border-color:#e6d9b0;background:var(--c-warn-bg)}
.kk-gen{color:#256b3c;border-color:#c3ddca;background:#eaf3ec}

/* 演示状态 */
.mx-st{font-size:11.5px;text-align:center;padding:2px 6px;border-radius:2px;white-space:nowrap;font-weight:600}
.mx-st.yes{color:var(--c-primary);background:var(--c-primary-l);border:1px solid #b9cde1}
.mx-st.no{color:var(--c-mute2);background:#f5f7f9;border:1px solid var(--c-border-l)}
.mx-row.is-later{opacity:.92}

.mx-empty{padding:40px 20px;text-align:center;font-size:13.5px;color:var(--c-mute2)}

.mx-foot{margin:22px 0 10px;display:flex;gap:10px}

/* ============================================================
   终端与部署视图
   ============================================================ */
.term-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:22px}
.term-card{
  background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--radius);
  padding:20px 22px 18px;position:relative;
}
.term-card.is-cur{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-l)}
.term-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.term-badge{font-size:11.5px;font-weight:700;color:var(--c-primary);background:var(--c-primary-l);padding:2px 8px;border-radius:2px;letter-spacing:.04em}
.term-card[data-term="mini"] .term-badge,
.term-card[data-term="app"] .term-badge{color:var(--c-mute2);background:#f2f4f6}
.term-state{font-size:11.5px;padding:2px 8px;border-radius:2px;border:1px solid var(--c-border);color:var(--c-mute2)}
.term-state.st-on{color:#256b3c;border-color:#c3ddca;background:#eaf3ec;font-weight:600}
.term-state.st-off{color:var(--c-mute2);border-color:var(--c-border);background:#f7f9fa}
.term-state.st-no{color:var(--c-muted);border-color:var(--c-border);background:#f2f4f6}
.term-name{font-size:16px;font-weight:700;color:var(--c-text);margin-bottom:8px}
.term-body{font-size:13.5px;line-height:1.8;color:var(--c-muted)}
.term-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}

.term-block{
  background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--radius);
  padding:20px 22px;margin-bottom:16px;
}
.term-block-t{font-size:13px;font-weight:700;color:var(--c-primary);letter-spacing:.04em;margin-bottom:10px}
.term-block-b{font-size:13.5px;line-height:1.9;color:#3d4a57}
.term-block-b code{
  font-family:var(--ff-num);font-size:12.5px;background:var(--c-primary-ll);
  border:1px solid var(--c-border-l);padding:1px 5px;border-radius:2px;color:var(--c-primary);
}
.term-foot{display:flex;gap:10px;margin:20px 0 10px}

/* ============================================================
   终态「未纳入本次」提示
   ============================================================ */
.more-caps{margin-top:26px;padding-top:20px;border-top:1px solid var(--c-border-l)}
.more-t{font-size:13px;font-weight:700;color:var(--c-muted);letter-spacing:.06em;margin-bottom:6px}
.more-sub{font-size:12.5px;color:var(--c-mute2);line-height:1.7;margin-bottom:12px}
.more-list{display:flex;flex-wrap:wrap;gap:7px}
.more-item{
  font-size:12px;padding:3px 9px;border-radius:2px;border:1px dashed var(--c-border);
  color:var(--c-muted);background:var(--c-white);
}
.more-item b{font-family:var(--ff-num);font-weight:700;color:var(--c-primary);margin-right:4px}
.more-btn{margin-top:14px}

/* ============================================================
   响应式补丁：矩阵与终端
   ============================================================ */
@media (max-width:1080px){
  .mx-stats{grid-template-columns:repeat(2,1fr);gap:16px 0;padding:18px 8px}
  .mx-stat + .mx-stat{border-left:none}
  .mx-stat:nth-child(n+3){border-top:1px solid var(--c-border-l);padding-top:14px}
  .term-grid{grid-template-columns:1fr}
}

@media (max-width:768px){
  /* 顶栏导航改为第三行，横向可滑 */
  .topbar-in{position:relative}
  .topnav{
    width:100%;margin:4px 0 0;gap:0;overflow-x:auto;-webkit-overflow-scrolling:touch;
    padding-bottom:2px;margin-right:0;
  }
  .topnav::-webkit-scrollbar{display:none}
  .nav-btn{font-size:13px;padding:7px 11px;min-height:36px;flex-shrink:0}
  .nav-num{font-size:10px}

  .mx-head{padding:24px 0 16px}
  .mx-title{font-size:23px}
  .mx-sub{font-size:13.5px;line-height:1.8}

  .mx-stats{grid-template-columns:repeat(2,1fr);gap:14px 0;padding:16px 4px;margin-bottom:14px}
  .mx-stat{padding:0 10px}
  .mx-stat-n{font-size:24px}
  .mx-stat-k{font-size:11.5px}

  .mx-note{font-size:12.5px;line-height:1.8;padding:12px 14px;margin-bottom:16px}

  .mx-filters{gap:6px}
  .chip{font-size:12px;padding:6px 10px;min-height:32px}
  .chip-sep{display:none}

  /* 列表改为两行卡片式：序号+编号+状态 一行，名称与出处 下一行 */
  .mx-row{
    grid-template-columns:36px 1fr auto;
    grid-template-areas:
      "n  body st"
      "n  kind kind";
    gap:4px 10px;padding:13px 14px;
  }
  .mx-row > .mx-n{grid-area:n;align-self:flex-start;font-size:14px;padding-top:2px}
  .mx-mid{grid-area:st;flex-direction:row;align-items:center;gap:6px;justify-self:end}
  .mx-mid .mx-id{display:none}
  .mx-body{grid-area:body}
  .mx-kind{grid-area:kind;justify-content:flex-start;margin-top:6px}
  .mx-name{font-size:14px}
  .mx-doc{font-size:12px;line-height:1.7;margin-top:4px}
  .kk{font-size:11px;padding:2px 6px}
  .mx-st{font-size:11px}

  .term-grid{gap:12px}
  .term-card{padding:16px 16px 14px}
  .term-name{font-size:15px}
  .term-body{font-size:13px;line-height:1.75}
  .term-block{padding:16px}
  .term-block-b{font-size:13px;line-height:1.85}
  .term-foot{flex-direction:column}
  .term-foot .btn{width:100%}
  .mx-foot{flex-direction:column}
  .mx-foot .btn{width:100%}

  .more-item{font-size:11.5px}
}

/* ============================================================
   两层结构：业务能力 / 平台工程
   ============================================================ */
.lay-tag{
  display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.08em;
  padding:3px 10px;border-radius:2px;margin-bottom:12px;
}
.lay-biz{color:var(--c-primary);background:var(--c-primary-l);border:1px solid #b9cde1}
.lay-eng{color:#5b3f7a;background:#f2eef7;border:1px solid #d5c8e4}

/* 工程层说明块 */
.eng-intro{
  background:var(--c-white);border:1px solid var(--c-border);border-left:3px solid #7a5f9c;
  border-radius:var(--radius);padding:18px 22px;margin-bottom:20px;
}
.eng-intro-t{font-size:13px;font-weight:700;color:#5b3f7a;letter-spacing:.04em;margin-bottom:8px}
.eng-intro-b{font-size:13.5px;line-height:1.9;color:#3d4a57}
.eng-intro-b b{color:#5b3f7a;font-weight:700}
.eng-intro-b code{
  font-family:var(--ff-num);font-size:12.5px;background:#f5f2f9;
  border:1px solid #e3dcee;padding:1px 5px;border-radius:2px;color:#5b3f7a;
}

/* 工程行：比业务行多一列 SOP */
.eng-list{background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden}
.eng-row{
  display:grid;grid-template-columns:52px 1fr 108px 120px;
  align-items:start;gap:14px;padding:15px 20px;border-bottom:1px solid var(--c-border-l);
  transition:background .16s;
}
.eng-row:last-child{border-bottom:none}
.eng-row:hover{background:#faf8fc}
.eng-row.is-off{display:none}
.eng-n{font-family:var(--ff-num);font-size:14px;font-weight:700;color:#7a5f9c;padding-top:1px}
.eng-main{min-width:0}
.eng-name{font-size:14.5px;font-weight:600;color:var(--c-text);line-height:1.5}
.eng-slug{
  font-family:var(--ff-num);font-size:11px;color:var(--c-mute2);
  background:#f5f2f9;border:1px solid #e8e2f0;padding:1px 6px;border-radius:2px;
  margin-left:7px;letter-spacing:.02em;white-space:nowrap;
}
.eng-desc{font-size:12.5px;line-height:1.7;color:var(--c-muted);margin-top:4px}

/* SOP 折叠 */
.eng-sop{margin-top:8px}
.eng-sop-t{
  font-size:11.5px;color:#7a5f9c;cursor:pointer;display:inline-flex;align-items:center;gap:4px;
  user-select:none;font-weight:600;
}
.eng-sop-t::before{content:'▸';font-size:10px;transition:transform .18s;display:inline-block}
.eng-sop.is-open .eng-sop-t::before{transform:rotate(90deg)}
.eng-sop-b{display:none;margin-top:7px;padding-left:2px}
.eng-sop.is-open .eng-sop-b{display:block}
.eng-sop-b li{
  font-size:12px;line-height:1.75;color:#5a6572;list-style:none;
  padding:2px 0 2px 18px;position:relative;counter-increment:none;
}
.eng-sop-b li::before{
  content:attr(data-i);position:absolute;left:0;top:2px;
  font-family:var(--ff-num);font-size:10.5px;font-weight:700;color:#a894c2;
}

.eng-right{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.ek{
  font-size:11.5px;padding:2px 8px;border-radius:2px;white-space:nowrap;font-weight:600;
  border:1px solid var(--c-border);
}
.ek-design{color:#5b3f7a;border-color:#d5c8e4;background:#f2eef7}
.ek-build{color:var(--c-primary);border-color:#b9cde1;background:var(--c-primary-l)}
.ek-guard{color:var(--c-danger);border-color:var(--c-danger-border);background:var(--c-danger-bg)}
.ek-ops{color:#7a5c1f;border-color:#e6d9b0;background:var(--c-warn-bg)}

.st-live{color:#256b3c;border-color:#c3ddca;background:#eaf3ec}
.st-ready{color:var(--c-muted);border-color:var(--c-border);background:#f2f4f6}
.st-todo{color:var(--c-mute2);border-color:var(--c-border-l);background:#f7f9fa}

/* 链路块 */
.eng-chain{
  background:var(--c-white);border:1px solid var(--c-border);border-top:3px solid #7a5f9c;
  border-radius:var(--radius);padding:24px 26px;margin:22px 0 10px;
}
.eng-chain-t{font-size:14px;font-weight:700;color:#5b3f7a;letter-spacing:.03em;margin-bottom:16px}
.chain-step{
  display:grid;grid-template-columns:132px 1fr;gap:16px;padding:12px 0;
  border-bottom:1px dashed #ece6f3;
}
.chain-step:last-child{border-bottom:none}
.chain-step-h{display:flex;gap:9px;align-items:baseline}
.chain-idx{
  font-family:var(--ff-num);font-size:11px;font-weight:700;color:#fff;background:#7a5f9c;
  width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.chain-name{font-size:13.5px;font-weight:700;color:var(--c-text);line-height:1.5}
.chain-body{min-width:0}
.chain-use{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:5px}
.chain-code{
  font-family:var(--ff-num);font-size:11.5px;color:#5b3f7a;
  background:#f5f2f9;border:1px solid #e8e2f0;padding:2px 7px;border-radius:2px;white-space:nowrap;
}
.chain-note{font-size:12.5px;line-height:1.7;color:var(--c-muted)}

@media (max-width:1080px){
  .eng-row{grid-template-columns:46px 1fr 100px;grid-template-areas:"n main right";gap:10px}
  .eng-n{grid-area:n}
  .eng-main{grid-area:main}
  .eng-right{grid-area:right}
}

@media (max-width:768px){
  .eng-intro{padding:14px 16px}
  .eng-intro-b{font-size:12.5px;line-height:1.85}

  .eng-row{
    grid-template-columns:38px 1fr;grid-template-areas:"n main" "right right";
    gap:6px 10px;padding:13px 14px;
  }
  .eng-n{grid-area:n;font-size:13px;padding-top:2px}
  .eng-main{grid-area:main}
  .eng-name{font-size:14px}
  .eng-slug{display:inline-block;margin-left:0;margin-top:4px;font-size:10.5px}
  .eng-desc{font-size:12px;line-height:1.7}
  .eng-right{grid-area:right;flex-direction:row;align-items:center;justify-content:flex-start;gap:6px;margin-top:6px;flex-wrap:wrap}
  .ek{font-size:11px;padding:2px 7px}
  .eng-sop-b li{font-size:11.5px;line-height:1.7}

  .eng-chain{padding:18px 16px}
  .chain-step{grid-template-columns:1fr;gap:7px;padding:11px 0}
  .chain-name{font-size:13px}
  .chain-code{font-size:11px;padding:2px 6px}
  .chain-note{font-size:12px;line-height:1.7}
}

/* ============================================================
   返回键 / 留言区：手机端适配
   ============================================================ */
@media (max-width:768px){
  .backbar{top:52px;padding:10px 0 6px}
  .back-btn{min-height:42px;font-size:13.5px;padding:0 16px 0 13px;gap:8px}
  .back-k{display:none}

  .contact{margin-top:32px;padding-top:30px}
  .ct-in{padding:0 16px}
  .ct-title{font-size:20px;line-height:1.5}
  .ct-sub{font-size:13px}
  .ct-grid{grid-template-columns:1fr;gap:14px}
  .ct-form{padding:18px 16px 16px}
  .ct-row2{grid-template-columns:1fr;gap:12px;margin-bottom:12px}
  .ct-f input,.ct-f select,.ct-f textarea{font-size:16px} /* 避免 iOS 聚焦放大 */
  .ct-submit{width:100%;padding:12px 0}
  .ct-actions{gap:8px}
  .ct-hint{width:100%}
  .ct-wx-body{gap:12px}
  .ct-qr{width:92px;height:92px}
  .ct-card-num{font-size:20px}
  .footer{padding:16px 14px}
  .footer-copy{font-size:11px}
}
