
:root{
  --bg:#f6f8fc; --paper:#ffffff; --ink:#1f2933; --muted:#5b6776;
  --brand:#2563eb; --brand-soft:#e8f0fe; --accent:#0ea5a4; --warn:#d97706;
  --border:#e6ebf2; --soft:#f1f5f9; --code-bg:#f4f6fb; --quote:#eef4ff;
  --sidebar-w:288px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  line-height:1.85; font-size:17px;
}
a{color:var(--brand); text-decoration:none;}
a:hover{text-decoration:underline;}

/* 布局 */
.layout{display:flex; min-height:100vh;}
.sidebar{
  width:var(--sidebar-w); flex:0 0 var(--sidebar-w);
  background:var(--paper); border-right:1px solid var(--border);
  position:fixed; top:0; left:0; bottom:0; overflow-y:auto; padding:22px 14px 40px;
}
.side-brand{font-weight:800; font-size:16px; padding:6px 12px 16px; color:var(--brand);}
.side-brand a{color:var(--brand);}
.toc-group{margin-bottom:18px;}
.toc-group-title{
  font-size:12px; letter-spacing:1px; color:var(--muted);
  font-weight:700; padding:6px 12px; text-transform:uppercase;
}
.toc a{
  display:block; padding:7px 12px; border-radius:8px; color:var(--ink);
  font-size:14.5px; line-height:1.45; margin:2px 0;
}
.toc a:hover{background:var(--soft); text-decoration:none;}
.toc a.active{background:var(--brand-soft); color:var(--brand); font-weight:600;}

