:root{--background: oklch(.94 .002 60);--foreground: oklch(.18 .005 60);--card: oklch(.94 .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(.62 .08 75);--msg-user-text: oklch(.98 .002 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: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.012'/%3E%3C/svg%3E");--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: "Source Serif 4", serif;--message-font-size: 18px;--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)}*{transition-property:background-color,border-color,color,fill,stroke;transition-duration:.4s;transition-timing-function:var(--ease-out-quart)}*[style*=transition],.message-wrapper,.btn,.icon-btn,.modal,.message-bubble{transition-property:all}h1,h2,h3,h4,.brand-title{font-family:var(--font-display);font-weight:500;line-height:1.2}.message-content{font-family:var(--message-font-family, var(--font-serif));font-size:var(--message-font-size, var(--text-lg));line-height:1.7}.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{content:"";position:absolute;inset:-50%;background:radial-gradient(ellipse at 20% 30%,color-mix(in oklch,var(--accent-primary) 8%,transparent) 0%,transparent 50%),radial-gradient(ellipse at 80% 70%,color-mix(in oklch,var(--accent-warm) 6%,transparent) 0%,transparent 50%),radial-gradient(ellipse at 50% 50%,color-mix(in oklch,var(--chart-2) 4%,transparent) 0%,transparent 60%);pointer-events:none;opacity:1;z-index:0;animation:ambient-float 60s ease-in-out infinite}@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:var(--noise-overlay);pointer-events:none;opacity:1;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);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;transition:transform .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:scaleX(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 var(--border-subtle);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:22px;height:22px;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,var(--accent-glow),transparent);opacity:0;transition:opacity var(--duration-base)}.new-chat-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-1px);box-shadow:var(--shadow-2),var(--shadow-glow)}.new-chat-btn:hover:before{opacity: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;padding:var(--space-3) var(--space-4);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;align-items:center;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:3px;height:60%;background:var(--accent-primary);border-radius:2px;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:var(--bg-tertiary);color:var(--text-primary);border:1px solid color-mix(in oklch,var(--accent-primary) 25%,var(--border-subtle))}.chat-item.active:before{transform:translateY(-50%) scaleY(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:4px;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}}.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}.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:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));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}header{height:88px;padding:0 var(--space-8);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}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:2px 0}.header-right::-webkit-scrollbar{display:none}.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-btn.with-label{flex-direction:column;gap:2px;padding:6px 10px;height:auto;min-width:56px}.icon-label{font-size:10px;font-weight:500;line-height:1.2;letter-spacing:.01em;text-align:center;position:relative;z-index:1}#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}#messages-container{flex-grow:1;overflow-y:auto;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:10px}#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) 40%,var(--border-medium)),color-mix(in oklch,var(--accent-primary) 20%,var(--border-medium)));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) 60%,var(--border-medium)),color-mix(in oklch,var(--accent-primary) 40%,var(--border-medium)));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: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}@media (min-width: 1920px){.message-wrapper{max-width:1400px}}@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);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-avatar:before{content:"";position:absolute;inset:-50%;background:conic-gradient(from 0deg,transparent 0deg,color-mix(in oklch,var(--accent-primary) 20%,transparent) 180deg,transparent 360deg);animation:avatar-glow 3s linear infinite;opacity:0}.message-wrapper:hover .message-avatar:before{opacity:1}@keyframes avatar-glow{to{transform:rotate(360deg)}}.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-2);backdrop-filter:blur(10px) saturate(120%);transition:all var(--duration-base)}.message-bubble:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,color-mix(in oklch,var(--accent-primary) 20%,transparent),color-mix(in oklch,var(--accent-primary) 5%,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:.6}.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:600;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:hover .message-bubble{transform:translateY(-2px);box-shadow:var(--shadow-3)}.message-wrapper.user:hover .message-bubble{box-shadow:var(--shadow-3),0 0 20px color-mix(in oklch,var(--msg-user-bg) 30%,transparent)}.message-wrapper.bot:hover .message-bubble{box-shadow:var(--shadow-3),0 0 20px color-mix(in oklch,var(--accent-primary) 15%,transparent)}.message-meta{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-2);font-size:var(--text-xs);color:var(--text-tertiary);opacity:.7;padding:0 var(--space-2);transition:opacity .2s ease;min-height:24px}.message-meta:hover{opacity:1}.meta-time{cursor:default;font-weight:500}.meta-full{opacity:0;max-width:0;overflow:hidden;white-space:nowrap;transition:all .2s var(--ease-out-quart);color:var(--text-secondary)}.message-meta:hover .meta-full{opacity:1;max-width:300px;margin-left:var(--space-1)}.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:.6}.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}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.ed-seal{width:140px;height:140px;object-fit:contain;margin-bottom:var(--space-8);color:var(--text-primary);filter:var(--seal-filter);animation:sealFadeIn .8s var(--ease-out-expo) forwards;transition:transform .3s var(--ease-out-quart);opacity:0;animation:sealReveal .8s var(--ease-out-expo) forwards;animation-delay:0s}.ed-seal:hover{transform:scale(1.03)}@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-2xl);font-weight:500;color:var(--text-primary);margin-bottom:var(--space-3);letter-spacing:-.02em;opacity:0;animation:titleReveal .6s var(--ease-out-expo) forwards;animation-delay:.2s}.empty-state-text{font-size:var(--text-md);color:var(--text-secondary);max-width:400px;line-height:1.7;margin-bottom:var(--space-8);opacity:0;animation:textReveal .5s var(--ease-out-quart) 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:var(--bg-secondary);border:1px solid var(--border-medium);appearance:none;-webkit-appearance:none;border-radius:100px;font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:all .2s var(--ease-out-quart);font-family:var(--font-sans);box-shadow:var(--shadow-1);opacity:0;animation:suggestionsReveal .5s var(--ease-out-quart) forwards}.empty-state-suggestions .suggestion-pill:nth-child(1){animation-delay:.6s}.empty-state-suggestions .suggestion-pill:nth-child(2){animation-delay:.7s}.empty-state-suggestions .suggestion-pill:nth-child(3){animation-delay:.8s}.empty-state-suggestions .suggestion-pill:nth-child(4){animation-delay:.9s}.suggestion-pill:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:var(--shadow-2),0 0 15px var(--accent-glow);color:var(--text-primary)}.suggestion-pill svg{width:16px;height:16px;opacity:.7;transition:opacity .2s}.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:all .2s var(--ease-out-quart);gap:var(--space-2);opacity:0;animation:suggestionsReveal .5s var(--ease-out-quart) forwards}.action-card:nth-child(1){animation-delay:1s}.action-card:nth-child(2){animation-delay:1.1s}.action-card:nth-child(3){animation-delay:1.2s}.action-card:nth-child(4){animation-delay:1.3s}.action-card:hover{transform:translateY(-4px);border-color:var(--accent-primary);box-shadow:var(--shadow-3);background:var(--bg-primary)}.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:.7;line-height:1.4;padding-left:6px}.input-container{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);transition:all var(--duration-base);pointer-events:auto}@media (min-width: 1920px){.input-container{max-width:1400px}}.input-container:focus-within{box-shadow:var(--shadow-3),0 0 0 1px var(--accent-glow)}#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-3);background:var(--bg-tertiary);border:1px solid var(--border-subtle);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);font-family:var(--font-sans);font-size:var(--text-base);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:none;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:all 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(.98)}#send-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;background:var(--bg-tertiary);color:var(--text-tertiary)}#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)}.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 2s ease-in-out infinite}@keyframes pulse-ready{0%,to{box-shadow:var(--shadow-2),0 0 20px var(--accent-glow)}50%{box-shadow:var(--shadow-3),0 0 30px var(--accent-glow)}}.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(20px) 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,var(--accent-glow),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{position:fixed;bottom:var(--space-6);right:var(--space-6);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;z-index:2000;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}.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)}.shortcut-label{font-size:var(--text-sm);color:var(--text-primary)}kbd{padding:var(--space-1) var(--space-3);background:var(--bg-tertiary);border:1px solid var(--border-medium);border-radius:6px;font-family:var(--font-sans);font-size:var(--text-xs);color:var(--text-secondary);font-weight:500}@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}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-bubble{max-width:90%;padding:var(--space-4) var(--space-5)}}.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;color:var(--accent-primary)}.message-content table{width:100%;border-collapse:collapse;margin:1em 0}.message-content th,.message-content td{padding:.6em 1em;border:1px solid var(--border-medium);text-align:left}.message-content th{font-weight:600;background:var(--bg-tertiary)}.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:color-mix(in oklch,var(--foreground) 3%,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 var(--border-medium);border-radius:12px;position:relative;margin:1em 0;padding:40px 1.2em 1.2em;overflow-x:auto}.code-copy-btn{position:absolute;top:36px;right:8px;background:var(--accent-primary);color:#fff;border:none;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:500;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}.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)}.code-lang-badge{position:absolute;top:0;right:0;background:var(--bg-tertiary);color:var(--text-secondary);font-size:10px;font-family:var(--font-sans);font-weight:600;padding:4px 10px;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}
