pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}:root{--primary:#006495;--primary-weak:#cfe5f5;--surface:#f8f9ff;--surface-2:#eef1f8;--card:#fff;--border:#d8dde8;--text:#1a1c1e;--text-weak:#5b6472;--error:#ba1a1a;--success:#15803d;--warn:#d97706;--radius:8px;--gap:8px;--font:Lexend, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root{--primary:#8dcdff;--primary-weak:#1e3a4f;--surface:#111418;--surface-2:#1a1e24;--card:#191c20;--border:#2c333c;--text:#e2e2e6;--text-weak:#99a1ad;--error:#ffb4ab}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--surface);color:var(--text);font-size:14px;line-height:1.6}button{font:inherit;cursor:pointer;white-space:nowrap;border-radius:var(--radius);border:1px solid var(--border);background:var(--card);color:var(--text);padding:6px 12px}button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover:not(:disabled){filter:brightness(1.1);color:#fff}button.ghost{background:0 0;border-color:#0000}input,textarea,select{font:inherit;color:var(--text);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);width:100%;padding:8px 10px}input:focus,textarea:focus{outline:2px solid var(--primary-weak);border-color:var(--primary)}a{color:var(--primary)}.app{grid-template-columns:264px 1fr;height:100%;display:grid}.sidebar{background:var(--surface-2);border-right:1px solid var(--border);flex-direction:column;display:flex;overflow:hidden}.sidebar header{border-bottom:1px solid var(--border);gap:var(--gap);align-items:center;padding:12px;display:flex}.sidebar .scroll{flex:1;padding:8px;overflow-y:auto}.sidebar footer{border-top:1px solid var(--border);color:var(--text-weak);justify-content:space-between;align-items:center;gap:var(--gap);padding:10px 12px;font-size:12px;display:flex}.group-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-weak);justify-content:space-between;align-items:center;padding:10px 8px 4px;font-size:11px;display:flex}.item{text-align:left;border-radius:var(--radius);width:100%;color:var(--text);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:1px solid #0000;padding:7px 9px;font-size:13px;display:block;overflow:hidden}.item:hover{background:var(--card);color:var(--text);border-color:#0000}.item.active{background:var(--primary-weak);color:var(--primary);font-weight:500}.main{flex-direction:column;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--border);gap:var(--gap);background:var(--card);align-items:center;padding:10px 16px;display:flex}.topbar h2{text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:15px;font-weight:500;overflow:hidden}.chips{gap:4px;display:flex}.chip{border:1px solid var(--border);background:var(--card);color:var(--text-weak);border-radius:999px;padding:4px 10px;font-size:12px}.chip.on{background:var(--primary);border-color:var(--primary);color:#fff}.messages{flex:1;padding:20px 0 40px;overflow-y:auto}.msg{max-width:760px;margin:0 auto 22px;padding:0 20px}.msg .role{color:var(--text-weak);text-transform:uppercase;letter-spacing:.06em;gap:var(--gap);align-items:center;margin-bottom:5px;font-size:11px;display:flex}.msg.user .bubble{background:var(--primary-weak);border-radius:var(--radius);white-space:pre-wrap;padding:10px 14px}.msg .actions{opacity:0;gap:6px;display:flex}.msg:hover .actions{opacity:1}.msg .actions button{padding:1px 7px;font-size:11px}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md h1,.md h2,.md h3{margin:1.2em 0 .5em;line-height:1.35}.md h1{font-size:20px}.md h2{font-size:17px}.md h3{font-size:15px}.md p,.md ul,.md ol{margin:.55em 0}.md li{margin:.25em 0}.md code{font-family:var(--mono);background:var(--surface-2);border-radius:4px;padding:1px 5px;font-size:12.5px}.md pre{background:var(--surface-2);border-radius:var(--radius);border:1px solid var(--border);padding:12px;overflow-x:auto}.md pre code{background:0 0;padding:0}.md table{border-collapse:collapse;width:100%;margin:.8em 0;font-size:13px;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:6px 10px}.md th{background:var(--surface-2);font-weight:600}.md blockquote{border-left:3px solid var(--primary-weak);color:var(--text-weak);margin:.7em 0;padding:0 0 0 12px}.md hr{border:none;border-top:1px solid var(--border);margin:1.2em 0}.cite{font-size:11px;font-family:var(--mono);background:var(--primary-weak);color:var(--primary);vertical-align:baseline;border:none;border-radius:4px;align-items:center;margin:0 1px;padding:0 5px;line-height:1.5;display:inline-flex}.cite:hover{background:var(--primary);color:#fff}.composer{border-top:1px solid var(--border);background:var(--card);padding:12px 20px 16px}.composer .inner{gap:var(--gap);align-items:flex-end;max-width:760px;margin:0 auto;display:flex}.composer textarea{resize:none;min-height:44px;max-height:220px}.composer .attachment-list{flex-wrap:wrap;gap:6px;max-width:760px;margin-bottom:8px;display:flex;position:absolute;transform:translateY(-100%)}.composer .attachment{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:4px 7px;font-size:12px}.composer .attachment button{color:var(--text-weak);background:0 0;border:0;padding:0 0 0 5px}.panel{border-top:1px solid var(--border);background:var(--surface-2);font-size:12px}.panel summary{cursor:pointer;color:var(--text-weak);-webkit-user-select:none;user-select:none;padding:7px 20px}.panel .body{flex-direction:column;gap:3px;max-height:220px;padding:4px 20px 12px;display:flex;overflow-y:auto}.ctx-row{gap:var(--gap);cursor:pointer;align-items:baseline;display:flex}.ctx-row:hover .h{color:var(--primary)}.ctx-row .tag{font-family:var(--mono);color:var(--primary);min-width:32px}.ctx-row .fam{color:var(--text-weak);min-width:92px;font-size:11px}.ctx-row .h{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.drawer{background:var(--card);border-left:1px solid var(--border);z-index:50;flex-direction:column;width:min(560px,92vw);display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 28px #00000021}.drawer header{border-bottom:1px solid var(--border);gap:var(--gap);align-items:center;padding:12px 16px;display:flex}.drawer header h3{flex:1;margin:0;font-size:14px;font-weight:500}.drawer .body{padding:16px;overflow-y:auto}.drawer pre.raw{white-space:pre-wrap;word-break:break-word;font-family:var(--mono);background:var(--surface-2);border-radius:var(--radius);border:1px solid var(--border);margin:0;padding:12px;font-size:12.5px}.center{justify-content:center;align-items:center;height:100%;display:flex}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);width:340px;padding:24px}.card h1{margin:0 0 4px;font-size:17px}.card p.sub{color:var(--text-weak);margin:0 0 18px;font-size:13px}.stack{flex-direction:column;gap:12px;display:flex}.row{gap:var(--gap);align-items:center;display:flex}.err{color:var(--error);font-size:13px}.muted{color:var(--text-weak)}.empty{text-align:center;color:var(--text-weak);padding:60px 20px}.spin{background:var(--primary);vertical-align:text-bottom;width:7px;height:15px;animation:1s steps(2,end) infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}
