@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500&display=swap";:root{--bg-base:#0f172a;--bg-surface:#1e293b99;--bg-surface-hover:#334155cc;--bg-input:#0f172acc;--text-primary:#f8fafc;--text-secondary:#94a3b8;--accent-primary:#6366f1;--accent-primary-hover:#4f46e5;--accent-secondary:#0ea5e9;--border-light:#ffffff1a;--border-focus:#6366f180;--glass-shadow:0 8px 32px 0 #0000005e;--glass-blur:blur(12px)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-base);color:var(--text-primary);background:radial-gradient(circle at 15% 50%, #6366f126, transparent 25%), radial-gradient(circle at 85% 30%, #0ea5e926, transparent 25%), var(--bg-base);background-attachment:fixed;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;overflow-x:hidden}a{color:var(--accent-primary);text-decoration:none;transition:color .2s}a:hover{color:var(--accent-secondary)}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}.glass-panel{background:var(--bg-surface);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-light);box-shadow:var(--glass-shadow);border-radius:16px}.app-container{width:100vw;height:100vh;display:flex;overflow:hidden}.sidebar{border-right:1px solid var(--border-light);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:10;background:#0f172acc;flex-direction:column;width:260px;height:100%;padding:1.5rem 1rem;display:flex}.sidebar-header{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;align-items:center;gap:.75rem;margin-bottom:2rem;padding:0 .5rem;font-size:1.25rem;font-weight:600;display:flex}.nav-links{flex-direction:column;gap:.5rem;display:flex}.nav-item{color:var(--text-secondary);border-radius:8px;align-items:center;gap:.75rem;padding:.75rem 1rem;font-weight:500;transition:all .2s;display:flex}.nav-item:hover{background:var(--bg-surface);color:var(--text-primary)}.nav-item.active{color:var(--accent-primary);background:#6366f126;border:1px solid #6366f14d}.main-content{flex:1;height:100%;position:relative;overflow:auto}.page-container{flex-direction:column;max-width:1400px;height:100%;margin:0 auto;padding:2rem;display:flex}.page-header{margin-bottom:2rem}.page-title{color:var(--text-primary);margin-bottom:.5rem;font-size:1.75rem;font-weight:600}.page-subtitle{color:var(--text-secondary);font-size:.95rem}.chat-workspace{flex:1;gap:1.5rem;height:calc(100vh - 100px);display:flex;overflow:hidden}.conv-sidebar{flex-direction:column;width:280px;padding:1rem;display:flex;overflow-y:auto}.new-chat-btn{background:var(--accent-primary);color:#fff;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;width:100%;margin-bottom:1.5rem;padding:.75rem;font-weight:500;transition:background .2s;display:flex}.new-chat-btn:hover{background:var(--accent-primary-hover)}.conv-item{color:var(--text-secondary);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;padding:.75rem 1rem;font-size:.9rem;transition:all .2s;display:flex}.conv-item-title{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.conv-actions{opacity:0;gap:.25rem;transition:opacity .2s;display:flex}.conv-item:hover .conv-actions{opacity:1}.conv-action-btn{color:var(--text-secondary);border-radius:4px;padding:.25rem}.conv-action-btn:hover{color:var(--text-primary);background:#ffffff1a}.conv-action-btn.delete:hover{color:#ef4444;background:#ef44441a}.conv-title-input{border:1px solid var(--accent-primary);color:var(--text-primary);background:#0000004d;border-radius:4px;outline:none;flex:1;padding:.25rem .5rem;font-family:inherit;font-size:.9rem}.conv-item:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.conv-item.active{color:var(--accent-primary);background:#6366f126;border:1px solid #6366f14d}.chat-thread-container{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.messages-area{flex-direction:column;flex:1;gap:1.5rem;padding:1.5rem;display:flex;overflow-y:auto}.message{gap:1rem;max-width:85%;display:flex}.message.user{flex-direction:row-reverse;margin-left:auto}.message-avatar{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.user .message-avatar{background:var(--accent-secondary);color:#fff}.assistant .message-avatar{background:var(--accent-primary);color:#fff}.message-bubble{background:var(--bg-surface);border-radius:12px;padding:1rem 1.25rem;font-size:.95rem;line-height:1.5}.user .message-bubble{background:#0ea5e926;border:1px solid #0ea5e94d;border-top-right-radius:2px}.assistant .message-bubble{background:var(--bg-surface);border:1px solid var(--border-light);border-top-left-radius:2px}.message-content p{margin-bottom:.75rem}.message-content p:last-child{margin-bottom:0}.message-content code{background:#0000004d;border-radius:4px;padding:.2em .4em;font-family:Roboto Mono,monospace;font-size:.85em}.message-content pre code{border:1px solid var(--border-light);background:#000;padding:1rem;display:block;overflow-x:auto}.input-area{border-top:1px solid var(--border-light);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f172a99;padding:1.5rem}.input-container{background:var(--bg-input);border:1px solid var(--border-light);border-radius:12px;align-items:center;padding:.5rem 1rem;transition:border-color .2s;display:flex}.input-container:focus-within{border-color:var(--border-focus)}.chat-input{color:var(--text-primary);resize:none;background:0 0;border:none;outline:none;flex:1;max-height:120px;padding:.75rem 0;font-family:inherit;font-size:1rem}.send-btn{color:var(--text-secondary);border-radius:8px;padding:.5rem;transition:all .2s}.send-btn:hover{color:var(--accent-primary);background:#6366f11a}.send-btn:disabled{opacity:.5;cursor:not-allowed}.citations-list{border-top:1px solid var(--border-light);flex-direction:column;gap:.5rem;margin-top:1rem;padding-top:1rem;display:flex}.citation-card{border:1px solid var(--border-light);background:#0003;border-radius:8px;padding:.75rem;font-size:.85rem}.citation-card a{margin-bottom:.25rem;font-weight:500;display:block}.citation-card span{color:var(--text-secondary);font-size:.8rem}.typing-indicator{gap:.25rem;padding:1rem;display:flex}.typing-indicator span{background:var(--text-secondary);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite both bounce}.typing-indicator span:first-child{animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.corpus-grid{grid-template-columns:1fr 2fr;gap:1.5rem;height:100%;display:grid}.corpus-column{flex-direction:column;gap:1.5rem;display:flex}.stat-card{flex-direction:column;gap:.5rem;padding:1.5rem;display:flex}.stat-header{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.stat-value{color:var(--text-primary);font-size:2rem;font-weight:700}.ingest-form{flex-direction:column;gap:1rem;padding:1.5rem;display:flex}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{color:var(--text-secondary);font-size:.9rem}.form-input{border:1px solid var(--border-light);color:var(--text-primary);background:#0f172a99;border-radius:8px;padding:.75rem 1rem;font-family:inherit;font-size:.95rem}.form-input:focus{border-color:var(--accent-primary);outline:none}.btn-primary{background:var(--accent-primary);color:#fff;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;margin-top:.5rem;padding:.75rem 1.5rem;font-weight:500;transition:all .2s;display:flex}.btn-primary:hover:not(:disabled){background:var(--accent-primary-hover);transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.papers-table-container{flex-direction:column;flex:1;padding:1.5rem;display:flex;overflow:hidden}.table-wrapper{flex:1;margin-top:1rem;overflow-y:auto}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--text-secondary);text-transform:uppercase;border-bottom:1px solid var(--border-light);z-index:1;background:#0f172af2;padding:1rem;font-size:.85rem;font-weight:500;position:sticky;top:0}td{border-bottom:1px solid #ffffff0d;padding:1rem;font-size:.95rem}tr:hover td{background:#ffffff05}.title-cell{color:var(--text-primary);font-weight:500}.date-cell{color:var(--text-secondary);font-size:.85rem}.jobs-list{flex-direction:column;gap:1rem;max-height:400px;padding:1.5rem;display:flex;overflow-y:auto}.job-card{border:1px solid var(--border-light);background:#0003;border-radius:8px;padding:1rem}.job-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.job-id{color:var(--text-secondary);font-family:Roboto Mono,monospace;font-size:.8rem}.badge{text-transform:uppercase;border-radius:4px;padding:.25rem .5rem;font-size:.75rem;font-weight:600}.badge.PENDING{color:#f59e0b;background:#f59e0b33}.badge.RUNNING{color:#3b82f6;background:#3b82f633}.badge.COMPLETED{color:#10b981;background:#10b98133}.badge.FAILED{color:#ef4444;background:#ef444433}.job-stats{color:var(--text-secondary);gap:1rem;margin-top:.5rem;font-size:.85rem;display:flex}
