:root{
  --bg:#0e0f13; --panel:#16181f; --ink:#e6e8ee; --muted:#9aa3b2; --accent:#5b8cff;
  --ok:#3ddc97; --err:#ff6b6b; --line:#262a36; --mono:'SFMono-Regular',Consolas,monospace;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,Segoe UI,Roboto,sans-serif;height:100vh}
#app{display:flex;flex-direction:column;height:100vh}
.top{display:flex;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--panel)}
.brand{font-weight:700;letter-spacing:.5px}
.chip{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--muted);border:1px solid var(--line);padding:3px 8px;border-radius:999px}
.chip.status{margin-left:0}
.chip.status.ok{color:var(--ok);border-color:#1f5a40}
.chip.status.err{color:var(--err);border-color:#5a2a2a}
.chip.status.off{color:var(--muted)}
.btn{background:#20242f;color:var(--ink);border:1px solid var(--line);padding:6px 12px;border-radius:8px;cursor:pointer;font-size:13px}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn:hover{filter:brightness(1.1)}
main#chat{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.msg{border:1px solid var(--line);border-radius:10px;padding:10px 12px;max-width:85%}
.msg.user{align-self:flex-end;background:#1b2433}
.msg.assistant{align-self:flex-start;background:var(--panel)}
.msg.tool{border-color:#2c3a52;color:var(--muted);font-family:var(--mono);font-size:12px}
.msg.err{color:var(--err);border-color:#5a2a2a}
.composer{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--line);background:var(--panel)}
#input{flex:1;resize:none;height:48px;background:#0b0d12;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px;font-family:var(--mono)}
.panel{position:fixed;top:0;right:0;width:360px;height:100vh;background:var(--panel);border-left:1px solid var(--line);padding:14px;overflow:auto}
.panel.hidden{display:none}
.panel h3{margin:6px 0 10px;font-size:14px}
.field{margin-bottom:12px}
.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}
.field input,.field select{width:100%;background:#0b0d12;color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:6px}
.toggle-row{display:flex;gap:6px;align-items:center}
.pre{font-family:var(--mono);font-size:11px;white-space:pre-wrap;color:var(--muted)}
.section-title{font-weight:700;margin:14px 0 6px;border-top:1px solid var(--line);padding-top:10px}
.export-chip{display:inline-block;margin-top:6px;padding:6px 10px;background:var(--ok);color:#031; border-radius:6px;font-weight:700}
