:root{--bg:#0a0a0f;--panel:#14141c;--border:#26263a;--text:#ededf2;--muted:#9a9ab0;--purple:#b75fff;--purple-deep:#9200e1}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--purple)}.wrap{max-width:860px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.header{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}.logo{font-size:22px;font-weight:700;color:var(--purple);letter-spacing:-.5px}.tag{color:var(--muted);font-size:13px}.spacer{flex:1 1}button,input,select,textarea{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:14px}button{cursor:pointer}button.primary{background:var(--purple-deep);border-color:var(--purple-deep);color:#fff;font-weight:600}button.ghost{background:transparent}.messages{flex:1 1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px}.msg{max-width:92%}.msg.user{align-self:flex-end;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px 14px}.msg.assistant{align-self:flex-start}.answer{white-space:pre-wrap;line-height:1.55}.badge{display:inline-flex;align-items:center;font-weight:600;color:var(--purple);border:1px solid var(--purple);border-radius:999px;padding:3px 10px;background:rgba(146,0,225,.12)}.badge,.cites{gap:6px;margin-top:8px;font-size:12px}.cites{color:var(--muted);display:flex;flex-wrap:wrap}.cite{border:1px solid var(--border);border-radius:6px;padding:2px 7px;text-decoration:none}.composer{display:flex;gap:8px;padding:14px 20px;border-top:1px solid var(--border)}.composer textarea{flex:1 1;resize:none;height:44px}.row{gap:8px}.modal-bg,.row{display:flex;align-items:center}.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.6);justify-content:center}.modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:20px;width:460px;max-width:90vw}.muted{color:var(--muted);font-size:13px}