/* /join: the membership plan page. App tokens from app.css; footer sits at the end of the page, at the bottom on short screens. */
.docpanel>.inner{display:flex;flex-direction:column;min-height:100dvh}
.docpanel>.inner>.sitefoot{margin-top:auto;padding-top:72px}
.join{max-width:620px;margin:40px 0 0;min-width:0}
.join h1{font-size:clamp(34px,5vw,48px);letter-spacing:-.03em;text-wrap:balance;margin:0 0 10px}
.join .lede{color:var(--ink2);max-width:60ch;margin:0 0 24px}
.jform{margin:0 0 28px}
.jplans{border:0;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:10px}
.jplan{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 18px;border:2px solid var(--hair);border-radius:16px;background:var(--panel);cursor:pointer;transition:border-color .18s cubic-bezier(.22,1,.36,1),background-color .18s cubic-bezier(.22,1,.36,1)}
.jplan:hover{border-color:var(--mute)}
.jplan input{position:absolute;opacity:0;width:1px;height:1px}
.jplan:has(input:checked){border-color:var(--acc);background:var(--accs)}
.jplan:has(input:focus-visible){outline:2px solid var(--acc);outline-offset:2px}
.jtick{width:20px;height:20px;border-radius:50%;border:2px solid var(--mute);display:grid;place-items:center}
.jplan:has(input:checked) .jtick{border-color:var(--acc)}
.jplan:has(input:checked) .jtick::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--acc)}
.jname b{display:block;font-size:18px;letter-spacing:-.3px}
.jname small{display:block;color:var(--ink2);font-size:14px;line-height:1.45}
.jprice{text-align:right}
.jprice b{display:block;font-size:24px;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.jprice small{color:var(--mute);font-size:13px}
.jseg{border:0;margin:0 0 18px}
.jseg label{flex:1;display:flex;cursor:pointer}
.jseg input{position:absolute;opacity:0;width:1px;height:1px}
.jseg span{flex:1;text-align:center;padding:9px 12px;border-radius:100px;font-size:15px;font-weight:500;color:var(--mute)}
.jseg input:checked+span{background:var(--panel);color:var(--ink);font-weight:600;box-shadow:0 1px 3px rgba(30,40,70,.08)}
.jseg input:focus-visible+span{outline:2px solid var(--acc);outline-offset:1px}
.jgo{width:100%;min-height:52px}
.jform .note{margin:12px 0 0}
@media (max-width:480px){.jplan{grid-template-columns:20px minmax(0,1fr);padding:14px}.jprice{grid-column:2;text-align:left;display:flex;gap:6px;align-items:baseline}.jprice b{font-size:20px}}
@media (prefers-reduced-motion:reduce){.jplan{transition:none}}
.join .sub a{color:var(--acc)}
/* Agent trades picker: every whole number 0 to 500,000, like the Pricing page. */
.jtrades{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 18px;padding:14px 18px;border:1px solid var(--hair);border-radius:16px;background:var(--panel)}
.jtlab{display:flex;flex-direction:column;gap:2px;font-size:15px;font-weight:600;color:var(--ink)}
.jtlab small{font-size:13px;font-weight:500;color:var(--mute)}
.jstep{display:flex;align-items:center;border:1px solid var(--hair);border-radius:100px;overflow:hidden;flex:none}
.jstep button{width:36px;height:36px;border:0;background:var(--panel);color:var(--ink);font:500 18px Inter,system-ui,sans-serif;cursor:pointer}
.jstep button:hover{background:var(--soft)}
.jstep input{width:84px;height:36px;border:0;border-left:1px solid var(--hair);border-right:1px solid var(--hair);text-align:center;font:600 15px Inter,system-ui,sans-serif;color:var(--ink);background:var(--panel);font-variant-numeric:tabular-nums}
.jstep button:focus-visible,.jstep input:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
@media (max-width:480px){.jtrades{flex-direction:column;align-items:flex-start}}
