/* People registry (public registration, status, roster link). Uses the site design tokens. */
[hidden]{display:none!important}
.pf-wrap{max-width:900px}
.hp{position:absolute!important;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.pf-form .pf-sec{border:1px solid var(--line);border-radius:20px;padding:1.2rem 1.2rem 1.3rem;margin-bottom:1.1rem;background:color-mix(in srgb,var(--card) 92%,var(--sky))}
.pf-sec h2{font-size:1.1rem;font-weight:800;margin:0 0 1rem;display:flex;gap:.6rem;align-items:center}
.pf-sec h2 .n{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--blue-d));color:#fff;font-size:.85rem;font-weight:800}
.pf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1.1rem}
.pf-grid .full{grid-column:1/-1}
@media(max-width:640px){.pf-grid{grid-template-columns:1fr}}
.pf-form label,.pf-form .lbl{font-weight:700;font-size:.85rem;margin-bottom:.3rem;display:block}
.pf-form label small,.pf-form .lbl small{font-weight:500;color:var(--muted)}
.pf-hint{font-size:.78rem;color:var(--muted);margin-top:.3rem}
.pf-hint.bad,.pf-err{color:#b3261e;font-weight:600}
.pf-hint.good{color:var(--green);font-weight:600}
.pf-err{font-size:.8rem;margin-top:.3rem;min-height:0}
.pf-nin{text-transform:uppercase;letter-spacing:.06em;font-variant-ligatures:none}
.pf-nin.is-bad{border-color:#b3261e}.pf-nin.is-good{border-color:var(--green)}
.pf-radios{display:flex;gap:.6rem;flex-wrap:wrap}
.pf-radio{display:inline-flex!important;align-items:center;gap:.45rem;border:1.5px solid var(--line);border-radius:999px;padding:.5rem 1rem;cursor:pointer;margin:0!important;font-weight:700}
.pf-radio:has(input:checked){border-color:var(--blue);background:color-mix(in srgb,var(--blue) 10%,transparent)}
.pf-sports{display:flex;flex-wrap:wrap;gap:.6rem}
.pf-sport{margin:0!important;cursor:pointer}
.pf-sport input{position:absolute;opacity:0;pointer-events:none}
.pf-sport span{display:inline-flex;gap:.45rem;align-items:center;padding:.5rem .95rem;border-radius:999px;border:1.5px solid color-mix(in srgb,var(--c) 45%,transparent);color:var(--c);font-weight:800;background:color-mix(in srgb,var(--c) 7%,transparent);transition:.15s}
[data-theme="dark"] .pf-sport span{color:color-mix(in srgb,var(--c) 60%,#fff)}
.pf-sport input:checked+span{background:var(--c);color:#fff;box-shadow:0 4px 12px color-mix(in srgb,var(--c) 40%,transparent)}
.pf-sport input:focus-visible+span{outline:3px solid var(--gold);outline-offset:2px}
.pf-photo{display:flex;gap:1rem;align-items:flex-start;flex-wrap:wrap}
.pf-photo img{width:96px;height:120px;object-fit:cover;border-radius:14px;border:2px solid var(--line);background:var(--sky)}
.pf-photo>div{flex:1;min-width:220px}
.minor-box{border-color:var(--gold)!important;background:color-mix(in srgb,var(--gold) 10%,var(--card))!important}
.pf-note{font-size:.88rem;background:color-mix(in srgb,var(--blue) 8%,transparent);border-radius:12px;padding:.7rem .9rem}
.req-m{color:#b3261e}
.pf-check{display:flex!important;gap:.7rem;align-items:flex-start;font-weight:500!important;font-size:.88rem!important;cursor:pointer}
.pf-check input{width:22px;height:22px;flex:0 0 22px;margin-top:.15rem}
.pf-actions{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;margin-top:1.2rem}
.pf-fine{font-size:.85rem;color:var(--muted);margin:1rem 0 0}
.pf-banner{display:flex;gap:.9rem;align-items:flex-start;background:color-mix(in srgb,var(--green) 12%,var(--card));border:1.5px solid var(--green);border-radius:16px;padding:.9rem 1.1rem;margin-bottom:1rem}
.pf-banner i{font-size:1.5rem;color:var(--green)}
.pf-banner.warn{background:color-mix(in srgb,var(--gold) 16%,var(--card));border-color:var(--gold)}.pf-banner.warn i{color:#8a6500}
.pf-errors{background:#fdecea;border:1.5px solid #e57373;color:#7a1a14;border-radius:16px;padding:.9rem 1.1rem;margin-bottom:1rem}
[data-theme="dark"] .pf-errors{background:#3a1613;color:#ffd3cf}
.pf-errors ul{margin:.4rem 0 .3rem 1.1rem;padding:0}
.pf-admin{max-width:980px}
/* hub */
.ph-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.1rem}
.ph-card{text-align:left;display:flex;flex-direction:column;gap:.5rem}
.ph-ic{width:60px;height:60px;border-radius:18px;display:grid;place-items:center;font-size:1.6rem;color:#fff;background:linear-gradient(135deg,var(--blue),var(--green))}
.ph-card h3{margin:.3rem 0 0;font-size:1.25rem;font-weight:800}.ph-card p{color:var(--muted);flex:1;margin:0}
.ph-acts{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}.ph-acts .btn-cta,.ph-acts .btn-line{padding:.45rem .9rem;font-size:.85rem}
.ph-list{padding-left:1.2rem}.ph-list li{margin-bottom:.35rem}
.ph-steps{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;padding:0;margin:0;counter-reset:s}
.ph-steps li{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:1.1rem;position:relative;box-shadow:var(--shadow-s)}
.ph-steps li b{position:absolute;top:-14px;left:16px;background:var(--gold);color:#111;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;font-weight:900}
.ph-steps h3{margin:.6rem 0 .3rem;font-size:1.05rem;font-weight:800}.ph-steps p{margin:0;font-size:.9rem;color:var(--muted)}
.ph-faq{display:grid;gap:.6rem;max-width:860px}
.ph-faq details{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:.8rem 1.1rem}
.ph-faq summary{font-weight:800;cursor:pointer}.ph-faq p{margin:.6rem 0 0;color:var(--muted)}
/* acknowledgement */
.ack{background:#fff;color:#111;border:2px solid var(--blue);border-radius:22px;padding:1.6rem;max-width:640px;margin:0 auto;box-shadow:var(--shadow-s)}
.ack-head{display:flex;gap:1rem;align-items:center;border-bottom:3px double var(--gold);padding-bottom:1rem}.ack-head img{border-radius:14px}
.ack-head b{display:block;font-size:1.15rem;color:var(--blue)}.ack-head span{color:#555;font-size:.9rem}
.ack-ref{text-align:center;margin:1.2rem 0}.ack-ref span{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:#555}
.ack-ref b{font-family:var(--ff-display);font-style:italic;font-size:2.2rem;color:var(--green);letter-spacing:.03em;word-break:break-all}
.ack-dl{display:grid;grid-template-columns:130px 1fr;gap:.4rem .8rem;margin:0}.ack-dl dt{color:#666;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;padding-top:.15rem}.ack-dl dd{margin:0}
.ack-note{font-size:.85rem;color:#444;margin:1rem 0 0;border-top:1px dashed #bbb;padding-top:.8rem}
.ph-next{padding-left:1.2rem}.ph-next li{margin-bottom:.4rem}
/* status */
.st-result{border-left:8px solid var(--line)}.st-ok{border-left-color:var(--green)}.st-warn{border-left-color:var(--gold)}.st-bad{border-left-color:#b3261e}.st-info{border-left-color:var(--blue)}
.st-note{background:color-mix(in srgb,var(--gold) 14%,transparent);border-radius:12px;padding:.8rem 1rem;margin-top:.8rem}
/* roster link */
.rp-box{margin-bottom:1rem}.rp-title{font-size:1.05rem;font-weight:800;margin:0 0 .3rem;display:flex;gap:.5rem;align-items:center}.rp-title i{color:var(--blue)}
.rp-sub{font-size:.86rem;color:var(--muted);margin:0 0 .8rem}.rp-empty{font-size:.88rem;color:var(--muted);margin:0}
.rp-list{list-style:none;margin:0 0 .8rem;padding:0;display:grid;gap:.5rem}
.rp-list li{border:1px solid var(--line);border-radius:14px;padding:.45rem .7rem}.rp-list li.off{opacity:.65;background:color-mix(in srgb,var(--sky) 60%,transparent)}
.rp-list label{display:flex;gap:.7rem;align-items:center;margin:0;cursor:pointer;width:100%}
.rp-list input{width:20px;height:20px;flex:0 0 20px}
.rp-av{width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--sky);display:grid;place-items:center;flex:0 0 40px;font-size:.8rem;color:var(--blue)}.rp-av img{width:100%;height:100%;object-fit:cover}
.rp-info{display:flex;flex-direction:column;line-height:1.25;min-width:0}.rp-info small{color:var(--muted);font-size:.76rem}.rp-info .bad{color:#b3261e;font-weight:700}.rp-info .good{color:var(--green);font-weight:700}
.rp-acts{display:flex;gap:.5rem;flex-wrap:wrap}
@media print{.pf-actions,.no-print{display:none!important}.ack{box-shadow:none;border-color:#000}}
