*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0c0e13;--surface: #14171e;--surface-2: #1a1e27;--border: #252a36;--border-focus: #3b82f6;--text: #e2e4ea;--text-dim: #7a8194;--accent: #3b82f6;--accent-glow: rgba(59, 130, 246, .15);--green: #22c55e;--green-dim: rgba(34, 197, 94, .12);--red: #ef4444;--red-dim: rgba(239, 68, 68, .12);--amber: #f59e0b;--amber-dim: rgba(245, 158, 11, .12);--purple: #a855f7;--purple-dim: rgba(168, 85, 247, .12);--radius: 10px;--mono: "JetBrains Mono", monospace;--sans: "Outfit", sans-serif}body{font-family:var(--sans);background:var(--bg);color:var(--text);min-height:100vh}.app{max-width:780px;margin:0 auto;padding:48px 24px 80px}.header{margin-bottom:40px}.header h1{font-size:1.6rem;font-weight:700;letter-spacing:-.03em;margin-bottom:6px}.header p{color:var(--text-dim);font-size:.88rem;line-height:1.5}.login-card{max-width:400px;margin:80px auto 0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:36px 32px}.login-card h2{font-size:1.2rem;font-weight:600;margin-bottom:4px}.login-card .subtitle{color:var(--text-dim);font-size:.82rem;margin-bottom:24px}.login-card label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin-bottom:6px}.login-card input{width:100%;padding:12px 14px;background:var(--bg);border:1.5px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--mono);font-size:.85rem;outline:none;margin-bottom:16px;transition:border-color .2s}.login-card input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-glow)}.login-card input::placeholder{color:var(--text-dim);opacity:.5}.login-error{background:var(--red-dim);border:1px solid rgba(239,68,68,.3);color:var(--red);padding:10px 14px;border-radius:8px;font-size:.82rem;margin-bottom:16px}.input-group{display:flex;gap:10px;margin-bottom:32px;align-items:stretch}.input-wrap{flex:1;position:relative}.input-wrap input{width:100%;padding:14px 16px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--mono);font-size:.9rem;outline:none;transition:border-color .2s}.input-wrap input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-glow)}.input-wrap input::placeholder{color:var(--text-dim);opacity:.6}.btn{padding:14px 22px;border:none;border-radius:var(--radius);font-family:var(--sans);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;letter-spacing:.01em}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-run{background:var(--accent);color:#fff}.btn-run:hover:not(:disabled){background:#2563eb;box-shadow:0 0 20px var(--accent-glow)}.btn-dry{background:var(--surface-2);color:var(--amber);border:1.5px solid var(--border)}.btn-dry:hover:not(:disabled){border-color:var(--amber);background:var(--amber-dim)}.btn-logout{background:transparent;color:var(--text-dim);border:1px solid var(--border);padding:8px 16px;font-size:.78rem}.btn-logout:hover{color:var(--red);border-color:#ef44444d}.username-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;margin-bottom:28px;display:grid;grid-template-columns:1fr 1fr;gap:12px 24px}.username-preview .label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:4px}.username-preview .value{font-family:var(--mono);font-size:.82rem;color:var(--text);word-break:break-all}.steps-container{display:flex;flex-direction:column;gap:8px}.step{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color .3s}.step.success{border-color:#22c55e4d}.step.error{border-color:#ef44444d}.step.skipped{border-color:#f59e0b4d}.step-header{display:flex;align-items:center;gap:12px;padding:14px 18px;cursor:pointer;-webkit-user-select:none;user-select:none}.step-header:hover{background:var(--surface-2)}.step-icon{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;flex-shrink:0}.step.success .step-icon{background:var(--green-dim);color:var(--green)}.step.error .step-icon{background:var(--red-dim);color:var(--red)}.step.skipped .step-icon{background:var(--amber-dim);color:var(--amber)}.step.pending .step-icon{background:var(--purple-dim);color:var(--purple)}.step-label{flex:1;font-size:.85rem;font-weight:500}.step-chevron{color:var(--text-dim);font-size:.75rem;transition:transform .2s}.step-chevron.open{transform:rotate(90deg)}.step-detail{padding:0 18px 16px 54px;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.step-detail pre{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:14px 16px;font-family:var(--mono);font-size:.78rem;line-height:1.6;overflow-x:auto;color:var(--text-dim);white-space:pre-wrap;word-break:break-all}.result-banner{margin-top:20px;padding:16px 20px;border-radius:var(--radius);font-weight:600;font-size:.9rem;display:flex;align-items:center;gap:10px}.result-banner.ok{background:var(--green-dim);border:1px solid rgba(34,197,94,.3);color:var(--green)}.result-banner.fail{background:var(--red-dim);border:1px solid rgba(239,68,68,.3);color:var(--red)}.result-banner.dry{background:var(--amber-dim);border:1px solid rgba(245,158,11,.3);color:var(--amber)}.spinner{display:inline-block;width:18px;height:18px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.running-text{display:flex;align-items:center;gap:10px;margin-bottom:16px;font-size:.85rem;color:var(--text-dim)}.header-bar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:40px}.user-badge{display:flex;align-items:center;gap:12px;font-size:.8rem;color:var(--text-dim);font-family:var(--mono)}
