:root{--bg:#f6f7f9;--card:#ffffff;--ink:#1a202c;--muted:#64748b;--line:#e2e8f0;--accent:#2563eb;--danger:#dc2626}*{box-sizing:border-box}:root{--sk-base:#e8edf3;--sk-sheen:#f4f7fa}@keyframes sk-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.sk{border-radius:4px;background-color:var(--sk-base);background-image:linear-gradient(90deg,var(--sk-base) 0,var(--sk-sheen) 45%,var(--sk-base) 90%);background-size:200% 100%;animation:sk-shimmer 1.35s linear infinite}@media (prefers-reduced-motion:reduce){.sk{animation:none;background-image:none}}.sk-line{height:12px;margin:7px 0}.sk-line:last-child{width:55%}.sk-title{height:20px;width:40%;margin:0 0 14px}.sk-card-body{padding:2px 0}.sk-actions{display:flex;gap:10px;margin-top:.65rem}.sk-actions>.sk{height:46px;flex:1 1;border-radius:10px}.sk-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:root{--nav-ink:#f8fafc;--nav-ground:#182230;--nav-ground-hi:#243447;--nav-line:#35485f;--nav-muted:#93a4b8;--nav-z:60}.nav-trigger{position:fixed;top:calc(env(safe-area-inset-top, 0px) + 8px);left:calc(env(safe-area-inset-left, 0px) + 8px);z-index:calc(var(--nav-z) + 2);width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--nav-line);border-radius:10px;background:rgba(24,34,48,.92);color:var(--nav-ink);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.nav-trigger:hover{background:var(--nav-ground-hi)}.nav-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nav-trigger-bars{display:flex;flex-direction:column;gap:4px;width:18px}.nav-trigger-bars i{display:block;height:2px;border-radius:2px;background:currentColor}.nav-backdrop{position:fixed;inset:0;z-index:var(--nav-z);background:rgba(15,23,42,.45);opacity:0;visibility:hidden;transition:opacity .18s ease,visibility .18s ease}.nav-backdrop.nav-on{opacity:1;visibility:visible}.nav-panel{position:fixed;top:0;left:0;bottom:0;z-index:calc(var(--nav-z) + 1);width:min(84vw,300px);display:flex;flex-direction:column;gap:4px;padding:calc(env(safe-area-inset-top, 0px) + 14px) 14px calc(env(safe-area-inset-bottom, 0px) + 14px);background:var(--nav-ground);color:var(--nav-ink);border-right:1px solid var(--nav-line);transform:translateX(-100%);visibility:hidden;transition:transform .2s ease,visibility .2s ease;overflow-y:auto}.nav-panel.nav-on{transform:translateX(0);visibility:visible}@media (prefers-reduced-motion:reduce){.nav-backdrop,.nav-panel{transition:none}}.nav-brand{display:flex;align-items:center;gap:8px;padding:8px 8px 14px 52px;font-size:12px;font-weight:600;letter-spacing:.14em;color:var(--nav-muted)}.nav-brand-mark{color:var(--nav-ink);font-size:15px}.nav-item,.nav-list{display:flex;flex-direction:column;gap:2px}.nav-item{min-height:44px;justify-content:center;padding:9px 12px;border-radius:8px;border-left:3px solid transparent;color:var(--nav-ink);text-decoration:none}.nav-item:hover{background:var(--nav-ground-hi)}.nav-item:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.nav-item-on{background:var(--nav-ground-hi);border-left-color:var(--accent)}.nav-item-label{font-size:15px;font-weight:500}.nav-item-hint{font-size:11.5px;color:var(--nav-muted)}.nav-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--nav-line)}.nav-signout{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--nav-line);border-radius:8px;background:transparent;color:var(--nav-muted);font:inherit;font-size:13px;cursor:pointer}.nav-signout:hover{background:var(--nav-ground-hi);color:var(--nav-ink)}.nav-clear{padding-left:52px}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.45}main{max-width:1600px;margin:0 auto;padding:1.25rem 1.25rem 4rem}a{color:var(--accent)}button{font:inherit;cursor:pointer}.page-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:0 .75rem}.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.75rem 1rem;margin-bottom:.75rem;max-width:900px}.card-error{border-color:var(--danger)}.card p{margin:.3rem 0}.muted{color:var(--muted);font-size:.875rem}.card pre,details pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.8125rem;margin:.35rem 0}.card input[type=email],.card input[type=text]{max-width:100%}.btn-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.spin{display:inline-block;width:.7em;height:.7em;margin-right:.4em;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:spin .6s linear infinite;vertical-align:-.05em}@keyframes spin{to{transform:rotate(1turn)}}button[aria-busy=true]{cursor:progress}button:disabled{opacity:.65}.kv{color:var(--muted);font-size:.8125rem}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);padding:.4rem .9rem}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-danger{color:var(--danger);border-color:var(--danger);background:var(--card)}@media (pointer:coarse){.btn{min-height:44px}}.hub{max-width:900px}.hub-mark{font-size:1.75rem;color:var(--accent);line-height:1}.hub h1{margin:.35rem 0 .15rem}.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:.75rem;gap:.75rem;margin-top:1.25rem}.hub-tile{display:flex;flex-direction:column;gap:.3rem;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1rem;text-decoration:none;color:var(--ink);min-height:8rem}.hub-tile:focus-visible,.hub-tile:hover{border-color:var(--accent)}.hub-tile-mark{font-size:1.25rem;color:var(--accent);line-height:1}.hub-tile-label{font-size:1.05rem;font-weight:650}.hub-tile-blurb{color:var(--muted);font-size:.875rem}.hub-foot{margin-top:1.5rem}.runs-table{width:100%;border-collapse:collapse;font-size:.875rem;background:var(--card);border:1px solid var(--line);border-radius:10px}.runs-table td,.runs-table th{text-align:left;padding:.45rem .7rem;border-bottom:1px solid var(--line)}.runs-table th{color:var(--muted);font-weight:500}.runs-table tr:last-child td{border-bottom:none}.rt-when{white-space:nowrap}@media (max-width:700px){.runs-table,.runs-table tbody{display:block;border:none;background:none}.runs-table thead{display:none}.runs-table tr{display:grid;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.6rem .75rem;margin-bottom:.6rem;grid-gap:.45rem .75rem;gap:.45rem .75rem}.runs-table td{border:none;padding:0;min-width:0}.runs-table td:before{content:attr(data-label);display:block;color:var(--muted);font-size:.6875rem;text-transform:uppercase;letter-spacing:.4px}.rt-runs tr{grid-template-columns:repeat(3,minmax(0,1fr))}.rt-runs .rt-when{white-space:normal}.rt-firms tr{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.rt-firms td:first-child{grid-column:1/-1}.rt-firms td{overflow-wrap:anywhere}.btn-row form{flex:1 1 8.5rem}.btn-row form .btn{width:100%}}.run-status-running{color:var(--accent);font-weight:600}.run-status-failed{color:var(--danger);font-weight:600}.run-status-completed{color:var(--muted)}.run-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));grid-gap:.7rem 1rem;gap:.7rem 1rem}.run-stats>div{min-width:0}.run-stats .rs-wide{grid-column:span 2}.run-stats label{display:block;color:var(--muted);font-size:.6875rem;text-transform:uppercase;letter-spacing:.4px;margin-bottom:.1rem}.run-stats b{display:block;min-width:0;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.25;overflow-wrap:anywhere}.run-stats .rs-nowrap{white-space:nowrap}.run-stats .muted{font-size:.75rem}.run-stats .rs-sub{display:block;line-height:1.3;overflow-wrap:anywhere}.event-row{display:flex;gap:.6rem;padding:.25rem 0;border-bottom:1px solid var(--line);font-size:.8125rem}.event-row:last-child{border-bottom:none}.event-time{color:var(--muted);white-space:nowrap}.event-phase{color:var(--muted);font-weight:550;min-width:4.5rem}.event-msg{flex:1 1;min-width:12ch;overflow-wrap:anywhere}.event-error{color:var(--danger)}