:root{--bg:#ffffff;--panel:#f6f7f9;--border:#e3e6ea;--text:#14171a;--muted:#626b75;--accent:#2f6df6;--user-bubble:#eef3ff;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--bg:#0e1116;--panel:#161a21;--border:#262c36;--text:#e8ebef;--muted:#8b949e;--accent:#5b8cff;--user-bubble:#1b2434}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 ui-sans-serif,-apple-system,Segoe UI,system-ui,sans-serif}.shell{display:grid;grid-template-columns:260px 1fr;height:100dvh}.sidebar{border-right:1px solid var(--border);background:var(--panel);padding:16px 12px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.brand{font-weight:650;letter-spacing:-.01em;padding:0 8px 8px}.brand small{display:block;font-weight:400;color:var(--muted);font-size:12px}.conv{border:0;background:transparent;color:inherit;text-align:left;padding:8px 10px;border-radius:8px;cursor:pointer;font:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv:hover{background:var(--bg)}.conv[aria-current=true]{background:var(--bg);font-weight:600}.main{display:flex;flex-direction:column;min-width:0}.messages{flex:1 1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:16px}.msg{max-width:760px;white-space:pre-wrap;word-wrap:break-word}.msg .who{font-size:12px;color:var(--muted);margin-bottom:4px}.msg.user .body{background:var(--user-bubble);padding:10px 12px;border-radius:10px;display:inline-block}.composer{border-top:1px solid var(--border);padding:16px;display:flex;gap:10px}.composer textarea{flex:1 1;resize:none;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;min-height:44px;max-height:200px}button.send{border:0;background:var(--accent);color:#fff;padding:0 18px;border-radius:10px;font:inherit;font-weight:600;cursor:pointer}button.send:disabled{opacity:.5;cursor:default}.auth{max-width:340px;margin:15vh auto;display:flex;flex-direction:column;gap:10px;padding:0 20px}.auth input{padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit}.error{color:#d7263d}.error,.hint{font-size:13px}.hint{color:var(--muted)}.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;border-bottom:1px solid var(--border)}.linkish{background:none;border:0;color:var(--muted);font:inherit;cursor:pointer;text-decoration:underline}