:root{color:#1f2328;--border:#d0d7de;--muted:#59636e;--accent:#0969da;--danger-bg:#ffebe9;--danger-fg:#a40e26;--success-bg:#dafbe1;--success-fg:#116329;--highlight:#fff8c5;background:#f6f8fa;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body{margin:0}.app{max-width:1200px;margin:0 auto;padding:1.5rem}.app-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.workflow{gap:1rem;display:grid}.panel{border:1px solid var(--border);background:#fff;border-radius:8px;min-width:0;padding:1rem 1.25rem}.panel h2{margin-top:0;font-size:1.1rem}.muted{color:var(--muted)}.mono,code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;padding:.4rem .9rem}button.secondary{color:var(--accent);background:#fff}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font:inherit;border:1px solid var(--border);border-radius:6px;padding:.35rem .5rem}textarea{resize:vertical}button.link{color:var(--accent);background:0 0;border:none;justify-self:start;padding:0;text-decoration:underline}.badge.subtle{color:var(--muted);margin-left:.5rem;font-weight:500}.status{background:#eaeef2;border-radius:999px;padding:.25rem .75rem;font-size:.875rem}.status[data-state=ok]{background:var(--success-bg);color:var(--success-fg)}.status[data-state=degraded],.status[data-state=unreachable]{background:var(--danger-bg);color:var(--danger-fg)}.alert{background:var(--danger-bg);color:var(--danger-fg);border-radius:6px;align-items:center;gap:.75rem;margin:.5rem 0;padding:.6rem .8rem;display:flex}.notice{background:var(--highlight);border-radius:6px;padding:.6rem .8rem}.file-list{max-height:16rem;margin:0 0 .75rem;padding:0;list-style:none;overflow-y:auto}.file-option{cursor:pointer;border-radius:6px;align-items:center;gap:.6rem;padding:.4rem .5rem;display:flex}.file-option[data-selected=true]{background:#ddf4ff}.file-name{overflow-wrap:anywhere;flex:1}.column-picker fieldset{border:none;margin:0 0 .75rem;padding:0}.column-picker legend{margin-bottom:.4rem;font-weight:600}.chips{flex-wrap:wrap;gap:.4rem;display:flex}.chip{border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .6rem;display:inline-flex}.table-wrap{margin:.75rem 0;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.875rem}.data-table caption{text-align:left;color:var(--muted);padding-bottom:.3rem}.data-table th,.data-table td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:.35rem .6rem}.data-table tr.matched td{background:var(--highlight)}.job-form{gap:.6rem;max-width:40rem;margin-top:1rem;display:grid}.field{gap:.25rem;display:grid}.field label{font-weight:600}.field-error{color:var(--danger-fg);margin:0}.job-form button[type=submit]{justify-self:start}.job-status-header{align-items:center;gap:.75rem;display:flex}.job-status-header button{margin-left:auto}.badge{background:#eaeef2;border-radius:999px;padding:.15rem .6rem;font-size:.8rem;font-weight:600}.badge[data-status=RUNNING]{color:var(--accent);background:#ddf4ff}.badge[data-status=SUCCESS]{background:var(--success-bg);color:var(--success-fg)}.badge[data-status=FAILED]{background:var(--danger-bg);color:var(--danger-fg)}.progress-row{align-items:center;gap:.6rem;margin:.75rem 0;display:flex}.progress-row progress{flex:1;max-width:24rem}.job-meta{grid-template-columns:max-content 1fr;gap:.25rem 1rem;margin:0;display:grid}.job-meta dt{color:var(--muted)}.job-meta dd{overflow-wrap:anywhere;margin:0}.transform-options{border:none;gap:.4rem;margin:0;padding:0;display:grid}.transform-options legend{margin-bottom:.4rem;font-weight:600}.transform-option{border:1px solid var(--border);cursor:pointer;border-radius:6px;align-items:flex-start;gap:.6rem;padding:.5rem .6rem;display:flex}.transform-option[data-selected=true]{border-color:var(--accent);background:#ddf4ff}.transform-option>span{gap:.1rem;display:grid}.spec-list{margin:0;padding-left:1.1rem}.pagination{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.connection-form{gap:.75rem;max-width:34rem;display:grid}.connection-form .hint{color:var(--muted);margin:0;font-size:.85rem}.field-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.connection-form .actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.connected{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.connected p{margin:0}@media (width<=40rem){.field-row{grid-template-columns:1fr}}
