pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark Dimmed
  Description: Dark dimmed theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Colors taken from GitHub's CSS
*/.hljs{color:#adbac7;background:#22272e}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#f47067}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#dcbdfb}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#6cb6ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#96d0ff}.hljs-built_in,.hljs-symbol{color:#f69d50}.hljs-comment,.hljs-code,.hljs-formula{color:#768390}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#8ddb8c}.hljs-subst{color:#adbac7}.hljs-section{color:#316dca;font-weight:700}.hljs-bullet{color:#eac55f}.hljs-emphasis{color:#adbac7;font-style:italic}.hljs-strong{color:#adbac7;font-weight:700}.hljs-addition{color:#b4f1b4;background-color:#1b4721}.hljs-deletion{color:#ffd8d3;background-color:#78191b}:root{--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", system-ui, sans-serif;--font-rounded: "SF Pro Rounded", ui-rounded, "Hiragino Maru Gothic ProN", var(--font);--bg-0: #eef1f6;--bg-1: #f5f7fb;--glass: rgba(255, 255, 255, .62);--glass-strong: rgba(255, 255, 255, .78);--glass-soft: rgba(255, 255, 255, .42);--glass-tint: rgba(255, 255, 255, .28);--ink: rgba(0, 0, 0, .92);--ink-2: rgba(60, 60, 67, .72);--ink-3: rgba(60, 60, 67, .48);--separator: rgba(60, 60, 67, .12);--fill: rgba(120, 120, 128, .12);--fill-2: rgba(120, 120, 128, .18);--fill-3: rgba(120, 120, 128, .28);--blue: #007aff;--blue-soft: rgba(0, 122, 255, .12);--blue-soft-ink: #007aff;--green: #34c759;--red: #ff3b30;--red-soft: rgba(255, 59, 48, .12);--user-bubble: #007aff;--user-ink: #ffffff;--ai-bubble: rgba(255, 255, 255, .72);--code-bg: rgba(15, 23, 42, .92);--code-ink: #f8fafc;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .05);--shadow-md: 0 10px 40px rgba(15, 23, 42, .1), 0 2px 8px rgba(15, 23, 42, .05);--shadow-lg: 0 24px 80px rgba(15, 23, 42, .16);--blur: saturate(180%) blur(28px);--blur-strong: saturate(190%) blur(40px);--r-xs: 12px;--r-sm: 16px;--r-md: 22px;--r-lg: 28px;--r-xl: 34px;--r-pill: 999px;--nav-w: 340px;--source-w: 340px;--top-h: 58px;--chat-max: 860px;--composer-max: 820px;--ease: cubic-bezier(.22, 1, .36, 1);--fast: .18s;color-scheme:light;font-family:var(--font);font-synthesis:none}html[data-theme=dark]{--bg-0: #05060a;--bg-1: #0b0d14;--glass: rgba(28, 28, 34, .62);--glass-strong: rgba(36, 36, 44, .78);--glass-soft: rgba(44, 44, 54, .48);--glass-tint: rgba(255, 255, 255, .05);--ink: rgba(255, 255, 255, .94);--ink-2: rgba(235, 235, 245, .68);--ink-3: rgba(235, 235, 245, .42);--separator: rgba(84, 84, 88, .45);--fill: rgba(120, 120, 128, .22);--fill-2: rgba(120, 120, 128, .3);--fill-3: rgba(120, 120, 128, .42);--blue: #0a84ff;--blue-soft: rgba(10, 132, 255, .18);--blue-soft-ink: #64b5ff;--green: #30d158;--red: #ff453a;--red-soft: rgba(255, 69, 58, .16);--user-bubble: #0a84ff;--user-ink: #ffffff;--ai-bubble: rgba(44, 44, 54, .78);--code-bg: rgba(0, 0, 0, .55);--code-ink: #f4f4f5;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .28), 0 10px 30px rgba(0, 0, 0, .22);--shadow-md: 0 16px 50px rgba(0, 0, 0, .35);--shadow-lg: 0 30px 90px rgba(0, 0, 0, .5);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0}body{min-height:100vh;min-height:100dvh;overflow:hidden;color:var(--ink);background:radial-gradient(1200px 700px at 10% -10%,rgba(0,122,255,.16),transparent 55%),radial-gradient(900px 600px at 90% 0%,rgba(175,82,222,.12),transparent 50%),radial-gradient(800px 500px at 50% 110%,rgba(52,199,89,.1),transparent 50%),linear-gradient(180deg,var(--bg-1),var(--bg-0));-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}html[data-theme=dark] body{background:radial-gradient(1000px 700px at 8% -15%,rgba(10,132,255,.2),transparent 55%),radial-gradient(900px 600px at 95% 5%,rgba(191,90,242,.14),transparent 50%),radial-gradient(700px 500px at 50% 110%,rgba(48,209,88,.08),transparent 55%),linear-gradient(180deg,#08090f,#04050a)}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:transparent;padding:0}button:disabled{cursor:not-allowed;opacity:.45}a{color:var(--blue);text-decoration:none}:focus-visible{outline:2px solid color-mix(in srgb,var(--blue) 75%,white);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{display:grid;grid-template-columns:var(--nav-w) minmax(0,1fr);grid-template-rows:100%;width:100%;height:100vh;height:100dvh;gap:12px;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));overflow:hidden;transition:grid-template-columns var(--fast) var(--ease)}.app-shell.has-source-panel{grid-template-columns:var(--nav-w) minmax(0,1fr) var(--source-w)}.app-shell.nav-collapsed{grid-template-columns:0 minmax(0,1fr);column-gap:0}.app-shell.nav-collapsed.has-source-panel{grid-template-columns:0 minmax(0,1fr) var(--source-w)}.app-shell.nav-collapsed .sidebar{opacity:0;pointer-events:none;transform:translate(-10px) scale(.98);margin:0;overflow:hidden}.glass-panel{background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid color-mix(in srgb,white 35%,transparent);box-shadow:var(--shadow-sm)}html[data-theme=dark] .glass-panel{border-color:#ffffff14}.workspace{min-width:0;min-height:0;height:100%;display:flex;flex-direction:column;gap:10px;overflow:hidden}.chat-panel{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-lg);background:var(--glass-soft);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid color-mix(in srgb,white 28%,transparent);box-shadow:var(--shadow-sm);isolation:isolate}html[data-theme=dark] .chat-panel{border-color:#ffffff0f}.icon-button{width:44px;height:44px;display:inline-grid;place-items:center;flex:none;border-radius:var(--r-pill);color:var(--ink);background:var(--fill);transition:background var(--fast) var(--ease),transform var(--fast) var(--ease)}.icon-button:hover{background:var(--fill-2)}.icon-button:active{transform:scale(.96)}.icon-button.danger-hover:hover{color:var(--red);background:var(--red-soft)}.sidebar{z-index:40;display:flex;flex-direction:column;min-width:0;min-height:0;height:100%;overflow:hidden;border-radius:var(--r-lg);background:var(--glass);backdrop-filter:var(--blur-strong);-webkit-backdrop-filter:var(--blur-strong);border:1px solid color-mix(in srgb,white 34%,transparent);box-shadow:var(--shadow-md);color:var(--ink);transition:opacity var(--fast) var(--ease),transform var(--fast) var(--ease)}html[data-theme=dark] .sidebar{border-color:#ffffff14}.brand-row{display:flex;align-items:center;gap:12px;flex:0 0 var(--top-h);min-height:var(--top-h);height:var(--top-h);padding:0 14px}.brand-mark{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(145deg,#0a84ff,#5e5ce6);color:#fff;font-weight:800;font-size:1rem;box-shadow:0 8px 20px #007aff47;flex:none}.brand-copy{min-width:0;display:grid;gap:1px;flex:1}.brand-copy strong{font-size:1rem;font-weight:700;letter-spacing:-.02em}.brand-copy small{color:var(--ink-2);font-size:.75rem}.sidebar-close{display:inline-grid;margin-left:auto}.sidebar-actions{flex:0 0 auto;padding:4px 12px 10px}.sidebar .new-thread{width:100%;min-height:44px;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;border:0;border-radius:var(--r-pill);background:var(--blue);color:#fff;font-size:.95rem;font-weight:650;box-shadow:0 10px 24px #007aff47;transition:transform var(--fast) var(--ease),filter var(--fast) var(--ease)}.sidebar .new-thread:hover{filter:brightness(1.05)}.sidebar .new-thread:active{transform:scale(.98)}.new-thread kbd{margin-left:auto;opacity:.75;font-size:.7rem;font-weight:500}.session-search{display:flex;align-items:center;gap:8px;flex:0 0 auto;margin:0 12px 10px;min-height:40px;padding:0 14px;border-radius:var(--r-pill);background:var(--fill);color:var(--ink-2)}.session-search:focus-within{background:var(--fill-2);box-shadow:0 0 0 3px var(--blue-soft);color:var(--ink)}.session-search input{width:100%;border:0;outline:0;background:transparent;font-size:.95rem}.session-search input::placeholder{color:var(--ink-3)}.search-clear{width:24px;height:24px;display:grid;place-items:center;border-radius:var(--r-pill);color:var(--ink-2);background:var(--fill-2);flex:none}.sidebar-label{display:flex;justify-content:space-between;flex:0 0 auto;padding:4px 18px 8px;color:var(--ink-3);font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.session-list{flex:1 1 auto;min-height:0;overflow:auto;padding:0 10px 10px;display:flex;flex-direction:column;gap:4px}.session-item{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;padding:10px;border:0;border-radius:18px;color:var(--ink);background:transparent;text-align:left;transition:background var(--fast) var(--ease),transform var(--fast) var(--ease)}.session-item:hover{background:var(--fill)}.session-item:active{transform:scale(.99)}.session-item.is-active{background:var(--blue-soft)}.session-item.is-active strong{color:var(--blue-soft-ink)}.session-avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:var(--fill);color:var(--ink-2);flex:none}.session-item.is-active .session-avatar{background:linear-gradient(145deg,#0a84ff,#5e5ce6);color:#fff;box-shadow:0 8px 18px #007aff40}.session-item>span{min-width:0;display:grid;gap:2px}.session-item strong{overflow:hidden;font-size:.95rem;font-weight:650;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap}.session-item small{overflow:hidden;color:var(--ink-2);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.empty-archive{display:grid;justify-items:center;gap:8px;padding:36px 16px;color:var(--ink-2);text-align:center;font-size:.9rem}.empty-archive p{margin:0;line-height:1.45}.sidebar-footer{display:flex;flex-direction:column;gap:8px;flex:0 0 auto;margin-top:auto;padding:14px 16px;color:var(--ink-2);font-size:.78rem;font-weight:600}.sidebar-user{display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-username{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-weight:700}.sidebar-logout{display:inline-flex;align-items:center;gap:5px;flex:none;min-height:28px;padding:0 8px;border-radius:999px;background:var(--fill);color:var(--ink-2);font-size:.72rem;font-weight:650}.sidebar-logout:hover{background:var(--fill-2);color:var(--ink)}.sidebar-status{display:flex;align-items:center;gap:8px}.sidebar-credit{font-size:.7rem;font-weight:500;opacity:.72;letter-spacing:.01em}.status-dot{width:8px;height:8px;border-radius:var(--r-pill);background:var(--green);box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 18%,transparent)}.topbar{min-width:0;min-height:var(--top-h);height:var(--top-h);flex:0 0 var(--top-h);display:flex;align-items:center;gap:10px;padding:0 12px;border-radius:var(--r-lg);background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid color-mix(in srgb,white 34%,transparent);box-shadow:var(--shadow-sm);z-index:5}html[data-theme=dark] .topbar{border-color:#ffffff14}.nav-toggle{flex:none}.thread-heading{min-width:0;flex:1}.thread-heading span{display:block;color:var(--ink-3);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.thread-heading h1{display:flex;align-items:center;gap:6px;min-width:0;margin:1px 0 0;font-size:1.05rem;font-weight:700;letter-spacing:-.02em}.title-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.title-edit-button{width:28px;height:28px;display:grid;place-items:center;border-radius:var(--r-pill);color:var(--ink-2);opacity:0;flex:none}.thread-heading:hover .title-edit-button,.title-edit-button:focus-visible{opacity:1}.title-edit-button:hover{background:var(--fill);color:var(--ink)}.title-edit{width:min(100%,360px);height:36px;padding:0 14px;border:0;border-radius:var(--r-pill);background:var(--fill);font-size:.95rem;font-weight:600;outline:none}.title-edit:focus{box-shadow:0 0 0 3px var(--blue-soft)}.top-actions{display:flex;align-items:center;gap:6px;margin-left:auto}.source-button{min-height:38px;display:inline-flex;align-items:center;gap:6px;padding:0 14px;border-radius:var(--r-pill);background:var(--fill);color:var(--ink);font-size:.88rem;font-weight:650;white-space:nowrap}.source-button:hover{background:var(--fill-2)}.source-button.is-active{background:var(--blue-soft);color:var(--blue-soft-ink)}.chat-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;background:transparent;border-radius:inherit}.jump-latest{position:absolute;right:16px;bottom:112px;z-index:5;display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 14px;border-radius:var(--r-pill);background:var(--glass-strong);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);color:var(--ink);font-size:.82rem;font-weight:650;box-shadow:var(--shadow-md)}.landing,.empty-thread{min-height:100%;display:flex;align-items:center;justify-content:center;padding:28px 18px}.landing-inner,.empty-inner{width:min(100%,560px);display:flex;flex-direction:column;align-items:flex-start;gap:0;padding:28px;border-radius:30px;background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid color-mix(in srgb,white 35%,transparent);box-shadow:var(--shadow-md);overflow:hidden}html[data-theme=dark] .landing-inner,html[data-theme=dark] .empty-inner{border-color:#ffffff14}.landing-index,.empty-thread .eyebrow{margin:0 0 14px;color:var(--ink-3);font-size:.75rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;line-height:1.2}.landing-title{margin:0;display:flex;flex-direction:column;gap:.12em;max-width:16ch;font-family:var(--font-rounded);font-size:clamp(1.7rem,3.2vw,2.35rem);font-weight:750;line-height:1.18;letter-spacing:-.03em}.landing-title span,.landing-title em{display:block;margin:0}.landing-title em{color:var(--ink-2);font-style:normal;font-weight:650}.landing-copy{margin:16px 0 0;max-width:42ch;color:var(--ink-2);font-size:.98rem;line-height:1.55}.landing-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;margin-top:22px;padding:0 18px;border-radius:var(--r-pill);background:var(--blue);color:#fff;font-size:.95rem;font-weight:650;box-shadow:0 12px 28px #007aff47}.landing-cta:hover{filter:brightness(1.05)}.landing-meta{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start;margin-top:16px}.landing-meta span{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border-radius:var(--r-pill);background:var(--fill);color:var(--ink-2);font-size:.8rem;font-weight:650;white-space:nowrap}.landing-credit{margin:16px 0 0;color:var(--ink-3);font-size:.78rem;font-weight:500;letter-spacing:.01em;line-height:1.3}.empty-inner .prompt-grid{margin-top:20px;width:100%}.auth-screen{min-height:100dvh;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));position:relative;overflow-y:auto;-webkit-overflow-scrolling:touch}.auth-theme{position:fixed;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));z-index:5}.auth-card{width:min(420px,100%);display:grid;gap:14px;padding:28px 24px 22px;border-radius:28px;background:var(--glass-strong);backdrop-filter:var(--blur-strong);-webkit-backdrop-filter:var(--blur-strong);border:1px solid color-mix(in srgb,white 34%,transparent);box-shadow:var(--shadow-lg)}html[data-theme=dark] .auth-card{border-color:#ffffff14}.auth-loading{place-items:center;text-align:center;color:var(--ink-2);font-weight:600}.auth-brand{display:flex;align-items:center;gap:12px}.auth-brand strong{display:block;font-size:1.05rem;font-weight:750;letter-spacing:-.02em}.auth-brand small{color:var(--ink-2);font-size:.78rem}.auth-card h1{margin:4px 0 0;font-size:1.55rem;font-weight:780;letter-spacing:-.03em;line-height:1.15}.auth-copy{margin:0;color:var(--ink-2);font-size:.92rem;line-height:1.45}.auth-form{display:grid;gap:12px}.auth-form label{display:grid;gap:6px;color:var(--ink-2);font-size:.84rem;font-weight:650}.auth-input{display:flex;align-items:center;gap:10px;height:46px;padding:0 14px;border-radius:16px;background:var(--fill);color:var(--ink-3)}.auth-input input{width:100%;border:0;background:transparent;color:var(--ink);font-size:.96rem;outline:none}.auth-input:focus-within{box-shadow:0 0 0 3px var(--blue-soft)}.auth-switch{margin:0;text-align:center;color:var(--ink-2);font-size:.86rem}.auth-switch button{color:var(--blue);font-weight:700}.auth-card .landing-credit{text-align:center}.danger-action:disabled,.ghost-action:disabled,.primary-action:disabled{opacity:.6;cursor:not-allowed}.prompt-grid{width:100%;display:grid;gap:8px}.prompt-grid button{width:100%;display:flex;align-items:center;gap:12px;min-height:58px;padding:12px 14px;border-radius:18px;background:var(--fill);color:var(--ink);text-align:left;font-size:.92rem;font-weight:550;line-height:1.35;transition:background var(--fast) var(--ease),transform var(--fast) var(--ease)}.prompt-grid button:hover{background:var(--fill-2)}.prompt-grid button:active{transform:scale(.99)}.prompt-grid button span{width:30px;height:30px;display:grid;place-items:center;border-radius:var(--r-pill);background:var(--blue-soft);color:var(--blue-soft-ink);font-size:.78rem;font-weight:750;flex:none}.prompt-grid button svg{margin-left:auto;color:var(--ink-3);flex:none}.message-stack{width:min(100%,var(--chat-max));margin:0 auto;padding:18px 16px 22px;display:flex;flex-direction:column;gap:14px}.message{display:flex;flex-direction:column;gap:5px;max-width:100%;animation:rise var(--fast) var(--ease) both}.message-row{display:flex;align-items:flex-end;gap:8px;max-width:100%}.message-assistant .message-row{justify-content:flex-start}.message-user .message-row{justify-content:flex-end}.avatar{width:30px;height:30px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(145deg,#0a84ff,#5e5ce6);color:#fff;flex:none;box-shadow:0 8px 18px #007aff38}.message-main{min-width:0;max-width:min(100%,640px);display:flex;flex-direction:column}.message-user .message-main{align-items:flex-end}.user-copy{margin:0;display:inline-block;max-width:100%;padding:11px 15px;border-radius:22px 22px 8px;background:linear-gradient(160deg,#0a84ff,#007aff 65%,#5e5ce6);color:var(--user-ink);font-size:.96rem;line-height:1.4;white-space:pre-wrap;word-break:break-word;box-shadow:0 10px 24px #007aff38}.ai-bubble{display:inline-block;max-width:100%;padding:12px 15px;border-radius:22px 22px 22px 8px;background:var(--ai-bubble);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid color-mix(in srgb,white 28%,transparent);color:var(--ink);box-shadow:var(--shadow-sm)}html[data-theme=dark] .ai-bubble{border-color:#ffffff0f}.markdown{font-size:.96rem;line-height:1.55;word-break:break-word}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown h1,.markdown h2,.markdown h3{margin:.85em 0 .4em;font-weight:750;letter-spacing:-.02em;line-height:1.2}.markdown h2{font-size:1.08rem}.markdown p{margin:.55em 0}.markdown a{color:var(--blue)}.markdown ul,.markdown ol{margin:.5em 0;padding-left:1.2em}.markdown pre{margin:.7em 0;padding:12px;overflow-x:auto;border-radius:16px;background:var(--code-bg);color:var(--code-ink);font-size:.84rem;line-height:1.45}.markdown code:not(pre code){padding:.12em .4em;border-radius:7px;background:var(--fill);font-size:.88em}.markdown blockquote{margin:.6em 0;padding-left:12px;border-left:3px solid var(--blue);color:var(--ink-2)}.markdown table{width:100%;border-collapse:collapse;font-size:.88rem;margin:.6em 0}.markdown th,.markdown td{padding:8px 10px;border-bottom:1px solid var(--separator);text-align:left}.markdown th{color:var(--ink-2);font-weight:700}.markdown .generated-image-link{display:block;margin:.75em 0;border-radius:18px;overflow:hidden;max-width:min(100%,520px);border:1px solid color-mix(in srgb,white 24%,transparent);background:color-mix(in srgb,var(--fill) 70%,transparent);box-shadow:var(--shadow-sm)}.markdown .generated-image{display:block;width:100%;height:auto;max-height:640px;object-fit:contain;background:#0000000a}html[data-theme=dark] .markdown .generated-image-link{border-color:#ffffff14}html[data-theme=dark] .markdown .generated-image{background:#ffffff08}.stream-caret{display:inline-block;width:7px;height:.95em;margin-left:2px;border-radius:999px;background:var(--blue);vertical-align:-.12em;animation:blink .8s steps(2) infinite}.thinking-row{display:flex;gap:5px;align-items:center;min-height:20px;padding:4px 2px}.thinking-row span{width:7px;height:7px;border-radius:var(--r-pill);background:var(--ink-3);animation:bounce 1.15s ease-in-out infinite}.thinking-row span:nth-child(2){animation-delay:.15s}.thinking-row span:nth-child(3){animation-delay:.3s}.message-error-note{margin:4px 0 0 38px;padding:8px 12px;border-radius:14px;background:var(--red-soft);color:var(--red);font-size:.82rem}.message-actions{display:flex;flex-wrap:wrap;align-items:center;gap:2px;min-height:28px;padding-left:38px}.message-actions-user{justify-content:flex-end;padding-left:0}.message-actions time{margin-right:auto;padding:0 6px;color:var(--ink-3);font-size:.72rem;font-weight:600}.message-actions-user time{margin-right:0;margin-left:auto;order:9}.message-actions button{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:0 9px;border-radius:var(--r-pill);color:var(--ink-2);font-size:.75rem;font-weight:650}.message-actions button:hover{background:var(--fill);color:var(--ink)}.tool-timeline{margin:0 0 4px 38px;padding:12px 14px;border-radius:18px;background:var(--glass-strong);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid color-mix(in srgb,white 28%,transparent);box-shadow:var(--shadow-sm)}html[data-theme=dark] .tool-timeline{border-color:#ffffff0f}.tool-title{display:flex;align-items:center;gap:6px;margin-bottom:6px;color:var(--ink-2);font-size:.75rem;font-weight:750;letter-spacing:.03em;text-transform:uppercase}.tool-row{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:8px;align-items:center;padding:4px 0}.tool-row div{min-width:0;display:grid;gap:1px}.tool-row strong{font-size:.84rem;font-weight:650;color:var(--ink)}.tool-row small{overflow:hidden;color:var(--ink-2);font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.tool-row code{padding:3px 8px;border-radius:var(--r-pill);background:var(--blue-soft);color:var(--blue-soft-ink);font-size:.7rem;font-weight:750}.tool-pulse{width:7px;height:7px;border-radius:var(--r-pill);background:var(--blue)}.status-running .tool-pulse{animation:pulse 1s infinite}.status-error .tool-pulse{background:var(--red)}.composer-wrap{position:relative;z-index:30;flex:none;padding:8px 12px 12px;background:transparent}.composer{width:min(100%,var(--composer-max));margin:0 auto;position:relative;z-index:31;display:grid;grid-template-columns:1fr 40px;gap:8px;padding:12px 12px 12px 16px;border-radius:28px;overflow:visible;background:var(--glass-strong);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid color-mix(in srgb,white 36%,transparent);box-shadow:var(--shadow-md)}html[data-theme=dark] .composer{border-color:#ffffff14}.composer:focus-within{box-shadow:var(--shadow-md),0 0 0 3px var(--blue-soft)}.composer textarea{grid-column:1 / -1;width:100%;min-height:24px;max-height:160px;padding:2px 46px 6px 0;border:0;outline:0;resize:none;background:transparent;color:var(--ink);font-size:.98rem;line-height:1.4;overflow-y:auto}.composer textarea::placeholder{color:var(--ink-3)}.composer-tools{display:flex;flex-wrap:wrap;gap:6px;min-width:0;padding-right:46px;position:relative;z-index:20}.send-button{position:absolute;right:10px;bottom:10px;width:36px;height:36px;display:grid;place-items:center;border-radius:var(--r-pill);background:var(--blue);color:#fff;box-shadow:0 8px 18px #007aff47}.send-button:hover:not(:disabled){filter:brightness(1.06)}.send-button:disabled{background:var(--fill-2);color:var(--ink-3);box-shadow:none}.send-button.is-stopping{background:var(--fill-2);color:var(--ink);box-shadow:none}.stop-square{width:12px;height:12px;border-radius:3px;background:currentColor}.composer-wrap>p{width:min(100%,var(--composer-max));margin:8px auto 0;color:var(--ink-3);font-size:.75rem;text-align:center;line-height:1.4}.select-menu{position:relative;min-width:0;max-width:min(220px,40vw);z-index:1}.select-menu.is-open{z-index:80}.select-trigger{width:100%;min-height:34px;display:flex;align-items:center;gap:6px;padding:0 12px;border-radius:var(--r-pill);background:var(--fill);color:var(--ink-2);font-size:.82rem;font-weight:650}.select-trigger:hover,.select-menu.is-open .select-trigger{background:var(--fill-2);color:var(--ink)}.select-trigger svg{flex:none;width:14px;height:14px}.select-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-chevron{margin-left:auto;transition:transform var(--fast) var(--ease)}.select-menu.is-open .select-chevron{transform:rotate(180deg)}.select-dropdown{position:absolute;left:0;bottom:calc(100% + 8px);z-index:90;min-width:max(100%,188px);max-width:min(320px,90vw);max-height:min(280px,44vh);overflow-y:auto;padding:8px;border-radius:18px;background:#fff;border:1px solid rgba(60,60,67,.14);box-shadow:0 18px 48px #0f172a2e,0 2px 8px #0f172a14;isolation:isolate;animation:pop var(--fast) var(--ease) both}html[data-theme=dark] .select-dropdown{background:#1c1c22;border-color:#ffffff1a;box-shadow:0 18px 48px #00000080,0 2px 8px #0000004d}.select-option{width:100%;min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-radius:12px;color:var(--ink);background:transparent;font-size:.9rem;font-weight:550;text-align:left}.select-option span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-option:hover{background:#78788024}html[data-theme=dark] .select-option:hover{background:#78788047}.select-option.is-active{background:var(--blue-soft);color:var(--blue-soft-ink);font-weight:700}.select-option.is-active:hover{background:var(--blue-soft)}.select-block{max-width:none;width:100%}.select-block .select-trigger{min-height:44px;border-radius:16px;background:var(--fill);color:var(--ink);font-size:.95rem}.select-block .select-dropdown{bottom:auto;top:calc(100% + 6px);min-width:100%;max-width:none}.field-block{display:grid;gap:6px}.field-label{color:var(--ink-2);font-size:.82rem;font-weight:650}.source-drawer{position:fixed;top:0;right:0;z-index:50;width:min(380px,100vw);height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--glass-strong);backdrop-filter:var(--blur-strong);-webkit-backdrop-filter:var(--blur-strong);border-left:1px solid color-mix(in srgb,white 28%,transparent);transform:translate(105%);transition:transform .22s var(--ease);pointer-events:none;box-shadow:var(--shadow-lg)}.source-drawer.is-open{transform:none;pointer-events:auto}.source-drawer.is-docked{position:relative;inset:auto;z-index:1;width:auto;min-width:0;height:100%;min-height:0;border:1px solid color-mix(in srgb,white 34%,transparent);border-radius:var(--r-lg);transform:none!important;pointer-events:auto;box-shadow:var(--shadow-md);overflow:hidden}html[data-theme=dark] .source-drawer,html[data-theme=dark] .source-drawer.is-docked{border-color:#ffffff14}.source-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--top-h);flex:0 0 var(--top-h);padding:0 12px 0 16px}.source-header h2{margin:2px 0 0;font-size:1.05rem;font-weight:750;letter-spacing:-.02em}.source-list{flex:1;min-height:0;overflow-y:auto;padding:8px 10px 12px;display:grid;align-content:start;gap:8px}.source-empty{display:grid;justify-items:center;gap:8px;padding:48px 16px;color:var(--ink-2);text-align:center}.source-empty p{margin:0;font-size:.9rem}.source-card{display:grid;grid-template-columns:42px minmax(0,1fr) 18px;gap:10px;align-items:start;padding:12px;border-radius:18px;color:inherit;text-decoration:none;background:var(--fill);transition:background var(--fast) var(--ease),transform var(--fast) var(--ease)}.source-card:hover{background:var(--fill-2);transform:translateY(-1px)}.source-avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,#0a84ff,#5e5ce6);color:#fff;font-size:.92rem;font-weight:800;box-shadow:0 8px 18px #007aff38}.source-body{min-width:0}.source-meta{display:flex;align-items:center;gap:6px;margin-bottom:4px;min-width:0}.source-domain{min-width:0;overflow:hidden;color:var(--ink-2);font-size:.78rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.source-provider{flex:none;padding:2px 8px;border-radius:var(--r-pill);background:var(--blue-soft);color:var(--blue-soft-ink);font-size:.68rem;font-weight:750;text-transform:uppercase}.source-card h3{margin:0;font-size:.92rem;font-weight:700;letter-spacing:-.01em;line-height:1.3;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.source-card p{margin:5px 0 0;color:var(--ink-2);font-size:.8rem;line-height:1.4;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.source-open{margin-top:2px;color:var(--ink-3);flex:none}.source-card:hover .source-open{color:var(--blue)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:16px;background:#0a0c1261;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.modal{width:min(480px,100%);max-height:min(90dvh,720px);overflow:auto;border-radius:28px;background:var(--glass-strong);backdrop-filter:var(--blur-strong);-webkit-backdrop-filter:var(--blur-strong);border:1px solid color-mix(in srgb,white 34%,transparent);box-shadow:var(--shadow-lg);animation:pop var(--fast) var(--ease) both}html[data-theme=dark] .modal{border-color:#ffffff14}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 16px 12px}.modal-header h2{margin:4px 0 0;font-size:1.25rem;font-weight:750;letter-spacing:-.02em}.eyebrow{display:block;color:var(--ink-3);font-size:.74rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.modal-form{display:grid;gap:12px;padding:8px 16px 18px}.modal-form label{display:grid;gap:6px;color:var(--ink-2);font-size:.84rem;font-weight:650}.modal-form input{width:100%;height:44px;padding:0 14px;border:0;border-radius:16px;background:var(--fill);color:var(--ink);font-size:.96rem;outline:none}.modal-form input:focus{box-shadow:0 0 0 3px var(--blue-soft)}.mode-options{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px;border-radius:18px;background:var(--fill)}.mode-options button{min-height:36px;border-radius:14px;color:var(--ink-2);font-size:.8rem;font-weight:650;text-transform:capitalize}.mode-options button.is-selected{background:var(--glass-strong);color:var(--ink);box-shadow:var(--shadow-sm)}.confirm-row{display:grid;grid-template-columns:1fr 1.2fr;gap:8px}.ghost-action{min-height:44px;border-radius:var(--r-pill);background:var(--fill);color:var(--ink);font-size:.92rem;font-weight:650}.ghost-action:hover{background:var(--fill-2)}.danger-action{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;border-radius:var(--r-pill);background:var(--red);color:#fff;font-size:.92rem;font-weight:650}.primary-action{width:100%;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;border-radius:var(--r-pill);background:var(--blue);color:#fff;font-size:.95rem;font-weight:650;box-shadow:0 12px 28px #007aff40}.primary-action:hover:not(:disabled){filter:brightness(1.05)}.form-error{margin:0;color:var(--red);font-size:.86rem}.unlock-copy{margin:0;color:var(--ink-2);font-size:.92rem;line-height:1.45}.error-toast{position:fixed;top:18px;left:50%;z-index:70;max-width:min(480px,calc(100vw - 24px));display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:18px;background:color-mix(in srgb,var(--red) 92%,black);color:#fff;font-size:.9rem;transform:translate(-50%);box-shadow:var(--shadow-md);animation:pop var(--fast) var(--ease) both}.error-toast button{margin-left:auto;color:inherit;text-decoration:underline;font-weight:650;white-space:nowrap}.mobile-scrim,.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;border:0;background:#080a1047;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.mobile-scrim{display:none}.drawer-scrim{z-index:45}@keyframes rise{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@keyframes blink{50%{opacity:0}}@keyframes pulse{50%{opacity:.35;transform:scale(1.45)}}@keyframes bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-3px);opacity:1}}@media(max-width:1100px){:root{--nav-w: 300px;--source-w: 320px}.app-shell,.app-shell.has-source-panel{grid-template-columns:var(--nav-w) minmax(0,1fr)}.app-shell.nav-collapsed,.app-shell.nav-collapsed.has-source-panel{grid-template-columns:0 minmax(0,1fr)}}@media(max-width:900px){.app-shell,.app-shell.has-source-panel,.app-shell.nav-collapsed,.app-shell.nav-collapsed.has-source-panel{grid-template-columns:1fr!important;gap:0;padding:0}.sidebar,.app-shell.nav-collapsed .sidebar{position:fixed;left:0;top:0;z-index:40;width:min(340px,88vw);height:100vh;height:100dvh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);margin:0;border-radius:0 28px 28px 0;opacity:1;pointer-events:none;transform:translate(-105%);transition:transform .22s var(--ease);box-shadow:var(--shadow-lg)}.sidebar.is-open{transform:none;pointer-events:auto}.mobile-scrim{display:block;z-index:38}.sidebar .new-thread kbd{display:none}.workspace{gap:0;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.topbar{margin:0 0 8px}.chat-panel{border-radius:24px}}@media(max-width:650px){:root{--top-h: 52px}.topbar,.brand-row{min-height:52px;height:52px;flex-basis:52px}.topbar{padding:0 8px;gap:6px;border-radius:20px}.thread-heading span{display:none}.thread-heading h1{font-size:.98rem;max-width:min(52vw,220px)}.source-button span{display:none}.source-button{width:44px;min-height:44px;padding:0;justify-content:center}.icon-button{width:44px;height:44px}.landing,.empty-thread{align-items:stretch;padding:14px 10px 18px}.landing-inner,.empty-inner{width:100%;padding:22px 18px;border-radius:24px}.landing-title{max-width:none;font-size:clamp(1.55rem,7vw,1.95rem);line-height:1.2;gap:.16em}.landing-copy{max-width:none;font-size:1rem;margin-top:14px}.landing-cta{width:100%;margin-top:18px}.landing-meta{width:100%;margin-top:14px}.landing-credit{margin-top:14px}.message-stack{padding:12px 10px 16px;gap:12px}.message-main{max-width:min(100%,92%)}.message-assistant .avatar{width:28px;height:28px}.message-actions{padding-left:36px}.message-actions-user{padding-left:0}.message-actions button{min-height:36px;padding:0 10px}.ai-bubble,.user-copy{font-size:1rem;padding:11px 14px}.tool-timeline{margin-left:0}.composer-wrap{padding:6px 8px max(10px,env(safe-area-inset-bottom))}.composer{padding:10px 10px 10px 14px;border-radius:24px;grid-template-columns:1fr 40px}.composer textarea{font-size:16px;padding-right:48px}.composer-tools{width:100%;padding-right:48px;gap:8px}.composer-tools .select-menu{max-width:none;flex:1 1 calc(50% - 8px)}.composer-tools .select-trigger{min-height:36px;font-size:.8rem;padding:0 10px}.composer-tools .select-dropdown{min-width:100%;max-width:min(90vw,280px)}.send-button{width:40px;height:40px;min-width:40px;min-height:40px;right:8px;bottom:8px}.composer-wrap>p{font-size:.72rem;margin-top:6px;line-height:1.35}.jump-latest{right:12px;bottom:calc(108px + env(safe-area-inset-bottom));min-height:40px;min-width:40px;padding:0 12px}.jump-latest span{display:none}.title-edit-button{opacity:1;width:36px;height:36px}.confirm-row{grid-template-columns:1fr}.mode-options{grid-template-columns:repeat(2,1fr)}.mode-options button{min-height:40px}.source-drawer{width:100%;height:min(78dvh,680px);top:auto;bottom:0;padding-bottom:env(safe-area-inset-bottom);border-left:0;border-top:1px solid color-mix(in srgb,white 22%,transparent);border-radius:28px 28px 0 0;transform:translateY(105%)}.source-drawer.is-open{transform:none}.modal{width:min(480px,calc(100vw - 24px));border-radius:24px;max-height:min(90dvh,720px)}.error-toast{top:max(12px,env(safe-area-inset-top));left:12px;right:12px;max-width:none;transform:none}.sidebar-logout{min-height:36px;padding:0 10px}}@media(max-width:380px){.composer-tools .select-menu{flex:1 1 100%}.landing-meta span{flex:1 1 auto;justify-content:center}.thread-heading h1{max-width:40vw}.top-actions{gap:4px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
