:root{color-scheme:light dark;--bg: #f5f7fb;--card: #ffffff;--text: #1f2937;--muted: #6b7280;--brand: #2563eb;--border: #e5e7eb;font-family:Segoe UI,Microsoft YaHei,system-ui,sans-serif}@media (prefers-color-scheme: dark){:root{--bg: #0f172a;--card: #111827;--text: #e5e7eb;--muted: #9ca3af;--brand: #3b82f6;--border: #374151}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}#app{min-height:100vh}.container{max-width:920px;margin:24px auto;padding:0 16px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px}h1{margin:0 0 8px;font-size:22px}.desc{margin:0 0 16px;color:var(--muted)}.chat{min-height:360px;max-height:60vh;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:8px 2px}.msg{border:1px solid var(--border);border-radius:10px;padding:10px 12px;line-height:1.6;white-space:pre-wrap}.body{white-space:normal}.user{background:#2563eb14}.bot{background:#10b98114}.thinking .thinking-row{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}.dot-flow{display:inline-flex;align-items:center;gap:4px}.dot-flow i{width:6px;height:6px;border-radius:999px;background:var(--brand);opacity:.25;animation:dot-bounce 1s infinite ease-in-out}.dot-flow i:nth-child(2){animation-delay:.2s}.dot-flow i:nth-child(3){animation-delay:.4s}@keyframes dot-bounce{0%,80%,to{transform:translateY(0);opacity:.25}40%{transform:translateY(-3px);opacity:1}}.meta{font-size:12px;color:var(--muted);margin-bottom:4px}.sources{margin-top:8px;font-size:13px;color:var(--muted)}.sources a{color:var(--brand);text-decoration:none}.sources a:hover{text-decoration:underline}.markdown-body p{margin:.2rem 0 .6rem}.markdown-body ul,.markdown-body ol{margin:.2rem 0 .6rem;padding-left:1.25rem}.markdown-body code{padding:.1rem .35rem;border-radius:6px;background:#6b72802e;font-family:Consolas,Courier New,monospace}.markdown-body pre{margin:.4rem 0 .7rem;padding:.7rem;border-radius:8px;background:#6b728033;overflow-x:auto}.markdown-body pre code{padding:0;background:transparent}.composer{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:12px}textarea{width:100%;min-height:74px;resize:vertical;border:1px solid var(--border);border-radius:10px;padding:10px;font:inherit}button{border:0;border-radius:10px;background:var(--brand);color:#fff;padding:0 16px;font:inherit;cursor:pointer}button:disabled{opacity:.6;cursor:not-allowed}
