:root{--background: oklch(.92 .002 60);--foreground: oklch(.18 .005 60);--card: oklch(.92 .002 60);--card-foreground: oklch(.18 .005 60);--primary: oklch(.22 .005 60);--primary-foreground: oklch(.94 .002 60);--secondary: oklch(.88 .003 60);--secondary-foreground: oklch(.22 .005 60);--muted: oklch(.88 .003 60);--muted-foreground: oklch(.52 .005 60);--accent: oklch(.88 .003 60);--accent-foreground: oklch(.22 .005 60);--destructive: oklch(.577 .245 27.325);--border: oklch(.85 0 0);--input: oklch(.88 0 0);--ring: oklch(.708 0 0);--chart-1: oklch(.646 .222 41.116);--chart-2: oklch(.58 .04 60);--chart-3: oklch(.398 .07 227.392);--chart-4: oklch(.828 .189 84.429);--chart-5: oklch(.68 .12 75);--bg-primary: var(--background);--bg-secondary: var(--secondary);--bg-tertiary: var(--muted);--input-bg: var(--card);--text-primary: var(--foreground);--text-secondary: var(--muted-foreground);--text-tertiary: color-mix(in oklch, var(--foreground) 45%, var(--background));--msg-user-bg: oklch(.78 .025 60);--msg-user-text: oklch(.22 .005 60);--msg-bot-bg: var(--bg-secondary);--msg-bot-text: var(--card-foreground);--success: var(--chart-2);--error: var(--destructive);--warning: var(--chart-4);--accent-primary: var(--chart-5);--accent-warm: var(--chart-5);--accent-secondary: color-mix(in oklch, var(--accent-primary) 60%, var(--foreground));--accent-glow: color-mix(in oklch, var(--accent-primary) 10%, transparent);--border-accent: color-mix(in oklch, var(--accent-primary) 20%, var(--border));--border-subtle: var(--border);--border-medium: color-mix(in oklch, var(--chart-2) 15%, var(--input));--scrim: oklch(.145 0 0 / 60%);--shadow-1: 0 1px 2px oklch(0 0 0 / 4%);--shadow-2: 0 2px 4px oklch(0 0 0 / 4%), 0 4px 8px oklch(0 0 0 / 4%);--shadow-3: 0 4px 8px oklch(0 0 0 / 4%), 0 8px 16px oklch(0 0 0 / 4%), 0 16px 32px oklch(0 0 0 / 4%);--shadow-4: 0 8px 16px oklch(0 0 0 / 6%), 0 16px 32px oklch(0 0 0 / 6%), 0 32px 64px oklch(0 0 0 / 6%);--shadow-glow: 0 0 40px color-mix(in oklch, var(--accent-primary) 12%, transparent);--ambient-radial: radial-gradient(ellipse at 50% 0%, var(--accent-glow) 0%, transparent 60%);--noise-overlay: none;--brand-icon-filter: none;--seal-filter: drop-shadow(0 4px 12px rgba(0, 0, 0, .15));--font-display: "Playfair Display", "Georgia", serif;--font-sans: "Instrument Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif: "Source Serif 4", "Spectral", "Crimson Pro", "Georgia", serif;--font-mono: "Fira Code", "JetBrains Mono", "SF Mono", "Consolas", "Liberation Mono", monospace;--message-font-family: Inter, sans-serif;--message-font-size: 20px;--text-xs: 11px;--text-sm: 12.5px;--text-base: 16px;--text-md: 17px;--text-lg: 19px;--text-xl: 24px;--text-2xl: 32px;--text-3xl: 42px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--duration-fast: .15s var(--ease-smooth);--duration-base: .28s var(--ease-out-quart);--duration-slow: .42s var(--ease-out-expo);--duration-slower: .6s var(--ease-out-expo)}body[class*=-dark]{--brand-icon-filter: none;--seal-filter: drop-shadow(0 4px 12px rgba(0, 0, 0, .25))}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100dvh;width:100%;font-family:var(--font-sans);font-size:var(--text-base);line-height:1.6;background-color:var(--bg-primary);color:var(--text-primary);overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .4s var(--ease-out-quart),color .4s var(--ease-out-quart)}::selection{background:color-mix(in oklch,var(--accent-primary) 28%,transparent);color:var(--text-primary)}body.theme-transitioning,body.theme-transitioning #app,body.theme-transitioning aside#sidebar,body.theme-transitioning .app-header,body.theme-transitioning .message-bubble,body.theme-transitioning .input-container,body.theme-transitioning #messages-container,body.theme-transitioning .sidebar-content{transition:background-color .4s var(--ease-out-quart),border-color .4s var(--ease-out-quart),color .4s var(--ease-out-quart)}h1,h2,h3,h4,.brand-title{font-family:var(--font-display);font-weight:500;line-height:1.2;font-optical-sizing:auto;letter-spacing:-.015em;text-wrap:balance}.message-content{font-family:var(--message-font-family, var(--font-serif));font-size:var(--message-font-size, var(--text-lg));line-height:1.7;text-wrap:pretty}.message-wrapper.bot .message-content{font-family:var(--message-font-family, var(--font-serif));font-weight:400;font-size:var(--message-font-size, var(--text-lg));line-height:1.7;letter-spacing:0}.message-wrapper.bot .message-content pre,.message-wrapper.bot .message-content code,.message-wrapper.bot .message-content pre code{font-family:var(--font-mono)!important;font-size:.9em;line-height:1.5}.theme-card input[type=radio]{position:absolute;opacity:0;width:0;height:0}.theme-card:has(input[type=radio]:checked){border-color:var(--accent-primary)!important;box-shadow:0 0 0 1px var(--accent-glow)}.theme-card:has(input[type=radio]:checked) .active-indicator{opacity:1!important;transform:scale(1)!important}.theme-card{border:2px solid var(--border-subtle);border-radius:12px;padding:var(--space-4);cursor:pointer;transition:all var(--duration-base);position:relative;background:var(--bg-secondary)}.theme-card:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:var(--shadow-2)}#app{display:flex;height:100%;width:100%;position:relative;background:var(--bg-primary)}#app:before{display:none}@keyframes ambient-float{0%,to{transform:translate(0) rotate(0)}33%{transform:translate(2%,-2%) rotate(1deg)}66%{transform:translate(-2%,2%) rotate(-1deg)}}#app:after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;mix-blend-mode:overlay;pointer-events:none;opacity:.035;z-index:1}#app>*{position:relative;z-index:2}aside#sidebar{width:320px;max-width:320px;min-width:280px;background:color-mix(in oklch,var(--chart-2) 4%,var(--bg-secondary));border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;padding:0;transition:max-width .42s var(--ease-out-expo),min-width .42s var(--ease-out-expo),width .42s var(--ease-out-expo),border-right-color .42s var(--ease-out-expo);z-index:20;flex-shrink:0;position:relative;overflow:hidden}.sidebar-content{width:320px;min-width:280px;height:100%;display:flex;flex-direction:column;padding:var(--space-8);overflow-y:auto;overflow-x:hidden;transform-origin:left center;opacity:1;will-change:transform,opacity;transition:transform .42s var(--ease-out-expo),opacity .42s var(--ease-out-expo)}aside#sidebar.collapsed{max-width:0;width:0;min-width:0;padding:0;margin:0;border-right-color:transparent}aside#sidebar.collapsed .sidebar-content{transform:translate(-100%) scale(.92);opacity:0}.sidebar-brand{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);padding-bottom:var(--space-5);border-bottom:1px solid transparent;background:linear-gradient(to right,transparent,color-mix(in oklch,var(--border-subtle) 75%,var(--accent-primary)),transparent) left bottom / 100% 1px no-repeat;min-width:0;flex-shrink:0}.brand-logo{width:36px;height:36px;background:transparent;border-radius:0;display:flex;align-items:center;justify-content:center}.brand-logo img{width:30px;height:30px;display:block;filter:var(--brand-icon-filter)}.brand-title{font-size:var(--text-lg);color:var(--text-primary);letter-spacing:-.02em;white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2}.new-chat-btn{position:relative;width:100%;background:transparent;border:1px solid color-mix(in oklch,var(--chart-2) 12%,var(--border-medium));color:var(--text-secondary);padding:var(--space-4) var(--space-5);border-radius:14px;cursor:pointer;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;display:flex;align-items:center;justify-content:center;gap:var(--space-3);transition:all var(--duration-base);overflow:hidden}.new-chat-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,color-mix(in oklch,var(--accent-primary) 24%,transparent) 0%,var(--accent-glow) 35%,color-mix(in oklch,var(--accent-primary) 60%,transparent) 100%);opacity:0;transform:translateY(6px) scale(1.03);transition:opacity var(--duration-base),transform .42s var(--ease-out-expo)}.new-chat-btn:hover{background:linear-gradient(135deg,var(--accent-glow) 0%,var(--accent-primary) 100%);border-color:var(--accent-primary);color:var(--primary-foreground);transform:translateY(-1px);box-shadow:var(--shadow-2),var(--shadow-glow)}.new-chat-btn:hover:before{opacity:1;transform:translateY(0) scale(1)}.new-chat-btn svg{width:18px;height:18px;transition:transform var(--ease-spring)}.new-chat-btn:hover svg{transform:rotate(90deg)}.chat-history{flex-grow:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-5);padding-right:var(--space-2);min-width:0}.chat-history::-webkit-scrollbar{width:6px}.chat-history::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:3px}.chat-history::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.chat-item{position:relative;border-radius:10px;cursor:pointer;color:var(--text-secondary);font-size:var(--text-sm);white-space:normal;overflow:visible;text-overflow:ellipsis;display:flex;justify-content:space-between;transition:all var(--duration-base);border:1px solid transparent;min-width:0;height:auto;flex-direction:column;gap:var(--space-1);padding:var(--space-3);align-items:stretch}.chat-item:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%) scaleY(0);width:4px;height:60%;background:linear-gradient(to bottom,color-mix(in oklch,var(--accent-primary) 95%,var(--bg-secondary)),color-mix(in oklch,var(--accent-secondary) 85%,var(--bg-secondary)));border-radius:3px;transition:transform var(--ease-spring)}.chat-item:hover{background:var(--bg-tertiary);color:var(--text-primary);padding-left:var(--space-5)}.chat-item:hover:before{transform:translateY(-50%) scaleY(1)}.chat-item.active{background:linear-gradient(135deg,color-mix(in oklch,var(--accent-primary) 10%,transparent),transparent 70%);color:var(--text-primary);border:1px solid color-mix(in oklch,var(--accent-primary) 25%,var(--border-subtle));transition:background var(--duration-base)}.chat-item.active:before{transform:translateY(-50%) scaleY(1)}.pin-chat-btn.pinned{color:var(--accent-primary);opacity:1}.delete-chat-btn{opacity:0;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:var(--space-1);border-radius:6px;transition:all var(--duration-fast);display:flex;align-items:center;justify-content:center}.chat-item:hover .delete-chat-btn{opacity:1}.delete-chat-btn:hover{color:var(--error);background:color-mix(in oklch,var(--destructive) 10%,transparent)}.chat-item-header{display:flex;justify-content:space-between;width:100%;align-items:center;min-width:0;flex-shrink:0}.chat-title{font-weight:500;color:var(--text-primary);white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;flex:1;min-width:0;line-height:1.4}.chat-time{font-size:var(--text-xs);color:var(--text-tertiary);margin-left:var(--space-2);font-variant-numeric:tabular-nums;flex-shrink:0;line-height:1.4}.chat-preview{font-size:var(--text-xs);color:var(--text-tertiary);white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;width:100%;opacity:.8;min-height:2.8em;line-height:1.4}.date-header{font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-4) var(--space-2) var(--space-2);margin-top:var(--space-2);position:relative}.date-header:first-child{margin-top:0}.chat-actions{position:absolute;right:var(--space-2);top:var(--space-2);display:flex;gap:var(--space-1);opacity:0;transition:opacity var(--duration-fast);background:var(--bg-tertiary);padding-left:var(--space-2);border-radius:6px;box-shadow:-10px 0 10px -5px var(--bg-tertiary)}.chat-item:hover .chat-actions{opacity:1}.action-btn{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:12px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast)}.action-btn:hover{color:var(--text-primary);background:var(--bg-secondary)}.action-btn.delete:hover{color:var(--error);background:color-mix(in oklch,var(--destructive) 10%,transparent)}.chat-item.loading,.skeleton-chat-item{background:linear-gradient(90deg,color-mix(in oklch,var(--bg-secondary) 100%,transparent) 25%,color-mix(in oklch,var(--bg-tertiary) 100%,transparent),color-mix(in oklch,var(--bg-secondary) 100%,transparent) 75%);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite;pointer-events:none}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-text{height:12px;background:var(--bg-tertiary);border-radius:4px;margin:8px 0;opacity:.6}.skeleton-text:nth-child(1){width:80%}.skeleton-text:nth-child(2){width:95%}.skeleton-text:nth-child(3){width:70%}.empty-state-sidebar{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);text-align:center;color:var(--text-tertiary);gap:var(--space-3);margin-top:var(--space-8)}.empty-state-icon{width:48px;height:48px;color:var(--text-tertiary);opacity:.5;margin-bottom:var(--space-2)}.empty-state-text{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.empty-state-sub{font-size:var(--text-xs);opacity:.7}.sidebar-footer{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border-subtle)}.sidebar-user{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:12px;transition:background var(--duration-base);cursor:pointer}.sidebar-user:hover{background:var(--bg-tertiary)}.user-avatar{width:36px;height:36px;border-radius:50%;background:radial-gradient(circle at 30% 25%,color-mix(in oklch,var(--accent-primary) 38%,var(--primary-foreground)) 0%,transparent 58%),linear-gradient(135deg,color-mix(in oklch,var(--accent-primary) 34%,transparent),color-mix(in oklch,var(--accent-secondary) 28%,transparent));display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:var(--text-sm);font-weight:500;color:#fff}.user-info{flex:1;min-width:0}.user-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.user-status{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}main{flex-grow:1;display:flex;flex-direction:column;position:relative;background:transparent;z-index:10}.app-header{height:64px;padding:0 var(--space-6);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle);background:color-mix(in oklch,var(--chart-2) 8%,var(--background));backdrop-filter:blur(20px);position:relative;z-index:15}.app-header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-glow),transparent);opacity:.5}.header-left{display:flex;align-items:center;gap:var(--space-5)}.header-right{display:flex;align-items:center;gap:var(--space-3);flex:1;justify-content:flex-end;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0}.header-right::-webkit-scrollbar{display:none}.header-group{display:inline-flex;align-items:center;gap:var(--space-3);flex:0 0 auto}.header-group+.header-group{border-left:1px solid var(--border-subtle);padding-left:var(--space-4);margin-left:var(--space-2)}.header-center{display:flex;align-items:center;justify-content:center;flex:0 0 auto}.agent-selector{position:relative}.agent-selector-btn{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 10px;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:10px;color:var(--text-primary);cursor:pointer;font-size:14px;font-weight:500;font-family:inherit;transition:all .2s ease;white-space:nowrap}.agent-selector-btn:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.agent-selector-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.agent-emoji{font-size:18px;line-height:1}.agent-name{font-size:14px;font-weight:600;letter-spacing:.01em}.agent-chevron{opacity:.5;transition:transform .2s ease;flex-shrink:0}.agent-selector.open .agent-chevron{transform:rotate(180deg)}.agent-dropdown{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);min-width:200px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:12px;box-shadow:0 8px 32px #00000040,0 2px 8px #00000026;padding:6px;z-index:100;opacity:0;visibility:hidden;transform:translate(-50%) translateY(-4px) scale(.98);transition:all .15s ease}.agent-selector.open .agent-dropdown{opacity:1;visibility:visible;transform:translate(-50%) translateY(0) scale(1)}.agent-option{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;background:transparent;color:var(--text-primary);cursor:pointer;border-radius:8px;width:100%;font-size:14px;font-family:inherit;transition:background .15s ease;text-align:left}.agent-option:hover{background:var(--bg-hover)}.agent-option.active{background:color-mix(in oklch,var(--accent-primary) 15%,transparent)}.agent-option-emoji{font-size:20px;width:28px;text-align:center;flex-shrink:0}.agent-option-info{display:flex;flex-direction:column;gap:1px;min-width:0}.agent-option-name{font-weight:600;font-size:14px}.agent-option-id{font-size:11px;color:var(--text-tertiary);opacity:.7}.agent-option .agent-check{margin-left:auto;opacity:0;color:var(--accent-primary);flex-shrink:0}.agent-option.active .agent-check{opacity:1}.icon-btn{position:relative;background:transparent;border:1px solid transparent;color:var(--text-secondary);cursor:pointer;padding:var(--space-3);border-radius:12px;display:flex;align-items:center;justify-content:center;transition:all var(--duration-base)}.icon-btn:before{content:"";position:absolute;inset:0;border-radius:12px;background:var(--bg-tertiary);opacity:0;transform:scale(.9);transition:all var(--duration-base)}.icon-btn:hover{color:var(--text-primary)}.icon-btn:hover:before{opacity:1;transform:scale(1)}.icon-btn.enabled{color:var(--accent-primary);border-color:var(--accent-primary);background:var(--bg-secondary)}.icon-btn svg{width:20px;height:20px;position:relative;z-index:1}.icon-label{font-size:10px;font-weight:500;line-height:1.2;letter-spacing:.01em;text-align:center;position:relative;z-index:1}.icon-btn.with-label{flex-direction:column;gap:2px;padding:6px 10px;height:auto;min-width:56px}#font-type-select,#font-size-select,#theme-select{padding:var(--space-2) var(--space-4);border-radius:10px;border:1px solid var(--border-medium);background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-sm);outline:none;cursor:pointer;max-width:200px;transition:all var(--duration-base);appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235C5C57' stroke-width='2' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px}#font-type-select:hover,#font-size-select:hover,#theme-select:hover{border-color:var(--accent-primary)}#font-type-select:focus,#font-size-select:focus,#theme-select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}#search-chats{width:180px;padding:var(--space-2) var(--space-4);border-radius:10px;border:1px solid var(--border-medium);background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-sm);outline:none;transition:all var(--duration-base);background-image:url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235C5C57' stroke-width='2' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:10px center;padding-left:36px}#search-chats::placeholder{color:var(--text-tertiary)}#search-chats:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow);width:220px}@media (max-width: 768px){.app-header{padding:0 var(--space-4)}#search-chats{width:140px}#font-type-select,#font-size-select,#theme-select{max-width:160px}.header-group+.header-group{padding-left:var(--space-3);margin-left:var(--space-1)}.app-header .icon-label{display:none}.icon-btn.with-label{min-width:44px;padding:8px 10px}.agent-name{display:none}.agent-selector-btn{padding:6px 8px;gap:4px}.agent-dropdown{min-width:180px}}#messages-container{flex-grow:1;overflow-y:auto;scrollbar-gutter:stable;padding:var(--space-12) var(--space-6) 180px;display:flex;flex-direction:column;gap:var(--space-8);scroll-behavior:smooth;position:relative}#messages-container::-webkit-scrollbar{width:8px}#messages-container::-webkit-scrollbar-track{background:transparent;margin:8px 0}#messages-container::-webkit-scrollbar-thumb{background:linear-gradient(180deg,color-mix(in oklch,var(--accent-primary) 20%,transparent),color-mix(in oklch,var(--accent-primary) 12%,transparent));border-radius:6px;border:2px solid transparent;background-clip:padding-box;transition:all var(--duration-base)}#messages-container::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,color-mix(in oklch,var(--accent-primary) 46%,transparent),color-mix(in oklch,var(--accent-primary) 28%,transparent));border-width:1px}.chat-history::-webkit-scrollbar{width:8px}.chat-history::-webkit-scrollbar-track{background:transparent}.chat-history::-webkit-scrollbar-thumb{background:linear-gradient(180deg,color-mix(in oklch,var(--accent-primary) 30%,var(--border-medium)),color-mix(in oklch,var(--accent-primary) 15%,var(--border-medium)));border-radius:6px;transition:all var(--duration-base)}.chat-history::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,color-mix(in oklch,var(--accent-primary) 50%,var(--border-medium)),color-mix(in oklch,var(--accent-primary) 30%,var(--border-medium)))}.message-wrapper{display:flex;flex-direction:column;max-width:var(--content-max-width, 1200px);margin:0 auto;width:100%;position:relative;transform:translateY(20px) scale(.98);animation:messageRevealEnhanced .5s var(--ease-out-expo) forwards}.message-wrapper:nth-child(1){animation-delay:0ms}.message-wrapper:nth-child(2){animation-delay:50ms}.message-wrapper:nth-child(3){animation-delay:.1s}.message-wrapper:nth-child(4){animation-delay:.15s}.message-wrapper:nth-child(5){animation-delay:.2s}.message-wrapper:nth-child(n+6){animation-delay:.25s}aside#sidebar.collapsed~main .message-wrapper{--content-max-width: min(90%, 1600px)}@media (min-width: 1920px){:root{--content-max-width: 1400px}aside#sidebar.collapsed~main .message-wrapper,aside#sidebar.collapsed~main .input-container{--content-max-width: min(90%, 1800px)}}@keyframes messageRevealEnhanced{0%{transform:translateY(20px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.message-wrapper.deleting{animation:messageExit .3s var(--ease-out-quart) forwards}@keyframes messageExit{to{transform:translate(-20px) scale(.95);opacity:0;max-height:0;margin:0;padding:0}}.message-wrapper.user{align-items:flex-end;flex-direction:row-reverse;gap:var(--space-3)}.message-wrapper.bot{align-items:flex-start;flex-direction:row;gap:var(--space-3)}.message-avatar{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:14px;font-weight:600;box-shadow:var(--shadow-2);transition:transform var(--duration-base);position:relative;overflow:hidden}.message-wrapper.user .message-avatar{background:linear-gradient(135deg,color-mix(in oklch,var(--accent-primary) 100%,transparent),color-mix(in oklch,var(--accent-secondary) 100%,transparent));color:#fff;border:2px solid color-mix(in oklch,var(--accent-primary) 30%,transparent)}.message-wrapper.bot .message-avatar{background:linear-gradient(135deg,color-mix(in oklch,var(--chart-2) 80%,var(--bg-secondary)),color-mix(in oklch,var(--accent-primary) 40%,var(--bg-secondary)));color:var(--text-primary);border:2px solid var(--border-medium)}.message-wrapper:hover .message-avatar{transform:scale(1.05)}.message-content-wrapper{flex:1;display:flex;flex-direction:column;min-width:0}.message-bubble{max-width:100%;padding:var(--space-5) var(--space-6);border-radius:18px;position:relative;box-shadow:var(--shadow-1);backdrop-filter:blur(12px) saturate(110%);transition:transform var(--duration-base),box-shadow var(--duration-base),border-color var(--duration-base)}@media (max-width: 768px){.message-bubble{max-width:90%;padding:var(--space-4) var(--space-5)}}.message-bubble:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:.75px;background:linear-gradient(135deg,color-mix(in oklch,var(--accent-primary) 16%,transparent),color-mix(in oklch,var(--accent-primary) 4%,transparent));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity var(--duration-base);pointer-events:none}.message-wrapper:hover .message-bubble:before{opacity:.45}.message-wrapper.user .message-bubble{background:var(--msg-user-bg);color:var(--msg-user-text);border-bottom-right-radius:10px}.message-wrapper.user .message-content{font-family:var(--message-font-family, var(--font-sans));font-weight:400;font-size:var(--message-font-size, var(--text-base));line-height:1.5;letter-spacing:0;white-space:pre-wrap}.message-wrapper.bot .message-bubble{background:var(--msg-bot-bg);color:var(--msg-bot-text);border-bottom-left-radius:10px;border:1px solid var(--border-subtle)}.message-wrapper.streaming .message-bubble{border-color:color-mix(in oklch,var(--accent-primary) 24%,var(--border-subtle));box-shadow:var(--shadow-1),0 0 0 1px color-mix(in oklch,var(--accent-primary) 8%,transparent)}.message-wrapper.streaming .message-content{text-rendering:optimizeLegibility}.message-wrapper.loading .message-bubble{background:linear-gradient(90deg,color-mix(in oklch,var(--msg-bot-bg) 100%,transparent) 25%,color-mix(in oklch,var(--accent-glow) 100%,var(--msg-bot-bg)),color-mix(in oklch,var(--msg-bot-bg) 100%,transparent) 75%);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite;min-height:100px}.message-wrapper:hover .message-bubble{transform:translateY(-1px);box-shadow:var(--shadow-2);border-color:color-mix(in oklch,var(--accent-primary) 18%,var(--border-subtle))}.message-wrapper.user:hover .message-bubble{box-shadow:var(--shadow-2),0 0 20px color-mix(in oklch,var(--msg-user-bg) 30%,transparent)}.message-wrapper.bot:hover .message-bubble{box-shadow:var(--shadow-2),0 0 20px color-mix(in oklch,var(--accent-primary) 15%,transparent)}.link-preview-list{margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.link-preview-card{width:min(400px,100%);max-width:400px;display:flex;align-items:stretch;gap:var(--space-4);padding:var(--space-4);border-radius:14px;border:1px solid var(--border-subtle);background:color-mix(in oklch,var(--bg-secondary) 65%,transparent);text-decoration:none;color:inherit;box-shadow:var(--shadow-1);transition:transform var(--duration-base),box-shadow var(--duration-base),border-color var(--duration-base),background var(--duration-base)}.message-wrapper.bot .link-preview-card{background:color-mix(in oklch,var(--msg-bot-bg) 82%,var(--bg-primary))}.link-preview-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2);border-color:color-mix(in oklch,var(--accent-primary) 20%,var(--border-subtle));background:color-mix(in oklch,var(--bg-secondary) 75%,transparent)}.link-preview-media{width:88px;height:68px;border-radius:12px;flex-shrink:0;position:relative;overflow:hidden;background:linear-gradient(135deg,color-mix(in oklch,var(--accent-primary) 10%,var(--bg-tertiary)),color-mix(in oklch,var(--chart-2) 10%,var(--bg-tertiary)));border:1px solid color-mix(in oklch,var(--border-subtle) 70%,transparent)}.link-preview-image{width:100%;height:100%;object-fit:cover;display:none}.link-preview-card.has-image .link-preview-image{display:block}.link-preview-favicon-wrap{position:absolute;left:8px;bottom:8px;width:28px;height:28px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:color-mix(in oklch,var(--bg-primary) 72%,transparent);border:1px solid var(--border-subtle);box-shadow:var(--shadow-1);backdrop-filter:blur(10px) saturate(120%)}.link-preview-favicon{width:16px;height:16px;display:block}.link-preview-body{min-width:0;display:flex;flex-direction:column;gap:4px}.link-preview-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);font-size:11px;color:var(--text-tertiary);letter-spacing:.02em;text-transform:none}.link-preview-domain{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-preview-ext{flex-shrink:0;opacity:.85;color:var(--text-tertiary)}.link-preview-ext-icon{display:block}.link-preview-title{font-size:var(--text-sm);font-weight:650;color:var(--text-primary);line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.link-preview-desc{font-size:var(--text-xs);color:var(--text-secondary);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.link-preview-card:hover .link-preview-ext{opacity:1;color:var(--accent-primary)}@media (max-width: 768px){.link-preview-media{width:76px;height:60px}}.message-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2);font-size:var(--text-xs);color:var(--text-tertiary);padding:0 var(--space-2);min-height:24px}.meta-time{cursor:default;font-weight:500}.meta-full{color:var(--text-tertiary);white-space:nowrap}.meta-usage{display:inline-flex;align-items:center;gap:var(--space-2);font-size:10px;color:var(--text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;cursor:default}.meta-usage-label{opacity:.7}.meta-usage-value{font-weight:inherit;color:inherit}.context-ascii{font-family:monospace;letter-spacing:1px;font-size:10px;color:var(--text-tertiary, #999)}.context-bar-text{color:var(--text-tertiary);opacity:.8}.reasoning-section{margin-bottom:var(--space-4);border:2px solid var(--border-medium);border-radius:10px;background:linear-gradient(135deg,color-mix(in oklch,var(--accent-primary) 8%,var(--bg-tertiary)),color-mix(in oklch,var(--accent-primary) 3%,var(--bg-tertiary)));overflow:hidden;box-shadow:var(--shadow-2),inset 0 1px color-mix(in oklch,var(--accent-primary) 15%,transparent);position:relative;animation:slideInFromTop .4s var(--ease-out-quart)}@keyframes slideInFromTop{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.reasoning-section:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent-primary) 0%,var(--accent-warm) 50%,var(--accent-primary) 100%);opacity:.3}.reasoning-section details{cursor:pointer}.reasoning-section summary{padding:var(--space-4) var(--space-5);font-size:var(--text-sm);font-weight:600;color:var(--text-primary);user-select:none;display:flex;align-items:center;gap:var(--space-2);transition:background-color var(--duration-fast);background:color-mix(in oklch,var(--accent-primary) 5%,transparent);letter-spacing:.01em}.reasoning-section summary:hover{background:color-mix(in oklch,var(--accent-primary) 10%,transparent)}.reasoning-section summary::marker{color:var(--accent-primary)}.reasoning-section-content{padding:var(--space-4) var(--space-5);border-top:1px solid var(--border-medium);background:color-mix(in oklch,var(--bg-primary) 90%,var(--bg-tertiary));font-family:var(--font-mono);font-size:.85em;line-height:1.65;white-space:pre-wrap;word-break:break-word;color:var(--text-secondary);max-height:500px;overflow-y:auto;min-height:40px}.reasoning-section-content:empty:after{content:"Thinking...";color:var(--text-tertiary);font-style:italic;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.reasoning-section-content::-webkit-scrollbar{width:4px}.reasoning-section-content::-webkit-scrollbar-track{background:transparent}.reasoning-section-content::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:2px}.session-separator{display:flex;align-items:center;justify-content:center;margin:var(--space-8) 0;position:relative;width:100%;opacity:0;animation:fadeIn .5s ease forwards}.session-separator:before{content:"";position:absolute;left:0;right:0;height:1px;background:var(--border-subtle);z-index:1}.session-date{background:transparent;padding:4px 12px;color:var(--text-tertiary);font-size:var(--text-xs);font-weight:500;z-index:2;border-radius:12px;border:1px solid var(--border-subtle);font-family:var(--font-sans)}.message-actions{display:flex;gap:var(--space-1);opacity:0;transition:opacity var(--duration-fast)}.message-wrapper:hover .message-actions{opacity:1}.message-wrapper:focus-within .message-actions{opacity:1}body.theme-noir-dark .action-btn:hover{background:color-mix(in oklch,var(--accent-primary) 12%,transparent)}.message-edit-textarea{width:100%;min-height:80px;max-height:300px;padding:var(--space-4) var(--space-5);border:1px solid var(--border-medium);border-radius:12px;background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;resize:vertical;outline:none;transition:all var(--duration-fast)}.message-edit-textarea:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.message-edit-actions{display:flex;gap:var(--space-2);margin-top:var(--space-3);justify-content:flex-end}.message-edit-actions .btn{font-size:var(--text-sm);padding:var(--space-2) var(--space-4)}.action-btn.delete-btn:hover{color:var(--error);background:color-mix(in oklch,var(--destructive) 10%,transparent)}.action-btn.edit-btn:hover{color:var(--accent-primary);background:color-mix(in oklch,var(--accent-primary) 10%,transparent)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:var(--space-10);animation:fadeIn var(--duration-slower) var(--ease-out-expo) forwards;position:relative}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.empty-state-avatar{position:relative;display:grid;place-items:center;margin-bottom:var(--space-8);opacity:0;animation:sealReveal var(--duration-slower) forwards;animation-delay:0s}.empty-state-avatar:before{content:"";position:absolute;inset:-10px;border-radius:999px;box-shadow:0 0 0 1px color-mix(in oklch,var(--border-accent) 70%,transparent),0 0 0 10px var(--accent-glow);pointer-events:none}.ed-seal{width:clamp(132px,16vw,180px);height:clamp(132px,16vw,180px);border-radius:999px;object-fit:cover;object-position:center 20%;filter:var(--seal-filter);box-shadow:0 0 0 1px color-mix(in oklch,var(--border-subtle) 70%,transparent),var(--shadow-2);transition:transform var(--duration-base),box-shadow var(--duration-base)}.empty-state-avatar:hover .ed-seal{transform:scale(1.015);box-shadow:0 0 0 1px color-mix(in oklch,var(--border-accent) 65%,transparent),var(--shadow-3)}@keyframes sealFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.empty-state-title{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:500;color:var(--text-primary);margin-bottom:var(--space-3);letter-spacing:-.03em;line-height:1.05;opacity:0;animation:titleReveal var(--duration-slow) forwards;animation-delay:.2s}.empty-state-text{font-size:var(--text-md);color:color-mix(in oklch,var(--text-secondary) 92%,var(--bg-primary));max-width:380px;line-height:1.8;margin-bottom:var(--space-6);opacity:0;animation:textReveal var(--duration-slow) forwards;animation-delay:.3s}.empty-state-divider{width:72px;height:1px;margin:var(--space-6) auto var(--space-8);background:linear-gradient(to right,transparent,color-mix(in oklch,var(--border-subtle) 85%,transparent),transparent);opacity:0;animation:textReveal var(--duration-slow) forwards;animation-delay:.4s}.empty-state-suggestions{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;max-width:600px}.suggestion-pill{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:color-mix(in oklch,var(--bg-secondary) 96%,var(--accent-glow));border:1px solid color-mix(in oklch,var(--border-medium) 75%,var(--border-subtle));appearance:none;-webkit-appearance:none;border-radius:100px;font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:transform var(--duration-fast),background-color var(--duration-base),border-color var(--duration-base),box-shadow var(--duration-base),color var(--duration-base);font-family:var(--font-sans);box-shadow:inset 0 1px color-mix(in oklch,var(--bg-primary) 28%,transparent),var(--shadow-1);opacity:0;animation:suggestionsReveal var(--duration-slow) forwards}.empty-state-suggestions .suggestion-pill:nth-child(1){animation-delay:.5s}.empty-state-suggestions .suggestion-pill:nth-child(2){animation-delay:.6s}.empty-state-suggestions .suggestion-pill:nth-child(3){animation-delay:.7s}.empty-state-suggestions .suggestion-pill:nth-child(4){animation-delay:.8s}.suggestion-pill:hover{background:color-mix(in oklch,var(--bg-secondary) 86%,var(--accent-primary));border-color:color-mix(in oklch,var(--accent-primary) 35%,var(--border-subtle));transform:translateY(-1px);box-shadow:inset 0 1px color-mix(in oklch,var(--bg-primary) 40%,transparent),var(--shadow-2);color:var(--text-primary)}.suggestion-pill:active{transform:translateY(0);box-shadow:inset 0 1px color-mix(in oklch,var(--bg-primary) 40%,transparent),var(--shadow-1)}.suggestion-pill:focus-visible{outline:2px solid color-mix(in oklch,var(--accent-primary) 45%,transparent);outline-offset:3px}.suggestion-pill svg{width:16px;height:16px;opacity:.7;transition:opacity var(--duration-fast),color var(--duration-base)}.suggestion-pill:hover svg{opacity:1;color:var(--accent-primary)}@keyframes sealReveal{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes titleReveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes textReveal{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes suggestionsReveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.quick-actions{display:flex;gap:var(--space-4);margin-top:var(--space-8);flex-wrap:wrap;justify-content:center}.action-card{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100px;height:100px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:16px;cursor:pointer;transition:transform var(--duration-base),background-color var(--duration-base),border-color var(--duration-base),box-shadow var(--duration-base);gap:var(--space-2);opacity:0;box-shadow:var(--shadow-1);animation:suggestionsReveal var(--duration-slow) forwards}.action-card:nth-child(1){animation-delay:.9s}.action-card:nth-child(2){animation-delay:1s}.action-card:nth-child(3){animation-delay:1.1s}.action-card:nth-child(4){animation-delay:1.2s}.action-card:hover{transform:translateY(-2px);border-color:var(--border-accent);box-shadow:var(--shadow-2);background:color-mix(in oklch,var(--bg-secondary) 90%,var(--accent-glow))}.action-card-icon{width:32px;height:32px;color:var(--text-secondary);transition:color .2s}.action-card:hover .action-card-icon{color:var(--accent-primary)}.action-card-label{font-size:var(--text-xs);font-weight:500;color:var(--text-secondary)}#input-area{position:absolute;bottom:0;left:0;right:0;padding:var(--space-6);background:linear-gradient(to top,var(--bg-primary) 70%,transparent);display:flex;justify-content:center;pointer-events:none;z-index:20;flex-direction:column;align-items:center}.ai-disclaimer{margin-top:10px;font-size:12px;opacity:.62;font-style:italic;line-height:1.4;padding-left:6px}.input-container{max-width:var(--content-max-width, 1200px);width:100%;position:relative;background:color-mix(in oklch,var(--chart-2) 3%,var(--input-bg));border:none;border-radius:28px;padding:var(--space-4) var(--space-6);display:flex;flex-direction:column;gap:0;box-shadow:var(--shadow-3),inset 0 1px 3px #0000000a;transition:box-shadow var(--duration-base) var(--ease-smooth),background-color var(--duration-base) var(--ease-smooth),transform var(--duration-base) var(--ease-smooth);pointer-events:auto}aside#sidebar.collapsed~main .input-container{--content-max-width: min(90%, 1600px)}.message-wrapper,.input-container{transition:max-width .42s var(--ease-out-expo)}.input-container:focus-within{box-shadow:var(--shadow-3),inset 0 1px 3px #0000000a,0 0 0 1px color-mix(in oklch,var(--accent-glow) 55%,transparent),0 0 0 6px color-mix(in oklch,var(--accent-glow) 16%,transparent)}#attachments-list{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) 0 0 0;max-height:0;overflow:hidden;opacity:0;transition:all var(--duration-base)}#attachments-list.has-attachments{max-height:150px;opacity:1;padding:var(--space-3) 0 var(--space-2) 0;border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-2)}.attachment-pill{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--bg-tertiary);border:1px solid color-mix(in oklch,var(--border-subtle) 75%,var(--accent-glow));border-radius:20px;font-size:var(--text-xs);color:var(--text-secondary);font-weight:500;box-shadow:var(--shadow-1);animation:pillEnter var(--duration-base) var(--ease-spring) forwards}@keyframes pillEnter{0%{opacity:0;transform:scale(.9) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.attachment-pill:hover{border-color:var(--accent-primary)}.attachment-icon{width:14px;height:14px;display:flex;align-items:center;justify-content:center;color:var(--accent-primary)}.attachment-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-remove{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all var(--duration-fast)}.attachment-remove:hover{color:var(--error);background:color-mix(in oklch,var(--destructive) 10%,transparent)}.input-row{display:flex;align-items:flex-end;gap:var(--space-3)}#message-input{flex-grow:1;border:none;background:transparent;color:var(--text-primary);caret-color:var(--accent-primary);font-family:var(--message-font-family, var(--font-sans));font-size:var(--message-font-size, 20px);padding:var(--space-3) 0;max-height:150px;min-height:24px;resize:none;outline:none;line-height:1.5;transition:all var(--duration-fast)}#message-input:focus{box-shadow:none}#message-input::placeholder{color:var(--text-tertiary)}#upload-btn{width:44px;height:44px;border-radius:50%;background:transparent;border:1px solid var(--border-medium);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all var(--duration-base)}#upload-btn:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary);transform:scale(1.05)}#file-input{display:none}#send-btn{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border:1px solid transparent;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;box-shadow:var(--shadow-2),0 0 20px var(--accent-glow);transition:transform var(--duration-fast) var(--ease-spring),box-shadow var(--duration-base),background var(--duration-base);position:relative;overflow:hidden}#send-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:var(--shadow-3),0 0 30px var(--accent-glow)}#send-btn:active:not(:disabled){transform:scale(.97)}#send-btn:disabled{cursor:not-allowed;opacity:1;box-shadow:none;background:color-mix(in oklch,var(--bg-tertiary) 80%,var(--border-medium));color:color-mix(in oklch,var(--text-tertiary) 80%,var(--text-secondary));border:1px solid var(--border-subtle)}#send-btn.loading{pointer-events:none;background:var(--bg-tertiary);color:transparent}#send-btn.loading:after{content:"";position:absolute;width:20px;height:20px;border:2px solid var(--accent-primary);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#send-btn.cancel-mode{background:linear-gradient(135deg,var(--error-color, #ef4444),var(--error-dark, #dc2626));color:#fff;cursor:pointer;pointer-events:auto}#send-btn.cancel-mode:hover{transform:scale(1.05);box-shadow:var(--shadow-3),0 0 30px #ef444466}#send-btn.cancel-mode:active{transform:scale(.98)}#send-btn.cancelling{animation:pulse-cancel 1.5s ease-in-out infinite}@keyframes pulse-cancel{0%,to{box-shadow:var(--shadow-3),0 0 20px #ef44444d}50%{box-shadow:var(--shadow-3),0 0 35px #ef444499}}.draft-saved-indicator{position:absolute;bottom:-22px;left:16px;font-size:11px;font-weight:500;color:var(--success);opacity:0;transition:opacity .3s var(--ease-out-quart);pointer-events:none}.draft-saved-indicator.visible{opacity:.7}#message-input.has-scroll{position:relative}#message-input.has-scroll:after{content:"";position:absolute;bottom:0;left:0;right:0;height:20px;background:linear-gradient(to bottom,transparent,var(--input-bg));pointer-events:none;border-radius:0 0 18px 18px}.btn:hover:not(:disabled),.icon-btn:hover,.action-btn:hover{transform:translateY(-1px)}.btn:active:not(:disabled),.icon-btn:active{transform:translateY(0)}#send-btn:not(:disabled):not(.loading){animation:pulse-ready 2.6s ease-in-out infinite}@keyframes pulse-ready{0%,to{box-shadow:var(--shadow-2),0 0 14px color-mix(in oklch,var(--accent-glow) 55%,transparent)}50%{box-shadow:var(--shadow-2),0 0 18px color-mix(in oklch,var(--accent-glow) 70%,transparent)}}.btn,.icon-btn{position:relative;overflow:hidden}.btn:after,.icon-btn:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn:active:after,.icon-btn:active:after{width:300px;height:300px}.scroll-bottom-btn{position:absolute;bottom:100px;left:50%;transform:translate(-50%) translateY(20px);background:var(--bg-secondary);border:1px solid var(--border-medium);color:var(--text-secondary);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-3);opacity:0;pointer-events:none;transition:all var(--duration-base);z-index:100}.scroll-bottom-btn.visible{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(0)}.scroll-bottom-btn:hover{background:var(--bg-primary);color:var(--accent-primary);transform:translate(-50%) translateY(-2px);box-shadow:var(--shadow-4)}.scroll-bottom-btn.has-new{color:var(--accent-primary);border-color:var(--accent-primary);width:auto;padding:0 var(--space-4);border-radius:20px;gap:var(--space-2)}.scroll-bottom-btn.has-new:after{content:none}.scroll-bottom-btn .new-count{display:none;font-size:var(--text-xs);font-weight:600}.scroll-bottom-btn.has-new .new-count{display:inline-block}.scroll-bottom-btn.has-new svg{width:16px;height:16px}@keyframes pulse-glow{0%{box-shadow:0 0 0 0 var(--accent-glow)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}.scroll-bottom-btn.has-new{animation:pulse-glow 2s infinite}.modal-overlay{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(16px) saturate(180%);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;pointer-events:none;transition:opacity var(--duration-slow)}.modal-overlay.visible{opacity:1;pointer-events:auto}.modal-card{background:var(--bg-primary);border:1px solid var(--border-subtle);padding:var(--space-8);border-radius:24px;width:90%;max-width:1000px;box-shadow:var(--shadow-4);transform:scale(.96) translateY(10px);transition:transform var(--duration-base);position:relative;overflow:auto;resize:horizontal;min-width:520px;min-height:400px;max-height:90vh}.modal-overlay.visible .modal-card{transform:scale(1) translateY(0)}.modal-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in oklch,var(--accent-glow) 60%,transparent),color-mix(in oklch,var(--accent-primary) 16%,transparent),transparent)}.modal-header{text-align:center;margin-bottom:var(--space-6)}.modal-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;color:var(--text-primary);margin-bottom:var(--space-2)}.modal-subtitle{font-size:var(--text-sm);color:var(--text-secondary)}.form-group{margin-bottom:var(--space-5)}.form-label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-2)}.form-input,.form-textarea,.form-select{width:100%;padding:var(--space-4);border:1px solid var(--border-medium);border-radius:12px;background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-base);outline:none;transition:all var(--duration-fast)}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}.form-textarea{resize:vertical;min-height:100px;line-height:1.6}.modal-actions{display:flex;justify-content:center;gap:var(--space-3);margin-top:var(--space-6)}.prompt-editor{display:grid;gap:var(--space-3)}.prompt-list{margin-top:var(--space-4);display:grid;gap:var(--space-3);max-height:220px;overflow-y:auto;padding-right:var(--space-2)}.prompt-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:12px;background:var(--bg-secondary);border:1px solid var(--border-subtle)}.prompt-item-info{display:flex;flex-direction:column;gap:2px;min-width:0}.prompt-item-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prompt-item-preview{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prompt-item-actions{display:flex;align-items:center;gap:var(--space-2)}.prompt-action{padding:6px 10px;font-size:var(--text-xs);border-radius:8px}.settings-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-5);border-bottom:1px solid var(--border-subtle)}.settings-tab{padding:var(--space-3) var(--space-5);background:none;border:none;border-bottom:2px solid transparent;color:var(--text-tertiary);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--duration-fast)}.settings-tab:hover{color:var(--text-secondary)}.settings-tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.settings-tab-panel{display:none}.settings-tab-panel.active{display:block}.btn{padding:var(--space-3) var(--space-6);border-radius:12px;font-weight:500;cursor:pointer;font-family:var(--font-sans);font-size:var(--text-sm);transition:all var(--duration-base);display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.btn-primary{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;border:none;box-shadow:var(--shadow-2)}.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-3),0 0 20px var(--accent-glow)}.btn-primary:active{transform:scale(.98)}.btn-secondary{background:var(--bg-secondary);border:1px solid var(--border-medium);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--text-tertiary)}.typing-indicator{display:flex;gap:6px;padding:var(--space-4) var(--space-5);background:linear-gradient(135deg,var(--msg-bot-bg),color-mix(in oklch,var(--msg-bot-bg) 90%,var(--accent-glow)));border-radius:18px 18px 18px 6px;width:fit-content;box-shadow:var(--shadow-1);border:1px solid var(--border-subtle)}.typing-indicator .dot{width:8px;height:8px;background-color:var(--text-secondary);border-radius:50%;animation:typingWave 1.4s infinite ease-in-out both;opacity:.6}.typing-indicator .dot:nth-child(1){animation-delay:-.32s}.typing-indicator .dot:nth-child(2){animation-delay:-.16s}@keyframes typingWave{0%,80%,to{transform:translateY(0);opacity:.6}40%{transform:translateY(-6px);opacity:1;background-color:var(--accent-primary)}}#toast-container{position:fixed;bottom:var(--space-6);right:var(--space-6);display:flex;flex-direction:column-reverse;gap:var(--space-3);z-index:2000;pointer-events:none}.toast{position:relative;background:var(--bg-secondary);color:var(--text-primary);padding:var(--space-4) var(--space-5);border-radius:14px;box-shadow:var(--shadow-4);font-size:var(--text-sm);font-weight:500;display:flex;align-items:flex-start;gap:var(--space-3);border:1px solid var(--border-subtle);animation:toastSlideIn var(--duration-base) var(--ease-spring) forwards;max-width:400px;overflow:hidden;pointer-events:auto}.toast-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;margin-top:1px}.toast-content{flex:1;display:flex;flex-direction:column;gap:4px}.toast-message{line-height:1.4}.toast-progress{position:absolute;bottom:0;left:0;width:100%;height:3px;background:#fff3}.toast-progress-bar{height:100%;background:currentColor;width:0%;transition:width .3s linear}.toast-progress-bar.indeterminate{width:30%;animation:toastProgressIndeterminate 1.5s infinite linear}@keyframes toastProgressIndeterminate{0%{transform:translate(-100%)}to{transform:translate(400%)}}.toast-actions{display:flex;gap:var(--space-2);margin-left:var(--space-2);align-self:center}.toast-action-btn{background:#ffffff26;border:none;color:inherit;padding:4px 10px;border-radius:6px;font-size:var(--text-xs);cursor:pointer;font-weight:600;transition:background .2s}.toast-action-btn:hover{background:#ffffff40}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}.toast.success{background:linear-gradient(135deg,var(--success),#4a6b5e);color:#fff;border-color:transparent}.toast.error{background:linear-gradient(135deg,var(--error),#a04845);color:#fff;border-color:transparent}.toast.info{background:linear-gradient(135deg,var(--accent-primary),#4a5e6b);color:#fff;border-color:transparent}.toast.hiding{animation:toastSlideOut var(--duration-base) var(--ease-out-quart) forwards}@keyframes toastSlideOut{to{opacity:0;transform:translate(100%) scale(.95)}}.shortcut-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);background:var(--bg-secondary);border-radius:10px;margin-bottom:var(--space-2);transition:background var(--duration-base)}.shortcut-row:hover{background:color-mix(in oklch,var(--accent-primary) 6%,var(--bg-secondary))}.shortcut-label{font-size:var(--text-sm);color:var(--text-primary)}kbd{padding:var(--space-1) var(--space-3);background:linear-gradient(180deg,color-mix(in oklch,var(--bg-tertiary) 82%,oklch(1 0 0)),var(--bg-tertiary));border:1px solid color-mix(in oklch,var(--border-medium) 86%,transparent);border-bottom:2px solid color-mix(in oklch,var(--border-medium) 88%,oklch(0 0 0));border-radius:6px;font-family:var(--font-sans);font-size:var(--text-xs);color:var(--text-secondary);font-weight:500;box-shadow:inset 0 1px color-mix(in oklch,oklch(1 0 0) 40%,transparent)}@media (max-width: 1024px){aside#sidebar{width:260px}}@media (max-width: 768px){aside#sidebar{position:absolute;left:0;top:0;bottom:0;transform:translate(-100%);width:300px;box-shadow:var(--shadow-4)}aside#sidebar.expanded{transform:translate(0)}#sidebar-overlay{position:fixed;inset:0;background:#0a0a0a80;backdrop-filter:blur(4px);z-index:15;opacity:0;pointer-events:none;transition:opacity var(--duration-base)}#sidebar-overlay.visible{opacity:1;pointer-events:auto}.app-header{padding:0 var(--space-4);height:64px}#search-chats{display:none}#messages-container{padding:var(--space-5) var(--space-4) calc(var(--space-12) + 40px)}}.message-content h1,.message-content h2,.message-content h3,.message-content h4{font-family:var(--font-display);margin-top:1em;margin-bottom:.5em;line-height:1.3}.message-content h1{font-size:1.5em}.message-content h2{font-size:1.3em}.message-content h3{font-size:1.1em}.message-content p{margin-bottom:.8em}.message-content code{font-family:var(--font-mono);font-size:.9em;padding:.2em .4em;background:transparent;color:inherit;border-radius:4px}.message-content pre{margin:1em 0;padding:40px 1em 1em;border-radius:12px;overflow-x:auto;background:var(--bg-secondary);border:1px solid var(--border-medium);position:relative}.message-content pre code{padding:0;background:transparent;color:inherit}.message-content ul,.message-content ol{margin:.8em 0;padding-left:1.5em}.message-content li{margin-bottom:.3em}.message-content blockquote{margin:1em 0;padding-left:1em;border-left:3px solid var(--accent-primary);color:var(--text-secondary);font-style:italic}.message-content a{color:color-mix(in oklch,var(--accent-primary) 60%,var(--foreground));text-decoration:none;font-weight:500}.message-content a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;color:var(--accent-primary)}.message-content table{width:100%;border-collapse:collapse;margin:1.25em 0;font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"zero" 0;background:color-mix(in oklch,var(--foreground) 1.5%,transparent);border-radius:14px;overflow:hidden;border:1px solid var(--border-subtle)}.message-content th,.message-content td{padding:.85em 1.1em;border:none;text-align:left;vertical-align:baseline}.message-content th{font-weight:700;font-size:inherit;text-transform:none;letter-spacing:0;color:var(--text-secondary);background:color-mix(in oklch,var(--foreground) 2.5%,transparent);white-space:nowrap;border-bottom:1px solid var(--border-medium)}.message-content tbody tr+tr td{border-top:1px solid var(--border-subtle)}.message-content th:first-child,.message-content td:first-child{padding-left:1.5em}.message-content th:last-child,.message-content td:last-child{padding-right:1.5em}.message-content th[align=right],.message-content td[align=right]{text-align:right}.message-content th[align=center],.message-content td[align=center]{text-align:center}.message-content hr{border:none;border-top:1px solid var(--border-medium);margin:1.5em 0}.message-content img{max-width:100%;border-radius:8px}.message-content tr:nth-child(2n){background-color:transparent}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-contrast: more){:root{--border: oklch(0 0 0);--input: oklch(0 0 0)}body.theme-noir-dark{--border: oklch(1 0 0);--input: oklch(1 0 0)}}.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}*:focus{outline:2px solid var(--accent-primary);outline-offset:2px}*:focus:not(:focus-visible){outline:none}*:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}button,input,textarea,select,[role=button],[tabindex]:not([tabindex="-1"]){transition:outline-color .15s ease,box-shadow .15s ease}.icon-btn:focus-visible,.action-btn:focus-visible,.prompt-action:focus-visible,.settings-tab:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.suggestion-pill:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.token.comment,.token.prolog,.token.doctype,.token.cdata,.token.punctuation{color:#737373}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#f466b1}.token.selector,.token.maybe-class-name,.token.function-name{color:#e8803f}.token.attr-value,.token.regex,.token.attr-equals,.token.builtin{color:oklch(.646 .222 41.116)}.token.string,.token.char,.token.builtin,.token.inserted{color:oklch(.6 .118 184.704)}.token.number,.token.boolean{color:oklch(.769 .188 70.08)}.token.keyword,.token.operator,.token.entity{color:oklch(.828 .189 84.429)}.token.function{color:#1447e6}body.theme-noir-dark pre[class*=language-] .token.comment,body.theme-noir-dark pre[class*=language-] .token.prolog,body.theme-noir-dark pre[class*=language-] .token.doctype,body.theme-noir-dark pre[class*=language-] .token.cdata,body.theme-noir-dark pre[class*=language-] .token.punctuation{color:#a1a1a1}pre[class*=language-]{background:var(--bg-secondary);border:1px solid color-mix(in oklch,var(--border-medium) 82%,transparent);border-radius:12px;position:relative;margin:1em 0;padding:40px 1.2em 1.2em;overflow-x:auto}pre[class*=language-]:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in oklch,var(--accent-primary) 26%,var(--border-medium)),transparent);pointer-events:none}.code-copy-btn{position:absolute;top:36px;right:8px;background:linear-gradient(180deg,color-mix(in oklch,var(--accent-primary) 92%,oklch(1 0 0)),color-mix(in oklch,var(--accent-primary) 88%,oklch(0 0 0)));color:#fff;border:none;border-radius:10px;padding:5px 11px;font-size:11px;font-weight:600;cursor:pointer;z-index:10;font-family:var(--font-sans);opacity:0;transform:translateY(4px);transition:all var(--duration-base);display:flex;align-items:center;gap:4px;box-shadow:0 10px 24px color-mix(in oklch,var(--accent-primary) 18%,transparent),inset 0 1px color-mix(in oklch,oklch(1 0 0) 35%,transparent)}.code-copy-btn:hover{background:linear-gradient(180deg,color-mix(in oklch,var(--accent-primary) 96%,oklch(1 0 0)),color-mix(in oklch,var(--accent-primary) 92%,oklch(0 0 0)));transform:translateY(-1px);box-shadow:0 14px 30px color-mix(in oklch,var(--accent-primary) 24%,transparent),inset 0 1px color-mix(in oklch,oklch(1 0 0) 40%,transparent)}.code-copy-btn:active{transform:translateY(0)}.code-lang-badge{background:var(--accent-primary);color:var(--text-primary)}pre[class*=language-] code{text-shadow:none}.code-copy-btn svg{width:14px;height:14px}pre:hover .code-copy-btn{opacity:1;transform:translateY(0)}@media (hover: none){.code-copy-btn{opacity:.6;transform:translateY(0)}}.code-lang-badge{position:absolute;top:0;right:0;background:var(--bg-tertiary);color:var(--text-secondary);font-size:11px;font-family:var(--font-sans);font-weight:700;padding:5px 12px;border-bottom-left-radius:8px;border-top-right-radius:11px;border-left:1px solid var(--border-medium);border-bottom:1px solid var(--border-medium);text-transform:uppercase;letter-spacing:.5px;pointer-events:none;z-index:5}.code-copy-btn.copied{background:var(--success)}.code-copy-btn.copied svg{display:none}.code-copy-btn.copied:after{content:"\2713";font-weight:500}#voice-toggle-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--border-medium);background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:50%;transition:all var(--duration-base);flex-shrink:0}#voice-toggle-btn:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary);transform:scale(1.05)}#voice-toggle-btn.active{color:var(--accent-primary);border-color:var(--accent-primary);background:color-mix(in oklch,var(--accent-primary) 10%,transparent)}#voice-toggle-btn.active:hover{background:color-mix(in oklch,var(--accent-primary) 20%,transparent)}#voice-toggle-btn.recording{color:var(--error);border-color:var(--error);background:color-mix(in oklch,var(--error) 10%,transparent);animation:micPulse 1.5s ease-in-out infinite}@keyframes micPulse{0%,to{box-shadow:0 0 color-mix(in oklch,var(--error) 30%,transparent)}50%{box-shadow:0 0 0 8px color-mix(in oklch,var(--error) 0%,transparent)}}#message-input.listening{border-color:var(--error);box-shadow:0 0 0 1px color-mix(in oklch,var(--error) 30%,transparent)}.voice-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s ease}.voice-overlay.visible{opacity:1;visibility:visible}.voice-overlay-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background:color-mix(in oklch,var(--bg-primary) 92%,transparent);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px)}.voice-overlay-content{position:relative;display:flex;flex-direction:column;align-items:center;gap:28px;z-index:1;animation:voiceFadeIn .5s ease-out;max-width:400px;padding:20px}@keyframes voiceFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.voice-avatar-container{position:relative;width:180px;height:180px;display:flex;align-items:center;justify-content:center}.voice-avatar-img{width:140px;height:140px;border-radius:50%;object-fit:cover;position:relative;z-index:3;box-shadow:0 0 30px color-mix(in oklch,var(--accent-primary) 30%,transparent);transition:box-shadow .5s ease}.voice-avatar-ring{position:absolute;top:50%;left:50%;width:160px;height:160px;border-radius:50%;border:2px solid var(--accent-primary);transform:translate(-50%,-50%);animation:voicePulse 2s ease-in-out infinite;opacity:.6;transition:border-color .5s ease}.voice-avatar-ring.ring-2{width:190px;height:190px;animation:voicePulse2 2s ease-in-out infinite .4s;opacity:.4;border-width:1.5px}.voice-avatar-ring.ring-3{width:220px;height:220px;animation:voicePulse3 2s ease-in-out infinite .8s;opacity:.2;border-width:1px}@keyframes voicePulse{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.6}50%{transform:translate(-50%,-50%) scale(1.15);opacity:.2}}@keyframes voicePulse2{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.4}50%{transform:translate(-50%,-50%) scale(1.12);opacity:.15}}@keyframes voicePulse3{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.2}50%{transform:translate(-50%,-50%) scale(1.1);opacity:.05}}.voice-overlay.mode-listening .voice-avatar-ring{border-color:var(--success, #4ade80)}.voice-overlay.mode-listening .voice-avatar-img{box-shadow:0 0 30px color-mix(in oklch,var(--success, #4ade80) 30%,transparent)}.voice-overlay.mode-transcribing .voice-avatar-ring,.voice-overlay.mode-thinking .voice-avatar-ring{border-color:var(--warning, #fbbf24)}.voice-overlay.mode-transcribing .voice-avatar-img,.voice-overlay.mode-thinking .voice-avatar-img{box-shadow:0 0 30px color-mix(in oklch,var(--warning, #fbbf24) 30%,transparent)}.voice-overlay.mode-speaking .voice-avatar-ring{border-color:var(--accent-primary)}.voice-status-text{font-size:var(--text-lg, 18px);color:var(--text-secondary);font-weight:500;letter-spacing:.3px;animation:voiceTextPulse 2s ease-in-out infinite;text-align:center}@keyframes voiceTextPulse{0%,to{opacity:1}50%{opacity:.6}}.voice-transcript{display:none;font-size:var(--text-base, 16px);color:var(--text-primary);text-align:center;max-width:350px;line-height:1.5;font-style:italic;opacity:.8;padding:0 10px}.voice-controls{display:flex;gap:16px;align-items:center}.voice-btn{display:flex;align-items:center;gap:8px;padding:14px 28px;border:none;border-radius:50px;font-size:var(--text-sm, 14px);font-weight:600;cursor:pointer;transition:all .2s ease;letter-spacing:.3px}.voice-done-btn{background:color-mix(in oklch,var(--accent-primary) 25%,var(--bg-secondary));color:var(--text-primary)}.voice-done-btn:hover{background:color-mix(in oklch,var(--accent-primary) 40%,var(--bg-secondary));transform:scale(1.05)}.voice-done-btn svg{color:var(--accent-primary)}.voice-close-btn{background:color-mix(in oklch,var(--error, #ef4444) 15%,var(--bg-secondary));color:var(--text-secondary)}.voice-close-btn:hover{background:color-mix(in oklch,var(--error, #ef4444) 30%,var(--bg-secondary));color:var(--text-primary);transform:scale(1.05)}.voice-close-btn svg{color:var(--error, #ef4444)}@media (max-width: 768px){.voice-avatar-container{width:150px;height:150px}.voice-avatar-img{width:110px;height:110px}.voice-avatar-ring{width:130px;height:130px}.voice-avatar-ring.ring-2{width:155px;height:155px}.voice-avatar-ring.ring-3{width:180px;height:180px}.voice-btn{padding:12px 22px}}.media-image-container{position:relative;display:inline-block;border-radius:12px;overflow:hidden;border:1px solid var(--border-subtle);background:var(--bg-secondary);box-shadow:var(--shadow-1);transition:box-shadow var(--duration-base),border-color var(--duration-base);max-width:100%;line-height:0;margin:var(--space-2) 0}.media-image-container:hover{box-shadow:var(--shadow-2);border-color:var(--border-medium)}.media-image-container--error{border-color:var(--error);opacity:.6}.media-image{display:block;max-width:100%;height:auto;border-radius:11px;opacity:0;transition:opacity var(--duration-slow)}.media-image--loaded{opacity:1}.media-image-skeleton{position:absolute;inset:0;border-radius:11px;background:linear-gradient(110deg,var(--bg-secondary) 25%,var(--bg-tertiary) 37%,var(--bg-secondary) 63%);background-size:200% 100%;animation:media-skeleton-pulse 1.6s ease-in-out infinite;min-height:120px;min-width:160px}@keyframes media-skeleton-pulse{0%{background-position:100% 0}to{background-position:-100% 0}}.media-image-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:flex-end;gap:var(--space-1);padding:var(--space-2);background:linear-gradient(0deg,oklch(0 0 0 / 52%) 0%,oklch(0 0 0 / 18%) 40%,transparent 100%);border-radius:11px;opacity:0;transition:opacity var(--duration-base);pointer-events:none}.media-image-container:hover .media-image-overlay{opacity:1;pointer-events:auto}.media-image-action{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:#0000007f;color:#ffffffe5;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background var(--duration-fast),transform var(--duration-fast)}.media-image-action:hover{background:#000000b3;transform:scale(1.08)}.media-image-action:active{transform:scale(.95)}.media-image-action--success{background:oklch(.55 .18 145 / 70%)!important}.media-thumb-strip{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) 0}.media-thumb{position:relative;width:72px;height:72px;border-radius:10px;overflow:hidden;border:1px solid var(--border-subtle);background:var(--bg-secondary);box-shadow:var(--shadow-1);cursor:pointer;transition:border-color var(--duration-fast),box-shadow var(--duration-fast),transform var(--duration-fast);flex-shrink:0}.media-thumb:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-2);transform:scale(1.05)}.media-thumb:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.media-thumb-img{width:100%;height:100%;object-fit:cover;display:block}.media-lightbox{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:var(--scrim);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);opacity:0;animation:media-lightbox-open .28s var(--ease-out-expo) forwards;outline:none}.media-lightbox--open{opacity:1}.media-lightbox--closing{animation:media-lightbox-close .22s var(--ease-smooth) forwards}@keyframes media-lightbox-open{0%{opacity:0}to{opacity:1}}@keyframes media-lightbox-close{0%{opacity:1}to{opacity:0}}.media-lightbox-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.media-lightbox-viewport{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:var(--space-16) var(--space-12);overflow:hidden}.media-lightbox-image{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:8px;box-shadow:var(--shadow-4);transform-origin:center center;transition:transform .2s var(--ease-out-quart);user-select:none;-webkit-user-select:none;animation:media-lightbox-img-enter .32s var(--ease-out-expo) forwards}.media-lightbox-image--zoomed{cursor:grab;transition:none}@keyframes media-lightbox-img-enter{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.media-lightbox-topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);z-index:2;pointer-events:none}.media-lightbox-topbar>*{pointer-events:auto}.media-lightbox-actions{display:flex;align-items:center;gap:var(--space-1)}.media-lightbox-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:10px;background:#0006;color:#ffffffe0;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background var(--duration-fast),transform var(--duration-fast)}.media-lightbox-btn:hover{background:#0009;transform:scale(1.06)}.media-lightbox-btn:active{transform:scale(.94)}.media-lightbox-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.media-lightbox-btn--close{width:44px;height:44px}.media-lightbox-btn--success{background:oklch(.55 .18 145 / 60%)!important}.media-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:none;border-radius:50%;background:#00000059;color:#ffffffe0;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background var(--duration-fast),transform var(--duration-fast)}.media-lightbox-nav:hover{background:#0000008c;transform:translateY(-50%) scale(1.08)}.media-lightbox-nav:active{transform:translateY(-50%) scale(.94)}.media-lightbox-nav:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.media-lightbox-nav--prev{left:var(--space-4)}.media-lightbox-nav--next{right:var(--space-4)}.media-lightbox-dots{position:absolute;bottom:var(--space-6);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-2);z-index:2;padding:var(--space-1) var(--space-3);background:#00000059;border-radius:20px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.media-lightbox-dot{width:8px;height:8px;border:none;border-radius:50%;background:#ffffff59;cursor:pointer;padding:0;transition:background var(--duration-fast),transform var(--duration-fast)}.media-lightbox-dot:hover{background:#fff9}.media-lightbox-dot--active{background:#ffffffe5;transform:scale(1.3)}.media-lightbox-counter{position:absolute;bottom:var(--space-6);right:var(--space-6);font-family:var(--font-sans);font-size:var(--text-sm);color:#fff9;z-index:2;pointer-events:none}@media (max-width: 640px){.media-thumb{width:64px;height:64px;border-radius:8px}.media-lightbox-viewport{padding:var(--space-8) var(--space-2)}.media-lightbox-image{max-width:96vw;max-height:80vh;border-radius:4px}.media-lightbox-nav{width:40px;height:40px}.media-lightbox-nav--prev{left:var(--space-2)}.media-lightbox-nav--next{right:var(--space-2)}.media-lightbox-btn{width:36px;height:36px}.media-lightbox-btn--close{width:40px;height:40px}.media-lightbox-topbar{padding:var(--space-2) var(--space-3)}.media-image-action{width:28px;height:28px;border-radius:6px}.media-lightbox-counter{bottom:var(--space-3);right:var(--space-3)}.media-lightbox-dots{bottom:var(--space-4)}}@media (prefers-reduced-motion: reduce){.media-image,.media-image-overlay,.media-image-container,.media-image-action,.media-thumb,.media-lightbox,.media-lightbox-image,.media-lightbox-btn,.media-lightbox-nav,.media-lightbox-dot{transition:none!important;animation:none!important}.media-image-skeleton{animation:none;background:var(--bg-tertiary)}.media-image,.media-lightbox{opacity:1}.media-lightbox-image{opacity:1;transform:none}}.media-video-embed-list{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-3)}.media-video-player{position:relative;width:100%;max-width:100%;aspect-ratio:16 / 9;border-radius:12px;overflow:hidden;background:#030303;border:1px solid var(--border-subtle);box-shadow:var(--shadow-2);outline:none;cursor:pointer;contain:layout}.media-video-player:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.media-video-element{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}.media-video-center-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.85);width:72px;height:72px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:none;background:var(--accent-primary);color:var(--foreground);cursor:pointer;opacity:0;pointer-events:none;transition:opacity var(--duration-base),transform var(--duration-base);z-index:3;box-shadow:var(--shadow-3)}.media-video-center-play--visible{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}.media-video-center-play:hover{transform:translate(-50%,-50%) scale(1.08)}.media-video-center-play:active{transform:translate(-50%,-50%) scale(.95)}.media-video-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--text-primary);opacity:0;pointer-events:none;z-index:4;transition:opacity var(--duration-fast)}.media-video-loader--visible{opacity:1}.media-video-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);background:var(--scrim);color:var(--text-primary);opacity:0;pointer-events:none;z-index:5;transition:opacity var(--duration-base)}.media-video-error--visible{opacity:1;pointer-events:auto}.media-video-error-msg{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text-secondary)}.media-video-retry-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;transition:background var(--duration-fast),border-color var(--duration-fast)}.media-video-retry-btn:hover{background:var(--bg-tertiary);border-color:var(--accent-primary)}.media-video-pip-indicator{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px dashed var(--border-subtle);border-radius:12px;color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--text-sm);opacity:0;pointer-events:none;z-index:6;transition:opacity var(--duration-base)}.media-video-pip-indicator--visible{opacity:1;pointer-events:auto}.media-video-pip-active .media-video-element{opacity:.2}.media-video-controls{position:absolute;bottom:0;left:0;right:0;display:flex;flex-direction:column;padding:0 var(--space-3) var(--space-2);background:linear-gradient(transparent,#000000b3 40%);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transform:translateY(4px);transition:opacity var(--duration-base),transform var(--duration-base);z-index:10;pointer-events:none}.media-video-controls-visible .media-video-controls{opacity:1;transform:translateY(0);pointer-events:auto}.media-video-progress-wrap{position:relative;width:100%;height:4px;background:#ffffff26;border-radius:2px;cursor:pointer;margin-bottom:var(--space-2);transition:height .12s ease}.media-video-progress-wrap:hover,.media-video-seeking .media-video-progress-wrap{height:6px}.media-video-progress-buffer{position:absolute;top:0;left:0;height:100%;width:0%;background:#ffffff40;border-radius:2px;pointer-events:none}.media-video-progress-played{position:absolute;top:0;left:0;height:100%;width:0%;background:var(--accent-primary);border-radius:2px;pointer-events:none}.media-video-progress-thumb{position:absolute;top:50%;left:0%;width:14px;height:14px;background:var(--accent-primary);border-radius:50%;transform:translate(-50%,-50%) scale(0);transition:transform .12s ease;pointer-events:none;box-shadow:0 1px 4px #0000004d;z-index:1}.media-video-progress-wrap:hover .media-video-progress-thumb,.media-video-seeking .media-video-progress-thumb{transform:translate(-50%,-50%) scale(1)}.media-video-progress-tooltip{position:absolute;bottom:calc(100% + 8px);left:0%;transform:translate(-50%);padding:2px 6px;background:#0b0b0be5;color:#eee;font-family:var(--font-mono);font-size:11px;border-radius:4px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .1s ease}.media-video-progress-tooltip--visible{opacity:1}.media-video-controls-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.media-video-controls-left,.media-video-controls-right{display:flex;align-items:center;gap:var(--space-1)}.media-video-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:none;border-radius:6px;background:transparent;color:#eee;cursor:pointer;transition:background var(--duration-fast);flex-shrink:0}.media-video-btn:hover{background:#ffffff26}.media-video-btn:active{background:#ffffff40}.media-video-time{font-family:var(--font-mono);font-size:12px;color:#dedede;white-space:nowrap;padding-left:var(--space-1);user-select:none}.media-video-volume-wrap{position:relative;display:flex;align-items:center}.media-video-volume-slider-wrap{width:0;overflow:hidden;transition:width var(--duration-base)}.media-video-volume-wrap:hover .media-video-volume-slider-wrap,.media-video-volume-wrap:focus-within .media-video-volume-slider-wrap{width:80px}.media-video-volume-slider{width:80px;height:4px;margin:0;padding:0;cursor:pointer;appearance:none;-webkit-appearance:none;background:transparent}.media-video-volume-slider::-webkit-slider-runnable-track{height:4px;background:#ffffff40;border-radius:2px}.media-video-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;background:#eee;border-radius:50%;margin-top:-4px;cursor:pointer;box-shadow:0 1px 3px #0000004d}.media-video-volume-slider::-moz-range-track{height:4px;background:#ffffff40;border:none;border-radius:2px}.media-video-volume-slider::-moz-range-thumb{width:12px;height:12px;background:#eee;border:none;border-radius:50%;cursor:pointer;box-shadow:0 1px 3px #0000004d}.media-video-embed{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:12px;overflow:hidden;background:#030303;border:1px solid var(--border-subtle);box-shadow:var(--shadow-2);cursor:pointer}.media-video-embed-thumb{position:absolute;inset:0}.media-video-embed-thumb-img{width:100%;height:100%;object-fit:cover}.media-video-embed-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:none;background:none;padding:0;cursor:pointer;z-index:2;transition:transform var(--duration-base),filter var(--duration-base)}.media-video-embed-play:hover{transform:translate(-50%,-50%) scale(1.08);filter:brightness(1.1)}.media-video-embed-play:active{transform:translate(-50%,-50%) scale(.95)}.media-video-embed-play-icon{filter:drop-shadow(0 2px 8px oklch(0 0 0 / 40%))}.media-video-embed-badge{position:absolute;top:var(--space-2);left:var(--space-2);padding:2px 8px;background:#0009;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:4px;font-family:var(--font-sans);font-size:11px;font-weight:600;color:#eee;pointer-events:none;z-index:1}.media-video-embed--loaded{cursor:default}.media-video-embed-iframe{position:absolute;inset:0;width:100%;height:100%;border:none}.media-video-embed:not(.media-video-embed--loaded):after{content:"";position:absolute;inset:0;background:#00000026;pointer-events:none;transition:background var(--duration-fast)}.media-video-embed:not(.media-video-embed--loaded):hover:after{background:#0000000d}@media (max-width: 600px){.media-video-player,.media-video-embed{border-radius:8px}.media-video-controls{padding:0 var(--space-2) var(--space-1)}.media-video-btn{width:32px;height:32px}.media-video-time{font-size:11px}.media-video-center-play{width:56px;height:56px}.media-video-center-play svg{width:36px;height:36px}.media-video-volume-wrap:hover .media-video-volume-slider-wrap,.media-video-volume-wrap:focus-within .media-video-volume-slider-wrap{width:60px}.media-video-volume-slider{width:60px}}@media (prefers-reduced-motion: reduce){.media-video-controls,.media-video-center-play,.media-video-loader,.media-video-error,.media-video-pip-indicator,.media-video-progress-thumb,.media-video-progress-tooltip,.media-video-embed-play,.media-video-volume-slider-wrap{transition-duration:.01ms!important}}.media-video-player:fullscreen{border-radius:0;border:none;max-width:none}.media-video-player:fullscreen .media-video-element{border-radius:0}.media-video-player:fullscreen .media-video-controls{padding:0 var(--space-6) var(--space-4)}.media-video-player:fullscreen .media-video-progress-wrap{height:5px}.media-video-player:fullscreen .media-video-progress-wrap:hover{height:8px}
