.research-progress{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;padding:10px 14px;box-shadow:0 2px 4px #0000001a;animation:slideIn .3s ease-out}.research-progress.complete{background:linear-gradient(135deg,#11998e,#38ef7d)}.progress-header{display:flex;align-items:center;gap:10px}.progress-indicator{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.spinner{width:18px;height:18px;position:relative}.spinner-circle{width:100%;height:100%;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.checkmark{width:22px;height:22px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#11998e;font-weight:700;font-size:14px;animation:scaleIn .3s ease-out}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.progress-text{flex:1;color:#fff;min-width:0}.progress-label{font-weight:600;font-size:13px;line-height:1.3}.progress-detail{font-size:12px;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log-toggle-btn{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all .2s}.log-toggle-btn:hover{background:#ffffff4d;transform:translateY(-1px)}.log-toggle-btn svg{opacity:.8}.progress-bar{margin-top:12px;height:4px;background:#fff3;border-radius:2px;overflow:hidden}.progress-bar-fill{height:100%;background:#fff;border-radius:2px;transition:width .3s ease-out;box-shadow:0 0 8px #ffffff80}.research-log-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.research-log-panel{background:#fff;border-radius:12px;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.research-log-header{padding:20px;border-bottom:1px solid #e0e0e0;display:flex;align-items:center;justify-content:space-between}.research-log-header h3{margin:0;font-size:18px;font-weight:600;color:#333}.close-btn{background:none;border:none;font-size:28px;color:#999;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.close-btn:hover{background:#f5f5f5;color:#333}.research-log-content{flex:1;overflow-y:auto;padding:20px;background:#fafafa}.log-entry{display:flex;gap:12px;margin-bottom:16px;padding:12px;background:#fff;border-radius:8px;border-left:3px solid var(--step-color, #888);box-shadow:0 2px 4px #0000000d;animation:fadeInEntry .3s ease-out}@keyframes fadeInEntry{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.log-timestamp{font-size:11px;color:#999;font-family:Monaco,Menlo,monospace;white-space:nowrap;padding-top:2px}.log-icon{font-size:18px;flex-shrink:0}.log-details{flex:1;min-width:0}.log-label{font-weight:600;font-size:14px;color:#333;margin-bottom:4px}.log-detail{font-size:13px;color:#666;margin-bottom:6px}.log-metadata{margin-top:8px;padding-top:8px;border-top:1px solid #f0f0f0}.metadata-item{font-size:12px;color:#666;margin-bottom:4px;font-family:Monaco,Menlo,monospace}.metadata-key{color:#999;font-weight:500}.metadata-value{color:var(--step-color, #333);font-weight:500}.research-log-footer{padding:16px 20px;border-top:1px solid #e0e0e0;background:#fff}.log-summary{font-size:13px;color:#666;text-align:center}.research-log-content::-webkit-scrollbar{width:8px}.research-log-content::-webkit-scrollbar-track{background:#f0f0f0}.research-log-content::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}.research-log-content::-webkit-scrollbar-thumb:hover{background:#aaa}.conversation-history{display:flex;flex-direction:column;height:100%;background:#f8f9fa;border-right:1px solid #e0e0e0;width:280px;overflow:hidden}.conversation-history-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #e0e0e0;background:#fff}.conversation-history-header h3{margin:0;font-size:1.1rem;font-weight:600;color:#333}.new-conversation-btn{background:#007bff;color:#fff;border:none;border-radius:50%;width:32px;height:32px;font-size:1.5rem;line-height:1;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center}.new-conversation-btn:hover{background:#0056b3}.conversation-history-loading,.conversation-history-error,.conversation-history-empty{padding:1rem;text-align:center;color:#666;font-size:.9rem}.conversation-history-error{color:#dc3545}.conversation-list{flex:1;overflow-y:auto;padding:.5rem}.conversation-item{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:.75rem;margin-bottom:.5rem;cursor:pointer;transition:all .2s}.conversation-item:hover{border-color:#007bff;box-shadow:0 2px 4px #0000001a}.conversation-item.active{border-color:#007bff;background:#e7f3ff}.conversation-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.conversation-title{font-weight:500;font-size:.9rem;color:#333;flex:1;margin-right:.5rem;line-height:1.3}.conversation-delete{background:none;border:none;color:#999;font-size:1.5rem;line-height:1;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;transition:color .2s}.conversation-delete:hover{color:#dc3545}.conversation-meta{display:flex;gap:.75rem;font-size:.75rem;color:#666;margin-bottom:.5rem}.conversation-date{font-weight:500}.conversation-count{color:#999}.conversation-preview{font-size:.8rem;color:#666;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}*{box-sizing:border-box;margin:0;padding:0}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;background:#f5f5f5;color:#333}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:#fff;border-bottom:1px solid #e0e0e0;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.app-header h1{font-size:1.5rem;font-weight:600;color:#1a1a1a}.app-header nav{display:flex;gap:.5rem}.app-header nav a,.app-header nav button{padding:.5rem 1rem;background:none;border:none;cursor:pointer;font-size:1rem;color:#666;border-radius:4px;transition:all .2s;text-decoration:none}.app-header nav a:hover,.app-header nav button:hover{background:#f0f0f0;color:#333}.app-header nav a.active,.app-header nav button.active{background:#007bff;color:#fff}.app-main{flex:1;padding:2rem;max-width:1400px;width:100%;margin:0 auto}.chat-interface-container{display:flex;height:calc(100vh - 120px);background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.chat-interface{display:flex;flex-direction:column;flex:1;min-width:0}.chat-header{display:flex;align-items:center;gap:1rem;padding:1rem 2rem;border-bottom:1px solid #e0e0e0;background:#fff}.chat-header h2{font-size:1.25rem;font-weight:600;margin:0}.toggle-history-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:.25rem .5rem;transition:color .2s}.toggle-history-btn:hover{color:#333}.chat-messages{flex:1;overflow-y:auto;padding:2rem}.thesis-context-card{background:linear-gradient(135deg,#fefce8,#fef9c3);border:1px solid #eab308;border-left:4px solid #eab308;border-radius:8px;padding:1rem 1.25rem;margin-bottom:1.5rem}.thesis-context-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.thesis-context-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#a16207}.thesis-context-close{background:none;border:none;font-size:1.25rem;color:#a16207;cursor:pointer;padding:0;line-height:1;opacity:.7}.thesis-context-close:hover{opacity:1}.thesis-context-title{font-size:1.1rem;font-weight:600;color:#1a1a1a;margin-bottom:.5rem}.thesis-context-content{font-size:.9rem;color:#374151;line-height:1.5;margin-bottom:.75rem}.thesis-context-meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:.8rem;margin-bottom:.5rem}.thesis-context-source{color:#6b7280}.thesis-context-confidence{padding:.125rem .5rem;border-radius:9999px;font-weight:500;font-size:.75rem}.thesis-context-confidence.confidence-high{background:#dcfce7;color:#166534}.thesis-context-confidence.confidence-medium{background:#fef3c7;color:#92400e}.thesis-context-confidence.confidence-low{background:#fee2e2;color:#991b1b}.thesis-context-horizon{color:#6b7280;font-style:italic}.thesis-context-sectors{display:flex;flex-wrap:wrap;gap:.375rem}.thesis-context-sector{background:#f3f4f6;color:#4b5563;padding:.125rem .5rem;border-radius:4px;font-size:.75rem}.message{margin-bottom:1.5rem}.message-label{font-size:.875rem;font-weight:600;color:#666;margin-bottom:.5rem}.message-content{background:#f8f9fa;padding:1rem;border-radius:8px;line-height:1.6}.message-user .message-content{background:#e3f2fd}.message-assistant .message-content{background:#f8f9fa}.message-content h1,.message-content h2,.message-content h3{margin-top:1rem;margin-bottom:.5rem}.message-content p{margin-bottom:.75rem}.message-content code{background:#f0f0f0;padding:.2rem .4rem;border-radius:3px;font-family:Courier New,monospace}.message-loading{text-align:center;color:#666;font-style:italic;padding:1rem}.markdown-content{margin-left:1rem;margin-right:1rem}.message-user-content{position:relative;display:inline-block;max-width:100%;padding-right:2rem}.message-edit-btn{position:absolute;right:0;top:50%;transform:translateY(-50%);background:none;border:none;color:#999;cursor:pointer;font-size:1rem;padding:.25rem .5rem;opacity:0;transition:opacity .2s,color .2s}.message-user .message-content:hover .message-edit-btn{opacity:1}.message-edit-btn:hover{color:#007bff}.message-edit-btn:disabled{cursor:not-allowed;opacity:.3}.message-edit-container{width:100%}.message-edit-input{width:100%;min-height:80px;padding:.75rem;border:2px solid #007bff;border-radius:8px;font-size:1rem;font-family:inherit;line-height:1.5;resize:vertical;outline:none;background:#fff;box-shadow:0 2px 8px #007bff1a}.message-edit-input:focus{border-color:#0056b3;box-shadow:0 2px 12px #007bff33}.message-edit-actions{display:flex;gap:.5rem;margin-top:.5rem;justify-content:flex-end}.edit-cancel-btn{padding:.5rem 1rem;background:#fff;color:#666;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s}.edit-cancel-btn:hover{background:#f5f5f5;border-color:#ccc;color:#333}.edit-submit-btn{padding:.5rem 1.25rem;background:#007bff;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;transition:background .2s}.edit-submit-btn:hover:not(:disabled){background:#0056b3}.edit-submit-btn:disabled{background:#ccc;cursor:not-allowed}.empty-state{text-align:center;padding:4rem 2rem;color:#666}.empty-state h2{margin-bottom:1rem;color:#333}.empty-state .hint{color:#999;font-size:.875rem;margin-top:1rem}.error-message{background:#ffebee;color:#c62828;padding:1rem;border-radius:4px;margin:1rem 0}.chat-input-container{border-top:1px solid #e0e0e0;padding:1rem 2rem}.action-buttons{display:flex;align-items:center;margin-bottom:.75rem;gap:.75rem}.action-buttons-left{display:flex;gap:.5rem;align-items:center}.action-buttons-right{display:flex;gap:.5rem;align-items:center;margin-left:auto}.citations-toggle{padding:.5rem 1rem;background:#e3f2fd;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;color:#1976d2;transition:background .2s}.citations-toggle:hover{background:#bbdefb}.query-mode-selector{margin-bottom:.75rem;display:flex;align-items:center;gap:.75rem}.mode-label{font-size:.875rem;font-weight:500;color:#666}.mode-buttons{display:flex;gap:.5rem;background:#f5f5f5;padding:.25rem;border-radius:6px}.mode-button{padding:.4rem 1rem;background:transparent;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;color:#666;transition:all .2s}.mode-button:hover:not(:disabled){color:#333;background:#007bff1a}.mode-button.active{background:#007bff;color:#fff;box-shadow:0 1px 3px #007bff4d}.mode-button:disabled{cursor:not-allowed;opacity:.5}.chat-input-form{display:flex;gap:.75rem}.chat-input{flex:1;padding:.75rem 1rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;outline:none}.chat-input:focus{border-color:#007bff}.chat-input:disabled{background:#f5f5f5;cursor:not-allowed}.chat-input-form button{padding:.75rem 1.5rem;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500;transition:background .2s}.chat-input-form button:hover:not(:disabled){background:#0056b3}.chat-input-form button:disabled{background:#ccc;cursor:not-allowed}.chat-input-form .stop-button{background:#dc3545}.chat-input-form .stop-button:hover{background:#c82333}.citations-drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:flex-end;z-index:1000}.citations-drawer{background:#fff;width:500px;max-width:100%;height:100vh;overflow-y:auto;box-shadow:-2px 0 8px #0003}.citations-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e0e0e0;position:sticky;top:0;background:#fff;z-index:10}.citations-header h2{font-size:1.25rem;font-weight:600}.close-button{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:.25rem .5rem}.close-button:hover{color:#333}.citations-list{padding:1rem}.citation-item{display:flex;gap:1rem;padding:1rem;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:1rem}.citation-index{font-weight:600;color:#007bff;flex-shrink:0}.citation-content{flex:1}.citation-content h3{font-size:1rem;margin-bottom:.5rem}.citation-content h3 a{color:#007bff;text-decoration:none}.citation-content h3 a:hover{text-decoration:underline}.citation-heading{font-size:.875rem;color:#666;margin-bottom:.5rem}.citation-excerpt{font-size:.875rem;color:#666;line-height:1.5;margin-bottom:.5rem}.citation-date{font-size:.75rem;color:#999}.source-manager{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:2rem}.source-manager-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.source-manager-header h2{font-size:1.5rem;font-weight:600}.source-form{background:#f8f9fa;padding:1.5rem;border-radius:8px;margin-bottom:2rem;display:flex;flex-direction:column;gap:1rem}.source-form input,.source-form select{padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;outline:none}.source-form input:focus,.source-form select:focus{border-color:#007bff}.notification-settings{margin-top:.5rem;padding:1rem;background:#fff;border:1px solid #e0e0e0;border-radius:6px}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9375rem;color:#333;margin-bottom:.5rem}.checkbox-label:last-child{margin-bottom:0}.checkbox-label input[type=checkbox]{width:18px;height:18px;margin:0;cursor:pointer;accent-color:#007bff}.checkbox-label.sub-option{margin-left:1.5rem;font-size:.875rem;color:#666}.notification-settings .email-input{margin-top:.75rem;margin-bottom:.5rem}.email-list{margin-top:.75rem}.email-row{display:flex;gap:.5rem;margin-bottom:.5rem}.email-row .email-input{flex:1;margin:0}.remove-email-btn{padding:.5rem .75rem;background:#f5f5f5;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.875rem;color:#666}.remove-email-btn:hover{background:#fee;border-color:#fcc;color:#c00}.add-email-btn{padding:.5rem 1rem;background:none;border:1px dashed #ccc;border-radius:4px;cursor:pointer;font-size:.875rem;color:#666;width:100%;margin-top:.25rem}.add-email-btn:hover{border-color:#007bff;color:#007bff}.notification-badge{font-size:.9rem;margin-left:.5rem;opacity:.8}.source-list{display:flex;flex-direction:column;gap:1rem}.source-item{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border:1px solid #e0e0e0;border-radius:8px;transition:box-shadow .2s}.source-item:hover{box-shadow:0 2px 8px #0000001a}.source-info{flex:1}.source-info h3{font-size:1.125rem;margin-bottom:.5rem}.source-info h3.clickable{cursor:pointer}.source-info h3.clickable:hover{color:#2563eb}.source-url{color:#666;font-size:.875rem;margin-bottom:.5rem;text-decoration:none;display:block}.source-meta{display:flex;gap:1rem;font-size:.875rem;color:#666;margin-bottom:.5rem;flex-wrap:wrap}.source-type{text-transform:uppercase;font-weight:600}.source-tags{display:flex;gap:.5rem;flex-wrap:wrap}.tag{background:#e3f2fd;color:#1976d2;padding:.25rem .75rem;border-radius:12px;font-size:.75rem}.badge{background:#f0f0f0;padding:.25rem .5rem;border-radius:4px}.status-badge{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.status-success{background:#c8e6c9;color:#2e7d32}.status-error{background:#ffcdd2;color:#c62828}.source-actions{display:flex;gap:.5rem}.primary-button{padding:.75rem 1.5rem;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:500;transition:background .2s}.primary-button:hover{background:#0056b3}.secondary-button{padding:.5rem 1rem;background:#6c757d;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;transition:background .2s}.secondary-button:hover{background:#545b62}.danger-button{padding:.5rem 1rem;background:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;transition:background .2s}.danger-button:hover{background:#c82333}.loading{text-align:center;padding:2rem;color:#666;font-style:italic}.notification{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-radius:8px;margin-bottom:1rem;font-size:.875rem;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.notification-info{background:#e3f2fd;color:#1976d2;border:1px solid #90caf9}.notification-success{background:#c8e6c9;color:#2e7d32;border:1px solid #81c784}.notification-error{background:#ffcdd2;color:#c62828;border:1px solid #ef5350}.notification-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:inherit;opacity:.7;padding:0;margin-left:1rem;line-height:1;transition:opacity .2s}.notification-close:hover{opacity:1}.processing-indicator{display:flex;align-items:center;gap:.5rem;color:#1976d2;font-size:.875rem;font-weight:500;padding:.5rem 1rem}.processing-spinner{width:16px;height:16px;border:2px solid #e3f2fd;border-top-color:#1976d2;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.documents-drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:flex-end;z-index:1000}.documents-drawer{background:#fff;width:500px;max-width:100%;height:100vh;overflow-y:auto;box-shadow:-2px 0 8px #0003}.documents-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.5rem;border-bottom:1px solid #e0e0e0;position:sticky;top:0;background:#fff;z-index:10}.documents-header h2{font-size:1.25rem;font-weight:600;margin-bottom:.25rem}.documents-source-name{font-size:.875rem;color:#666}.documents-list{padding:1rem}.document-item{padding:1rem;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:1rem}.document-item:hover{border-color:#ccc}.document-title{font-size:1rem;margin-bottom:.5rem;line-height:1.4}.document-title a{color:#007bff;text-decoration:none}.document-title a:hover{text-decoration:underline}.document-author{font-size:.875rem;color:#666;margin-bottom:.5rem}.document-meta{display:flex;gap:1rem;font-size:.75rem;color:#999}.source-docs.clickable{cursor:pointer;color:#007bff}.source-docs.clickable:hover{text-decoration:underline}.feed{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:2rem}.feed-header{margin-bottom:2rem;border-bottom:2px solid #007bff;padding-bottom:1rem}.feed-header h2{font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.feed-summary{color:#666;font-size:.875rem}.new-content-banner{width:100%;padding:.75rem 1rem;background:#e3f2fd;border:1px solid #90caf9;border-radius:8px;color:#1976d2;font-size:.9375rem;font-weight:500;cursor:pointer;margin-bottom:1.5rem;transition:background .2s,transform .1s}.new-content-banner:hover{background:#bbdefb}.new-content-banner:active{transform:scale(.99)}.feed-content{display:flex;flex-direction:column;gap:1rem}.feed-document{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1.25rem}.feed-document-header{margin-bottom:1rem}.feed-document-source{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.feed-document-source .source-name{font-size:.875rem;font-weight:600;color:#555}.feed-document-header h4{font-size:1.0625rem;margin:0 0 .5rem;line-height:1.4}.feed-document-header h4 a{color:#007bff;text-decoration:none}.feed-document-header h4 a:hover{text-decoration:underline}.feed-document-meta{display:flex;align-items:center;flex-wrap:wrap}.feed-document-author,.feed-document-date{font-size:.8125rem;color:#666;margin-right:1rem}.feed-no-theses{color:#999;font-style:italic;font-size:.875rem}.feed-theses{display:flex;flex-direction:column;gap:.75rem}.feed-thesis{background:#f8f9fa;border-left:4px solid #ffc107;border-radius:4px;padding:1rem}.feed-thesis-clickable{cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease}.feed-thesis-clickable:hover{background:#eef1f4;box-shadow:0 2px 8px #00000014}.feed-thesis h5{font-size:.9375rem;font-weight:600;margin:0 0 .5rem;color:#1a1a1a}.thesis-content{font-size:.875rem;color:#333;line-height:1.5;margin:0 0 .75rem}.thesis-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.75rem;color:#666}.confidence-badge{display:inline-block;color:#fff;padding:.125rem .5rem;border-radius:3px;font-weight:500}.time-horizon,.sectors{color:#666}.companies{font-size:.75rem;color:#888;margin-top:.5rem}.login-container{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 120px);padding:2rem}.login-card{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:3rem;text-align:center;max-width:400px;width:100%}.login-card h1{font-size:1.75rem;font-weight:600;margin-bottom:.5rem;color:#1a1a1a}.login-subtitle{color:#666;margin-bottom:2rem}.login-error{background:#ffebee;color:#c62828;padding:1rem;border-radius:8px;margin-bottom:1.5rem;font-size:.875rem}.login-button-container{display:flex;justify-content:center;margin-bottom:1.5rem}.login-note{font-size:.75rem;color:#999}.user-menu{display:flex;align-items:center;gap:.75rem}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.user-name{font-size:.875rem;color:#333;font-weight:500}.logout-button{padding:.5rem 1rem;background:none;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.875rem;color:#666;transition:all .2s}.logout-button:hover{background:#f5f5f5;border-color:#ccc;color:#333}.loading-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100vh - 120px);gap:1rem}.loading-spinner{width:40px;height:40px;border:3px solid #f0f0f0;border-top-color:#007bff;border-radius:50%;animation:spin .8s linear infinite}@media (max-width: 768px){.app-header{flex-direction:column;gap:1rem}.app-main{padding:1rem}.citations-drawer,.documents-drawer{width:100%}.source-item{flex-direction:column;align-items:flex-start;gap:1rem}.source-actions{width:100%}.source-actions button{flex:1}}
