:root{--paper:#eef1f4;--surface:#fff;--sunk:#e4e8ed;--ink:#0f151c;--ink-2:#48535f;--ink-3:#6f7b87;--line:#cfd6dd;--line-2:#b8c2cc;--accent:#2f6f9f;--accent-ink:#fff;--accent-soft:#dce8f2;--ok:#25786a;--ok-soft:#d9eae6;--warn:#8c6114;--warn-soft:#f1e7d2;--radius:3px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0c1219;--surface:#141c25;--sunk:#0f1720;--ink:#e7ecf1;--ink-2:#a7b3c0;--ink-3:#7a8591;--line:#26303b;--line-2:#35414e;--accent:#74b0d9;--accent-ink:#0c1219;--accent-soft:#14303f;--ok:#4fbaa2;--ok-soft:#0e2a26;--warn:#d5a44e;--warn-soft:#2b2416}}*{box-sizing:border-box}html,body{height:100%}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:ui-sans-serif,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.5}button{font:inherit;color:inherit}.frame{grid-template-columns:64px minmax(0,1fr);min-height:100vh;display:grid}.rail{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;align-items:center;gap:6px;padding:14px 0;display:flex}.rail-mark{border-radius:var(--radius);background:var(--accent);width:34px;height:34px;color:var(--accent-ink);letter-spacing:.02em;place-items:center;margin-bottom:10px;font-size:13px;font-weight:700;display:grid}.rail-item{border-radius:var(--radius);letter-spacing:.04em;width:40px;height:40px;color:var(--ink-3);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;font-size:11px;font-weight:600;display:grid}.rail-item:hover{background:var(--sunk);color:var(--ink)}.rail-item[aria-disabled=true]{opacity:.45;cursor:not-allowed}.rail-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.topbar{border-bottom:1px solid var(--line);background:var(--surface);align-items:center;gap:16px;height:56px;padding:0 22px;display:flex}.org{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);align-items:center;gap:10px;padding:6px 11px;display:flex}.org-name{font-size:13.5px;font-weight:600}.org-label{text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);font-size:10px}.topbar-spacer{flex:1}.who{align-items:center;gap:10px;display:flex}.who-name{font-size:13.5px;font-weight:600;line-height:1.2}.who-role{color:var(--ink-3);font-size:11.5px;line-height:1.2}.avatar{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.linkish{color:var(--ink-3);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.linkish:hover{color:var(--ink)}.content{max-width:1080px;padding:32px 28px 64px}.page-title{letter-spacing:-.015em;margin:0 0 4px;font-size:22px;font-weight:650}.page-sub{color:var(--ink-2);margin:0 0 28px;font-size:14.5px}.section-label{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 12px;font-size:10.5px;font-weight:700}.tiles{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.tile{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;flex-direction:column;gap:8px;padding:18px 20px 16px;transition:border-color .12s,transform .12s;display:flex;position:relative}.tile:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tile:disabled{cursor:not-allowed;background:var(--sunk)}.tile-stripe{border-radius:var(--radius) 0 0 var(--radius);width:3px;position:absolute;inset:0 auto 0 0}.tile-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.tile-name{letter-spacing:-.01em;font-size:16px;font-weight:650}.tile-blurb{color:var(--ink-2);margin:0;font-size:13.5px}.tile-foot{color:var(--ink-3);margin-top:4px;font-size:12.5px}.pill{letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:700}.pill.ready{background:var(--ok-soft);color:var(--ok)}.pill.blocked{background:var(--warn-soft);color:var(--warn)}.tile-reason{color:var(--ink-2);border-left:2px solid var(--line-2);margin:0;padding-left:10px;font-size:13px}.centre{place-items:center;min-height:100vh;padding:24px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:400px;padding:32px 30px}.card.wide{max-width:520px}.card h1{letter-spacing:-.015em;margin:0 0 6px;font-size:20px;font-weight:650}.card p.sub{color:var(--ink-2);margin:0 0 24px;font-size:14px}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:11px;font-weight:700}.field input{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:9px 11px}.field input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.btn{border:1px solid var(--accent);background:var(--accent);width:100%;color:var(--accent-ink);border-radius:var(--radius);cursor:pointer;padding:10px 14px;font-size:14px;font-weight:600}.btn:hover:not(:disabled){filter:brightness(1.07)}.btn:disabled{opacity:.6;cursor:progress}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.alert{border-left:3px solid var(--warn);background:var(--warn-soft);color:var(--ink);border-radius:var(--radius);margin:0 0 16px;padding:11px 14px;font-size:13.5px}.muted{color:var(--ink-3);font-size:13px}code{background:var(--sunk);border:1px solid var(--line);border-radius:2px;padding:1px 5px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.88em}.setup-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.setup-list li{flex-direction:column;gap:3px;display:flex}.setup-list li span{color:var(--ink-3);font-size:12.5px}.overlay{background:var(--paper);z-index:20;text-align:center;place-items:center;gap:10px;padding:24px;display:grid;position:fixed;inset:0}.spinner{border:2px solid var(--line-2);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;margin:0 auto 12px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (max-width:640px){.frame{grid-template-columns:1fr}.rail{border-right:none;border-bottom:1px solid var(--line);flex-direction:row;justify-content:flex-start;padding:8px 14px}.rail-mark{margin-bottom:0}.content{padding:24px 18px 48px}}
