/* Athlete portal (login + profile). Builds on site.css: .page, .f/.fgrid/.fs, .btn, .alert, .tabs, .tblwrap. */
.pp-narrow{max-width:640px;}
.pp-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.pp .lead{margin-top:14px;}
.pp-card{border:2px solid var(--line2);background:var(--k2);padding:20px 18px;margin-top:24px;}
.pp-login{border:3px solid var(--y);background:#000;box-shadow:8px 8px 0 var(--y);margin-right:8px;display:grid;gap:16px;}
.pp-hint{font-size:12.5px;color:var(--mut);}
.pp-hint a,.pp-note a,.pp-warn a,.alert a{color:var(--y);}
.pp-help{margin-top:36px;border-left:4px solid var(--y);padding-left:16px;color:var(--mut);display:grid;gap:10px;font-size:15px;}
.pp-help h2,.pp-h2{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(26px,3vw,36px);line-height:1;color:var(--w);}
.pp-help b{color:var(--w);}
.pp-help a{color:var(--y);}
.pp-link{color:var(--y);text-decoration:underline;text-underline-offset:3px;font:inherit;font-size:13px;min-height:44px;display:inline-flex;align-items:center;}
.pp-note{color:var(--mut);font-size:14px;margin:4px 0 12px;}
.pp-h3{font-family:var(--mono);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--y);margin:28px 0 10px;}
.pp .alert{margin:14px 0;}

/* header + tabs */
.pp-head{display:flex;flex-wrap:wrap;gap:14px 20px;align-items:flex-end;justify-content:space-between;}
.pp-head-t{min-width:0;}
.pp-head .label{margin-bottom:10px;}
.pp-head .page-title{overflow-wrap:anywhere;}
.pp-tabs{margin-top:28px;}
.pp-panel{padding-top:24px;outline:none;}
.pp-who{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:20px;}
.pp-who-l{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);margin-right:4px;}
.pp-who .pill[aria-pressed="true"]{background:var(--y);color:#000;border-color:var(--y);}

/* race card: stat tiles */
.pp-race{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:2px solid var(--w);border-left:1px solid var(--line);}
@media (min-width:900px){.pp-race{grid-template-columns:repeat(3,minmax(0,1fr));}}
.pp-stat{padding:14px 12px 16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px;min-width:0;}
.pp-stat small{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);}
.pp-stat b{font-weight:700;font-size:16px;overflow-wrap:anywhere;}
.pp-stat .pp-big{font-family:var(--display);font-weight:400;font-size:clamp(30px,4vw,44px);line-height:1;color:var(--y);}
.pp-stat span{font-size:13px;color:var(--mut);}
.pp-stat .pp-link{min-height:32px;}
.pp-stat-w{grid-column:1/-1;}
.pp-stat-w b{font-family:var(--display);font-weight:400;font-size:clamp(24px,3vw,32px);text-transform:uppercase;line-height:1.05;}
.pp-reg{font-size:14px !important;}
.pp-ok{color:var(--y);}
.pp-warn{border:2px solid var(--y);border-left-width:8px;background:rgba(255,214,10,.08);padding:14px 16px;margin:14px 0;font-size:14.5px;}
.pp-warn b{color:var(--y);}

/* profile form */
.pp-form{margin-top:24px;}
.pp-lock{border:0;padding:0;margin:0;}
.pp-lock[disabled]{opacity:.7;}
.pp-form .fs{margin-bottom:16px;}
.pp-form .f input:disabled,.pp-form .f select:disabled{color:var(--mut);border-style:dashed;}
.pp-need{border-color:var(--y);box-shadow:inset 6px 0 0 var(--y);}
.pp-onfile{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;border:1px solid var(--line2);padding:8px 8px 8px 14px;margin-bottom:12px;}
.pp-onfile b{color:var(--y);}
#pp-id-fields[hidden]{display:none;}
.pp-save{margin-top:6px;width:100%;}
@media (min-width:640px){.pp-save{width:auto;}}

/* gym */
.pp-gym .label{margin-bottom:8px;}
.pp-gym p b{color:var(--y);}
.pp-gym-form{display:grid;gap:12px;max-width:460px;}
.pp-gym-form .btn{justify-self:start;}

