:root { --fg:#1d232b; --muted:#5b6673; --bg:#fff; --side:#f4f6f8; --accent:#0b5cad; --code-bg:#f6f8fa; --border:#dde2e8; }
@media (prefers-color-scheme: dark) and (min-width: 0) {
  :root:not(.print) { --fg:#e6e9ee; --muted:#9aa5b1; --bg:#14181d; --side:#1b2027; --accent:#6db3ff; --code-bg:#1d232b; --border:#2c333c; }
}
* { box-sizing: border-box; }
body { margin:0; font-family: "Segoe UI", system-ui, -apple-system, Roboto, sans-serif; color:var(--fg); background:var(--bg); line-height:1.7; }
.layout { display:flex; min-height:100vh; }
.sidebar { width:300px; flex:none; background:var(--side); border-right:1px solid var(--border); padding:16px; overflow-y:auto; position:sticky; top:0; height:100vh; }
.sidebar-title a { font-weight:700; color:var(--fg); text-decoration:none; }
.part-list, .chapter-list { list-style:none; margin:0; padding:0; }
.part-title { margin:16px 0 4px; font-size:.75rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); }
.chapter-link { display:block; padding:3px 8px; border-radius:4px; color:var(--fg); text-decoration:none; font-size:.9rem; }
.chapter-link:hover { background:var(--border); }
.chapter-link.active { background:var(--accent); color:#fff; }
.content { flex:1; max-width:820px; margin:0 auto; padding:32px 24px 64px; min-width:0; }
h1 { font-size:2rem; line-height:1.25; } h2 { margin-top:2rem; border-bottom:1px solid var(--border); padding-bottom:.2em; } h3 { margin-top:1.5rem; }
a { color:var(--accent); }
pre.hljs { background:var(--code-bg); border:1px solid var(--border); border-radius:6px; padding:12px 14px; overflow-x:auto; font-size:.88rem; line-height:1.5; }
code { font-family: Consolas, "Cascadia Mono", "DejaVu Sans Mono", monospace; font-size:.9em; }
:not(pre) > code { background:var(--code-bg); padding:1px 5px; border-radius:4px; }
blockquote { margin:1rem 0; padding:.2rem 1rem; border-left:4px solid var(--accent); background:var(--code-bg); }
table { border-collapse:collapse; margin:1rem 0; width:100%; } th, td { border:1px solid var(--border); padding:6px 10px; text-align:left; vertical-align:top; } th { background:var(--code-bg); }
.subtitle { color:var(--muted); font-size:1.1rem; }
.start-link { display:inline-block; padding:8px 16px; background:var(--accent); color:#fff; border-radius:6px; text-decoration:none; }
.chapter-nav { display:flex; justify-content:space-between; gap:12px; margin-top:48px; padding-top:16px; border-top:1px solid var(--border); }
.hljs-comment,.hljs-quote { color:#6a737d; font-style:italic; } .hljs-keyword,.hljs-selector-tag,.hljs-built_in { color:#d73a49; }
.hljs-string,.hljs-title { color:#032f62; } .hljs-number,.hljs-literal { color:#005cc5; } .hljs-meta { color:#6f42c1; }
@media (prefers-color-scheme: dark) { .hljs-string,.hljs-title { color:#9ecbff; } .hljs-keyword,.hljs-built_in { color:#ff7b72; } .hljs-number,.hljs-literal { color:#79c0ff; } }
@media (max-width: 800px) { .layout { flex-direction:column; } .sidebar { width:auto; height:auto; position:static; border-right:0; border-bottom:1px solid var(--border); } }
