:root{
  --bg:#fffff8; --ink:#141414; --muted:#5a5a52; --rule:#d8d8c8;
  --accent:#8a1c1c; --accent2:#1b4a6b; --chip:#eceadd; --code:#f4f2e6;
  --ok:#1e7a3d; --okbg:#e6f3ea; --no:#a32020; --nobg:#f7e7e7; --hi:#fff3b0;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--bg); color:var(--ink);
  font-family:Georgia,Cambria,"Songti SC","STSong","SimSun",serif;
  line-height:1.62; font-size:18.5px;
  max-width:46rem; margin:0 auto; padding:2.6rem 1.4rem 6rem;
}
.sans{font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif}
header{border-bottom:2px solid var(--ink); padding-bottom:.9rem; margin-bottom:1.4rem}
.topline{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.5rem}
.kicker{font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); font-weight:700}
.badge{font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif; font-size:.66rem;
  background:var(--accent); color:#fff; padding:.2em .6em; border-radius:10px; letter-spacing:.05em}
h1{font-size:2rem; margin:.5rem 0 .3rem; line-height:1.12}
.sub{color:var(--muted); font-size:.97rem; font-style:italic}
h2{font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;
  font-size:1.16rem; margin:2.5rem 0 .6rem; padding-left:.6rem; border-left:4px solid var(--accent)}
h3{font-size:1.05rem; margin:1.4rem 0 .3rem}
p{margin:.7rem 0}
a{color:var(--accent)}
strong{font-weight:700}
em.t{font-style:normal; background:var(--hi); padding:0 .15em; border-radius:2px}
code,.kw{background:var(--code); padding:.05em .35em; border-radius:3px;
  font-family:"Consolas","SFMono-Regular",Menlo,monospace; font-size:.85em}
pre{background:var(--code); border:1px solid var(--rule); border-radius:8px; padding:.9rem 1.1rem; overflow:auto;
  font-family:"Consolas","SFMono-Regular",Menlo,monospace; font-size:.86em; line-height:1.5}
table.grid{border-collapse:collapse; margin:1rem 0; font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif; font-size:.9rem}
table.grid th,table.grid td{border:1px solid var(--rule); padding:.4rem .7rem; text-align:center}
table.grid th{background:var(--chip)}
table.grid td.lab{background:var(--chip); font-weight:700}
.goal{background:var(--okbg); border:1px solid #bfe0c8; border-radius:10px; padding:1rem 1.2rem; margin:1.2rem 0}
.goal .h{font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif; font-weight:700; color:var(--ok); font-size:.95rem; margin-bottom:.2rem}
.why{border-left:4px solid var(--accent2); background:#eef4f8; padding:.7rem 1.1rem; margin:1.1rem 0; font-size:.96rem}
.card{border:1.5px solid var(--ink); border-radius:10px; padding:1rem 1.2rem; margin:1.3rem 0; background:#fffefb}
.card .h{font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif; font-weight:700; letter-spacing:.03em;
  font-size:.8rem; text-transform:uppercase; color:var(--accent); margin-bottom:.5rem}
.worked{background:#faf7ec; border:1px solid var(--rule); border-radius:10px; padding:.4rem 1.2rem 1rem; margin:1.2rem 0}
.worked .qh{font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif; font-weight:700; color:var(--accent2); margin-top:1rem}
.worked .ans{border-top:1px dashed var(--rule); margin-top:.7rem; padding-top:.5rem}
.tip{font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif; font-size:.84rem; color:var(--muted); margin-top:.5rem}
.quiz{margin:1.4rem 0}
.quiz-q{border:1px solid var(--rule); border-radius:10px; padding:1rem 1.2rem; margin:1rem 0; background:#fff}
.quiz-q .qn{font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif; font-weight:700; font-size:.97rem}
.opts{display:grid; grid-template-columns:1fr 1fr; gap:.5rem; margin:.8rem 0 .2rem}
@media(max-width:480px){ .opts{grid-template-columns:1fr} }
.opt{font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif; font-size:.95rem;
  text-align:left; padding:.55rem .8rem; border:1.5px solid #cfcdbe; border-radius:8px;
  background:#fcfbf4; cursor:pointer; transition:.12s; color:var(--ink)}
.opt:hover:not(:disabled){border-color:var(--accent); background:#fff}
.opt:disabled{cursor:default}
.opt.correct{background:var(--okbg); border-color:var(--ok); color:var(--ok); font-weight:700}
.opt.wrong{background:var(--nobg); border-color:var(--no); color:var(--no)}
.explain{display:none; font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;
  font-size:.86rem; color:var(--muted); margin-top:.6rem; padding-top:.5rem; border-top:1px dashed var(--rule)}
.explain.show{display:block}
.quizbar{display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin:1rem 0}
.score{font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif; font-weight:700}
button.tool{font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif; font-size:.82rem;
  background:var(--ink); color:#fff; border:none; border-radius:7px; padding:.45rem .9rem; cursor:pointer}
button.tool.ghost{background:#fff; color:var(--ink); border:1.5px solid var(--ink)}
.mnem{text-align:center; font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;
  font-size:1.15rem; letter-spacing:.02em; background:var(--hi); border-radius:10px; padding:1rem; margin:1.2rem 0; font-weight:700}
sup a{text-decoration:none; font-size:.7em; color:var(--accent); font-weight:700}
.src{background:var(--chip); border-radius:10px; padding:1rem 1.2rem; margin:1.4rem 0; font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif; font-size:.9rem}
.refs{font-size:.8rem; color:var(--muted); border-top:1px solid var(--rule); margin-top:2.4rem; padding-top:.8rem}
.refs li{margin:.3rem 0}
.ask{border:1.5px dashed var(--accent); border-radius:10px; padding:.9rem 1.2rem; margin:1.6rem 0;
  font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif; font-size:.93rem; background:#fff7f5}
nav.foot{display:flex; justify-content:space-between; gap:1rem; margin-top:2.4rem; padding-top:1rem;
  border-top:2px solid var(--ink); font-family:-apple-system,"Segoe UI","Microsoft YaHei",sans-serif; font-size:.9rem}
@media print{
  body{font-size:11pt; max-width:none; padding:0}
  a{color:var(--ink); text-decoration:none}
  .opt{border:1px solid #999} button.tool{display:none}
  .explain{display:block} h2{break-after:avoid}
  .badge{border:1px solid #000; color:#000; background:none}
  pre,.worked,.card,.quiz-q,table.grid{break-inside:avoid}
}
