*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--panel: #181c24;--surface: #1e2330;--border: #2a2f3e;--ink-1: #e8ecf4;--ink-2: #a0aabb;--ink-3: #6b748a;--accent: #4c6ef5;--accent-hover: #3b5bdb;--code-bg: #12151d}html{scroll-behavior:smooth}body{font-family:Inter,system-ui,sans-serif;font-size:15px;line-height:1.7;color:var(--ink-1);background:var(--bg);min-height:100vh}.layout{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.toc{position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--panel);border-right:1px solid var(--border);padding:24px 0;font-size:13px}.toc-brand{display:flex;align-items:center;gap:10px;padding:0 20px 20px;border-bottom:1px solid var(--border);margin-bottom:12px}.toc-brand-mark{width:28px;height:28px;border-radius:6px;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;flex-shrink:0}.toc-brand-name{font-weight:600;color:var(--ink-1);font-size:14px}.toc-brand-sub{font-size:11px;color:var(--ink-3)}.toc-back{display:flex;align-items:center;gap:6px;padding:6px 20px 16px;color:var(--ink-3);font-size:12px;text-decoration:none}.toc-back:hover{color:var(--accent)}.toc-app{display:block;margin:0 20px 16px;padding:7px 12px;color:#fff;background:var(--accent);font-size:13px;font-weight:600;text-align:center;text-decoration:none;border-radius:6px}.toc-app:hover{filter:brightness(1.1)}.toc-lang{display:flex;align-items:center;gap:6px;margin:0 20px 16px;padding:4px 10px;color:var(--accent);font-size:12px;text-decoration:none;border:1px solid var(--border);border-radius:4px;width:fit-content}.toc-lang:hover{border-color:var(--accent);background:var(--surface)}.toc-docs{padding:0 20px 16px;border-bottom:1px solid var(--border);margin-bottom:12px}.toc-docs-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);margin-bottom:8px}.toc-doc-link{display:block;padding:6px 0;color:var(--ink-2);text-decoration:none;font-size:12px}.toc-doc-link:hover,.toc-doc-link.is-active{color:var(--accent)}.toc nav{padding:0 8px}.toc nav a{display:block;padding:5px 12px;color:var(--ink-2);text-decoration:none;border-radius:5px;transition:background .12s,color .12s;line-height:1.4}.toc nav a:hover{background:var(--surface);color:var(--ink-1)}.toc nav a.active{background:var(--surface);color:var(--accent)}.toc nav a.toc-h3,.toc nav a.toc-h4{padding-left:24px;font-size:12px;color:var(--ink-3)}.toc nav a.toc-h4{padding-left:36px}.toc nav a.toc-h3:hover,.toc nav a.toc-h4:hover{color:var(--ink-2)}.content{max-width:920px;padding:48px 40px 80px;min-width:0}.content h1{font-size:28px;font-weight:700;color:var(--ink-1);margin-bottom:8px;padding-bottom:16px;border-bottom:1px solid var(--border)}.content h2{font-size:20px;font-weight:600;color:var(--ink-1);margin:40px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border);scroll-margin-top:20px}.content h3{font-size:16px;font-weight:600;color:var(--ink-1);margin:24px 0 8px;scroll-margin-top:20px}.content h4{font-size:14px;font-weight:600;color:var(--ink-2);margin:16px 0 6px;text-transform:uppercase;letter-spacing:.04em;scroll-margin-top:20px}.content p{margin:10px 0;color:var(--ink-1)}.content ul,.content ol{margin:10px 0 10px 20px}.content li{margin:4px 0;color:var(--ink-1)}.content a{color:var(--accent);text-decoration:none;overflow-wrap:anywhere}.content a:hover{text-decoration:underline}.content strong{font-weight:600;color:var(--ink-1)}.content em{font-style:italic;color:var(--ink-2)}.content code{font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace;font-size:13px;background:var(--code-bg);border:1px solid var(--border);border-radius:4px;padding:1px 5px;color:#a6e3a1}.content pre{background:var(--code-bg);border:1px solid var(--border);border-radius:8px;padding:16px;overflow-x:auto;margin:14px 0}.content pre code{background:none;border:none;padding:0;font-size:13px;line-height:1.6;color:var(--ink-1)}.content pre.mermaid{background:var(--panel);border:1px solid var(--border);color:var(--ink-3)}.content pre.mermaid[data-processed]{text-align:center;color:inherit;overflow-x:auto}.content pre.mermaid svg{max-width:100%;height:auto}.content table{width:100%;border-collapse:collapse;margin:16px 0;font-size:14px}.content th{background:var(--surface);padding:10px 14px;text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);border:1px solid var(--border)}.content td{padding:9px 14px;border:1px solid var(--border);color:var(--ink-1)}.content tr:nth-child(2n) td{background:var(--surface)}.content blockquote{border-left:3px solid var(--accent);padding:10px 16px;margin:14px 0;background:var(--surface);border-radius:0 6px 6px 0;color:var(--ink-2)}.content hr{border:none;border-top:1px solid var(--border);margin:32px 0}@media(max-width:768px){.layout{grid-template-columns:1fr}.toc{display:none}.content{padding:24px 20px 60px}.content table{display:block;overflow-x:auto;white-space:nowrap}}