/* results */
.pp-res-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-bottom:16px;}
.pp-res-h .pp-note{margin:0;}
.pp-badge{font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line2);padding:5px 9px;color:var(--mut);}
.pp-badge.on{background:var(--y);border-color:var(--y);color:#000;}
.pp-meta{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:14px;font-size:14px;color:var(--mut);}
.pp-meta b{color:var(--w);font-weight:700;}
.pp-gymres .label{margin-bottom:12px;}
.pp-gymres .pp-race{border-left:0;}
.pp-tbl{border-top:2px solid var(--w);}
.pp-tbl table{min-width:0;}
.pp-tbl th,.pp-tbl td{padding:10px 8px;}
.pp-tbl td:first-child{font-family:var(--body);font-size:14px;color:var(--w);width:auto;white-space:normal;}
.pp-tbl td small{display:block;color:var(--mut);font-size:12px;}
.pp-tbl .num{text-align:right;}
.pp-tbl abbr{text-decoration:none;}
@media (min-width:640px){.pp-tbl th,.pp-tbl td{padding:12px 14px;}}
.pp-up{color:var(--y);font-size:11px;}
.pp-down{color:#ff6b5e;font-size:11px;}
.pp-empty{border:2px dashed var(--line2);padding:36px 18px;}

/* shop */
.pp-owned{display:grid;gap:10px;margin:12px 0 30px;}
@media (min-width:700px){.pp-owned{grid-template-columns:1fr 1fr;}}
.pp-owned-i{border:2px solid var(--y);padding:14px 16px;display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:start;}
.pp-owned-i ul{grid-column:1/-1;color:var(--mut);font-size:14px;}
.pp-owned-i small{color:var(--mut);}
.pp-owned-tag{font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--y);}
.pp-offers{display:grid;gap:12px;margin-top:14px;}
@media (min-width:900px){.pp-offers{grid-template-columns:1fr 1fr;}.pp-offers-1{grid-template-columns:1fr;max-width:900px;}}
.pp-offer{border:2px solid var(--line2);padding:16px;background:var(--k2);transition:border-color .2s;min-width:0;}
.pp-offer.on{border-color:var(--y);}
.pp-offer-h{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;}
.pp-offer-h>div{min-width:0;}
.pp-offer h3{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(22px,2.4vw,28px);line-height:1.05;margin-top:4px;overflow-wrap:anywhere;}
.pp-kind{font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--y);}
.pp-save-tag{display:inline-block;background:var(--y);color:#000;font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;}
.pp-price{font-family:var(--mono);font-weight:800;font-size:18px;white-space:nowrap;text-align:right;}
.pp-price s{display:block;font-size:13px;font-weight:500;color:var(--mut);}
.pp-price small{display:block;font-size:11px;font-weight:500;color:var(--mut);letter-spacing:.04em;}
.pp-ev{color:var(--y);font-size:14px;font-weight:700;}
.pp-tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;}
.pp-tags li{border:1px solid var(--line2);font-size:12px;padding:3px 8px;}
.pp-slots{border:0;padding:0;margin:10px 0 0;display:grid;}
.pp .check{min-height:44px;align-items:center;cursor:pointer;}
.pp .check.is-owned{cursor:default;color:var(--mut);}
.pp .check em{font-style:normal;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--y);margin-left:6px;}
.pp .check i{color:var(--y);font-style:normal;}
.pp-opts{border-top:1px dashed var(--line2);margin-top:10px;padding-top:12px;}
.pp-opts[hidden]{display:none;}
.pp-opts-h{font-family:var(--mono);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;}
.pp-pay{border:3px solid var(--y);background:#000;padding:16px 18px;margin-top:20px;max-width:520px;}
.pp-pay .alert{margin:12px 0 0;}
.pp-pay .btn{margin-top:14px;}
.pp-pay .btn:disabled{--bg:#333;--fg:#888;cursor:not-allowed;box-shadow:none;}
.pp-offer-f{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin-top:12px;}
.pp-buy:empty{display:none;}
.pp-buy{margin-top:16px;}
.pp-second{display:grid;gap:4px;}
.pp-second .fs{background:#000;}
.pp-second .sum-row{margin-top:10px;}
.pp-second .btn{margin-top:12px;}
.pp-waiver[hidden]{display:none;}
.pp-pending{display:flex;gap:10px;align-items:center;}
.pp .btn:disabled{cursor:not-allowed;}
.pp .btn .spin{width:14px;height:14px;}
@media (prefers-reduced-motion:reduce){.pp .spin{animation-duration:2s;}}
/* fields keep their natural height when a neighbour in the row has a hint */
.pp .f{align-content:start;}
@media (max-width:479px){.pp-tabs .tab{padding:0 12px;font-size:12px;}}
