:root{--bg:#f7f8fa;--card:#fff;--text:#1f2329;--muted:#6b7280;--line:#e5e7eb;--accent:#2563eb;--accent-text:#fff;--tool:#eef2ff;--danger:#b91c1c;--ok:#15803d;--code:#f3f4f6;--radius:10px;--font:14px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",system-ui,sans-serif}:root[data-theme=dark]{--bg:#0f1115;--card:#171a21;--text:#e6e8eb;--muted:#9aa3af;--line:#2a2f3a;--accent:#3b82f6;--tool:#1e2433;--code:#1f2430;--danger:#f87171;--ok:#4ade80}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:var(--font)}.app{display:flex;flex-direction:column;min-height:100vh}.topbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--card)}.topbar select,.topbar input{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);min-width:0}.topbar .key{flex:1 1 180px}.topbar .model{flex:1 1 150px}.badge{font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}.badge.vip{border-color:var(--ok);color:var(--ok)}.badge.anon{border-color:var(--muted)}.btn{font:inherit;padding:6px 12px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--text);cursor:pointer}.btn.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.body{display:flex;flex:1;min-height:0}.side{width:200px;border-right:1px solid var(--line);background:var(--card);padding:8px;display:flex;flex-direction:column;gap:6px;overflow:auto}.side .conv{font-size:13px;padding:6px 8px;border-radius:8px;cursor:pointer;color:var(--muted);display:flex;justify-content:space-between;gap:6px}.side .conv.active,.side .conv:hover{background:var(--bg);color:var(--text)}.side .conv .del{opacity:.6}.side .conv .del:hover{opacity:1;color:var(--danger)}.main{flex:1;display:flex;flex-direction:column;min-width:0}.messages{flex:1;overflow:auto;padding:14px 16px;display:flex;flex-direction:column;gap:12px}.msg{max-width:min(100%,780px);padding:10px 14px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);word-break:break-word}.msg.user{align-self:flex-end;background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.msg.assistant .md p{margin:0 0 8px}.msg.assistant .md ul,.msg.assistant .md ol{margin:4px 0 8px 18px;padding:0}.msg.assistant .md h3,.msg.assistant .md h4{margin:8px 0 4px;font-size:15px}.msg.assistant .md code{background:var(--code);padding:1px 5px;border-radius:4px;font-size:13px}.msg.assistant .md pre{background:var(--code);padding:8px 10px;border-radius:8px;overflow:auto;font-size:13px}.msg.assistant .md table{border-collapse:collapse;margin:6px 0;font-size:13px}.msg.assistant .md td,.msg.assistant .md th{border:1px solid var(--line);padding:3px 8px}.tools{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.tool{font-size:12px;background:var(--tool);border-radius:999px;padding:2px 10px;color:var(--muted)}.tool.ok:before{content:"✓ ";color:var(--ok)}.tool.err:before{content:"✗ ";color:var(--danger)}.tool.run:before{content:"⟳ "}.usage{font-size:12px;color:var(--muted);margin-top:6px}.notice{padding:10px 14px;border-radius:var(--radius);border:1px dashed var(--line);color:var(--muted);font-size:13px}.notice.error{border-color:var(--danger);color:var(--danger)}.promo{padding:14px 16px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line)}.promo h3{margin:0 0 6px;font-size:15px}.promo ol{margin:4px 0 8px 18px;padding:0}.promo a{color:var(--accent)}.composer{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:var(--card)}.composer textarea{flex:1;font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);resize:none;min-height:40px;max-height:160px}.footer{font-size:12px;color:var(--muted);padding:6px 12px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}.remember{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:4px;white-space:nowrap}@media (max-width:720px){.side{display:none}.topbar .model{flex-basis:120px}}
