:root{color-scheme:light dark;--bg: #f6f7f9;--panel: #ffffff;--text: #16181d;--muted: #646b78;--line: #e2e5ea;--accent: #2f6df6;--accent-text: #ffffff;--user: #2f6df6;--user-text: #ffffff;--assistant: #ffffff;--danger: #c93636;--ok: #1f9d55;--code: #f0f2f5;--radius: 14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px}@media(prefers-color-scheme:dark){:root{--bg: #0f1115;--panel: #171a20;--text: #e8eaee;--muted: #8d94a1;--line: #272b33;--accent: #5b8cff;--user: #3463d8;--assistant: #1b1f26;--danger: #ef6464;--ok: #3fcf7f;--code: #11141a}}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text)}body{-webkit-text-size-adjust:100%}button,input,select,textarea{font:inherit;color:inherit}button{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:.55rem .9rem;cursor:pointer;min-height:40px}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.link{border:0;background:none;color:var(--accent);padding:.25rem;min-height:0}button.icon{border:0;background:none;font-size:1.3rem;padding:.25rem .5rem}input,select,textarea{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:.6rem .7rem}textarea{resize:none}.muted{color:var(--muted)}.small{font-size:.8rem}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem}.row{display:flex;gap:.5rem;flex-wrap:wrap}pre{background:var(--code);border-radius:8px;padding:.6rem .7rem;overflow-x:auto;font-size:.85rem;margin:.4rem 0}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em}p code{background:var(--code);padding:.05rem .3rem;border-radius:5px}.login-page{min-height:100%;display:grid;place-items:center;padding:1rem}.login{width:min(380px,100%);display:flex;flex-direction:column;gap:.9rem}.login h1{margin:0;font-size:1.4rem}.login p{margin:0}.login label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.login-error{color:var(--danger);min-height:1.2em;font-size:.9rem}.app{display:flex;height:100dvh;overflow:hidden}.drawer{width:290px;flex:none;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:max(.75rem,env(safe-area-inset-top)) .75rem .75rem;gap:.75rem;overflow-y:auto}.drawer-head{display:flex;justify-content:space-between;align-items:center}.new-chat{display:flex;flex-direction:column;gap:.5rem}.sessions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.sessions a{display:flex;flex-direction:column;gap:2px;padding:.55rem .6rem;border-radius:10px;color:inherit;text-decoration:none}.sessions a.active,.sessions a:hover{background:var(--bg)}.session-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scrim{display:none}.chat{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;gap:.5rem;padding:max(.5rem,env(safe-area-inset-top)) .75rem .5rem;border-bottom:1px solid var(--line);background:var(--panel)}.topbar .title{flex:1;min-width:0;display:flex;flex-direction:column}.topbar .title strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status{font-size:.78rem;padding:.2rem .55rem;border-radius:999px;border:1px solid var(--line);white-space:nowrap}.status:before{content:"\25cf";margin-right:.3rem}.status.online:before{color:var(--ok)}.status.offline:before{color:var(--danger)}.messages{flex:1;overflow-y:auto;padding:1rem .75rem;display:flex;flex-direction:column;gap:.6rem;overscroll-behavior:contain}.empty{margin:auto;text-align:center;max-width:320px}.bubble{max-width:min(760px,92%);padding:.6rem .85rem;border-radius:var(--radius);line-height:1.45;overflow-wrap:anywhere}.bubble p{margin:.3rem 0}.bubble.user{align-self:flex-end;background:var(--user);color:var(--user-text);border-bottom-right-radius:4px}.bubble.user p code{background:#ffffff2e}.bubble.assistant{align-self:flex-start;background:var(--assistant);border:1px solid var(--line);border-bottom-left-radius:4px}.bubble.live{border-style:dashed}.bubble.error{align-self:center;color:var(--danger);background:none;font-size:.9rem}.error-text{color:var(--danger);font-size:.9rem}.note{align-self:center;color:var(--muted);font-size:.85rem}details.thinking{color:var(--muted);font-size:.9rem;margin:.2rem 0 .4rem}details.thinking summary{cursor:pointer}details.tool{border:1px solid var(--line);border-radius:10px;padding:.35rem .6rem;margin:.35rem 0;font-size:.9rem}details.tool summary{cursor:pointer;display:flex;gap:.5rem;align-items:center}.tool-name{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.tool-status{font-size:.75rem;color:var(--muted);margin-left:auto}details.tool.error .tool-status{color:var(--danger)}details.tool.completed .tool-status{color:var(--ok)}.typing{align-self:flex-start;display:flex;gap:4px;padding:.8rem}.typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:blink 1.2s infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.pending{display:flex;flex-direction:column;gap:.5rem;padding:0 .75rem}.pending:empty{display:none}.pending .card{display:flex;flex-direction:column;gap:.5rem;border-color:var(--accent)}.pending label{display:flex;flex-direction:column;gap:.3rem}.pending label.check{flex-direction:row;align-items:center;gap:.5rem}.pending label.check input{width:auto}fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:.3rem}.composer{display:flex;gap:.5rem;align-items:flex-end;padding:.6rem .75rem max(.6rem,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--panel)}.composer textarea{max-height:200px}@media(max-width:760px){.drawer{position:fixed;inset:0 auto 0 0;width:min(86vw,320px);z-index:20;transform:translate(calc(-100% - 2px));visibility:hidden;transition:transform .2s ease,visibility .2s}.app.drawer-open .drawer{transform:none;visibility:visible}.app.drawer-open .scrim{display:block;position:fixed;inset:0;background:#00000059;z-index:10}}@media(min-width:761px){.topbar button.icon{display:none}}
