:root{
  --ink:#1f1c18; --ink-soft:#4a443c; --ink-mute:#8a8175;
  --paper:#f6f2ea; --paper-2:#fffdf8; --line:#e2dacb;
  --red:#9c2b1b; --red-soft:#f3e6e2;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:"Source Han Serif SC","Noto Serif SC","Songti SC",STSong,"SimSun",Georgia,serif;
  font-size:17px; line-height:1.95; letter-spacing:.01em;
}
a{color:var(--red);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:860px;margin:0 auto;padding:56px 26px 80px}
.wrap.narrow{max-width:760px}

/* ---------- 头部 ---------- */
header.top{text-align:center;padding-bottom:30px;border-bottom:1px solid var(--line);margin-bottom:40px}
header.top .eyebrow{font-size:13px;letter-spacing:.42em;color:var(--ink-mute);text-indent:.42em;margin-bottom:16px}
header.top h1{margin:0;font-size:33px;font-weight:600;letter-spacing:.05em}
header.top .sub{margin-top:12px;font-size:13.5px;color:var(--ink-mute)}
.seal{display:inline-block;margin-top:20px;border:1.5px solid var(--red);color:var(--red);
  font-size:12.5px;letter-spacing:.34em;text-indent:.34em;padding:6px 12px 6px 14px;border-radius:2px}

