:root{--bg:#f4f6f5;--surface:#fff;--text:#17201d;--muted:#5d6a66;--line:#dbe2df;--brand:#14332c;--brand-2:#1f5a4c;--accent:#c8743a;--ok:#1d7a4f;--ok-bg:#e2f3ea;--bad:#b3261e;--bad-bg:#fbe5e3;--attn:#8a5a00;--attn-bg:#fff1cc;--run:#1f4f8a;--run-bg:#e3edf9;--user:#1f5a4c;--user-text:#fff;--code-bg:#eef1f0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f1513;--surface:#182120;--text:#e6eeeb;--muted:#9aa8a3;--line:#2a3634;--brand:#0b1f1a;--brand-2:#3f9a80;--ok:#6fd3a0;--ok-bg:#12301f;--bad:#ff8a80;--bad-bg:#3a1513;--attn:#ffd36b;--attn-bg:#3a2c08;--run:#8bb8f0;--run-bg:#14263d;--user:#24584b;--code-bg:#111a18;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;overscroll-behavior-y:none;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input,select,textarea{font:inherit;color:inherit}h1{margin:.25rem 0;font-size:1.5rem}h2{margin:0;font-size:1.05rem}pre,code{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.86rem}.muted{color:var(--muted)}.small{font-size:.85rem}.pad{padding:16px}.error{color:var(--bad);margin:0}.warn-text{color:var(--attn)}.stack{flex-direction:column;gap:12px;display:flex}.stack.tight{gap:6px}.row{justify-content:space-between;align-items:center;gap:12px;display:flex}.center-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;padding:24px;display:flex}.page{flex-direction:column;max-width:760px;height:100dvh;margin:0 auto;display:flex;position:relative}.scroll{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.top{padding:calc(env(safe-area-inset-top) + 8px) 8px 8px;background:var(--brand);color:#fff;align-items:center;gap:8px;min-height:56px;display:flex}.top .logo{color:#f0b07f;padding:0 10px;font-family:ui-monospace,monospace;font-weight:700}.top-title{flex:1;min-width:0}.top-title .t1{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.top-title .t2{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.top-title .t2 .muted{color:#b9cdc6}.icon-btn{color:#fff;background:0 0;border:0;border-radius:10px;min-width:44px;min-height:44px;font-size:1.6rem}.icon-btn:active{background:#ffffff1f}.banner{padding:8px 14px;font-size:.9rem}.banner.bad{background:var(--bad-bg);color:var(--bad)}.banner.warn{background:var(--attn-bg);color:var(--attn)}.banner.info{background:var(--run-bg);color:var(--run)}.pill{background:var(--line);color:var(--text);white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:.8rem;font-weight:600;display:inline-block}.pill.small{padding:1px 7px;font-size:.72rem}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.bad{background:var(--bad-bg);color:var(--bad)}.pill.attn{background:var(--attn-bg);color:var(--attn)}.pill.run{background:var(--run-bg);color:var(--run)}.pill.muted{color:var(--muted)}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;min-height:44px;padding:8px 16px;font-weight:600}.btn:disabled{opacity:.55}.btn.big{min-height:52px;font-size:1.02rem}.btn.primary{background:var(--brand-2);border-color:var(--brand-2);color:#fff}.btn.danger{color:var(--bad);border-color:var(--bad);background:var(--surface)}.btn.ghost{background:0 0}.link{color:var(--brand-2);background:0 0;border:0;align-self:flex-start;padding:4px 0;text-decoration:underline}label{color:var(--muted);flex-direction:column;gap:4px;font-size:.92rem;display:flex}input,select,textarea{border:1px solid var(--line);background:var(--surface);min-height:46px;color:var(--text);border-radius:12px;padding:10px 12px;font-size:16px}label.switch{color:var(--text);flex-direction:row;align-items:center;gap:12px;min-height:44px}label.switch input{width:22px;height:22px;min-height:0;accent-color:var(--brand-2);flex-shrink:0}fieldset{border:0;min-width:0;margin:0;padding:0}.auth{flex-direction:column;gap:8px;max-width:420px;margin:0 auto;padding:48px 20px;display:flex}.auth img{border-radius:18px}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px}.code{letter-spacing:.12em;text-align:center;background:var(--code-bg);-webkit-user-select:all;user-select:all;border-radius:12px;padding:12px;font:700 2rem/1.2 ui-monospace,monospace}.cmd{background:var(--code-bg);white-space:pre-wrap;word-break:break-all;-webkit-user-select:all;user-select:all;border-radius:10px;margin:0;padding:10px 12px}.tabs{gap:8px;padding:12px 16px 4px;display:flex}.tab{border:1px solid var(--line);min-height:40px;color:var(--muted);background:0 0;border-radius:10px;flex:1;font-weight:600}.tab.on{background:var(--surface);color:var(--text);border-color:var(--brand-2)}.conv-list{flex-direction:column;gap:8px;margin:0;padding:8px 12px 96px;list-style:none;display:flex}.conv{text-align:left;background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:14px;flex-direction:column;gap:4px;width:100%;padding:12px 14px;display:flex}.conv-top,.conv-bottom{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.conv-bottom{justify-content:flex-start}.conv-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:32px 20px;display:flex}.fab{right:16px;bottom:calc(env(safe-area-inset-bottom) + 16px);background:var(--accent);color:#fff;border:0;border-radius:26px;min-height:52px;padding:0 20px;font-size:1rem;font-weight:700;position:absolute;box-shadow:0 4px 14px #0003}.messages{flex-direction:column;gap:10px;padding:12px 12px 16px;display:flex}.msg{overflow-wrap:anywhere;border-radius:16px;min-width:0;max-width:100%;padding:10px 14px}.msg.user{background:var(--user);max-width:88%;color:var(--user-text);border-bottom-right-radius:4px;align-self:flex-end}.msg.user .text{white-space:pre-wrap}.msg.user .meta{opacity:.8;text-align:right;margin-top:4px;font-size:.72rem}.msg.assistant{background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:4px}.msg.streaming{border-style:dashed}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md pre{background:var(--code-bg);border-radius:10px;max-width:100%;padding:10px;overflow-x:auto}.md code{background:var(--code-bg);border-radius:4px;padding:1px 4px}.md pre code{background:0 0;padding:0}.md table{border-collapse:collapse;display:block;overflow-x:auto}.md td,.md th{border:1px solid var(--line);padding:4px 8px}.md img{max-width:100%}.md a{color:var(--brand-2)}.tools{flex-direction:column;gap:2px;min-width:0;padding:4px 6px;display:flex}.tool{color:var(--muted);gap:8px;min-width:0;font-size:.84rem;display:flex}.tool-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:ui-monospace,monospace;font-size:.8rem;overflow:hidden}.tool.done .tool-mark{color:var(--ok)}.tool.err .tool-mark{color:var(--bad)}.perm{border:2px solid var(--line);background:var(--surface);border-radius:16px;flex-direction:column;gap:10px;min-width:0;padding:14px;display:flex}.perm.open{border-color:var(--attn);background:var(--attn-bg)}.perm-kind{text-transform:uppercase;letter-spacing:.04em;color:var(--attn);font-size:.78rem;font-weight:700}.perm.closed .perm-kind{color:var(--muted)}.perm-title{overflow-wrap:anywhere;font-weight:600}.perm-detail{background:var(--code-bg);color:var(--text);white-space:pre-wrap;word-break:break-word;border-radius:10px;max-height:260px;margin:0;padding:10px;overflow:auto}.perm-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.perm-status{color:var(--muted);font-weight:600}.perm-status.allowed,.perm-status.answered{color:var(--ok)}.perm-status.denied,.perm-status.expired{color:var(--bad)}.question{flex-direction:column;gap:6px;display:flex}.question legend{color:var(--text);margin-bottom:6px;font-weight:600}.option{background:var(--surface);border:1px solid var(--line);color:var(--text);border-radius:10px;flex-direction:row;align-items:flex-start;gap:10px;min-height:44px;padding:8px 10px}.option input{width:20px;height:20px;min-height:0;accent-color:var(--brand-2);flex-shrink:0;margin-top:2px}.other{width:100%}.divider{text-align:center;color:var(--muted);padding:2px 8px;font-size:.8rem}.divider.error{color:var(--bad)}.divider.interrupted{color:var(--attn)}.notice{color:var(--muted);text-align:center;margin:0;padding:0 12px;font-size:.85rem}.notice.warning{color:var(--attn)}.notice.error{color:var(--bad)}.typing{color:var(--muted);align-items:center;gap:4px;padding:4px 8px;font-size:.85rem;display:flex}.typing span{background:var(--muted);border-radius:50%;width:6px;height:6px;animation:1.2s infinite blink}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}.typing em{margin-left:6px;font-style:normal}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.composer{border-top:1px solid var(--line);background:var(--surface);padding:8px 10px calc(env(safe-area-inset-bottom) + 8px);flex-direction:column;gap:6px;display:flex}.composer-hint{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;font-size:.84rem;display:flex}.composer-hint .btn{flex-shrink:0}.composer-row{align-items:flex-end;gap:8px;display:flex}.composer textarea{resize:none;flex:1;min-width:0;max-height:180px;line-height:1.4}.send{min-width:92px;min-height:46px}.sheet-bg{z-index:10;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:760px;padding:18px 16px calc(env(safe-area-inset-bottom) + 18px);border-radius:18px 18px 0 0}
