:root { --ink:#0e1116; --muted:#5b6472; --blue:#2f43e0; --bg:#f6f7fb;
  --card:#fff; --red:#ee2440; --green:#22c55e; --amber:#d97706; }
* { box-sizing:border-box; margin:0; padding:0; }
body { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  background:var(--bg); color:var(--ink); line-height:1.5; }
.wrap { max-width:760px; margin:0 auto; padding:24px; }
.card { background:var(--card); border:1px solid rgba(0,0,0,.07); border-radius:14px;
  padding:24px; box-shadow:0 6px 24px rgba(0,0,0,.05); margin-bottom:20px; }
.login { max-width:380px; margin:8vh auto 0; }
h1 { font-size:22px; letter-spacing:-.02em; } h2 { font-size:17px; margin-bottom:14px; }
.muted { color:var(--muted); font-size:14px; }
label { display:block; margin:14px 0 4px; font-size:14px; font-weight:600; }
input { width:100%; padding:10px 12px; border:1px solid #d6dae3; border-radius:9px; font-size:15px; }
button { margin-top:16px; background:var(--ink); color:#fff; border:0; border-radius:999px;
  padding:10px 18px; font-weight:600; cursor:pointer; }
button.ghost { background:transparent; color:var(--ink); border:1px solid #d6dae3; margin:0; }
button:disabled { opacity:.4; cursor:not-allowed; }
.error { color:var(--red); font-size:14px; margin-top:10px; }
.notice { background:#fff7ed; border:1px solid #fed7aa; color:#7c2d12;
  padding:12px 14px; border-radius:10px; font-size:14px; margin-bottom:16px; }
.topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.topbar form { margin:0; } .topbar button { margin:0; }
.badge { font-size:12px; padding:2px 8px; border-radius:999px; margin-left:6px; font-weight:600; }
.badge.ok { background:#dcfce7; color:#166534; } .badge.warn { background:#fef3c7; color:#92400e; }
ul.tools { list-style:none; } ul.tools li { display:flex; align-items:center;
  justify-content:space-between; gap:12px; padding:14px 0; border-top:1px solid #eef0f4; }
ul.tools li:first-child { border-top:0; }
.tool-run { display:flex; gap:8px; align-items:center; margin:0; }
.tool-run input { width:110px; margin:0; } .tool-run button { margin:0; }
pre { background:#0e1116; color:#e6edf3; padding:14px; border-radius:10px;
  white-space:pre-wrap; word-break:break-word; font-size:13px; min-height:60px;
  max-height:60vh; overflow:auto; margin-top:14px; }
a.btn, .btn { display:inline-block; background:var(--ink); color:#fff; border:0;
  border-radius:999px; padding:9px 16px; font-weight:600; font-size:14px; cursor:pointer; }
.btn.ghost, a.btn.ghost { background:transparent; color:var(--ink); border:1px solid #d6dae3; }
.run-controls { display:flex; gap:10px; align-items:center; }
.run-controls .ghost { margin:0; }
.topbar a { color:var(--blue); font-weight:600; }
.nav-actions { display:flex; gap:14px; align-items:center; }
.nav-actions form { margin:0; } .nav-actions button { margin:0; }
table.runs { width:100%; border-collapse:collapse; font-size:14px; }
table.runs th, table.runs td { text-align:left; padding:8px 10px; border-bottom:1px solid #eef0f4; }
table.runs th { font-size:12px; text-transform:uppercase; color:var(--muted); letter-spacing:.03em; }
.chat-log { display:flex; flex-direction:column; gap:10px; max-height:60vh; overflow:auto; padding:4px; }
.bubble { padding:10px 14px; border-radius:14px; max-width:85%; white-space:pre-wrap; word-break:break-word; font-size:15px; }
.bubble.user { align-self:flex-end; background:var(--blue); color:#fff; border-bottom-right-radius:4px; }
.bubble.assistant { align-self:flex-start; background:#eef0f4; color:var(--ink); border-bottom-left-radius:4px; }
.bubble.assistant.pending { color:var(--muted); font-style:italic; }
.bubble.error { align-self:flex-start; background:#fee2e2; color:#991b1b; }
.chat-input { display:flex; gap:8px; margin-top:14px; }
.chat-input textarea { flex:1; resize:vertical; font:inherit; padding:10px 12px; border:1px solid #d6dae3; border-radius:10px; }
.chat-input button { margin:0; }
#hint { margin-top:8px; }
.launcher { display:flex; flex-wrap:wrap; gap:10px; }
