:root{
  --ink:#231f1b; --muted:#6f675e; --line:#ded6c8;
  --paper:#f6f1e8; --card:#fffdf8;
  --zhu:#9f2f24; --zhu-soft:#f9e7df; --green:#426c2a; --green-soft:#e7f0dc;
  --gold:#b9812e; --gold-soft:#f5ead3; --blue:#245b73; --blue-soft:#e0eef1;
  --shadow:0 18px 48px rgba(69,49,26,.13);
  --shadow-soft:0 10px 26px rgba(69,49,26,.08);
  --radius:18px;
  --radius-sm:12px;
  --ziwu-page:oklch(96% .018 88);
  --ziwu-surface:oklch(99% .008 88);
  --ziwu-ink:oklch(26% .032 51);
  --ziwu-muted:oklch(50% .026 64);
  --ziwu-line:oklch(82% .038 76);
  --ziwu-cinnabar:oklch(51% .17 31);
  --ziwu-cinnabar-deep:oklch(38% .12 32);
  --ziwu-jade:oklch(48% .08 151);
  --ziwu-gold:oklch(69% .13 73);
  --ziwu-night:oklch(28% .045 236);
  --ziwu-wheel-ink:oklch(27% .036 255);
  --ziwu-wheel-line:oklch(97% .008 88);
  --ziwu-focus:0 0 0 4px color-mix(in oklab,var(--ziwu-cinnabar),transparent 78%);
}
*{box-sizing:border-box}
body{margin:0;font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",-apple-system,sans-serif;
  background:var(--paper);color:var(--ink);line-height:1.6}
.hd{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px;padding:20px 22px;background:#fff;border-bottom:2px solid var(--zhu)}
.seal{width:46px;height:46px;border-radius:8px;background:var(--zhu);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:600;flex:none}
.hd h1{margin:0;font-size:18px;font-weight:600}
.sub{margin:2px 0 0;color:var(--muted);font-size:13px}
.wrap{max-width:780px;margin:22px auto;padding:0 16px;display:flex;flex-direction:column;gap:18px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 18px 20px}
.hint{margin:0 0 14px;font-size:13.5px;color:var(--muted);background:var(--green-soft);
  border-left:4px solid var(--green);padding:10px 12px;border-radius:8px}
.grp{font-size:13px;color:var(--zhu);font-weight:600;margin:16px 0 8px;letter-spacing:.5px}
.q{margin-bottom:12px}
.ql{font-size:14px;font-weight:500;margin-bottom:6px}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opt{display:inline-flex;align-items:center;gap:6px;background:#fbfaf6;border:1px solid var(--line);
  border-radius:9px;padding:7px 11px;font-size:13px;cursor:pointer;transition:.15s}
.opt:hover{border-color:var(--zhu)}
.opt input{accent-color:var(--zhu);margin:0}
.opt:has(input:checked){background:var(--zhu-soft);border-color:var(--zhu);font-weight:500}
#btn{margin-top:16px;width:100%;background:var(--zhu);color:#fff;border:none;border-radius:10px;
  padding:13px;font-size:15px;font-weight:600;cursor:pointer;transition:.15s}
