:root{--bg:#f4f1ea;--ink:#1d2b28;--green:#14302b;--accent:#2f7d6d;--me:#2f7d6d;--bot:#fff;--line:#d9d3c5;--warn:#a5481f}
@media (prefers-color-scheme:dark){:root{--bg:#101716;--ink:#e8efec;--green:#0b1f1b;--accent:#4fb39f;--me:#2f7d6d;--bot:#1b2624;--line:#2c3a37;--warn:#f0a272}}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font:18px/1.45 -apple-system,system-ui,sans-serif;-webkit-text-size-adjust:100%}
[hidden]{display:none!important}
.screen{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px}
.card{width:100%;max-width:420px;background:var(--bot);border:1px solid var(--line);border-radius:20px;padding:28px}
.card.wide{max-width:640px;align-self:flex-start;margin-top:24px}
h1,h2{margin:0 0 12px}
input,textarea{width:100%;font:inherit;font-size:20px;padding:14px;border-radius:14px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}
button{font:inherit;border:0;border-radius:14px;cursor:pointer}
button.big{background:var(--accent);color:#fff;font-weight:600;padding:14px 20px;min-height:52px}
.card button.big{width:100%;margin-top:14px}
button.ghost{background:transparent;color:#fff;padding:8px 12px;border:1px solid #ffffff55}
.err{color:var(--warn);min-height:1.4em}
#app{height:100%;display:flex;flex-direction:column}
header{background:var(--green);color:#fff;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;display:flex;justify-content:space-between;align-items:center;gap:8px}
header .right{display:flex;gap:10px;align-items:center;font-size:14px;opacity:.95}
.pill{font-size:12px;margin-left:8px;padding:2px 8px;border-radius:99px;background:#ffffff26}
.pill.live{background:#b3261e}
main{flex:1;overflow-y:auto;padding:14px 14px 6px;-webkit-overflow-scrolling:touch}
.b{max-width:92%;padding:12px 14px;border-radius:18px;margin:8px 0;white-space:pre-wrap;word-wrap:break-word}
.b.me{background:var(--me);color:#fff;margin-left:auto;border-bottom-right-radius:6px}
.b.bot{background:var(--bot);border:1px solid var(--line);border-bottom-left-radius:6px}
.b.wait{opacity:.6}
.tbl{max-width:100%;overflow-x:auto;margin:6px 0 10px;background:var(--bot);border:1px solid var(--line);border-radius:14px}
.tbl h4{margin:0;padding:8px 12px 0;font-size:14px;opacity:.8}
table{border-collapse:collapse;font-size:14px;width:100%}
th,td{padding:6px 10px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line)}
th{font-weight:600;opacity:.75}
#chips{display:flex;gap:8px;overflow-x:auto;padding:6px 14px}
#chips button{flex:none;background:var(--bot);color:var(--ink);border:1px solid var(--line);padding:9px 14px;font-size:16px}
form{display:flex;gap:10px;align-items:flex-end;padding:8px 14px calc(10px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line)}
form textarea{resize:none;max-height:140px}
.logrow{border-bottom:1px solid var(--line);padding:10px 0;font-size:16px}
.logrow small{display:block;opacity:.7}
.logbody h3,#logbody h3{margin:14px 0 4px;font-size:15px;opacity:.7}
.logrow details{margin-top:6px}.logrow summary{opacity:.7;font-size:14px}.logrow table{border-collapse:collapse;margin-top:6px;font-size:13px}.logrow th,.logrow td{padding:2px 6px;text-align:left}
