*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f0f2f5;color:#1a1a1a}#root{height:100%}.loading-screen,.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:1rem}.spinner{width:40px;height:40px;border:3px solid #e0e0e0;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-screen{display:flex;align-items:center;justify-content:center;height:100vh;background:linear-gradient(135deg,#1e3a5f,#2563eb)}.login-card{background:#fff;padding:3rem;border-radius:12px;text-align:center;max-width:400px;box-shadow:0 20px 60px #0000004d}.login-card h1{font-size:1.75rem;color:#1e3a5f;margin-bottom:.25rem}.login-card h2{font-size:1.1rem;color:#64748b;font-weight:400;margin-bottom:1.5rem}.login-card p{color:#64748b;margin-bottom:2rem;line-height:1.5}.pending-approval{display:flex;flex-direction:column;align-items:center;gap:.5rem}.pending-icon{width:56px;height:56px;border-radius:50%;background:#ecfdf5;color:#16a34a;font-size:1.75rem;display:flex;align-items:center;justify-content:center;margin-bottom:.25rem}.pending-approval h3{font-size:1.15rem;color:#1e3a5f}.pending-approval p{color:#475569;margin-bottom:0}.pending-hint{font-size:.85rem;color:#94a3b8!important;margin-bottom:.5rem}.btn-login-outline{background:transparent;color:#2563eb;border:1px solid #2563eb}.btn-login-outline:hover{background:#eff6ff}.auth-error{color:#dc2626;font-size:.9rem;margin-bottom:1rem}.btn-login{background:#2563eb;color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:background .2s}.btn-login:hover{background:#1d4ed8}.chat-container{position:fixed;inset:0;display:flex;flex-direction:column;max-width:800px;margin:0 auto;background:#fff;box-shadow:0 0 20px #0000001a;overflow:hidden}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:#1e3a5f;color:#fff}.chat-header h1{font-size:1.1rem;font-weight:600}.header-actions{display:flex;align-items:center;gap:.75rem}.user-email{font-size:.8rem;opacity:.8}.btn-logout{background:#ffffff26;color:#fff;border:1px solid rgba(255,255,255,.3);padding:.35rem .75rem;border-radius:6px;font-size:.8rem;cursor:pointer;transition:background .2s}.btn-logout:hover{background:#ffffff40}.message-list{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;text-align:center;color:#64748b;padding:2rem}.empty-state h2{font-size:1.5rem;color:#1e3a5f;margin-bottom:.75rem}.empty-state p{max-width:400px;line-height:1.5}.empty-hint{font-size:.85rem;margin-top:.5rem;opacity:.7}.message-bubble{max-width:85%;padding:.75rem 1rem;border-radius:12px;line-height:1.5}.message-bubble.user{align-self:flex-end;background:#2563eb;color:#fff;border-bottom-right-radius:4px;white-space:pre-wrap}.message-bubble.assistant{align-self:flex-start;background:#f1f5f9;color:#1a1a1a;border-bottom-left-radius:4px}.message-bubble.assistant h1{font-size:1.25rem;margin:.75rem 0 .5rem}.message-bubble.assistant h2{font-size:1.1rem;margin:.75rem 0 .4rem}.message-bubble.assistant h3{font-size:1rem;margin:.5rem 0 .3rem}.message-bubble.assistant p{margin:.4rem 0}.message-bubble.assistant ul,.message-bubble.assistant ol{margin:.3rem 0;padding-left:1.5rem}.message-bubble.assistant li{margin:.15rem 0}.message-bubble.assistant strong{font-weight:600}.message-bubble.assistant code{background:#e2e8f0;padding:.1rem .3rem;border-radius:3px;font-size:.9em}.cite-ref{font-size:.7em;font-weight:600;color:#6b7280;vertical-align:super;line-height:1;margin:0 1px;text-decoration:none;border-bottom:1px dotted #9ca3af;cursor:default}a.cite-ref{cursor:pointer}.cite-ref:hover{color:#374151;border-bottom-color:#374151}.cite-tooltip{position:fixed;opacity:0;background:#1e293b;color:#fff;padding:.35rem .6rem;border-radius:6px;font-size:.75rem;font-weight:400;white-space:normal;width:max-content;max-width:240px;text-align:center;word-break:break-word;z-index:1000;pointer-events:none;box-shadow:0 2px 8px #0003}.typing-indicator{display:flex;gap:4px;padding:4px 0}.typing-indicator span{width:8px;height:8px;border-radius:50%;background:#94a3b8;animation:bounce 1.4s ease-in-out infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:scale(.6)}40%{transform:scale(1)}}.citation-panel{margin-top:.5rem}.citation-header{display:inline-flex;align-items:center;gap:.35rem;background:none;border:none;cursor:pointer;padding:.2rem 0;font-size:.7rem;color:#94a3b8;letter-spacing:.03em;transition:color .2s}.citation-header:hover{color:#64748b}.citation-header-label{font-weight:500}.citation-header-indicator{font-size:.75rem;font-weight:600;display:inline-block;line-height:1}.citation-panel--open .citation-header{margin-bottom:0}.citation-list{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease-out}.citation-list-inner{overflow:hidden}.citation-list--open{grid-template-rows:1fr}.citation-list--open .citation-list-inner{padding-top:.5rem}.citation-item{margin-bottom:.25rem}.citation-row{display:flex;align-items:stretch}.citation-row:has(.citation-source-link) .citation-toggle{border-radius:6px 0 0 6px}.citation-source-link{display:flex;align-items:center;justify-content:center;padding:0 .6rem;background:none;border:1px solid #e2e8f0;border-left:none;border-radius:0 6px 6px 0;color:#2563eb;font-size:.85rem;text-decoration:none;transition:background .2s,color .2s;flex-shrink:0}.citation-source-link:hover{background:#eff6ff;color:#1d4ed8}.citation-domain{font-size:.7rem;color:#94a3b8;padding:.1rem .6rem .2rem}.citation-toggle{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0;background:none;border:1px solid #e2e8f0;border-radius:6px;padding:.4rem .6rem;cursor:pointer;font-size:.8rem;text-align:left;transition:background .2s}.citation-toggle:hover{background:#f8fafc}.citation-badge{background:#2563eb;color:#fff;padding:.1rem .4rem;border-radius:4px;font-size:.7rem;font-weight:600;white-space:nowrap}.citation-doc{font-weight:500;color:#1e3a5f;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.citation-snippet{color:#94a3b8;font-weight:400;font-style:italic}.citation-chevron{color:#94a3b8;font-size:.6rem}.citation-text{background:#f8fafc;border:1px solid #e2e8f0;border-top:none;border-radius:0 0 6px 6px;padding:.6rem;font-size:.8rem;color:#475569;line-height:1.5;margin-top:-1px}.message-bubble .citation-text h1,.message-bubble .citation-text h2,.message-bubble .citation-text h3{font-size:.85rem;margin:.4rem 0 .2rem;color:#334155}.message-bubble .citation-text p{margin:.3rem 0}.message-bubble .citation-text ul,.message-bubble .citation-text ol{margin:.2rem 0;padding-left:1.2rem}.message-bubble .citation-text li{margin:.1rem 0}.recommended-questions{align-self:flex-end;max-width:85%;margin-top:.25rem}.recommended-list{display:flex;flex-direction:column;gap:.35rem;align-items:flex-end}.recommended-btn{background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:.45rem .75rem;font-size:.85rem;color:#1e3a5f;text-align:left;cursor:pointer;transition:background .15s,border-color .15s;line-height:1.4}.recommended-btn:hover{background:#eff6ff;border-color:#2563eb;color:#2563eb}.input-bar{display:flex;gap:.5rem;padding:1rem 1.5rem;border-top:1px solid #e2e8f0;background:#fff}.input-bar input{flex:1;padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;outline:none;transition:border-color .2s}.input-bar input:focus{border-color:#2563eb}.input-bar button{background:#2563eb;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;cursor:pointer;transition:background .2s}.input-bar button:hover:not(:disabled){background:#1d4ed8}.input-bar button:disabled{opacity:.5;cursor:not-allowed}.error-banner{background:#fef2f2;color:#dc2626;padding:.5rem 1.5rem;font-size:.85rem;border-top:1px solid #fecaca}@media(max-width:600px){.login-screen{padding:1rem;align-items:flex-start;padding-top:25vh}.login-card{padding:1.5rem 1.25rem;width:100%;max-width:340px}.chat-container{box-shadow:none}.chat-header{padding:.5rem 1rem}.chat-header h1{font-size:1rem}.user-email{display:none}.message-list{padding:1rem}.message-bubble{max-width:95%}.input-bar{padding:.75rem 1rem}}
