@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";
:root{--bg-primary:#fff;--bg-secondary:#f7f7f8;--bg-tertiary:#ececf1;--bg-sidebar:#f9f9f9;--bg-hover:#f0f0f0;--bg-input:#fff;--bg-user-msg:#f7f7f8;--bg-assistant-msg:#fff;--text-primary:#0d0d0d;--text-secondary:#6e6e80;--text-tertiary:#8e8ea0;--text-on-accent:#fff;--accent:#0d0d0d;--accent-hover:#2d2d2d;--accent-light:#e5e5e5;--border:#e5e5e5;--border-light:#f0f0f0;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 2px 8px #00000014;--shadow-lg:0 4px 16px #0000001f;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--transition:.15s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font);color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:var(--font)}input,textarea{font-family:var(--font)}.app-layout{height:100vh;display:flex;overflow:hidden}.main-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);width:260px;transition:transform var(--transition);flex-direction:column;display:flex}.sidebar-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:16px;display:flex}.sidebar-logo{letter-spacing:-.02em;align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.sidebar-logo img{border-radius:6px;width:28px;height:28px}.new-chat-btn{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);transition:all var(--transition);align-items:center;gap:8px;margin:12px 12px 8px;padding:10px 14px;font-size:14px;font-weight:500;display:flex}.new-chat-btn:hover{background:var(--bg-hover)}.sidebar-chats{flex:1;padding:4px 8px;overflow-y:auto}.chat-item{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--transition);align-items:center;gap:6px;padding:10px 12px;font-size:14px;display:flex}.chat-item-title{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.chat-item-delete{color:var(--text-muted,#555);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px;transition:opacity .15s,color .15s}.chat-item:hover .chat-item-delete{opacity:1}.chat-item-delete:hover{color:#e53e3e}.chat-item:hover{background:var(--bg-hover)}.chat-item.active{background:var(--bg-tertiary);color:var(--text-primary)}.sidebar-footer{border-top:1px solid var(--border-light);align-items:center;gap:10px;padding:12px 16px;display:flex}.user-avatar{border-radius:var(--radius-full);background:var(--accent);width:32px;height:32px;color:var(--text-on-accent);justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.user-name{flex:1;font-size:14px;font-weight:500}.navbar{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;height:52px;padding:0 16px;display:flex}.navbar-title{font-size:16px;font-weight:600}.navbar-actions{gap:8px;display:flex}.chat-container{flex-direction:column;flex:1;width:100%;max-width:768px;min-height:0;margin:0 auto;padding:0 16px;display:flex;overflow:hidden}.chat-messages{flex-direction:column;flex:1;gap:24px;padding:24px 0;display:flex;overflow-y:auto}.chat-welcome{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:48px 24px;display:flex}.chat-welcome-logo{border-radius:var(--radius-md);width:48px;height:48px}.chat-welcome h1{color:var(--text-primary);letter-spacing:-.02em;font-size:28px;font-weight:700}.chat-welcome p{color:var(--text-secondary);text-align:center;max-width:480px;font-size:15px;line-height:1.5}.suggestion-grid{grid-template-columns:repeat(2,1fr);gap:10px;width:100%;max-width:500px;margin-top:16px;display:grid}.suggestion-card{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);padding:14px 16px;font-size:13px;line-height:1.4}.suggestion-card:hover{background:var(--bg-tertiary);border-color:var(--border);color:var(--text-primary)}.message{gap:16px;padding:4px 0;display:flex}.message-avatar{border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:600;display:flex}.message-avatar.user{background:var(--accent);color:var(--text-on-accent)}.message-avatar.assistant{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.message-content{color:var(--text-primary);flex:1;padding-top:4px;font-size:15px;line-height:1.6}.message-content p{margin-bottom:8px}.message-content p:last-child{margin-bottom:0}.message-content h1,.message-content h2,.message-content h3{margin:16px 0 8px;font-weight:700;line-height:1.3}.message-content h1{font-size:20px}.message-content h2{font-size:17px}.message-content h3{font-size:15px}.message-content strong{font-weight:600}.message-content em{font-style:italic}.message-content ul,.message-content ol{margin:8px 0;padding-left:24px}.message-content li{margin-bottom:4px;line-height:1.5}.message-content code{background:var(--bg-tertiary);border-radius:4px;padding:2px 6px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:13px}.message-content pre{color:#d4d4d4;border-radius:var(--radius-sm);background:#1e1e1e;margin:12px 0;padding:16px;font-size:13px;line-height:1.5;overflow-x:auto}.message-content pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.message-content blockquote{border-left:3px solid var(--border);color:var(--text-secondary);margin:12px 0;padding-left:16px;font-style:italic}.message-content hr{border:none;border-top:1px solid var(--border);margin:16px 0}.message-content a{color:#2563eb;text-underline-offset:2px;text-decoration:underline}.message-content a:hover{color:#1d4ed8}.message-content table{border-collapse:collapse;width:100%;margin:12px 0;font-size:14px}.message-content th,.message-content td{border:1px solid var(--border);text-align:left;padding:8px 12px}.message-content th{background:var(--bg-secondary);font-weight:600}.typing-indicator{gap:4px;padding:8px 0;display:flex}.typing-dot{background:var(--text-tertiary);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite typing}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-6px)}}.chat-input-container{padding:16px 0 24px}.chat-input-wrapper{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);transition:border-color var(--transition), box-shadow var(--transition);flex-direction:column;padding:4px 4px 4px 16px;display:flex}.file-preview-chip{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);border-radius:8px;align-items:center;gap:6px;margin:4px 0 2px;padding:4px 10px;font-size:12px;display:flex}.file-preview-chip.uploading{opacity:.6;animation:1.5s infinite pulse}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.remove-file-btn{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0;display:flex}.remove-file-btn:hover{color:var(--text-primary)}.chat-input-row{align-items:flex-end;gap:0;width:100%;display:flex}.input-actions{align-items:center;gap:4px;display:flex}.upload-btn{color:var(--text-tertiary);cursor:pointer;transition:color var(--transition), background var(--transition);background:0 0;border:none;border-radius:8px;align-items:center;padding:8px;display:flex}.upload-btn:hover{color:var(--text-primary);background:var(--bg-tertiary)}.upload-btn:disabled{opacity:.4;cursor:not-allowed}.chat-input-wrapper:focus-within{border-color:var(--accent);box-shadow:var(--shadow-md)}.chat-input{resize:none;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;min-height:24px;max-height:120px;padding:8px 0;font-size:15px;line-height:1.5}.chat-input::placeholder{color:var(--text-tertiary)}.send-btn{border-radius:var(--radius-full);background:var(--accent);width:36px;height:36px;color:var(--text-on-accent);transition:all var(--transition);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.send-btn:hover{background:var(--accent-hover)}.send-btn:disabled{opacity:.3;cursor:not-allowed}.send-btn svg{width:16px;height:16px}.stop-btn{border:1px solid var(--border);border-radius:var(--radius-full);height:36px;color:var(--text-secondary);transition:all var(--transition);cursor:pointer;background:0 0;flex-shrink:0;align-items:center;gap:6px;padding:0 14px;font-size:13px;display:flex}.stop-btn:hover{border-color:var(--text-tertiary);color:var(--text-primary)}.stop-btn svg{fill:currentColor}.message-actions{opacity:0;gap:4px;margin-top:6px;transition:opacity .15s;display:flex}.message:hover .message-actions{opacity:1}.msg-action-btn{cursor:pointer;color:var(--text-tertiary);background:0 0;border:1px solid #0000;border-radius:6px;padding:3px 8px;font-size:14px;line-height:1;transition:all .15s}.msg-action-btn:hover{background:var(--bg-tertiary);border-color:var(--border);color:var(--text-primary)}.msg-action-btn.feedback-active{color:var(--accent);border-color:var(--accent);background:#6366f11a}.feedback-reason-menu{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.reason-label{color:var(--text-tertiary);white-space:nowrap;font-size:12px}.reason-options{gap:4px;display:flex}.reason-btn{cursor:pointer;background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border);white-space:nowrap;border-radius:12px;padding:3px 10px;font-size:12px;transition:all .15s}.reason-btn:hover{background:var(--bg-secondary);border-color:var(--accent);color:var(--text-primary)}.edit-message-wrapper{width:100%}.edit-message-input{background:var(--bg-tertiary);width:100%;color:var(--text-primary);border:1px solid var(--accent);resize:vertical;border-radius:8px;outline:none;min-height:60px;padding:10px 14px;font-family:inherit;font-size:15px;line-height:1.5}.edit-message-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #6366f126}.edit-message-actions{gap:8px;margin-top:8px;display:flex}.edit-btn{cursor:pointer;border:none;border-radius:6px;padding:6px 16px;font-size:13px;font-weight:500;transition:all .15s}.edit-btn.save{background:var(--accent);color:#fff}.edit-btn.save:hover{opacity:.9}.edit-btn.cancel{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border)}.edit-btn.cancel:hover{background:var(--bg-secondary)}.code-block{border:1px solid var(--border);background:#1e1e1e;border-radius:8px;margin:12px 0;overflow:hidden}.code-block-header{color:#999;background:#2d2d2d;justify-content:space-between;align-items:center;padding:6px 12px;font-size:12px;display:flex}.code-copy-btn{color:#ccc;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 8px;font-size:12px;transition:all .15s}.code-copy-btn:hover{color:#fff;background:#444}.code-block pre{color:#d4d4d4;margin:0;padding:12px 16px;font-size:13px;line-height:1.5;overflow-x:auto}.code-block code{font-size:13px;background:0 0!important;padding:0!important}.inline-code{background:var(--bg-tertiary);color:var(--text-primary);border-radius:4px;padding:2px 6px;font-size:.9em}.chat-input-footer{text-align:center;color:var(--text-tertiary);margin-top:8px;font-size:12px}.auth-page{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{flex-direction:column;align-items:center;gap:32px;width:100%;max-width:400px;display:flex}.auth-header{text-align:center}.auth-header img{border-radius:var(--radius-md);width:48px;height:48px;margin-bottom:20px}.auth-header h1{color:var(--text-primary);letter-spacing:-.02em;margin-bottom:8px;font-size:28px;font-weight:700}.auth-header p{color:var(--text-secondary);font-size:15px}.auth-form{flex-direction:column;gap:16px;width:100%;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--text-secondary);font-size:13px;font-weight:500}.form-input{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);background:var(--bg-primary);transition:border-color var(--transition);outline:none;padding:10px 14px;font-size:15px}.form-input:focus{border-color:var(--accent)}.form-input::placeholder{color:var(--text-tertiary)}.auth-submit{background:var(--accent);color:var(--text-on-accent);border-radius:var(--radius-sm);transition:background var(--transition);border:none;margin-top:8px;padding:12px;font-size:15px;font-weight:600}.auth-submit:hover{background:var(--accent-hover)}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-error{border-radius:var(--radius-sm);color:#dc2626;background:#fef2f2;border:1px solid #fecaca;padding:10px 14px;font-size:13px}.auth-footer{color:var(--text-secondary);font-size:14px}.auth-footer a{color:var(--text-primary);text-underline-offset:2px;font-weight:600;text-decoration:underline}.auth-footer a:hover{color:var(--accent-hover)}.services-page{flex:1;padding:32px;overflow-y:auto}.services-header{max-width:768px;margin:0 auto 32px}.services-header h1{letter-spacing:-.02em;margin-bottom:8px;font-size:24px;font-weight:700}.services-header p{color:var(--text-secondary);font-size:15px}.services-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;max-width:768px;margin:0 auto;display:grid}.service-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);transition:all var(--transition);padding:24px}.service-card:hover{box-shadow:var(--shadow-md);border-color:var(--accent-light)}.service-icon{border-radius:var(--radius-sm);background:var(--bg-secondary);justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:16px;font-size:22px;display:flex}.service-card h3{margin-bottom:4px;font-size:16px;font-weight:600}.service-card p{color:var(--text-secondary);margin-bottom:16px;font-size:13px;line-height:1.4}.service-status{justify-content:space-between;align-items:center;display:flex}.status-badge{border-radius:var(--radius-full);padding:4px 10px;font-size:12px;font-weight:500}.status-badge.connected{color:#059669;background:#ecfdf5}.status-badge.disconnected{background:var(--bg-secondary);color:var(--text-tertiary)}.connect-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);transition:all var(--transition);padding:6px 14px;font-size:13px;font-weight:500}.connect-btn:hover{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent)}.tool-status-indicator{color:var(--text-secondary);align-items:center;gap:10px;padding:8px 0;font-size:.9rem;display:flex}.tool-status-icon{color:var(--text-primary);flex-shrink:0;animation:1.5s ease-in-out infinite tool-pulse}@keyframes tool-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}.search-sources-live{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.search-source-pill{background:var(--bg-tertiary,#ffffff0f);border:1px solid var(--border-color,#ffffff1a);color:var(--text-secondary,#888);border-radius:999px;padding:3px 10px;font-size:.7rem;animation:.3s ease-out pillAppear;display:inline-block}@keyframes pillAppear{0%{opacity:0;transform:translateY(6px)scale(.92)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.source-panel{border-bottom:1px solid var(--border-color);margin-bottom:16px;padding-bottom:12px}.source-panel-header{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;margin-bottom:10px;font-size:.8rem;font-weight:500;display:flex}.source-panel-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.source-panel-card{background:var(--input-bg);color:var(--text-secondary);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:.8rem;text-decoration:none;transition:background .2s;display:flex;overflow:hidden}.source-panel-card:hover{background:var(--border-color)}.source-favicon{border-radius:2px;flex-shrink:0}.source-card-text{flex-direction:column;flex:1;min-width:0;display:flex}.source-card-title{text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);font-size:.8rem;line-height:1.3;overflow:hidden}.source-card-domain{color:var(--text-secondary);opacity:.7;font-size:.7rem}.source-card-num{background:var(--border-color);width:18px;height:18px;color:var(--text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.65rem;font-weight:600;display:flex}.citation-pill{background:var(--input-bg);border:1px solid var(--border-color);color:var(--text-secondary);white-space:nowrap;cursor:pointer;vertical-align:baseline;border-radius:12px;align-items:center;gap:2px;margin:0 2px;padding:2px 8px;font-size:.75rem;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex;position:relative}.citation-pill:hover{background:var(--border-color);border-color:var(--text-secondary);color:var(--text-primary)}.citation-arrow{opacity:.6;font-size:.65rem}.citation-pill:after{content:attr(data-tooltip);background:var(--surface);border:1px solid var(--border-color);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;opacity:0;pointer-events:none;z-index:10;border-radius:8px;max-width:320px;padding:6px 10px;font-size:.75rem;font-weight:400;transition:opacity .15s;position:absolute;bottom:calc(100% + 6px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 12px #00000026}.citation-pill:hover:after{opacity:1}@media (max-width:768px){.sidebar{z-index:100;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay{z-index:99;background:#0000004d;position:fixed;inset:0}.suggestion-grid{grid-template-columns:1fr}.chat-welcome h1{font-size:22px}.services-grid{grid-template-columns:1fr}}.scroll-to-bottom-btn{z-index:10;background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;width:36px;height:36px;color:var(--text-secondary);border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;bottom:110px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0003}.scroll-to-bottom-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);box-shadow:0 4px 12px #0000004d}.typing-cursor{color:var(--text-secondary);vertical-align:baseline;margin-left:1px;font-size:14px;animation:.8s step-end infinite blink-cursor;display:inline}@keyframes blink-cursor{50%{opacity:0}}.reconnecting-banner{text-align:center;color:#fbbf24;background:#fbbf241a;border-radius:8px;max-width:200px;margin:0 auto 8px;padding:6px 16px;font-size:13px;font-weight:500;animation:2s ease-in-out infinite pulse-reconnect}@keyframes pulse-reconnect{0%,to{opacity:1}50%{opacity:.5}}.settings-gear-btn{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.settings-gear-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.settings-backdrop{z-index:1000;background:#0000004d;animation:.15s fadeIn;position:fixed;inset:0}.settings-panel{background:var(--bg-primary);border-left:1px solid var(--border);z-index:1001;flex-direction:column;width:380px;height:100vh;animation:.2s ease-out slideInRight;display:flex;position:fixed;top:0;right:0;overflow-y:auto;box-shadow:-4px 0 16px #00000014}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.settings-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.settings-title{color:var(--text-primary);font-size:18px;font-weight:600}.settings-close-btn{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.settings-close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.settings-section{padding:20px 24px}.settings-section-label{letter-spacing:.05em;color:var(--text-tertiary);margin-bottom:12px;font-size:11px;font-weight:600;display:block}.integration-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:12px;padding:20px}.integration-card-header{align-items:center;gap:8px;margin-bottom:10px;display:flex}.integration-icon{font-size:20px;line-height:1}.integration-name{color:var(--text-primary);flex:1;font-size:15px;font-weight:600}.integration-status{white-space:nowrap;font-size:12px;font-weight:500}.integration-status.connected{color:#22c55e}.integration-status.connecting{color:var(--text-tertiary);animation:2s ease-in-out infinite pulse-reconnect}.integration-status.coming-soon{color:var(--text-tertiary);background:var(--bg-tertiary);border-radius:var(--radius-full);padding:2px 8px;font-size:11px}.integration-desc{color:var(--text-secondary);margin-bottom:14px;font-size:13px;line-height:1.5}.integration-connect-btn{background:var(--accent);width:100%;color:var(--text-on-accent);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition);border:none;padding:10px;font-size:14px;font-weight:500}.integration-connect-btn:hover{background:var(--accent-hover)}.integration-connected-info{flex-direction:column;gap:4px;display:flex}.integration-email{color:var(--text-primary);font-size:14px;font-weight:500}.integration-scope,.integration-date{color:var(--text-tertiary);font-size:12px}.integration-disconnect{color:#ef4444;cursor:pointer;text-align:left;font-size:13px;font-family:var(--font);background:0 0;border:none;margin-top:8px;padding:0}.integration-disconnect:hover{text-decoration:underline}@media (max-width:640px){.settings-panel{width:100%}}
