:root{--bg:#0f1115;--panel:#171a21;--panel-2:#1e222b;--text:#e6e8ec;--muted:#9aa3b2;--accent:#6ea8fe;--border:#2a2f3a}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.shell{display:flex;flex-direction:column;height:100vh;max-width:860px;margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.brand{font-weight:600}.picker{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:14px}.picker select{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 10px}.banner{padding:10px 18px;font-size:14px;border-bottom:1px solid var(--border)}.banner.statement{color:var(--muted);font-style:italic}.banner.warn{color:#ffd479}.banner.error{color:#ff8b8b}.thread{flex:1 1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:16px}.empty{color:var(--muted);text-align:center;margin-top:40px}.msg{display:flex;flex-direction:column;gap:4px}.msg .role{font-size:12px;color:var(--muted)}.msg.user .role{color:var(--accent)}.bubble{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:12px 14px;white-space:pre-wrap;word-break:break-word;line-height:1.5}.msg.user .bubble{background:var(--panel-2)}.msg.assistant .bubble{white-space:normal}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:.5em 0}.markdown ol,.markdown ul{margin:.5em 0;padding-left:1.4em}.markdown li{margin:.2em 0}.markdown h1,.markdown h2,.markdown h3,.markdown h4{margin:.9em 0 .4em;line-height:1.25}.markdown h1{font-size:1.4em}.markdown h2{font-size:1.2em}.markdown h3{font-size:1.05em}.markdown a{color:var(--accent)}.markdown code{background:#0b0e13;padding:.1em .35em;border-radius:4px;font-size:.9em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.markdown pre{background:#0b0e13;border:1px solid var(--border);padding:10px 12px;border-radius:8px;overflow-x:auto}.markdown pre code{background:none;padding:0;font-size:.85em}.markdown blockquote{margin:.5em 0;padding-left:12px;border-left:3px solid var(--border);color:var(--muted)}.markdown table{border-collapse:collapse;margin:.5em 0;font-size:.92em}.markdown td,.markdown th{border:1px solid var(--border);padding:4px 9px;text-align:left}.markdown th{background:var(--panel-2)}.toolcall{margin:6px 0;background:#12151c;border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:13px}.toolcall summary{cursor:pointer;color:var(--muted)}.toolcall pre{overflow-x:auto;font-size:12px;color:#c8d0dc}.thinking{color:var(--muted);font-style:italic}.composer{display:flex;gap:8px;padding:14px 18px;border-top:1px solid var(--border)}.composer input{flex:1 1;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:15px}.composer button{background:var(--accent);color:#0b0e13;border:none;border-radius:10px;padding:0 20px;font-weight:600;cursor:pointer}.composer button:disabled{opacity:.5;cursor:not-allowed}