.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(180deg,var(--bg-start) 0%,var(--bg-mid) 50%,var(--bg-end) 100%);background-attachment:fixed}.auth-card{width:100%;max-width:400px;padding:2rem;background:var(--surface);border-radius:var(--radius);border:2px solid var(--border-dark);box-shadow:var(--shadow-soft)}.auth-card h1{margin:0 0 .25rem;font-size:1.55rem;font-weight:700;color:var(--text)}.auth-card .auth-subtitle{margin:0 0 1.5rem;font-size:.95rem;font-weight:600;color:var(--text-muted)}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-form label{font-size:.9rem;font-weight:700;color:var(--text)}.auth-form input{width:100%;padding:.75rem .9rem;font-size:1.05rem;font-weight:600;border:2px solid var(--border-dark);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);box-sizing:border-box}.auth-password-wrap{position:relative;display:flex;align-items:center}.auth-password-wrap input{padding-right:2.75rem}.auth-password-toggle{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);padding:.35rem;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.auth-password-toggle:hover{color:var(--text);background:var(--bg-mid)}.auth-password-invalid input{border-color:var(--error);background:#b91c1c0a}.auth-password-invalid input:focus{border-color:var(--error);box-shadow:0 0 0 3px #b91c1c33}.auth-password-valid input{border-color:var(--success, #16a34a);background:#16a34a0a}.auth-password-valid input:focus{border-color:var(--success, #16a34a);box-shadow:0 0 0 3px #16a34a33}.auth-form input:focus{outline:none}.auth-password-wrap:not(.auth-password-invalid):not(.auth-password-valid) input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb33}.auth-form input::placeholder{color:var(--text-muted)}.auth-password-criteria{font-size:.8rem;font-weight:600;color:var(--text-muted);margin:-.25rem 0 0;padding:0;line-height:1.35}.auth-error-wrap{margin:.5rem 0 0;padding:.75rem 1rem;background:#b91c1c1f;border:2px solid var(--error);border-radius:var(--radius-sm)}.auth-error{font-size:.9rem;font-weight:600;color:var(--error);margin:0;padding:0;line-height:1.4;white-space:pre-wrap;word-break:break-word}.auth-submit{margin-top:.25rem;padding:.85rem 1rem;font-size:1.05rem;font-weight:700;color:#fff;background:var(--accent);border:2px solid #1d4ed8;border-radius:var(--radius-sm);cursor:pointer;transition:background .2s}.auth-submit:hover:not(:disabled){background:var(--accent-hover)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-footer{margin-top:1.25rem;text-align:center;font-size:.95rem;font-weight:600;color:var(--text-muted)}.auth-footer a{color:var(--accent);font-weight:700;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.auth-link-btn{background:none;border:none;padding:0;font-size:inherit;color:var(--accent);font-weight:700;cursor:pointer;text-decoration:none;font-family:inherit}.auth-link-btn:hover{text-decoration:underline}.auth-logo{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1.5rem}.auth-logo img{height:40px;width:auto}.auth-logo .logo-mark{font-size:1.3rem;font-weight:700;color:var(--text)}.auth-card code{font-size:.9em;font-weight:600;padding:.2rem .45rem;background:var(--bg-mid);border-radius:4px;border:1px solid var(--border-dark);color:var(--text)}.app{display:flex;flex-direction:column;height:100vh;min-height:100vh;width:100%;margin:0;background:transparent;position:relative;overflow:hidden}.header{position:relative;z-index:20;flex-shrink:0;display:flex;align-items:center;gap:1rem;padding:.85rem 1.75rem;background:#fff;box-shadow:0 1px 3px #00000014;border-bottom:2px solid var(--border-strong)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:.75rem}.header-view-docs,.header-new-chat,.header-sign-out{padding:.5rem 1rem;font-size:.95rem;font-weight:700;color:var(--accent);background:transparent;border:2px solid var(--accent);border-radius:var(--radius-sm);cursor:pointer;transition:background .2s,color .2s,border-color .2s}.header-view-docs:hover{background:var(--accent);color:#fff}.header-sign-out{color:var(--text-muted);border-color:var(--border-dark)}.header-sign-out:hover{background:var(--border);color:var(--text)}.header-new-chat:hover{background:var(--accent);color:#fff}.header-logo{height:48px;width:auto;object-fit:contain;display:block}.logo{display:flex;flex-direction:column;gap:.1rem;justify-content:center}.logo-mark{font-size:1.4rem;font-weight:700;letter-spacing:.02em;color:var(--text);line-height:1.2}.logo-tag{font-size:.95rem;color:var(--text-muted);font-weight:700;line-height:1.2}.chat-main{flex:1;display:flex;flex-direction:column;min-height:0;width:100%;padding:0 1rem 1.25rem;overflow:hidden;box-sizing:border-box}.chat-content{max-width:1300px;margin:0 auto;width:100%;display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;padding-bottom:1rem;box-sizing:border-box}.chat-scroll{flex:1;min-height:0;overflow-y:auto;padding:2rem 0 1.25rem}.welcome{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:6rem 2rem 3rem;padding-top:clamp(1.5rem,5vh,3rem);color:var(--text-muted);min-height:420px;box-sizing:border-box}.welcome-chatbot-icon{width:80px;height:80px;margin-bottom:1.25rem;flex-shrink:0;animation:iconFloat 4s ease-in-out infinite}@keyframes iconFloat{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.welcome-chatbot-icon svg{width:100%;height:100%;filter:drop-shadow(0 4px 12px rgba(180,120,100,.12))}.welcome-title{font-size:1.85rem;font-weight:700;color:var(--text);margin:0 0 .5rem}.welcome-desc{margin:0 0 1rem;color:var(--text-muted);font-weight:600;max-width:720px;line-height:1.55;font-size:1.05rem}.try-asking{width:100%;max-width:90%;margin:1rem 0 1.25rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.try-asking-label{font-size:.8rem;font-weight:700;color:var(--text-muted);letter-spacing:.08em}.try-asking-line{width:100%;border:none;border-top:2px solid var(--border-dark);margin:0}.suggestions-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;width:100%;max-width:1000px}.suggestion-card{display:flex;align-items:flex-start;gap:.75rem;padding:1.1rem 1.25rem;border-radius:var(--radius-sm);border:2px solid var(--border-dark);background:var(--surface);color:var(--text);font-size:.95rem;font-weight:600;text-align:left;cursor:pointer;transition:box-shadow .2s,border-color .2s,background .2s;box-shadow:var(--shadow-soft)}.suggestion-card:hover{border-color:var(--accent);border-width:2px;background:#f8fafc;box-shadow:0 4px 16px #2563eb1a}.suggestion-card:focus-visible{border-color:var(--accent);outline:3px solid var(--accent);outline-offset:2px}.suggestion-card-icon{flex-shrink:0;width:22px;height:22px;color:var(--accent)}.suggestion-card-icon svg{width:100%;height:100%}.suggestion-card-text{line-height:1.45;font-weight:600}.messages{flex:1;overflow-y:auto;padding:1rem 0;display:flex;flex-direction:column;gap:1rem;width:100%}.message{display:flex;align-items:flex-end;gap:.6rem;width:100%}.message.user{justify-content:flex-end}.message.assistant{justify-content:flex-start}.message-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden}.message-avatar.user-avatar{background:var(--user-bubble);border:2px solid var(--border-dark);color:var(--accent)}.message-avatar.user-avatar svg{width:20px;height:20px}.message-avatar.bot-avatar{background:var(--bot-bubble);border:2px solid rgba(0,0,0,.2);color:#fff}.message-avatar.bot-avatar svg{width:20px;height:20px}.bubble{max-width:82%;padding:.9rem 1.2rem;border-radius:var(--radius-sm);font-size:1.12rem;font-weight:600;line-height:1.55;transition:box-shadow .2s ease}.bubble.user{background:var(--user-bubble);color:var(--text);border:2px solid var(--border-dark);box-shadow:var(--user-bubble-shadow)}.bubble.user:hover{box-shadow:var(--user-bubble-shadow),0 4px 14px #00000014}.bubble.bot{background:var(--bot-bubble);color:#fff;border:2px solid rgba(0,0,0,.15);box-shadow:var(--bot-bubble-shadow)}.bubble.bot:hover{box-shadow:var(--bot-bubble-shadow),0 4px 14px #0000001f}.bubble.bot.error{background:#fef2f2;color:var(--error);border:2px solid #b91c1c;box-shadow:0 2px 12px #b71c1c1f;font-weight:600}.bubble .content{white-space:normal;word-break:break-word;line-height:1.55;letter-spacing:.01em}.bubble.bot .content{font-size:1.22rem}.bubble.bot .content-block{display:flex;flex-direction:column;gap:.35rem}.bubble.bot .content-line{display:block;min-height:1.4em}.bubble.bot .content-line:empty{min-height:.5em}.bubble.bot .citations-details{margin-top:.75rem;font-size:.85rem;color:#fffffff2}.bubble.bot .citations-button{cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;border-radius:6px;font-weight:600;background:#ffffff26;border:1px solid rgba(255,255,255,.25);list-style:none;-webkit-user-select:none;user-select:none;transition:background .15s,border-color .15s}.bubble.bot .citations-button::-webkit-details-marker{display:none}.bubble.bot .citations-button:hover{background:#ffffff38;border-color:#ffffff59}.bubble.bot .citations-panel{margin-top:.65rem;padding:.75rem;border-radius:8px;background:#0003;border:1px solid rgba(255,255,255,.1)}.bubble.bot .citations-empty{margin:0;font-size:.85rem;opacity:.9}.bubble.bot .citations-list{margin:0;padding-left:1.25rem;list-style:decimal}.bubble.bot .citations-item{margin-bottom:.6rem}.bubble.bot .citations-item:last-child{margin-bottom:0}.bubble.bot .citations-item-text{margin:0;font-size:.85rem;line-height:1.4}.bubble.bot .citations-item-uri{display:block;margin-top:.25rem;font-size:.75rem;opacity:.85;word-break:break-all}.bubble.loading{display:flex;align-items:center;gap:.65rem;padding:1rem 1.25rem}.loading-phase-icon{flex-shrink:0;width:22px;height:22px;color:#fffffff2;animation:loadingPulse 1.5s ease-in-out infinite}.loading-phase-icon svg{width:100%;height:100%}.loading-phase-label{font-size:1rem;font-weight:600;color:#fffffffa;letter-spacing:.02em}@keyframes loadingPulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.toast{flex-shrink:0;padding:.6rem 1.1rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;margin-bottom:.5rem;border:2px solid var(--border-dark)}.toast.error{background:#fef2f2;color:var(--error);border-color:#b91c1c;box-shadow:0 2px 8px #b71c1c1a}.input-row{display:flex;align-items:center;gap:0;flex-shrink:0;min-height:56px;padding:.5rem .5rem .5rem 0;width:100%;max-width:100%;margin:0 auto;background:var(--surface);border:2px solid var(--border-dark);border-radius:var(--radius);box-shadow:var(--shadow-soft);box-sizing:border-box}.input-row:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb33}.input-icon{flex-shrink:0;width:52px;height:52px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.input-icon svg{width:22px;height:22px}.input-row input{flex:1;min-width:0;padding:1rem .75rem;border:none;border-radius:0;font-size:1.1rem;font-weight:600;background:transparent;color:var(--text);outline:none}.input-row input:focus{outline:none}.input-row input::placeholder{color:var(--text-muted)}.input-row input:disabled{opacity:.7;cursor:not-allowed}.input-send-btn{flex-shrink:0;width:48px;height:48px;margin:4px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--send-button);color:#fff;border:2px solid #1d4ed8;border-radius:8px;transition:background .2s,transform .2s}.input-send-btn svg{width:22px;height:22px}.input-send-btn:hover:not(:disabled){background:var(--send-button-hover);transform:scale(1.05)}.input-send-btn:disabled{opacity:.5;cursor:not-allowed}.disclaimer{flex-shrink:0;font-size:.85rem;font-weight:600;color:var(--text-muted);text-align:center;margin:.5rem auto 1.25rem;width:100%}.docs-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;padding:1.5rem;box-sizing:border-box}.docs-modal{background:var(--surface);border-radius:var(--radius);border:2px solid var(--border-dark);box-shadow:0 12px 40px #00000026;width:100%;max-width:1200px;height:640px;max-height:88vh;display:flex;flex-direction:column;margin:auto}.docs-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:2px solid var(--border);flex-shrink:0}.docs-modal-header h2{margin:0;font-size:1.2rem;font-weight:700;color:var(--text)}.docs-modal-close{padding:.35rem;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.docs-modal-close:hover{background:var(--border);color:var(--text)}.docs-modal-close svg{width:20px;height:20px}.docs-modal-body{padding:1rem 1.25rem;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.docs-loading,.docs-error,.docs-empty{margin:0;font-size:.95rem;font-weight:600;color:var(--text-muted)}.docs-error{color:var(--error)}.docs-table-wrap{flex:1;min-height:0;overflow-y:auto;border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-mid)}.docs-list{list-style:none;margin:0;padding:.5rem;display:flex;flex-direction:column;gap:.35rem}.docs-list-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.docs-list-name{flex:1;min-width:0;font-weight:600;font-size:.9rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.docs-list-actions{display:flex;gap:.35rem;flex-shrink:0}.docs-btn{padding:.4rem .75rem;font-size:.85rem;font-weight:700;border-radius:var(--radius-sm);text-decoration:none;cursor:pointer;transition:background .2s,color .2s;border:2px solid transparent}.docs-btn-view{background:var(--accent);color:#fff;border-color:var(--accent)}.docs-btn-view:hover{background:var(--accent-hover);color:#fff}.docs-btn-download{background:var(--surface);color:var(--accent);border-color:var(--border-dark)}.docs-btn-download:hover{background:var(--border);color:var(--accent)}:root{--accent: #2563eb;--accent-hover: #1d4ed8;--header: #1e3a5f;--header-bottom: #1e3a5f;--header-shadow: 0 2px 12px rgba(0, 0, 0, .08);--bg-start: #f8fafc;--bg-mid: #f1f5f9;--bg-end: #e2e8f0;--surface: #ffffff;--user-bubble: #eff6ff;--user-bubble-border: #bfdbfe;--user-bubble-shadow: 0 2px 12px rgba(37, 99, 235, .08);--bot-bubble: #1e3a5f;--bot-bubble-shadow: 0 4px 16px rgba(30, 58, 95, .2);--send-button: #2563eb;--send-button-hover: #1d4ed8;--send-button-shadow: rgba(37, 99, 235, .35);--icons: #475569;--text: #1e293b;--text-muted: #64748b;--border: #e2e8f0;--border-dark: #94a3b8;--border-strong: #64748b;--error: #c53030;--radius: 12px;--radius-sm: 10px;--shadow-soft: 0 4px 24px rgba(0, 0, 0, .06);--font: "Source Sans 3", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;min-height:100vh;margin:0;width:100%}body{font-family:var(--font);font-weight:600;background:linear-gradient(180deg,var(--bg-start) 0%,var(--bg-mid) 50%,var(--bg-end) 100%);background-attachment:fixed;color:var(--text);-webkit-font-smoothing:antialiased}button{font-family:inherit;font-weight:600;cursor:pointer}input,textarea{font-family:inherit;font-weight:600}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
