:root{--bg-primary:#0a0a1a;--bg-secondary:#12122a;--bg-tertiary:#1a1a35;--glass-bg:hsla(0,0%,100%,.72);--glass-bg-heavy:hsla(0,0%,100%,.88);--glass-bg-light:hsla(0,0%,100%,.48);--glass-border:hsla(0,0%,100%,.6);--glass-border-subtle:rgba(0,0,0,.08);--glass-shadow:0 4px 24px rgba(0,0,0,.08),0 1px 4px rgba(0,0,0,.04);--glass-shadow-lg:0 8px 40px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.06);--glass-blur:blur(20px) saturate(180%);--glass-blur-heavy:blur(40px) saturate(200%);--text-primary:#1c1c1e;--text-secondary:#3c3c43;--text-tertiary:#6c6c70;--text-quaternary:#aeaeb2;--accent:#007aff;--accent-light:rgba(0,122,255,.12);--accent-hover:#0066d6;--emphasis:#5856d6;--emphasis-light:rgba(88,86,214,.1);--red:#ff3b30;--orange:#ff9500;--green:#34c759;--red-light:rgba(255,59,48,.1);--green-light:rgba(52,199,89,.1);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",sans-serif;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px)}@media (prefers-color-scheme:dark){:root{--bg-primary:#0a0a1a;--bg-secondary:#12122a;--bg-tertiary:#1a1a35;--glass-bg:hsla(0,0%,100%,.08);--glass-bg-heavy:hsla(0,0%,100%,.13);--glass-bg-light:hsla(0,0%,100%,.05);--glass-border:hsla(0,0%,100%,.18);--glass-border-subtle:hsla(0,0%,100%,.08);--glass-shadow:0 4px 24px rgba(0,0,0,.4),0 1px 4px rgba(0,0,0,.2);--glass-shadow-lg:0 8px 40px rgba(0,0,0,.5),0 2px 8px rgba(0,0,0,.3);--text-primary:#fff;--text-secondary:#ebebf5;--text-tertiary:rgba(235,235,245,.6);--text-quaternary:rgba(235,235,245,.3);--accent-light:rgba(0,122,255,.2);--emphasis-light:rgba(88,86,214,.18);--red-light:rgba(255,59,48,.18);--green-light:rgba(52,199,89,.18)}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font);font-size:16px;-webkit-text-size-adjust:100%;background:var(--bg-primary);color:var(--text-primary);height:100%}body{min-height:100dvh;background:transparent;overflow-x:hidden;-webkit-font-smoothing:antialiased;position:relative}body:before{content:"";position:fixed;inset:-20%;z-index:-1;pointer-events:none;background:radial-gradient(42% 42% at 18% 22%,rgba(88,86,214,.55),transparent 60%),radial-gradient(38% 38% at 82% 18%,rgba(0,122,255,.45),transparent 60%),radial-gradient(45% 45% at 75% 82%,rgba(255,55,120,.35),transparent 60%),radial-gradient(40% 40% at 22% 85%,rgba(52,199,89,.28),transparent 60%);filter:saturate(130%);animation:bgDrift 26s ease-in-out infinite alternate}@keyframes bgDrift{0%{transform:translateZ(0) scale(1)}50%{transform:translate3d(-3%,2%,0) scale(1.08)}to{transform:translate3d(3%,-2%,0) scale(1.04)}}@media (prefers-reduced-motion:reduce){body:before{animation:none}}.glass{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow)}.glass,.glass-heavy{border:1px solid var(--glass-border)}.glass-heavy{background:var(--glass-bg-heavy);backdrop-filter:var(--glass-blur-heavy);-webkit-backdrop-filter:var(--glass-blur-heavy);box-shadow:var(--glass-shadow-lg)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--glass-border-subtle);border-radius:var(--radius-full)}pre{overflow-x:auto}code{font-family:SF Mono,Fira Code,monospace;font-size:.875em}.prose{line-height:1.65;color:var(--text-primary)}.prose p{margin-bottom:.75em}.prose p:last-child{margin-bottom:0}.prose ol,.prose ul{padding-left:1.5em;margin-bottom:.75em}.prose li{margin-bottom:.25em}.prose h1,.prose h2,.prose h3,.prose h4{font-weight:600;margin:1em 0 .4em}.prose h1{font-size:1.4em}.prose h2{font-size:1.2em}.prose h3{font-size:1.05em}.prose blockquote{border-left:3px solid var(--accent);padding-left:1em;color:var(--text-secondary);margin:.75em 0}.prose a{color:var(--accent);text-decoration:none}.prose a:hover{text-decoration:underline}.prose strong{font-weight:600}.prose em{font-style:italic}.prose hr{border:none;border-top:1px solid var(--glass-border-subtle);margin:1em 0}.prose table{width:100%;border-collapse:collapse;margin-bottom:.75em;font-size:.9em}.prose td,.prose th{padding:.4em .75em;border:1px solid var(--glass-border-subtle);text-align:left}.prose th{background:var(--glass-bg-light);font-weight:600}.code-block{position:relative;margin:.75em 0;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-tertiary);border:1px solid var(--glass-border-subtle)}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--glass-bg-light);border-bottom:1px solid var(--glass-border-subtle);font-size:.75em;color:var(--text-tertiary)}.code-block pre{padding:12px 16px;margin:0;font-size:.85em;line-height:1.6}.code-copy-btn{background:none;border:none;cursor:pointer;color:var(--text-tertiary);padding:2px 6px;border-radius:var(--radius-sm);font-size:.85em;transition:color .15s,background .15s}.code-copy-btn:hover{color:var(--accent);background:var(--accent-light)}.prose :not(pre)>code{background:var(--glass-bg-light);border:1px solid var(--glass-border-subtle);border-radius:4px;padding:1px 5px;font-size:.85em}@media (prefers-reduced-motion:no-preference){.fade-in{animation:fadeIn .2s ease}.slide-up{animation:slideUp .25s cubic-bezier(.32,.72,0,1)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.typing-dot{animation:typingPulse 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingPulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}}.sheet-overlay{position:fixed;inset:0;background:rgba(0,0,0,.3);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:40}.sheet{position:fixed;bottom:0;left:0;right:0;border-radius:var(--radius-xl) var(--radius-xl) 0 0;z-index:50;max-height:90dvh;overflow-y:auto;padding-bottom:calc(var(--sab) + 16px)}.sheet-handle{width:36px;height:4px;background:var(--text-quaternary);border-radius:var(--radius-full);margin:10px auto 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;cursor:pointer;font-family:var(--font);font-size:.9375em;font-weight:500;border-radius:var(--radius-full);padding:10px 18px;min-height:44px;transition:opacity .15s,transform .1s,background .15s;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--glass-bg-light)}.btn-icon{padding:0;width:44px;height:44px;border-radius:var(--radius-full);background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-secondary)}.btn-icon:hover{background:var(--glass-bg-heavy)}.btn-destructive{background:var(--red-light);color:var(--red)}.input{width:100%;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:10px 14px;font-family:var(--font);font-size:1em;color:var(--text-primary);outline:none;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.input::placeholder{color:var(--text-quaternary)}.toggle{position:relative;width:51px;height:31px;flex-shrink:0}.toggle input{opacity:0;width:0;height:0}.toggle-track{position:absolute;inset:0;background:var(--bg-tertiary);border-radius:var(--radius-full);transition:background .2s;cursor:pointer}.toggle input:checked+.toggle-track{background:var(--green)}.toggle-thumb{position:absolute;top:2px;left:2px;width:27px;height:27px;background:#fff;border-radius:var(--radius-full);box-shadow:0 2px 6px rgba(0,0,0,.2);transition:transform .2s cubic-bezier(.32,.72,0,1);pointer-events:none}.toggle input:checked~.toggle-thumb{transform:translateX(20px)}.segmented{display:flex;background:var(--bg-tertiary);border-radius:var(--radius-md);padding:2px;gap:2px}.segmented-item{flex:1 1;padding:6px 12px;border:none;background:transparent;border-radius:calc(var(--radius-md) - 2px);font-family:var(--font);font-size:.875em;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s;min-height:32px}.segmented-item.active{background:var(--glass-bg-heavy);color:var(--text-primary);box-shadow:0 1px 4px rgba(0,0,0,.1)}.pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);font-size:.75em;font-weight:500}.pill-accent{background:var(--accent-light);color:var(--accent)}.pill-green{background:var(--green-light);color:var(--green)}.pill-red{background:var(--red-light);color:var(--red)}.app-shell{width:100vw;overflow:hidden}.app-shell,.main-col{display:flex;height:100dvh;position:relative}.main-col{flex:1 1;min-width:0}.main-col,.sidebar{flex-direction:column}.sidebar{width:300px;flex-shrink:0;height:100dvh;display:flex;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-right:1px solid var(--glass-border-subtle);padding-top:var(--sat);padding-left:var(--sal)}.sidebar-header{padding:16px 16px 8px;display:flex;align-items:center;justify-content:space-between}.sidebar-list{flex:1 1;overflow-y:auto;padding:8px}.conv-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--radius-md);cursor:pointer;margin-bottom:2px;transition:background .15s;min-height:44px;-webkit-tap-highlight-color:transparent}.conv-item:hover{background:var(--glass-bg-light)}.conv-item.active{background:var(--accent-light)}.conv-item-title{flex:1 1;font-size:.9375em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-item-actions{display:flex;gap:2px;opacity:0;transition:opacity .15s}.conv-item.active .conv-item-actions,.conv-item:hover .conv-item-actions{opacity:1}.conv-action-btn{background:none;border:none;cursor:pointer;color:var(--text-tertiary);padding:4px;border-radius:var(--radius-sm);display:flex}.conv-action-btn:hover{color:var(--accent);background:var(--glass-bg-light)}.header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;padding-top:calc(10px + var(--sat));background:var(--glass-bg);backdrop-filter:var(--glass-blur-heavy);-webkit-backdrop-filter:var(--glass-blur-heavy);border-bottom:1px solid var(--glass-border-subtle);z-index:20;flex-shrink:0}.header-title{font-size:1.0625em;font-weight:600;letter-spacing:-.01em}.header-status{display:flex;align-items:center;gap:5px;font-size:.6875em;color:var(--text-tertiary)}.status-dot{width:7px;height:7px;border-radius:var(--radius-full);background:var(--green)}.status-dot.off{background:var(--text-quaternary)}.header-actions{display:flex;gap:8px;align-items:center}.menu-btn{display:none}.chat-area{flex:1 1;overflow-y:auto;overflow-x:hidden;padding:20px 16px}.chat-inner{max-width:760px;margin:0 auto;width:100%;gap:18px}.chat-inner,.msg-row{display:flex;flex-direction:column}.msg-row{gap:4px}.msg-row.user{align-items:flex-end}.msg-bubble{max-width:85%;padding:12px 16px;border-radius:var(--radius-lg);font-size:1em;line-height:1.5;word-wrap:break-word;overflow-wrap:break-word}.msg-bubble.user{background:var(--accent);color:#fff;border-bottom-right-radius:var(--radius-sm)}.msg-bubble.assistant{background:var(--glass-bg-heavy);border:1px solid var(--glass-border-subtle);border-bottom-left-radius:var(--radius-sm);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);max-width:100%}.msg-actions{display:flex;gap:4px;margin-top:2px}.msg-action-btn{background:none;border:none;cursor:pointer;color:var(--text-tertiary);padding:5px 8px;border-radius:var(--radius-sm);font-size:.75em;display:inline-flex;align-items:center;gap:4px;transition:color .15s,background .15s}.msg-action-btn:hover{color:var(--accent);background:var(--accent-light)}.empty-state{flex:1 1;flex-direction:column;text-align:center;padding:40px 20px;gap:8px}.empty-icon,.empty-state{display:flex;align-items:center;justify-content:center}.empty-icon{width:64px;height:64px;border-radius:var(--radius-xl);background:var(--emphasis-light);color:var(--emphasis);margin-bottom:8px}.empty-title{font-size:1.5em;font-weight:600;letter-spacing:-.02em}.empty-sub{color:var(--text-tertiary);font-size:.9375em;max-width:340px}.suggestions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:20px;max-width:480px}.suggestion-chip{padding:10px 16px;border-radius:var(--radius-full);background:var(--glass-bg);border:1px solid var(--glass-border);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);font-size:.875em;color:var(--text-secondary);cursor:pointer;transition:background .15s,transform .1s;min-height:44px}.suggestion-chip:hover{background:var(--glass-bg-heavy)}.suggestion-chip:active{transform:scale(.97)}.composer-wrap{flex-shrink:0;padding:8px 16px;padding-bottom:calc(8px + var(--sab));background:var(--glass-bg);backdrop-filter:var(--glass-blur-heavy);-webkit-backdrop-filter:var(--glass-blur-heavy);border-top:1px solid var(--glass-border-subtle)}.composer{max-width:760px;margin:0 auto;display:flex;align-items:flex-end;gap:8px}.composer-input{flex:1 1;background:var(--glass-bg-heavy);border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:12px 16px;font-family:var(--font);font-size:1em;line-height:1.4;color:var(--text-primary);resize:none;outline:none;max-height:160px;min-height:48px;transition:border-color .15s,box-shadow .15s}.composer-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.send-btn{width:48px;height:48px;flex-shrink:0;border-radius:var(--radius-full);border:none;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,transform .1s}.send-btn:hover:not(:disabled){background:var(--accent-hover)}.send-btn:active:not(:disabled){transform:scale(.92)}.send-btn:disabled{background:var(--text-quaternary);cursor:not-allowed}.send-btn.stop{background:var(--red)}.error-banner{max-width:760px;margin:0 auto 12px;padding:10px 14px;border-radius:var(--radius-md);background:var(--red-light);color:var(--red);font-size:.875em;display:flex;align-items:center;gap:8px}.typing{display:inline-flex;gap:4px;padding:4px 0}.typing-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--text-tertiary)}.settings-section{padding:8px 20px 20px}.settings-label{font-size:.75em;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary);margin:16px 0 8px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--glass-border-subtle);min-height:44px}.settings-row:last-child{border-bottom:none}.sheet-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--glass-border-subtle);position:-webkit-sticky;position:sticky;top:0;background:var(--glass-bg-heavy);backdrop-filter:var(--glass-blur-heavy);-webkit-backdrop-filter:var(--glass-blur-heavy);z-index:2}.sheet-title{font-size:1.0625em;font-weight:600}.preset-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:var(--radius-md);cursor:pointer;margin-bottom:4px;border:1px solid transparent;transition:background .15s,border-color .15s;min-height:44px}.preset-item:hover{background:var(--glass-bg-light)}.preset-item.active{background:var(--accent-light);border-color:var(--accent)}.prompt-editor{width:100%;min-height:160px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:12px 14px;font-family:var(--font);font-size:.9375em;line-height:1.5;color:var(--text-primary);resize:vertical;outline:none}.prompt-editor:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}@media (max-width:860px){.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:50;transform:translateX(-100%);transition:transform .3s cubic-bezier(.32,.72,0,1);box-shadow:var(--glass-shadow-lg);width:min(320px,85vw)}.sidebar.open{transform:translateX(0)}.menu-btn{display:flex}.msg-bubble{max-width:90%}}@media (prefers-reduced-motion:reduce){.sidebar{transition:none}*{animation-duration:.001ms!important;transition-duration:.001ms!important}}