:root{--bg-main:#0a0b10;--bg-card:#111218;--bg-input:#1a1b23;--accent:#3b82f6;--accent-glow:#3b82f64d;--text-primary:#fff;--text-secondary:#94a3b8;--border:#ffffff14;--glass:#ffffff08;--radius-lg:16px;--radius-md:12px;--radius-sm:8px;--font-sans:"Inter", system-ui, -apple-system, sans-serif}body{background-color:var(--bg-main);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 50% 0,#3b82f60d 0%,#0000 50%),radial-gradient(circle at 0 100%,#3b82f605 0%,#0000 50%);min-height:100vh;margin:0;padding:0}#root{flex-direction:column;min-height:100vh;display:flex}*{box-sizing:border-box}h1,h2,h3{letter-spacing:-.02em;margin:0;font-weight:600}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-main)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.glass-card{background:var(--bg-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 32px #0000004d}.gradient-text{background:linear-gradient(135deg,#fff 0%,#3b82f6 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.chat-container{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.chat-header{border-bottom:1px solid var(--border);background:linear-gradient(90deg,#3b82f60d,#0000);padding:1.5rem}.chat-header h1{margin-bottom:.25rem;font-size:1.5rem}.subtitle{color:var(--text-secondary);font-size:.875rem}.response-box.history{flex-direction:column;gap:1.5rem;display:flex;overflow-y:auto}.message-row{width:100%;display:flex}.message-row.user{justify-content:flex-end}.message-row.ai{justify-content:flex-start}.message-content{border-radius:12px;max-width:85%;padding:1rem 1.25rem;line-height:1.6;position:relative}.user .message-content{background:var(--primary);color:#fff;border-bottom-right-radius:2px}.ai .message-content{border:1px solid var(--border);color:var(--text-main);background:#ffffff08;border-bottom-left-radius:2px}.role-label{text-transform:uppercase;letter-spacing:1px;opacity:.6;margin-bottom:.5rem;font-size:.7rem;font-weight:700}.message-meta{border-top:1px solid #ffffff0d;align-items:center;gap:.75rem;margin-top:.75rem;padding-top:.5rem;font-size:.7rem;display:flex}.time-tag{color:var(--text-secondary)}.cache-tag{color:#4ade80;background:#4ade801a;border-radius:4px;padding:2px 6px;font-weight:600}.response-box{flex-direction:column;flex:1;gap:1.5rem;padding:1.5rem;display:flex;overflow-y:auto}.answer-text{color:var(--text-primary);white-space:pre-wrap;line-height:1.6}.cursor:after{content:"";background:var(--accent);vertical-align:middle;width:2px;height:1.2em;margin-left:2px;animation:.8s infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.input-section{border-top:1px solid var(--border);background:#0003;padding:1.5rem}.query-group{background:var(--bg-input);border-radius:var(--radius-md);border:1px solid var(--border);gap:.75rem;padding:.5rem;display:flex}.query-group input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:.75rem;font-size:1rem}.primary-btn{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:0 1.5rem;font-weight:600;transition:all .2s}.primary-btn:hover{box-shadow:0 0 15px var(--accent-glow);background:#2563eb}.danger-btn{color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:#ef4444;border:none;padding:0 1.5rem;font-weight:600}.footer{background:var(--bg-card);border-top:1px solid var(--border);color:var(--text-secondary);justify-content:space-between;align-items:center;padding:.75rem 1.5rem;font-size:.75rem;display:flex}.status-badge{color:#3b82f6;font-weight:600}.time-badge{opacity:.7}.cache-badge{color:#4ade80;background:#22c55e1a;border:1px solid #22c55e33;border-radius:4px;margin-right:1rem;padding:2px 8px;font-weight:600}.empty-state{text-align:center;height:100%;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.ai-icon{background:var(--bg-input);border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:.5rem;font-size:3rem;animation:3s ease-in-out infinite float;display:flex}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.hint{opacity:.6;font-size:.8rem}.markdown-rendered{flex-direction:column;gap:.75rem;display:flex}.markdown-paragraph{color:var(--text-primary);margin:0;line-height:1.6}.markdown-list{flex-direction:column;gap:.5rem;margin:.25rem 0;padding-left:1.25rem;list-style-type:disc;display:flex}.markdown-list li{color:var(--text-primary);line-height:1.5}.source-citation{color:#60a5fa;vertical-align:middle;white-space:nowrap;background:#3b82f626;border:1px solid #3b82f64d;border-radius:4px;align-items:center;margin-left:.35rem;padding:1px 6px;font-size:.72rem;font-weight:600;display:inline-flex}.user .markdown-paragraph,.user .markdown-list li{color:#fff}.user .source-citation{color:#fff;background:#fff3;border:1px solid #fff6}.file-upload-container{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);flex-direction:column;gap:1.5rem;height:fit-content;padding:1.5rem;display:flex}.file-upload-container h3{color:var(--text-primary);align-items:center;gap:.5rem;font-size:1.1rem;display:flex}.upload-area{border:2px dashed var(--border);border-radius:var(--radius-md);text-align:center;cursor:pointer;background:#ffffff03;padding:2rem 1rem;transition:all .2s;position:relative}.upload-area:hover{border-color:var(--accent);background:#3b82f60d}.upload-area input{opacity:0;cursor:pointer;position:absolute;inset:0}.upload-icon{margin-bottom:.5rem;font-size:2rem;display:block}.file-name{color:var(--accent);word-break:break-all;margin-top:.5rem;font-size:.875rem}.upload-btn{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;width:100%;padding:.75rem;font-weight:600;transition:background .2s}.upload-btn:hover:not(:disabled){background:#2563eb}.upload-btn:disabled{background:var(--border);color:var(--text-secondary);cursor:not-allowed}.upload-status{border-radius:var(--radius-sm);align-items:center;gap:.75rem;padding:.75rem;font-size:.8rem;line-height:1.4;display:flex}.spinner-small{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:1rem;height:1rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.upload-btn.processing{cursor:wait;background:#1d4ed8}.status-info{color:#93c5fd;background:#3b82f61a;border:1px solid #3b82f633}.status-success{color:#86efac;background:#22c55e1a;border:1px solid #22c55e33}.status-error{color:#fca5a5;background:#ef44441a;border:1px solid #ef444433}.progress-container{background-color:#ffffff1a;border-radius:4px;width:100%;height:6px;margin-top:.5rem;position:relative;overflow:hidden}.progress-bar{background:var(--accent);border-radius:4px;height:100%}.progress-bar.indeterminate{width:50%;animation:1.5s ease-in-out infinite indeterminateAnimation;position:absolute}@keyframes indeterminateAnimation{0%{left:-50%}to{left:100%}}.login-wrapper{justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.login-card{flex-direction:column;gap:2rem;width:100%;max-width:420px;padding:2.5rem;display:flex}.login-header{text-align:center;flex-direction:column;align-items:center;gap:.5rem;display:flex}.login-icon{margin-bottom:.5rem;font-size:3rem;animation:3s ease-in-out infinite float}.login-header h1{font-size:2rem}.login-subtitle{color:var(--text-secondary);margin:0;font-size:.9rem}.login-form{flex-direction:column;gap:1.25rem;display:flex}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:500}.form-group input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.95rem;font-family:var(--font-sans);outline:none;padding:.75rem 1rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.login-error{color:#fca5a5;border-radius:var(--radius-sm);text-align:center;background:#ef44441a;border:1px solid #ef444433;padding:.6rem .75rem;font-size:.8rem}.login-btn{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;width:100%;font-size:1rem;font-weight:600;font-family:var(--font-sans);border:none;padding:.85rem;transition:background .2s,transform .1s}.login-btn:hover:not(:disabled){background:#2563eb;transform:translateY(-1px)}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{background:var(--border);color:var(--text-secondary);cursor:not-allowed}.login-footer{text-align:center;border-top:1px solid var(--border);padding-top:1.25rem}.login-footer p{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .5rem;font-size:.75rem}.demo-accounts{color:var(--text-secondary);flex-direction:column;gap:.25rem;font-size:.8rem;display:flex}.demo-accounts strong{color:var(--accent)}.app-wrapper{flex-direction:column;gap:1.5rem;width:100%;max-width:1400px;height:100vh;margin:0 auto;padding:1.5rem;display:flex}.config-header{background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border);justify-content:space-between;align-items:center;padding:.75rem 1.25rem;display:flex}.header-left{align-items:center;gap:.5rem;display:flex}.brand-icon{font-size:1.5rem}.brand-name{font-size:1.2rem;font-weight:700}.header-right{align-items:center;gap:1rem;display:flex}.user-badge{color:var(--text-secondary);background:var(--bg-input);border-radius:var(--radius-sm);border:1px solid var(--border);padding:.4rem .75rem;font-size:.85rem}.logout-btn{color:#fca5a5;border-radius:var(--radius-sm);cursor:pointer;font-size:.8rem;font-weight:600;font-family:var(--font-sans);background:0 0;border:1px solid #ef44444d;padding:.4rem .85rem;transition:all .2s}.logout-btn:hover{color:#f87171;background:#ef44441a;border-color:#ef444480}.main-content{flex:1;grid-template-columns:320px 1fr;gap:1.5rem;min-height:0;display:grid}.sidebar{flex-direction:column;gap:1.5rem;display:flex}.chat-area{flex-direction:column;min-height:0;display:flex}@media (width<=900px){.main-content{grid-template-columns:1fr}}
