
:root{
  --bg:#fbfaf7; --fg:#1f2328; --muted:#6b7280; --line:#e5e2db;
  --card:#ffffff; --accent:#b45309; --accent-soft:#fdf3e7;
  --code-bg:#1c2128; --code-fg:#e6edf3; --sidebar:#f6f4ef;
}
@media (prefers-color-scheme: dark){
  :root{ --bg:#15171a; --fg:#e6e4df; --muted:#9aa0a6; --line:#2c3035;
    --card:#1c1f23; --accent:#f0a25a; --accent-soft:#2a231b; --sidebar:#1a1d21;
    --code-bg:#0f1216; --code-fg:#dfe6ee; }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  font-size:17px;line-height:1.85;text-rendering:optimizeLegibility}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;
  height:48px;padding:0 16px;background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{font-weight:600;color:var(--fg);letter-spacing:.02em}
.repo{margin-left:auto;font-size:13px;color:var(--muted)}
.menu-btn{display:none;border:1px solid var(--line);background:var(--card);color:var(--fg);
  border-radius:8px;padding:4px 10px;font-size:13px}
.progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:transparent}
.progress i{display:block;height:2px;width:0;background:var(--accent)}
.layout{display:flex;align-items:flex-start;max-width:1240px;margin:0 auto}
.sidebar{position:sticky;top:48px;flex:0 0 286px;height:calc(100vh - 48px);overflow-y:auto;
  padding:22px 18px 60px;border-right:1px solid var(--line);background:var(--sidebar)}
.side-head{margin-bottom:16px}
.book-title{font-weight:700;font-size:15px}
.book-sub{font-size:12px;color:var(--muted);margin-top:3px}
.toc-ch{margin:1px 0;border-radius:7px}
.toc-ch>a{display:block;padding:6px 8px;font-size:13.5px;color:var(--fg);line-height:1.5}
.toc-ch.active{background:var(--accent-soft)}
.toc-ch.active>a{color:var(--accent);font-weight:600}
.toc-sub{list-style:none;margin:2px 0 8px;padding:0 0 0 8px}
.toc-sub a{display:block;padding:3px 8px;font-size:12.5px;color:var(--muted);line-height:1.5;
  border-left:2px solid var(--line)}
.toc-sub li.l3 a{padding-left:18px}
.toc-sub a:hover{color:var(--accent);border-left-color:var(--accent)}
.main{flex:1;min-width:0;padding:40px 46px 80px}
.chapter{max-width:44em;margin:0 auto}
h1{font-size:1.9em;line-height:1.35;margin:.2em 0 1em;letter-spacing:-.01em}
h2{font-size:1.3em;margin:2.2em 0 .7em;line-height:1.4;padding-top:.2em}
h3{font-size:1.08em;margin:1.8em 0 .5em;color:var(--fg)}
h2 .num,h3 .num{color:var(--accent);font-weight:600;margin-right:.55em;font-variant-numeric:tabular-nums}
p{margin:0 0 1.05em}
strong{font-weight:650}
ul,ol{margin:0 0 1.05em;padding-left:1.5em}
li{margin:.25em 0}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  font-size:.88em;background:color-mix(in srgb,var(--fg) 7%,transparent);
  padding:.12em .38em;border-radius:4px;word-break:break-word}
pre{background:var(--code-bg);color:var(--code-fg);padding:16px 18px;border-radius:10px;
  overflow-x:auto;margin:1.2em 0;line-height:1.6}
pre code{background:none;padding:0;font-size:13px;color:inherit;white-space:pre}
.table-wrap{overflow-x:auto;margin:1.2em 0;border:1px solid var(--line);border-radius:10px}
table{border-collapse:collapse;width:100%;font-size:14.5px;line-height:1.65}
th,td{border-bottom:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top}
th{background:color-mix(in srgb,var(--fg) 4%,transparent);font-weight:600;white-space:nowrap}
tr:last-child td{border-bottom:none}
.checklist{list-style:none;padding-left:0}
.checklist li{display:flex;gap:.55em;margin:.45em 0}
.checklist .box{color:var(--accent);font-size:1.05em;line-height:1.6}
blockquote{margin:1.2em 0;padding:.2em 1em;border-left:3px solid var(--line);color:var(--muted)}
.pager{display:flex;gap:14px;max-width:44em;margin:56px auto 0;padding-top:22px;border-top:1px solid var(--line)}
.pager a,.pager span{flex:1;display:flex;flex-direction:column;gap:4px;padding:12px 14px;
  border:1px solid var(--line);border-radius:10px;font-size:14px;color:var(--fg)}
.pager a span{font-size:12px;color:var(--muted)}
.pager .next{text-align:right}
.pager .disabled{border-color:transparent;background:none}
.pager a:hover{border-color:var(--accent);text-decoration:none}
.foot{text-align:center;color:var(--muted);font-size:12.5px;margin-top:46px}
.scrim{display:none}
.home .hero{border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--accent-soft),transparent 70%)}
.wrap{max-width:980px;margin:0 auto;padding:0 24px}
.hero .wrap{padding:76px 24px 54px}
.hero h1{font-size:2.6em;margin:0 0 .35em}
.hero .sub{color:var(--muted);font-size:1.05em;margin:0 0 1.4em}
.hero .intro{max-width:38em;margin:0 0 1.2em}
.hero .meta{color:var(--muted);font-size:13px;margin:0}
.sec{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
  margin:52px 0 18px;font-weight:600}
.cards{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.card-title{display:flex;gap:12px;align-items:baseline;font-weight:600;color:var(--fg);font-size:1.02em}
.card-title .no{font-variant-numeric:tabular-nums;color:var(--accent);font-size:.9em}
.card-sub{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:2px}
.card-sub a{font-size:13.5px;color:var(--muted)}
.card-sub a:hover{color:var(--accent)}
@media (max-width:900px){
  .menu-btn{display:inline-block}
  .sidebar{position:fixed;left:0;top:0;bottom:0;z-index:40;width:290px;height:100%;
    transform:translateX(-100%);transition:transform .22s ease;padding-top:18px}
  body.nav-open .sidebar{transform:none}
  body.nav-open .scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:35}
  .main{padding:26px 20px 70px}
  h1{font-size:1.6em}
  .hero .wrap{padding:52px 20px 40px}
}
@media print{
  .topbar,.sidebar,.pager,.scrim{display:none}
  .main{padding:0}
  pre{white-space:pre-wrap;word-break:break-all}
  a{color:inherit}
}
