:root { --bg:#0f1419; --card:#1a2029; --fg:#e6edf3; --muted:#8b949e; --accent:#2f81f7; --ok:#3fb950; --err:#f85149; }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, sans-serif; background:var(--bg); color:var(--fg); }
.centered { display:flex; min-height:100vh; align-items:center; justify-content:center; }
.card { background:var(--card); padding:2rem; border-radius:12px; width:320px; }
.topbar { display:flex; justify-content:space-between; align-items:center; padding:1rem 1.5rem; border-bottom:1px solid #2a3038; }
.container { max-width:820px; margin:0 auto; padding:1.5rem; }
textarea, input { width:100%; background:#0d1117; color:var(--fg); border:1px solid #30363d; border-radius:8px; padding:.6rem; font-size:1rem; }
label { display:block; margin:.5rem 0 .3rem; color:var(--muted); }
button { margin-top:.8rem; background:var(--accent); color:#fff; border:0; border-radius:8px; padding:.6rem 1.1rem; font-size:1rem; cursor:pointer; }
button.link { background:none; color:var(--muted); padding:0; margin:0; }
button:disabled { opacity:.5; cursor:default; }
.jobs ul { list-style:none; padding:0; }
.job { background:var(--card); border-radius:10px; padding:.8rem 1rem; margin:.6rem 0; }
.job .title { font-weight:600; }
.job .meta { color:var(--muted); font-size:.85rem; word-break:break-all; }
.badge { font-size:.75rem; padding:.15rem .5rem; border-radius:999px; text-transform:uppercase; margin-left:.5rem; }
.badge.queued { background:#30363d; }
.badge.running { background:#1f6feb; }
.badge.done { background:var(--ok); }
.badge.failed { background:var(--err); }
.job-actions { margin-top:.5rem; display:flex; gap:.5rem; }
.error { color:var(--err); }
