:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}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-color:#0a0a0a;color:#fff;min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column}.header{background-color:#111;border-bottom:1px solid #222222;padding:1.5rem 2rem;display:flex;justify-content:space-between;align-items:center}.header h1{font-size:1.5rem;font-weight:600;color:#fff}.header-nav{display:flex;align-items:center;gap:1rem}.user-info{color:#999;font-size:.875rem;margin-right:1rem}.nav-button{background-color:transparent;color:#999;border:1px solid #333333;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.5rem}.nav-button:hover{color:#fff;border-color:#555}.main-container{flex:1;max-width:1200px;margin:0 auto;padding:2rem;width:100%}.upload-section{background-color:#1a1a1a;border:2px solid #333333;border-radius:12px;padding:3rem;margin-bottom:2rem;box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003}.dropzone{border:2px dashed #444444;border-radius:8px;padding:3rem;text-align:center;cursor:pointer;transition:all .3s ease;background-color:#111;box-shadow:inset 0 2px 4px #0000004d}.dropzone:hover{border-color:#666;background-color:#1a1a1a}.dropzone.active{border-color:#3b82f6;background-color:#1a1a1a}.upload-icon{margin-bottom:1rem;color:#666}.upload-text{color:#999;margin-bottom:.5rem}.upload-hint{color:#666;font-size:.875rem}.file-info{margin-top:2rem;padding:1rem;background-color:#0a0a0a;border-radius:8px;display:flex;align-items:center;justify-content:space-between}.file-details{display:flex;align-items:center;gap:1rem}.file-name{color:#fff;font-weight:500}.file-size{color:#666;font-size:.875rem}.submit-button{background-color:#3b82f6;color:#fff;border:none;padding:.75rem 2rem;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s;margin-top:2rem;width:100%}.submit-button:hover:not(:disabled){background-color:#2563eb}.submit-button:disabled{background-color:#1e293b;cursor:not-allowed;opacity:.6}.view-text-button{background-color:transparent;color:#3b82f6;border:1px solid #3b82f6;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center}.view-text-button:hover:not(:disabled){background-color:#3b82f6;color:#fff}.view-text-button:disabled{opacity:.5;cursor:not-allowed}.processing-section{background-color:#1a1a1a;border:2px solid #333333;border-radius:12px;padding:3rem;text-align:center;box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003}.spinner{width:60px;height:60px;margin:0 auto 2rem;position:relative}.spinner:before{content:"";position:absolute;width:100%;height:100%;border-radius:50%;border:3px solid #1a1a1a}.spinner:after{content:"";position:absolute;width:100%;height:100%;border-radius:50%;border:3px solid transparent;border-top-color:#3b82f6;border-right-color:#3b82f6;animation:spin 1.2s cubic-bezier(.5,0,.5,1) infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.processing-text{color:#999;margin-bottom:.5rem}.processing-hint{color:#666;font-size:.875rem;margin-bottom:2rem}.processing-tips{background-color:#0a0a0a;border:1px solid #222222;border-radius:8px;padding:1.5rem;max-width:400px;margin:0 auto;text-align:left}.processing-tips p{color:#999;font-size:.875rem;font-weight:500;margin-bottom:.75rem}.processing-tips ul{list-style:none;padding:0;margin:0}.processing-tips li{color:#666;font-size:.813rem;padding-left:1.5rem;position:relative;margin-bottom:.5rem;line-height:1.5}.processing-tips li:before{content:"•";color:#3b82f6;position:absolute;left:.5rem}.results-section{background-color:#1a1a1a;border:2px solid #333333;border-radius:12px;padding:2rem;box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid #222222}.results-title{font-size:1.25rem;font-weight:600}.reset-button{background-color:transparent;color:#3b82f6;border:1px solid #3b82f6;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s}.reset-button:hover{background-color:#3b82f6;color:#fff}.review-content{background-color:#0a0a0a;border-radius:8px;padding:2rem;line-height:1.6;color:#e5e5e5;font-size:.875rem;max-height:600px;overflow-y:auto}.markdown-content{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.markdown-content h1{font-size:1.75rem;font-weight:700;margin:2rem 0 1rem;color:#fff;border-bottom:1px solid #333333;padding-bottom:.5rem}.markdown-content h2{font-size:1.4rem;font-weight:600;margin:1.5rem 0 .75rem;color:#fff}.markdown-content h3{font-size:1.2rem;font-weight:600;margin:1.25rem 0 .5rem;color:#e5e5e5}.markdown-content h4{font-size:1.1rem;font-weight:500;margin:1rem 0 .5rem;color:#e5e5e5}.markdown-content p{margin:.75rem 0;line-height:1.7}.markdown-content ul,.markdown-content ol{margin:.75rem 0;padding-left:2rem}.markdown-content li{margin:.35rem 0;line-height:1.6}.markdown-content strong{font-weight:600;color:#fff}.markdown-content em{font-style:italic;color:#ccc}.markdown-content code{background-color:#1a1a1a;color:#3b82f6;padding:.125rem .375rem;border-radius:3px;font-family:Monaco,Consolas,monospace;font-size:.85em}.markdown-content pre{background-color:#1a1a1a;border:1px solid #333333;border-radius:6px;padding:1rem;overflow-x:auto;margin:1rem 0}.markdown-content pre code{background-color:transparent;padding:0;color:inherit}.markdown-content blockquote{border-left:4px solid #3b82f6;margin:1rem 0;padding-left:1rem;color:#999;font-style:italic}.markdown-content a{color:#3b82f6;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s}.markdown-content a:hover{border-bottom-color:#3b82f6}.markdown-content hr{margin:2rem 0;border:none;border-top:1px solid #333333}.markdown-content table{width:100%;border-collapse:collapse;margin:1rem 0}.markdown-content th,.markdown-content td{border:1px solid #333333;padding:.5rem 1rem;text-align:left}.markdown-content th{background-color:#1a1a1a;font-weight:600;color:#fff}.markdown-content tr:nth-child(2n){background-color:#0f0f0f}.review-content::-webkit-scrollbar{width:8px}.review-content::-webkit-scrollbar-track{background:#0a0a0a}.review-content::-webkit-scrollbar-thumb{background:#333;border-radius:4px}.review-content::-webkit-scrollbar-thumb:hover{background:#444}.error-message{background-color:#7f1d1d;color:#fecaca;padding:1rem;border-radius:6px;margin-top:1rem;display:flex;align-items:flex-start;gap:.5rem}.error-content{flex:1}.error-content p{margin:0 0 .5rem}.retry-button{background-color:transparent;color:#fecaca;border:1px solid #fecaca;padding:.375rem .75rem;border-radius:4px;font-size:.875rem;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.375rem;margin-top:.5rem}.retry-button:hover:not(:disabled){background-color:#fecaca;color:#7f1d1d}.retry-button:disabled{opacity:.5;cursor:not-allowed}.repo-selector{margin-top:1.5rem;margin-bottom:1.5rem}.repo-label{display:block;color:#999;font-size:.875rem;margin-bottom:.5rem;font-weight:500}.repo-dropdown{width:100%;padding:.75rem 1rem;background-color:#0a0a0a;border:1px solid #333333;border-radius:6px;color:#fff;font-size:1rem;cursor:pointer;transition:all .2s}.repo-dropdown:hover:not(:disabled){border-color:#3b82f6}.repo-dropdown:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.repo-dropdown:disabled{opacity:.6;cursor:not-allowed}.metadata{display:flex;gap:2rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #222222}.metadata-item{display:flex;flex-direction:column;gap:.25rem}.metadata-label{color:#666;font-size:.75rem;text-transform:uppercase}.metadata-value{color:#e5e5e5;font-size:.875rem}.extracted-text-button{display:inline-flex;align-items:center;background-color:#1a1a1a;color:#fff;border:1px solid #333333;padding:.75rem 1.5rem;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;margin:1.5rem 0}.extracted-text-button:hover{background-color:#2a2a2a;border-color:#444}.modal-overlay{position:fixed;inset:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.modal-content{background-color:#1a1a1a;border:2px solid #444444;border-radius:12px;width:100%;max-width:800px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 25px -5px #000000b3,0 4px 6px -1px #00000080}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #333333}.modal-header h2{font-size:1.25rem;font-weight:600;color:#fff}.modal-close-button{background:none;border:none;color:#666;cursor:pointer;padding:.5rem;border-radius:8px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.modal-close-button:hover{background-color:#1a1a1a;color:#fff}.modal-body{flex:1;overflow-y:auto;padding:1.5rem}.extracted-text-content{font-family:Courier New,Courier,monospace;font-size:.875rem;line-height:1.6;color:#ccc;white-space:pre-wrap;word-wrap:break-word;background-color:#0a0a0a;padding:1.5rem;border-radius:8px;border:1px solid #222222}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:#0a0a0a}.login-card{background-color:#111;border:1px solid #222222;border-radius:12px;padding:3rem;width:100%;max-width:400px}.login-header{text-align:center;margin-bottom:2rem}.login-header svg{color:#3b82f6;margin-bottom:1rem}.login-header h2{font-size:1.5rem;font-weight:600;color:#fff}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{color:#999;font-size:.875rem;font-weight:500}.form-group input{padding:.75rem;background-color:#0a0a0a;border:1px solid #333333;border-radius:6px;color:#fff;font-size:1rem;transition:all .2s}.form-group input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.history-container{min-height:100vh;background-color:#0a0a0a;padding:2rem}.history-header{max-width:1200px;margin:0 auto 2rem;display:flex;justify-content:space-between;align-items:center}.history-header h1{font-size:2rem;font-weight:600;color:#fff}.back-button{background-color:transparent;color:#3b82f6;border:1px solid #3b82f6;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s}.back-button:hover{background-color:#3b82f6;color:#fff}.loading-section{text-align:center;padding:3rem}.empty-state{background-color:#1a1a1a;border:2px solid #333333;border-radius:12px;padding:4rem;text-align:center;max-width:600px;margin:0 auto;box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003}.empty-state svg{color:#666;margin-bottom:1rem}.empty-state p{color:#999;margin-bottom:2rem}.primary-button{background-color:#3b82f6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;font-size:1rem;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.5rem}.primary-button:hover{background-color:#2563eb}.reviews-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem;max-width:1200px;margin:0 auto}.review-card{background-color:#1a1a1a;border:2px solid #333333;border-radius:8px;padding:1.5rem;transition:all .2s;box-shadow:0 2px 4px #0000004d}.review-card:hover{border-color:#444;box-shadow:0 4px 8px #0006;transform:translateY(-2px)}.review-card-header{display:flex;gap:1rem;margin-bottom:1rem}.review-info h3{color:#fff;font-size:1rem;font-weight:600;margin-bottom:.25rem}.review-repo{color:#666;font-size:.875rem}.review-card-meta{display:flex;align-items:center;gap:.5rem;color:#999;font-size:.875rem;margin-bottom:1rem}.view-button{background-color:transparent;color:#3b82f6;border:1px solid #3b82f6;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.5rem;width:100%;justify-content:center}.review-modal{max-width:900px;max-height:80vh}.review-meta-section{background-color:#0a0a0a;border-radius:6px;padding:1rem;margin-bottom:1.5rem}.review-meta-section p{color:#999;font-size:.875rem;margin-bottom:.5rem}.review-meta-section p:last-child{margin-bottom:0}.admin-container{min-height:100vh;background-color:#0a0a0a;padding:2rem}.admin-header{max-width:1200px;margin:0 auto 2rem;display:flex;justify-content:space-between;align-items:center}.admin-header h1{font-size:2rem;font-weight:600;color:#fff}.admin-actions{max-width:1200px;margin:0 auto 2rem}.success-message{background-color:#065f46;color:#10b981;padding:1rem;border-radius:6px;margin:1rem auto;max-width:1200px;display:flex;align-items:center;gap:.5rem}.users-table{background-color:#1a1a1a;border:2px solid #333333;border-radius:8px;padding:1.5rem;max-width:1200px;margin:0 auto;overflow-x:auto;box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003}.users-table h2{color:#fff;font-size:1.25rem;font-weight:600;margin-bottom:1rem}.users-table table{width:100%;border-collapse:collapse}.users-table th{background-color:#0a0a0a;color:#999;font-size:.875rem;font-weight:500;text-align:left;padding:.75rem;border-bottom:1px solid #222222}.users-table td{color:#e5e5e5;font-size:.875rem;padding:.75rem;border-bottom:1px solid #222222}.users-table tr:last-child td{border-bottom:none}.role-badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500}.role-badge.admin{background-color:#7c3aed20;color:#a78bfa}.role-badge.user{background-color:#3b82f620;color:#60a5fa}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500}.status-badge.active{background-color:#10b98120;color:#10b981}.status-badge.inactive{background-color:#ef444420;color:#ef4444}.create-user-modal{max-width:500px}.create-user-form{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1rem}.cancel-button{background-color:transparent;color:#999;border:1px solid #333333;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s}.cancel-button:hover{border-color:#555;color:#fff}.loading-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:#0a0a0a}.divider-section{display:flex;align-items:center;margin:2rem 0;gap:1rem}.divider-line{flex:1;height:1px;background-color:#333}.divider-text{color:#666;font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.google-docs-section{margin-bottom:1.5rem}.google-docs-label{display:block;color:#999;font-size:.875rem;margin-bottom:.5rem;font-weight:500}.google-docs-input{width:100%;padding:.75rem 1rem;background-color:#0a0a0a;border:1px solid #333333;border-radius:8px;color:#fff;font-size:1rem;transition:all .2s ease}.google-docs-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.google-docs-input:disabled{opacity:.5;cursor:not-allowed}.google-docs-input::placeholder{color:#666}.google-docs-hint{color:#666;font-size:.75rem;margin-top:.5rem}.app-layout{min-height:100vh;display:flex;background-color:#0a0a0a}.sidebar{width:260px;background-color:#111;border-right:1px solid #222222;display:flex;flex-direction:column}.sidebar-header{padding:1.5rem;border-bottom:1px solid #222222}.sidebar-header h1{color:#fff;font-size:1.5rem;font-weight:600}.sidebar-nav{flex:1;padding:1rem 0}.nav-link{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;color:#999;text-decoration:none;font-size:.875rem;font-weight:500;transition:all .2s ease;border-right:2px solid transparent}.nav-link:hover{background-color:#1a1a1a;color:#fff}.nav-link.active{background-color:#1a1a1a;color:#3b82f6;border-right-color:#3b82f6}.sidebar-footer{padding:1.5rem;border-top:1px solid #222222}.username{color:#999;font-size:.875rem;display:block;margin-bottom:1rem}.logout-button{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem;background:none;border:1px solid #333333;border-radius:6px;color:#999;font-size:.875rem;cursor:pointer;transition:all .2s ease}.logout-button:hover{background-color:#1a1a1a;color:#fff;border-color:#444}.main-content{flex:1;overflow-y:auto}.ask-code-container,.prd-review-container{padding:2rem;max-width:1000px;margin:0 auto}.page-header{margin-bottom:2rem}.page-header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem}.page-header h2{color:#fff;font-size:2rem;font-weight:600;margin-bottom:.5rem}.page-subtitle{color:#999;font-size:1rem}.history-cta-button{background:none;border:1px solid #3b82f6;color:#3b82f6;padding:.75rem 1.5rem;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;white-space:nowrap}.history-cta-button:hover{background-color:#3b82f6;color:#fff}.history-cta-button:disabled{opacity:.5;cursor:not-allowed}.history-cta-button:disabled:hover{background:none;color:#3b82f6}.ask-code-form{background-color:#1a1a1a;border:2px solid #333333;border-radius:12px;padding:2rem;margin-bottom:2rem;box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003}.form-label{color:#999;font-size:.875rem;font-weight:500;margin-bottom:.5rem;display:block}.question-textarea{width:100%;min-height:120px;padding:1rem;background-color:#0a0a0a;border:1px solid #333333;border-radius:8px;color:#fff;font-size:1rem;font-family:inherit;resize:vertical;transition:all .2s ease}.question-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.question-textarea::placeholder{color:#666}.answer-content{background-color:#1a1a1a;border:2px solid #333333;border-radius:12px;padding:2rem;box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003}.history-table{background-color:#1a1a1a;border:2px solid #333333;border-radius:12px;overflow:hidden;box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #0003}.history-table table{width:100%;border-collapse:collapse}.history-table th{background-color:#0a0a0a;color:#999;font-size:.875rem;font-weight:600;text-align:left;padding:1rem;border-bottom:1px solid #222222}.history-table td{color:#e5e5e5;font-size:.875rem;padding:1rem;border-bottom:1px solid #1a1a1a}.history-table tr:last-child td{border-bottom:none}.history-table tr:hover{background-color:#1a1a1a}.date-cell{font-family:monospace;color:#999;white-space:nowrap}.question-cell{max-width:400px}.repo-cell{font-family:monospace;color:#3b82f6}.actions-cell{width:80px;text-align:center}.view-button{background:none;border:1px solid #3b82f6;color:#3b82f6;padding:.5rem;border-radius:6px;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center}.view-button:hover{background-color:#3b82f6;color:#fff}.modal-content.large{max-width:1000px;max-height:90vh}.question-details{display:flex;flex-direction:column;gap:1.5rem}.detail-group{background-color:#111;border:2px solid #333333;border-radius:8px;padding:1rem;box-shadow:inset 0 2px 4px #0000004d}.detail-group label{color:#999;font-size:.875rem;font-weight:600;margin-bottom:.5rem;display:block}.question-text{color:#fff;font-size:1rem;line-height:1.6;margin:0}.header-actions{display:flex;gap:1rem;align-items:center}.refresh-button{background:none;border:1px solid #333333;color:#999;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.refresh-button:hover{border-color:#444;color:#fff}.empty-icon{color:#666;margin-bottom:1rem}.status-badge.completed{background-color:#10b98120;color:#10b981}@media (max-width: 768px){.app-layout{flex-direction:column}.sidebar{width:100%;height:auto}.sidebar-nav{display:flex;overflow-x:auto;padding:0}.nav-link{border-right:none;border-bottom:2px solid transparent;white-space:nowrap}.nav-link.active{border-right:none;border-bottom-color:#3b82f6}.sidebar-footer{display:none}.ask-code-container,.prd-review-container{padding:1rem}.modal-content{margin:1rem;max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem)}.page-header-content{flex-direction:column;align-items:flex-start;gap:1rem}.history-cta-button{align-self:flex-end}}
