:root{--bg:#faf9f5;--surface:#fff;--surface-2:#f0eee6;--text:#1f1e1d;--muted:#6b6a66;--accent:#c96442;--accent-text:#fff;--border:#e5e2d9;--user-bubble:#efece3;--warn:#a86b00;--err:#b3261e;--code-bg:#f3f1ea;--add:#e3f4e6;--del:#fbe4e2;--radius:14px;--app-h:100dvh;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#262624;--surface:#30302e;--surface-2:#3a3a37;--text:#f5f4ef;--muted:#a6a39b;--accent:#d97757;--border:#45443f;--user-bubble:#3d3d3a;--warn:#e0a84a;--err:#f28b82;--code-bg:#1f1f1d;--add:#1f3a27;--del:#4a2422}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);height:100%;color:var(--text);overscroll-behavior:none;margin:0;font:16px/1.5 -apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}#app{height:var(--app-h);overflow:hidden}.app,.screen{flex-direction:column;height:100%;display:flex}.splash{height:100%}.bar{background:var(--bg);border-bottom:1px solid var(--border);padding:calc(env(safe-area-inset-top) + 6px) max(12px, env(safe-area-inset-right)) 6px max(12px, env(safe-area-inset-left));align-items:center;gap:8px;display:flex}.bar h1{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0;font-size:17px;font-weight:600;overflow:hidden}.bar-title{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.bar-title h1{flex:none}.bar-actions{align-items:center;gap:8px;display:flex}.scroll{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.pad{padding:12px 16px calc(env(safe-area-inset-bottom) + 24px)}button{font:inherit;color:inherit;background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:12px;min-height:44px;padding:10px 14px}button:disabled{opacity:.45}button.primary{background:var(--accent);color:var(--accent-text);border-color:#0000;font-weight:600}button.danger{color:var(--err)}button.small{min-height:36px;padding:6px 12px;font-size:15px}button.wide{width:100%;margin-top:12px}button.icon{background:0 0;border:none;min-width:44px;padding:6px;font-size:22px;line-height:1}button.link{color:var(--accent);background:0 0;border:none;min-height:0;padding:8px 0}input,textarea,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;padding:10px 12px;font-size:16px}textarea{resize:none}select.chip{background:var(--surface-2);border-radius:999px;width:auto;padding:6px 10px;font-size:14px}.field-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:16px 0 6px;font-size:13px;display:block}.muted{color:var(--muted)}.small{font-size:13px}.error{color:var(--err)}.empty{color:var(--muted);text-align:center;padding:48px 24px}.group{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:16px 16px 6px;font-size:13px;font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px}.row{text-align:left;border:none;border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;border-radius:0;align-items:center;gap:12px;width:100%;padding:12px 16px;display:flex}.row-icon{text-align:center;width:20px;color:var(--muted)}.state-working .row-icon{color:var(--accent);animation:1.2s ease-in-out infinite pulse}.state-waiting .row-icon{color:var(--warn)}.row-main{flex-direction:column;flex:1;min-width:0;display:flex}.row-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.row-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.badge{background:var(--err);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:13px;display:inline-flex}.sheet-backdrop{z-index:20;background:#00000059;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;padding:12px 12px calc(env(safe-area-inset-bottom) + 12px);border-radius:16px 16px 0 0;flex-direction:column;gap:8px;display:flex}.sheet-title{text-align:center;color:var(--muted);padding:4px 0 8px;font-size:14px}.sheet .cancel{font-weight:600}.project-list{flex-direction:column;gap:6px;max-height:38vh;margin:8px 0;display:flex;overflow-y:auto}.project{text-align:left;background:var(--surface)}.project.selected,.q-opt.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.new-project{gap:8px;margin-top:8px;display:flex}.messages{flex-direction:column;gap:10px;padding:12px 16px 16px;display:flex}.msg.user{flex-direction:column;align-self:flex-end;align-items:flex-end;gap:4px;max-width:85%;display:flex}.bubble{background:var(--user-bubble);white-space:pre-wrap;word-break:break-word;border-radius:18px;padding:10px 14px}.msg.user.sending .bubble{opacity:.6}.msg.assistant{word-break:break-word;max-width:100%}.md p{margin:0 0 .6em}.md>:last-child{margin-bottom:0}.md ul,.md ol{margin:0 0 .6em;padding-left:1.3em}.md pre,.tool-in,.tool-out,.diff-body{background:var(--code-bg);white-space:pre;border-radius:10px;margin:6px 0;padding:10px;font:13px/1.45 ui-monospace,SF Mono,Menlo,monospace;overflow-x:auto}.md code{background:var(--code-bg);border-radius:5px;padding:1px 4px;font:14px ui-monospace,SF Mono,Menlo,monospace}.md pre code{background:0 0;padding:0}.md a{color:var(--accent)}.md table{border-collapse:collapse;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--border);padding:4px 8px}.thinking summary{color:var(--muted);font-size:14px}.tool{border:1px solid var(--border);background:var(--surface);border-radius:12px;overflow:hidden}.tool.err{border-color:var(--err)}.tool-head{text-align:left;background:0 0;border:none;border-radius:0;align-items:center;gap:8px;width:100%;min-height:40px;padding:8px 12px;font-size:14px;display:flex}.tool-status{width:16px}.tool-name{font-weight:600}.chev{color:var(--muted)}.tool-sum{min-width:0;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font:13px ui-monospace,SF Mono,Menlo,monospace;overflow:hidden}.tool-body{padding:0 12px 10px}.tool-out{max-height:40vh;overflow:auto}.tool-children{border-left:2px solid var(--border);flex-direction:column;gap:8px;margin:6px 0;padding-left:10px;display:flex}.todos{margin:4px 0;padding:0;font-size:14px;list-style:none}.todos .completed{color:var(--muted);text-decoration:line-through}.diff-file{color:var(--muted);word-break:break-all;margin-top:4px;font-size:12px}.diff-body .add{background:var(--add)}.diff-body .del{background:var(--del)}.diff-body .trunc{color:var(--muted);font-style:italic}.tool-badges{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}.thumb{border-radius:12px;max-width:180px;max-height:180px}.file-chip{background:var(--surface-2);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:14px;display:inline-flex}.file-chip button{background:0 0;border:none;min-height:0;padding:0 2px;font-size:16px}.notice{background:var(--surface-2);border-radius:10px;padding:8px 12px;font-size:14px}.notice.warn{color:var(--warn)}.notice.error{color:var(--err)}.banner{padding:8px 16px;font-size:14px}.banner.error{background:var(--del);color:var(--err)}.banner.warn,.banner.info{background:var(--surface-2);color:var(--warn)}.typing{gap:4px;padding:6px 0;display:flex}.typing span{background:var(--muted);border-radius:50%;width:7px;height:7px;animation:1s infinite pulse}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.perm{border-radius:var(--radius);background:var(--surface);border:1px solid var(--warn);max-height:55vh;margin:0 12px 8px;padding:12px;overflow-y:auto;box-shadow:0 -2px 12px #00000014}.perm-title{margin-bottom:6px;font-size:15px}.perm-decision{margin:4px 0;font-size:14px}.perm-decision-msg{white-space:pre-wrap;word-break:break-word;margin:4px 0;font-size:14px}.perm-answers{margin:4px 0}.perm-answers dt{margin-top:6px}.perm-answers dd{white-space:pre-wrap;word-break:break-word;margin:0;font-size:14px}.perm-body{max-height:30vh;overflow:auto}.perm-body .tool-in{white-space:pre-wrap;word-break:break-all}.pending-more{text-align:center;margin:0 12px 8px}.perm-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.perm-actions button{flex:1;min-width:30%}.perm input,.perm textarea{margin-top:8px}.q+.q{margin-top:12px}.q-head{margin-bottom:6px;font-weight:600}.chip-label{background:var(--surface-2);border-radius:6px;margin-right:6px;padding:2px 6px;font-size:12px}.q-opts{flex-direction:column;gap:6px;display:flex}.q-opt{text-align:left;flex-direction:column;display:flex}.composer{padding:8px 12px calc(env(safe-area-inset-bottom) + 8px);border-top:1px solid var(--border);background:var(--bg)}.composer-row{align-items:flex-end;gap:6px;display:flex}.composer textarea{border-radius:20px;max-height:160px;padding:9px 14px}.composer .send,.composer .stop{background:var(--accent);color:var(--accent-text);border-radius:50%;width:40px;min-width:40px;height:40px;min-height:40px;margin-bottom:2px;font-size:18px}.composer .send:disabled{background:var(--surface-2);color:var(--muted)}.att-row{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.readonly{padding:12px 16px calc(env(safe-area-inset-bottom) + 12px);color:var(--muted);text-align:center;border-top:1px solid var(--border);font-size:14px}.readonly p{margin:0 0 4px}.conn-bar{top:env(safe-area-inset-top);z-index:25;background:var(--warn);color:#fff;text-align:center;padding:2px 8px;font-size:13px;position:fixed;left:0;right:0}.toast{left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom) + 84px);z-index:30;background:var(--text);color:var(--bg);text-align:center;border-radius:12px;padding:12px 16px;position:fixed}.update{top:calc(env(safe-area-inset-top) + 8px);z-index:30;position:fixed;left:50%;transform:translate(-50%)}.login{justify-content:center;align-items:center;height:100%;padding:24px;display:flex}.login-card{text-align:center;width:100%;max-width:360px}.login-logo{border-radius:16px;width:72px;height:72px}.login-card h1{margin:12px 0;font-size:24px}.login .code{text-align:center;letter-spacing:.15em;text-transform:uppercase;margin-top:12px;font-size:20px}
