:root{--bg:#0b0d12;--surface:#151923;--surface-2:#1d2330;--border:#2a3140;--text:#e7ecf3;--muted:#9aa6b8;--primary:#5b8cff;--primary-ink:#0b0d12;--ok:#3ecf8e;--warn:#f5a623;--err:#ff6b6b;--radius:12px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.app-header{border-bottom:1px solid var(--border);background:var(--surface);z-index:10;align-items:center;gap:24px;padding:14px 24px;display:flex;position:sticky;top:0}.app-header .brand{color:var(--text);font-size:18px;font-weight:700}.app-header nav{gap:18px;display:flex}.app-header nav a{color:var(--muted);font-size:14px}.app-header nav a.active,.app-header nav a:hover{color:var(--text);text-decoration:none}.container{max-width:920px;margin:0 auto;padding:28px 24px 64px}h1{margin:0 0 6px;font-size:26px}h2{margin:0 0 12px;font-size:18px}.muted{color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px}.grid{gap:14px;display:grid}.grid.cols{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}label{color:var(--muted);gap:6px;font-size:13px;display:grid}input,select{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:8px;width:100%;padding:10px 12px;font-size:14px}input:focus,select:focus{outline:2px solid var(--primary);border-color:#0000}button{background:var(--primary);color:var(--primary-ink);cursor:pointer;border:0;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:600}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.badge{border:1px solid var(--border);color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge.PENDING{color:var(--muted)}.badge.PROCESSING{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 40%, var(--border))}.badge.COMPLETED{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 40%, var(--border))}.badge.FAILED{color:var(--err);border-color:color-mix(in srgb, var(--err) 40%, var(--border))}.phase-row{border-bottom:1px solid var(--border);grid-template-columns:1fr auto;align-items:center;gap:12px;padding:8px 0;display:grid}.phase-row:last-child{border-bottom:0}.bar{background:var(--surface-2);border-radius:999px;height:6px;margin-top:6px;overflow:hidden}.bar>span{background:var(--primary);height:100%;transition:width .4s;display:block}.list{gap:10px;display:grid}.row{background:var(--surface);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.stack{gap:4px;display:grid}.spacer{flex:1}.toolbar{align-items:center;gap:12px;margin-bottom:20px;display:flex}.empty{text-align:center;color:var(--muted);padding:48px 0}
