:root{--accent:#7c81fa;--accent-soft:#7c81fa1a;--bg:#fafafa;--surface:#fff;--border:#e4e4e7;--text:#18181b;--muted:#71717a;--faint:#a1a1aa}@media (prefers-color-scheme:dark){:root{--bg:#09090b;--surface:#121215;--border:#27272a;--text:#f4f4f5;--muted:#a1a1aa;--faint:#71717a}}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}@media (max-width:760px){.shell{grid-template-columns:1fr}}.sidebar{border-right:1px solid var(--border);padding:28px 20px;position:-webkit-sticky;position:sticky;top:0;align-self:start;height:100vh;overflow-y:auto}@media (max-width:760px){.sidebar{position:static;height:auto;border-right:none;border-bottom:1px solid var(--border)}}.brand{display:flex;align-items:center;gap:10px;font-weight:650;font-size:15px;margin-bottom:4px}.brand .dot{width:12px;height:12px;border-radius:4px;background:var(--accent)}.tagline{color:var(--muted);font-size:13px;margin:0 0 24px}.nav-section{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:22px 0 8px}.nav-link{display:block;padding:7px 10px;border-radius:8px;color:var(--text);font-size:14px}.nav-link:hover{background:var(--accent-soft);text-decoration:none}.nav-link.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.content{padding:48px 56px;max-width:820px}@media (max-width:760px){.content{padding:28px 22px}}.doc-meta{color:var(--faint);font-size:12.5px;margin-bottom:8px;display:flex;gap:10px;align-items:center}.badge{display:inline-block;font-size:11px;padding:1px 8px;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.prose h1{font-size:30px;line-height:1.2;margin:0 0 18px}.prose h2{font-size:21px;margin:34px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--border)}.prose h3{font-size:17px;margin:24px 0 8px}.prose li,.prose p{color:var(--text)}.prose code{background:var(--accent-soft);color:var(--accent);padding:1px 6px;border-radius:6px;font-size:.88em}.prose blockquote{border-left:3px solid var(--accent);margin:16px 0;padding:2px 16px;color:var(--muted)}.prose ul{padding-left:22px}.prose input[type=checkbox]{margin-right:8px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:16px;gap:16px;margin-top:24px}.card{border:1px solid var(--border);border-radius:12px;padding:18px;background:var(--surface);display:block;color:var(--text)}.card:hover{border-color:var(--accent);text-decoration:none}.card h3{margin:0 0 6px;font-size:16px}.card p{margin:0;color:var(--muted);font-size:13px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:360px;border:1px solid var(--border);border-radius:16px;padding:32px;background:var(--surface)}.login-card input{width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);font-size:15px;margin:14px 0}.login-card button{width:100%;padding:11px;border:none;border-radius:10px;background:var(--accent);color:#fff;font-size:15px;font-weight:600;cursor:pointer}.login-card .err{color:#e5484d;font-size:13px;margin-top:8px}.logout{font-size:12px;color:var(--faint)}