:root{--font-sans: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-display: "Plus Jakarta Sans", system-ui, sans-serif;--color-primary: #0d7377;--color-primary-hover: #0a5c5f;--color-primary-muted: #e6f5f5;--color-accent: #14b8a6;--color-accent-muted: #ccfbf1;--color-text-primary: #1a1d23;--color-text-secondary: #4b5563;--color-text-muted: #6b7280;--color-bg: #f8fafb;--color-bg-elevated: #ffffff;--color-border: #e5e7eb;--color-border-focus: var(--color-primary);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1);font-family:var(--font-sans);line-height:1.5;font-weight:400;color:var(--color-text-primary);background-color:var(--color-bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh}#root{min-height:100vh}button{cursor:pointer;font:inherit}a{color:inherit}.layout{display:flex;flex-direction:column;min-height:100vh}.layout-header{display:flex;align-items:center;gap:1.25rem;padding:.75rem 1.5rem;background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.layout-brand{display:inline-flex;align-items:center;text-decoration:none;color:var(--color-text-primary);font-weight:700;transition:opacity .15s ease}.layout-brand:hover{opacity:.85}.layout-nav{display:flex;gap:.25rem}.layout-nav a{padding:.5rem .75rem;text-decoration:none;font-weight:500;font-size:.9375rem;color:var(--color-text-secondary);border-radius:var(--radius-sm);transition:color .15s ease,background .15s ease}.layout-nav a:hover,.layout-nav a.active{color:var(--color-primary);background:var(--color-primary-muted)}.layout-user{margin-left:auto;display:flex;align-items:center;gap:.75rem;font-size:.875rem;color:var(--color-text-secondary)}.layout-user button{padding:.4rem .75rem;font-size:.875rem;font-weight:500;color:var(--color-text-secondary);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:color .15s ease,border-color .15s ease,background .15s ease}.layout-user button:hover{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-muted)}.layout-main{flex:1;padding:1.5rem;max-width:1200px;width:100%;margin:0 auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;font-size:.9375rem;font-weight:500;border-radius:var(--radius-sm);border:none;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-bg-elevated);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-border);border-color:var(--color-text-muted)}.btn:disabled{opacity:.6;cursor:not-allowed}.input,input[type=text],input[type=url],input[type=email],input[type=password]{width:100%;padding:.6rem .75rem;font-size:.9375rem;font-family:inherit;color:var(--color-text-primary);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color .15s ease,box-shadow .15s ease}.input:focus,input[type=text]:focus,input[type=url]:focus,input[type=email]:focus,input[type=password]:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px #0d737726}.input::placeholder,input::placeholder{color:var(--color-text-muted)}.card{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.card-header{padding:1rem 1.25rem;border-bottom:1px solid var(--color-border);font-weight:600;font-size:1rem}.page-title{margin:0 0 1.5rem;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--color-text-primary)}.section-title{margin:0 0 .75rem;font-size:1.125rem;font-weight:600;color:var(--color-text-primary)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:linear-gradient(160deg,var(--color-bg) 0%,var(--color-primary-muted) 100%)}.login-card{width:100%;max-width:22rem;padding:2rem;background:var(--color-bg-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--color-border)}.login-card .logo-wrap{display:flex;justify-content:center;margin-bottom:1.5rem}.login-card h1{margin:0 0 .25rem;font-size:1.5rem;font-weight:700;text-align:center;color:var(--color-text-primary)}.login-card .subtitle{margin:0 0 1.5rem;font-size:.9375rem;color:var(--color-text-secondary);text-align:center}.login-card form{display:flex;flex-direction:column;gap:1rem}.login-card .error{font-size:.875rem;color:#dc2626;background:#fef2f2;padding:.5rem .75rem;border-radius:var(--radius-sm)}.login-card button[type=submit]{margin-top:.25rem;padding:.65rem 1rem;font-weight:600}.login-card .auth-link{margin:1.25rem 0 0;font-size:.9375rem;color:var(--color-text-secondary);text-align:center}.login-card .auth-link a{color:var(--color-primary);font-weight:500}.login-card .auth-link a:hover{text-decoration:underline}.tests-page .page-title{margin-bottom:1.25rem}.create-test-form{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;padding:1.25rem;background:var(--color-bg-elevated);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.create-test-form input{min-width:14rem;flex:1}.create-test-form .create-test-outcomes{width:100%;min-height:4.5rem;resize:vertical;padding:.5rem .75rem;font:inherit;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg)}.create-test-form button{flex-shrink:0}.test-list{list-style:none;padding:0;margin:0}.test-list-item{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;padding:1rem 1.25rem;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:.75rem;box-shadow:var(--shadow-sm);transition:border-color .15s ease,box-shadow .15s ease}.test-list-item:hover{border-color:var(--color-primary-muted);box-shadow:var(--shadow-md)}.test-list-item>div:first-child{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;min-width:0}.test-list-item a{text-decoration:none;font-weight:500;color:var(--color-primary)}.test-list-item a:hover{text-decoration:underline}.test-list-item .status{font-size:.8125rem;font-weight:500;padding:.2rem .5rem;border-radius:999px}.status-passed{color:#059669;background:#d1fae5}.status-failed,.status-error{color:#dc2626;background:#fee2e2}.status-running{color:#0284c7;background:#e0f2fe}.test-actions{display:flex;gap:.5rem;flex-shrink:0}.test-actions .btn{padding:.4rem .75rem;font-size:.875rem}.empty-state{text-align:center;padding:2.5rem 1.5rem;color:var(--color-text-secondary);background:var(--color-bg-elevated);border-radius:var(--radius-md);border:1px dashed var(--color-border)}.run-detail-page{max-width:800px}.run-detail-page .back-link{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:1rem;font-size:.9375rem;font-weight:500;color:var(--color-text-secondary);text-decoration:none;transition:color .15s ease}.run-detail-page .back-link:hover{color:var(--color-primary)}.run-detail-page h1{margin:0 0 .5rem;font-size:1.375rem;font-weight:700}.run-detail-page .run-meta{margin-bottom:1.5rem;padding:1rem 1.25rem;background:var(--color-bg-elevated);border-radius:var(--radius-md);border:1px solid var(--color-border);font-size:.9375rem;color:var(--color-text-secondary)}.run-current-step{color:var(--color-text-primary)}.run-progress{font-size:.9375rem;color:var(--color-text-secondary);margin:.25rem 0 1rem}.step-list{list-style:none;padding:0;margin:0}.step-list li{margin-bottom:1.25rem;padding:1rem 1.25rem;background:var(--color-bg-elevated);border-radius:var(--radius-md);border:1px solid var(--color-border)}.step-screenshot{max-width:100%;border-radius:var(--radius-sm);border:1px solid var(--color-border);margin-top:.5rem}.step-error{color:#dc2626;font-size:.9375rem}.failure-screenshot{margin-top:1.5rem;padding:1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-md)}.failure-screenshot h3{margin:0 0 .5rem;font-size:1rem;color:#dc2626}.failure-screenshot img{max-width:100%;border-radius:var(--radius-sm)}.config-page .page-title{margin-bottom:1.5rem}.config-page section{margin-bottom:2rem;padding:1.25rem 1.5rem;background:var(--color-bg-elevated);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.config-page section p{margin:0 0 1rem;font-size:.9375rem;color:var(--color-text-secondary)}.secret-form{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.secret-form input{min-width:10rem}.secret-list{list-style:none;padding:0;margin:0}.secret-list li{display:flex;justify-content:space-between;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--color-border);font-size:.9375rem}.secret-list li:last-child{border-bottom:none}.secret-list button{padding:.35rem .65rem;font-size:.8125rem;color:var(--color-text-secondary);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.secret-list button:hover{color:#dc2626;border-color:#fecaca;background:#fef2f2}.credential-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.credential-modal{background:var(--color-bg-elevated);padding:1.5rem 1.75rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:28rem;width:100%;border:1px solid var(--color-border)}.credential-modal h2{margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.credential-modal-run,.credential-modal-url{margin:.25rem 0;font-size:.9rem;color:var(--color-text-secondary)}.credential-modal-url{word-break:break-all}.credential-modal-countdown{margin:.5rem 0;font-weight:600;color:#dc2626}.credential-modal-fields{display:flex;flex-direction:column;gap:.75rem;margin:1rem 0}.credential-field{display:flex;flex-direction:column;gap:.25rem}.credential-field span{font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.credential-modal-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.credential-modal-actions .btn-primary{flex:1;min-width:8rem}.loading,.run-detail-page .run-not-found{padding:2rem;text-align:center;color:var(--color-text-secondary);font-size:.9375rem}
