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

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}:root{--grad-violet: #7C5CFF;--grad-indigo: #5B5BFF;--grad-teal: #2DD4BF;--grad-coral: #FF6B6B;--grad-pink: #F472B6;--grad-amber: #FBBF24;--brand-gradient: linear-gradient(135deg, #7C5CFF 0%, #5B8DEF 45%, #2DD4BF 100%);--brand-gradient-warm: linear-gradient(135deg, #FF6B6B 0%, #F472B6 50%, #7C5CFF 100%);--brand-gradient-soft: linear-gradient(135deg, rgba(124,92,255,.18), rgba(45,212,191,.14));--font-ui: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--r-xs: 8px;--r-sm: 12px;--r-md: 16px;--r-lg: 22px;--r-xl: 28px;--r-pill: 999px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .13s;--dur-base: .24s;--dur-slow: .42s;--sidebar-w: 288px}[data-theme=dark]{--bg-app: #0A0B12;--bg-sunken: #07080E;--bg-panel: rgba(20, 22, 34, .72);--bg-panel-solid: #12141F;--bg-elevated: rgba(30, 33, 48, .66);--bg-bubble-ai: rgba(28, 31, 46, .55);--bg-bubble-user: linear-gradient(135deg, rgba(124,92,255,.22), rgba(91,141,239,.16));--bg-input: rgba(18, 20, 31, .7);--bg-hover: rgba(255,255,255,.05);--bg-active: rgba(124,92,255,.14);--fg1: #F4F5FB;--fg2: #AEB2C7;--fg3: #6F7390;--fg-faint: #4A4E68;--border: rgba(255,255,255,.07);--border-strong: rgba(255,255,255,.13);--border-glow: rgba(124,92,255,.35);--shadow-1: 0 1px 2px rgba(0,0,0,.4);--shadow-2: 0 8px 24px rgba(0,0,0,.45);--shadow-3: 0 24px 64px rgba(0,0,0,.55);--glass-blur: 22px;--code-bg: rgba(8, 9, 15, .9);--scroll-thumb: rgba(255,255,255,.13);--scroll-thumb-hover: rgba(255,255,255,.24);--aurora-opacity: .55}[data-theme=light]{--bg-app: #F4F5FA;--bg-sunken: #ECEDF4;--bg-panel: rgba(255, 255, 255, .78);--bg-panel-solid: #FFFFFF;--bg-elevated: rgba(255, 255, 255, .8);--bg-bubble-ai: rgba(255, 255, 255, .78);--bg-bubble-user: linear-gradient(135deg, rgba(124,92,255,.16), rgba(91,141,239,.12));--bg-input: rgba(255, 255, 255, .85);--bg-hover: rgba(15,18,40,.04);--bg-active: rgba(124,92,255,.1);--fg1: #14172A;--fg2: #4C516C;--fg3: #80859E;--fg-faint: #AEB2C7;--border: rgba(15,18,40,.08);--border-strong: rgba(15,18,40,.14);--border-glow: rgba(124,92,255,.4);--shadow-1: 0 1px 2px rgba(20,23,42,.06);--shadow-2: 0 10px 30px rgba(20,23,42,.1);--shadow-3: 0 28px 64px rgba(20,23,42,.16);--glass-blur: 20px;--code-bg: #14172A;--scroll-thumb: rgba(15,18,40,.16);--scroll-thumb-hover: rgba(15,18,40,.3);--aurora-opacity: .4}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-ui);background:var(--bg-app);color:var(--fg1);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;overflow:hidden;overscroll-behavior:none;line-height:1.55}#root{height:100%}.aurora{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:var(--aurora-opacity);transition:opacity var(--dur-slow)}.aurora:before,.aurora:after{content:"";position:absolute;border-radius:50%;filter:blur(90px)}.aurora:before{width:50vw;height:50vw;left:-10vw;top:-15vw;background:radial-gradient(circle,rgba(124,92,255,.5),transparent 70%);animation:drift1 22s ease-in-out infinite alternate}.aurora:after{width:46vw;height:46vw;right:-12vw;bottom:-18vw;background:radial-gradient(circle,rgba(45,212,191,.42),transparent 70%);animation:drift2 26s ease-in-out infinite alternate}.aurora .blob3{content:"";position:absolute;width:38vw;height:38vw;right:18vw;top:8vw;border-radius:50%;filter:blur(100px);background:radial-gradient(circle,rgba(255,107,107,.3),transparent 70%);animation:drift3 30s ease-in-out infinite alternate}@keyframes drift1{to{transform:translate(8vw,10vh) scale(1.15)}}@keyframes drift2{to{transform:translate(-7vw,-8vh) scale(1.2)}}@keyframes drift3{to{transform:translate(-10vw,6vh) scale(.85)}}@media (prefers-reduced-motion: reduce){.aurora:before,.aurora:after,.aurora .blob3{animation:none}}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:999px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover);background-clip:padding-box;border:3px solid transparent}.app{position:relative;z-index:1;display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:auto minmax(0,1fr);height:100dvh;transition:grid-template-columns var(--dur-base) var(--ease-out)}.app.sidebar-collapsed{grid-template-columns:0px 1fr}.install-banner{grid-column:1 / -1;grid-row:1;min-height:58px;z-index:80;display:flex;align-items:center;gap:12px;padding:9px max(14px,env(safe-area-inset-right)) 9px max(14px,env(safe-area-inset-left));color:var(--fg1);background:color-mix(in srgb,var(--bg-panel-solid) 88%,transparent);border-bottom:1px solid var(--border-strong);backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%);box-shadow:0 10px 32px #0000002e}.install-app-icon{width:40px;height:40px;flex:0 0 auto;display:grid;place-items:center;border-radius:12px;color:#fff;background:var(--brand-gradient);box-shadow:0 8px 20px #7c5cff5c}.install-app-icon svg{width:23px;height:23px}.install-copy{min-width:0;display:flex;flex:1;flex-direction:column;line-height:1.3}.install-copy strong{font-size:13.5px;letter-spacing:-.01em}.install-copy span{color:var(--fg2);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.install-actions{display:flex;align-items:center;gap:8px}.install-cta{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 13px;border:1px solid var(--border-strong);border-radius:10px;color:var(--fg1);background:var(--bg-elevated);text-decoration:none;font-size:12.5px;font-weight:750;white-space:nowrap;transition:transform var(--dur-fast),border-color var(--dur-fast),background var(--dur-fast)}.install-cta:hover{transform:translateY(-1px);border-color:var(--border-glow);background:var(--bg-hover)}.install-cta.primary{color:#fff;border-color:transparent;background:var(--brand-gradient);box-shadow:0 5px 14px #7c5cff47}.install-cta svg{width:15px;height:15px}.install-dismiss{width:32px;height:32px;flex:0 0 auto;display:grid;place-items:center;color:var(--fg3);border:0;border-radius:9px;background:transparent;cursor:pointer}.install-dismiss:hover{color:var(--fg1);background:var(--bg-hover)}.install-dismiss svg{width:15px;height:15px}.sidebar{grid-row:2;position:relative;z-index:30;display:flex;flex-direction:column;background:var(--bg-panel);backdrop-filter:blur(var(--glass-blur)) saturate(140%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(140%);border-right:1px solid var(--border);overflow:hidden;min-width:0}.sidebar-inner{width:var(--sidebar-w);height:100%;display:flex;flex-direction:column;padding:var(--s-4) var(--s-3);padding-top:calc(var(--s-4) + env(safe-area-inset-top,0px));padding-bottom:calc(var(--s-4) + env(safe-area-inset-bottom,0px));gap:var(--s-3)}.brand{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-2) var(--s-3)}.brand-logo{width:38px;height:38px;border-radius:12px;background:var(--brand-gradient);display:grid;place-items:center;flex-shrink:0;box-shadow:0 6px 18px #7c5cff73;position:relative;overflow:hidden}.brand-logo svg{width:22px;height:22px}.brand-name{font-weight:800;font-size:18px;letter-spacing:-.02em}.brand-name .tag{display:block;font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--fg3);text-transform:uppercase}.new-chat-btn{display:flex;align-items:center;justify-content:center;gap:var(--s-2);width:100%;padding:13px var(--s-4);font-family:var(--font-ui);font-size:14.5px;font-weight:700;color:#fff;background:var(--brand-gradient);background-size:160% 160%;border:none;border-radius:var(--r-md);cursor:pointer;box-shadow:0 8px 22px #7c5cff5c;transition:transform var(--dur-fast) var(--ease-spring),box-shadow var(--dur-base),background-position var(--dur-slow)}.new-chat-btn:hover{background-position:100% 0;box-shadow:0 10px 28px #7c5cff80}.new-chat-btn:active{transform:scale(.97)}.new-chat-btn svg{width:18px;height:18px}.history-scroll{flex:1;overflow-y:auto;margin:0 calc(-1 * var(--s-1));padding:0 var(--s-1)}.history-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--fg3);padding:var(--s-3) var(--s-2) var(--s-2)}.chat-item{position:relative;display:flex;align-items:center;gap:var(--s-2);padding:10px var(--s-2) 10px 11px;border-radius:var(--r-sm);cursor:pointer;color:var(--fg2);font-size:13.5px;font-weight:500;transition:background var(--dur-fast),color var(--dur-fast)}.chat-item:hover{background:var(--bg-hover);color:var(--fg1)}.chat-item.active{background:var(--bg-active);color:var(--fg1)}.chat-item.active:before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:3px;border-radius:999px;background:var(--brand-gradient)}.chat-item .ci-icon{width:16px;height:16px;flex-shrink:0;color:var(--fg3)}.chat-item.active .ci-icon{color:var(--grad-violet)}.chat-item .ci-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-item .ci-del{width:24px;height:24px;border-radius:7px;border:none;background:transparent;color:var(--fg3);cursor:pointer;display:grid;place-items:center;opacity:0;flex-shrink:0;transition:opacity var(--dur-fast),background var(--dur-fast),color var(--dur-fast)}.chat-item:hover .ci-del{opacity:1}.chat-item .ci-del:hover{background:#ff6b6b29;color:var(--grad-coral)}.chat-item .ci-del svg{width:14px;height:14px}.history-empty{color:var(--fg3);font-size:13px;padding:var(--s-4) var(--s-2);text-align:center}.sidebar-footer{border-top:1px solid var(--border);padding-top:var(--s-3);display:flex;flex-direction:column;gap:2px}.sb-row{display:flex;align-items:center;gap:var(--s-3);padding:10px var(--s-2);border-radius:var(--r-sm);cursor:pointer;color:var(--fg2);font-size:13.5px;font-weight:500;border:none;background:transparent;width:100%;font-family:var(--font-ui);transition:background var(--dur-fast),color var(--dur-fast)}.sb-row:hover{background:var(--bg-hover);color:var(--fg1)}.sb-row svg{width:18px;height:18px;flex-shrink:0}.sb-row .spacer{flex:1}.theme-switch{width:42px;height:24px;border-radius:999px;background:var(--bg-hover);border:1px solid var(--border);position:relative;flex-shrink:0;transition:background var(--dur-base)}.theme-switch .knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--brand-gradient);transition:transform var(--dur-base) var(--ease-spring);box-shadow:0 2px 6px #0000004d}[data-theme=light] .theme-switch .knob{transform:translate(18px)}.main{grid-row:2;position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;height:100%;overflow:hidden}.topbar{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-5);padding-top:calc(var(--s-3) + env(safe-area-inset-top,0px));padding-left:calc(var(--s-5) + env(safe-area-inset-left,0px));padding-right:calc(var(--s-5) + env(safe-area-inset-right,0px));border-bottom:1px solid var(--border);background:var(--bg-panel);backdrop-filter:blur(var(--glass-blur)) saturate(140%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(140%);z-index:20;flex-shrink:0}.icon-btn{width:38px;height:38px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--fg2);cursor:pointer;display:grid;place-items:center;flex-shrink:0;transition:background var(--dur-fast),color var(--dur-fast),transform var(--dur-fast),border-color var(--dur-fast)}.icon-btn:hover{background:var(--bg-hover);color:var(--fg1);border-color:var(--border-strong)}.icon-btn:active{transform:scale(.94)}.icon-btn svg{width:19px;height:19px}.menu-btn{display:none}.topbar-title{font-weight:700;font-size:15px;letter-spacing:-.01em;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-title .sub{display:block;font-size:11.5px;font-weight:500;color:var(--fg3)}.model-select{position:relative}.model-trigger{display:flex;align-items:center;gap:var(--s-2);padding:8px 12px 8px 10px;border-radius:var(--r-pill);border:1px solid var(--border-strong);background:var(--bg-elevated);cursor:pointer;font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--fg1);transition:background var(--dur-fast),border-color var(--dur-fast)}.model-trigger:hover{background:var(--bg-hover);border-color:var(--border-glow)}.model-trigger .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 3px #7c5cff2e}.model-trigger .chev{width:15px;height:15px;color:var(--fg3);transition:transform var(--dur-base)}.model-select.open .model-trigger .chev{transform:rotate(180deg)}.model-trigger .auto-pill{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:999px;background:var(--brand-gradient-soft);color:var(--grad-violet)}[data-theme=light] .model-trigger .auto-pill{color:#6d45e8}.model-menu{position:absolute;top:calc(100% + 8px);right:0;width:320px;z-index:60;background:var(--bg-panel-solid);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-3);padding:var(--s-2);opacity:0;transform:translateY(-8px) scale(.98);pointer-events:none;transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}.model-select.open .model-menu{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.model-menu-head{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--fg3);padding:var(--s-2) var(--s-3) var(--s-1)}.model-opt{display:flex;align-items:flex-start;gap:var(--s-3);padding:11px var(--s-3);border-radius:var(--r-sm);cursor:pointer;transition:background var(--dur-fast)}.model-opt:hover{background:var(--bg-hover)}.model-opt.selected{background:var(--bg-active)}.model-opt .mo-dot{width:9px;height:9px;border-radius:50%;margin-top:5px;flex-shrink:0}.model-opt .mo-body{flex:1;min-width:0}.model-opt .mo-name{font-size:13.5px;font-weight:700;color:var(--fg1);display:flex;align-items:center;gap:6px}.model-opt .mo-name .badge{font-size:9.5px;font-weight:700;padding:2px 6px;border-radius:5px;background:var(--bg-hover);color:var(--fg2);text-transform:uppercase;letter-spacing:.03em}.model-opt .mo-desc{font-size:12px;color:var(--fg3);margin-top:2px;line-height:1.4}.model-opt .mo-check{width:17px;height:17px;color:var(--grad-violet);flex-shrink:0;margin-top:3px;opacity:0}.model-opt.selected .mo-check{opacity:1}.chat-scroll{flex:1;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.chat-inner{max-width:820px;margin:0 auto;padding:var(--s-8) var(--s-5);padding-bottom:calc(150px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:var(--s-6)}.welcome{padding:3vh 0 var(--s-8);text-align:center;animation:rise var(--dur-slow) var(--ease-out)}.welcome-mark{width:68px;height:68px;border-radius:20px;margin:0 auto var(--s-4);background:var(--brand-gradient);display:grid;place-items:center;box-shadow:0 16px 40px #7c5cff80;animation:floaty 5s ease-in-out infinite}.welcome-mark svg{width:40px;height:40px}.welcome h1{font-size:clamp(26px,4vw,36px);font-weight:800;letter-spacing:-.03em;margin-bottom:var(--s-3)}.welcome h1 .grad{background:var(--brand-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.welcome p{color:var(--fg2);font-size:15.5px;max-width:480px;margin:0 auto var(--s-6)}.suggest-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-3);max-width:620px;margin:0 auto}.suggest-card{text-align:left;padding:var(--s-4);border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elevated);backdrop-filter:blur(12px);cursor:pointer;font-family:var(--font-ui);transition:transform var(--dur-base) var(--ease-out),border-color var(--dur-fast),background var(--dur-fast);display:flex;gap:var(--s-3);align-items:flex-start}.suggest-card:hover{transform:translateY(-3px);border-color:var(--border-glow);background:var(--bg-hover)}.suggest-card .sc-ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex-shrink:0}.suggest-card .sc-ico svg{width:18px;height:18px;color:#fff}.suggest-card>span:last-child{display:flex;flex-direction:column;gap:3px;min-width:0}.suggest-card .sc-title{display:block;font-size:13.5px;font-weight:700;color:var(--fg1);line-height:1.35}.suggest-card .sc-desc{display:block;font-size:12px;color:var(--fg3);line-height:1.4}.msg{display:flex;gap:var(--s-4);animation:msgIn var(--dur-slow) var(--ease-out)}@keyframes msgIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.msg .avatar{width:36px;height:36px;border-radius:11px;flex-shrink:0;display:grid;place-items:center;font-weight:800;font-size:14px}.msg.user .avatar{background:linear-gradient(135deg,#2dd4bf,#5b8def);color:#04121a}.msg.ai .avatar{background:var(--brand-gradient);box-shadow:0 6px 16px #7c5cff66}.msg.ai .avatar svg{width:20px;height:20px}.msg-body{flex:1;min-width:0}.msg-name{font-size:12.5px;font-weight:700;color:var(--fg2);margin-bottom:6px;display:flex;align-items:center;gap:8px}.msg-name .route-badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em;background:var(--bg-hover);color:var(--fg3);display:inline-flex;align-items:center;gap:5px}.msg-name .route-badge .rb-dot{width:6px;height:6px;border-radius:50%}.bubble{background:var(--bg-bubble-ai);border:1px solid var(--border);border-radius:6px var(--r-md) var(--r-md) var(--r-md);padding:var(--s-4) var(--s-5);backdrop-filter:blur(var(--glass-blur)) saturate(130%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(130%);box-shadow:var(--shadow-1)}.msg.user .bubble{background:var(--bg-bubble-user);border-color:var(--border-strong)}.md{font-size:15px;color:var(--fg1);overflow-wrap:anywhere}.md>*:first-child{margin-top:0}.md>*:last-child{margin-bottom:0}.md p{margin:0 0 12px}.md h1,.md h2,.md h3,.md h4{font-weight:700;letter-spacing:-.01em;margin:20px 0 10px;line-height:1.3}.md h1{font-size:22px}.md h2{font-size:19px}.md h3{font-size:16.5px}.md h4{font-size:15px}.md ul,.md ol{margin:0 0 12px;padding-left:22px}.md li{margin:4px 0}.md li::marker{color:var(--grad-violet)}.md a{color:var(--grad-teal);text-decoration:none;border-bottom:1px solid rgba(45,212,191,.4)}.md a:hover{border-bottom-color:var(--grad-teal)}.md strong{font-weight:700;color:var(--fg1)}.md blockquote{border-left:3px solid var(--grad-violet);padding:2px 0 2px 16px;margin:0 0 12px;color:var(--fg2)}.md hr{border:none;border-top:1px solid var(--border);margin:18px 0}.md table{width:100%;border-collapse:collapse;margin:0 0 14px;font-size:13.5px}.md th,.md td{border:1px solid var(--border);padding:8px 12px;text-align:left}.md th{background:var(--bg-hover);font-weight:700}.md :not(pre)>code{font-family:var(--font-mono);font-size:.86em;background:var(--bg-hover);padding:2px 6px;border-radius:6px;border:1px solid var(--border);color:var(--grad-teal)}[data-theme=light] .md :not(pre)>code{color:#0e7c6b}.md img{max-width:100%;border-radius:var(--r-sm);margin:6px 0}.code-wrap{margin:0 0 14px;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--border-strong);background:var(--code-bg)}.code-head{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:#ffffff08;border-bottom:1px solid var(--border)}.code-lang{font-family:var(--font-mono);font-size:11.5px;font-weight:600;color:var(--fg3);text-transform:uppercase;letter-spacing:.04em}.copy-btn{display:flex;align-items:center;gap:6px;font-family:var(--font-ui);font-size:12px;font-weight:600;color:var(--fg2);background:transparent;border:1px solid var(--border);border-radius:7px;padding:4px 9px;cursor:pointer;transition:all var(--dur-fast)}.copy-btn:hover{color:var(--fg1);border-color:var(--border-strong);background:var(--bg-hover)}.copy-btn.copied{color:var(--grad-teal);border-color:#2dd4bf66}.copy-btn svg{width:13px;height:13px}.code-wrap pre{margin:0;padding:14px 16px;overflow-x:auto}.code-wrap pre code{font-family:var(--font-mono);font-size:13px;line-height:1.6;background:none!important;padding:0}.gen-image{margin:4px 0 0;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border-strong);position:relative;max-width:420px;box-shadow:var(--shadow-2)}.gen-image img{display:block;width:100%}.gen-image .gi-bar{position:absolute;bottom:0;left:0;right:0;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(transparent,#000000a6);opacity:0;transition:opacity var(--dur-base)}.gen-image:hover .gi-bar{opacity:1}.gi-download{display:flex;align-items:center;gap:6px;color:#fff;font-size:12px;font-weight:600;text-decoration:none;background:#0006;padding:6px 11px;border-radius:999px;backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.2)}.gi-download svg{width:13px;height:13px}.gi-label{color:#ffffffd9;font-size:11.5px;font-weight:600;display:flex;align-items:center;gap:6px}.gi-label svg{width:14px;height:14px}.msg-attachments{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-bottom:var(--s-3)}.att-thumb{border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--border-strong)}.att-thumb img{display:block;max-width:200px;max-height:200px;object-fit:cover}.att-file{display:flex;align-items:center;gap:var(--s-2);padding:9px 13px;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:13px;font-weight:600;color:var(--fg1)}.att-file .af-ico{width:30px;height:30px;border-radius:8px;background:var(--brand-gradient-soft);display:grid;place-items:center;flex-shrink:0;color:var(--grad-violet)}.att-file .af-ico svg{width:16px;height:16px}.att-file .af-meta{font-size:11px;font-weight:500;color:var(--fg3)}.typing{display:inline-flex;align-items:center;gap:5px;padding:4px 0}.typing span{width:8px;height:8px;border-radius:50%;background:var(--grad-violet);animation:blink 1.4s ease-in-out infinite}.typing span:nth-child(2){background:var(--grad-teal);animation-delay:.2s}.typing span:nth-child(3){background:var(--grad-coral);animation-delay:.4s}@keyframes blink{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.cursor-blink{display:inline-block;width:8px;height:16px;background:var(--grad-violet);margin-left:2px;vertical-align:text-bottom;animation:caret 1s step-end infinite;border-radius:2px}@keyframes caret{50%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.composer-wrap{position:absolute;bottom:0;left:0;right:0;z-index:15;padding:0 var(--s-5) var(--s-5);padding-bottom:calc(var(--s-5) + env(safe-area-inset-bottom,0px));padding-left:calc(var(--s-5) + env(safe-area-inset-left,0px));padding-right:calc(var(--s-5) + env(safe-area-inset-right,0px));background:linear-gradient(transparent,var(--bg-app) 38%);pointer-events:none}.composer{max-width:820px;margin:0 auto;pointer-events:auto;background:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--r-lg);backdrop-filter:blur(var(--glass-blur)) saturate(150%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(150%);box-shadow:var(--shadow-2);transition:border-color var(--dur-base),box-shadow var(--dur-base)}.composer.focused{border-color:var(--border-glow);box-shadow:var(--shadow-2),0 0 0 4px #7c5cff1f}.composer.dragover{border-color:var(--grad-teal);box-shadow:0 0 0 4px #2dd4bf2e}.drop-hint{display:none;align-items:center;justify-content:center;gap:var(--s-2);padding:var(--s-3);color:var(--grad-teal);font-weight:700;font-size:13.5px;border-bottom:1px dashed rgba(45,212,191,.4)}.composer.dragover .drop-hint{display:flex}.attach-tray{display:none;flex-wrap:wrap;gap:var(--s-2);padding:var(--s-3) var(--s-4) 0}.attach-tray.show{display:flex}.tray-chip{display:flex;align-items:center;gap:8px;padding:7px 9px 7px 7px;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:12.5px;font-weight:600;max-width:220px}.tray-chip .tc-thumb{width:30px;height:30px;border-radius:7px;object-fit:cover;flex-shrink:0}.tray-chip .tc-ico{width:30px;height:30px;border-radius:7px;background:var(--brand-gradient-soft);display:grid;place-items:center;flex-shrink:0;color:var(--grad-violet)}.tray-chip .tc-ico svg{width:15px;height:15px}.tray-chip .tc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg1)}.tray-chip .tc-x{width:20px;height:20px;border-radius:6px;border:none;background:var(--bg-hover);color:var(--fg2);cursor:pointer;display:grid;place-items:center;flex-shrink:0}.tray-chip .tc-x:hover{background:#ff6b6b29;color:var(--grad-coral)}.tray-chip .tc-x svg{width:12px;height:12px}.composer-main{display:flex;align-items:flex-end;gap:var(--s-2);padding:var(--s-3) var(--s-3) var(--s-3) var(--s-3)}.composer textarea{flex:1;resize:none;border:none;background:transparent;outline:none;font-family:var(--font-ui);font-size:15.5px;color:var(--fg1);line-height:1.5;max-height:200px;padding:9px var(--s-2);min-height:24px}.composer textarea::placeholder{color:var(--fg3)}.composer-btn{width:42px;height:42px;border-radius:13px;flex-shrink:0;border:1px solid var(--border);background:var(--bg-elevated);color:var(--fg2);cursor:pointer;display:grid;place-items:center;transition:all var(--dur-fast) var(--ease-spring)}.composer-btn:hover{background:var(--bg-hover);color:var(--fg1);border-color:var(--border-strong)}.composer-btn:active{transform:scale(.9)}.composer-btn svg{width:20px;height:20px}.send-btn{border:none;background:var(--brand-gradient);background-size:150% 150%;color:#fff;box-shadow:0 6px 16px #7c5cff66}.send-btn:hover{background-position:100% 0;color:#fff;box-shadow:0 8px 22px #7c5cff8c}.send-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.send-btn:disabled:hover{background-position:0 0}.send-btn.stop{background:linear-gradient(135deg,#ff6b6b,#f472b6);box-shadow:0 6px 16px #ff6b6b73}.send-btn.stop:hover{box-shadow:0 8px 22px #ff6b6b99}.composer-hint{text-align:center;font-size:11.5px;color:var(--fg3);margin-top:10px}.composer-hint kbd{font-family:var(--font-mono);font-size:10.5px;background:var(--bg-hover);border:1px solid var(--border);border-radius:5px;padding:1px 5px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(20px);background:var(--bg-panel-solid);border:1px solid var(--border-strong);color:var(--fg1);padding:11px 18px;border-radius:var(--r-pill);font-size:13.5px;font-weight:600;box-shadow:var(--shadow-3);z-index:200;opacity:0;pointer-events:none;transition:opacity var(--dur-base),transform var(--dur-base) var(--ease-spring);display:flex;align-items:center;gap:9px}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.toast svg{width:16px;height:16px;color:var(--grad-teal)}.toast.error svg{color:var(--grad-coral)}.backdrop{position:fixed;inset:0;z-index:25;background:#00000080;opacity:0;pointer-events:none;transition:opacity var(--dur-base);backdrop-filter:blur(2px)}@media (max-width: 860px){.app{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);transform:translate(-100%);transition:transform var(--dur-base) var(--ease-out);box-shadow:var(--shadow-3)}.install-banner{min-height:64px;padding-top:8px;padding-bottom:8px}.install-copy span{display:none}.install-cta{min-height:36px;padding:0 11px}.install-cta svg{display:none}.app.sidebar-open .sidebar{transform:translate(0)}.app.sidebar-open .backdrop{opacity:1;pointer-events:auto}.app.sidebar-collapsed{grid-template-columns:1fr}.menu-btn{display:grid}.desktop-collapse{display:none}.chat-inner{padding:var(--s-5) var(--s-4);padding-bottom:calc(140px + env(safe-area-inset-bottom,0px))}.composer-wrap{padding:0 var(--s-3);padding-bottom:calc(var(--s-2) + env(safe-area-inset-bottom,0px))}.composer-hint{display:none}.suggest-grid{grid-template-columns:1fr;gap:var(--s-2)}.suggest-card{padding:var(--s-3) var(--s-4)}.model-menu{width:min(320px,calc(100vw - 32px))}.topbar{padding:var(--s-3) var(--s-4);padding-top:calc(var(--s-3) + env(safe-area-inset-top,0px))}.topbar-title{font-size:14.5px}.welcome{padding:3vh 0 var(--s-5)}.welcome-mark{width:58px;height:58px;border-radius:17px;margin-bottom:var(--s-3)}.welcome-mark svg{width:34px;height:34px}.welcome h1{font-size:clamp(23px,7vw,30px);margin-bottom:var(--s-2)}.welcome p{font-size:14px;margin-bottom:var(--s-4)}.composer textarea{font-size:16px}.model-trigger{padding:7px 10px 7px 9px;font-size:12.5px}.model-trigger .auto-pill{display:none}}@media (max-width: 380px){.install-banner{gap:8px}.install-app-icon{width:36px;height:36px;border-radius:10px}.install-copy strong{font-size:12.5px}.install-cta{font-size:11.5px;padding:0 9px}.topbar{gap:var(--s-2);padding-left:var(--s-3);padding-right:var(--s-3)}.icon-btn{width:36px;height:36px}.model-trigger span:not(.dot):not(.chev){font-size:12px}.welcome h1{font-size:22px}.bubble{padding:var(--s-3) var(--s-4)}.composer-main{gap:6px}.composer-btn{width:40px;height:40px}}@media (min-width: 861px){.menu-btn{display:none}}.auth-loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg-base)}.auth-spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--grad-violet);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0a0b12d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:var(--s-4)}.auth-card{width:100%;max-width:400px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--s-8) var(--s-8);display:flex;flex-direction:column;gap:var(--s-4);box-shadow:0 24px 64px #00000073}.auth-logo{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-2)}.auth-logo span{font-size:20px;font-weight:700;background:var(--brand-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.auth-title{font-size:22px;font-weight:700;margin:0;color:var(--text-primary)}.auth-trial-banner{background:linear-gradient(135deg,#7c5cff2e,#2dd4bf24);border:1px solid rgba(124,92,255,.3);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);font-size:13.5px;font-weight:600;color:var(--text-primary);text-align:center}.auth-provider-buttons{display:flex;flex-direction:column;gap:var(--s-2)}.auth-google-btn,.auth-apple-btn{display:flex;align-items:center;justify-content:center;gap:var(--s-3);width:100%;height:52px;padding:0 20px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:16px;cursor:pointer;font-size:16px;font-weight:600;color:var(--text-primary);transition:background .15s,border-color .15s}.auth-google-btn{background:#13120f;border-color:#ffffff1f;color:#f5f5f7}.auth-google-btn svg{width:22px;height:22px}.auth-apple-btn svg{width:20px;height:23px}.auth-google-btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.auth-apple-btn{background:#fff;border-color:#fff;color:#050505}.auth-apple-btn:hover{background:#ececf0;border-color:#ececf0}.auth-google-btn:disabled,.auth-apple-btn:disabled{opacity:.6;cursor:not-allowed}.auth-divider{display:flex;align-items:center;gap:var(--s-3);color:var(--text-muted);font-size:12px}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-input{width:100%;padding:11px 14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-md);outline:none;font-size:14.5px;color:var(--text-primary);font-family:var(--font-ui);transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.auth-input:focus{border-color:var(--grad-violet);box-shadow:0 0 0 3px #7c5cff2e}.auth-input::placeholder{color:var(--text-muted)}.auth-submit{width:100%;padding:12px;background:var(--brand-gradient);border:none;border-radius:var(--r-md);cursor:pointer;font-size:15px;font-weight:700;color:#fff;transition:opacity .15s,transform .1s}.auth-submit:hover{opacity:.92}.auth-submit:active{transform:scale(.98)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-error{color:#ef4444;font-size:13px;margin:0}.auth-info{color:var(--grad-teal);font-size:13px;margin:0}.auth-links{display:flex;gap:var(--s-4);flex-wrap:wrap;justify-content:center}.auth-links button{background:none;border:none;cursor:pointer;font-size:13px;color:var(--text-muted);transition:color .15s}.auth-links button:hover{color:var(--grad-violet)}.auth-skip{background:none;border:none;cursor:pointer;font-size:12px;color:var(--text-muted);text-align:center;margin-top:calc(-1 * var(--s-2));transition:color .15s}.auth-skip:hover{color:var(--text-primary)}.sb-account{display:flex;align-items:center;justify-content:space-between;padding:var(--s-3) var(--s-4);border-top:1px solid var(--border);margin-top:var(--s-2)}.sb-account-info{display:flex;align-items:center;gap:var(--s-2);overflow:hidden;flex:1}.sb-avatar{width:28px;height:28px;border-radius:50%;background:var(--brand-gradient);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0;overflow:hidden}.sb-avatar img{width:100%;height:100%;object-fit:cover}.sb-account-email{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sb-signout{background:none;border:none;cursor:pointer;font-size:12px;color:var(--text-muted);padding:2px 6px;flex-shrink:0;transition:color .15s}.sb-signout:hover{color:#ef4444}.sb-signin{color:var(--text-secondary)}.sb-signin:hover{color:var(--grad-violet)!important}
