: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}}.voice-interface{max-width:1200px;margin:0 auto;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.header{text-align:center;margin-bottom:30px}.header h1{color:#2c3e50;margin-bottom:10px;font-size:2.5rem}.connection-status{padding:8px 16px;border-radius:20px;font-weight:500;display:inline-block}.connection-status.connected{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.connection-status.disconnected{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.header-status{display:flex;justify-content:center;align-items:center;gap:15px;flex-wrap:wrap;margin-top:15px}.api-key-status{padding:10px 16px;border-radius:20px;font-weight:500;display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:all .3s ease;border:1px solid}.api-key-status:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.api-key-status .status-content{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.api-key-status .status-main{font-size:.95rem;font-weight:600}.api-key-status .status-details{display:flex;align-items:center;gap:6px;font-size:.85rem;opacity:.95}.quota-separator{opacity:.6;margin:0 2px}.api-key-status.active{background-color:#d4edda;color:#155724;border-color:#c3e6cb}.api-key-status.quota_exceeded{background-color:#fff3cd;color:#856404;border-color:#ffeaa7}.api-key-status.invalid,.api-key-status.missing{background-color:#f8d7da;color:#721c24;border-color:#f5c6cb}.api-key-status.error{background-color:#fff3cd;color:#856404;border-color:#ffeaa7}.masked-key-display{font-family:Monaco,Menlo,monospace;font-size:.85rem;opacity:.9;font-weight:400}.quota-display{font-size:.85rem;opacity:.9;font-weight:500;margin-left:4px}.api-key-modal{max-width:600px}.api-key-status-details{margin-bottom:20px}.status-badge{display:inline-block;padding:8px 16px;border-radius:20px;font-weight:600;font-size:.9rem;margin-bottom:15px;text-transform:uppercase;letter-spacing:.5px}.status-badge.active{background-color:#d4edda;color:#155724}.status-badge.quota_exceeded{background-color:#fff3cd;color:#856404}.status-badge.invalid,.status-badge.missing{background-color:#f8d7da;color:#721c24}.status-badge.error{background-color:#fff3cd;color:#856404}.status-message{color:#495057;font-size:.95rem;line-height:1.5;margin-bottom:15px}.current-key{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:12px;margin-bottom:15px}.current-key strong{color:#495057;font-size:.9rem;display:block;margin-bottom:6px}.current-key code{background:#e9ecef;padding:6px 10px;border-radius:4px;font-family:Monaco,Menlo,monospace;font-size:.9rem;color:#007bff;font-weight:600;display:inline-block}.quota-info{background:#e7f3ff;border:1px solid #b8daff;border-radius:8px;padding:12px;margin-bottom:15px}.quota-info h4{margin:0 0 10px;color:#007bff;font-size:.95rem}.quota-details{font-size:.9rem;color:#495057}.quota-details div{margin-bottom:5px}.error-details{background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;padding:12px;margin-bottom:15px}.error-details strong{color:#856404;font-size:.9rem;display:block;margin-bottom:6px}.error-details pre{background:#fff;padding:8px;border-radius:4px;font-size:.85rem;color:#495057;overflow-x:auto;margin:0}.api-key-input{width:100%;padding:12px;border:2px solid #dee2e6;border-radius:8px;font-size:1rem;font-family:Monaco,Menlo,monospace;transition:all .3s ease;box-sizing:border-box}.api-key-input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.api-key-input.valid{border-color:#28a745}.api-key-input.valid:focus{border-color:#28a745;box-shadow:0 0 0 3px #28a7451a}.api-key-input.invalid{border-color:#dc3545}.api-key-input.invalid:focus{border-color:#dc3545;box-shadow:0 0 0 3px #dc35451a}.validation-message{margin-top:8px;padding:8px 12px;border-radius:6px;font-size:.9rem;font-weight:500;display:flex;align-items:center;gap:6px;animation:slideIn .3s ease-out}.validation-message.valid{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.validation-message.invalid{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}@keyframes slideIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.api-key-update-section{margin-top:20px;padding-top:20px;border-top:1px solid #e9ecef}.api-key-update-section h4{margin:0 0 10px;color:#495057;font-size:1.1rem}.help-text{font-size:.9rem;color:#6c757d;margin-bottom:12px}.help-text a{color:#007bff;text-decoration:none}.help-text a:hover{text-decoration:underline}@media(max-width:768px){.header-status{flex-direction:column;gap:10px}.api-key-status{width:100%;justify-content:center}.masked-key-display{display:block;margin-top:4px}}.voice-controls{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-bottom:40px}.transcript-section,.text-input-section{background:#f8f9fa;padding:25px;border-radius:12px;border:1px solid #e9ecef}.transcript-section h3,.text-input-section h3{margin-top:0;color:#495057;font-size:1.2rem}.transcript-display{background:#fff;padding:15px;border-radius:8px;border:2px solid #dee2e6;min-height:60px;margin-bottom:20px;font-size:1.1rem;line-height:1.5;color:#495057}.control-buttons{display:flex;gap:10px}.voice-btn{padding:12px 24px;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s ease;flex:1}.voice-btn:not(.stop){background-color:#007bff;color:#fff}.voice-btn:not(.stop):hover:not(:disabled){background-color:#0056b3;transform:translateY(-2px)}.voice-btn.listening{background-color:#dc3545;animation:pulse 1.5s infinite}.voice-btn.stop{background-color:#6c757d;color:#fff}.voice-btn.stop:hover:not(:disabled){background-color:#545b62}.voice-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}@keyframes pulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}.text-input-controls{display:flex;gap:10px}.text-input{flex:1;padding:12px;border:2px solid #dee2e6;border-radius:8px;font-size:1rem;outline:none;transition:border-color .3s ease}.text-input:focus{border-color:#007bff}.send-btn{padding:12px 24px;background-color:#28a745;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s ease}.send-btn:hover:not(:disabled){background-color:#218838;transform:translateY(-2px)}.send-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.agent-responses{margin-bottom:40px}.agent-responses h3{color:#495057;margin-bottom:20px;font-size:1.3rem}.messages-container{background:#f8f9fa;border-radius:12px;padding:20px;max-height:400px;overflow-y:auto;border:1px solid #e9ecef}.no-messages{text-align:center;color:#6c757d;font-style:italic;padding:40px}.message{background:#fff;border-radius:8px;padding:15px;margin-bottom:15px;border-left:4px solid #007bff;box-shadow:0 2px 4px #0000001a}.message:last-child{margin-bottom:0}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.agent-name{font-weight:600;color:#007bff;font-size:1rem}.message-status{background-color:#e9ecef;color:#495057;padding:4px 8px;border-radius:12px;font-size:.8rem;font-weight:500}.message-content{color:#495057;line-height:1.5;margin-bottom:10px}.original-command{font-size:.9rem;color:#6c757d;font-style:italic;border-top:1px solid #e9ecef;padding-top:8px}.agent-status h3{color:#495057;margin-bottom:20px;font-size:1.3rem}.agents-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.agent-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px;border-radius:12px;text-align:center;transition:transform .3s ease}.agent-card:hover{transform:translateY(-5px)}.agent-card h4{margin:0 0 10px;font-size:1.2rem}.agent-card p{margin:0;opacity:.9;font-size:.9rem}.agent-card:nth-child(1){background:linear-gradient(135deg,#667eea,#764ba2)}.agent-card:nth-child(2){background:linear-gradient(135deg,#f093fb,#f5576c)}.agent-card:nth-child(3){background:linear-gradient(135deg,#4facfe,#00f2fe)}.agent-card:nth-child(4){background:linear-gradient(135deg,#43e97b,#38f9d7)}@media(max-width:768px){.voice-controls{grid-template-columns:1fr}.control-buttons,.text-input-controls{flex-direction:column}.agents-grid{grid-template-columns:1fr}}.active-workflows{background:#e3f2fd;border:2px solid #90caf9;border-radius:12px;padding:25px;margin-bottom:30px}.active-workflows h3{margin-top:0;color:#1565c0;font-size:1.3rem}.workflows-container{display:grid;gap:20px}.workflow-card{background:#fff;border-radius:12px;padding:25px;border:1px solid #90caf9;box-shadow:0 4px 12px #0000001a}.workflow-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:10px}.workflow-header h4{margin:0;color:#1565c0;font-size:1.2rem;flex:1}.workflow-progress{margin-bottom:15px}.progress-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-bottom:20px}.progress-step{display:flex;align-items:center;gap:10px;padding:12px;border-radius:8px;transition:all .3s ease}.progress-step.pending{background:#f8f9fa;border:1px solid #dee2e6}.progress-step.active{background:#fff3cd;border:1px solid #ffeaa7;animation:pulse-step 2s infinite}.progress-step.completed{background:#d4edda;border:1px solid #c3e6cb}.progress-step.approved{background:#d1ecf1;border:1px solid #bee5eb}.progress-step.rejected{background:#f8d7da;border:1px solid #f5c6cb}.progress-step.current{transform:scale(1.05);box-shadow:0 4px 12px #00000026}@keyframes pulse-step{0%{opacity:1}50%{opacity:.8}to{opacity:1}}.step-indicator{font-size:1.2rem;min-width:24px;text-align:center}.step-info{flex:1}.step-name{font-weight:600;color:#495057;font-size:.9rem;margin-bottom:2px}.step-agent{color:#6c757d;font-size:.8rem}.progress-bar{width:100%;height:6px;background:#e9ecef;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#007bff,#28a745);border-radius:3px;transition:width .5s ease}.approval-feedback{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;padding:10px 15px;margin-top:15px;font-size:.9rem;color:#495057;display:flex;align-items:center;gap:8px}.approval-feedback:before{content:"ℹ️";font-size:1rem}.approve-btn:disabled,.reject-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.approve-btn:disabled:hover,.reject-btn:disabled:hover{transform:none}@media(max-width:768px){.progress-steps{grid-template-columns:1fr}.workflow-header{flex-direction:column;align-items:flex-start}.progress-step{justify-content:center;text-align:center}}.pending-approvals{background:#fff3cd;border:2px solid #ffeaa7;border-radius:12px;padding:25px;margin-bottom:30px}.pending-approvals h3{margin-top:0;color:#856404;font-size:1.3rem}.approvals-container{display:grid;gap:15px}.approval-card{background:#fff;border-radius:8px;padding:20px;border:1px solid #ffeaa7;box-shadow:0 2px 8px #0000001a}.approval-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;flex-wrap:wrap;gap:10px}.approval-header h4{margin:0;color:#495057;font-size:1.1rem;flex:1}.task-id{background:#e9ecef;color:#495057;padding:4px 8px;border-radius:6px;font-size:.8rem;font-family:Monaco,Menlo,monospace}.approval-details{margin-bottom:15px}.approval-details p{margin:5px 0;color:#6c757d;font-size:.9rem}.approval-actions{display:flex;gap:10px}.approve-btn,.reject-btn{padding:8px 16px;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s ease}.approve-btn{background-color:#28a745;color:#fff}.approve-btn:hover{background-color:#218838;transform:translateY(-1px)}.reject-btn{background-color:#dc3545;color:#fff}.reject-btn:hover{background-color:#c82333;transform:translateY(-1px)}.message.pending-approval{border-left-color:#ffc107;background:#fff8e1}.approval-required{background-color:#ffc107;color:#212529;padding:4px 8px;border-radius:12px;font-size:.8rem;font-weight:500}.message-status.pending_approval{background-color:#ffc107;color:#212529}.message-status.completed{background-color:#28a745;color:#fff}.message-status.rejected{background-color:#dc3545;color:#fff}.task-id-display{font-size:.8rem;color:#6c757d;font-family:Monaco,Menlo,monospace;background:#f8f9fa;padding:4px 8px;border-radius:4px;margin-top:8px;display:inline-block}.agent-card.disabled{opacity:.6;background:linear-gradient(135deg,#6c757d,#495057)}.agent-status-badge{position:absolute;top:10px;right:10px;background:#fff3;color:#fff;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:500}.agent-card{position:relative}.agent-card.active .agent-status-badge{background:#28a745cc}.agent-card.disabled .agent-status-badge{background:#6c757dcc}.footer-links{margin-top:40px}.footer-links h3{color:#495057;margin-bottom:20px;font-size:1.3rem}.links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.link-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;padding:20px;text-decoration:none;color:inherit;transition:all .3s ease;display:block}.link-card:hover{transform:translateY(-3px);box-shadow:0 4px 20px #00000026;text-decoration:none;color:inherit}.link-card h4{margin:0 0 10px;color:#007bff;font-size:1.1rem}.link-card p{margin:0 0 10px;color:#6c757d;font-size:.9rem}.link-card span{color:#adb5bd;font-size:.8rem;font-family:Monaco,Menlo,monospace}@media(max-width:768px){.approval-header{flex-direction:column;align-items:flex-start}.approval-actions{flex-direction:column}.approve-btn,.reject-btn{width:100%}.links-grid{grid-template-columns:1fr}}.task-actions{margin-top:15px;padding-top:15px;border-top:1px solid #e9ecef;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.generate-files-btn{background:linear-gradient(135deg,#17a2b8,#20c997);color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:6px}.generate-files-btn:hover{transform:translateY(-1px);box-shadow:0 3px 10px #17a2b84d}.message .agent-name:contains("File Generator"){color:#17a2b8}@media(max-width:768px){.task-actions{flex-direction:column;align-items:flex-start}.generate-files-btn{width:100%;justify-content:center}}.edit-btn{background-color:#17a2b8;color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s ease}.edit-btn:hover{background-color:#138496;transform:translateY(-1px)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0000004d;max-width:600px;width:90%;max-height:80vh;overflow-y:auto}.edit-workflow-modal{max-width:700px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:1px solid #e9ecef}.modal-header h3{margin:0;color:#495057}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6c757d;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s ease}.close-btn:hover{background:#f8f9fa;color:#495057}.modal-body{padding:25px}.form-group{margin-bottom:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#495057}.form-group input,.form-group textarea,.form-group select{width:100%;padding:10px 12px;border:2px solid #dee2e6;border-radius:6px;font-size:1rem;transition:border-color .3s ease;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#007bff}.breakdown-list{border:1px solid #dee2e6;border-radius:6px;padding:15px;background:#f8f9fa}.breakdown-item{display:flex;gap:10px;margin-bottom:10px;align-items:center}.breakdown-item input{flex:1;margin-bottom:0}.remove-step-btn{background:#dc3545;color:#fff;border:none;border-radius:4px;width:30px;height:30px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;flex-shrink:0}.remove-step-btn:hover{background:#c82333}.add-step-btn{background:#28a745;color:#fff;border:none;border-radius:6px;padding:8px 16px;cursor:pointer;font-size:.9rem;transition:all .3s ease}.add-step-btn:hover{background:#218838}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:20px 25px;border-top:1px solid #e9ecef;background:#f8f9fa;border-radius:0 0 12px 12px}.cancel-btn,.save-btn{padding:10px 20px;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s ease}.cancel-btn{background:#6c757d;color:#fff}.cancel-btn:hover{background:#545b62}.save-btn{background:#007bff;color:#fff}.save-btn:hover:not(:disabled){background:#0056b3}.save-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.modal{width:95%;max-height:90vh}.form-row{grid-template-columns:1fr}.modal-footer{flex-direction:column}.cancel-btn,.save-btn{width:100%}.breakdown-item{flex-direction:column;align-items:stretch}.remove-step-btn{align-self:flex-end;width:auto;padding:5px 10px}}.approve-btn:disabled,.reject-btn:disabled,.generate-files-btn:disabled{opacity:.6;cursor:not-allowed;position:relative}.approve-btn:disabled:hover,.reject-btn:disabled:hover,.generate-files-btn:disabled:hover{transform:none;box-shadow:none}.approval-feedback{margin-top:10px;padding:8px 12px;border-radius:6px;font-size:.9rem;font-weight:500;text-align:center;animation:fadeIn .3s ease-in}.approval-feedback:contains("Processing"){background-color:#fff3cd;color:#856404;border:1px solid #ffeaa7}.approval-feedback:contains("Approved"){background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.approval-feedback:contains("rejected"){background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.approval-card{position:relative;transition:all .3s ease}.approval-card:has(.approval-feedback){border-color:#007bff;box-shadow:0 2px 8px #007bff26}.approve-btn:disabled:after,.reject-btn:disabled:after,.generate-files-btn:disabled:after{content:"";position:absolute;width:16px;height:16px;margin:auto;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin 1s linear infinite;top:0;left:0;bottom:0;right:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.approval-type{display:inline-block;padding:4px 8px;border-radius:12px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.approval-type.pm_completed{background-color:#e3f2fd;color:#1976d2;border:1px solid #bbdefb}.approval-type.dev_completed{background-color:#f3e5f5;color:#7b1fa2;border:1px solid #e1bee7}.approval-type.security_completed{background-color:#fff3e0;color:#f57c00;border:1px solid #ffcc02}.approval-type.devops_completed{background-color:#e8f5e8;color:#388e3c;border:1px solid #c8e6c9}.approval-card.pm_completed{border-left:4px solid #1976d2}.approval-card.dev_completed{border-left:4px solid #7b1fa2}.approval-card.security_completed{border-left:4px solid #f57c00}.approval-card.devops_completed{border-left:4px solid #388e3c}.approval-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:8px;margin-bottom:12px}.approval-header h4{flex:1;margin:0;min-width:200px}.task-id{font-family:Monaco,Menlo,monospace;background-color:#f8f9fa;padding:2px 6px;border-radius:4px;font-size:.8rem;color:#6c757d}.approval-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.approval-actions button:disabled{position:relative;overflow:hidden}.approval-actions button:disabled:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{left:-100%}to{left:100%}}.approval-feedback{margin-top:12px;padding:10px 14px;border-radius:8px;font-size:.9rem;font-weight:500;text-align:center;animation:slideIn .3s ease-out;border:1px solid}.approval-feedback:has-text("Processing"){background-color:#fff8e1;color:#f57c00;border-color:#ffcc02}.approval-feedback:has-text("Approved"){background-color:#e8f5e8;color:#2e7d32;border-color:#81c784}.approval-feedback:has-text("rejected"){background-color:#ffebee;color:#c62828;border-color:#ef5350}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.files-generated-indicator{display:inline-flex;align-items:center;padding:8px 16px;background-color:#e8f5e8;color:#2e7d32;border:1px solid #81c784;border-radius:6px;font-size:.9rem;font-weight:500;margin-top:8px}.approval-type.dev_analysis,.approval-type.dev_completed{background-color:#f3e5f5;color:#7b1fa2;border:1px solid #e1bee7}.approval-type.code_review{background-color:#e8eaf6;color:#3f51b5;border:1px solid #c5cae9}.approval-type.testing{background-color:#fff8e1;color:#f57c00;border:1px solid #ffcc02}.approval-card.dev_analysis,.approval-card.dev_completed{border-left:4px solid #7b1fa2}.approval-card.code_review{border-left:4px solid #3f51b5}.approval-card.testing{border-left:4px solid #f57c00}.approval-details p{margin:6px 0;line-height:1.4}.approval-details strong{color:#495057;font-weight:600}.testing-results{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:15px;margin-top:15px}.testing-results h4{margin:0 0 10px;color:#495057;font-size:1.1rem}.test-summary{display:flex;align-items:center;gap:15px;margin-bottom:15px;flex-wrap:wrap}.test-status{padding:4px 12px;border-radius:20px;font-size:.85rem;font-weight:600;text-transform:uppercase}.test-status.success{background-color:#d4edda;color:#155724}.test-status.warning{background-color:#fff3cd;color:#856404}.test-status.error{background-color:#f8d7da;color:#721c24}.test-assessment{flex:1;font-size:.9rem;color:#6c757d}.tests-executed{margin-bottom:15px}.test-badges{display:flex;gap:8px;margin-top:5px;flex-wrap:wrap}.test-badge{background:#e9ecef;color:#495057;padding:4px 8px;border-radius:12px;font-size:.8rem;font-weight:500}.detailed-test-results{margin-bottom:15px}.test-detail{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.result-status{padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:600;text-transform:uppercase}.result-status.success{background-color:#d4edda;color:#155724}.result-status.warning{background-color:#fff3cd;color:#856404}.result-status.error{background-color:#f8d7da;color:#721c24}.ai-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:2px 6px;border-radius:8px;font-size:.7rem;font-weight:500}.files-tested,.build-message{font-size:.8rem;color:#6c757d;margin-top:2px}.test-recommendations{background:#e7f3ff;border:1px solid #b8daff;border-radius:6px;padding:10px}.test-recommendations ul{margin:5px 0 0;padding-left:20px}.test-recommendations li{font-size:.85rem;color:#495057;margin-bottom:3px}.modified-files{background:#f0f8ff;border:1px solid #b8daff;border-radius:6px;padding:10px;margin-top:10px}.file-list{display:flex;gap:6px;margin-top:5px;flex-wrap:wrap}.file-badge{background:#007bff;color:#fff;padding:3px 8px;border-radius:10px;font-size:.75rem;font-weight:500;font-family:Monaco,Menlo,monospace}.agent-card.active .agent-status-badge{background-color:#28a745;color:#fff}.agents-grid .agent-card:nth-child(3){border-left:4px solid #17a2b8}.agents-grid .agent-card:nth-child(3) h4{color:#17a2b8}.progress-step.testing{border-left:3px solid #17a2b8}.progress-step.testing .step-indicator{background-color:#17a2b8;color:#fff}@media(max-width:768px){.test-summary{flex-direction:column;align-items:flex-start}.test-detail{flex-direction:column;align-items:flex-start;gap:5px}.test-badges,.file-list{justify-content:flex-start}}.commit-approvals{background:#fff8e1;border:2px solid #ffcc02;border-radius:12px;padding:25px;margin-bottom:30px}.commit-approvals h3{margin-top:0;color:#f57c00;font-size:1.3rem;display:flex;align-items:center;gap:8px}.approvals-container{display:grid;gap:20px}.approval-card{background:#fff;border-radius:12px;padding:25px;border:1px solid #ffcc02;box-shadow:0 4px 12px #0000001a;transition:all .3s ease}.approval-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000026}.approval-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:10px}.approval-header h4{margin:0;color:#f57c00;font-size:1.2rem;flex:1;min-width:200px}.commit-info{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:15px;margin-bottom:20px}.commit-details{margin-bottom:15px}.commit-hash{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:.9rem;color:#495057}.commit-hash code{background:#e9ecef;padding:4px 8px;border-radius:4px;font-family:Monaco,Menlo,monospace;font-size:.85rem;color:#007bff;font-weight:600}.commit-timestamp{font-size:.85rem;color:#6c757d;display:flex;align-items:center;gap:6px}.modified-files{margin-top:15px}.modified-files strong{color:#495057;font-size:.9rem;display:block;margin-bottom:8px}.modified-files ul{margin:0;padding-left:20px;list-style-type:none}.modified-files li{font-size:.85rem;color:#6c757d;margin-bottom:4px;position:relative;font-family:Monaco,Menlo,monospace}.modified-files li:before{content:"📄";position:absolute;left:-20px;font-size:.8rem}.approval-actions{display:flex;gap:12px;margin-bottom:15px;flex-wrap:wrap}.approve-btn{background:linear-gradient(135deg,#28a745,#20c997);color:#fff;border:none;padding:12px 20px;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:8px;flex:1;justify-content:center;min-width:140px}.approve-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #28a7454d}.rollback-soft-btn{background:linear-gradient(135deg,#ffc107,#fd7e14);color:#212529;border:none;padding:12px 20px;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:8px;flex:1;justify-content:center;min-width:140px}.rollback-soft-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #ffc1074d}.rollback-hard-btn{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;border:none;padding:12px 20px;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:8px;flex:1;justify-content:center;min-width:140px}.rollback-hard-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #dc35454d}.rollback-info{background:#e7f3ff;border:1px solid #b8daff;border-radius:6px;padding:12px;font-size:.85rem;color:#495057;line-height:1.4}.rollback-info strong{color:#007bff;font-weight:600}.approve-btn:disabled,.rollback-soft-btn:disabled,.rollback-hard-btn:disabled{opacity:.7;cursor:not-allowed;transform:none;position:relative;overflow:hidden}.approve-btn:disabled:after,.rollback-soft-btn:disabled:after,.rollback-hard-btn:disabled:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin 1s linear infinite}.progress-step.awaiting_commit_approval{background:#fff8e1;border:2px solid #ffcc02;animation:pulse-commit 2s infinite}.progress-step.awaiting_commit_approval .step-indicator{color:#f57c00;font-size:1.3rem}@keyframes pulse-commit{0%{border-color:#ffcc02;box-shadow:0 0 #ffcc0266}50%{border-color:#f57c00;box-shadow:0 0 0 8px #ffcc0200}to{border-color:#ffcc02;box-shadow:0 0 #ffcc0200}}.commit-approvals .task-id{background:linear-gradient(135deg,#f8f9fa,#e9ecef);color:#495057;padding:6px 12px;border-radius:8px;font-size:.8rem;font-family:Monaco,Menlo,monospace;font-weight:600;border:1px solid #dee2e6}@media(max-width:768px){.approval-actions{flex-direction:column}.approve-btn,.rollback-soft-btn,.rollback-hard-btn{width:100%;min-width:auto}.approval-header{flex-direction:column;align-items:flex-start}.commit-hash{flex-direction:column;align-items:flex-start;gap:4px}.modified-files ul{padding-left:15px}}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.commit-approvals .approval-card{animation:slideInFromBottom .4s ease-out}.commit-info{position:relative;overflow:hidden}.commit-info:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(135deg,#007bff,#28a745);border-radius:0 2px 2px 0}.commit-action-success{background:#d4edda;border:1px solid #c3e6cb;color:#155724;padding:12px;border-radius:6px;margin-top:15px;font-weight:500;animation:fadeIn .3s ease-in}.commit-action-error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;padding:12px;border-radius:6px;margin-top:15px;font-weight:500;animation:fadeIn .3s ease-in}.message .agent-name:contains("Git System"){color:#f57c00;font-weight:700}.message:has(.agent-name:contains("Git System")){border-left-color:#f57c00}.commit-approval-modal{max-width:600px;width:90%}.commit-task-info{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:15px;margin-bottom:20px}.commit-task-info h4{margin:0 0 8px;color:#495057;font-size:1.1rem}.commit-task-info .task-id{font-size:.85rem;color:#6c757d;font-family:Monaco,Menlo,monospace}.commit-details-modal{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:20px;margin-bottom:20px}.commit-hash-display,.commit-timestamp-display{margin-bottom:15px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.commit-hash-display code{background:#e9ecef;padding:4px 8px;border-radius:4px;font-family:Monaco,Menlo,monospace;color:#007bff;font-weight:600}.modified-files-modal{margin-bottom:15px}.file-list-modal{margin-top:8px;max-height:120px;overflow-y:auto;border:1px solid #e9ecef;border-radius:4px;padding:8px}.file-item{padding:4px 8px;margin-bottom:4px;background:#f8f9fa;border-radius:4px;font-family:Monaco,Menlo,monospace;font-size:.85rem;color:#495057}.commit-message-preview{background:#e7f3ff;border:1px solid #b8daff;border-radius:6px;padding:12px}.commit-message-preview p{margin:5px 0 0;color:#495057;font-style:italic}.commit-error-modal{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;padding:15px;border-radius:6px;text-align:center;font-weight:500}.rollback-explanation{background:#fff8e1;border:1px solid #ffcc02;border-radius:8px;padding:15px}.rollback-explanation h4{margin:0 0 12px;color:#f57c00;font-size:1rem}.action-explanations{display:flex;flex-direction:column;gap:8px}.action-explanation{padding:8px 12px;background:#ffffffb3;border-radius:6px;font-size:.9rem;line-height:1.4}.action-explanation strong{color:#495057}.modal-btn{padding:12px 20px;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:8px;min-width:140px}.modal-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.modal-btn.primary{background:linear-gradient(135deg,#28a745,#20c997);color:#fff}.modal-btn.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #28a7454d}.rollback-soft-btn.modal-btn{background:linear-gradient(135deg,#ffc107,#fd7e14);color:#212529}.rollback-soft-btn.modal-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #ffc1074d}.rollback-hard-btn.modal-btn{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff}.rollback-hard-btn.modal-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #dc35454d}.commit-approval-modal .modal-footer{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}@media(max-width:768px){.commit-approval-modal{width:95%;max-height:90vh}.commit-approval-modal .modal-footer{flex-direction:column}.modal-btn{width:100%;min-width:auto}.commit-hash-display,.commit-timestamp-display{flex-direction:column;align-items:flex-start;gap:5px}.action-explanations{gap:6px}.action-explanation{padding:6px 10px;font-size:.85rem}}.commit-approval-modal{animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-btn:disabled:after{content:"";position:absolute;width:16px;height:16px;margin:auto;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin 1s linear infinite;top:0;left:0;bottom:0;right:0}.modal-btn.primary{position:relative;overflow:hidden}.modal-btn.primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.modal-btn.primary:hover:before{left:100%}.github-push-status{background:linear-gradient(135deg,#28a745,#20c997);color:#fff;padding:20px;border-radius:12px;margin-bottom:30px;box-shadow:0 4px 12px #28a74533}.github-push-status h3{margin:0 0 15px;font-size:1.3rem;display:flex;align-items:center;gap:8px}.push-status-card{background:#ffffff1a;border-radius:8px;padding:15px;display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.push-info{flex:1}.push-commit,.push-timestamp,.push-task{margin-bottom:5px;font-size:.95rem}.push-commit code{background:#fff3;padding:2px 6px;border-radius:4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem}.push-actions{margin-left:20px}.drop-commit-btn{background:#dc3545;color:#fff;border:none;padding:10px 20px;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:6px}.drop-commit-btn:hover:not(:disabled){background:#c82333;transform:translateY(-2px);box-shadow:0 4px 8px #dc35454d}.drop-commit-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.push-warning{font-size:.85rem;opacity:.9;line-height:1.4}.push-warning strong{font-weight:600}@media(max-width:768px){.push-status-card{flex-direction:column;align-items:flex-start;gap:15px}.push-actions{margin-left:0;width:100%}.drop-commit-btn{width:100%;justify-content:center}}@keyframes drop-pulse{0%{box-shadow:0 0 #dc354566}70%{box-shadow:0 0 0 10px #dc354500}to{box-shadow:0 0 #dc354500}}.drop-commit-btn:hover:not(:disabled){animation:drop-pulse 2s infinite}.api-error-banner{margin:20px 0;padding:20px;border-radius:12px;border-left:5px solid;animation:slideIn .5s ease-out}.api-error-banner.quota_exceeded{background:linear-gradient(135deg,#fff3cd,#fffbeb);border-left-color:#ffc107;box-shadow:0 4px 12px #ffc10733}.api-error-banner.invalid{background:linear-gradient(135deg,#f8d7da,#fff5f5);border-left-color:#dc3545;box-shadow:0 4px 12px #dc354533}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.error-banner-content{display:flex;align-items:center;gap:20px}.error-icon{font-size:3rem;flex-shrink:0}.error-details{flex:1}.error-details h3{margin:0 0 8px;color:#495057;font-size:1.3rem}.error-details p{margin:0 0 5px;color:#6c757d;font-size:1rem;line-height:1.5}.error-hint{font-size:.9rem!important;color:#856404!important;font-style:italic}.error-actions{display:flex;flex-direction:column;gap:10px;flex-shrink:0}.update-key-btn{padding:12px 24px;background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap;box-shadow:0 2px 8px #007bff4d}.update-key-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #007bff66}.get-key-link{padding:10px 20px;background:#fff;color:#007bff;border:2px solid #007bff;border-radius:8px;font-size:.95rem;font-weight:500;text-decoration:none;text-align:center;transition:all .3s ease;white-space:nowrap}.get-key-link:hover{background:#007bff;color:#fff;transform:translateY(-2px)}@media(max-width:768px){.error-banner-content{flex-direction:column;text-align:center}.error-actions,.update-key-btn,.get-key-link{width:100%}}.logs-modal{max-width:900px;max-height:80vh}.logs-modal .modal-content{padding:0;max-height:60vh;overflow:hidden}.logs-container{height:100%;overflow-y:auto;background:#1e1e1e;border-radius:8px;padding:15px}.logs-content{margin:0;padding:0;font-family:Courier New,Courier,monospace;font-size:12px;line-height:1.5;color:#d4d4d4;white-space:pre-wrap;word-wrap:break-word}.loading-logs,.no-logs{text-align:center;padding:40px;color:#888;font-style:italic}.logs-modal .modal-footer{gap:8px;flex-wrap:wrap}.logs-modal .modal-footer .filter-btn{background:linear-gradient(135deg,#6c757d,#5a6268);color:#fff;font-size:.9rem;padding:10px 16px}.logs-modal .modal-footer .filter-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #6c757d4d}.logs-modal .modal-footer .refresh-btn{background:linear-gradient(135deg,#17a2b8,#138496);color:#fff}.logs-modal .modal-footer .refresh-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #17a2b84d}.voice-btn.logs{background:linear-gradient(135deg,#6c757d,#5a6268);color:#fff}.voice-btn.logs:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #6c757d4d}@media(max-width:768px){.logs-modal{width:95%;max-height:85vh}.logs-modal .modal-footer{flex-direction:column}.logs-modal .modal-footer button{width:100%}}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}
