*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--sidebar-bg: #0b0d12;--sidebar-border: #1e2230;--surface: #161a24;--text: #e8eaf0;--text-muted: #7a8096;--accent: #4a7eff;--accent-hover: #6b96ff;--active-bg: #1a2540;--active-text: #93b4ff;--border: #1e2230;--heading: #ffffff;--code-bg: #1a1d2e;--sidebar-width: 260px;--header-height: 52px}html{font-size:16px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;height:100vh;overflow:hidden}.layout{display:flex;flex-direction:column;height:100vh}.header{height:var(--header-height);background:var(--sidebar-bg);border-bottom:1px solid var(--sidebar-border);display:flex;align-items:center;gap:12px;padding:0 20px;flex-shrink:0;z-index:10}.header-logo{font-size:15px;font-weight:700;color:var(--heading);letter-spacing:-.3px;text-decoration:none}.header-logo span{color:var(--accent);font-weight:400}.header-divider{color:var(--sidebar-border);margin:0 4px}.mobile-menu-btn{display:none;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;margin-left:auto}.body{display:flex;flex:1;overflow:hidden}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);overflow-y:auto;flex-shrink:0;padding:16px 0 32px}.nav-group{margin-bottom:4px}.nav-group-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:12px 20px 4px}.nav-section{margin-bottom:2px}.nav-section-btn{width:100%;background:none;border:none;display:flex;align-items:center;justify-content:space-between;padding:5px 20px;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:color .15s;text-align:left}.nav-section-btn:hover,.nav-section-btn.open{color:var(--text)}.chevron{font-size:10px;transition:transform .2s;opacity:.6}.chevron.open{transform:rotate(90deg)}.nav-articles{padding:2px 0}.nav-article-btn{width:100%;background:none;border:none;padding:5px 20px 5px 32px;font-size:13px;color:var(--text-muted);cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .15s,background .15s;border-left:2px solid transparent;margin-left:-1px}.nav-article-btn:hover{color:var(--text);background:var(--surface)}.nav-article-btn.active{color:var(--active-text);background:var(--active-bg);border-left-color:var(--accent);font-weight:500}.content-area{flex:1;overflow-y:auto;padding:40px 56px;max-width:860px}.article-loading{color:var(--text-muted);font-size:14px}.article-error{color:#ff6b6b;font-size:14px;background:#1a0a0a;padding:16px;border-radius:6px;border:1px solid #3a1515}.markdown h1{font-size:28px;font-weight:700;color:var(--heading);margin-bottom:12px;line-height:1.25;border-bottom:1px solid var(--border);padding-bottom:16px}.markdown h2{font-size:20px;font-weight:600;color:var(--heading);margin:32px 0 12px}.markdown h3{font-size:16px;font-weight:600;color:var(--heading);margin:24px 0 8px}.markdown p{margin-bottom:16px;color:var(--text);font-size:15px}.markdown ul,.markdown ol{margin:0 0 16px 24px;font-size:15px}.markdown li{margin-bottom:4px}.markdown code{font-family:SF Mono,Fira Code,monospace;font-size:13px;background:var(--code-bg);padding:2px 6px;border-radius:4px;color:var(--active-text)}.markdown pre{background:var(--code-bg);padding:16px;border-radius:8px;overflow-x:auto;margin-bottom:20px;border:1px solid var(--border)}.markdown pre code{background:none;padding:0;font-size:13px;color:var(--text)}.markdown strong{color:var(--heading);font-weight:600}.markdown a{color:var(--accent);text-decoration:none}.markdown a:hover{color:var(--accent-hover);text-decoration:underline}.markdown blockquote{border-left:3px solid var(--accent);padding:8px 16px;margin:16px 0;background:var(--active-bg);border-radius:0 6px 6px 0;color:var(--text-muted);font-style:italic}.markdown table{width:100%;border-collapse:collapse;margin-bottom:20px;font-size:14px}.markdown th{background:var(--surface);color:var(--heading);padding:8px 12px;text-align:left;border:1px solid var(--border)}.markdown td{padding:8px 12px;border:1px solid var(--border)}.markdown hr{border:none;border-top:1px solid var(--border);margin:28px 0}@media (max-width: 768px){.sidebar{position:fixed;top:var(--header-height);left:0;bottom:0;z-index:20;transform:translate(-100%);transition:transform .25s ease}.sidebar.open{transform:translate(0)}.mobile-menu-btn{display:flex}.content-area{padding:24px 20px}}
