:root{--primary:#0052ff;--primary-active:#003ecc;--primary-disabled:#a8b8cc;--ink:#0a0b0d;--body:#5b616e;--muted:#7c828a;--hairline:#dee1e6;--canvas:#fff;--surface-soft:#f7f7f7;--surface-strong:#eef0f3;--up:#05b169;--down:#cf202f;--sans:Inter, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:"JetBrains Mono", "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--pill:100px;--card:24px}*{box-sizing:border-box}body{background:var(--canvas);color:var(--ink);font:400 16px/1.5 var(--sans);margin:0}a{color:var(--primary);text-decoration:none}button{font:inherit}.nav{border-bottom:1px solid var(--hairline);align-items:center;gap:32px;height:64px;padding:0 32px;display:flex}.wordmark{color:var(--ink);font-size:18px;font-weight:600}.nav a.tab{font:500 14px/1.4 var(--sans);color:var(--body);padding:8px 0}.nav a.tab.on{color:var(--ink)}.nav .right{color:var(--muted);align-items:center;gap:16px;margin-left:auto;font-size:14px;display:flex}main{max-width:1200px;margin:0 auto;padding:48px 32px 96px}h1{letter-spacing:-.5px;margin:0 0 8px;font-size:36px;font-weight:400;line-height:1.11}.sub{color:var(--body);margin:0 0 32px}h2{font:600 18px/1.33 var(--sans);margin:32px 0 12px}.btn{border-radius:var(--pill);cursor:pointer;background:var(--surface-strong);height:44px;color:var(--ink);border:0;padding:0 20px;font-weight:600}.btn.primary{background:var(--primary);color:#fff}.btn.primary:active{background:var(--primary-active)}.btn.primary:disabled{background:var(--primary-disabled);cursor:not-allowed}.btn.small{height:36px;padding:0 16px;font-size:14px}.btn.text{color:var(--primary);background:0 0;height:auto;padding:0}.badge{border-radius:var(--pill);background:var(--surface-strong);font:600 12px/1.5 var(--sans);white-space:nowrap;padding:4px 12px;display:inline-block}.badge.up{color:var(--up)}.badge.down{color:var(--down)}.badge.muted{color:var(--muted)}table.rows{border-collapse:collapse;width:100%}.rows th{text-align:left;font:600 12px/1.5 var(--sans);color:var(--muted);border-bottom:1px solid var(--hairline);padding:8px 12px}.rows td{border-bottom:1px solid var(--hairline);vertical-align:middle;padding:14px 12px}.rows tr.link{cursor:pointer}.rows tr.link:active{background:var(--surface-soft)}.num{font-family:var(--mono);text-align:right;white-space:nowrap;font-size:14px;font-weight:500}.rows th.num{font-family:var(--sans)}.name{font-weight:600}.card{border:1px solid var(--hairline);border-radius:var(--card);margin-bottom:24px;padding:32px}.grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;display:grid}.stat{font:500 28px/1.2 var(--mono)}.label{color:var(--muted);font-size:13px}.search{border-radius:var(--pill);background:var(--surface-strong);width:320px;max-width:100%;height:44px;font:inherit;border:0;margin-bottom:16px;padding:0 20px}.search:focus{outline:2px solid var(--primary)}.error{color:var(--down)}.note{color:var(--body);font-size:14px}pre.log{background:var(--surface-soft);font:13px/1.6 var(--mono);white-space:pre-wrap;border-radius:12px;max-height:480px;padding:16px;overflow:auto}ol.steps{margin:0;padding:0;list-style:none}ol.steps li{align-items:center;gap:12px;padding:8px 0;display:flex}ol.steps .dot{background:var(--surface-strong);border-radius:50%;flex:none;width:10px;height:10px}ol.steps .done .dot{background:var(--up)}ol.steps .current .dot{background:var(--primary)}ol.steps .failed .dot{background:var(--down)}ol.steps .todo{color:var(--muted)}dialog{border-radius:var(--card);border:0;width:min(560px,92vw);padding:32px;box-shadow:0 4px 12px #0000000a}dialog::backdrop{background:#0a0b0d66}dialog h2{margin-top:0}.choice{border:1px solid var(--hairline);cursor:pointer;border-radius:12px;gap:12px;margin-bottom:12px;padding:16px;display:flex}.choice.disabled{cursor:not-allowed;color:var(--muted)}.choice input{accent-color:var(--primary);margin-top:4px}.actions{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:70vh;display:flex}@media (width<=640px){.nav{gap:16px;padding:0 16px}main{padding:32px 16px 64px}.hide-sm{display:none}}