.content{margin-left:var(--sidebar-w); flex:1; min-width:0; display:flex; flex-direction:column;}
.topbar{
  display:none; position:sticky; top:0; z-index:5;
  background:var(--paper); border-bottom:1px solid var(--border);
  padding:10px 16px; align-items:center; gap:12px; font-weight:600;
}
.menu-btn{border:none; background:transparent; font-size:22px; cursor:pointer; color:var(--ink);}
.chapter{
  max-width:820px; margin:0 auto; width:100%;
  padding:42px 32px 24px; background:var(--paper);
  flex:1; min-height:60vh;
}
.chapter-title{font-size:28px; line-height:1.35; margin:0 0 22px; padding-bottom:14px; border-bottom:2px solid var(--brand-soft);}
.chapter h2{font-size:23px; margin:34px 0 12px;}
.chapter h3{font-size:19px; margin:26px 0 10px; color:#27364a;}
.chapter h4{font-size:16.5px; margin:20px 0 8px; color:#33415a;}
.chapter p{margin:14px 0;}
.chapter ul,.chapter ol{padding-left:26px; margin:14px 0;}
.chapter li{margin:6px 0;}
.chapter hr{border:none; border-top:1px solid var(--border); margin:30px 0;}

/* 表格 */
.chapter table{border-collapse:collapse; width:100%; margin:18px 0; font-size:15px;}
.chapter th,.chapter td{border:1px solid var(--border); padding:9px 12px; text-align:left; vertical-align:top;}
.chapter th{background:var(--soft); font-weight:700;}
.chapter tr:nth-child(even) td{background:#fafcff;}

/* 引用 / 提示框 */
.chapter blockquote{
  margin:18px 0; padding:12px 18px; background:var(--quote);
  border-left:4px solid var(--brand); border-radius:0 8px 8px 0; color:#22324a;
}
.chapter blockquote p{margin:6px 0;}

/* 代码 */
.chapter pre{
  background:var(--code-bg); border:1px solid var(--border); border-radius:10px;
  padding:14px 16px; overflow:auto; font-size:14px; line-height:1.6; margin:16px 0;
}
.chapter code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace; font-size:.92em;}
.chapter :not(pre) > code{background:var(--code-bg); padding:2px 6px; border-radius:5px; border:1px solid var(--border);}
.chapter .mermaid{display:flex; justify-content:center; margin:22px 0; background:#fff; padding:10px; border:1px solid var(--border); border-radius:10px; overflow:auto;}

/* mini TOC */
.mini-toc{
  background:var(--soft); border:1px solid var(--border); border-radius:10px;
  padding:10px 16px; margin:8px 0 26px; font-size:14.5px;
}
.mini-toc summary{cursor:pointer; font-weight:700; color:var(--muted);}
.mini-toc ul{list-style:none; padding-left:0; margin:8px 0 2px;}
.mini-toc li{padding:3px 0;}
.mini-toc li.lvl-3{padding-left:14px;}
.mini-toc li.lvl-4{padding-left:28px; font-size:13.5px; color:var(--muted);}
.mini-toc a{color:var(--ink);}

/* 分页 */
.pager{display:flex; justify-content:space-between; gap:12px; max-width:820px; margin:0 auto; width:100%; padding:24px 32px 56px;}
.pager a{
  flex:1; padding:14px 18px; border:1px solid var(--border); border-radius:10px;
  background:var(--paper); color:var(--ink); font-weight:600; text-align:center;
}
.pager a:hover{background:var(--brand-soft); text-decoration:none; border-color:var(--brand);}

.scrim{display:none;}

/* 首页 */
.cover{
  background:linear-gradient(135deg,#1e3a8a 0%,#2563eb 55%,#0ea5a4 100%);
  color:#fff; padding:72px 20px 60px; text-align:center;
}
.cover-inner{max-width:720px; margin:0 auto;}
.cover-badge{display:inline-block; letter-spacing:3px; font-size:12px; opacity:.85; border:1px solid rgba(255,255,255,.5); padding:5px 14px; border-radius:999px; margin-bottom:18px;}
.cover h1{font-size:36px; line-height:1.3; margin:0 0 14px; font-weight:800;}
.cover-sub{font-size:17px; opacity:.95; margin:0 auto 22px; max-width:560px;}
.cover-meta{display:inline-block; text-align:left; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25); border-radius:12px; padding:14px 20px; margin:8px 0; font-size:14px;}
.meta-row{margin:4px 0;}
.meta-k{display:inline-block; min-width:78px; font-weight:700; opacity:.9;}
.meta-v{opacity:.95;}
.cover-stat{margin:18px 0 22px; font-size:14px; opacity:.92;}
.cover-cta{display:inline-block; background:#fff; color:#1e3a8a; font-weight:800; padding:13px 34px; border-radius:999px; font-size:16px; box-shadow:0 8px 24px rgba(0,0,0,.18);}
.cover-cta:hover{text-decoration:none; transform:translateY(-1px);}
.index-main{max-width:980px; margin:0 auto; padding:46px 22px 70px;}
.index-h2{font-size:24px; margin:0 0 22px; text-align:center;}
.index-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:18px;}
.index-card{background:var(--paper); border:1px solid var(--border); border-radius:14px; padding:18px 22px; box-shadow:0 2px 10px rgba(31,41,51,.04);}
.index-card h3{margin:0 0 10px; font-size:17px; color:var(--brand);}
.index-card ul{list-style:none; padding:0; margin:0;}
.index-card li{padding:6px 0; border-bottom:1px dashed var(--border);}
.index-card li:last-child{border-bottom:none;}
.index-card a{color:var(--ink); font-size:14.5px;}
.index-foot{text-align:center; color:var(--muted); font-size:13.5px; margin-top:34px;}

/* 响应式 */
@media (max-width:860px){
  .sidebar{transform:translateX(-100%); transition:transform .25s ease; z-index:20; box-shadow:2px 0 16px rgba(0,0,0,.12);}
  .sidebar.open{transform:translateX(0);}
  .content{margin-left:0;}
  .topbar{display:flex;}
  .scrim.show{display:block; position:fixed; inset:0; background:rgba(0,0,0,.35); z-index:15;}
  .chapter{padding:24px 18px 16px;}
  .pager{padding:20px 18px 44px;}
}
