:root{
  --bg:#fff; --fg:#1a1a2e; --muted:#6b7280; --border:#e5e7eb;
  --brand:#2f6df6; --code-bg:#0f172a; --sidebar-w:260px; --toc-w:220px;
}
*{box-sizing:border-box;}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;color:var(--fg);background:var(--bg);line-height:1.6;}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:10px 16px;background:#fff;border-bottom:1px solid var(--border);}
.brand{font-weight:700;text-decoration:none;color:var(--fg);}
.clone-tag{font-size:11px;background:var(--brand);color:#fff;padding:1px 6px;border-radius:10px;}
.set-switcher{padding:5px 8px;border:1px solid var(--border);border-radius:6px;font-size:14px;max-width:240px;}
.progress-pill{margin-left:auto;font-size:13px;background:#eef2ff;color:var(--brand);padding:3px 10px;border-radius:12px;white-space:nowrap;}
.menu-toggle{display:none;background:none;border:none;font-size:20px;cursor:pointer;}
.layout{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr) var(--toc-w);max-width:1400px;margin:0 auto;}
.sidebar{border-right:1px solid var(--border);padding:16px;height:calc(100vh - 53px);position:sticky;top:53px;overflow:auto;}
.sidebar-head{font-weight:700;margin-bottom:12px;}
.nav-group{margin-bottom:14px;}
.nav-group-title{font-size:12px;text-transform:uppercase;color:var(--muted);margin-bottom:6px;letter-spacing:.04em;}
.sidebar-nav ul{list-style:none;margin:0;padding:0;}
.sidebar-nav li{margin:0;}
.nav-link{display:block;padding:4px 8px;border-radius:6px;color:var(--fg);text-decoration:none;font-size:14px;}
.nav-link:hover{background:#f3f4f6;}
.nav-link.active{background:#eef2ff;color:var(--brand);font-weight:600;}
.content{padding:24px 32px;min-width:0;}
.doc img{max-width:100%;height:auto;border:1px solid var(--border);border-radius:8px;margin:12px 0;}
.doc pre{background:var(--code-bg);color:#e2e8f0;padding:14px;border-radius:8px;overflow:auto;}
.doc code{background:#f3f4f6;padding:1px 5px;border-radius:4px;font-size:13px;}
.doc pre code{background:none;padding:0;}
.doc table{border-collapse:collapse;width:100%;margin:12px 0;}
.doc th,.doc td{border:1px solid var(--border);padding:6px 10px;text-align:left;}
.complete-btn{margin-top:24px;padding:8px 16px;border:1px solid var(--brand);background:#fff;color:var(--brand);border-radius:8px;cursor:pointer;}
.complete-btn.done{background:var(--brand);color:#fff;}
.pager-nav{display:flex;justify-content:space-between;margin-top:32px;border-top:1px solid var(--border);padding-top:16px;gap:12px;}
.pager{color:var(--brand);text-decoration:none;}
.toc{border-left:1px solid var(--border);padding:16px;font-size:13px;height:calc(100vh - 53px);position:sticky;top:53px;overflow:auto;}
.toc-list{list-style:none;padding-left:0;margin:0;}
.toc-list li{margin:4px 0;}
.toc-h3{padding-left:12px;}
.toc a{color:var(--muted);text-decoration:none;}
.toc a:hover{color:var(--brand);}
.overlay{display:none;}
.hero{padding:32px 0;}
.hero h1{font-size:32px;margin:0 0 8px;}
.sub{color:var(--muted);}
.set-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;list-style:none;padding:0;}
.set-card{display:block;border:1px solid var(--border);border-radius:10px;padding:18px;text-decoration:none;color:var(--fg);}
.set-card:hover{border-color:var(--brand);}
.sc-title{font-weight:700;display:block;}
.sc-count{color:var(--muted);font-size:13px;}
@media (max-width:1024px){ .layout{grid-template-columns:var(--sidebar-w) minmax(0,1fr);} .toc{display:none;} }
@media (max-width:768px){
  .menu-toggle{display:block;}
  .layout{grid-template-columns:1fr;}
  .sidebar{position:fixed;left:0;top:53px;width:80%;max-width:300px;background:#fff;transform:translateX(-100%);transition:transform .2s;z-index:30;}
  body.sidebar-open .sidebar{transform:none;}
  body.sidebar-open .overlay{display:block;position:fixed;inset:53px 0 0 0;background:rgba(0,0,0,.4);z-index:25;}
  .content{padding:16px;}
}