/* ---------- 表单 ---------- */
.card{background:var(--paper-2);border:1px solid var(--line);border-radius:4px;padding:30px 30px 26px;margin-bottom:26px}
label.fl{display:block;font-size:13px;letter-spacing:.22em;color:var(--ink-mute);margin:0 0 10px}
textarea,input[type=text]{
  width:100%;font-family:inherit;font-size:16.5px;color:var(--ink);
  background:#fbf8f1;border:1px solid var(--line);border-radius:3px;padding:14px 15px;outline:none;
  line-height:1.85;resize:vertical;
}
textarea:focus,input[type=text]:focus{border-color:var(--red);background:#fff}
textarea{min-height:150px}
.opts{margin-top:6px}
.opt-row{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.opt-row .idx{flex:0 0 22px;color:var(--ink-mute);font-size:14px;text-align:center}
.hint{font-size:13px;color:var(--ink-mute);margin-top:10px;line-height:1.8}
button{
  font-family:inherit;font-size:16.5px;letter-spacing:.12em;cursor:pointer;
  background:var(--red);color:#fff;border:none;border-radius:3px;padding:13px 34px;
  transition:opacity .15s;
}
button:hover{opacity:.88}
button:disabled{opacity:.45;cursor:not-allowed}
button.ghost{background:transparent;color:var(--red);border:1px solid var(--red);padding:10px 22px;font-size:15px}
.row{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:20px}
/* ---------- 兑换链接（买家页面顶部的码条） ---------- */
.codetop{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.codetag{font-size:12px;letter-spacing:.32em;color:var(--red);border:1px solid var(--red);
  border-radius:2px;padding:3px 9px 3px 12px}
.codeval{font-family:Consolas,Menlo,monospace;font-size:16px;letter-spacing:.12em;color:var(--ink)}
.linkbtn{color:var(--red);font-size:15px;text-decoration:none;border-bottom:1px solid var(--red);padding-bottom:1px}
.err{color:var(--red);font-size:14.5px;margin-top:12px;min-height:1.4em}

/* ---------- 报告 ---------- */
.rp-title{text-align:center;margin:0 0 8px;font-size:30px;font-weight:600;letter-spacing:.04em}
.rp-meta{text-align:center;font-size:13px;color:var(--ink-mute);margin-bottom:38px}
.sect{margin:0 0 40px}
.sect-h{font-size:13px;letter-spacing:.3em;color:var(--ink-mute);border-bottom:1px solid var(--line);
  padding-bottom:8px;margin-bottom:20px}

article.case{background:var(--paper-2);border:1px solid var(--line);border-radius:4px;
  padding:32px 32px 28px;margin-bottom:30px}
.case-no{font-size:13px;letter-spacing:.28em;color:var(--red);margin-bottom:6px}
.case h3{margin:0 0 4px;font-size:22px;font-weight:600}
.case .era{font-size:13.5px;color:var(--ink-mute);margin-bottom:14px;letter-spacing:.02em}
.case .era::before{content:'';display:inline-block;width:14px;height:2px;background:var(--red);vertical-align:4px;margin-right:8px;opacity:.7}
.lbl{display:inline-block;font-size:12.5px;letter-spacing:.28em;color:var(--ink-mute);
  border-bottom:1px solid var(--line);padding-bottom:5px;margin:24px 0 12px}
p{margin:0 0 13px}
/* 正文一律常规字重：防止任何继承让整段看着像加粗 */
p,.plain,.dir,blockquote.source,.pair .box p{font-weight:400}
/* 白话：通篇不加粗，颜色比正文更淡 */
.plain{color:var(--ink);font-weight:400;font-size:16.5px;line-height:1.95}
/* 重点：加粗 + 淡黄底纹。
   只用字重区分时，宋体（SimSun）只有单一字重、600 与 400 差别很小，
   看起来会「整页都像加粗」；加一条底色后重点在哪一目了然。 */
strong{font-weight:700;color:#17130f;
  background:linear-gradient(transparent 58%, #f6e2ad 58%);padding:0 1px;border-radius:1px}
.cmp{border:1px solid var(--line);border-radius:3px;padding:15px 18px 13px;background:#fdfbf6;margin:16px 0 4px}
.cmp p{margin:0 0 11px;font-size:15.5px;line-height:1.9;color:#5c554b}
.cmp p:last-child{margin-bottom:0}
.cmp .k{display:inline-block;font-size:12.5px;letter-spacing:.12em;color:var(--ink-mute);margin-right:6px}
.cmp p strong,.dir strong{font-weight:700;color:#17130f;background:linear-gradient(transparent 58%, #f6e2ad 58%);padding:0 1px}.dir{color:#5c554b;font-weight:400}
footer.disc{margin-top:60px;padding-top:26px;border-top:1px solid var(--line);font-size:13px;
  line-height:1.95;color:var(--ink-mute)}
footer.disc .t{font-size:12.5px;letter-spacing:.3em;color:var(--ink-soft);margin-bottom:10px}
.build{text-align:center;font-size:12px;color:#b8b0a3;letter-spacing:.08em;margin-top:28px}

/* ---------- 加载 ---------- */
.loading{text-align:center;padding:70px 0;color:var(--ink-mute)}
.loading .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--red);
  margin:0 3px;animation:b 1.2s infinite}
.loading .dot:nth-child(2){animation-delay:.2s}
.loading .dot:nth-child(3){animation-delay:.4s}
@keyframes b{0%,60%,100%{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}
.loading p{margin-top:20px;font-size:14.5px}

@media (max-width:640px){
  body{font-size:16px}
  .wrap{padding:34px 16px 60px}
  header.top h1{font-size:25px}
  .card,article.case{padding:22px 18px}
  .pair{grid-template-columns:1fr}
  .rp-title{font-size:23px}
  /* 手机上 window.print() 基本不可用，这按钮藏掉，靠「保存长图」 */
  #print{display:none}
  .row button{flex:1 1 46%}
}
@media print{
  body{background:#fff}
  article.case,.card{box-shadow:none;break-inside:avoid;page-break-inside:avoid}
  .noprint{display:none !important}
}

/* ---------- 长图浮层：手机端保存 / 转发报告 ---------- */
.overlay{display:none;position:fixed;inset:0;background:rgba(30,26,22,.93);z-index:99;
  flex-direction:column;align-items:center;padding:14px 10px 10px}
.ovhead{width:100%;max-width:760px;display:flex;align-items:center;justify-content:space-between;
  gap:12px;color:#f3ede2;font-size:15px;padding:2px 4px 10px}
button.small{padding:7px 16px;font-size:14px}
.ovbody{flex:1;width:100%;max-width:760px;overflow:auto;-webkit-overflow-scrolling:touch;
  background:#fff;border-radius:3px}
.ovbody img{display:block;width:100%;height:auto}
.ovfoot{color:#c9c0b2;max-width:760px;text-align:center;margin-top:8px}
.linkbox{margin:18px auto 0;max-width:560px;text-align:center}
.linkbox input{width:100%;margin-top:8px;padding:11px 12px;font-size:14px;color:var(--ink);
  background:var(--paper-2);border:1px solid var(--line);border-radius:3px;text-align:center}
