:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fdfcf8;--ink:#141716;--ink-strong:#0f1514;--muted:#4e5a58;--soft:#74807d;--accent:#0d6d66;--accent-hover:#0a5a54;--accent-soft:#eef7f4;--accent-tint:#dff4f0;--line:#e2e7e4;--line-strong:#cfdcd8;--panel:#ffffffdb;--card:#f6faf8;--code-bg:#1a2322;--code-ink:#e0ede8;--danger:#b42318;--danger-soft:#fef3f2;--warn:#9a5b00;--shadow:0 12px 30px #0f141414;--radius:18px;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;color:var(--ink);background:var(--bg);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Space Grotesk,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body,#root{height:100%}body{background:radial-gradient(1200px 600px at 12% -20%, #dff4f0 0%, #dff4f000 60%), radial-gradient(900px 500px at 110% 10%, #eaf1ff 0%, #eaf1ff00 55%), var(--bg);background-attachment:fixed;margin:0}button,input,textarea{font:inherit;color:inherit}a{color:var(--accent)}svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.muted{color:var(--muted)}.button{border:1px solid var(--line-strong);color:#2a3231;cursor:pointer;background:#fffc;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:.92rem;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.button:disabled{opacity:.45;cursor:default}.button.wide{width:100%}.icon-button{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:var(--accent-soft);color:var(--accent)}.icon-button.small{width:28px;height:28px}.icon-button.small svg{width:15px;height:15px}.link-button{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:.82rem;font-weight:600}.link-button:hover{text-decoration:underline}.link-button.danger{color:var(--danger)}.auth-layout{place-items:center;min-height:100%;padding:24px;display:grid}.auth-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:min(440px,100%);box-shadow:var(--shadow);flex-direction:column;gap:16px;padding:32px;animation:.5s ease-out both fade-up;display:flex}.auth-card h1{color:var(--ink-strong);margin:4px 0 0;font-size:1.6rem}.auth-card p{margin:0}.brand{color:var(--ink-strong);align-items:center;gap:10px;font-size:1.05rem;display:flex}.brand img{border-radius:8px}.brand strong{color:var(--accent)}.brand-large{font-size:1.15rem}.notice{color:var(--warn);background:#fff8eb;border:1px solid #f4dfb5;border-radius:10px;padding:10px 14px;font-size:.9rem}.divider{color:var(--soft);text-transform:uppercase;letter-spacing:.12em;align-items:center;gap:12px;font-size:.8rem;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.key-form{gap:8px;display:flex}.key-form input{border:1px solid var(--line-strong);min-width:0;font-family:var(--mono);background:#fff;border-radius:10px;flex:1;padding:9px 12px;font-size:.85rem}.key-form input:focus,.rename-input:focus,.model-filter:focus{outline:2px solid var(--accent-tint);border-color:var(--accent)}.error-text{color:var(--danger);font-size:.88rem}.hint{color:var(--soft);font-size:.82rem}.row{flex-wrap:wrap;gap:10px;display:flex}.app{grid-template-columns:284px minmax(0,1fr);height:100%;display:grid}.sidebar{border-right:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff9e;flex-direction:column;gap:12px;min-height:0;padding:16px 12px 12px;display:flex}.sidebar-head{justify-content:space-between;align-items:center;padding:2px 6px;display:flex}.close-button,.menu-button,.scrim{display:none}.new-chat{margin:0 4px}.conversation-list{flex:1;min-height:0;padding:0 2px;overflow-y:auto}.list-label{letter-spacing:.14em;text-transform:uppercase;color:var(--soft);margin:14px 10px 6px;font-size:.72rem;font-weight:600}.conversation-list ul{grid-template-columns:minmax(0,1fr);gap:2px;margin:0;padding:0;list-style:none;display:grid}.list-empty{color:var(--soft);margin:16px 10px;font-size:.88rem}.conversation{border-radius:10px;align-items:center;min-height:38px;display:flex;position:relative}.conversation:hover,.conversation.active{background:var(--accent-soft)}.conversation.active .conversation-title{color:var(--accent);font-weight:600}.conversation-open{text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:8px;min-width:0;padding:8px 10px;display:flex}.conversation-title{text-overflow:ellipsis;white-space:nowrap;color:#2a3231;min-width:0;font-size:.9rem;overflow:hidden}.conversation-actions{padding-right:4px;display:none}.conversation:hover .conversation-actions,.conversation:focus-within .conversation-actions{display:flex}.rename-input{border:1px solid var(--line-strong);border-radius:8px;width:100%;margin:3px;padding:6px 8px;font-size:.9rem}.confirm{align-items:center;gap:10px;padding:8px 10px;font-size:.85rem;display:flex}.confirm span{color:var(--danger);flex:1}.running-dot{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px;animation:1.4s ease-in-out infinite pulse}.sidebar-foot{border-top:1px solid var(--line);padding-top:10px;position:relative}.account{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:10px;width:100%;padding:8px;display:flex}.account:hover{background:var(--accent-soft)}.avatar{background:var(--accent);color:#fff;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-weight:700;display:grid}.account-text{flex-direction:column;min-width:0;display:flex}.account-name{text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:600;overflow:hidden}.account-meta{color:var(--soft);align-items:center;gap:6px;font-size:.76rem;display:flex}.stream-dot{background:#c9a227;border-radius:50%;width:7px;height:7px}.stream-dot.open{background:#2f9e6e}.account-menu{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:12px;flex-direction:column;padding:6px;display:flex;position:absolute;bottom:calc(100% + 6px);left:4px;right:4px}.account-menu button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:9px 10px}.account-menu button:hover{background:var(--accent-soft);color:var(--accent)}.main{flex-direction:column;min-width:0;min-height:0;display:flex}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fdfcf8b3;align-items:center;gap:10px;height:56px;padding:0 20px;display:flex}.topbar-title{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-strong);flex:1;margin:0;font-size:1rem;font-weight:600;overflow:hidden}.stream-state{color:var(--warn);font-size:.82rem}.thread{scroll-behavior:auto;flex:1;min-height:0;overflow-y:auto}.thread-inner{flex-direction:column;gap:14px;max-width:820px;margin:0 auto;padding:28px 24px 24px;display:flex}.thread-loading{text-align:center;color:var(--soft);padding:48px}.empty{text-align:center;flex-direction:column;align-items:center;gap:14px;max-width:640px;margin:0 auto;padding:12vh 24px 24px;animation:.5s ease-out both fade-up;display:flex}.empty-logo{border-radius:14px}.empty h2{color:var(--ink-strong);margin:0;font-size:clamp(1.5rem,3vw,2rem)}.empty p{max-width:520px;margin:0}.suggestions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px;display:flex}.suggestion{border:1px solid var(--line-strong);color:#2a3231;cursor:pointer;background:#fffc;border-radius:999px;padding:9px 14px;font-size:.88rem;transition:border-color .15s,color .15s}.suggestion:hover{border-color:var(--accent);color:var(--accent)}.message.user{justify-content:flex-end;display:flex}.bubble{background:var(--accent);color:#fff;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:18px 18px 4px;max-width:min(640px,85%);padding:10px 16px}.message.assistant{flex-direction:column;gap:8px;padding:2px;display:flex}.message-meta{color:var(--soft);align-items:center;gap:12px;font-size:.76rem;display:flex}.message-error{background:var(--danger-soft);color:var(--danger);white-space:pre-wrap;border:1px solid #f6d3cf;border-radius:12px;padding:10px 14px;font-size:.9rem}.message-note{color:var(--soft);font-size:.82rem;font-style:italic}.reasoning{border-left:1px solid var(--line-strong);color:var(--muted);padding-left:12px}.reasoning summary{cursor:pointer;color:var(--soft);font-size:.82rem;font-weight:600}.reasoning-text{white-space:pre-wrap;max-height:260px;margin-top:6px;font-size:.86rem;overflow-y:auto}.activity{color:var(--muted);gap:4px;margin:0;padding:0;font-size:.85rem;list-style:none;display:grid}.activity li.running:after{content:" …";color:var(--accent)}.typing{gap:5px;padding:8px 2px;display:flex}.typing span{background:var(--accent);opacity:.35;border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite blink}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}.markdown{overflow-wrap:anywhere;font-size:.98rem;line-height:1.65}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.message.streaming .markdown>:last-child:after{content:"";vertical-align:text-bottom;background:var(--accent);width:8px;height:1em;margin-left:2px;animation:1s steps(2,start) infinite blink;display:inline-block}.markdown h1,.markdown h2,.markdown h3{color:var(--ink-strong);margin:1.2em 0 .5em;line-height:1.3}.markdown h1{font-size:1.4rem}.markdown h2{font-size:1.2rem}.markdown h3{font-size:1.05rem}.markdown p,.markdown ul,.markdown ol,.markdown pre,.markdown table,.markdown blockquote{margin:0 0 .85em}.markdown ul,.markdown ol{padding-left:1.4em}.markdown li+li{margin-top:.25em}.markdown code{font-family:var(--mono);background:#f0f4f2;border-radius:5px;padding:2px 6px;font-size:.86em}.markdown pre{background:var(--code-bg);border-radius:12px;padding:16px 18px;overflow-x:auto}.markdown pre code{color:var(--code-ink);background:0 0;padding:0;font-size:.84rem;line-height:1.55}.markdown blockquote{border-left:1px solid var(--line-strong);background:var(--card);color:var(--muted);border-radius:0 8px 8px 0;padding:10px 16px}.markdown table{border-collapse:collapse;max-width:100%;display:block;overflow-x:auto}.markdown th,.markdown td{border:1px solid var(--line);text-align:left;padding:7px 12px}.markdown th{background:var(--card);font-weight:600}.markdown hr{border:0;border-top:1px solid var(--line);margin:1.5em 0}.tool-card{border:1px solid var(--line);background:#fffc;border-radius:14px;overflow:hidden}.tool-card.status-error{border-color:#f0d2cd}.tool-head{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:10px 14px;font-size:.85rem;display:flex}.tool-head:hover{background:var(--card)}.tool-dot{background:#2f9e6e;border-radius:50%;flex:none;width:8px;height:8px}.status-error .tool-dot{background:var(--danger)}.status-cancelled .tool-dot,.status-interrupted .tool-dot{background:var(--soft)}.tool-dot.live{background:var(--accent);animation:1.4s ease-in-out infinite pulse}.tool-name{color:var(--ink-strong);font-weight:700}.tool-host{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:1px 8px;font-size:.76rem;font-weight:600}.tool-summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--mono);color:var(--muted);flex:1;font-size:.8rem;overflow:hidden}.tool-state{color:var(--soft);flex:none;font-size:.78rem}.status-error .tool-state{color:var(--danger)}.tool-body{border-top:1px solid var(--line)}.tool-command,.tool-output{font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:12px 14px;font-size:.8rem;line-height:1.5}.tool-command{background:var(--card);color:#2a3231;border-bottom:1px solid var(--line);max-height:180px;overflow-y:auto}.tool-output{background:var(--code-bg);color:var(--code-ink);max-height:360px;overflow-y:auto}.tool-note{background:var(--code-bg);color:#93a8a2;padding:6px 14px 8px;font-size:.76rem}.composer-wrap{width:100%;max-width:868px;margin:0 auto;padding:8px 24px 14px}.composer-error{background:var(--danger-soft);color:var(--danger);border:1px solid #f6d3cf;border-radius:12px;align-items:center;gap:10px;margin-bottom:8px;padding:8px 8px 8px 14px;font-size:.88rem;display:flex}.composer-error span{flex:1}.composer{border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow);background:#fffffff0;flex-direction:column;gap:8px;padding:12px 12px 10px 16px;display:flex}.composer:focus-within{border-color:var(--accent)}.composer textarea{resize:none;background:0 0;border:0;outline:0;width:100%;min-height:26px;max-height:240px;padding:4px 0;font-size:1rem;line-height:1.5}.composer-bar{align-items:center;gap:8px;display:flex}.spacer{flex:1}.send{border-radius:12px;width:40px;height:40px;padding:0}.stop{color:var(--danger);border-color:#f0c6bf}.stop svg{fill:currentColor;stroke:none}.stop:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.composer-hint{color:var(--soft);text-align:center;margin:6px 4px 0;font-size:.76rem}.toggle{color:#2a3231;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:7px;padding:6px 8px;font-size:.85rem;font-weight:600;display:inline-flex}.toggle.disabled{color:var(--soft);cursor:default}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle-track{background:var(--line-strong);border-radius:999px;width:30px;height:18px;transition:background .15s;position:relative}.toggle-track:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.toggle input:checked+.toggle-track{background:var(--accent)}.toggle input:checked+.toggle-track:after{transform:translate(12px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--accent-tint)}.model-picker{position:relative}.model-button{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:10px;align-items:center;gap:8px;max-width:320px;padding:6px 10px;font-size:.85rem;font-weight:600;display:inline-flex}.model-button:hover{border-color:var(--accent)}.model-button-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.model-button svg{width:16px;height:16px;color:var(--soft)}.state-dot{background:#c3cdca;border-radius:50%;flex:none;width:8px;height:8px}.state-dot.on{background:#2f9e6e;box-shadow:0 0 0 3px #2f9e6e26}.model-menu{z-index:20;border:1px solid var(--line);background:#fff;border-radius:16px;flex-direction:column;width:min(380px,100vw - 32px);animation:.15s ease-out both fade-up;display:flex;position:absolute;bottom:calc(100% + 10px);left:0;overflow:hidden;box-shadow:0 18px 48px #0f141429}.model-filter{border:1px solid var(--line-strong);border-radius:10px;margin:10px;padding:8px 12px;font-size:.88rem}.model-sections{max-height:min(420px,55vh);padding:0 6px 6px;overflow-y:auto}.model-sections h3{letter-spacing:.14em;text-transform:uppercase;color:var(--soft);margin:10px 10px 4px;font-size:.7rem}.model-option{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;width:100%;padding:8px 10px;display:flex}.model-option:hover:not(:disabled),.model-option.selected{background:var(--accent-soft)}.model-option.selected .model-name{color:var(--accent)}.model-option:disabled{cursor:default;opacity:.55}.model-text{flex-direction:column;min-width:0;display:flex}.model-name{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:600;overflow:hidden}.model-meta{color:var(--soft);font-size:.75rem}.model-empty,.model-foot{color:var(--soft);margin:0;padding:10px 16px;font-size:.76rem}.model-foot{border-top:1px solid var(--line);background:var(--card)}@media (width<=860px){.app{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:40;width:min(300px,86vw);box-shadow:var(--shadow);background:#fdfcf8;transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-102%)}.sidebar-open .sidebar{transform:none}.sidebar-open .scrim{z-index:30;background:#0f151447;border:0;display:block;position:fixed;inset:0}.close-button,.menu-button{display:inline-flex}.conversation-actions{display:flex}.topbar{padding:0 10px}.thread-inner{padding:20px 14px}.composer-wrap{padding:6px 10px 10px}.model-button{max-width:180px}.composer-hint{display:none}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes blink{0%,to{opacity:.25}50%{opacity:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
