:root{color-scheme:light dark;--bg:#f5f7fb;--card:#fff;--text:#172033;--muted:#687287;--line:#dfe5ef;--accent:#2563eb;--ok:#138a52;--bad:#c43c3c;--warn:#b56c00}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,"Noto Sans KR",sans-serif}.wrap{width:min(1180px,calc(100% - 32px));margin:32px auto 80px}.back{color:var(--accent);text-decoration:none}.hero{padding:24px 0}.hero h1{font-size:clamp(30px,5vw,48px);margin:8px 0}.lead{color:var(--muted);font-size:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:22px;margin:18px 0;box-shadow:0 12px 40px rgba(20,30,60,.06)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}label{display:grid;gap:7px;font-weight:700}input,select,textarea,button{font:inherit}input,select,textarea{width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--text)}.actions{display:flex;flex-wrap:wrap;gap:9px;margin:14px 0}button,.button{border:0;border-radius:11px;padding:11px 15px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.primary{background:var(--accent);color:#fff}.secondary{background:#e8eefc;color:#183b7a}.danger{background:#fee9e9;color:#9f2323}.status{padding:13px 15px;border-radius:12px;background:#eef4ff;margin:12px 0}.progress{height:12px;background:#e5eaf2;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;width:0;background:var(--accent);transition:width .2s}.step,.run{border:1px solid var(--line);border-radius:14px;padding:14px;margin:9px 0}.step-head,.run-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.badge{font-size:12px;padding:4px 8px;border-radius:999px;background:#edf1f7}.running .badge{background:#fff1d6;color:var(--warn)}.success .badge{background:#dff7ea;color:var(--ok)}.failed .badge{background:#ffe4e4;color:var(--bad)}.skipped .badge{background:#eee;color:#555}.files{max-height:280px;overflow:auto}.file{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:9px 0}.mini{color:var(--muted);font-size:13px}.notice{border-left:4px solid var(--warn);padding:12px;background:#fff7e9;border-radius:8px}details{margin-top:12px}code{word-break:break-all}@media(prefers-color-scheme:dark){:root{--bg:#0e1320;--card:#171e2d;--text:#eef2fb;--muted:#a8b2c7;--line:#30394c}.secondary{background:#273653;color:#dbe7ff}.status{background:#202d47}.notice{background:#332814}}