:root { --bg:#f6f2e8; --card:#fffdf7; --ink:#1d2420; --muted:#6b706a; --green:#14322a; --gold:#c08a2c; --cyan:#1f7a8c; --red:#a3392f; --line:#e4ddcc; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background:var(--bg); color:var(--ink); padding-bottom:env(safe-area-inset-bottom); }
header { position:sticky; top:0; z-index:5; display:flex; align-items:center; gap:10px; padding:10px 14px; padding-top:max(10px, env(safe-area-inset-top)); background:var(--green); color:#fff; }
header .brand { color:#fff; text-decoration:none; font-weight:700; font-size:17px; flex:1; }
header .brand span { font-weight:400; opacity:.7; }
.conn { font-size:14px; color:#999; } .conn.on { color:#5fd38d; } .conn.off { color:#ff7a6b; }
main { max-width:820px; margin:0 auto; padding:12px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin:0 0 10px; }
#login .card { max-width:360px; margin:40px auto; display:flex; flex-direction:column; gap:10px; }
h2 { margin:18px 4px 8px; font-size:13px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }
#login h2 { margin:0; font-size:20px; text-transform:none; letter-spacing:0; color:var(--ink); }
input, textarea, select { font:inherit; width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:9px; background:#fff; }
textarea { min-height:90px; resize:vertical; }
.btn { display:inline-block; font:inherit; font-weight:600; border:0; border-radius:9px; padding:10px 14px; background:var(--green); color:#fff; text-decoration:none; cursor:pointer; }
.btn.small { padding:5px 10px; font-size:13px; background:var(--gold); }
.btn.ghost { background:transparent; color:var(--green); border:1px solid var(--line); }
.btn.warn { background:var(--red); }
.btn:disabled { opacity:.5; }
.row { display:flex; align-items:center; gap:8px; }
.srow { display:block; text-decoration:none; color:inherit; }
.srow .t { font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.srow .m { font-size:12px; color:var(--muted); }
.pill { display:inline-block; font-size:11px; font-weight:700; padding:1px 7px; border-radius:99px; background:#e9e4d6; color:#555; text-transform:uppercase; }
.pill.running, .pill.starting { background:#d7efe0; color:#17663a; }
.pill.idle { background:#e3eef3; color:var(--cyan); }
.pill.needs_brad { background:#fbe6c4; color:#8a5a0e; }
.pill.failed, .pill.killed { background:#f6dcd8; color:var(--red); }
.muted { color:var(--muted); font-size:13px; }
.err { color:var(--red); font-size:13px; }
.opts { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.opts .btn { padding:6px 10px; font-size:13px; }
.ev { margin:0 0 8px; }
.ev.user_text { background:#eef3ee; border-color:#d3e2d6; }
.ev.assistant_text .body { white-space:pre-wrap; word-wrap:break-word; }
.ev.user_text .body { white-space:pre-wrap; word-wrap:break-word; }
.ev .who { font-size:11px; font-weight:700; color:var(--muted); text-transform:uppercase; margin-bottom:3px; }
.tool { font:12px/1.4 ui-monospace, Menlo, monospace; color:#555; padding:3px 6px; border-left:3px solid var(--line); margin:2px 0 2px 4px; white-space:pre-wrap; word-break:break-all; }
.tool.err { border-left-color:var(--red); }
details.tools { margin:0 0 8px 4px; } details.tools summary { font-size:12px; color:var(--muted); cursor:pointer; }
.composer { position:sticky; bottom:0; background:var(--bg); padding:8px 0 calc(8px + env(safe-area-inset-bottom)); }
.composer textarea { min-height:56px; }
.body code, .body pre { font:12px ui-monospace, Menlo, monospace; background:#f0ece0; border-radius:4px; padding:0 3px; }
.body pre { padding:8px; overflow-x:auto; white-space:pre; }