#btn:hover{background:#8c2626}
.result .card{animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.tag{display:inline-block;font-size:12px;font-weight:600;padding:4px 10px;border-radius:20px;margin-bottom:10px}
.tag.ok{background:var(--green-soft);color:var(--green)}
.tag.warn{background:#faeedc;color:#854f0b}
.tag.risk{background:var(--zhu-soft);color:var(--zhu);margin-left:8px}
.fname{margin:6px 0 2px;font-size:22px;font-weight:600;color:var(--zhu)}
.chan{color:var(--muted);font-size:13px;margin-bottom:12px}
.sec{margin:12px 0;padding-top:12px;border-top:1px dashed var(--line)}
.sec b{font-size:13.5px;color:var(--ink)}
.steps{margin:8px 0 0;padding-left:18px}
.steps li{font-size:13.5px;margin:4px 0}
.comp{font-size:14px;background:#fbfaf6;border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-top:6px}
.contra{font-size:13px;color:var(--zhu);background:var(--zhu-soft);border-radius:8px;padding:8px 10px;margin-top:6px}
.cite{list-style:none;margin:8px 0 0;padding:0}
.cite li{margin:8px 0;background:#fbfaf6;border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.cref{display:block;font-size:11.5px;color:var(--muted);margin-bottom:3px}
.ctext{font-size:13px}
/* 检索结果 / 原文弹窗内渲染后的 markdown */
.ctext,.md-body{font-size:14px;line-height:1.75;color:#2a2118}
.ctext>:first-child,.md-body>:first-child{margin-top:0}
.ctext>:last-child,.md-body>:last-child{margin-bottom:0}
.ctext h1,.md-body h1{font-family:"Noto Serif SC",serif;font-size:21px;font-weight:700;color:#7d201b;margin:16px 0 8px;border-bottom:1px solid rgba(159,47,36,.22);padding-bottom:6px}
.ctext h2,.md-body h2{font-family:"Noto Serif SC",serif;font-size:18px;font-weight:700;color:#7d201b;margin:12px 0 6px}
.ctext h3,.md-body h3{font-family:"Noto Serif SC",serif;font-size:16px;font-weight:700;color:#9f2f24;margin:10px 0 5px}
.ctext h4,.md-body h4{font-family:"Noto Serif SC",serif;font-size:15px;font-weight:600;color:#b9812e;margin:8px 0 4px}
.ctext p,.md-body p{margin:8px 0}
.ctext ul,.md-body ul,.ctext ol,.md-body ol{margin:8px 0;padding-left:22px}
.ctext li,.md-body li{margin:4px 0}
.ctext blockquote,.md-body blockquote{margin:10px 0;padding:8px 12px;background:var(--zhu-soft);border-left:4px solid var(--zhu);border-radius:8px;color:#7d201b;font-size:13.5px}
.ctext hr,.md-body hr{border:0;border-top:1px solid rgba(126,101,72,.3);margin:12px 0}
.ctext code,.md-body code{background:#f1efe8;padding:1px 5px;border-radius:4px;font-size:12.5px;font-family:"JetBrains Mono",ui-monospace,monospace}
.ctext strong,.md-body strong{color:#7d201b;font-weight:700}
.md-loading{font-size:13px;color:var(--muted);padding:8px 0;text-align:center}
.warnline{margin-top:12px;background:var(--zhu-soft);color:var(--zhu);border-radius:8px;padding:9px 11px;font-size:13px}
.card.warn{border:1px solid #e8c98a}
.card.warn .lead{font-size:14px;margin:8px 0}
.disc{margin-top:16px;font-size:12px;color:var(--muted);background:#f1efe8;border-radius:8px;padding:10px 12px;line-height:1.7}
.disc b{color:var(--zhu)}
.raghint{margin-top:8px;font-size:11.5px;color:var(--muted);font-style:italic}
.ft{text-align:center;color:var(--muted);font-size:12px;padding:18px}
.ft code{background:#eee;padding:1px 5px;border-radius:4px}

/* ===== 2026 interface refresh ===== */
.skip-link{position:absolute;left:16px;top:-48px;z-index:10;background:var(--ink);color:#fff;padding:8px 12px;border-radius:8px;text-decoration:none;transition:top .15s}
.skip-link:focus{top:12px}
body{background:radial-gradient(circle at 20% -10%,rgba(185,129,46,.18),transparent 34%),linear-gradient(180deg,#fbf6ec 0%,var(--paper) 46%,#efe6d7 100%);min-height:100vh}
.hd{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:minmax(0,1fr) auto;
  align-items:center;gap:14px 24px;padding:14px clamp(16px,4vw,42px);
  background:rgba(255,253,248,.94);border-bottom:1px solid rgba(159,47,36,.18);
  box-shadow:0 8px 28px -6px rgba(62,45,25,.06);backdrop-filter:blur(16px)}
.brand{display:flex;align-items:center;gap:16px;min-width:0}
.seal{width:48px;height:48px;border-radius:12px;
  background:linear-gradient(135deg,#b33a2e,var(--zhu));
  box-shadow:0 8px 18px rgba(159,47,36,.2);font-size:22px;font-weight:700}
.eyebrow{margin:0 0 2px;color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.hd h1{margin:0;font-size:clamp(17px,2vw,24px);line-height:1.25;letter-spacing:0;font-weight:600}
.sub{margin:2px 0 0;font-size:13px;color:var(--muted)}
.hero-meta{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.hero-meta span{border:1px solid rgba(159,47,36,.12);border-radius:999px;background:rgba(255,253,248,.7);
  color:var(--zhu);padding:4px 10px;font-size:11px;font-weight:600;letter-spacing:.5px}
.nav{grid-column:1/-1;display:flex;flex-wrap:nowrap;gap:6px;margin:4px 0 0;overflow:visible;padding:0}
.ntab{flex:0 0 auto;border-radius:999px;background:rgba(255,253,248,.6);color:#5d5449;
  border:1px solid rgba(159,47,36,.1);padding:7px 14px;font-size:13px;font-weight:500;
  transition:background .15s,border-color .15s,color .15s,box-shadow .15s}
.ntab:hover,.ntab:focus-visible{border-color:var(--zhu);color:var(--zhu);outline:none;
  box-shadow:0 0 0 3px rgba(159,47,36,.1);background:rgba(255,253,248,.9)}
.ntab.on{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:0 4px 12px rgba(62,45,25,.2)}

/* ---- 一级 + 二级（下拉）菜单 ---- */
.nav-drop{position:relative;display:inline-block}
.nav-drop-toggle{cursor:pointer;list-style:none;display:inline-flex;align-items:center}
.nav-drop-toggle::-webkit-details-marker{display:none}
.nav-drop .nav-drop-menu{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%) translateY(-6px);
  min-width:240px;padding:8px;background:#fdfaf3;border:1px solid var(--line);border-radius:14px;
  box-shadow:0 12px 28px -10px rgba(60,40,20,.18);z-index:50;opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .18s ease,transform .18s ease,visibility .18s ease;display:flex;flex-direction:column;gap:2px}
details.nav-drop[open] .nav-drop-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);pointer-events:auto}
.ndmi{display:flex;align-items:center;gap:10px;padding:9px 11px;border:none;background:transparent;
  border-radius:10px;text-align:left;cursor:pointer;font:inherit;color:inherit;transition:background .15s ease}
.ndmi:hover{background:rgba(122,61,46,.08)}
.ndmi:focus-visible{outline:2px solid var(--zhu);outline-offset:-2px}
.ndmi-ico{width:34px;height:34px;display:flex;align-items:center;justify-content:center;
  border:1px solid;color-mix(in srgb,var(--ndmi-c,var(--zhu)) 28%,transparent);
  background:color-mix(in srgb,var(--ndmi-c,var(--zhu)) 14%,#fff);
  color:var(--ndmi-c,var(--zhu));border-radius:9px;font-family:"Noto Serif SC",serif;font-size:16px;font-weight:700}
.ndmi-ico[data-c]{--ndmi-c:attr(data-c)}
.ndmi-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.ndmi-txt strong{font-size:13.5px;color:var(--ink);font-weight:600;letter-spacing:1px}
.ndmi-txt small{font-size:11.5px;color:var(--muted);letter-spacing:.5px}
.ndmi.is-on{background:rgba(122,61,46,.12)}
.ndmi.is-on .ndmi-txt strong{color:var(--zhu)}
/* ziwu/dark theme override */
body.ziwu-dark .nav-drop .nav-drop-menu{background:var(--ziwu-surface);border-color:var(--ziwu-line);box-shadow:0 12px 28px -10px rgba(0,0,0,.5)}
body.ziwu-dark .ndmi:hover{background:color-mix(in oklab,var(--ziwu-gold),transparent 86%)}
body.ziwu-dark .ndmi-txt strong{color:var(--ziwu-ink)}
body.ziwu-dark .ndmi.is-on{background:color-mix(in oklab,var(--ziwu-cinnabar),transparent 87%)}
body.ziwu-dark .ndmi.is-on .ndmi-txt strong{color:var(--ziwu-cinnabar-deep)}

.wrap{max-width:1180px;margin:26px auto 34px;padding:0 clamp(14px,3vw,28px)}
.diagnose-grid{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(320px,.82fr);gap:18px;align-items:start}
.tabpanel:not(.diagnose-grid) .panel{max-width:1040px;margin:0 auto}
.panel{border-color:rgba(126,101,72,.22);border-radius:var(--radius);background:rgba(255,253,248,.94);box-shadow:var(--shadow);padding:20px}
.intake-panel{min-width:0}
.hint{border-left:0;border:1px solid rgba(66,108,42,.18);background:linear-gradient(135deg,var(--green-soft),#fffaf3);border-radius:var(--radius-sm);color:#544d44}
.stage{margin:28px 0 12px;border-bottom:0;padding:0;color:var(--ink);font-size:16px}
.stage:first-child{margin-top:8px}
.sn{border-radius:9px;background:var(--zhu);box-shadow:0 8px 18px rgba(159,47,36,.2)}
.stage.danger{color:#c2410c}
.stagehint{border-left:0;border:1px solid #eadfce;background:#fbf7ef;border-radius:var(--radius-sm);line-height:1.7}
.grp{display:inline-flex;margin:18px 0 9px;color:var(--blue);background:var(--blue-soft);border-radius:999px;padding:3px 10px;font-size:12px}
.q{margin-bottom:14px}
.ql{font-size:14.5px;color:#2e2923}
.opts,.tcards,.pcards,.flags,.btns{gap:10px}
.opt,.flag,.tcard,.pcard,.acard,.chcard,.ritem,.faq{background:#fffaf4;border-color:#e2d8c9;box-shadow:0 1px 0 rgba(255,255,255,.8) inset}
.opt,.flag{min-height:40px;border-radius:11px}
.opt:hover,.flag:hover,.tcard:hover,.pcard:hover,.sbtn:hover{border-color:var(--zhu);box-shadow:0 8px 18px rgba(91,65,35,.08)}
.opt:has(input:checked),.flag:has(input:checked),.tcard.on,.pcard.on{background:#fff1e9;border-color:var(--zhu);box-shadow:0 10px 22px rgba(159,47,36,.12)}
#btn{position:sticky;bottom:16px;z-index:3;margin-top:22px;border-radius:14px;background:linear-gradient(135deg,var(--zhu),#7d201b);box-shadow:0 16px 28px rgba(159,47,36,.24);min-height:50px}
#btn:hover,#btn:focus-visible{background:linear-gradient(135deg,#b1382c,#7d201b);outline:none;box-shadow:0 0 0 4px rgba(159,47,36,.16),0 18px 34px rgba(159,47,36,.25)}
.result{position:sticky;top:142px;max-height:calc(100vh - 170px);overflow:auto}
.result:empty::before{content:"完成左侧问诊后，辨证结果、危症等级、组方依据和原文召回会显示在这里。";display:block;color:var(--muted);font-size:14px;line-height:1.8;background:#fbf7ef;border:1px dashed var(--line);border-radius:var(--radius-sm);padding:18px}
.result .card{background:#fffaf4;border:1px solid #eadfce;border-radius:var(--radius-sm);padding:16px}
.tag{border-radius:999px}
.tag.ok{background:var(--green-soft)}
.tag.warn{background:var(--gold-soft)}
.fname{font-size:clamp(22px,3vw,30px);line-height:1.2}
.sec{border-top:1px solid #eadfce}
.comp,.contra,.disc,.cite li,.lockmsg,.pmerge,.tpreview,.phow,.filterbar{border-radius:var(--radius-sm)}
.tpreview{top:158px}
.tcard{width:96px}
.pcard{flex:1 1 150px;min-width:148px}
.pcard,.tcard,.sbtn,.ntab,.opt,.flag{transition:border-color .15s,background .15s,color .15s,box-shadow .15s,transform .15s}
.ph{border-bottom-color:#e2d2bb;color:var(--ink);font-size:18px}
.agrid{grid-template-columns:repeat(auto-fill,minmax(142px,1fr));gap:12px}
.chgrid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.chbtns{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.sbtn{border-radius:11px;background:#fffaf4}
.sbtn.go,.sbtn.active{background:var(--ink);border-color:var(--ink);color:#fff}
.sbar input{min-height:42px;border-radius:11px}
.sbar input:focus{outline:none;border-color:var(--zhu);box-shadow:0 0 0 3px rgba(159,47,36,.12)}
.ft{padding:8px 16px 28px}
@media (max-width:980px){.hd{position:relative;grid-template-columns:1fr}.hero-meta{justify-content:flex-start}.diagnose-grid{grid-template-columns:1fr}.result{position:static;max-height:none}.tpreview{top:12px}}
@media (max-width:760px){.hd{padding:15px 14px}.brand{align-items:flex-start}.seal{width:42px;height:42px;font-size:22px}.hero-meta{display:none}.wrap{margin-top:16px}.panel{padding:15px;border-radius:14px}.nav{margin-left:-2px}.ntab{padding:7px 12px;font-size:13px}.tcard{width:calc(50% - 5px)}.pcard{flex-basis:calc(50% - 5px);min-width:0}.sbar{flex-direction:column}.sbar .sbtn{justify-content:center}.chgrid{grid-template-columns:1fr}.chcard{padding:13px}.agrid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}#btn{bottom:10px}}

/* ============ 阶段章节标题 ============ */
.stage{display:flex;align-items:center;gap:9px;margin:26px 0 10px;padding-bottom:8px;
  border-bottom:2px solid var(--zhu);font-size:15px;font-weight:600;color:var(--zhu)}
.stage:first-child{margin-top:4px}
.sn{width:24px;height:24px;border-radius:6px;background:var(--zhu);color:#fff;flex:none;
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}
.stage.danger{border-bottom-color:#c2410c;color:#c2410c}
.stage.danger .sn{background:#c2410c}
.stage.danger.hot{animation:pulsehot 1.1s ease-in-out infinite}
@keyframes pulsehot{0%,100%{opacity:1}50%{opacity:.55}}
.stagehint{margin:0 0 14px;font-size:13px;color:var(--muted);background:#f9f7f1;
  border-left:3px solid var(--line);padding:9px 12px;border-radius:0 8px 8px 0;line-height:1.75}
.qh{font-size:12px;color:var(--muted);margin:-2px 0 7px}

/* ============ 舌诊 ============ */
.tlayout{display:flex;gap:16px;align-items:flex-start}
.tcols{flex:1;min-width:0}
.tgrp{margin-bottom:16px}
.tcards{display:flex;flex-wrap:wrap;gap:8px;margin-top:7px}
.tcard{width:88px;background:#fbfaf6;border:1.5px solid var(--line);border-radius:10px;
  padding:7px 5px 8px;text-align:center;cursor:pointer;transition:.15s}
.tcard:hover{border-color:var(--zhu);transform:translateY(-2px)}
.tcard.on{border-color:var(--zhu);background:var(--zhu-soft);box-shadow:0 2px 8px rgba(163,45,45,.14)}
.tsvg{display:block;margin:0 auto}
.tt{font-size:12.5px;font-weight:600;margin-top:4px}
.td{font-size:10.5px;color:var(--muted);line-height:1.4;margin-top:2px}
.tpreview{width:206px;flex:none;background:#fbfaf6;border:1px solid var(--line);
  border-radius:12px;padding:14px 12px;position:sticky;top:12px}
.tpv{text-align:center}
.tpname{text-align:center;font-size:13px;font-weight:600;color:var(--zhu);margin-top:8px}
.tpmean{margin:9px 0 0;padding-left:16px}
.tpmean li{font-size:11.5px;color:var(--muted);margin:5px 0;line-height:1.55}
.tpmean b{color:var(--ink)}
.tpempty{font-size:11.5px;color:var(--muted);text-align:center;margin-top:8px;line-height:1.6}

/* ============ 脉诊 ============ */
.phow{display:flex;gap:14px;align-items:center;background:#fbfaf6;border:1px solid var(--line);
  border-radius:12px;padding:12px 14px;margin-bottom:16px}
.phowimg{flex:none;width:300px}
.pguide{width:100%;height:auto}
.pkey{font-size:13px;font-weight:700;fill:#b8483c}
.plab{font-size:9.5px;fill:#5F5E5A}
.plab2{font-size:9px;fill:#9a948c}
.phowlist{margin:0;padding-left:18px}
.phowlist li{font-size:12.5px;color:var(--muted);margin:5px 0;line-height:1.6}
.pcards{display:flex;flex-wrap:wrap;gap:8px;margin-top:7px}
.pcard{width:calc(25% - 6px);min-width:132px;background:#fbfaf6;border:1.5px solid var(--line);
  border-radius:10px;padding:8px 9px 9px;cursor:pointer;transition:.15s}
.pcard:hover{border-color:var(--zhu);transform:translateY(-2px)}
.pcard.on{border-color:var(--zhu);background:var(--zhu-soft);box-shadow:0 2px 8px rgba(163,45,45,.14)}
.pw{height:34px;overflow:hidden}
.pwsvg{width:100%;height:34px}
.pt{font-size:13px;font-weight:600;margin-top:3px}
.pd{font-size:10.5px;color:var(--muted);line-height:1.45;margin-top:2px}
.rateline{display:flex;align-items:center;gap:9px;margin-top:6px;flex-wrap:wrap}
.rateline input{width:96px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;
  font-size:14px;background:#fbfaf6;color:var(--ink)}
.rateline input:focus{outline:none;border-color:var(--zhu)}
.ratex{font-size:13px;color:var(--muted)}
.ratebox{font-size:13px;font-weight:600;padding:6px 12px;border-radius:8px;
  background:#f1efe8;color:var(--muted)}
.ratebox.lv0{background:var(--green-soft);color:var(--green)}
.ratebox.lv1{background:#faeedc;color:#854f0b}
.ratebox.lv2{background:var(--zhu-soft);color:var(--zhu)}
.pmerge{background:#fff;border:1.5px dashed var(--zhu);border-radius:12px;padding:12px 14px;margin-top:12px}
.pmtitle{font-size:11.5px;color:var(--muted);letter-spacing:1px}
.pmname{font-size:20px;font-weight:600;color:var(--zhu);margin-top:2px}
.pmname.off{color:var(--muted);font-size:16px}
.pmmean{margin:8px 0 0;padding-left:17px}
.pmmean li{font-size:12.5px;color:var(--muted);margin:4px 0;line-height:1.6}
.pmmean b{color:var(--ink)}
.pmnote{margin-top:8px;font-size:11.5px;color:#854f0b;background:#faeedc;padding:7px 10px;border-radius:7px}

/* ============ 危症快筛 ============ */
.flags{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}
.flag{display:flex;align-items:flex-start;gap:9px;background:#fffaf7;border:1.5px solid #f0d5c4;
  border-radius:9px;padding:9px 12px;font-size:13px;cursor:pointer;transition:.15s;line-height:1.5}
.flag:hover{border-color:#c2410c}
.flag input{accent-color:#c2410c;margin:3px 0 0;flex:none}
.flag:has(input:checked){background:#fdecea;border-color:#c2410c;font-weight:500;color:#9a2c11}

/* ============ 危症预警横幅 ============ */
.alert{border-radius:12px;padding:14px 16px;margin-bottom:16px;animation:fade .25s ease}
.alhead{display:flex;align-items:center;gap:9px}
.alicon{font-size:20px;line-height:1}
.altitle{font-size:16px;font-weight:700}
.alaction{margin-top:7px;font-size:13.5px;line-height:1.7}
.albreason{margin:10px 0 0;padding:0;list-style:none}
.albreason li{font-size:12.5px;margin:5px 0;display:flex;align-items:flex-start;gap:7px;line-height:1.6}
.dot{width:7px;height:7px;border-radius:50%;flex:none;margin-top:6px;display:inline-block}
.dot.red{background:#b91c1c}.dot.orange{background:#c2410c}
.dot.yellow{background:#a16207}.dot.green{background:var(--green)}
.alnote{margin-top:9px;font-size:11.5px;font-style:italic;opacity:.82;line-height:1.65}
.alert.red{background:#fdecea;border:2px solid #b91c1c;color:#7f1d1d}
.alert.red .altitle{color:#b91c1c}
.alert.orange{background:#fff4ec;border:2px solid #c2410c;color:#7c2d12}
.alert.orange .altitle{color:#c2410c}
.alert.yellow{background:#fdf6e3;border:2px solid #ca8a04;color:#713f12}
.alert.yellow .altitle{color:#a16207}
.alert.green{background:var(--green-soft);border:2px solid var(--green);color:#2f5610}
.alert.green .altitle{color:var(--green)}

/* ============ 结果内舌脉合参 ============ */
.card.locked{opacity:.94;border:1px solid #e8c0b4;position:relative}
.lockmsg{background:#fdecea;color:#9a2c11;border-radius:8px;padding:9px 11px;font-size:12.5px;margin:8px 0 4px}
.trow{display:flex;gap:12px;align-items:flex-start;margin-top:8px}
.tmini{flex:none}
.tinfo{flex:1;min-width:0}
.tname{font-size:13.5px;font-weight:600;color:var(--zhu)}
.tmean{margin:6px 0 0;padding-left:16px}
.tmean li{font-size:12.5px;color:var(--muted);margin:4px 0;line-height:1.6}
.tmean b{color:var(--ink)}
.tadvice{margin:10px 0 0;padding-left:17px}
.tadvice li{font-size:12.5px;margin:6px 0;line-height:1.7;color:#7c2d12;
  background:#fff8f2;border-radius:7px;padding:6px 9px;list-style:none;position:relative}
.tadvice li::before{content:"◆";position:absolute;left:-13px;color:#c2410c;font-size:9px;top:9px}
.cref2{display:block;font-size:10.5px;color:#9a948c;margin-top:2px}
.prow{margin-top:7px}
.pbadge{display:inline-block;background:var(--zhu);color:#fff;font-size:14px;font-weight:600;
  padding:5px 14px;border-radius:20px}

/* ============ 窄屏 ============ */
@media (max-width:760px){
  .tlayout{flex-direction:column}
  .tpreview{width:100%;position:static}
  .phow{flex-direction:column;align-items:stretch}
  .phowimg{width:100%}
  .pcard{width:calc(50% - 4px);min-width:0}
  .tcard{width:calc(33.333% - 6px)}
}

/* ===== 顶部导航已由 line 103 原始定义覆盖，此处仅保留 tabpanel 控制 ===== */
.tabpanel[hidden]{display:none}


.ph{font-size:16px;font-weight:600;color:var(--zhu);margin:4px 0 10px;border-bottom:2px solid var(--zhu);padding-bottom:7px}

/* 舌脉图鉴 */
.agrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:10px;margin:6px 0 20px}
.acard{background:#fbfaf6;border:1px solid var(--line);border-radius:10px;padding:10px 8px;text-align:center}
.asvg{display:flex;justify-content:center;align-items:center;min-height:122px}
.at{font-size:12.5px;font-weight:500;margin-top:6px}
.am{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.4}

/* 六经卡片 */
.chgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}
.chcard{background:#fbfaf6;border:1px solid var(--line);border-radius:12px;padding:14px 14px 10px}
.chhead{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}
.chn{font-size:16px;font-weight:600;color:var(--zhu)}
.chgang{font-size:12px;color:var(--muted)}
.chdesc{font-size:12.5px;color:var(--ink);margin:4px 0 10px;line-height:1.55}
.chrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0}
.chl{font-size:12px;color:var(--muted);font-weight:600}
.chip{font-size:11.5px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:3px 9px}
.chip.fang{background:var(--zhu-soft);border-color:#e7b8b8;color:var(--zhu);font-weight:500}

/* 检索按钮与结果 */
.sbtn{appearance:none;border:1px solid var(--zhu);background:#fff;color:var(--zhu);
  font-size:13px;font-weight:500;border-radius:9px;padding:8px 13px;cursor:pointer;transition:.15s;
  display:inline-flex;flex-direction:column;align-items:center;line-height:1.2}
.sbtn small{font-size:10.5px;color:var(--muted);font-weight:400;margin-top:2px}
.sbtn:hover{background:var(--zhu-soft)}
.sbtn.g{flex-direction:row}
.sbtn.go{background:var(--zhu);color:#fff;flex-direction:row}
.btns{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 14px}
.sbar{display:flex;gap:8px;margin:8px 0 12px}
.sbar input{flex:1;min-width:0;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:13.5px;background:#fff}
.sres{margin-top:6px;display:flex;flex-direction:column;gap:10px}
.ritem{background:#fbfaf6;border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}
.ritem:hover{border-color:var(--zhu);box-shadow:0 8px 20px rgba(91,65,35,.1);transform:translateY(-2px)}
.rhead{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;margin-bottom:5px}
.ropen{margin-top:8px;font-size:12px;font-weight:600;color:var(--zhu);text-align:right}
.ropen::before{content:"▸ "}
.ralso{font-size:10.5px;color:var(--muted);background:#eee;padding:1px 6px;border-radius:10px}
.loading{font-size:13px;color:var(--muted);padding:10px 0}
.loading.err{color:#b00020;background:#fff4f4;border-left:3px solid #b00020;padding:8px 10px;border-radius:4px}
.originwarn{display:block;font-size:13px;line-height:1.55;color:#fff;background:#b00020;padding:10px 18px;border-bottom:2px solid #6b0000}
.originwarn a{color:#fff;text-decoration:underline}
.originwarn code{background:rgba(255,255,255,.18);padding:1px 5px;border-radius:3px;color:#fff}

/* ===== 修正：把这段全局裸写的"暗主题"全部加 body.ziwu-dark 限定 =====
   之前误放在全局，导致整页被 ziwu 深色污染（背景全黑、ntab 圆角失效）。
   现在默认关闭；如需启用夜间模式，给 <body> 加 class="ziwu-dark" 即可。 */
body.ziwu-dark{background:var(--ziwu-page);color:var(--ziwu-ink)}
body.ziwu-dark .hd{background:color-mix(in oklab,var(--ziwu-surface),transparent 4%);border-bottom:1px solid var(--ziwu-line);box-shadow:0 10px 30px color-mix(in oklab,var(--ziwu-night),transparent 91%)}
body.ziwu-dark .seal{background:var(--ziwu-cinnabar);box-shadow:0 8px 20px color-mix(in oklab,var(--ziwu-cinnabar),transparent 76%)}
body.ziwu-dark .eyebrow{color:var(--ziwu-jade)}
body.ziwu-dark .hd h1{color:var(--ziwu-ink)}
body.ziwu-dark .sub{color:var(--ziwu-muted)}
body.ziwu-dark .hero-meta span{background:color-mix(in oklab,var(--ziwu-surface),var(--ziwu-gold) 8%);border-color:var(--ziwu-line);color:var(--ziwu-jade)}
body.ziwu-dark .nav{gap:6px}
body.ziwu-dark .ntab{background:transparent;border:1px solid transparent;color:var(--ziwu-muted);border-radius:var(--radius-sm);font-weight:600}
body.ziwu-dark .ntab:hover,body.ziwu-dark .ntab:focus-visible{background:color-mix(in oklab,var(--ziwu-gold),transparent 86%);border-color:color-mix(in oklab,var(--ziwu-gold),transparent 60%);color:var(--ziwu-ink);box-shadow:var(--ziwu-focus)}
body.ziwu-dark .ntab.on{background:var(--ziwu-night);border-color:var(--ziwu-night);box-shadow:none}
body.ziwu-dark .wrap{max-width:1260px}
body.ziwu-dark .panel{background:var(--ziwu-surface);border-color:var(--ziwu-line);box-shadow:0 16px 38px color-mix(in oklab,var(--ziwu-night),transparent 92%)}
body.ziwu-dark .hint{background:color-mix(in oklab,var(--ziwu-jade),transparent 91%);border-color:color-mix(in oklab,var(--ziwu-jade),transparent 69%);color:var(--ziwu-muted)}
body.ziwu-dark .grp{background:color-mix(in oklab,var(--ziwu-gold),transparent 82%);color:var(--ziwu-cinnabar-deep)}
body.ziwu-dark .opt,body.ziwu-dark .flag,body.ziwu-dark .tcard,body.ziwu-dark .pcard,body.ziwu-dark .acard,body.ziwu-dark .chcard,body.ziwu-dark .ritem,body.ziwu-dark .faq{background:var(--ziwu-surface);border-color:var(--ziwu-line)}
body.ziwu-dark .opt:hover,body.ziwu-dark .flag:hover,body.ziwu-dark .tcard:hover,body.ziwu-dark .pcard:hover,body.ziwu-dark .sbtn:hover{border-color:var(--ziwu-cinnabar);box-shadow:0 8px 18px color-mix(in oklab,var(--ziwu-night),transparent 92%)}
body.ziwu-dark .opt:has(input:checked),body.ziwu-dark .flag:has(input:checked),body.ziwu-dark .tcard.on,body.ziwu-dark .pcard.on{background:color-mix(in oklab,var(--ziwu-cinnabar),transparent 91%);border-color:var(--ziwu-cinnabar);box-shadow:none}
body.ziwu-dark #btn{background:var(--ziwu-cinnabar);box-shadow:0 14px 28px color-mix(in oklab,var(--ziwu-cinnabar),transparent 73%)}
body.ziwu-dark #btn:hover,body.ziwu-dark #btn:focus-visible{background:var(--ziwu-cinnabar-deep);box-shadow:var(--ziwu-focus),0 16px 30px color-mix(in oklab,var(--ziwu-cinnabar),transparent 77%)}
body.ziwu-dark .stage{border-bottom-color:var(--ziwu-gold);color:var(--ziwu-cinnabar-deep)}
body.ziwu-dark .sn,body.ziwu-dark .ntab.on{background:var(--ziwu-night)}
body.ziwu-dark .ph,body.ziwu-dark .chn,body.ziwu-dark .tpname,body.ziwu-dark .tname,body.ziwu-dark .pmname,body.ziwu-dark .fname{color:var(--ziwu-cinnabar-deep)}
body.ziwu-dark .ph{border-bottom-color:var(--ziwu-gold)}
body.ziwu-dark .sbtn.go,body.ziwu-dark .sbtn.active{background:var(--ziwu-night);border-color:var(--ziwu-night)}
body.ziwu-dark .sbtn{border-color:var(--ziwu-cinnabar);color:var(--ziwu-cinnabar-deep)}
body.ziwu-dark .sbar input:focus,body.ziwu-dark .rateline input:focus{border-color:var(--ziwu-cinnabar);box-shadow:var(--ziwu-focus)}

.home-tab{display:grid;gap:24px;animation:fade .4s ease}

/* ===== 网站首页 · Hero 总览（大气的引言 + 4 张数字卡） ===== */
.home-hero{margin:0;padding:40px 36px 36px;
  background:
    radial-gradient(ellipse 1400px 500px at 50% -10%,rgba(159,47,36,.06) 0%,transparent 70%),
    linear-gradient(180deg,#fdfaf5 0%,#f6eddb 100%);
  border:1px solid rgba(159,47,36,.15);border-radius:var(--radius);
  box-shadow:0 8px 32px -8px rgba(62,45,25,.12),inset 0 1px 0 rgba(255,255,255,.6);
  position:relative;overflow:hidden}
/* 装饰性暗纹：两个大圆环 */
.home-hero::before{content:"";position:absolute;top:-60px;right:-60px;width:280px;height:280px;
  border:1px solid rgba(159,47,36,.08);border-radius:50%;pointer-events:none}
.home-hero::after{content:"";position:absolute;bottom:-80px;left:-40px;width:200px;height:200px;
  border:1px solid rgba(185,129,46,.1);border-radius:50%;pointer-events:none}
.home-hero-quote{display:flex;align-items:baseline;gap:8px;margin:0 0 6px;position:relative;z-index:1}
.home-hero-mark{font-family:"Noto Serif SC",serif;font-size:52px;color:rgba(159,47,36,.18);line-height:1;font-weight:700;user-select:none}
.home-hero-mark.end{align-self:flex-end}
.home-hero-text{margin:0;font-family:"Noto Serif SC",serif;font-size:clamp(20px,3vw,30px);color:var(--ink);
  font-weight:600;line-height:1.6;letter-spacing:2px}
.home-hero-source{margin:0 0 28px;font-size:13px;color:var(--muted);letter-spacing:2px;position:relative;z-index:1}
.home-hero-grid{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;position:relative;z-index:1}
.home-hero-grid li{display:flex;flex-direction:column;gap:6px;padding:20px 20px 18px;
  background:rgba(255,253,248,.7);border:1px solid rgba(159,47,36,.12);border-radius:14px;
  backdrop-filter:blur(4px);box-shadow:0 4px 16px rgba(62,45,25,.06);transition:transform .2s,box-shadow .2s}
.home-hero-grid li:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(62,45,25,.1)}
.home-hero-grid li b{font-family:"Noto Serif SC",serif;font-size:18px;color:var(--zhu);letter-spacing:1.5px;font-weight:700}
.home-hero-grid li span{font-size:13px;color:var(--muted);line-height:1.5}

/* ===== 游戏主菜单场景（倪师立绘 + 标题） ===== */
.menu-scene{position:relative;border-radius:var(--radius);overflow:hidden;
  box-shadow:0 18px 48px -12px rgba(40,28,18,.3);min-height:320px;isolation:isolate;
  background:linear-gradient(135deg,#e7dcc8 0%,#ddd0b8 50%,#eae0ce 100%)}
.menu-bg{position:absolute;inset:0;background-size:cover;background-position:center 30%;
  filter:saturate(.88) brightness(1.02)}
.menu-veil{position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(60,42,28,.72) 0%,rgba(60,42,28,.38) 35%,rgba(60,42,28,.08) 62%,rgba(60,42,28,.3) 100%)}
.menu-inner{position:relative;z-index:2;display:grid;grid-template-columns:minmax(160px,.28fr) 1fr;
  align-items:center;gap:28px;padding:40px clamp(24px,4vw,56px)}
.menu-master{position:relative;justify-self:center;width:min(78%,260px);
  filter:drop-shadow(0 20px 30px rgba(0,0,0,.35))}
.menu-master .master-img{width:100%;height:auto;display:block;animation:masterFloat 5s ease-in-out infinite}
.master-glow{position:absolute;inset:-20%;background:radial-gradient(circle,rgba(214,178,120,.18) 0%,transparent 70%);pointer-events:none}
.menu-title{color:#f6efe2;font-family:"Noto Serif SC",serif}
.menu-eyebrow{margin:0 0 6px;color:#d6b278;font-size:14px;letter-spacing:.2em;font-weight:600}
.menu-h1{margin:0;font-size:clamp(28px,4.6vw,52px);font-weight:700;line-height:1.2;
  text-shadow:0 4px 20px rgba(0,0,0,.38)}
.menu-sub{margin:18px 0 0;max-width:44ch;color:#ddd0b8;font-size:15px;line-height:1.75;
  font-family:"Noto Sans SC","PingFang SC",sans-serif}
.menu-dao{display:inline-flex;align-items:center;gap:10px;margin-top:24px;
  background:rgba(40,28,18,.5);border:1px solid rgba(214,178,120,.45);padding:8px 18px;border-radius:999px;
  backdrop-filter:blur(6px)}
.menu-dao .seal-mini{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;
  background:rgba(185,129,46,.85);color:#fff;font-size:13px;font-weight:700}
.menu-dao b{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;color:#d6b278}
.menu-dao small{font-size:11px;color:rgba(246,239,226,.75)}

/* ===== 修行关卡入口（6 工具卡片） ===== */
.home-routes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.route-row{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;
  min-height:140px;padding:22px 22px 20px;border-radius:var(--radius-sm);
  border:1px solid rgba(159,47,36,.12);background:rgba(255,253,248,.85);
  color:var(--ink);text-align:left;cursor:pointer;overflow:hidden;
  transition:transform .2s,box-shadow .2s,border-color .2s;box-shadow:0 4px 16px rgba(62,45,25,.06)}
.route-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:0 2px 2px 0;
  background:linear-gradient(180deg,rgba(185,129,46,.6),rgba(185,129,46,.2))}
.route-row.r-diagnose::before{background:linear-gradient(180deg,rgba(177,72,61,.7),rgba(177,72,61,.2))}
.route-row.r-atlas::before{background:linear-gradient(180deg,rgba(58,93,74,.7),rgba(58,93,74,.2))}
.route-row.r-channels::before{background:linear-gradient(180deg,rgba(52,82,107,.7),rgba(52,82,107,.2))}
.route-row.r-meridians::before{background:linear-gradient(180deg,rgba(125,91,34,.7),rgba(125,91,34,.2))}
.route-row.r-library::before{background:linear-gradient(180deg,rgba(75,44,90,.7),rgba(75,44,90,.2))}
.route-row:hover{transform:translateY(-5px);box-shadow:0 14px 32px -8px rgba(62,45,25,.14);
  border-color:rgba(159,47,36,.25)}
.route-ico{flex:none;display:grid;place-items:center;width:44px;height:44px;margin-bottom:6px;
  border-radius:12px;background:linear-gradient(135deg,var(--zhu-soft),#f3ead8);
  border:1px solid rgba(159,47,36,.1);color:var(--zhu);
  font-family:"Noto Serif SC",serif;font-size:22px;font-weight:700}
.route-row strong{font-family:"Noto Serif SC","Songti SC",STSong,serif;font-size:17px;font-weight:600}
.route-row small{color:var(--muted);font-size:13px;line-height:1.5}

/* ===== 今日当值 · 子午流注 ===== */
.home-ziwu{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.4fr);gap:clamp(18px,3vw,38px);
  align-items:center;padding:24px clamp(18px,3vw,34px);
  border:1px solid rgba(159,47,36,.12);border-radius:var(--radius);
  background:linear-gradient(135deg,rgba(255,253,248,.9),rgba(246,237,219,.9));
  box-shadow:0 4px 20px rgba(62,45,25,.06)}
.ziwu-head h2{margin:0;font-family:"Noto Serif SC",serif;font-size:22px;font-weight:600;color:var(--zhu)}
.ziwu-head .home-time{margin:6px 0 0;color:var(--muted);font-size:14px}
.current-detail{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:baseline;
  padding-top:16px;border-top:1px solid rgba(159,47,36,.1)}
.detail-label{grid-row:span 2;color:var(--gold);font-size:12px;font-weight:700;letter-spacing:.08em;
  font-family:var(--font-mono,ui-monospace,monospace)}
.current-detail strong{font-family:"Noto Serif SC","Songti SC",STSong,serif;font-size:20px;font-weight:600;color:var(--ink)}
.current-detail span:not(.detail-label){color:var(--muted);font-size:13px}
.current-detail #ziwu-advice{grid-column:2}
.ziwu-module{display:grid;justify-items:center;gap:14px;min-width:0}
.ziwu-wheel-frame{width:min(100%,680px);aspect-ratio:1;display:grid;place-items:center}
.ziwu-wheel{position:relative;width:100%;height:100%;isolation:isolate}
.ziwu-wheel::before{content:"";position:absolute;inset:0.8%;
  border:1px solid rgba(62,45,25,.2);border-radius:50%;pointer-events:none;z-index:3}
.ziwu-wheel-svg{position:absolute;inset:0.6%;width:98.8%;height:98.8%;overflow:visible;z-index:1}
.ziwu-sector{stroke:rgba(62,45,25,.15);stroke-width:2.2;vector-effect:non-scaling-stroke;
  cursor:pointer;outline:none;transform-box:fill-box;transform-origin:center;
  transition:transform .22s ease,stroke-width .13s,filter .22s}
.ziwu-sector:hover{stroke:rgba(62,45,25,.4);stroke-width:3.2;filter:saturate(1.08) brightness(1.04)}
.ziwu-sector.is-current{stroke:rgba(62,45,25,.5);stroke-width:3.2;filter:saturate(1.13) brightness(1.04)}
.ziwu-sector.is-selected{transform:scale(1.035);stroke:rgba(62,45,25,.6);stroke-width:3.8;
  filter:saturate(1.16) brightness(1.06);z-index:2}
.ziwu-sector:focus-visible{stroke:var(--zhu);stroke-width:5}
.ziwu-label-layer,.ziwu-outer-layer{position:absolute;inset:0;z-index:4;pointer-events:none}
.ziwu-label-slot,.ziwu-outer-slot{position:absolute;inset:0;transform:rotate(var(--angle));transform-origin:center}
.ziwu-label-content{position:absolute;top:24%;left:50%;width:108px;display:grid;justify-items:center;gap:6px;
  transform:translate(-50%,-50%) rotate(var(--flip));transform-origin:center;color:var(--ink);line-height:1;
  transition:transform .22s,color .13s}
.ziwu-label-content strong{font-family:"Noto Serif SC","Songti SC",STSong,serif;font-size:32px;font-weight:600;letter-spacing:.04em}
.ziwu-label-content small{font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;font-size:13px;font-weight:500;white-space:nowrap;opacity:.84}
.ziwu-branch{position:absolute;top:13.5%;left:50%;width:52px;height:52px;display:grid;place-items:center;
  border:2.5px solid rgba(62,45,25,.25);border-radius:50%;background:rgba(255,253,248,.95);
  color:var(--ink);font-family:"Noto Serif SC","Songti SC",STSong,serif;font-size:26px;font-weight:800;
  box-shadow:0 4px 16px rgba(0,0,0,.12);transform:translate(-50%,-50%) rotate(var(--flip));
  transform-origin:center;transition:transform .22s,border-color .13s}
.ziwu-label-slot.is-selected .ziwu-label-content{transform:translate(-50%,-52%) rotate(var(--flip)) scale(1.06);color:var(--zhu)}
.ziwu-label-slot.is-selected .ziwu-branch{transform:translate(-50%,-50%) rotate(var(--flip)) scale(1.12);border-color:var(--zhu)}
.ziwu-advice{position:absolute;top:5.5%;left:50%;max-width:90px;padding:5px 11px;border-radius:999px;
  background-color:rgba(253,247,235,.92);border:1.5px solid rgba(62,45,25,.2);color:var(--ink);
  font-family:"Noto Serif SC","Songti SC",STSong,serif;font-size:13px;font-weight:600;line-height:1.2;
  text-align:center;white-space:nowrap;box-shadow:0 3px 10px rgba(0,0,0,.08);
  transform:translate(-50%,-50%) rotate(var(--flip));transform-origin:center;
  transition:transform .22s,background-color .13s}
.ziwu-label-slot.is-selected .ziwu-advice{transform:translate(-50%,-50%) rotate(var(--flip)) scale(1.08);
  background-color:rgba(253,247,235,.98);border-color:var(--zhu)}
.ziwu-core{position:absolute;inset:0;z-index:5;display:grid;place-items:center;pointer-events:none}
.taiji-mark{position:relative;width:210px;height:210px;border:4px solid var(--ink);border-radius:50%;
  overflow:hidden;background:rgba(255,253,248,.95);
  box-shadow:0 0 0 14px rgba(255,253,248,.6)}
.taiji-mark::before,.taiji-mark::after,.taiji-mark span,.taiji-mark i,.taiji-mark b{content:"";position:absolute;display:block;border-radius:50%}
.taiji-mark::before{width:100%;height:50%;top:0;background:var(--ink);border-radius:150px 150px 0 0}
.taiji-mark::after{width:50%;height:50%;top:25%;left:0;background:var(--ink)}
.taiji-mark span{width:50%;height:50%;top:25%;right:0;background:rgba(255,253,248,.95)}
.taiji-mark i{width:25%;height:25%;top:12.5%;left:37.5%;background:rgba(255,253,248,.95)}
.taiji-mark b{width:25%;height:25%;bottom:12.5%;left:37.5%;background:var(--ink)}
.wheel-note{margin:0;color:var(--muted);font-size:15px;text-align:center}

@media (max-width:980px){
  .menu-inner{grid-template-columns:1fr;justify-items:center;text-align:center;gap:14px}
  .menu-master{width:min(54%,200px)}
  .menu-sub{margin-left:auto;margin-right:auto}
  .menu-dao{margin-left:auto;margin-right:auto}
  .home-routes{grid-template-columns:repeat(2,1fr)}
  .home-ziwu{grid-template-columns:1fr}
  .ziwu-wheel-frame{width:min(88vw,620px)}
}
@media (max-width:880px){
  .home-hero-grid{grid-template-columns:repeat(2,1fr)}
  .home-hero-text{font-size:18px}
}
@media (max-width:680px){
  .home-hero{padding:24px 18px;border-radius:var(--radius-sm)}
  .home-hero-grid{gap:12px}
  .home-hero-grid li{padding:14px 16px}
  .home-hero-grid li b{font-size:16px}
  .current-detail{margin-top:28px}
  .ziwu-wheel-frame{width:min(100%,480px)}
  .ziwu-label-content{width:76px;top:22%}
  .ziwu-label-content strong{font-size:22px}
  .ziwu-label-content small{font-size:10.5px}
  .ziwu-branch{top:12%;width:34px;height:34px;font-size:17px}
  .ziwu-advice{top:5%;padding:4px 8px;max-width:72px;font-size:11px}
  .taiji-mark{width:150px;height:150px;border-width:3px}
  .home-routes{grid-template-columns:1fr}
  .route-row{min-height:100px;padding:18px}
}
@media (max-width:560px){
  .home-hero{padding:20px 16px;border-radius:10px}
  .home-hero-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .ziwu-sector,.ziwu-label-content,.ziwu-branch,.ziwu-outer-slot>span,.primary-action,.secondary-action,.route-row{transition:none}
}
/* 病种定向检索：选中态高亮 + 过滤横幅 + 结果病种标签 */
.sbtn.active{background:var(--zhu);color:#fff}
.sbtn.active small{color:rgba(255,255,255,.85)}
.btns.topics{margin-bottom:4px}
.filterbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--zhu-soft);
  border:1px solid var(--zhu);color:var(--zhu);border-radius:9px;padding:8px 12px;font-size:13px;margin:6px 0 12px}
.filterbar b{color:var(--zhu)}
.filterbar .sbtn.clear{padding:4px 10px;font-size:12px;flex-direction:row;background:#fff}
.rtag{font-size:10.5px;color:#fff;background:var(--zhu);padding:1px 7px;border-radius:10px}

/* FAQ */
.faq{border:1px solid var(--line);border-radius:10px;margin:8px 0;background:#fff;overflow:hidden}
.faq summary{cursor:pointer;padding:11px 13px;font-size:14px;font-weight:500;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"＋ ";color:var(--zhu);font-weight:700}
.faq[open] summary::before{content:"－ "}
.faq-a{padding:0 13px 12px;font-size:13px;color:var(--ink);line-height:1.7}

/* ============ 辨证页游戏化：四诊推演探案 ============ */
.diagnose-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:18px;align-items:start}
.case-hud{margin:0 0 18px;padding:14px 16px;border:1px solid var(--ziwu-line);border-radius:14px;
  background:linear-gradient(135deg,color-mix(in oklab,var(--ziwu-gold),transparent 86%),var(--ziwu-surface));
  box-shadow:0 8px 20px color-mix(in oklab,var(--ziwu-night),transparent 94%)}
.case-hud-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:9px}
.case-hud-title{font-family:"Noto Serif SC","Songti SC",serif;font-size:14px;font-weight:600;color:var(--ziwu-cinnabar-deep);letter-spacing:.04em}
.case-hud-count{font-family:"Noto Sans SC",sans-serif;font-size:12px;font-weight:600;color:var(--ziwu-muted)}
.case-hud-bar{height:9px;border-radius:999px;background:color-mix(in oklab,var(--ziwu-line),transparent 30%);overflow:hidden}
.case-hud-bar i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--ziwu-jade),var(--ziwu-gold));transition:width .5s cubic-bezier(.2,0,0,1)}
.case-hud-bar i.full{background:linear-gradient(90deg,var(--ziwu-cinnabar),var(--ziwu-gold))}

.stage{position:relative;display:flex;align-items:center;gap:10px;margin:22px 0 14px;padding:12px 14px;
  border:1px solid var(--ziwu-line);border-left:5px solid var(--ziwu-cinnabar);border-radius:12px;
  background:var(--ziwu-surface);font-family:"Noto Serif SC","Songti SC",serif;font-size:16px;font-weight:600;
  color:var(--ziwu-cinnabar-deep);box-shadow:0 6px 16px color-mix(in oklab,var(--ziwu-night),transparent 94%)}
.stage .sn{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:9px;
  background:var(--ziwu-night);color:#fff;font-size:14px;font-weight:700;font-family:"Noto Serif SC","Songti SC",serif}
.stage.danger{border-left-color:var(--ziwu-cinnabar-deep);background:color-mix(in oklab,var(--ziwu-cinnabar),transparent 92%)}
.stage.danger.hot{animation:alertPulse 1.1s ease-in-out infinite}
@keyframes alertPulse{0%,100%{box-shadow:0 6px 16px color-mix(in oklab,var(--ziwu-night),transparent 94%)}
  50%{box-shadow:0 0 0 4px color-mix(in oklab,var(--ziwu-cinnabar),transparent 70%)}}

.opts{display:flex;flex-wrap:wrap;gap:9px}
.opt{display:inline-flex;align-items:center;gap:7px;background:var(--ziwu-surface);border:1.5px solid var(--ziwu-line);
  border-radius:11px;padding:9px 12px;font-size:13.5px;cursor:pointer;transition:.16s;line-height:1.3}
.opt:hover{border-color:var(--ziwu-cinnabar);transform:translateY(-1px)}
.opt input{accent-color:var(--ziwu-cinnabar);margin:0}
.opt:has(input:checked){background:color-mix(in oklab,var(--ziwu-cinnabar),transparent 91%);border-color:var(--ziwu-cinnabar);
  font-weight:600;box-shadow:0 6px 14px color-mix(in oklab,var(--ziwu-cinnabar),transparent 80%)}

.case-act{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:24px}
.case-act #btn{margin-top:0;width:auto;background:linear-gradient(135deg,var(--ziwu-cinnabar),var(--ziwu-cinnabar-deep));
  border:none;border-radius:12px;padding:14px 24px;font:700 16px/1 "Noto Serif SC","Songti SC",serif;color:#fff;cursor:pointer;
  box-shadow:0 12px 26px color-mix(in oklab,var(--ziwu-cinnabar),transparent 72%);transition:.16s}
.case-act #btn:hover{transform:translateY(-2px);box-shadow:0 16px 32px color-mix(in oklab,var(--ziwu-cinnabar),transparent 78%)}
.case-act-hint{font-size:12.5px;color:var(--ziwu-muted)}

.mentor-panel{position:relative;padding:18px 18px 16px;border:1px solid var(--ziwu-line);border-radius:16px;min-height:100%;
  background:linear-gradient(160deg,color-mix(in oklab,var(--ziwu-gold),transparent 88%),var(--ziwu-surface));
  box-shadow:0 14px 34px color-mix(in oklab,var(--ziwu-night),transparent 92%);overflow:hidden}
.mentor-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-family:"Noto Serif SC","Songti SC",serif;
  font-size:16px;font-weight:600;color:var(--ziwu-ink)}
.mentor-seal{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--ziwu-cinnabar);
  color:#fff;font-family:"Noto Serif SC","Songti SC",serif;font-size:18px;font-weight:700;
  box-shadow:0 6px 14px color-mix(in oklab,var(--ziwu-cinnabar),transparent 74%);transform:rotate(-4deg)}
.mentor-body{font-size:14px;line-height:1.7;color:var(--ziwu-ink);min-height:60px}
.mentor-tend{font-family:"Noto Serif SC","Songti SC",serif;font-size:15px;margin-bottom:6px}
.mentor-tend b{color:var(--ziwu-cinnabar-deep);font-size:17px}
.mentor-hint{color:var(--ziwu-muted)}
.mentor-foot{margin-top:12px;padding-top:10px;border-top:1px dashed var(--ziwu-line);font-size:12px;color:var(--ziwu-muted);text-align:right}

@keyframes flipIn{0%{opacity:0;transform:perspective(900px) rotateX(-24deg) translateY(16px)}
  100%{opacity:1;transform:none}}
.result .card{animation:flipIn .55s cubic-bezier(.2,0,0,1) both}

@media (max-width:900px){.diagnose-grid{grid-template-columns:1fr}}

/* 让舌/脉图鉴卡片略显"卡牌"质感 */
.tcard,.pcard{border-radius:12px;transition:.16s}
.tcard.on,.pcard.on{transform:translateY(-2px)}

/* ================= 辨证页 · 经方问诊 RPG 场景 ================= */
.diagnose-grid{display:block}
.diagnose-grid .intake-panel{background:transparent;border:0;box-shadow:none;padding:0}
#result:empty{display:none}
.scene{position:relative;width:100%;min-height:min(84vh,760px);border-radius:18px;overflow:hidden;box-shadow:0 26px 70px rgba(40,28,18,.38);isolation:isolate;background:#ece3d2}
.scene-bg{position:absolute;inset:0;background-size:cover;background-position:center 28%;filter:saturate(.92) brightness(.97)}
.scene-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,20,14,.30) 0%,rgba(26,20,14,.08) 36%,rgba(26,20,14,.46) 100%);pointer-events:none}
.scene-hud{position:absolute;top:0;left:0;right:0;z-index:6;display:flex;align-items:center;gap:12px;padding:12px 16px;color:#f6efe2;font-family:"Noto Serif SC",serif}
.hud-dao{display:flex;align-items:center;gap:8px;background:rgba(40,28,18,.44);border:1px solid rgba(214,178,120,.5);padding:6px 12px;border-radius:999px;backdrop-filter:blur(4px)}
.hud-dao .seal-mini{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--ziwu-cinnabar);color:#fff;font-size:12px;font-weight:700}
.hud-dao b{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}
.hud-dao small{font-size:11px;opacity:.82}
.hud-prog{flex:1;display:flex;align-items:center;gap:10px;min-width:0;background:rgba(40,28,18,.34);padding:6px 12px;border-radius:999px;backdrop-filter:blur(4px)}
.hud-prog-label{font-size:12px;opacity:.85;white-space:nowrap}
.hud-bar{flex:1;height:7px;border-radius:999px;background:rgba(255,255,255,.22);overflow:hidden;min-width:40px}
.hud-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--ziwu-gold),var(--ziwu-cinnabar));transition:width .4s ease}
.hud-prog-count{font-size:12px;opacity:.9;white-space:nowrap;font-variant-numeric:tabular-nums}
.hud-time{background:rgba(40,28,18,.44);border:1px solid rgba(214,178,120,.5);padding:6px 12px;border-radius:999px;font-variant-numeric:tabular-nums;font-size:14px;font-weight:600;backdrop-filter:blur(4px)}
.hud-reset{background:rgba(40,28,18,.44);border:1px solid rgba(214,178,120,.5);color:#f6efe2;padding:6px 12px;border-radius:999px;cursor:pointer;font-size:12px;font-family:"Noto Serif SC",serif;transition:.14s}
.hud-reset:hover{background:var(--ziwu-cinnabar);border-color:var(--ziwu-cinnabar)}
.scene-stage{position:absolute;inset:0;display:grid;grid-template-columns:minmax(200px,.4fr) 1fr;align-items:end;padding:62px 22px 170px;gap:10px;z-index:3}
.master{position:relative;align-self:end;justify-self:center;width:min(80%,290px);filter:drop-shadow(0 18px 26px rgba(0,0,0,.4))}
.master-img{width:100%;height:auto;display:block;animation:masterFloat 5s ease-in-out infinite}
.master.talking .master-img{animation:masterTalk .5s ease-in-out infinite}
.master-glow{position:absolute;inset:-14% -14% 6%;background:radial-gradient(closest-side,rgba(255,228,170,.36),transparent 72%);filter:blur(6px);z-index:-1}
.master-shadow{position:absolute;left:14%;right:14%;bottom:-6px;height:18px;background:radial-gradient(closest-side,rgba(0,0,0,.45),transparent);border-radius:50%;filter:blur(4px)}
@keyframes masterFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes masterTalk{0%,100%{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-4px) rotate(.6deg)}}
.evidence{position:relative;align-self:end;max-height:100%;overflow:auto;background:rgba(255,253,248,.92);border:1px solid rgba(126,101,72,.3);border-radius:14px;padding:14px;box-shadow:0 14px 34px rgba(40,28,18,.3)}
.ev-group[hidden]{display:none}
.ev-head{font-family:"Noto Serif SC",serif;font-size:18px;font-weight:700;color:var(--ziwu-cinnabar-deep);margin-bottom:6px}
.ev-hint{font-size:13px;color:#6f675e;line-height:1.6;margin:0 0 10px}
.tcols{display:grid;gap:10px}
.dialogue{position:absolute;left:18px;right:18px;bottom:16px;z-index:5;background:linear-gradient(180deg,rgba(34,26,18,.93),rgba(22,16,11,.96));border:1px solid rgba(214,178,120,.55);border-radius:16px;padding:16px 18px 18px;box-shadow:0 18px 44px rgba(0,0,0,.42);color:#f4ecdb}
.dlg-act{display:inline-block;margin-bottom:10px;background:var(--ziwu-cinnabar);color:#fff;font-family:"Noto Serif SC",serif;font-size:13px;font-weight:700;padding:4px 12px;border-radius:999px;border:0;cursor:default;letter-spacing:.04em}
.dlg-body{display:flex;gap:12px;align-items:flex-start}
.dlg-name{flex:none;background:var(--ziwu-gold);color:#3a2a16;font-family:"Noto Serif SC",serif;font-weight:700;font-size:13px;padding:3px 10px;border-radius:8px}
.dlg-text{font-size:16px;line-height:1.75;min-height:54px;font-family:"Noto Serif SC","Songti SC",serif}
.dlg-choices{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.dlg-choice{flex:1 1 auto;min-width:120px;text-align:left;background:rgba(255,253,248,.08);border:1px solid rgba(214,178,120,.5);color:#f4ecdb;font-family:"Noto Serif SC","Songti SC",serif;font-size:14px;padding:10px 12px;border-radius:10px;cursor:pointer;transition:.14s}
.dlg-choice:hover:not(:disabled){background:var(--ziwu-cinnabar);border-color:var(--ziwu-cinnabar);transform:translateY(-1px)}
.dlg-choice:disabled{opacity:.45;cursor:default}
.dlg-choice.cont{background:var(--ziwu-gold);color:#3a2a16;font-weight:700;border-color:var(--ziwu-gold);flex:0 0 auto}
.hidden-inputs{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);opacity:0;pointer-events:none}
.reveal-mask{position:fixed;inset:0;z-index:40;background:linear-gradient(180deg,rgba(10,7,4,.78),rgba(24,16,10,.68));display:grid;place-items:center;padding:20px;opacity:1;transition:opacity .3s ease}
.reveal-mask[hidden]{display:none;opacity:0}
#result.revealed{position:fixed;z-index:41;top:50%;left:50%;transform:translate(-50%,-50%) scale(.78);width:min(640px,94vw);max-height:min(84vh,760px);overflow:auto;background:linear-gradient(180deg,#fdfbf6 0%,#f6f0e4 100%);border:2px solid var(--ziwu-cinnabar);border-radius:20px;box-shadow:0 0 0 1px rgba(255,255,255,.35) inset,0 34px 90px rgba(0,0,0,.55),0 0 60px rgba(190,60,40,.18);padding:0;animation:modalIn .55s cubic-bezier(.22,1.4,.36,1) both}
#result.revealed .card{animation:none;background:transparent;border:0;box-shadow:none;padding:22px 24px 26px;margin:0}
#result.revealed .alert{margin:16px 16px 0;border-radius:14px}
#result.revealed .disclaimer{margin:0 22px 22px}
.reveal-top{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px 10px;background:linear-gradient(180deg,#fdfbf6 80%,transparent);border-bottom:1px dashed rgba(126,101,72,.25)}
.reveal-top::before{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(126,101,72,.4),transparent)}
.reveal-top::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(126,101,72,.4),transparent)}
.reveal-title{flex:none;font-family:"Noto Serif SC",serif;font-size:16px;font-weight:700;color:#7d201b;letter-spacing:.08em;padding:0 10px}
.reveal-x{flex:none;display:grid;place-items:center;width:34px;height:34px;background:var(--ziwu-cinnabar);color:#fff;border:0;border-radius:50%;cursor:pointer;font-size:16px;transition:.14s;box-shadow:0 3px 10px rgba(190,60,40,.35)}
.reveal-x:hover{transform:rotate(90deg) scale(1.05)}
.reveal-hint{padding:18px;color:#6f675e;text-align:center;font-family:"Noto Serif SC",serif}
@keyframes modalIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.72) translateY(18px)}60%{opacity:1;transform:translate(-50%,-50%) scale(1.02) translateY(-4px)}100%{opacity:1;transform:translate(-50%,-50%) scale(1) translateY(0)}}
@keyframes modalPop{0%{opacity:0;transform:scale(.72) translateY(18px)}60%{opacity:1;transform:scale(1.02) translateY(-4px)}100%{opacity:1;transform:scale(1) translateY(0)}}
@media (max-width:760px){
  .scene{min-height:88vh}
  .scene-stage{grid-template-columns:1fr;grid-template-rows:auto 1fr;padding:56px 12px 176px;gap:6px}
  .master{width:min(46%,180px);order:1}
  .evidence{order:2;max-height:42vh}
  .dialogue{left:10px;right:10px;bottom:10px;padding:14px}
  .dlg-text{font-size:15px;min-height:48px}
  .dlg-choice{min-width:100px;font-size:13px;padding:9px 10px}
  .hud-time{display:none}
}

/* ===== 全站通用弹窗（图鉴/六经/医案复用） ===== */
.game-modal{position:fixed;inset:0;z-index:200;display:none;place-items:center;padding:20px}
.game-modal.open{display:grid;animation:fade .2s ease}
.game-modal .reveal-mask{position:absolute;inset:0;z-index:1;display:block;padding:0;background:linear-gradient(180deg,rgba(10,7,4,.78),rgba(24,16,10,.68))}
.game-modal-box{position:relative;z-index:2;width:min(600px,94vw);max-height:min(86vh,780px);overflow:auto;background:#fffdf8;color:#2a2118;border:2px solid var(--ziwu-cinnabar);border-radius:20px;box-shadow:0 0 0 1px rgba(255,255,255,.55) inset,0 34px 90px rgba(0,0,0,.55),0 0 60px rgba(190,60,40,.18);animation:modalPop .55s cubic-bezier(.22,1.4,.36,1) both}
.game-modal-body{padding:20px 24px 26px}

/* 图鉴卡牌（collection） */
.collection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-top:6px}
.collect-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px 14px;border:1px solid var(--ziwu-line);border-radius:14px;background:var(--ziwu-surface);cursor:pointer;text-align:center;transition:transform .16s,box-shadow .16s,border-color .16s}
.collect-card:hover{transform:translateY(-4px);box-shadow:0 16px 32px color-mix(in oklab,var(--ziwu-night),transparent 90%);border-color:var(--ziwu-cinnabar)}
.collect-card .asvg,.collect-card svg{width:84px;height:84px}
.collect-card .at{font-family:"Noto Serif SC",serif;font-size:14px;font-weight:600;color:var(--ziwu-ink)}
.collect-card .am{font-size:12px;color:var(--ziwu-muted);line-height:1.5}
.collect-card .seen{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;background:var(--ziwu-jade);color:#fff;font-size:12px;display:grid;place-items:center;opacity:0;transition:.16s}
.collect-card.viewed .seen{opacity:1}
.collect-card.viewed{border-color:color-mix(in oklab,var(--ziwu-jade),transparent 60%)}
.collect-section-title{display:flex;align-items:center;gap:10px;margin:24px 0 10px;font-family:"Noto Serif SC",serif;font-size:19px;font-weight:600;color:var(--ziwu-cinnabar-deep)}
.collect-section-title::before{content:"";width:5px;height:22px;border-radius:3px;background:var(--ziwu-cinnabar)}

/* 六经知识地图 */
.channel-map{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:8px}
.channel-node{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:22px 14px;border-radius:16px;background:var(--ziwu-surface);border:1px solid var(--ziwu-line);cursor:pointer;overflow:hidden;transition:transform .16s,box-shadow .16s}
.channel-node:hover{transform:translateY(-4px);box-shadow:0 18px 38px color-mix(in oklab,var(--ziwu-night),transparent 90%)}
.channel-node .chn-dot{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-family:"Noto Serif SC",serif;font-size:20px;font-weight:700;color:#fff;box-shadow:0 8px 18px rgba(0,0,0,.18)}
.channel-node .chn-name{font-family:"Noto Serif SC",serif;font-size:17px;font-weight:600;color:var(--ziwu-ink)}
.channel-node .chn-gang{font-size:11.5px;color:var(--ziwu-muted);line-height:1.4;text-align:center}
.channel-node.lit::after{content:"已点亮";position:absolute;top:8px;right:8px;font-size:11px;background:var(--ziwu-gold);color:#3a2a16;padding:2px 8px;border-radius:999px;font-weight:600}
.channel-node.c-taiyang .chn-dot{background:#c0392b}
.channel-node.c-yangming .chn-dot{background:#d98324}
.channel-node.c-shaoyang .chn-dot{background:#c9a227}
.channel-node.c-taiyin .chn-dot{background:#4a7c3f}
.channel-node.c-shaoyin .chn-dot{background:#2f6f8f}
.channel-node.c-jueyin .chn-dot{background:#7a4a8c}

/* 医案副本 */
.case-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:6px}
.case-card{position:relative;display:flex;flex-direction:column;gap:4px;padding:18px 16px;border-radius:14px;background:var(--ziwu-surface);border:1px solid var(--ziwu-line);cursor:pointer;text-align:left;overflow:hidden;transition:transform .16s,box-shadow .16s,border-color .16s}
.case-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--ziwu-cinnabar)}
.case-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px color-mix(in oklab,var(--ziwu-night),transparent 90%);border-color:var(--ziwu-cinnabar)}
.case-card .cc-name{font-family:"Noto Serif SC",serif;font-size:17px;font-weight:600;color:var(--ziwu-ink)}
.case-card .cc-desc{font-size:12.5px;color:var(--ziwu-muted)}
.case-card .cc-go{margin-top:8px;font-size:12.5px;color:var(--ziwu-cinnabar-deep);font-weight:600}
.case-card.active{border-color:var(--ziwu-cinnabar);background:color-mix(in oklab,var(--ziwu-cinnabar),transparent 91%)}
.case-card.active::before{background:var(--ziwu-night)}
.modal-detail h3{margin:0 0 10px;font-family:"Noto Serif SC",serif;font-size:24px;font-weight:700;color:#7d201b}
.modal-detail p{margin:0 0 12px;font-size:15px;font-weight:500;line-height:1.8;color:#1f160d}
.modal-detail > div{margin:0 0 12px;font-size:15px;font-weight:500;line-height:1.8;color:#1f160d}
.modal-detail .chip{display:inline-block;margin:3px 6px 3px 0;font-size:13px;background:#f5ead3;color:#5c3a18;border:1px solid #e5d4b3;padding:4px 11px;border-radius:999px;font-weight:600}
.modal-detail .try-btn{margin-top:14px;width:100%;background:var(--ziwu-cinnabar);color:#fff;border:0;border-radius:11px;padding:13px;font-size:15px;font-weight:700;cursor:pointer;font-family:"Noto Serif SC",serif;letter-spacing:.04em}
.modal-detail .try-btn:hover{background:var(--ziwu-cinnabar-deep)}
.modal-detail .asvg-lg{display:flex;justify-content:center;margin:8px 0 14px}
.modal-detail .asvg-lg svg{width:120px;height:120px}

/* ===== 经络图鉴（专业版） ===== */
.seg{display:inline-flex;border:1px solid var(--ziwu-line);border-radius:11px;overflow:hidden}
.mer-chip{display:inline-flex;align-items:center;gap:6px;font-family:"Noto Sans SC",sans-serif;font-size:12.5px;color:var(--ziwu-ink);background:var(--ziwu-surface);border:1px solid var(--ziwu-line);border-radius:999px;padding:4px 11px;cursor:pointer;transition:transform .14s,border-color .14s,box-shadow .14s}
.mer-chip:hover{transform:translateY(-1px);border-color:var(--mc);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.mer-dot{width:11px;height:11px;border-radius:50%;display:inline-block;flex:none}
.mer-note{font-size:12.5px;line-height:1.7;color:var(--ziwu-ink-soft);background:#fbf3e6;border:1px dashed var(--ziwu-gold);border-radius:10px;padding:9px 12px;margin:4px 0 18px}
/* 弹窗内排版 */
.mer-head{display:flex;align-items:center;gap:9px;margin-bottom:6px;flex-wrap:wrap}
.mer-head h3{font-family:"Noto Serif SC",serif;font-size:19px;color:var(--ziwu-cinnabar-deep);margin:0}
.mer-xing{margin:8px 0;font-size:14px;line-height:1.85;color:var(--ziwu-ink)}
.mer-pts{margin:6px 0 0;padding-left:20px}
.mer-pts li{font-size:13.5px;line-height:1.7;margin-bottom:3px;color:var(--ziwu-ink)}
.mer-pts b{color:var(--ziwu-cinnabar-deep)}
.mu-sub{color:var(--ziwu-ink-soft);font-weight:400;font-size:12.5px}
.mu-tip{margin-top:10px;font-size:12.5px;color:var(--ziwu-ink-soft);background:#fbf3e6;padding:7px 10px;border-radius:8px}
/* ===== 3D 人体模特查看器 ===== */
/* ===== 经络图鉴：左菜单 + 右显示区 ===== */
.mer-layout{--mer-h:min(84vh,980px);display:flex;gap:14px;align-items:stretch;margin:10px 0 14px}
.mer-side{width:276px;flex:0 0 276px;height:var(--mer-h);display:flex;flex-direction:column;gap:10px;background:linear-gradient(180deg,#fbf7ef,#f3ecdd);border:1px solid var(--ziwu-line);border-radius:16px;padding:12px;overflow-y:auto;overflow-x:hidden;
  scrollbar-width:thin;scrollbar-color:#c9b48e transparent}
.mer-side::-webkit-scrollbar{width:7px}
.mer-side::-webkit-scrollbar-thumb{background:#c9b48e;border-radius:4px}
.mer-side-seg{display:flex;width:100%;gap:6px;align-self:stretch}
.mer-side-seg .sbtn{flex:1;min-width:0;font-size:12.5px;padding:7px 4px;flex-direction:row;justify-content:center;white-space:nowrap}
.mer-side-seg .sbtn.active{background:var(--ziwu-cinnabar);color:#fff;border-color:var(--ziwu-cinnabar)}
.mer-side-hd{display:flex;align-items:center;justify-content:space-between;font-family:"Noto Serif SC",serif;font-size:12.5px;color:var(--ziwu-cinnabar-deep);padding:0 2px}
.mer-side-cnt{font-family:"Noto Sans SC",sans-serif;font-size:11.5px;color:var(--ziwu-ink-soft)}
/* 14 条经络必须一次全部露出：原先 max-height:40% 在 1440×780 下只能显示 8 条
   （scrollHeight 447 vs clientHeight 252），且滚动条未样式化，用户看不出还能滚。
   现改为紧凑排布 + flex:0 0 auto（不被下方信息面板挤压），列表整体不再需要滚动；
   极端矮视口下由 .mer-side 自身滚动兜底。 */
.mer-legend-v{display:flex;flex-direction:column;gap:2px;flex:0 0 auto;overflow-y:auto;padding-right:4px;
  scrollbar-width:thin;scrollbar-color:#c9b48e transparent}
.mer-legend-v::-webkit-scrollbar{width:7px}
.mer-legend-v::-webkit-scrollbar-track{background:rgba(0,0,0,.05);border-radius:4px}
.mer-legend-v::-webkit-scrollbar-thumb{background:#c9b48e;border-radius:4px}
.mer-legend-v::-webkit-scrollbar-thumb:hover{background:#b09a72}
.mer-legend-v .mer-chip{display:flex;width:100%;justify-content:flex-start;align-items:center;gap:6px;border-radius:8px;padding:4px 9px;font-size:11.5px;line-height:1.25}
.mer-legend-v .mer-chip:hover{transform:none;box-shadow:0 1px 6px rgba(0,0,0,.08)}
/* 用专供文字的合规色，而非高饱和的经络标识色（标识色留给 .mer-dot 与 3D 线条） */
.mer-legend-v .mer-chip-abbr{min-width:27px;text-align:left;font-weight:700;color:var(--mc-text,var(--mc));letter-spacing:.02em}
.mer-legend-v .mer-chip.mer-chip-focus .mer-chip-abbr{color:#fff}
.mer-legend-v .mer-dot{width:8px;height:8px;flex:0 0 8px}
.mer-legend-v .mer-chip-done-t{margin-left:auto}
.mer-viewarea{flex:1 1 auto;min-width:0;display:flex;height:var(--mer-h)}
.mer3d-root{flex:1 1 auto;min-width:0;max-width:none;width:100%;height:100%}
.mer3d-canvas-wrap{position:relative;width:100%;height:100%;margin:0 auto;background:radial-gradient(circle at 50% 30%,#a2938a,#6b5e53 55%,#4a4038);border:1px solid var(--ziwu-line);border-radius:16px;overflow:hidden;transition:background .35s ease}
/* 铜人模式：深色展陈背景，古铜金属才有对比度可读（浅底上金属体会糊成一团） */
.mer3d-canvas-wrap.mer3d-bronze{background:radial-gradient(circle at 50% 34%,#4a3f33,#221b14)}
/* 单视图图谱：背景柔和如解剖图谱；移除中央十字与四角方位（顶部 4-tab 决定方位） */
.mer3d-canvas-wrap.mer3d-quad{background:radial-gradient(circle at 50% 45%,#fbf6ec,#e6dcc6);border-color:#c8b894;box-shadow:inset 0 0 60px rgba(180,150,100,.08)}
.mer3d-canvas-wrap.mer3d-quad::after{content:none}
/* 顶部 4-tab 切换条（医学图谱风） */
.mer3d-view-tabs{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:6;
  display:flex;gap:4px;padding:3px;background:rgba(255,253,250,.88);
  border:1px solid rgba(122,92,62,.30);border-radius:24px;
  box-shadow:0 2px 10px rgba(74,52,30,.12);backdrop-filter:blur(4px);pointer-events:auto}
.mer3d-view-tabs .mer3d-view-tab{appearance:none;border:none;background:transparent;
  font-family:"Noto Serif SC",serif;font-size:13px;font-weight:600;color:#5b4123;
  padding:6px 18px;border-radius:18px;cursor:pointer;letter-spacing:.08em;
  transition:background .18s ease,color .18s ease,transform .12s ease}
.mer3d-view-tabs .mer3d-view-tab:hover{background:rgba(180,150,100,.18)}
.mer3d-view-tabs .mer3d-view-tab.active{background:linear-gradient(180deg,#8b2e2a,#6b1f1c);
  color:#fff7e6;box-shadow:0 1px 4px rgba(139,46,42,.32)}
/* 单视图 2D 穴位标注层：全屏 SVG，点对点直接标注，白描边 halo */
.mer3d-canvas-wrap.mer3d-quad .mer-quad-labels{display:block}
.mer-quad-labels{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}
.mer-quad-pt{stroke:#fff;stroke-width:.9;paint-order:stroke}
.mer-quad-name{font-family:"Noto Sans SC",sans-serif;font-size:11px;font-weight:600;
  paint-order:stroke;stroke:#fff;stroke-width:2.6px;stroke-linejoin:round;opacity:.98;
  pointer-events:none;user-select:none;dominant-baseline:alphabetic;letter-spacing:.02em}
.mer-quad-name.is-focus{font-size:13.5px;font-weight:800;opacity:1}
#mer3d-canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}
#mer3d-canvas canvas{display:block;width:100%;height:100%}
.mer3d-tip{position:absolute;display:none;pointer-events:none;z-index:5;background:rgba(40,28,18,.92);color:#fff;font-size:11px;font-family:"Noto Sans SC",sans-serif;padding:3px 8px;border-radius:6px;white-space:nowrap;transform:translateZ(0)}
.mer3d-hud{position:absolute;right:10px;top:10px;bottom:auto;display:flex;gap:8px;z-index:4}
.mer3d-hud .sbtn{background:rgba(255,255,255,.86);border:1px solid var(--ziwu-line);font-size:12.5px;padding:6px 12px;flex-direction:row}
.mer3d-hud .sbtn.active{background:var(--ziwu-cinnabar);color:#fff;border-color:var(--ziwu-cinnabar)}
/* 穴位搜索框（3D 人体 / 单视图图谱通用，置于画布左上角） */
.mer3d-search{position:absolute;top:10px;left:10px;z-index:7;width:300px;max-width:calc(100% - 20px);font-family:"Noto Sans SC",sans-serif}
.mer3d-search-iwrap{display:flex;align-items:center;gap:7px;background:rgba(255,253,250,.94);
  border:1px solid rgba(122,92,62,.32);border-radius:22px;padding:7px 12px;
  box-shadow:0 3px 14px rgba(74,52,30,.14);backdrop-filter:blur(4px)}
.mer3d-search-ico{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:var(--ziwu-cinnabar);stroke-width:2.2;stroke-linecap:round}
.mer3d-search-input{flex:1 1 auto;min-width:0;border:none;background:transparent;outline:none;
  font-family:inherit;font-size:13px;color:#3a2a1a;line-height:1.4}
.mer3d-search-input::placeholder{color:#a2917a;font-size:12px}
.mer3d-search-clear{flex:0 0 auto;border:none;background:transparent;cursor:pointer;
  color:#8a7355;font-size:18px;line-height:1;padding:0 2px}
.mer3d-search-clear:hover{color:var(--ziwu-cinnabar)}
.mer3d-search-drop{position:absolute;top:calc(100% + 6px);left:0;right:0;
  background:#fffdf8;border:1px solid rgba(122,92,62,.28);border-radius:12px;
  box-shadow:0 8px 26px rgba(74,52,30,.18);padding:5px;max-height:332px;overflow-y:auto}
.mer3d-search-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;
  cursor:pointer;font-size:13px;color:#3a2a1a;transition:background .12s}
.mer3d-search-item:hover,.mer3d-search-item.active{background:rgba(180,150,100,.18)}
.mer3d-search-item .mer-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto;box-shadow:0 0 0 1.5px rgba(255,255,255,.7)}
.mer3d-si-cn{font-weight:600;letter-spacing:.02em}
.mer3d-si-code{font-family:"JetBrains Mono",monospace;font-size:11.5px;color:var(--ziwu-cinnabar-deep)}
.mer3d-si-mer{margin-left:auto;font-size:12px;color:#8a7355;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46%}
.mer3d-search-drop:empty{display:none}
/* 信息面板留出下限高度，避免它把上方 14 经列表挤没（两者同在一个 flex 列里） */
.mer-info-panel{flex:1 1 auto;min-height:132px;width:auto;background:#fffdfa;border:1px solid var(--ziwu-line);border-radius:12px;padding:11px 13px;display:flex;flex-direction:column;gap:9px;overflow:hidden}
.mer-info-panel h3{margin:0;font-family:"Noto Serif SC",serif;font-size:15px;color:var(--ziwu-cinnabar-deep);display:flex;align-items:center;gap:8px}
.mer-info-panel .mer-info-meta{font-size:11.5px;color:var(--ziwu-ink-soft);line-height:1.6}
.mer-info-panel .mer-info-meta b{color:var(--ziwu-ink)}
.mer-info-desc{font-size:12px;line-height:1.7;color:var(--ziwu-ink);max-height:104px;overflow:auto;background:#fbf7ef;border-radius:10px;padding:8px 10px;flex:0 0 auto}
.mer-info-list{flex:1 1 auto;min-height:0;overflow-y:auto;margin:0 -4px;padding:0 4px}
.mer-info-list h4{position:sticky;top:0;background:#fffdfa;padding:2px 0 6px;z-index:1}
.mer-info-list h4{margin:0 0 8px;font-size:12px;color:var(--ziwu-ink)}
.mer-info-pt{display:flex;align-items:baseline;gap:8px;padding:5px 8px;border-radius:8px;cursor:pointer;transition:background .12s}
.mer-info-pt:hover{background:#f5efe6}
.mer-info-pt b{font-size:11.5px;color:var(--ziwu-cinnabar-deep);min-width:42px}
.mer-info-pt span{font-size:12px;color:var(--ziwu-ink)}
.mer-info-empty{font-size:12px;color:var(--ziwu-ink-soft);text-align:center;padding:18px 8px}
.mer-info-panel .mer-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
@media (max-width:980px){
  .mer-layout{flex-direction:column;--mer-h:auto}
  .mer-side{width:100%;flex:0 0 auto;height:auto}
  .mer-legend-v{flex-direction:row;flex-wrap:wrap;max-height:none;min-height:0}
  .mer-legend-v .mer-chip{width:auto}
  .mer-info-panel{max-height:280px}
  .mer-viewarea{height:min(62vh,640px)}
}
.mer-chip.mer-chip-active{border-width:2px;box-shadow:0 0 0 2px rgba(192,57,57,.18)}
.mer-chip.mer-chip-focus{background:var(--ziwu-cinnabar);color:#fff;border-color:var(--ziwu-cinnabar);box-shadow:0 4px 12px rgba(192,57,57,.28)}
.mer-chip.mer-chip-focus .mer-dot{background:#fff !important}
.mer-chip.mer-chip-done{background:#f3f7ee;border-color:#9bbf6e}
.mer-chip.mer-chip-done .mer-chip-done-t::after{content:" ✓";color:#5e8b2e}
/* 隐藏态：原先 opacity:.4 把文字压到远低于 AA，改为 .68 + 灰化圆点表达「已关闭」 */
.mer-chip.mer-chip-off{opacity:.68;text-decoration:line-through;background:#f1eee8}
.mer-chip-off .mer-dot{filter:grayscale(1)}

/* ================= 书架（在 learn tab 内） ================= */
.learn-shelf{max-width:1080px;margin:0 auto;padding:8px 24px 72px}
.learn-shelf[hidden]{display:none}

/* ---- 头部品牌 ---- */
.bs-head{display:flex;align-items:center;gap:18px;margin-bottom:32px;position:relative}
.bs-head-txt{flex:1}
.bs-cta{display:inline-flex;align-items:center;padding:10px 22px;border-radius:999px;background:var(--zhu);color:#fff;font-weight:600;font-size:14px;font-family:"Noto Serif SC",serif;letter-spacing:2px;text-decoration:none;box-shadow:0 6px 18px -8px rgba(122,61,46,.55);transition:transform .18s ease,box-shadow .18s ease}
.bs-cta:hover{transform:translateY(-2px);box-shadow:0 10px 22px -10px rgba(122,61,46,.65)}

/* ---- Hero 引言 ---- */
.bs-hero{margin:36px 0 44px;padding:32px 36px;background:linear-gradient(180deg,#fdfaf3 0%,#f5ecdb 100%);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);position:relative;overflow:hidden}
.bs-hero::before,.bs-hero::after{content:"";position:absolute;width:120px;height:120px;border:1px dashed rgba(122,61,46,.18);border-radius:50%}
.bs-hero::before{top:-30px;right:-30px}
.bs-hero::after{bottom:-50px;left:-30px;width:160px;height:160px}
.bs-hero-quote{display:flex;align-items:center;gap:6px;margin:0 0 8px}
.bs-hero-mark{font-family:"Noto Serif SC",serif;font-size:38px;color:var(--zhu);line-height:1;font-weight:700}
.bs-hero-mark-end{align-self:flex-end}
.bs-hero-text{margin:0;font-family:"Noto Serif SC",serif;font-size:22px;color:var(--ink);font-weight:600;line-height:1.6;letter-spacing:1px}
.bs-hero-source{margin:0 0 22px;font-size:13px;color:var(--muted);letter-spacing:1px}
.bs-hero-bullets{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.bs-hero-bullets li{display:flex;flex-direction:column;padding:14px 16px;background:rgba(255,255,255,.55);border:1px solid var(--line);border-radius:12px}
.bs-hero-bullets li b{font-family:"Noto Serif SC",serif;font-size:14.5px;color:var(--zhu);margin-bottom:6px;letter-spacing:1px}
.bs-hero-bullets li span{font-size:12.5px;color:var(--muted);line-height:1.6}

/* ---- 区段通用 ---- */
.bs-section{margin:48px 0 8px}
.bs-sec-head{margin:0 0 22px}
.bs-sec-title{margin:0 0 6px;font-family:"Noto Serif SC",serif;font-size:22px;color:var(--ink);font-weight:700;letter-spacing:2px}
.bs-sec-title::before{content:"◆ ";color:var(--zhu);font-size:14px;vertical-align:middle;margin-right:2px}
.bs-sec-sub{margin:0;font-size:13px;color:var(--muted)}

/* ---- 六工具入口 ---- */
.bs-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.bs-tool{display:flex;align-items:stretch;gap:14px;padding:18px 20px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-soft);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;text-align:left;font:inherit;color:inherit;position:relative;overflow:hidden}
.bs-tool::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--tool-c,var(--zhu));opacity:.85}
.bs-tool:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--tool-c,var(--zhu))}
.bs-tool:focus-visible{outline:3px solid var(--tool-c,var(--zhu));outline-offset:2px}
.bs-tool-ico{width:46px;height:46px;flex:none;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--tool-c,var(--zhu)) 14%,#fff);color:var(--tool-c,var(--zhu));border-radius:12px;font-family:"Noto Serif SC",serif;font-size:22px;font-weight:700;border:1px solid color-mix(in srgb,var(--tool-c,var(--zhu)) 30%,#fff)}
.bs-tool-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.bs-tool-body strong{font-family:"Noto Serif SC",serif;font-size:16px;color:var(--ink);letter-spacing:1px}
.bs-tool-body small{font-size:13px;color:var(--zhu);font-weight:500;letter-spacing:1px}
.bs-tool-body em{font-style:normal;font-size:12px;color:var(--muted);letter-spacing:.5px;margin-top:2px}

/* ---- 子午流注 + 数据看板 并排 ---- */
.bs-band{display:grid;grid-template-columns:1.05fr .95fr;gap:22px;margin:36px 0 12px}
.bs-ziwu,.bs-stats{background:linear-gradient(180deg,#fdfaf3 0%,#f3ead8 100%);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:22px 24px}
.bs-zw-head,.bs-stats-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}
.bs-zw-head h3,.bs-stats-head h3{margin:0;font-family:"Noto Serif SC",serif;font-size:17px;color:var(--ink);letter-spacing:2px}
.bs-zw-head h3::before,.bs-stats-head h3::before{content:"✦ ";color:var(--zhu);font-size:14px;margin-right:2px}
.bs-zw-time{margin:0;font-family:"Noto Serif SC",serif;font-size:13px;color:var(--zhu);letter-spacing:1px}
.bs-zw-row{display:flex;align-items:center;gap:18px}
.bs-zw-svg{width:158px;height:158px;flex:none;display:block}
.bs-zw-svg text{font-family:"Noto Serif SC",serif}
.bs-zw-detail{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}
.bs-zw-item{display:flex;align-items:baseline;gap:10px;padding:6px 10px;background:rgba(255,255,255,.5);border:1px solid var(--line);border-radius:8px}
.bs-zw-label{flex:none;font-size:12px;color:var(--muted);letter-spacing:1px;width:42px}
.bs-zw-item strong{font-family:"Noto Serif SC",serif;font-size:15px;color:var(--zhu);letter-spacing:1px}
.bs-zw-item span{font-size:13px;color:var(--ink)}
.bs-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bs-stat{padding:18px 16px;background:rgba(255,255,255,.55);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:4px}
.bs-stat b{font-family:"Noto Serif SC",serif;font-size:30px;color:var(--zhu);font-weight:700;line-height:1;letter-spacing:1px}
.bs-stat small{font-size:13px;color:var(--ink);font-weight:600;letter-spacing:1.5px}
.bs-stat span{font-size:11.5px;color:var(--muted);line-height:1.55}

/* ---- 金句 + 页脚 ---- */
.bs-quote{margin:60px 0 28px;text-align:center}
.bs-quote-mark{display:block;font-family:"Noto Serif SC",serif;font-size:64px;color:var(--zhu);line-height:.7;opacity:.5}
.bs-quote-text{margin:0 auto;max-width:640px;font-family:"Noto Serif SC",serif;font-size:15.5px;color:var(--muted);line-height:1.9;letter-spacing:1px}
.bs-ft{margin:36px 0 0;padding-top:24px;border-top:1px solid var(--line);text-align:center}
.bs-ft p{margin:6px 0;font-size:12.5px;color:var(--muted);letter-spacing:1px}
.bs-ft code{font-family:"SFMono-Regular",Consolas,monospace;background:rgba(122,61,46,.08);padding:1px 6px;border-radius:4px;color:var(--zhu);font-size:12px}
.bs-ft-meta{font-size:11.5px;opacity:.7}

/* ---- 响应式 ---- */
@media (max-width:880px){
  .bs-hero-bullets{grid-template-columns:repeat(2,1fr)}
  .bs-tools{grid-template-columns:1fr 1fr}
  .bs-band{grid-template-columns:1fr}
  .bs-zw-row{flex-direction:column;align-items:flex-start}
  .bs-zw-svg{width:130px;height:130px}
}
@media (max-width:560px){
  .bs-head{flex-wrap:wrap}
  .bs-cta{margin-left:auto}
  .bs-hero-bullets{grid-template-columns:1fr}
  .bs-tools{grid-template-columns:1fr}
  .bs-stats-grid{grid-template-columns:1fr}
  .bookshelf-inner{padding:28px 16px 48px}
}
.bs-head{display:flex;align-items:center;gap:18px;margin-bottom:38px}
.bs-seal{width:64px;height:64px;border-radius:16px;
  background:linear-gradient(135deg,#b33a2e,var(--zhu));
  color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:32px;font-weight:700;flex:none;
  box-shadow:0 8px 20px rgba(159,47,36,.2)}
.bs-eyebrow{margin:0 0 4px;font-size:13px;color:var(--muted);letter-spacing:.6px}
.bs-title{margin:0;font-size:32px;font-weight:700;color:var(--ink);font-family:"Noto Serif SC",serif}
.bs-sub{margin:6px 0 0;font-size:14px;color:var(--muted)}
.bs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:800px;margin:0 auto}
.bs-card{display:flex;align-items:stretch;gap:0;text-align:left;
  background:linear-gradient(135deg,var(--card),#faf5eb);
  border:1px solid rgba(159,47,36,.1);border-radius:var(--radius);
  box-shadow:0 4px 20px -6px rgba(62,45,25,.08);
  cursor:pointer;transition:transform .25s ease,box-shadow .25s ease;overflow:hidden;padding:0;border:none;width:100%}
.bs-card:hover{transform:translateY(-5px);box-shadow:0 14px 36px -10px rgba(62,45,25,.15)}
.bs-card:focus-visible{outline:3px solid var(--book-color,var(--zhu));outline-offset:2px}
.bs-cover{width:110px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--book-bg,#f4ece2);position:relative;border-right:1px solid var(--line)}
.bs-cover-icon{font-size:56px;font-weight:700;color:var(--book-color,var(--zhu));font-family:"Noto Serif SC",serif;opacity:.9}
.bs-cover-spine{position:absolute;left:8px;top:0;bottom:0;width:4px;background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.14),rgba(0,0,0,.06))}
.bs-meta{flex:1;padding:18px 18px 20px;display:flex;flex-direction:column}
.bs-card-title{margin:0 0 4px;font-size:18px;font-weight:700;color:var(--ink);font-family:"Noto Serif SC",serif}
.bs-card-sub{margin:0 0 10px;font-size:13px;color:var(--muted)}
.bs-card-desc{margin:0 0 14px;font-size:13.5px;color:var(--muted);line-height:1.55;flex:1}
.bs-card-author{display:inline-block;align-self:flex-start;font-size:12px;color:var(--book-color,var(--zhu));background:var(--book-bg,#f4ece2);padding:4px 10px;border-radius:20px;font-weight:500}

/* ===== 书主页（同书双入口）===== */
/* ===== 书主页：居中弹窗（遮罩浮层）===== */
.book-home{position:fixed;inset:0;z-index:1100;display:flex;justify-content:center;align-items:flex-start;background:rgba(38,28,18,.45);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);padding:7vh 16px 7vh;overflow:auto}
.book-home[hidden]{display:none}
.bh-card{width:100%;max-width:800px;margin:auto;background:linear-gradient(180deg,#fbf7f0 0%,#f3ece0 100%);border:1px solid var(--line);border-radius:22px;box-shadow:0 30px 70px rgba(0,0,0,.35);padding:30px 32px 34px;position:relative}
.bh-close{position:absolute;top:14px;right:16px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--muted);font-size:20px;line-height:1;cursor:pointer;transition:all .15s ease}
.bh-close:hover{color:var(--ink);border-color:var(--zhu)}
.bh-back{font-family:"Noto Sans SC",sans-serif;font-size:14px;color:var(--muted);background:transparent;border:none;cursor:pointer;padding:6px 0;margin-bottom:18px}
.bh-back:hover{color:var(--zhu)}
.bh-head{display:flex;align-items:center;gap:20px;margin-bottom:16px}
.bh-cover{width:84px;height:84px;flex:none;border-radius:14px;background:var(--book-bg,#f4ece2);display:flex;align-items:center;justify-content:center;border:1px solid var(--line)}
.bh-cover-icon{font-size:44px;font-weight:700;color:var(--book-color,var(--zhu));font-family:"Noto Serif SC",serif}
.bh-eyebrow{margin:0 0 4px;font-size:12.5px;letter-spacing:.12em;color:var(--book-color,var(--zhu));font-weight:600}
.bh-title{margin:0;font-size:30px;font-weight:700;color:var(--ink);font-family:"Noto Serif SC",serif}
.bh-sub{margin:6px 0 0;font-size:14px;color:var(--muted)}
.bh-desc{margin:0 0 28px;font-size:14.5px;color:var(--muted);line-height:1.7;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}
/* 读法入口：auto-fit 让 2 / 3 / 4 格都排得整齐，不出现半行孤儿卡（2026-10-09） */
.bh-entries{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}
/* 命名冲突收口：lesson.css:84 有个通用 `.learn{background:var(--paper);min-height:70vh}`，
   会误伤这里的 `.bh-entry.learn`（两者特异性同为 0,1,0，lesson.css 后加载故胜出）。
   classroom.css 靠 `.bh-entry{min-height:0 !important}` 兜住了 PC 壳，手机壳没兜 →
   卡片被撑成 70vh 高。此处按结构选择器提高特异性，两个壳一次解决。 */
.bh-entries > .bh-entry{min-height:0}
.bh-entry{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;cursor:pointer;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px 22px 24px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;position:relative;overflow:hidden}
.bh-entry::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--line)}
.bh-entry.learn::before{background:#2a6b5b}
.bh-entry.tool::before{background:#9a5b2e}
.bh-entry.biji::before{background:#8a6a2e}
.bh-entry:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--book-color,var(--zhu))}
.bh-entry-ico{font-size:34px;line-height:1}
.bh-entry strong{font-size:20px;font-weight:700;color:var(--ink);font-family:"Noto Serif SC",serif}
.bh-entry small{font-size:13px;color:var(--book-color,var(--zhu));font-weight:600}
.bh-entry em{font-size:13px;color:var(--muted);font-style:normal}
.bh-entry.disabled{cursor:not-allowed;opacity:.55;background:var(--card)}
.bh-entry.disabled::before{background:var(--line)}
.bh-entry.disabled:hover{transform:none;box-shadow:none;border-color:var(--line)}
/* 原书扫描：整行轻条。原书是底本对照，不是第三条主读法，故不做等权卡 */
.bh-orig{display:flex;align-items:center;gap:12px;width:100%;margin-top:16px;padding:13px 18px;
  text-align:left;cursor:pointer;background:transparent;border:1px solid var(--line);border-radius:14px;
  font-family:inherit;transition:border-color .2s ease,background .2s ease}
.bh-orig:hover{border-color:var(--gold);background:rgba(212,160,74,.07)}
.bh-orig .bho-k{flex:none;font-size:14.5px;color:var(--ink);font-family:"Noto Serif SC",serif}
.bh-orig .bho-v{min-width:0;font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bh-orig .bho-arrow{margin-left:auto;flex:none;color:var(--gold);font-size:16px}
@media (max-width:600px){
  .bh-entries{grid-template-columns:1fr}
  .bh-head{gap:14px}
  .bh-orig .bho-v{white-space:normal}
}
@media (max-width:640px){
  .bookshelf-inner{padding:28px 16px 48px}
  .bs-head{flex-direction:column;align-items:flex-start;gap:12px}
  .bs-title{font-size:26px}
  .bs-cover{width:88px}
  .bs-cover-icon{font-size:42px}
  .bs-grid{grid-template-columns:1fr}
}

/* =========================================================================
 * 卡密商城 · 兑换弹层 / 试读横幅 / 助教剩余次数（会员体系）
 * ========================================================================= */
.nh-redeem{position:fixed;inset:0;z-index:9999;background:rgba(20,17,12,.62);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:18px}
.nh-redeem[hidden]{display:none}
.nh-redeem-card{width:min(560px,100%);background:var(--card,#f7f2e9);border:1px solid var(--line);border-radius:16px;padding:24px 24px 20px;box-shadow:var(--shadow,0 18px 50px rgba(0,0,0,.35));position:relative;max-height:92vh;overflow:auto}
.nh-sku-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.nh-sku-tabs button{
  flex:1; min-width:72px; font-size:12.5px; font-family:inherit; cursor:pointer;
  background:transparent; border:1px solid var(--line); color:var(--ink);
  border-radius:10px; padding:7px 8px;
}
.nh-sku-tabs button.on{border-color:var(--zhu,#a8762c); color:var(--zhu,#a8762c); background:rgba(168,118,44,.08)}
.nh-pay{margin:0 0 16px;padding-bottom:14px;border-bottom:1px dashed var(--line)}
.nh-pay-cause{margin:0 0 12px;font-size:13.5px;line-height:1.75;color:var(--muted,#8a8272)}
.nh-pay-cause[hidden]{display:none}
.nh-pay-price{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;margin:0 0 10px;padding:10px 14px;background:rgba(168,118,44,.07);border:1px solid rgba(168,118,44,.2);border-radius:12px}
.nh-pay-price:empty{display:none}
.nh-pay-now{font-size:26px;color:var(--zhu,#a8762c);font-weight:800}
.nh-pay-orig{color:var(--muted);font-size:12.5px}
.nh-pay-sla{display:none}
.nh-pay-mail-note{
  margin:0 0 14px;padding:10px 12px;border-radius:10px;
  color:#c0453a;font-size:13.5px;line-height:1.75;font-weight:600;
  background:rgba(192,69,58,.08);border:1px solid rgba(192,69,58,.4);
}
.nh-pay-mail-note[hidden]{display:none}
.nh-pay-tabs{display:none;grid-column:1 / -1;gap:10px;margin:0 0 4px}
.nh-pay-qrs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 12px}
.nh-pay-qr{margin:0;text-align:center;background:rgba(168,118,44,.05);border:1px dashed rgba(168,118,44,.35);border-radius:12px;padding:12px 10px 10px}
.nh-pay-qr img{width:150px;max-width:100%;height:150px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:10px}
.nh-pay-qr figcaption{font-size:12.5px;color:var(--ink);margin-top:8px;font-weight:700;letter-spacing:.04em}
.nh-pay-save{display:inline-block;margin-top:6px;font-size:11.5px;padding:5px 12px;border-radius:8px;cursor:pointer;background:transparent;color:var(--zhu,#a8762c);border:1px solid rgba(168,118,44,.55)}
.nh-pay-save:hover{background:rgba(168,118,44,.1)}
.nh-pay-how{grid-column:1 / -1;margin:0;font-size:12.5px;color:var(--muted);line-height:2;background:rgba(168,118,44,.05);border-left:3px solid var(--zhu,#a8762c);border-radius:0 10px 10px 0;padding:10px 14px}
.nh-pay-how b{display:block;color:var(--ink);font-size:13px;margin-bottom:2px}
.nh-pay-lab{display:block;font-size:12px;color:var(--muted);margin:8px 0 4px}
.nh-pay-ch{border:1px solid var(--line);background:var(--card,#fffdf8);color:var(--ink,#3d3226);border-radius:10px;padding:10px 12px;font-size:14px;font-family:inherit}
.nh-pay-ch option{background:var(--card,#fffdf8);color:var(--ink,#3d3226)}
.nh-pay-done{margin-top:10px;padding:10px 12px;background:rgba(168,118,44,.08);border-radius:10px;font-size:13.5px;line-height:1.6}
.nh-pay-done-hint{font-size:12px;color:var(--muted);margin:6px 0}
.nh-pay-msg{font-size:12.5px;color:var(--muted)}
.nh-pay-msg.ok{color:#2a6b5b}.nh-pay-msg.err{color:#a83a28}
.nh-pay-ghost{background:transparent;color:var(--zhu);border:1px solid var(--zhu)}
.nh-pay-miss{grid-column:1 / -1;margin:0;font-size:12.5px;color:var(--muted);background:rgba(168,58,40,.06);border:1px dashed rgba(168,58,40,.35);border-radius:10px;padding:10px 14px}
.nh-redeem-card h3{margin:0 0 6px;font-family:"Noto Serif SC",serif;font-size:21px;color:var(--ink)}
.nh-redeem-hint{margin:0 0 14px;font-size:13px;color:var(--muted);line-height:1.6;min-height:0}
.nh-redeem-card input{width:100%;border:1px solid var(--line);background:var(--card,#fffdf8);border-radius:10px;padding:12px 14px;font-size:15px;letter-spacing:.06em;color:var(--ink,#3d3226);outline:none;font-family:inherit}
.nh-redeem-card input::placeholder{color:var(--muted,#9a8f7c);opacity:1}
.nh-redeem-card input:focus{border-color:var(--zhu)}
.nh-redeem-row{display:flex;align-items:center;gap:12px;margin-top:14px}
.nh-redeem-go{cursor:pointer;border:none;border-radius:10px;padding:11px 22px;background:var(--zhu);color:#fff8ee;font-size:14.5px;font-weight:700;letter-spacing:.08em}
.nh-redeem-go:hover{filter:brightness(1.08)}
.nh-redeem-msg{font-size:12.5px;color:var(--muted)}
.nh-redeem-msg.ok{color:#2a6b5b}.nh-redeem-msg.err{color:#a83a28}
.nh-redeem-tip{margin:16px 0 0;font-size:11.5px;color:var(--muted);opacity:.85;line-height:1.6;border-top:1px dashed var(--line);padding-top:12px}
.nh-redeem-x{position:absolute;top:10px;right:12px;background:none;border:none;font-size:24px;line-height:1;color:var(--muted);cursor:pointer}
.nh-redeem-x:hover{color:var(--ink)}
.nh-redeem-kept[hidden]{display:none}
.nh-redeem-kept{margin:4px 0 0;text-align:center}
.nh-kept-kicker{margin:0 0 10px;font-size:14px;font-weight:700;color:#2a6b5b}
.nh-kept-code{
  margin:0 0 12px;padding:16px 14px;
  font-size:22px;font-weight:800;letter-spacing:.1em;line-height:1.45;
  word-break:break-all;user-select:all;-webkit-user-select:all;
  background:rgba(168,118,44,.1);border:1px dashed var(--zhu,#a8762c);
  border-radius:12px;color:var(--ink);
  font-family:ui-monospace,Consolas,monospace;
}
.nh-kept-actions{justify-content:center;flex-wrap:wrap;margin-top:0}
.nh-kept-hint{margin:14px 0 8px;font-size:13.5px;line-height:1.75;color:var(--ink);text-align:left}
.nh-kept-warn{margin:0 0 10px;font-size:13.5px;line-height:1.7;color:#a83a28;text-align:left;font-weight:700}
.nh-kept-mail{margin:0;font-size:12.5px;color:var(--muted);line-height:1.6}
/* 体质检测提醒（2026-09-23）：这是新会员权益，不能跟上面几条灰字提示糊在一起，
   用金色描边块单独拎出来。 */
.nh-kept-const{margin:10px 0 0;padding:9px 11px;font-size:12.5px;line-height:1.7;color:#f3d9a0;
  background:rgba(212,160,74,.10);border:1px solid rgba(212,160,74,.34);border-radius:10px}

/* 导航栏 · 赞助入口（后台开启付费墙或扫码赞助、且**当前是游客**时由 app.js 显示）
   2026-09-17 站主定案：已登录后不再显示会员态文案 —— 身份/档位/续费已集中在右上角
   「我的」胶囊（见下方 .nm-plan），导航这条与弹层「续费 / 加点数」还是同一个出口。
   ⛔ 但游客态必须保留：这是全站唯一常驻的赞助转化位，不要为了精简导航删除它。
   设计史：原为虚线暗金(rgba(168,118,44,.65)/#8a6a33)的「次要按钮」处理，站主实测反馈
   偏灰不醒目 → 改为实线亮金描边（站内主金 #d4a04a 体系）。 */
.nav .nav-redeem{border:1px solid #d4a04a;color:#f0c675;background:rgba(212,160,74,.14);font-weight:600}
.nav .nav-redeem:hover,.nav .nav-redeem:focus-visible{border-color:#e0b45c;color:#ffe0a0;background:rgba(212,160,74,.24)}

/* 「我的」胶囊内的会员档位小字（年卡剩 N 天 / 体验剩 N 天 / 已过期 · 续费）
   2026-09-17：接管原导航「✦ 我的会员」承载的身份信息，样式与胶囊内的金色体系一致。 */
.hd #nav-mine .nm-plan{margin-left:8px;padding-left:8px;border-left:1px solid rgba(255,255,255,.35);
  color:#ffd98a;font-size:12.5px;font-weight:400;white-space:nowrap}

/* 「登录 / 我的」按钮：PC 上是 .hd grid 的第二列（brand 右），hero-meta 三胶囊挪到导航行末 */
@media (min-width:761px){
  .hd #nav-mine{
    justify-self:end;align-self:center;
    background:var(--zhu);border-color:var(--zhu);color:#fff;font-weight:600;
    padding:8px 18px;box-shadow:0 4px 12px rgba(159,47,36,.22)}
  .hd #nav-mine:hover,.hd #nav-mine:focus-visible{background:#8e2a22;border-color:#8e2a22;
    color:#fff;box-shadow:0 6px 16px rgba(159,47,36,.3);transform:translateY(-1px)}
  /* hero-meta 在 .nav 内右端 */
  .nav .hero-meta{margin-left:auto;align-self:center}
}
@media (max-width:760px){
  /* 窄屏：hero-meta 隐藏；登录按钮回导航最右（app.html 壳另有自己的底栏「我的」） */
  .nav .hero-meta{display:none}
  .nav #nav-mine{margin-left:auto}
  /* 注：档位小字（.nm-plan）在窄屏**不隐藏** —— 实测 760px 下胶囊整行 717px、小字仅 95px，
     空间充裕且信息更全；曾按「窄屏放不下」的猜测写 display:none，被实测证伪后撤除。 */
}

/* ===== 本书前言（books/intros.js；书主页按钮 + 课程列表前言卡 + 前言浮层）=====
   浮层卡片复用 .bh-card——注意 PC 壳 classroom.css 与手机壳 app-shell.css 都会把它
   重定义成深色卡，所以内部配色一律走主题变量（--ink/--gold/--zhu/--card/--line），
   明暗两种卡底都成立；不要用固定纸面色值。
   手机壳 .nx-book p 会把进书状态下所有段落压成单行省略号，浮层段落必须显式顶回。 */
.bh-intro-btn{display:flex;align-items:center;gap:14px;width:100%;text-align:left;cursor:pointer;
  background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 18px;margin:0 0 24px;
  transition:border-color .15s ease,box-shadow .15s ease}
.bh-intro-btn:hover{border-color:var(--gold);box-shadow:var(--shadow)}
.bh-intro-btn .bhi-seal{flex:none;width:42px;height:42px;border:1.5px solid var(--zhu);border-radius:8px;
  color:var(--zhu);font-size:21px;font-weight:700;display:flex;align-items:center;justify-content:center;
  font-family:"Noto Serif SC",serif}
.bh-intro-btn .bhi-txt{min-width:0}
.bh-intro-btn strong{display:block;font-size:15.5px;color:var(--ink);font-family:"Noto Serif SC",serif}
.bh-intro-btn small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;
  white-space:normal;overflow:visible;text-overflow:clip}
.bh-intro-btn .bhi-arrow{margin-left:auto;color:var(--gold);font-size:18px;flex:none}

/* 课程列表（PC）前言横幅：坐在页底色上，跟主题变量走 */
.bi-hub-banner{display:flex;align-items:center;gap:16px;width:100%;text-align:left;cursor:pointer;
  margin:0 0 26px;padding:16px 20px;background:var(--card);border:1px solid var(--line);
  border-left:3px solid var(--zhu);border-radius:14px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.bi-hub-banner:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--gold)}
.bi-hub-banner strong{display:block;font-size:16px;color:var(--ink);font-family:"Noto Serif SC",serif}
.bi-hub-banner small{display:block;font-size:12.5px;color:var(--muted);margin-top:3px}
.bi-hub-banner .bi-hub-arrow{margin-left:auto;color:var(--gold);font-size:18px;flex:none}
.bi-seal{flex:none;width:56px;height:56px;border:2px solid var(--zhu);border-radius:10px;color:var(--zhu);
  font-size:28px;font-weight:700;display:flex;align-items:center;justify-content:center;font-family:"Noto Serif SC",serif}
.bi-seal-sm{width:44px;height:44px;font-size:22px;border-width:1.5px}

/* 前言浮层内容（主题变量配色）；PC 壳 classroom.css 把 .bh-card 压到 560×420，
   前言是长文，放宽到 720×88vh 滚动 */
.bi-card{color:var(--ink);width:min(720px,100%) !important;max-width:720px !important;
  max-height:min(88vh,820px) !important;overflow:auto}
.bi-card .bi-head{display:flex;align-items:center;gap:16px;margin:6px 0 24px}
.bi-card .bi-title{margin:0;font-size:26px;font-weight:700;color:var(--ink);font-family:"Noto Serif SC",serif}
.bi-card .bi-tagline{margin:4px 0 0;font-size:13.5px;color:var(--gold);letter-spacing:.25em}
.bi-card .bi-body p{margin:0 0 14px;font-size:15px;line-height:1.95;text-align:justify;
  white-space:normal;overflow:visible;text-overflow:clip}
.bi-card .bi-key p{white-space:normal;overflow:visible;text-overflow:clip}
.bi-card .bi-body b,.bi-card .bi-body strong{color:var(--gold)}
.bi-sec{margin:0 0 26px}
.bi-sec h3{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:17px;color:var(--gold);font-family:"Noto Serif SC",serif}
.bi-sec h3 .no{flex:none;font-size:11.5px;color:var(--zhu);border:1px solid var(--zhu);border-radius:4px;
  padding:1px 7px;letter-spacing:.2em;font-weight:400}
.bi-quote{margin:14px 0;padding:14px 18px;background:var(--card);border:1px solid var(--line);
  border-left:3px solid var(--zhu);border-radius:0 8px 8px 0;font-size:14.5px;line-height:1.95;color:var(--ink)}
.bi-quote .who{display:block;margin-top:6px;font-size:12.5px;color:var(--muted);letter-spacing:.1em}
.bi-pts{margin:0;padding:0;list-style:none}
.bi-pts li{position:relative;padding-left:20px;margin-bottom:10px;font-size:15px;line-height:1.9;text-align:justify}
.bi-pts li::before{content:"";position:absolute;left:2px;top:13px;width:6px;height:6px;background:var(--gold);
  border-radius:1px;transform:rotate(45deg);opacity:.8}
.bi-keys{display:flex;flex-direction:column;gap:12px;margin-top:4px}
.bi-key{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px 10px}
.bi-key .kt{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.bi-key .kt .zi{flex:none;width:30px;height:30px;border-radius:6px;display:flex;align-items:center;justify-content:center;
  font-size:15px;font-weight:700;font-family:"Noto Serif SC",serif}
.bi-key.k1 .zi{color:var(--gold);border:1px solid var(--gold)}
.bi-key.k2 .zi{color:var(--zhu);border:1px solid var(--zhu)}
.bi-key.k3 .zi{color:var(--green);border:1px solid var(--green)}
.bi-key .kt b{font-size:15.5px;color:var(--ink)}
.bi-key p{margin:0;font-size:14.5px;line-height:1.9;text-align:justify}
.bi-path{color:var(--green)}
.bi-path .nw{white-space:nowrap}
.bi-disclaim{margin-top:26px;padding-top:16px;border-top:1px dashed var(--line);font-size:12.5px;line-height:1.9;
  color:var(--muted);text-align:center}
/* 浮层底部动作区：进入学习（金渐变主按钮）+ 关闭 */
.bi-foot{display:flex;gap:12px;align-items:stretch;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.bi-cta{flex:1;min-height:50px;border:none;border-radius:999px;cursor:pointer;
  font-size:16.5px;font-weight:700;letter-spacing:.3em;text-indent:.3em;color:#3a2408;
  background:linear-gradient(180deg,#e8c07a,#d4a04a);font-family:"Noto Serif SC",serif;
  box-shadow:0 4px 18px rgba(212,160,74,.25);transition:transform .15s ease,box-shadow .15s ease}
.bi-cta:hover{transform:translateY(-2px);box-shadow:0 8px 26px rgba(212,160,74,.38)}
.bi-cta:active{transform:translateY(0)}
.bi-ghost{flex:none;padding:0 26px;border-radius:999px;border:1px solid var(--line);background:transparent;
  color:var(--muted);font-size:14.5px;letter-spacing:.2em;text-indent:.2em;cursor:pointer;
  font-family:"Noto Serif SC",serif;transition:color .15s ease,border-color .15s ease}
.bi-ghost:hover{color:var(--ink);border-color:var(--gold)}
@media (max-width:420px){
  .bi-foot{flex-wrap:wrap}
  .bi-cta{flex:1 1 100%}
  .bi-ghost{flex:1 1 100%;min-height:44px}
}
@media (max-width:560px){
  .bi-card .bi-title{font-size:22px}
  .bi-card .bi-seal{width:46px;height:46px;font-size:23px}
  .bh-intro-btn .bhi-txt strong{font-size:14.5px}
}
