:root{--bg:#f6f8f8;--panel:#fff;--ink:#1d2a2c;--muted:#6b7b7d;--line:#dfe6e6;--teal:#2bb3b1;--teal-ink:#0e6e6c;--warn:#fff4e5;--warn-line:#f0b45a;--phi:#fdecec;--phi-line:#e57373}
@media (prefers-color-scheme:dark){:root{--bg:#111718;--panel:#182123;--ink:#e6eeee;--muted:#93a4a6;--line:#2a3638;--teal:#3fd0ce;--teal-ink:#8ee8e6;--warn:#2d2616;--warn-line:#a3772f;--phi:#2e1b1b;--phi-line:#b45a5a}}
*{box-sizing:border-box}body{margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink)}
button{font:inherit;border:0;border-radius:8px;padding:8px 14px;background:var(--teal);color:#fff;cursor:pointer}button.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
input,textarea{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:9px 11px;width:100%}
.muted{color:var(--muted)}.small{font-size:12.5px}.err{color:#c0392b}
.login{display:grid;place-items:center;min-height:100vh;padding:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px;width:min(380px,100%);display:grid;gap:12px}.card h1{font-size:19px;margin:0}
.app{display:grid;grid-template-columns:250px 1fr auto;height:100vh}
aside{background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:14px;gap:10px;min-height:0}
.brand{font-weight:700;color:var(--teal-ink)}#convs{list-style:none;margin:0;padding:0;overflow:auto;flex:1}
#convs li{padding:8px 10px;border-radius:8px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#convs li.on{background:var(--bg);font-weight:600}#convs li .dot{color:var(--teal)}
.side-foot{display:grid;gap:6px}
main{display:flex;flex-direction:column;min-width:0;min-height:0}
header{padding:12px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;background:var(--panel)}
#msgs{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:10px}
.msg{max-width:860px;white-space:pre-wrap;word-wrap:break-word}.msg.user{align-self:flex-end;background:var(--teal);color:#fff;padding:9px 13px;border-radius:12px 12px 2px 12px}
.msg.bot{background:var(--panel);border:1px solid var(--line);padding:11px 14px;border-radius:12px}
.tool{font:12.5px ui-monospace,Consolas,monospace;color:var(--muted);border-left:3px solid var(--line);padding:2px 8px;max-width:860px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool.err{border-color:#c0392b}
.approval{max-width:860px;background:var(--warn);border:1px solid var(--warn-line);border-radius:12px;padding:12px 14px;display:grid;gap:8px}.approval.phi{background:var(--phi);border-color:var(--phi-line)}
.approval pre{margin:0;max-height:200px;overflow:auto;font-size:12px;white-space:pre-wrap}.approval .btns{display:flex;gap:8px}.approval .deny{background:#8a8a8a}
.done{font-size:12px;color:var(--muted)}
#composer{border-top:1px solid var(--line);padding:12px 18px;background:var(--panel);display:grid;gap:8px}#composer .row{display:flex;justify-content:space-between;align-items:center;gap:8px}#composer .row button{margin-left:6px}
#browserPanel{width:min(620px,45vw);border-left:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;gap:8px;padding:10px;min-height:0}
#browserPanel[hidden]{display:none}
.bp-head,.bp-keys{display:flex;gap:6px}.bp-keys input{flex:1}.bp-keys button{padding:8px 10px}
.bp-shot{flex:1;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#000}.bp-shot img{width:100%;display:block;cursor:crosshair}
@media (max-width:820px){.app{grid-template-columns:1fr}aside{display:none}#browserPanel{position:fixed;inset:0;width:auto;z-index:5}}
