*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f172a;--panel:#1e293b;--line:#334155;--edge:#0b1220;--text:#e2e8f0;--muted:#64748b;--accent:#7c3aed;--accent-2:#a78bfa;--err:#ef4444}body,html{height:100%}body{font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text)}.app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.25rem;background:var(--panel);border-bottom:1px solid var(--line);flex-shrink:0}.brand{font-size:1.15rem;font-weight:700;letter-spacing:-.02em}.brand span{color:var(--accent-2)}.picker{display:flex;gap:.5rem;flex-wrap:wrap}.picker select{background:var(--edge);color:var(--text);border:1px solid var(--line);border-radius:.5rem;padding:.45rem .7rem;font-size:.88rem;cursor:pointer}.picker select:disabled{opacity:.4;cursor:not-allowed}.picker-status{font-size:.85rem;color:var(--muted)}.picker-status.err{color:var(--err)}.workspace{flex:1 1;display:grid;grid-template-columns:1fr;overflow:hidden}.workspace.split{grid-template-columns:1fr 1fr}.chat{display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--line)}.messages{flex:1 1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.empty{margin:auto;text-align:center;color:var(--muted);line-height:1.8}.empty .hint{font-size:.85rem}.msg{display:flex;flex-direction:column;gap:.4rem}.msg.user{align-items:flex-end}.msg.assistant{align-items:flex-start}.bubble{max-width:80%;padding:.7rem 1rem;border-radius:1rem;line-height:1.6;font-size:.94rem;white-space:pre-wrap;word-break:break-word}.msg.user .bubble{background:var(--accent);color:#fff;border-bottom-right-radius:.25rem}.msg.assistant .bubble{background:var(--panel);border-bottom-left-radius:.25rem}.bubble.typing{color:var(--muted);font-style:italic}.bubble.err{background:#3b1116;color:#fca5a5}.sources{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;padding-left:.25rem}.sources-label{font-size:.75rem;color:var(--muted)}.chip{background:var(--edge);border:1px solid var(--line);color:var(--accent-2);border-radius:999px;padding:.15rem .6rem;font-size:.75rem;cursor:pointer}.chip:hover{border-color:var(--accent)}.composer{display:flex;gap:.6rem;padding:1rem 1.25rem;border-top:1px solid var(--line);background:var(--edge);flex-shrink:0}.composer input{flex:1 1;background:var(--panel);border:1px solid var(--line);border-radius:.6rem;padding:.7rem .9rem;color:var(--text);font-size:.94rem;outline:none}.composer input:focus{border-color:var(--accent)}.composer button{background:var(--accent);color:#fff;border:none;border-radius:.6rem;padding:0 1.3rem;font-size:.92rem;font-weight:500;cursor:pointer}.composer button:disabled{opacity:.45;cursor:not-allowed}.pdf-pane{display:flex;flex-direction:column;overflow:hidden;background:var(--edge)}.pdf-head{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;background:var(--panel);border-bottom:1px solid var(--line)}.pdf-title{font-size:.85rem;color:var(--accent-2)}.pdf-head button{background:none;border:none;color:var(--muted);font-size:1.4rem;cursor:pointer;line-height:1}.pdf-head button:hover{color:var(--text)}.pdf-pane iframe{flex:1 1;width:100%;border:none;background:#fff}.pdf-status{padding:1.5rem;color:var(--muted);font-size:.85rem}.pdf-status.err{color:var(--err)}@media (max-width:720px){.workspace.split{grid-template-columns:1fr}.workspace.split .chat{display:none}}