@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600&display=swap";:root{--bg: #f4f6fb;--surface: #ffffff;--surface-2: #f3f4f8;--card: #ffffff;--accent: #2d6cdf;--accent-2: #12b3a8;--text: #0f172a;--muted: #556070;--line: rgba(15, 23, 42, .12);--success: #16a34a;--radius: 10px;font-family:Inter,Segoe UI,sans-serif;color:var(--text);background:#f4f6fb}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg)}.app{min-height:100vh;background:radial-gradient(180deg,#f7f8fc,#eef2f8),radial-gradient(180deg,#f7f8fc,#eef2f8),linear-gradient(180deg,#f7f8fc,#eef2f8);animation:fadeIn .5s ease-out}.container{max-width:1180px;margin:0 auto;padding:30px 24px 96px}h1{font-size:36px;margin:8px 0 6px;font-weight:700}h2{margin:0 0 8px;font-size:22px}h3{margin:0 0 6px;font-size:18px}.card h3{overflow-wrap:anywhere;word-break:break-word}.output-name,.output-source{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.output-name{font-size:14px;line-height:1.25}.output-download-button{display:block;width:fit-content;margin:8px auto 2px;padding:6px 10px;font-size:12px;border:0}p{margin:0 0 12px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap}.header-bar{padding:14px 24px;background:var(--surface);box-shadow:0 8px 20px #0f172a0f;width:100%;position:sticky;top:0;z-index:10}.brand-block{display:flex;align-items:center;gap:16px}.topbar-actions,.header-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.brand-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--radius);background:#2d6cdf14;border:1px solid rgba(45,108,223,.25);font-weight:600;text-transform:uppercase;letter-spacing:.12em;font-size:11px}.workflow-panel{display:grid;gap:12px;max-width:360px;margin-left:0;margin-right:auto;justify-self:start}.workflow-tag{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius);background:transparent;border:0;font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;width:fit-content;margin-left:auto;margin-right:auto}.workflow-step-row{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:center;padding:10px 12px;border-radius:var(--radius);border:1px solid rgba(15,23,42,.1);background:#f8f9fc;color:var(--muted);text-align:left;cursor:pointer}.workflow-step-row strong{width:26px;height:26px;border-radius:var(--radius);display:grid;place-items:center;font-size:11px;background:#fff;border:1px solid rgba(15,23,42,.1)}.workflow-step-row.active{color:var(--text);border-color:#2d6cdf4d;background:#2d6cdf14}.workflow-step-row.active strong{background:#2d6cdf26;border-color:#2d6cdf66}.workflow-step-row.done{color:var(--text);border-color:#16a34a4d;background:#16a34a14}.workflow-step-row.done strong{background:#16a34a26;border-color:#16a34a66}.workflow-step-row.disabled{opacity:.6}.workflow-step-row:hover{border-color:#2d6cdf66;transform:translateY(-1px)}.workflow-action{display:grid;gap:4px;padding:10px 12px;border-radius:var(--radius);background:#f1f4fa;border:1px solid rgba(15,23,42,.1)}.workflow-action strong{font-size:14px}.status-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;min-width:100px;text-align:center}.status-card span{display:block;font-size:12px;color:var(--muted)}.status-card strong{font-size:18px}.panel{background:var(--surface);border-radius:var(--radius);padding:20px;border:1px solid var(--line);box-shadow:0 10px 24px #0f172a0f;margin-bottom:18px}.create-job-card{max-width:360px}.jobs-page{display:grid;gap:18px}.list-layout{align-items:start}.jobs-page .create-job-card{max-width:none}.panel-header{display:flex;justify-content:space-between;align-items:center;text-align:left}.panel-header>div{text-align:left}.outputs-header{margin-bottom:12px}.toggle-control{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-control input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.toggle-slider{position:relative;width:42px;height:24px;border-radius:999px;background:#cbd5e1;box-shadow:inset 0 0 0 1px #0f172a1f;transition:background .2s ease,box-shadow .2s ease}.toggle-slider:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f172a40;transition:transform .2s ease}.toggle-control input:checked+.toggle-slider{background:var(--accent);box-shadow:inset 0 0 0 1px #1d4ed840}.toggle-control input:checked+.toggle-slider:after{transform:translate(18px)}.config-mode{display:flex;gap:10px;margin:12px 0 16px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.card{background:var(--surface-2);border-radius:var(--radius);padding:16px;border:1px solid rgba(15,23,42,.08);transition:transform .2s ease,border .2s ease}.card-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:8px}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius);font-size:11px;font-weight:600;border:1px solid transparent}.badge.ok{background:#16a34a1f;border-color:#16a34a4d;color:#166534}.badge.off{background:#0f172a0f;border-color:#0f172a1f;color:var(--muted)}.card:hover{transform:translateY(-3px);border-color:#2d6cdf59}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}.detail-layout{grid-template-columns:minmax(115px,215px) minmax(0,1fr)}.jobs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:16px}.jobs-grid.list{grid-template-columns:1fr}.job-card{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius);border:1px solid rgba(15,23,42,.12);background:#f8f9fc;text-align:left}.job-card strong{display:block;font-size:14px}.job-card .muted{font-weight:400}.job-card.active{border-color:#2d6cdf59;box-shadow:0 10px 20px #2d6cdf1f;background:#2d6cdf14}.pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius);font-size:11px;font-weight:600;background:#0f172a14;color:var(--text)}.button,button{background:#eef2ff;color:var(--text);border:1px solid rgba(45,108,223,.2);padding:8px 12px;border-radius:var(--radius);cursor:pointer;font-weight:600;transition:all .2s ease;text-decoration:none}.icon-button{padding:6px 8px;line-height:1;border-color:#0f172a1f}.button.primary,button.primary{background:linear-gradient(120deg,var(--accent),#1d4ed8);box-shadow:0 8px 18px #2d6cdf33;color:#fff;border:1px solid rgba(45,108,223,.35)}.button.ghost,button.ghost{background:transparent;color:var(--text);border:1px solid rgba(15,23,42,.18)}.button.ghost.icon-button,button.ghost.icon-button{border-color:#0f172a1f}.button.full{width:100%;margin-top:12px}.button:hover,button:hover{transform:translateY(-1px);border-color:#94a3b866}.button:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid rgba(45,108,223,.45);outline-offset:2px}button.workflow-step-row{padding:10px 12px;background:#f8f9fc;border:1px solid rgba(15,23,42,.1);box-shadow:none;text-transform:none}button.workflow-step-row:hover{border-color:#2d6cdf66;transform:translateY(-1px)}.button:disabled,button:disabled{cursor:not-allowed;opacity:.6;transform:none;box-shadow:none}input[type=text],input[type=email],input[type=password],input[type=file],select,textarea{width:100%;padding:11px 12px;margin-top:6px;border-radius:var(--radius);border:1px solid rgba(15,23,42,.18);background:#fff;color:var(--text);font-family:inherit;font-size:14px;line-height:1.4}label{display:block;font-weight:600;margin-top:12px}textarea.json{min-height:280px;font-family:Space Grotesk,sans-serif}.checkbox{display:flex;gap:8px;align-items:center;margin-top:12px}.muted{color:var(--muted);font-size:.9rem}.mini{font-size:.78rem}.toast{position:fixed;top:78px;left:50%;transform:translate(-50%);z-index:30;padding:10px 14px;border-radius:var(--radius);font-size:13px;font-weight:600;box-shadow:0 12px 24px #0f172a33;animation:toastIn .2s ease-out}.toast-success{background:#16a34a;color:#fff;border:1px solid #15803d}.user{display:flex;gap:8px;align-items:center}.user-pill{display:grid;gap:2px;padding:8px 12px;border-radius:var(--radius);background:var(--surface-2);border:1px solid rgba(15,23,42,.08);min-width:160px}.user-pill strong{font-size:13px}.detail-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 18px}.detail-meta{display:grid;gap:4px;padding:8px 12px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a59;display:grid;place-items:center;padding:24px;z-index:20}.modal-card{width:min(620px,92vw)}.workflow-list{display:grid;gap:10px;margin-top:14px}.mapping .row input{flex:1}.mapping-mode-toggle{width:fit-content;justify-content:center;margin:12px auto;padding:8px 10px;border-radius:var(--radius);border:0;background:#0f172a08}.mapping-mode-toggle .mini{font-size:12px;font-weight:600;letter-spacing:.01em}.mapping-mode-label{color:var(--muted);transition:color .2s ease}.mapping-mode-label.active{color:var(--text)}.mapping{margin-top:8px;padding:0 12px 12px;border-radius:var(--radius);border:1px solid rgba(15,23,42,.1);background:#fff9;max-height:320px;overflow-y:auto}.mapping strong{font-size:13px}.mapping-header-row{margin-bottom:10px}.mapping .row{margin-bottom:8px}.mapping .row:last-child{margin-bottom:0}.mapping-table-header{display:grid;grid-template-columns:minmax(140px,1fr) minmax(160px,1fr);gap:10px;align-items:center;margin:0 -12px 8px;padding:12px;border-radius:var(--radius);background:#eef3fb;box-shadow:0 1px #0f172a0f;position:sticky;top:0;z-index:2}.mapping-col-head{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;text-align:left;padding-left:2px}.mapping-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(160px,1fr);gap:10px;align-items:center;padding:4px 0}.mapping-col-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.mapping-download-row{margin-top:14px}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;gap:24px;padding:40px 24px;align-items:center}.auth-shell-centered{grid-template-columns:1fr;place-items:center;background:radial-gradient(1200px 420px at 50% -120px,rgba(18,179,168,.14),transparent 60%),linear-gradient(180deg,#f6f8fc,#eef2f8)}.auth-shell-split{grid-template-columns:minmax(360px,1.05fr) minmax(340px,.95fr);background:radial-gradient(900px 480px at -10% -10%,rgba(18,179,168,.16),transparent 70%),linear-gradient(180deg,#f7f9fd,#eef2f8)}.auth-details-panel{max-width:620px;padding:28px}.auth-details-panel h1{margin:16px 0 10px;font-size:44px;line-height:1.05}.auth-details-panel p{color:var(--muted);font-size:1rem}.auth-details-grid{margin-top:24px;display:grid;gap:14px}.auth-details-grid article{background:#ffffffc7;border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:14px 16px}.auth-details-grid h3{margin:0 0 6px;font-size:16px}.auth-details-grid p{margin:0;font-size:.92rem}.auth-hero{max-width:520px;padding:24px}.auth-hero h1{font-size:40px}.auth-card{background:var(--surface);border-radius:var(--radius);width:min(500px,92vw);padding:36px;border:1px solid var(--line);box-shadow:0 18px 36px #0f172a1f;max-width:500px;justify-self:center}.fly-auth-card{width:min(540px,94vw);max-width:540px;padding:40px;border-radius:14px;border:1px solid rgba(15,23,42,.12);box-shadow:0 24px 44px #0f172a24}.fly-auth-card .brand-pill{margin-bottom:20px}.fly-auth-card h2{font-size:26px;line-height:1.15;letter-spacing:-.01em;margin-bottom:6px;font-weight:600}.fly-auth-card .muted{font-size:.9rem;margin-bottom:16px;color:#64748b}.fly-field-label{font-size:.82rem;font-weight:600;letter-spacing:.01em;text-transform:uppercase;color:#475569}.auth-switch-text{margin:6px 0 14px}.auth-link-button{background:transparent;border:0;padding:0;color:inherit;font-weight:400;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.auth-link-button:hover{color:inherit}.forgot-link{margin-top:10px;display:inline-block}.auth-card h2{margin-bottom:10px;font-size:28px}.auth-card .muted{margin-bottom:16px}.auth-card label{margin-top:14px}.auth-card input[type=email]{margin-top:8px;padding:12px 13px;font-size:14px}.auth-card .button.full{margin-top:16px}.fly-auth-submit{margin-top:18px;font-weight:600}.auth-status-message{margin-top:14px}.auth-field-hint{display:block;margin-top:4px;color:var(--muted);font-size:.82rem;font-weight:500}.hero-stats{display:flex;gap:18px;margin-top:24px;flex-wrap:wrap}.hero-stats div{background:var(--surface);border:1px solid var(--line);padding:10px 14px;border-radius:var(--radius);min-width:140px}.hero-stats strong{font-size:20px;display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}@media (max-width: 900px){.hero,.auth-shell{grid-template-columns:1fr}.auth-details-panel{display:none}.fly-auth-card{padding:28px 22px}.workflow-panel{gap:14px}.detail-layout{grid-template-columns:1fr}.toast{left:50%;top:72px}}
