:root{
  --bg:#f6f7f9; --card:#ffffff; --ink:#1c2330; --sub:#5b6472;
  --accent:#1f5eff; --accent-soft:#e8efff; --line:#e4e8ee;
  --good:#0a8a4a; --good-soft:#e6f6ee; --warn:#c2410c; --warn-soft:#fff1e8;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{background:var(--bg); color:var(--ink); font:16px/1.75 -apple-system,"Segoe UI","Microsoft YaHei",sans-serif; padding:24px 16px 60px;}
.wrap{max-width:860px; margin:0 auto;}
.top{margin-bottom:20px;}
.top a{color:var(--accent); text-decoration:none; font-size:14px;}
.top h1{font-size:22px; margin:6px 0 4px;}
.top p{color:var(--sub); font-size:14px;}
h2{font-size:18px; margin:28px 0 10px; padding-left:10px; border-left:4px solid var(--accent);}
h3{font-size:16px; margin:18px 0 8px;}
table{width:100%; border-collapse:collapse; background:var(--card); border:1px solid var(--line); border-radius:10px; overflow:hidden; margin:10px 0 16px; font-size:14px;}
th,td{border-bottom:1px solid var(--line); padding:8px 10px; text-align:left; vertical-align:top;}
th{background:var(--accent-soft); color:var(--ink); font-weight:600;}
tr:last-child td{border-bottom:none;}
td b{color:var(--accent);}
.tip{background:var(--good-soft); border-left:4px solid var(--good); border-radius:8px; padding:10px 14px; margin:12px 0; font-size:14px;}
.warn{background:var(--warn-soft); border-left:4px solid var(--warn); border-radius:8px; padding:10px 14px; margin:12px 0; font-size:14px;}
.formula{background:#0f172a; color:#e2e8f0; border-radius:10px; padding:12px 16px; margin:10px 0; font:15px/1.9 Consolas,"Courier New",monospace; overflow-x:auto;}
.formula em{color:#7dd3fc; font-style:normal;}
ol.steps{margin:8px 0 14px 22px; font-size:15px;}
ol.steps li{margin:4px 0;}
ul.pts{margin:8px 0 14px 22px; font-size:15px;}
ul.pts li{margin:3px 0;}
.card{background:var(--card); border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin:10px 0;}
.card h4{font-size:15px; margin-bottom:4px; color:var(--accent);}
.card p{font-size:14px; color:var(--sub);}
.quiz{background:var(--card); border:1px solid var(--line); border-radius:12px; padding:14px 16px; margin:12px 0; font-size:15px;}
.quiz label{display:block; padding:6px 10px; border:1px solid var(--line); border-radius:8px; margin:6px 0; cursor:pointer; font-size:14px;}
.quiz label.right{border-color:var(--good); background:var(--good-soft);}
.quiz label.wrong{border-color:var(--warn); background:var(--warn-soft);}
.quiz .fb{display:block; font-size:13px; margin-top:6px; min-height:18px;}
.quiz .fb.ok{color:var(--good);}
.quiz .fb.no{color:var(--warn);}
.nav{display:flex; justify-content:space-between; margin-top:34px; padding-top:16px; border-top:1px solid var(--line);}
.nav a{color:var(--accent); text-decoration:none; font-size:14px;}
.mnemo{background:var(--accent-soft); border-radius:10px; padding:12px 16px; margin:12px 0; font-size:15px;}
.mnemo b{color:var(--accent);}
.fig{background:var(--card); border:1px solid var(--line); border-radius:12px; padding:8px; margin:14px 0; text-align:center;}
.fig img{max-width:100%; height:auto; border-radius:8px;}
.fig figcaption{font-size:12.5px; color:var(--sub); margin-top:6px; text-align:left; padding:0 6px;}
details{background:var(--card); border:1px solid var(--line); border-radius:12px; padding:12px 16px; margin:12px 0;}
details summary{cursor:pointer; font-weight:600; color:var(--accent); font-size:15px; user-select:none;}
details .case{border-top:1px dashed var(--line); margin-top:10px; padding-top:10px; font-size:14px;}
details .case h4{color:var(--accent); font-size:14px; margin:10px 0 4px;}
details .case p{color:var(--sub); white-space:pre-line;}
details .case p.ans{color:var(--good);}
@media (max-width:560px){ table{font-size:13px;} th,td{padding:6px 7px;} }
