*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body,html{background:#f5f6f8}body{margin:0;min-height:100dvh;color:#15171a;font-family:Arial,Helvetica,sans-serif}a{color:#e5484d;text-decoration:none}button,input,select{font:inherit}header{min-height:82px;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;padding:6px max(20px,calc((100vw - 1000px) / 2));font-weight:800}header img{display:block;max-width:100%;height:auto}main{max-width:1000px;margin:auto;padding:28px 20px 88px}h1{font-size:34px;margin:8px 0 24px}h2{font-size:20px}.subtle{opacity:.72;max-width:760px}.hero{background:#15171a;color:#fff;border-radius:22px;padding:28px;margin-bottom:28px}.hero p{color:#ff575c;font-weight:800;font-size:12px}.hero h1{margin:4px 0 22px}.stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.walletStats{grid-template-columns:repeat(5,1fr)}.stats div{background:#25282d;border-radius:14px;padding:16px}.stats b{display:block;font-size:25px}.card span,.session span,.stats span{display:block;color:#777;font-size:13px;margin-top:5px}.hero .stats span{color:#bbb}.heroActions{display:flex;gap:10px;margin-top:18px}.ctaLink,.heroCta,.heroSecondary,.miniCta{display:inline-flex;align-items:center;justify-content:center;border-radius:11px;font-weight:800}.heroCta{background:#ff5158}.heroCta,.heroSecondary{color:#fff;padding:12px 16px}.heroSecondary{border:1px solid #555}.card{background:#fff;border:1px solid #e3e5e8;border-radius:18px;padding:20px;margin:12px 0;box-shadow:0 4px 18px rgba(0,0,0,.03)}.compact{display:flex;flex-direction:column}.row,.session{display:flex;align-items:center;justify-content:space-between;gap:16px}.session{margin:10px 0}.athleteAction,.session.card{align-items:center}.athleteAction{display:flex;justify-content:space-between;gap:18px}.athleteAction>div{display:flex;flex-direction:column}button{background:#ff4f55;color:#fff;border:0;border-radius:11px;padding:13px 17px;font-weight:800;cursor:pointer;min-height:44px}button:disabled{background:#aaa;cursor:not-allowed}.secondary{background:#292c31;margin-top:25px}.smallBtn{margin:0;padding:9px 12px;min-height:38px}.linkBtn{background:transparent;color:#e5484d;padding:6px 0}.ctaLink{background:#ff4f55;color:#fff;padding:12px 16px}.miniCta{background:#f1f2f4;color:#15171a;padding:10px 13px}.dangerGhost{background:#fff;color:#c9363c;border:1px solid #efb4b7;padding:9px 12px;margin-top:0}.biglink{display:block;background:#ff5158;color:#fff;padding:18px;border-radius:14px;margin:25px 0;font-weight:800}label{display:block;font-size:13px;font-weight:700;margin:12px 0}input,select{width:100%;padding:13px;border:1px solid #d8dbe0;border-radius:10px;margin-top:6px;background:#fff;min-height:44px}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px}.form2{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.toolbar{max-width:420px}.check{display:flex;align-items:center;gap:8px}.check input{width:auto;margin:0}.empty,.notice{padding:20px;border:1px dashed #cfd3d8;border-radius:14px;color:#666}.notice{background:#fff4f4;border-style:solid;margin:12px 0}.pill{background:#e9f8ee!important;color:#19713b!important;padding:6px 10px}.pill,.status{border-radius:99px}.status{font-size:11px!important;background:#eee;padding:5px 8px}.activeStatus,.bookedBtn{background:#e9f8ee!important;color:#19713b!important}.auth{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.auth .card{width:min(440px,100%)}.auth h1{font-size:28px}.error{color:#b42318}.center{min-height:100dvh;display:grid;place-items:center;font-weight:800}.bookingRow{justify-content:space-between;gap:18px}.bookingActions,.bookingRow{display:flex;align-items:center}.bookingActions{gap:10px}.sessionButton{width:100%;text-align:left;color:#15171a;cursor:pointer}.sessionButton:hover{border-color:#ff6a70;transform:translateY(-1px)}.sessionButton small{color:#e5484d;font-weight:800;margin-top:10px}.bookingFilters{display:grid;grid-template-columns:repeat(2,minmax(0,320px));grid-gap:16px;gap:16px}.accessBanner{display:flex;justify-content:space-between;gap:12px;background:#15171a;color:#fff;padding:15px 18px;border-radius:14px;margin:10px 0 18px}.accessBanner span{color:#ddd}.rosterPanel{margin-top:24px}.rosterPanel h2{margin:4px 0}.rosterRow{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #eceef0}.rosterRow:last-child{border-bottom:0}.rosterRow span{color:#777}.pageTitleRow{display:flex;justify-content:space-between;align-items:center;gap:16px}.tabs{display:flex;gap:8px}.tab{background:#fff;color:#555;border:1px solid #d8dbe0}.activeTab{background:#15171a;color:#fff;border-color:#15171a}.inlineActions{gap:10px;margin-top:14px}.inlineActions,.programCard{display:flex;align-items:center}.programCard{justify-content:space-between;gap:16px}.programTop{gap:10px}.packageCard,.programTop{display:flex;align-items:center}.packageCard{justify-content:space-between;gap:24px}.packageCard>div{display:flex;flex-direction:column;gap:7px;flex:1 1}.packagePrice{font-size:1.5rem;margin-top:8px}.promoText{font-weight:800;color:#b91c1c}.packageCard select{max-width:320px}.entitlementCard{display:flex;justify-content:space-between;align-items:center;gap:20px}.entitlementCard>div{display:flex;flex-direction:column;gap:4px}.balanceText{font-size:20px;margin:4px 0}.athleteAccessName{margin-top:5px}.supportGrid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.supportCard h2{margin-top:0}.supportCard p:last-child{margin-bottom:0}.bottom{position:fixed;bottom:0;left:0;right:0;min-height:68px;padding:0 16px env(safe-area-inset-bottom);background:rgba(255,255,255,.98);border-top:1px solid #ddd;align-items:stretch;gap:8px;z-index:20}.bottom,.bottom a{display:flex;justify-content:center}.bottom a{color:#777;font-weight:700;font-size:13px;min-width:100px;align-items:center;text-align:center;padding:0 10px;border-top:3px solid transparent}.bottom a.active{color:#ff4f55;border-top-color:#ff4f55}@media (max-width:700px){header{height:auto;min-height:calc(96px + env(safe-area-inset-top));padding:calc(8px + env(safe-area-inset-top)) 16px 8px}header img{display:block;width:220px;max-width:70vw;height:auto;max-height:100px;object-fit:contain}header span{display:none}main{padding:18px 16px calc(78px + env(safe-area-inset-bottom))}h1{font-size:29px;margin-bottom:18px}h2{font-size:19px}.hero{border-radius:18px;padding:20px;margin-bottom:22px}.stats,.walletStats{grid-template-columns:repeat(2,1fr)}.stats div{padding:14px}.stats b{font-size:22px}.heroActions{flex-direction:column}.heroCta,.heroSecondary{width:100%;min-height:46px}.card{border-radius:16px;padding:17px}.athleteAction,.bookingRow,.entitlementCard,.packageCard,.pageTitleRow,.programCard{align-items:stretch;flex-direction:column}.ctaLink,.miniCta{width:100%;min-height:44px}.bookingFilters,.form2,.grid2,.supportGrid{grid-template-columns:1fr}.packageCard select{max-width:none}.tabs{width:100%}.tab{flex:1 1}.bookingActions{width:100%;justify-content:space-between}.bookingActions,.bookingRow,.rosterRow,.session.card{align-items:flex-start}.accessBanner{flex-direction:column}.inlineActions{width:100%;align-items:stretch}.pageTitleRow>.inlineActions{flex-direction:column}.pageTitleRow>.inlineActions>*{width:100%}.pageTitleRow .secondary{margin-top:0}.bottom{min-height:64px;justify-content:space-around;gap:0;padding:0 4px env(safe-area-inset-bottom)}.bottom a{min-width:0;flex:1 1;font-size:10px;line-height:1.1;padding:0 3px}}@media (max-width:390px){main{padding-left:12px;padding-right:12px}header img{width:200px;max-width:72vw;height:auto;max-height:92px}.hero{padding:17px}.stats div{padding:12px}.bottom a{font-size:9px;padding-left:2px;padding-right:2px}}