:root,html.dark{--bg: #0f1f13;--sidebar: #0d1a10;--surface: #162019;--card: #1c2b1e;--card-hover: #223325;--border: #243828;--border-light: #2d4832;--input-bg: #0f1f13;--overlay: rgba(6, 14, 9, .72);--text: #e8f5e9;--text-muted: #74c69d;--text-dim: #4a7c59;--a1: #1b4332;--a2: #2d6a4f;--a3: #40916c;--a4: #52b788;--a5: #74c69d;--a6: #95d5b2;--error: #ef4444;--amber: #f59e0b;--sky: #38bdf8;--purple: #a78bfa;--success: #4ade80}html.light{--bg: #f0f7f2;--sidebar: #e7f1ea;--surface: #ffffff;--card: #ffffff;--card-hover: #eaf4ee;--border: #d0e8d8;--border-light: #bcdcc7;--input-bg: #f4faf6;--overlay: rgba(13, 26, 16, .45);--text: #0d1a10;--text-muted: #1b5e3b;--text-dim: #2d6a4f;--a4: #2d6a4f;--a5: #1b4332;--a6: #0d1a10}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--a4);text-decoration:none}a:hover{text-decoration:underline}code,pre{font-family:DM Mono,ui-monospace,monospace}.shell{display:flex;min-height:100vh}.sidebar{width:264px;flex-shrink:0;background:var(--sidebar);border-right:1px solid var(--border);height:100vh;position:sticky;top:0;overflow-y:auto;padding:18px 14px 40px}.sidebar .brand{display:flex;align-items:center;gap:10px;padding:6px 8px 16px}.sidebar .brand img{width:34px;height:34px;border-radius:9px;background:#fff}.sidebar .brand b{font-size:15px;font-weight:800}.sidebar .brand span{display:block;font-size:10.5px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-weight:700}.nav-group{margin-top:14px}.nav-group>.label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);padding:6px 10px}.nav-link{display:block;padding:7px 10px;border-radius:8px;font-size:13px;color:var(--text-muted);cursor:pointer;border-left:2px solid transparent}.nav-link:hover{background:var(--card);color:var(--text);text-decoration:none}.nav-link.active{background:color-mix(in srgb,var(--a4) 14%,transparent);color:var(--a6);border-left-color:var(--a4);font-weight:600}.main{flex:1;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 28px;border-bottom:1px solid var(--border);position:sticky;top:0;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:5}.topbar .who{font-size:12px;color:var(--text-dim)}.btn{font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:8px;background:var(--card);border:1px solid var(--border);color:var(--text);cursor:pointer}.btn:hover{background:var(--card-hover)}.btn.primary{background:var(--a3);border-color:var(--a3);color:#fff}.content{max-width:920px;margin:0 auto;padding:28px 28px 80px}.prose h1{font-size:30px;font-weight:800;margin:6px 0;letter-spacing:-.01em}.prose h2{font-size:21px;font-weight:700;margin:32px 0 10px;padding-top:8px;border-top:1px solid var(--border)}.prose h3{font-size:16px;font-weight:700;margin:22px 0 8px;color:var(--a6)}.prose p{margin:10px 0}.prose ul,.prose ol{margin:10px 0;padding-left:22px}.prose li{margin:4px 0}.prose strong{color:var(--text);font-weight:700}.prose blockquote{margin:14px 0;padding:8px 14px;border-left:3px solid var(--a4);background:var(--card);border-radius:0 8px 8px 0;color:var(--text-muted)}.prose code{background:var(--card);border:1px solid var(--border);border-radius:5px;padding:1px 6px;font-size:12.5px;color:var(--a6)}.prose pre{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;overflow-x:auto;font-size:12.5px;line-height:1.5}.prose pre code{background:none;border:none;padding:0;color:var(--text)}.prose table{width:100%;border-collapse:collapse;margin:14px 0;font-size:13px}.prose th,.prose td{border:1px solid var(--border);padding:8px 11px;text-align:left}.prose th{background:var(--card);font-weight:700}.prose tr:nth-child(2n) td{background:#ffffff04}.prose hr{border:none;border-top:1px solid var(--border);margin:26px 0}.mermaid-box{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px;margin:18px 0;overflow-x:auto;text-align:center}.mermaid-box svg{max-width:100%;height:auto}.mermaid-err{color:var(--amber);font-size:12px}.mermaid-clickable{position:relative;cursor:zoom-in;transition:border-color .15s}.mermaid-clickable:hover{border-color:var(--a4)}.mermaid-expand{position:absolute;top:8px;right:8px;z-index:2;font-size:11px;font-weight:600;padding:4px 9px;border-radius:7px;background:var(--card);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity .15s}.mermaid-clickable:hover .mermaid-expand{opacity:1}.mermaid-expand:hover{color:var(--a5);border-color:var(--a4)}.diagram-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column}.diagram-toolbar{display:flex;align-items:center;gap:8px;padding:12px 18px;background:var(--sidebar);border-bottom:1px solid var(--border)}.diagram-toolbar button{font-size:13px;font-weight:700;min-width:34px;padding:6px 12px;border-radius:8px;background:var(--card);border:1px solid var(--border);color:var(--text);cursor:pointer}.diagram-toolbar button:hover{background:var(--card-hover);border-color:var(--a4)}.diagram-toolbar .zoom{font-size:12px;color:var(--text-dim);min-width:48px;font-family:DM Mono,monospace}.diagram-toolbar button:last-child{margin-left:auto}.diagram-canvas{flex:1;overflow:hidden;display:flex;align-items:center;justify-content:center}.diagram-pan svg{max-width:none;max-height:none;display:block}.diagram-hint{text-align:center;font-size:11.5px;color:var(--text-dim);padding:8px;background:var(--sidebar);border-top:1px solid var(--border)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:28px}.login-card img{width:44px;height:44px;border-radius:11px;background:#fff}.login-card h1{font-size:19px;margin:14px 0 2px}.login-card p{font-size:12.5px;color:var(--text-dim);margin:0 0 18px}.login-card label{display:block;font-size:12px;font-weight:600;color:var(--text-muted);margin:12px 0 5px}.login-card input{width:100%;background:var(--input-bg);border:1px solid var(--border);border-radius:9px;padding:10px 12px;font-size:13.5px;color:var(--text);outline:none}.login-card input:focus{border-color:var(--a4)}.login-card .err{color:var(--error);font-size:12px;margin-top:10px}.login-card button{width:100%;margin-top:18px;padding:11px;border-radius:9px;border:none;background:var(--a3);color:#fff;font-weight:700;font-size:14px;cursor:pointer}.login-card button:disabled{opacity:.6;cursor:default}.login-card a{color:var(--a4);cursor:pointer;font-weight:600}.login-card a:hover{text-decoration:underline}
