@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg-gradient-start: #e0e7ff;--bg-gradient-mid: #f0f4ff;--bg-gradient-end: #faf5ff;--glass-bg: rgba(255, 255, 255, .85);--glass-border: rgba(139, 92, 246, .15);--glass-hover: rgba(255, 255, 255, .95);--user-bubble: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--bot-bubble: #ffffff;--bot-bubble-border: rgba(139, 92, 246, .08);--text-primary: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--accent-color: #7c3aed;--accent-hover: #6d28d9;--accent-light: #f5f3ff;--success: #10b981;--danger: #ef4444;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .03);--shadow-sm: 0 2px 4px 0 rgba(139, 92, 246, .08);--shadow-md: 0 4px 12px -2px rgba(139, 92, 246, .12), 0 2px 6px -1px rgba(139, 92, 246, .08);--shadow-lg: 0 12px 24px -4px rgba(139, 92, 246, .15), 0 4px 12px -2px rgba(139, 92, 246, .1);--shadow-xl: 0 24px 48px -12px rgba(139, 92, 246, .2), 0 8px 16px -4px rgba(139, 92, 246, .12);--shadow-glow: 0 0 24px rgba(139, 92, 246, .15);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--radius-full: 9999px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,var(--bg-gradient-start) 0%,var(--bg-gradient-mid) 50%,var(--bg-gradient-end) 100%);background-attachment:fixed;min-height:100vh;color:var(--text-primary);font-size:15px;line-height:1.7;position:relative;overflow-x:hidden}body:before,body:after{content:"";position:fixed;border-radius:50%;filter:blur(80px);opacity:.3;pointer-events:none;z-index:0;animation:float 20s ease-in-out infinite}body:before{width:500px;height:500px;background:radial-gradient(circle,rgba(139,92,246,.4) 0%,transparent 70%);top:-250px;right:-250px;animation-delay:0s}body:after{width:400px;height:400px;background:radial-gradient(circle,rgba(167,139,250,.3) 0%,transparent 70%);bottom:-200px;left:-200px;animation-delay:10s}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-30px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}}#root{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);position:relative;z-index:1}.app-container{width:100%;max-width:950px;height:92vh;max-height:850px;background:var(--glass-bg);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl),var(--shadow-glow);display:flex;flex-direction:column;overflow:hidden;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.app-container:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(139,92,246,.3),transparent)}.app-container:hover{box-shadow:var(--shadow-xl),0 0 48px #8b5cf640}.app-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg) var(--spacing-xl);background:#fffffff2;border-bottom:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.menu-btn{background:var(--accent-light);border:none;font-size:1.5rem;color:var(--accent-color);cursor:pointer;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);transition:all .2s;display:flex;align-items:center;justify-content:center}.menu-btn:hover{background:#7c3aed26;transform:scale(1.05)}.menu-btn:active{transform:scale(.95)}.mobile-title{font-size:1.2rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:flex;align-items:center;gap:var(--spacing-sm)}.mobile-title:before{content:"";width:10px;height:10px;background:var(--success);border-radius:50%;box-shadow:0 0 12px #10b98199;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.9)}}.sidebar{position:fixed;top:0;left:0;width:300px;height:100vh;background:#fffffffa;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border-right:1px solid var(--glass-border);padding:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-lg);z-index:20;transform:translate(-100%);transition:transform .4s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-xl)}.sidebar.open{transform:translate(0)}.sidebar-overlay{position:fixed;inset:0;background:#1e293b80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:15;opacity:0;pointer-events:none;transition:opacity .3s}.sidebar-overlay.open{opacity:1;pointer-events:all}.new-chat-full-btn{width:100%;padding:var(--spacing-md) var(--spacing-lg);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-md);position:relative;overflow:hidden}.new-chat-full-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s}.new-chat-full-btn:hover:before{left:100%}.new-chat-full-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.new-chat-full-btn:active{transform:translateY(0)}.sessions-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--spacing-sm);padding-right:var(--spacing-xs)}.sessions-list::-webkit-scrollbar{width:6px}.sessions-list::-webkit-scrollbar-track{background:transparent}.sessions-list::-webkit-scrollbar-thumb{background:#8b5cf633;border-radius:var(--radius-full)}.sessions-list::-webkit-scrollbar-thumb:hover{background:#8b5cf64d}.sessions-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--spacing-sm);font-weight:700}.session-item{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;color:var(--text-secondary);transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;justify-content:space-between;align-items:center;font-size:.95rem;background:transparent;border:1px solid transparent;position:relative}.session-item:before{content:"";position:absolute;inset:0;border-radius:var(--radius-md);background:linear-gradient(135deg,#8b5cf60d,#a78bfa0d);opacity:0;transition:opacity .2s}.session-item:hover:before{opacity:1}.session-item:hover{border-color:#8b5cf633;color:var(--text-primary);transform:translate(4px)}.session-item.active{background:linear-gradient(135deg,#8b5cf61a,#a78bfa14);border-color:#8b5cf64d;color:var(--accent-color);font-weight:600;box-shadow:var(--shadow-sm)}.session-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;position:relative;z-index:1}.delete-session-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:var(--spacing-sm);opacity:0;transition:all .2s;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);position:relative;z-index:1}.session-item:hover .delete-session-btn{opacity:1}.delete-session-btn:hover{color:var(--danger);background:#ef44441a;transform:scale(1.1)}@media(max-width:768px){.delete-session-btn{opacity:1}}.no-sessions{text-align:center;padding:var(--spacing-2xl) 0;color:var(--text-muted);font-size:.95rem;font-style:italic}.delete-all-btn{margin-top:auto;padding:var(--spacing-md) var(--spacing-lg);background:#ef44440d;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-md);color:var(--danger);cursor:pointer;font-size:.9rem;display:flex;align-items:center;gap:var(--spacing-sm);transition:all .2s;width:100%;justify-content:center;font-weight:600}.delete-all-btn:hover{background:#ef44441a;border-color:var(--danger);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.chat-container{flex:1;overflow-y:auto;padding:var(--spacing-2xl);display:flex;flex-direction:column;gap:var(--spacing-lg);scroll-behavior:smooth}.chat-container::-webkit-scrollbar{width:8px}.chat-container::-webkit-scrollbar-track{background:transparent}.chat-container::-webkit-scrollbar-thumb{background:#8b5cf633;border-radius:var(--radius-full)}.chat-container::-webkit-scrollbar-thumb:hover{background:#8b5cf64d}.message{display:flex;gap:var(--spacing-md);animation:messageSlideIn .4s cubic-bezier(.4,0,.2,1);max-width:80%}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.message.user{align-self:flex-end;flex-direction:row-reverse}.message.assistant{align-self:flex-start}.message-content{padding:var(--spacing-lg) var(--spacing-xl);border-radius:var(--radius-lg);font-size:.95rem;line-height:1.8;word-wrap:break-word;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.message.user .message-content{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-bottom-right-radius:6px;box-shadow:var(--shadow-md),0 4px 16px #667eea4d}.message.user .message-content:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg),0 8px 24px #667eea66}.message.assistant .message-content{background:#fff;color:var(--text-primary);border-bottom-left-radius:6px;border:1px solid var(--bot-bubble-border);box-shadow:var(--shadow-sm)}.message.assistant .message-content:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#8b5cf626}.message-content p{margin:0 0 .6em}.message-content p:last-child{margin-bottom:0}.message-content code{background:#0000000f;padding:.2em .5em;border-radius:6px;font-size:.9em;font-family:SF Mono,Monaco,Courier New,monospace;font-weight:500}.message.user .message-content code{background:#ffffff40}.message-content pre{background:#0000000a;padding:var(--spacing-md);border-radius:var(--radius-sm);overflow-x:auto;margin:.6em 0;border:1px solid rgba(0,0,0,.06)}.message.user .message-content pre{background:#fff3;border-color:#ffffff4d}.message-content pre code{background:transparent;padding:0}.message-content ul,.message-content ol{margin:.6em 0;padding-left:1.5em}.message-content li{margin:.3em 0}.message-content strong{font-weight:700}.code-block-wrapper{margin:.8em 0;border-radius:var(--radius-md);overflow:hidden;background:#00000008;border:1px solid rgba(0,0,0,.08)}.message.user .code-block-wrapper{background:#ffffff26;border-color:#ffffff40}.code-block-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:#00000005;border-bottom:1px solid rgba(0,0,0,.06)}.message.user .code-block-header{background:#ffffff1a;border-bottom-color:#fff3}.code-language{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.message.user .code-language{color:#fffc}.copy-code-btn{display:flex;align-items:center;gap:.4rem;padding:.3rem .6rem;background:#7c3aed1a;border:1px solid rgba(124,58,237,.2);border-radius:6px;color:var(--accent-color);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s}.copy-code-btn:hover{background:#7c3aed26;border-color:var(--accent-color);transform:scale(1.05)}.copy-code-btn:active{transform:scale(.95)}.message.user .copy-code-btn{background:#fff3;border-color:#ffffff4d;color:#fff}.message.user .copy-code-btn:hover{background:#ffffff4d;border-color:#fff}.code-block-wrapper pre{margin:0;padding:var(--spacing-md);background:transparent;border:none;overflow-x:auto}.code-block-wrapper pre::-webkit-scrollbar{height:6px}.code-block-wrapper pre::-webkit-scrollbar-track{background:#0000000d}.code-block-wrapper pre::-webkit-scrollbar-thumb{background:#8b5cf64d;border-radius:var(--radius-full)}.code-block-wrapper pre::-webkit-scrollbar-thumb:hover{background:#8b5cf680}.typing-indicator{display:flex;gap:var(--spacing-md);align-self:flex-start;max-width:80%;animation:messageSlideIn .3s ease-out}.typing-content{padding:var(--spacing-md) var(--spacing-xl);background:#fff;border:1px solid var(--bot-bubble-border);border-radius:var(--radius-lg);border-bottom-left-radius:6px;display:flex;gap:6px;align-items:center;box-shadow:var(--shadow-sm)}.typing-dot{width:8px;height:8px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;animation:typingBounce 1.4s infinite ease-in-out}.typing-dot:nth-child(1){animation-delay:0s}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-10px)}}.input-area-container{padding:var(--spacing-xl);background:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--glass-border)}.input-form{display:flex;gap:var(--spacing-md);align-items:flex-end}.input-wrapper{flex:1;position:relative;display:flex;align-items:flex-end;background:#fff;border:2px solid var(--glass-border);border-radius:var(--radius-full);padding:var(--spacing-sm) var(--spacing-lg);transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-sm)}.input-wrapper:focus-within{border-color:var(--accent-color);box-shadow:0 0 0 4px #7c3aed1a,var(--shadow-md);transform:translateY(-1px)}.clear-button{background:transparent;border:none;cursor:pointer;padding:var(--spacing-sm);color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:all .2s;border-radius:var(--radius-sm)}.clear-button:hover{color:var(--danger);background:#ef44441a;transform:scale(1.1)}.clear-button:disabled{opacity:.4;cursor:not-allowed}.chat-input{flex:1;background:transparent;border:none;padding:var(--spacing-sm) var(--spacing-md);color:var(--text-primary);font-size:.95rem;font-family:inherit;line-height:1.6;resize:none;max-height:160px;outline:none;font-weight:500}.chat-input::placeholder{color:var(--text-muted);font-weight:400}.send-button{width:48px;height:48px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);flex-shrink:0;box-shadow:var(--shadow-md),0 4px 12px #667eea4d;position:relative;overflow:hidden}.send-button:before{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}.send-button:hover:before{width:100%;height:100%}.send-button:hover:not(:disabled){transform:scale(1.08) rotate(5deg);box-shadow:var(--shadow-lg),0 8px 20px #667eea66}.send-button:active:not(:disabled){transform:scale(.95)}.send-button:disabled{background:linear-gradient(135deg,#cbd5e1,#94a3b8);cursor:not-allowed;opacity:.6;box-shadow:var(--shadow-xs)}.send-button.cancel{background:linear-gradient(135deg,#ef4444,#dc2626)}.send-button.cancel:hover{background:linear-gradient(135deg,#dc2626,#b91c1c)}@media(max-width:768px){#root{padding:0}.app-container{max-width:100%;height:100vh;max-height:100vh;border-radius:0}.mobile-header{display:flex}.chat-container{padding:var(--spacing-lg)}.message{max-width:88%}.input-area-container{padding:var(--spacing-md)}.send-button{width:44px;height:44px}}@media(max-width:480px){.message-content{font-size:.9rem;padding:var(--spacing-md) var(--spacing-lg)}.chat-container{padding:var(--spacing-md)}}*:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}button:focus-visible{outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@media(prefers-reduced-motion:no-preference){.message-content,.session-item,.send-button,.new-chat-full-btn{will-change:transform}}.header-actions{display:flex;gap:var(--spacing-sm)}.new-chat-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff;cursor:pointer;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);transition:all .2s;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.new-chat-btn:hover{transform:scale(1.05);box-shadow:var(--shadow-md)}.new-chat-btn:active{transform:scale(.95)}.app-title{flex:1}
