:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box}#root{width:100vw;height:100vh}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.auth-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.auth-card{background:#fff;border-radius:12px;padding:40px;box-shadow:0 10px 40px #0000001a;width:100%;max-width:400px}.auth-card h1{margin:0 0 10px;font-size:2rem;color:#333;text-align:center}.auth-card h2{margin:0 0 30px;font-size:1.5rem;color:#666;text-align:center;font-weight:500}.auth-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:.9rem;font-weight:500;color:#333}.form-group input{padding:12px;border:1px solid #ddd;border-radius:6px;font-size:1rem;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#667eea}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.error-message{padding:12px;background-color:#fee;border:1px solid #fcc;border-radius:6px;color:#c33;font-size:.9rem;text-align:center}.submit-btn{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:transform .2s,box-shadow .2s}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-toggle{margin-top:20px;text-align:center;color:#666;font-size:.9rem}.toggle-btn{background:none;border:none;color:#667eea;font-weight:500;cursor:pointer;text-decoration:underline;padding:0;font-size:.9rem}.toggle-btn:hover:not(:disabled){color:#764ba2}.toggle-btn:disabled{opacity:.6;cursor:not-allowed}.chat-container{display:flex;flex-direction:column;height:100vh;width:100%;background:#fff}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#fff;border-bottom:1px solid #e5e5e5;position:sticky;top:0;z-index:10}.chat-header h1{margin:0;color:#333;font-size:20px;font-weight:600}.header-actions{display:flex;align-items:center;gap:12px}.user-email{color:#666;font-size:14px;font-weight:500}.clear-btn,.logout-btn{padding:8px 16px;background:transparent;color:#666;border:1px solid #d0d0d0;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s;font-weight:500}.clear-btn:hover,.logout-btn:hover{background:#f7f7f7;border-color:#b0b0b0}.logout-btn{color:#d32f2f;border-color:#ffcdd2}.logout-btn:hover{background:#ffebee;border-color:#ef9a9a}.chat-main{display:flex;flex:1;overflow:hidden}.documents-panel{width:350px;border-right:1px solid #e5e5e5;background:#f9f9f9;display:flex;flex-direction:column;transition:width .3s ease}.documents-panel.collapsed{width:50px}.documents-panel .panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #e5e5e5;background:#fff}.documents-panel.collapsed .panel-header{flex-direction:column;padding:12px;gap:8px}.documents-panel .panel-header h3{margin:0;color:#333;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.documents-panel.collapsed .panel-header h3{writing-mode:vertical-rl;transform:rotate(180deg);font-size:12px}.collapse-btn{background:transparent;border:1px solid #d0d0d0;border-radius:4px;padding:4px 8px;cursor:pointer;color:#666;font-size:16px;transition:all .2s;display:flex;align-items:center;justify-content:center;min-width:28px}.collapse-btn:hover{background:#f0f0f0;border-color:#b0b0b0}.documents-panel .panel-content{flex:1;overflow-y:auto;padding:16px}.documents-actions{margin-bottom:16px}.upload-btn{width:100%;padding:10px 16px;background:#10a37f;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px}.upload-btn:hover:not(:disabled){background:#0d8c6d;transform:translateY(-1px);box-shadow:0 2px 8px #10a37f4d}.upload-btn:disabled{background:#d0d0d0;cursor:not-allowed;transform:none}.documents-panel .error{color:#d32f2f;font-size:13px;margin:8px 0}.documents-list{display:flex;flex-direction:column;gap:8px}.document-item-wrapper{width:100%}.document-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;transition:all .2s;width:100%}.document-item:hover{border-color:#2196f3;background:#f8f9fa}.document-item input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:#2196f3;flex-shrink:0}.document-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.document-filename{color:#333;font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-meta{color:#666;font-size:12px}.preview-btn{background:transparent;border:1px solid #d0d0d0;border-radius:4px;padding:4px 8px;cursor:pointer;font-size:16px;transition:all .2s;flex-shrink:0}.preview-btn:hover{background:#2196f3;border-color:#2196f3;transform:scale(1.1)}.no-documents{text-align:center;color:#999;padding:20px;font-size:14px}.chat-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#fff}.messages-container{flex:1;overflow-y:auto;padding:24px;background:#fff}.message{margin-bottom:24px;animation:fadeIn .3s}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-user{display:flex;flex-direction:column;align-items:flex-end}.message-user .message-content{background:#f4f4f4;padding:12px 16px;border-radius:18px;max-width:70%}.message-assistant{display:flex;flex-direction:column;align-items:flex-start}.message-assistant .message-content{padding:0;max-width:100%}.message-role{font-weight:600;margin-bottom:8px;font-size:13px;color:#666}.message-content{line-height:1.6;color:#333;white-space:pre-wrap;word-wrap:break-word}.thinking-indicator{display:flex;align-items:center;gap:8px;padding:12px 0;color:#666}.thinking-dots{display:inline-flex;gap:4px}.thinking-dots span{animation:thinking 1.4s infinite;font-size:20px;line-height:1}.thinking-dots span:nth-child(1){animation-delay:0s}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes thinking{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}.thinking-text{font-style:italic;color:#888;font-size:14px}.footnotes{display:inline-flex;gap:4px;margin-left:6px;align-items:baseline;flex-wrap:wrap}.footnote-number{background:transparent;border:none;color:#2196f3;cursor:pointer;font-size:.85em;padding:2px 4px;border-radius:3px;transition:all .2s;font-weight:600;vertical-align:super;line-height:0;position:relative;top:-.3em}.footnote-number:hover{background:#e3f2fd;color:#1976d2;transform:scale(1.1)}.footnote-number:active{transform:scale(.95)}.error-message{padding:12px 16px;background:#fff3f3;color:#d32f2f;border-radius:8px;margin-bottom:16px;border-left:3px solid #f44336;font-size:14px}.loading-conversation{padding:20px;text-align:center;color:#666;font-size:14px;animation:pulse 1.5s ease-in-out infinite}.chat-input-form{display:flex;gap:12px;padding:16px 24px;background:#fff;border-top:1px solid #e5e5e5}.chat-input{flex:1;padding:12px 16px;border:1px solid #d0d0d0;border-radius:24px;font-size:15px;outline:none;transition:all .2s;resize:none;font-family:inherit}.chat-input:focus{border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.chat-input:disabled{background:#f5f5f5;cursor:not-allowed}.send-btn{padding:12px 24px;background:#10a37f;color:#fff;border:none;border-radius:24px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s;white-space:nowrap}.send-btn:hover:not(:disabled){background:#0d8c6d}.send-btn:disabled{background:#d0d0d0;cursor:not-allowed}.panel-content::-webkit-scrollbar,.messages-container::-webkit-scrollbar{width:6px}.panel-content::-webkit-scrollbar-track,.messages-container::-webkit-scrollbar-track{background:transparent}.panel-content::-webkit-scrollbar-thumb,.messages-container::-webkit-scrollbar-thumb{background:#d0d0d0;border-radius:10px}.panel-content::-webkit-scrollbar-thumb:hover,.messages-container::-webkit-scrollbar-thumb:hover{background:#b0b0b0}@media (max-width: 768px){.documents-panel{width:280px}.documents-panel.collapsed{width:40px}.chat-main{flex-direction:column}.documents-panel{width:100%;border-right:none;border-bottom:1px solid #e5e5e5;max-height:200px}.documents-panel.collapsed{max-height:50px}}.citation-tooltip-overlay{position:fixed;inset:0;background:transparent;z-index:999}.citation-tooltip{position:fixed;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 16px #00000026;max-width:400px;z-index:1000;animation:tooltipFadeIn .2s ease-out}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.citation-tooltip-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #e0e0e0;background:#f8f9fa;border-radius:8px 8px 0 0}.citation-tooltip-title{font-weight:600;font-size:14px;color:#333;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:12px}.citation-tooltip-close{background:transparent;border:none;color:#666;cursor:pointer;font-size:18px;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;flex-shrink:0}.citation-tooltip-close:hover{background:#e0e0e0;color:#333}.citation-tooltip-info{padding:8px 16px;background:#f0f7ff;border-bottom:1px solid #e0e0e0}.citation-page-info{font-size:13px;color:#1976d2;font-weight:500}.citation-tooltip-snippet{padding:12px 16px;max-height:200px;overflow-y:auto}.snippet-label{font-size:12px;color:#666;font-weight:600;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.snippet-text{font-size:14px;line-height:1.6;color:#333;font-style:italic;background:#f9f9f9;padding:10px;border-left:3px solid #2196f3;border-radius:4px}.citation-tooltip-snippet::-webkit-scrollbar{width:6px}.citation-tooltip-snippet::-webkit-scrollbar-track{background:transparent}.citation-tooltip-snippet::-webkit-scrollbar-thumb{background:#d0d0d0;border-radius:10px}.citation-tooltip-snippet::-webkit-scrollbar-thumb:hover{background:#b0b0b0}.conversations-sidebar{width:280px;height:100%;background:#f9f9f9;border-right:1px solid #e5e5e5;display:flex;flex-direction:column;transition:width .3s ease;position:relative}.conversations-sidebar.collapsed{width:50px}.sidebar-header{padding:16px;background:#fff;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e5e5e5}.conversations-sidebar.collapsed .sidebar-header{flex-direction:column;padding:12px;gap:8px}.sidebar-header h2{margin:0;font-size:14px;font-weight:600;color:#333;display:flex;align-items:center;gap:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversations-sidebar.collapsed .sidebar-header h2{writing-mode:vertical-rl;transform:rotate(180deg);font-size:12px}.toggle-sidebar-btn{background:transparent;border:1px solid #d0d0d0;color:#666;width:28px;height:28px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;font-size:16px;flex-shrink:0}.toggle-sidebar-btn:hover{background:#f0f0f0;border-color:#b0b0b0}.conversations-list-container{flex:1;overflow-y:auto;padding:16px}.conversations-sidebar.collapsed .conversations-list-container{display:none}.conversations-list-container::-webkit-scrollbar{width:6px}.conversations-list-container::-webkit-scrollbar-track{background:transparent}.conversations-list-container::-webkit-scrollbar-thumb{background:#d0d0d0;border-radius:10px}.conversations-list-container::-webkit-scrollbar-thumb:hover{background:#b0b0b0}.conversation-item{background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:10px 12px;margin-bottom:8px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:space-between;gap:8px}.conversation-item:hover{border-color:#2196f3;background:#f8f9fa}.conversation-item.active{background:#e3f2fd;border-color:#2196f3;box-shadow:0 2px 8px #2196f333}.conversation-content{flex:1;min-width:0}.conversation-title{color:#333;font-size:14px;font-weight:500;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4}.conversation-date{color:#666;font-size:11px;display:flex;align-items:center;gap:4px}.delete-conversation-btn{background:transparent;border:none;color:#999;cursor:pointer;font-size:16px;padding:4px 8px;border-radius:4px;transition:all .2s;opacity:0;flex-shrink:0}.conversation-item:hover .delete-conversation-btn{opacity:1}.delete-conversation-btn:hover{background:#ffebee;color:#d32f2f}.sidebar-loading,.sidebar-error,.sidebar-empty{padding:20px;text-align:center;color:#999;font-size:14px}.sidebar-error{color:#d32f2f}.new-chat-btn{margin:16px;padding:10px 16px;background:#10a37f;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px}.conversations-sidebar.collapsed .new-chat-btn{display:none}.new-chat-btn:hover{background:#0d8c6d;transform:translateY(-1px);box-shadow:0 2px 8px #10a37f4d}.pdf-preview-panel{width:400px;height:100%;background:#f9f9f9;border-left:1px solid #e5e5e5;display:flex;flex-direction:column;transition:width .3s ease;position:relative;flex-shrink:0}.pdf-preview-panel.resizing{transition:none;-webkit-user-select:none;user-select:none}.resize-handle{position:absolute;left:0;top:0;bottom:0;width:6px;cursor:col-resize;background:transparent;z-index:10;transition:background .2s}.resize-handle:hover{background:#4285f44d}.resize-handle:before{content:"";position:absolute;left:2px;top:50%;transform:translateY(-50%);width:2px;height:40px;background:#ccc;border-radius:2px}.resize-handle:hover:before{background:#4285f4}.pdf-preview-panel.collapsed{width:50px}.pdf-preview-panel .panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #e5e5e5;background:#fff}.pdf-preview-panel.collapsed .panel-header{flex-direction:column;padding:12px;gap:8px}.pdf-preview-panel .panel-header h3{margin:0;color:#333;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdf-preview-panel.collapsed .panel-header h3{writing-mode:vertical-rl;transform:rotate(180deg);font-size:12px}.pdf-preview-content{flex:1;overflow:hidden;display:flex;flex-direction:column;background:#525659}.pdf-iframe{width:100%;height:100%;border:none}.pdf-preview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#999;padding:40px 20px;text-align:center}.pdf-preview-empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.pdf-preview-empty-text{font-size:14px;line-height:1.6}.pdf-loading{display:flex;align-items:center;justify-content:center;height:100%;color:#666;font-size:14px;animation:pulse 1.5s ease-in-out infinite}.pdf-error{padding:20px;color:#d32f2f;font-size:14px;text-align:center}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}@media (max-width: 1200px){.pdf-preview-panel{width:300px}}
