:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#213547;background-color:#f5f5f5;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%}.app{max-width:1400px;margin:0 auto;padding:2rem}.app-header{text-align:center;margin-bottom:3rem}.app-header h1{color:#e74c3c;margin-bottom:.5rem}.app-header p{color:#666;font-size:1.1rem;margin-bottom:1.5rem}.nav-btn{display:inline-block;padding:.75rem 1.5rem;background:#9b59b6;color:#fff;text-decoration:none;border-radius:4px;font-size:1rem;font-weight:700;transition:background .2s}.nav-btn:hover{background:#8e44ad}.adhoc-experience{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;padding:1.5rem;margin-top:1rem}.adhoc-experience h3{color:#2c3e50;margin:0 0 .5rem}.adhoc-experience p{color:#6c757d;margin-bottom:1rem;line-height:1.5}.experience-btn{display:inline-block;padding:.75rem 1.5rem;background:#9b59b6;color:#fff;text-decoration:none;border-radius:4px;font-size:1rem;font-weight:700;transition:background .2s}.experience-btn:hover{background:#8e44ad}.main-content{display:grid;gap:2rem}.test-section{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.test-section h2{color:#2c3e50;margin-bottom:1rem}.run-all-btn{background:#3498db;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:1rem;margin-bottom:1rem;transition:background .2s}.run-all-btn:hover{background:#2980b9}.test-list{display:grid;gap:1rem}.test-case{border:1px solid #ddd;border-radius:6px;padding:1rem;display:flex;justify-content:space-between;align-items:center;transition:all .2s}.test-case.running{border-color:#f39c12;background:#fef5e7}.test-case.passed{border-color:#27ae60;background:#eafaf1}.test-case.failed{border-color:#e74c3c;background:#fdedec}.test-info h3{margin:0 0 .5rem;color:#2c3e50}.test-info p{margin:.25rem 0;color:#7f8c8d}.vulnerability{color:#e74c3c;font-weight:700}.test-actions{display:flex;align-items:center;gap:1rem}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.875rem;font-weight:700;text-transform:uppercase}.status-badge.pending{background:#ecf0f1;color:#7f8c8d}.status-badge.running{background:#f39c12;color:#fff}.status-badge.passed{background:#27ae60;color:#fff}.status-badge.failed{background:#e74c3c;color:#fff}.run-btn{background:#3498db;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:background .2s}.run-btn:hover:not(:disabled){background:#2980b9}.run-btn:disabled{background:#95a5a6;cursor:not-allowed}.input-section{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.input-section h2{color:#2c3e50;margin-bottom:.5rem}.input-section p{color:#7f8c8d;margin-bottom:1rem}.input-group{display:flex;gap:.5rem;margin-bottom:1rem}.test-input{flex:1;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.submit-btn{padding:.75rem 1.5rem;background:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background .2s}.submit-btn:hover{background:#c0392b}.output-div{padding:1rem;background:#f8f9fa;border-radius:4px;min-height:50px;border:1px dashed #ddd}.logs-section{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.logs-section h2{color:#2c3e50;margin-bottom:1rem}.logs-container{background:#2c3e50;color:#ecf0f1;padding:1rem;border-radius:4px;font-family:Courier New,monospace;max-height:300px;overflow-y:auto}.no-logs{color:#7f8c8d;text-align:center;font-style:italic}.log-entry{margin-bottom:.5rem;border-left:3px solid #3498db;padding:.25rem .25rem .25rem .75rem}.slow-form{max-width:500px;margin:0 auto}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:#2c3e50;font-weight:700}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;box-sizing:border-box}.form-group input:disabled,.form-group textarea:disabled{background-color:#f5f5f5;cursor:not-allowed}.submit-btn:disabled{background:#95a5a6;cursor:not-allowed}.submit-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;margin-top:1rem}.spinner{width:20px;height:20px;border:2px solid #ffffff;border-top:2px solid transparent;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.success-message{text-align:center;padding:2rem}.success-message h2{color:#27ae60;margin-bottom:1rem}.success-message p{color:#7f8c8d;margin-bottom:2rem}.upload-section{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.upload-section h2{color:#2c3e50;margin-bottom:.5rem}.upload-section p{color:#7f8c8d;margin-bottom:1rem}.upload-group{display:flex;gap:.5rem;align-items:center}.file-input{flex:1}.upload-btn{padding:.75rem 1.5rem;background:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background .2s}.upload-btn:disabled{background:#95a5a6;cursor:not-allowed}.upload-btn:hover:not(:disabled){background:#2980b9}.upload-status{margin-top:.75rem;padding:.75rem 1rem;border-radius:6px;font-weight:600}.upload-status.success{background:#eafaf1;color:#27ae60;border:1px solid #27ae60}.upload-status.error{background:#fdedec;color:#e74c3c;border:1px solid #e74c3c}@keyframes fadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
