@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--background: 0 0% 97%;--foreground: 220 20% 10%;--card: 0 0% 100%;--card-foreground: 220 20% 10%;--primary: 265 85% 55%;--primary-foreground: 0 0% 100%;--secondary: 220 10% 94%;--secondary-foreground: 220 20% 10%;--muted: 220 10% 94%;--muted-foreground: 220 10% 45%;--destructive: 0 84% 60%;--destructive-foreground: 0 0% 100%;--border: 220 10% 90%;--input: 220 10% 90%;--ring: 265 85% 55%;--radius: .75rem}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:hsl(var(--background));color:hsl(var(--foreground))}.min-h-screen{min-height:100vh}.flex{display:flex}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.flex-1{flex:1}.relative{position:relative}.absolute{position:absolute}.overflow-hidden{overflow:hidden}.z-10{z-index:10}.w-full{width:100%}.w-4{width:1rem}.w-5{width:1.25rem}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-32{width:8rem}.w-64{width:16rem}.w-96{width:24rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-10{height:2.5rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-32{height:8rem}.h-64{height:16rem}.h-96{height:24rem}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.p-3{padding:.75rem}.p-8{padding:2rem}.px-4{padding-left:1rem;padding-right:1rem}.px-12{padding-left:3rem;padding-right:3rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pl-12{padding-left:3rem!important}.pr-12{padding-right:3rem!important}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-10{margin-bottom:2.5rem}.mx-auto{margin-left:auto;margin-right:auto}.top-1\/4{top:25%}.left-4{left:1rem}.right-4{right:1rem}.left-1\/4{left:25%}.bottom-1\/4{bottom:25%}.right-1\/4{right:25%}.top-1\/2{top:50%}.-translate-y-1\/2{transform:translateY(-50%)}.text-sm{font-size:.875rem;line-height:1.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.font-medium{font-weight:500}.font-bold{font-weight:700}.text-center{text-align:center}.leading-relaxed{line-height:1.625}.rounded-full{border-radius:9999px}.rounded-xl{border-radius:.75rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.border{border-width:1px}.border-2{border-width:2px}.blur-3xl{filter:blur(64px)}.block{display:block}.space-y-4>*+*{margin-top:1rem}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.bg-background{background-color:hsl(var(--background))}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-primary\/5{--tw-gradient-from: hsl(var(--primary) / .05) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-background{--tw-gradient-to: hsl(var(--background)) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-primary\/10{--tw-gradient-to: hsl(var(--primary) / .1) var(--tw-gradient-to-position)}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-destructive{color:hsl(var(--destructive))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.border-destructive\/20{border-color:hsl(var(--destructive) / .2)}.border-primary-foreground{border-color:hsl(var(--primary-foreground))}.border-t-transparent{border-top-color:transparent}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.animate-spin{animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.glass-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:1rem;box-shadow:0 1px 3px #0000001a}.glow-orb{border-radius:9999px;background:linear-gradient(135deg,#7c2bee,#b447eb);box-shadow:0 0 40px #7c2bee66}.gradient-text{background:linear-gradient(135deg,#7c2bee,#b447eb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:transparent}.input-modern{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:.75rem;padding:.75rem 1rem;color:hsl(var(--foreground));font-size:15px;transition:all .2s}.input-modern::placeholder{color:hsl(var(--muted-foreground))}.input-modern:focus{outline:none;border-color:hsl(var(--primary) / .4);box-shadow:0 0 0 2px hsl(var(--primary) / .2)}.input-modern:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground));padding:.75rem 1.5rem;border-radius:.75rem;font-weight:600;border:none;cursor:pointer;transition:all .2s;box-shadow:0 4px 14px #7c2bee40}.btn-primary:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}@media (min-width: 1024px){.lg\:flex{display:flex!important}}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.login-container{background:hsl(var(--card));padding:40px;border-radius:12px;box-shadow:0 8px 32px #0000004d;width:100%;max-width:400px}.login-header{text-align:center;margin-bottom:30px}.login-header h1{font-size:28px;margin-bottom:10px;color:hsl(var(--foreground))}.login-header p{color:hsl(var(--muted-foreground));font-size:14px}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:500;color:hsl(var(--foreground))}.form-group input{padding:12px;border:1px solid hsl(var(--border));border-radius:6px;background:hsl(var(--input));color:hsl(var(--foreground));font-size:14px;transition:border-color .2s}.form-group input:focus{outline:none;border-color:hsl(var(--primary))}.form-group input:disabled{opacity:.6;cursor:not-allowed}.login-button{padding:12px;background:hsl(var(--primary));color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s}.login-button:hover:not(:disabled){opacity:.9}.login-button:disabled{opacity:.6;cursor:not-allowed}.error-message{padding:12px;background:hsl(var(--destructive));color:#fff;border-radius:6px;font-size:14px}.chat-page{display:flex;height:100vh;overflow:hidden}.sidebar{width:280px;background:hsl(var(--card));display:flex;flex-direction:column;border-right:1px solid hsl(var(--border))}.sidebar-header{padding:20px;border-bottom:1px solid hsl(var(--border))}.sidebar-header h1{font-size:20px;color:hsl(var(--foreground))}.new-chat-button{margin:16px;padding:12px;background:hsl(var(--primary));color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .2s}.new-chat-button:hover{opacity:.9}.sidebar-divider{height:1px;background:hsl(var(--border));margin:0 16px}.sessions-list{flex:1;overflow-y:auto;padding:16px}.session-group{margin-bottom:20px}.session-group-header{font-size:12px;font-weight:600;color:hsl(var(--muted-foreground));margin-bottom:8px;text-transform:uppercase}.session-item{display:flex;align-items:center;gap:4px;margin-bottom:4px;min-height:44px}.session-button{flex:1;display:flex;align-items:center;gap:8px;padding:10px 12px;background:transparent;color:hsl(var(--muted-foreground));border:none;border-radius:6px;font-size:14px;cursor:pointer;text-align:left;transition:background .2s,color .2s;min-width:0}.session-button:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.session-item.active .session-button{background:hsl(var(--primary));color:#fff}.session-icon{flex-shrink:0;width:16px;height:16px}.session-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:1.4}.delete-button{padding:8px;background:transparent;color:hsl(var(--muted-foreground));border:none;border-radius:4px;cursor:pointer;transition:background .2s,color .2s;flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.delete-button:hover{background:hsl(var(--destructive));color:#fff}.no-sessions{text-align:center;color:hsl(var(--muted-foreground));font-size:14px;padding:20px}.logout-button{margin:16px;padding:12px;background:transparent;color:hsl(var(--destructive));border:1px solid hsl(var(--destructive));border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .2s,color .2s}.logout-button:hover{background:hsl(var(--destructive));color:#fff}.chat-main{flex:1;display:flex;flex-direction:column;background:hsl(var(--background))}.chat-header{padding:20px 40px;border-bottom:1px solid hsl(var(--border))}.chat-header h1{font-size:24px;margin-bottom:8px;color:hsl(var(--foreground))}.chat-subtitle{color:hsl(var(--muted-foreground));font-size:14px}.time-info-banner{background:#2a4f6f;color:#c8e1ff;padding:12px 40px;font-size:14px;border-bottom:1px solid hsl(var(--border))}.messages-container{flex:1;overflow-y:auto;padding:20px 40px}.empty-chat{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:hsl(var(--muted-foreground))}.empty-chat h2{font-size:24px;margin-bottom:12px;color:hsl(var(--foreground))}.empty-chat p{font-size:16px}.messages-list{max-width:900px;margin:0 auto}.message{display:flex;gap:12px;margin-bottom:16px;animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px}.user-message .message-icon{background:hsl(var(--primary));color:#fff}.assistant-message .message-icon{background:hsl(var(--muted));color:#67c23a}.message-content{flex:1;padding-top:4px}.user-message .message-text{color:hsl(var(--foreground));font-size:15px;line-height:1.6}.assistant-message .message-content{background:#f4f4f6;padding:16px;border-radius:12px;border-left:3px solid hsl(var(--primary))}.assistant-message .message-text{color:hsl(var(--foreground));font-size:15px;line-height:1.6}.message-text{color:hsl(var(--foreground));font-size:15px;line-height:1.6;white-space:normal}.loading-spinner{display:flex;align-items:center;justify-content:center;height:100%;color:hsl(var(--muted-foreground));font-size:16px}.chat-input-container{padding:20px 40px;border-top:1px solid hsl(var(--border));background:hsl(var(--background))}.chat-input-form{max-width:900px;margin:0 auto;display:flex;gap:12px;align-items:flex-end}.chat-input{flex:1;padding:12px 16px;background:hsl(var(--input));border:1px solid hsl(var(--border));border-radius:8px;color:hsl(var(--foreground));font-size:15px;font-family:inherit;resize:none;max-height:200px;transition:border-color .2s}.chat-input:focus{outline:none;border-color:hsl(var(--primary))}.chat-input:disabled{opacity:.6;cursor:not-allowed}.send-button{width:48px;height:48px;background:hsl(var(--primary));color:#fff;border:none;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;transition:background .2s}.send-button:hover:not(:disabled){opacity:.9}.send-button:disabled{opacity:.6;cursor:not-allowed}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:hsl(var(--card))}::-webkit-scrollbar-thumb{background:hsl(var(--border));border-radius:4px}::-webkit-scrollbar-thumb:hover{background:hsl(var(--muted))}.loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:18px;color:hsl(var(--muted-foreground))}.typing-indicator{display:flex;align-items:center;gap:4px;padding:10px 0}.typing-indicator span{width:8px;height:8px;border-radius:50%;background-color:hsl(var(--muted-foreground));animation:typing-bounce 1.4s infinite ease-in-out}.typing-indicator span:nth-child(1){animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes typing-bounce{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.message-text{line-height:1.6}.assistant-message .message-text p{margin-top:0;margin-bottom:8px}.assistant-message .message-text p:first-child{margin-top:0!important}.assistant-message .message-text p:last-child{margin-bottom:0!important}.assistant-message .message-text ul,.assistant-message .message-text ol{margin:.4em 0!important;padding-left:1.5em!important}.assistant-message .message-text li{margin:.1em 0!important}.message-text strong{font-weight:600;color:hsl(var(--foreground))}.message-text em{font-style:italic}.message-text ul li::marker,.message-text ol li::marker{color:hsl(var(--primary))}.message-text code{background:hsl(var(--muted));padding:.2em .4em;border-radius:4px;font-family:Courier New,Consolas,Monaco,monospace;font-size:.9em;color:#e83e8c}.message-text pre{background:hsl(var(--muted));padding:1em;border-radius:6px;overflow-x:auto;border:1px solid hsl(var(--border))}.message-text pre code{background:none;padding:0;color:hsl(var(--foreground))}.message-text a{color:hsl(var(--primary));text-decoration:underline}.message-text a:hover{opacity:.8}.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000059;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.loading-content{background:#fff;padding:32px 48px;border-radius:12px;box-shadow:0 10px 40px #00000026;text-align:center;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.loading-content .loading-spinner{width:48px;height:48px;border:3px solid hsl(var(--primary) / .15);border-top-color:hsl(var(--primary));border-radius:50%;animation:spin .7s linear infinite;margin:0 auto 18px}.loading-content p{color:hsl(var(--foreground));font-size:15px;font-weight:500;margin:0}
