:root{--bg:#ffffff;--fg:#0d0d0d;--muted:#8e8ea0;--border:#e5e5e5;--user-bubble:#f4f4f4;--user-bubble-fg:#0d0d0d;--composer-bg:#ffffff;--composer-border:#d9d9e3;--send-bg:#0d0d0d;--send-fg:#ffffff;--send-disabled:#d7d7e0;--accent:#ce1126;--banner-bg:#fff4e5;--banner-fg:#7a4d00;--code-bg:#f6f6f6;--font-ui:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;--maxw:48rem}@media (prefers-color-scheme:dark){:root{--bg:#212121;--fg:#ececec;--muted:#9a9a9a;--border:#424242;--user-bubble:#303030;--user-bubble-fg:#ececec;--composer-bg:#303030;--composer-border:#4a4a4a;--send-bg:#ffffff;--send-fg:#0d0d0d;--send-disabled:#565656;--accent:#ff4d5e;--banner-bg:#3a2f1a;--banner-fg:#ffd591;--code-bg:#2b2b2b}}:root[data-theme=light]{--bg:#ffffff;--fg:#0d0d0d;--muted:#8e8ea0;--border:#e5e5e5;--user-bubble:#f4f4f4;--user-bubble-fg:#0d0d0d;--composer-bg:#ffffff;--composer-border:#d9d9e3;--send-bg:#0d0d0d;--send-fg:#ffffff;--send-disabled:#d7d7e0;--accent:#ce1126;--banner-bg:#fff4e5;--banner-fg:#7a4d00;--code-bg:#f6f6f6}:root[data-theme=dark]{--bg:#212121;--fg:#ececec;--muted:#9a9a9a;--border:#424242;--user-bubble:#303030;--user-bubble-fg:#ececec;--composer-bg:#303030;--composer-border:#4a4a4a;--send-bg:#ffffff;--send-fg:#0d0d0d;--send-disabled:#565656;--accent:#ff4d5e;--banner-bg:#3a2f1a;--banner-fg:#ffd591;--code-bg:#2b2b2b}*{box-sizing:border-box}body,html{padding:0;margin:0}body{background:var(--bg);color:var(--fg);font-family:var(--font-ui);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100dvh;width:100%}.header{justify-content:space-between;padding:16px;min-height:64px;gap:12px;flex:none}.header,.header .brand{display:flex;align-items:center}.header .brand{min-width:0;min-height:32px}.header .title{font-weight:700;font-size:20px;letter-spacing:-.01em}.thread{flex:1 1;overflow-y:auto;scroll-behavior:smooth}.thread-inner{max-width:var(--maxw);margin:0 auto;padding:24px 16px 8px;display:flex;flex-direction:column;gap:20px}.row{display:flex;width:100%}.row.user{justify-content:flex-end;align-items:center;gap:8px}.row.assistant{justify-content:flex-start}.retry-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;flex:none;transition:background .15s,color .15s}.retry-btn:hover{background:var(--user-bubble);color:var(--fg)}.bubble-user{background:var(--user-bubble);color:var(--user-bubble-fg);padding:10px 15px;border-radius:20px;max-width:85%;white-space:pre-wrap;word-wrap:break-word;line-height:1.5}.assistant-content{max-width:100%;line-height:1.65;overflow-wrap:anywhere}.blinking-dot{display:inline-block;width:12px;height:12px;margin-left:6px;background:var(--fg);border-radius:50%;vertical-align:middle;animation:blink-dot 1s ease-in-out infinite}@keyframes blink-dot{0%,to{opacity:.2;transform:scale(.75)}50%{opacity:1;transform:scale(1.15)}}.status-queued{color:var(--muted)}.status-error,.status-queued{font-style:italic;font-size:16px;line-height:1.5;margin-top:4px}.status-error{color:#ffffff}.assistant-content p{margin:0 0 12px}.assistant-content p:last-child{margin-bottom:0}.assistant-content ol,.assistant-content ul{margin:0 0 12px;padding-left:22px}.assistant-content li{margin:3px 0}.assistant-content a{color:var(--accent);text-decoration:underline}.assistant-content code{font-family:var(--font-mono);font-size:.9em;background:var(--code-bg);padding:1px 5px;border-radius:5px}.assistant-content pre{background:var(--code-bg);padding:12px 14px;border-radius:10px;overflow-x:auto;margin:0 0 12px}.assistant-content pre code{background:none;padding:0}.banner{margin:0 auto;max-width:var(--maxw);width:100%;padding:9px 16px}.banner-inner{background:var(--banner-bg);color:var(--banner-fg);border-radius:12px;padding:9px 14px;font-size:13px;display:flex;align-items:center;gap:9px}.spinner{width:14px;height:14px;border-radius:50%;flex:none;border:2px solid;border-right:2px solid transparent;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.composer-wrap{flex:none;padding:8px 16px 4px;background:linear-gradient(to top,var(--bg) 60%,transparent)}.composer{max-width:var(--maxw);margin:0 auto;display:flex;align-items:flex-end;gap:8px;background:var(--composer-bg);border:1px solid var(--composer-border);border-radius:26px;padding:8px 8px 8px 18px;box-shadow:0 2px 8px rgba(0,0,0,.04)}.composer textarea{flex:1 1;border:none;outline:none;resize:none;background:transparent;color:var(--fg);font-family:var(--font-ui);font-size:16px;line-height:1.5;max-height:200px;padding:6px 0}.composer textarea::placeholder{color:var(--muted)}.send-btn{width:36px;height:36px;border-radius:50%;border:none;flex:none;background:var(--send-bg);color:var(--send-fg);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .15s}.send-btn:disabled{background:var(--send-disabled);cursor:not-allowed}.composer.over-limit{border-color:var(--accent)}.composer-hint{max-width:var(--maxw);margin:6px auto 0;padding:0 18px;font-size:12px;line-height:1.4;color:var(--accent)}.empty{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:24px 24px 20px;text-align:center}.grow{flex:1 1}.app.centered{position:relative}.app.centered .disclaimer{position:absolute;left:0;right:0;bottom:0}.disclaimer{margin:0 auto;padding:8px 16px calc(10px + env(safe-area-inset-bottom));text-align:center;font-size:11px;color:var(--muted)}.disclaimer,.suggestions{flex:none;max-width:var(--maxw)}.suggestions{margin:4px auto 0;padding:0 16px;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.suggestion{border:1px solid var(--border);background:transparent;color:var(--fg);border-radius:999px;padding:7px 14px;font-size:13px;cursor:pointer;font-family:var(--font-ui);line-height:1.3}.suggestion:hover{background:var(--user-bubble)}.empty h1{font-size:28px;font-weight:400;margin:0;letter-spacing:-.01em}.icon-btn{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:6px;border-radius:8px;display:flex;align-items:center}.icon-btn:hover{background:var(--user-bubble);color:var(--fg)}@media (max-width:600px){.thread-inner{padding-top:16px}.composer textarea{font-size:16px}.header{position:relative}.header,.header .brand{justify-content:center}.header .icon-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.header .title.hide-mobile{display:none}}