@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg-primary: #0a0a1a;--bg-secondary: #0f0f23;--bg-tertiary: #161630;--bg-card: rgba(255, 255, 255, .04);--bg-card-hover: rgba(255, 255, 255, .07);--bg-user-bubble: rgba(6, 182, 212, .12);--bg-ai-bubble: rgba(124, 58, 237, .08);--bg-input: rgba(255, 255, 255, .06);--accent-purple: #7C3AED;--accent-purple-glow: rgba(124, 58, 237, .3);--accent-cyan: #06B6D4;--accent-cyan-glow: rgba(6, 182, 212, .3);--accent-green: #22C55E;--accent-red: #EF4444;--accent-amber: #F59E0B;--text-primary: #F0F0F8;--text-secondary: #9CA3AF;--text-tertiary: #6B7280;--text-muted: #4B5563;--border-subtle: rgba(255, 255, 255, .06);--border-light: rgba(255, 255, 255, .1);--border-accent: rgba(124, 58, 237, .3);--glass-bg: rgba(255, 255, 255, .05);--glass-border: rgba(255, 255, 255, .08);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--shadow-glow-purple: 0 0 20px rgba(124, 58, 237, .15);--shadow-glow-cyan: 0 0 20px rgba(6, 182, 212, .15);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}.katex-display{margin:.8em 0;overflow-x:auto;overflow-y:hidden;padding:.5em 0}.katex{font-size:1.05em;color:var(--text-primary)}pre{background:#0006;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:12px 16px;overflow-x:auto;margin:8px 0;font-size:13px;line-height:1.5}code{font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace;font-size:.9em}:not(pre)>code{background:#7c3aed26;padding:2px 6px;border-radius:4px;font-size:.85em}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulseGlow{0%,to{opacity:.4}50%{opacity:1}}@keyframes dotPulse{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app{height:100vh;display:flex;flex-direction:column;position:relative;overflow:hidden}.bg-gradient{position:fixed;inset:0;z-index:0;background:radial-gradient(ellipse 600px 400px at 20% 10%,rgba(124,58,237,.08),transparent),radial-gradient(ellipse 500px 350px at 80% 90%,rgba(6,182,212,.06),transparent),radial-gradient(ellipse 400px 300px at 50% 50%,rgba(124,58,237,.03),transparent);pointer-events:none}.bg-grid{position:fixed;inset:0;z-index:0;background-image:linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px);background-size:60px 60px;pointer-events:none}.header{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:#0a0a1ad9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-subtle)}.header-left,.header-right{flex:0 0 auto;min-width:160px}.header-right{display:flex;justify-content:flex-end}.header-center{flex:1;display:flex;justify-content:center}.logo{display:flex;align-items:center;gap:10px}.logo-text{font-size:16px;font-weight:700;background:linear-gradient(135deg,#7c3aed,#06b6d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.3px}.search-toggle-wrapper{margin-right:15px}.search-toggle-btn{display:flex;align-items:center;gap:8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#a1a1aa;padding:8px 12px;border-radius:8px;cursor:pointer;transition:all .2s ease;font-size:.85rem;font-weight:500}.search-toggle-btn:hover{background:#ffffff1a;color:#fff}.search-toggle-btn.active{background:#7c3aed33;border-color:#7c3aed;color:#c4b5fd;box-shadow:0 0 10px #7c3aed4d}.search-toggle-btn svg{opacity:.8}.new-chat-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-full);color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-normal);font-family:inherit}.new-chat-btn:hover{background:var(--bg-card-hover);border-color:var(--border-light);color:var(--text-primary);box-shadow:var(--shadow-sm)}.new-chat-btn:active{transform:scale(.97)}.main{flex:1;overflow:hidden;position:relative;z-index:1}@media(max-width:768px){.header{padding:10px 16px}.header-left,.header-right{min-width:auto}.logo-text,.new-chat-btn span{display:none}.new-chat-btn{padding:8px}}.message-avatar{flex-shrink:0;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:4px}.ai-avatar{background:var(--bg-ai-bubble);border:1px solid rgba(124,58,237,.2);color:var(--accent-purple)}.ai-avatar .avatar-icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px}.ai-avatar .avatar-icon svg{width:18px;height:18px}.user-avatar{background:var(--bg-user-bubble);border:1px solid rgba(6,182,212,.2);color:var(--accent-cyan)}.message-bubble{max-width:75%;padding:12px 18px;border-radius:var(--radius-lg);font-size:14px;line-height:1.65;word-wrap:break-word;overflow-wrap:break-word}.user-bubble{background:var(--bg-user-bubble);border:1px solid rgba(6,182,212,.12);border-bottom-right-radius:4px;color:var(--text-primary)}.ai-bubble{background:var(--bg-ai-bubble);border:1px solid rgba(124,58,237,.1);border-bottom-left-radius:4px;color:var(--text-primary)}.message-text{margin:0}.ai-content{overflow-x:auto}.ai-content strong{color:var(--accent-cyan);font-weight:600}.ai-content em{color:var(--text-secondary)}.ai-content a{color:var(--accent-purple);text-decoration:none;border-bottom:1px solid rgba(124,58,237,.3);transition:border-color var(--transition-fast)}.ai-content a:hover{border-color:var(--accent-purple)}.katex-block{margin:12px 0;padding:12px 16px;background:#00000040;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);overflow-x:auto}.model-label{display:inline-block;font-size:11px;color:var(--text-tertiary);margin-bottom:4px;font-weight:500}.message-bubble.streaming{border-color:#7c3aed40;box-shadow:0 0 12px #7c3aed14}.streaming-cursor{display:inline-block;width:2px;height:1em;background:var(--accent-purple);margin-left:2px;vertical-align:text-bottom;animation:cursorBlink .8s ease-in-out infinite}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}@media(max-width:768px){.message-bubble{max-width:88%;padding:10px 14px;font-size:13px}.message-avatar{width:28px;height:28px}}.chat-area{height:100%;overflow-y:auto;scroll-behavior:smooth}.chat-messages{max-width:820px;margin:0 auto;padding:24px 24px 32px;display:flex;flex-direction:column;gap:4px}.chat-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;animation:fadeIn .6s ease}.empty-icon{margin-bottom:8px;animation:pulseGlow 3s ease infinite}.empty-title{font-size:24px;font-weight:600;background:linear-gradient(135deg,var(--text-primary),var(--text-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.empty-subtitle{color:var(--text-tertiary);font-size:14px}.empty-suggestions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:16px;max-width:480px}.suggestion-chip{padding:8px 16px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-full);font-size:13px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-normal)}.suggestion-chip:hover{background:var(--bg-card-hover);border-color:var(--border-light);color:var(--text-primary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.message-row{display:flex;gap:12px;animation:fadeInUp .3s ease}.message-row.user{justify-content:flex-end}.message-row.ai{justify-content:flex-start}.generating-bubble{padding:14px 20px!important}.generating-indicator{display:flex;gap:10px;align-items:center}.generating-spinner{width:16px;height:16px;border:2px solid rgba(124,58,237,.2);border-top-color:var(--accent-purple);border-radius:50%;animation:spin .8s linear infinite}.generating-text{font-size:13px;color:var(--text-secondary);letter-spacing:.02em;animation:textPulse 2s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes textPulse{0%,to{opacity:.7}50%{opacity:1}}@media(max-width:768px){.chat-messages{padding:16px 12px 24px}.empty-title{font-size:20px}.streaming-text-content{font-family:Inter,sans-serif;font-size:.95rem;line-height:1.5;white-space:pre-wrap;color:var(--text-primary)}.cursor-blink{display:inline-block;width:2px;height:1.2em;background-color:var(--accent-cyan);margin-left:2px;vertical-align:sub;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}}.input-bar-wrapper{position:relative;z-index:10;padding:0 24px 20px;background:linear-gradient(to top,var(--bg-primary) 70%,transparent);transition:all var(--transition-normal)}.input-bar-wrapper.dragging{background:linear-gradient(to top,var(--bg-primary) 90%,transparent)}.input-bar{max-width:820px;margin:0 auto}.input-container{display:flex;align-items:flex-end;gap:8px;background:var(--bg-input);border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:8px 8px 8px 12px;transition:all var(--transition-normal)}.input-container:focus-within{border-color:var(--border-accent);box-shadow:var(--shadow-glow-purple);background:#ffffff14}.input-field{flex:1;background:none;border:none;color:var(--text-primary);font-family:inherit;font-size:14px;line-height:1.5;resize:none;outline:none;padding:6px 0;max-height:200px}.input-field::placeholder{color:var(--text-muted)}.input-field:disabled{opacity:.5}.attach-btn{flex-shrink:0;width:36px;height:36px;border-radius:8px;border:1px solid var(--border-light);background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-normal);position:relative}.attach-btn:hover{background:#7c3aed1f;border-color:var(--accent-purple);color:var(--accent-purple);transform:scale(1.05)}.attach-btn:active{transform:scale(.95)}.attach-btn.has-files{background:#7c3aed26;border-color:var(--accent-purple);color:var(--accent-purple)}.attach-btn:disabled{opacity:.4;pointer-events:none}.attach-badge{position:absolute;top:-5px;right:-5px;width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,var(--accent-purple),var(--accent-cyan));color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #7c3aed66;animation:popIn .3s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes popIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.send-btn{flex-shrink:0;width:36px;height:36px;border-radius:50%;border:none;background:var(--glass-bg);color:var(--text-muted);cursor:not-allowed;display:flex;align-items:center;justify-content:center;transition:all var(--transition-normal)}.send-btn.active{background:linear-gradient(135deg,var(--accent-purple),var(--accent-cyan));color:#fff;cursor:pointer;box-shadow:0 2px 8px #7c3aed4d}.send-btn.active:hover{transform:scale(1.05);box-shadow:0 4px 16px #7c3aed66}.send-btn.active:active{transform:scale(.95)}.send-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.2);border-top-color:var(--accent-purple);border-radius:50%;animation:spin .8s linear infinite}.attached-files{display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px;margin-bottom:6px;background:#7c3aed0f;border:1px solid rgba(124,58,237,.15);border-radius:var(--radius-md);animation:fadeInUp .25s ease}.attached-file{display:flex;align-items:center;gap:8px;background:#ffffff0f;border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:6px 10px;max-width:220px;animation:slideIn .2s ease;transition:all var(--transition-fast)}@keyframes slideIn{0%{opacity:0;transform:translate(-8px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}.attached-file:hover{background:#ffffff1a;border-color:#7c3aed4d}.file-icon{font-size:16px;flex-shrink:0}.file-info{display:flex;flex-direction:column;overflow:hidden;min-width:0}.file-name{font-size:12px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:10px;color:var(--text-tertiary)}.file-remove{flex-shrink:0;width:22px;height:22px;border-radius:50%;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);margin-left:auto}.file-remove:hover{background:#ef444426;color:var(--accent-red);transform:scale(1.1)}.upload-status{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:500;padding:4px 10px;border-radius:var(--radius-full);animation:fadeIn .2s ease}.upload-status.uploading{color:var(--accent-amber);background:#f59e0b1a}.upload-status.ready{color:var(--accent-green);background:#22c55e1a}.upload-status.error{color:var(--accent-red);background:#ef44441a}.upload-spinner{width:12px;height:12px;border:2px solid rgba(245,158,11,.3);border-top-color:var(--accent-amber);border-radius:50%;animation:spin .8s linear infinite}.drag-overlay{position:fixed;inset:0;z-index:100;background:#0a0a1ad9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.drag-overlay-content{display:flex;flex-direction:column;align-items:center;gap:16px;padding:48px 64px;border:2px dashed var(--accent-purple);border-radius:var(--radius-xl);background:#7c3aed14;color:var(--accent-purple);animation:pulseGlow 2s ease-in-out infinite}.drag-overlay-content svg{opacity:.8}.drag-overlay-content p{font-size:16px;font-weight:500;color:var(--text-secondary)}.input-disclaimer{text-align:center;font-size:11px;color:var(--text-muted);margin-top:8px}@media(max-width:768px){.input-bar-wrapper{padding:0 12px 16px}.attached-files{gap:6px;padding:8px 10px}.attached-file{max-width:180px;padding:5px 8px}}.model-selector{position:relative;min-width:240px}.selector-trigger{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-full);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-normal);font-family:inherit;width:100%;text-align:left}.selector-trigger:hover{background:var(--bg-card-hover);border-color:var(--border-light)}.trigger-icon{display:flex;align-items:center;width:16px;height:16px;flex-shrink:0}.trigger-icon svg{width:16px;height:16px}.trigger-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trigger-chevron{flex-shrink:0;color:var(--text-tertiary);transition:transform var(--transition-normal)}.trigger-chevron.open{transform:rotate(180deg)}.selector-dropdown{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);width:320px;max-height:420px;background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;animation:slideDown .2s ease;z-index:100}.dropdown-search-wrap{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border-subtle)}.search-icon{flex-shrink:0;color:var(--text-muted)}.dropdown-search{flex:1;background:none;border:none;color:var(--text-primary);font-family:inherit;font-size:13px;outline:none}.dropdown-search::placeholder{color:var(--text-muted)}.dropdown-list{overflow-y:auto;max-height:360px;padding:6px}.dropdown-empty{padding:20px;text-align:center;color:var(--text-muted);font-size:13px}.dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);font-family:inherit;text-align:left}.dropdown-item:hover{background:var(--bg-card-hover)}.dropdown-item.active{background:#7c3aed1a;border:1px solid rgba(124,58,237,.2)}.item-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);background:#ffffff0d;flex-shrink:0}.item-icon svg{width:16px;height:16px}.item-info{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.item-name{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-company{font-size:11px;color:var(--text-tertiary)}.item-check{flex-shrink:0;color:var(--accent-purple)}@media(max-width:768px){.model-selector{min-width:160px}.selector-dropdown{width:280px}}.status-bar{position:relative;z-index:5;display:flex;flex-direction:column;gap:4px;padding:0 24px}.status-alert{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:var(--radius-sm);font-size:12px;animation:slideDown .25s ease}.status-alert.error{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#fca5a5}.status-alert.warning{background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);color:#fcd34d}.status-alert span{flex:1}.status-dismiss{background:none;border:none;color:inherit;cursor:pointer;opacity:.6;transition:opacity var(--transition-fast);padding:4px;display:flex;align-items:center}.status-dismiss:hover{opacity:1}.login-modal-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:1000}.login-modal{background:#1e1e24;padding:2rem;border-radius:12px;width:100%;max-width:400px;border:1px solid #333;box-shadow:0 10px 30px #00000080;color:#fff}.login-modal h2{margin-top:0;margin-bottom:1.5rem;text-align:center;color:#fff}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-size:.9rem;color:#aaa}.form-group input{width:100%;padding:.75rem;border-radius:6px;border:1px solid #444;background:#2a2a30;color:#fff;font-size:1rem}.form-group input:focus{outline:none;border-color:#7c3aed}.submit-btn{width:100%;padding:.75rem;background:linear-gradient(135deg,#7c3aed,#06b6d4);border:none;border-radius:6px;color:#fff;font-weight:700;cursor:pointer;margin-top:1rem;transition:opacity .2s}.submit-btn:disabled{opacity:.7;cursor:not-allowed}.error-msg{color:#f55;background:#ff55551a;padding:.5rem;border-radius:4px;margin-bottom:1rem;font-size:.9rem;text-align:center}.toggle-mode{margin-top:1.5rem;text-align:center;font-size:.9rem;color:#aaa}.link-btn{background:none;border:none;color:#06b6d4;cursor:pointer;margin-left:.5rem;text-decoration:underline;padding:0}.sidebar{position:fixed;top:0;left:-300px;width:300px;height:100vh;background:#1a1a20;border-right:1px solid #333;transition:left .3s cubic-bezier(.4,0,.2,1);z-index:900;display:flex;flex-direction:column}.sidebar.open{left:0}.sidebar-toggle{position:fixed;left:1rem;top:50%;transform:translateY(-50%);background:#2a2a30;border:1px solid #444;color:#fff;width:32px;height:64px;border-radius:0 8px 8px 0;cursor:pointer;z-index:901;transition:left .3s;display:flex;align-items:center;justify-content:center;font-size:.8rem}.sidebar-toggle.open{left:300px;border-radius:8px 0 0 8px}.sidebar-header{padding:1.5rem;border-bottom:1px solid #333;background:#15151a;display:flex;align-items:center;justify-content:space-between}.user-info{display:flex;align-items:center;gap:.75rem}.avatar{width:32px;height:32px;background:linear-gradient(135deg,#7c3aed,#06b6d4);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff}.username{font-weight:500;color:#fff}.logout-btn{background:none;border:1px solid #444;color:#aaa;font-size:.75rem;padding:.25rem .5rem;border-radius:4px;cursor:pointer}.logout-btn:hover{background:#333;color:#fff}.history-list{flex:1;overflow-y:auto;padding:1rem}.history-item{background:#25252b;border:1px solid #333;border-radius:8px;padding:.75rem;margin-bottom:.75rem;cursor:pointer;transition:background .2s,border-color .2s}.history-item:hover{background:#2a2a32;border-color:#555}.history-summary{font-size:.9rem;color:#eee;margin-bottom:.5rem;line-height:1.4}.history-meta{display:flex;justify-content:space-between;font-size:.75rem;color:#888}.empty-history{color:#666;text-align:center;margin-top:2rem;font-style:italic}
