:root{--bg: #fbfaf8;--panel: #fff;--subtle: #f3f1ed;--border: #e4e1da;--text: #1f1e1c;--muted: #75716a;--accent: #2f6fdb;--accent-bg: #e8f0fd;--danger: #b3261e;--radius: 8px;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text);background:var(--bg)}@media(prefers-color-scheme:dark){:root{--bg: #191918;--panel: #212120;--subtle: #2a2a28;--border: #3a3935;--text: #ecebe7;--muted: #9b978f;--accent: #6ea0f5;--accent-bg: #1f2d47;--danger: #f2877f}}*{box-sizing:border-box}body{margin:0;font-size:14px}button,input,select{font:inherit;color:inherit}button{border:1px solid var(--border);background:var(--panel);border-radius:var(--radius);padding:6px 12px;cursor:pointer}button:hover{background:var(--subtle)}button.primary{background:var(--text);color:var(--bg);border-color:var(--text)}button.primary:disabled{opacity:.6;cursor:default}button.ghost{border-color:transparent;background:none;color:var(--muted)}input{width:100%;border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;background:var(--panel)}input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.muted{color:var(--muted)}.error{color:var(--danger);margin:0}.login{min-height:100vh;display:grid;place-items:center;padding:16px;position:relative}.login-lang{position:absolute;top:16px;right:16px}.card{width:340px;max-width:100%;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:28px;display:grid;gap:14px}.card p{margin:0}.card label{display:grid;gap:6px;color:var(--muted)}.logo{font-size:22px;font-weight:600}.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.seg button{border:0;border-radius:0;padding:3px 9px;font-size:12px;background:none;color:var(--muted)}.seg button.on{background:var(--subtle);color:var(--text)}.shell{display:grid;grid-template:44px minmax(0,1fr) / 270px minmax(260px,1fr) minmax(380px,1.5fr);height:100vh}.shell header{grid-column:1 / -1;display:flex;align-items:center;gap:10px;padding:0 14px;border-bottom:1px solid var(--border);background:var(--panel)}.grow{flex:1}.chip{width:auto;border:1px solid var(--border);border-radius:var(--radius);padding:3px 8px;background:var(--panel)}.avatar{width:26px;height:26px;border-radius:50%;background:var(--accent-bg);color:var(--accent);display:grid;place-items:center;font-size:11px;font-weight:600}.shell aside{border-right:1px solid var(--border);background:var(--subtle);display:flex;flex-direction:column;min-height:0}.shell nav{padding:10px;display:flex;flex-direction:column;gap:2px;border-bottom:1px solid var(--border)}.shell nav button{border:0;background:none;text-align:left;display:flex;justify-content:space-between;align-items:center;color:var(--muted)}.shell nav button.on{background:var(--accent-bg);color:var(--accent)}.shell nav small{font-size:11px;opacity:.8}.pane{padding:18px;overflow:auto;border-right:1px solid var(--border);background:var(--panel)}.pane.right{border-right:0}.pane h2{margin:0 0 8px;font-size:16px;font-weight:600}.tree{display:flex;flex-direction:column;min-height:0;flex:1}.search{margin:10px 10px 6px;width:calc(100% - 20px);padding:6px 10px}.nodes,.hits{overflow:auto;padding:0 6px 12px;flex:1}.tn{display:block;width:100%;text-align:left;border:0;background:none;padding:4px 8px;font-size:13px;line-height:1.35;color:var(--muted);border-radius:6px}.tn.dir{color:var(--text);font-weight:500}.tn.leaf.on{background:var(--accent-bg);color:var(--accent)}.tn .caret{display:inline-block;width:14px;color:var(--muted)}.count{font-size:12px;padding:8px;margin:0}.hit{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--border);border-radius:0;background:none;padding:8px}.hit strong{display:block;font-size:13px}.hit span{display:block;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.pad{padding:8px}.pane.right{padding:0}.page{max-width:820px;margin:0 auto;padding:22px 28px 60px}.crumbs{color:var(--muted);font-size:12px;margin-bottom:6px}.meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px;font-size:12px}.badge{background:var(--accent-bg);color:var(--accent);border-radius:10px;padding:1px 8px}.tag{border:1px solid var(--border);border-radius:10px;padding:0 8px;color:var(--muted)}.md{line-height:1.65;font-size:15px}.md h1{font-size:24px;margin:8px 0 14px}.md h2{font-size:19px;margin:26px 0 8px}.md h3{font-size:16px;margin:20px 0 6px}.md a{color:var(--accent)}.md .broken{color:var(--danger);text-decoration:underline dotted;cursor:help}.md img{max-width:100%;border:1px solid var(--border);border-radius:6px;cursor:zoom-in;margin:6px 0}.md code{background:var(--subtle);border-radius:4px;padding:1px 5px;font-size:13px}.md pre{background:var(--subtle);border-radius:var(--radius);padding:12px;overflow:auto}.md pre code{padding:0;background:none}.md blockquote{margin:10px 0;padding:2px 14px;border-left:3px solid var(--border);color:var(--muted)}.tablewrap{overflow-x:auto}.md table{border-collapse:collapse;margin:10px 0;font-size:14px}.md th,.md td{border:1px solid var(--border);padding:5px 10px;text-align:left;vertical-align:top}.md th{background:var(--subtle)}.backlinks{margin-top:36px;padding-top:14px;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px}.backlinks h3{width:100%;margin:0;font-size:12px;color:var(--muted);font-weight:500}.backlinks a{color:var(--accent)}.lightbox{position:fixed;inset:0;background:#000c;display:grid;place-items:center;cursor:zoom-out;z-index:10}.lightbox img{max-width:94vw;max-height:92vh;border-radius:6px}.pane.chatpane{padding:0;display:flex;flex-direction:column;min-height:0;overflow:hidden}.chat{display:flex;flex-direction:column;min-height:0;flex:1;position:relative}.chat-head{display:flex;gap:4px;padding:8px 10px;border-bottom:1px solid var(--border);align-items:center}.chat-head select{flex:1;min-width:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:5px 8px}.chat-body{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:14px}.msg.user{align-self:flex-end;max-width:88%}.bubble{background:var(--subtle);border-radius:12px;padding:8px 12px;white-space:pre-wrap;overflow-wrap:anywhere}.msg.bot{max-width:100%}.msg.bot .md{font-size:14px;line-height:1.6}.msg.bot .md h1,.msg.bot .md h2,.msg.bot .md h3{font-size:15px;margin:12px 0 6px}.msg.bot .md p{margin:6px 0}.fchip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:10px;padding:0 8px;margin:4px 4px 0 0;font-size:12px;background:var(--panel)}.fchip button{border:0;background:none;padding:0 2px;color:var(--muted)}.activity{font-size:12px;margin-top:6px}.pulse{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.45}}.changes{margin-top:8px;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.changes>button{border-color:var(--border);background:var(--bg-success, var(--accent-bg));background:color-mix(in srgb,#2e9e5b 14%,var(--panel))}.cfile{border:0;background:none;font-size:12px;text-align:left;padding:2px 6px;color:var(--muted)}.plus{color:#2e9e5b}.minus{color:var(--danger)}.st{display:inline-block;width:14px;text-align:center}.stA{color:#2e9e5b}.stD{color:var(--danger)}.warn{color:var(--danger);font-size:12px}.composer{border-top:1px solid var(--border);padding:8px 10px 10px;display:grid;gap:6px;background:var(--panel)}.composer.drag{outline:2px dashed var(--accent);outline-offset:-4px}.modes{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.modes button{padding:3px 10px;font-size:12px;border-radius:14px;color:var(--muted)}.modes button.on{background:var(--text);color:var(--bg);border-color:var(--text)}.hint{font-size:12px;margin-left:6px}.attached{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:12px}.inputrow{display:flex;gap:6px;align-items:flex-end}.inputrow textarea{flex:1;min-width:0;resize:none;border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;background:var(--bg);min-height:56px;max-height:160px;font:inherit;color:inherit}.inputrow textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.inputrow button,.chat-head button{flex-shrink:0}
