: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}}body,#root{width:100vw;height:100vh;margin:0;padding:0;overflow:hidden}.container{max-width:450px;margin:0 auto;padding:1.5rem 1rem;display:flex;flex-direction:column;align-items:center;min-height:100vh;justify-content:center}.brand{font-size:1.1rem;font-weight:600;margin-bottom:2rem;opacity:.7;letter-spacing:.05em}form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}input[type=text],input[type=password],input[type=url],input[type=file]{max-width:250px;padding:.7em .9em;font-size:1rem;border:1px solid #ccc;border-radius:6px;box-sizing:border-box}input[type=file]{padding:.5em 0;background:none;color:inherit}button{padding:.6em 1.2em;font-size:1rem;border-radius:6px;border:none;background:#646cff;color:#fff;font-weight:500;cursor:pointer;margin-top:.2rem;transition:background .2s}button:disabled{opacity:.6;cursor:not-allowed}button.logout{background:#444;margin-bottom:1.5rem}.error{color:#ff6b6b;font-size:.95rem;margin-top:.2rem;text-align:left}.loading{color:#aaa;font-size:.95rem;margin-top:.2rem;text-align:left}.result{margin-top:1rem;word-break:break-all;font-size:.98rem}@media (max-width: 480px){.container{padding:1rem .5rem}.brand{font-size:1rem;margin-bottom:1.2rem}form{margin-bottom:1rem}}.status-indicator{margin-left:8px;font-size:12px}.status-indicator.connected{color:#10b981}.status-indicator.disconnected{color:#ef4444}.ws-error{color:#ef4444;font-size:12px}.job-status-section{margin:20px 0;padding:16px}.job-status-section h3{margin:0 0 16px;color:#1e293b;font-size:18px;font-weight:600}.no-jobs{color:#64748b;font-style:italic;text-align:center;padding:20px}.job-list{display:flex;flex-direction:column;gap:12px}.job-item{background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:8px;transition:all .2s ease;min-width:280px}.job-item:hover{border-color:#cbd5e1;box-shadow:0 1px 3px #0000001a}.job-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.job-details{display:flex;flex-direction:row;gap:8px;align-items:center}.job-status-indicator{font-size:16px;font-weight:500}.status-text{color:#374151;font-size:14px;font-weight:500;text-transform:capitalize}.job-time{font-size:12px;color:#64748b;display:flex;flex-direction:row;gap:4px;align-items:flex-end}.duration{font-size:11px;color:#94a3b8}.job-args{font-size:14px;color:#0b0c0c;font-family:Courier New,monospace;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:250px}.job-error{color:#dc2626;font-size:14px;background:#fef2f2;padding:6px 8px;border-radius:4px;border:1px solid #fecaca}.job-result{margin-top:8px}.recipe-link{display:inline-block;color:#3b82f6;text-decoration:none;font-weight:500;padding:4px 8px;background:#eff6ff;border-radius:4px;border:1px solid #bfdbfe;transition:all .2s ease}.recipe-link:hover{background:#dbeafe;border-color:#93c5fd}@media (max-width: 768px){.job-header{flex-direction:column;align-items:flex-start;gap:4px}.job-time{align-items:flex-start}}
