:root{--bg:#fafbfd;--bg-elevated:#ffffff;--bg-tinted:#f6f4fb;--ink:#1a1626;--ink-soft:#4a455e;--ink-faint:#8a8499;--rule:#e8e4ef;--rule-soft:#f0edf5;--primary:#6b21a8;--primary-deep:#4c1d7a;--primary-tint:#f3eaff;--accent:#a78bfa;--good:#047857;--warn:#b45309;--bad:#b91c1c;--font-display:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--font-body:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--font-mono:ui-monospace,"SF Mono","Cascadia Mono",Consolas,monospace}*{box-sizing:border-box}body,html{padding:0;background:var(--bg);font-family:var(--font-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}body,h1,h2,h3,h4,html{margin:0;color:var(--ink)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;letter-spacing:-.015em}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}code,pre{font-family:var(--font-mono)}.container{max-width:1100px;margin:0 auto;padding:2rem 1.5rem}.card{background:var(--bg-elevated);border:1px solid var(--rule);border-radius:12px;padding:1.5rem}.btn{background:var(--primary);color:#fff;border:none;border-radius:8px;padding:.6rem 1.2rem;font-size:1rem;cursor:pointer;font-family:var(--font-body)}.btn:disabled{background:var(--ink-faint);cursor:default}.btn-secondary{background:var(--bg-tinted);color:var(--primary);border:1px solid var(--rule)}input[type=password],input[type=text]{border:1px solid var(--rule);border-radius:8px;padding:.6rem .8rem;font-size:1rem;width:100%;font-family:var(--font-body);background:#fff}input:focus{outline:2px solid var(--accent);border-color:var(--accent)}table.data{border-collapse:collapse;width:100%;font-size:.92rem}table.data th{text-align:left;padding:.5rem .75rem;background:var(--primary-tint);color:var(--primary-deep);border-bottom:1px solid var(--rule)}table.data td{padding:.5rem .75rem;border-bottom:1px solid var(--rule-soft)}.chip{display:inline-block;padding:.1rem .6rem;border-radius:999px;font-size:.8rem}.chip-pending{background:var(--bg-tinted);color:var(--ink-faint)}.chip-running{background:#fef3c7;color:var(--warn)}.chip-done{background:#d1fae5;color:var(--good)}.chip-error,.chip-failed{background:#fee2e2;color:var(--bad)}