/* Shared club interface. Loaded last so both app surfaces use the same system. */
:root{--bg:#f6f7f9;--line:#e4e7ec;--line-soft:#eef0f3;--muted:#606b7c;--shadow:0 2px 5px #13213b04;--shadow-lift:0 8px 24px #13213b0d}
body{line-height:1.6}
h1,h2,h3{letter-spacing:-.035em}
.skip-link{position:fixed;left:16px;top:-100px;z-index:100;padding:12px 20px;background:#fff;border:2px solid var(--brand);border-radius:8px}
.skip-link:focus{top:12px}
.page-shell{max-width:1200px;padding-top:36px}
.page-heading{margin:0 0 28px}.page-heading h1::after{display:none}.page-heading p:last-child{max-width:720px}
.eyebrow{font-size:.66rem;letter-spacing:.15em}.eyebrow::before{display:none}
.button{gap:10px;border-radius:9px;font-size:.85rem;letter-spacing:0;text-transform:none;font-weight:700;min-height:46px;padding:11px 18px;white-space:normal}
.button.primary{color:#172036}.button.secondary{border:1px solid var(--line);color:var(--brand)}
.card{border-radius:14px;box-shadow:var(--shadow)}
.stack{gap:10px}.stack label{margin-top:8px}.stack input:not([type=checkbox]),.stack select,.stack textarea,.search-panel input{border-width:1px;border-color:#cdd3dc;border-radius:8px;background:#fff}
.stack input:focus,.search-panel input:focus{box-shadow:0 0 0 3px #ffa3661a}
.site-header{border:0;background:var(--brand)}.header-inner{max-width:1200px;min-height:82px}.brand{font-size:1rem}
.nav-links a,.nav-button{font-size:.82rem}.nav-links a[aria-current=page]{color:var(--accent)}
.session-card{padding:22px 24px}.session-card h2{font-size:1.15rem}.session-card p{font-size:.86rem}.session-numbers{font-size:.8rem;color:var(--muted)}.session-numbers strong{color:var(--brand)}
.pill{font-size:.65rem;letter-spacing:.05em;padding:5px 10px}.score-strip>div{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:12px;padding:20px}.score-strip span{color:var(--muted)}
.search-panel{box-shadow:none}.sticky-search{box-shadow:0 6px 20px #13213b0b}.notice{border:1px solid #23522b20;font-size:.9rem}.site-footer{font-size:.6rem;letter-spacing:.13em;color:#6c7584}
.appbar{background:#fff}.appbar-inner{max-width:none;min-height:80px;padding:14px 32px}.appbar-brand{font-size:1rem}.appbar-brand strong{color:var(--accent-ink)}
.user-menu summary{background:transparent;color:var(--brand);gap:10px}.avatar{background:var(--accent-tint);color:var(--accent-ink);width:38px;height:38px}.user-menu .menu{border-radius:12px}
.dashboard-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.dashboard-heading h1{font-size:2rem;margin:0 0 6px}.dashboard-heading p{margin-bottom:4px}.dashboard-heading .muted{font-size:.88rem}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:22px}.dashboard-grid>*{min-width:0;margin:0}
.hero{grid-column:1;grid-row:1;border-radius:18px;padding:30px;min-height:270px;display:flex;flex-direction:column;justify-content:center;background-size:400px 280px,auto}.hero h2{font-size:clamp(1.7rem,3vw,2.2rem);color:#fff;margin:0 0 6px;overflow-wrap:anywhere}.hero .eyebrow{color:#b7c4dd}.hero-sub{font-size:.88rem;margin-bottom:24px}.level-name{font-size:1.25rem;letter-spacing:-.02em;text-transform:none}.hero-count{font-size:.75rem}.hero progress{height:7px;margin-bottom:0}.hero::after{width:180px;height:180px;right:-70px;top:-65px}
.dashboard-grid .upcoming{grid-column:2;grid-row:1;background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;color:var(--ink);display:flex;flex-direction:column;justify-content:center}.upcoming h2{color:var(--ink);font-size:1.05rem}.upcoming p{color:var(--muted);font-size:.88rem}.upcoming .facts{gap:9px;font-size:.85rem}.upcoming dt{color:var(--muted)}.upcoming .button{align-self:flex-start;margin-top:8px}
.dashboard-stats{grid-column:1/-1;grid-row:2;gap:16px}.tile{align-items:flex-start;min-height:112px;text-align:left;padding:22px;border-radius:12px;gap:8px;box-shadow:none}.tile strong{font-size:1.9rem;font-weight:700}.tile span{font-size:.75rem;font-weight:500}.tile:last-child strong{color:var(--accent-ink)}
.dashboard-grid .panel{grid-column:1;padding:26px}.panel h2{font-size:1.1rem}.panel p{font-size:.83rem}.panel .muted{font-size:.75rem}.panel progress{height:8px}.split{gap:8px}.status-note{font-size:.72rem;font-weight:600;background:var(--accent-tint);border-radius:6px}
.achievement-panel{grid-column:2;padding:26px}.achievement-panel .section-title{margin:0 0 18px;font-size:1.1rem}.achievement-panel .empty-inline{border:0;box-shadow:none;padding:0;font-size:.85rem}.badges{gap:20px}.badge-icon{filter:none}
.dashboard-rewards{grid-column:1/-1}.section-row{flex-wrap:wrap}.section-title{font-size:1.1rem;margin:0 0 16px}.section-row a{font-size:.78rem}.reward-chip{border-radius:12px;padding:22px;flex-basis:350px}.reward-icon{background:var(--accent-tint);color:var(--accent-ink);border-radius:12px}.reward-chip em{display:block;margin-top:8px}.reward-card{box-shadow:none;border-radius:12px}.reward-card.is-locked{background:#f0f2f6}.reward-grid{gap:16px}
.cal{background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:none;padding:20px;max-width:640px}.cal-head h2,.cal-head a{color:var(--ink)}.cal-head a:hover{background:#f0f2f6}.cal th{color:var(--muted)}.cal td{color:var(--ink)}.cal .cal-day{color:var(--ink)}
.session-tile{border-radius:14px;padding:24px}.session-tile h2{font-size:1.2rem}.session-tile p{font-size:.83rem}.session-tile .eyebrow{color:#e5ebf5}.pagination{padding:20px 0}
.auth-shell{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;padding:70px max(40px,calc((100vw - 1080px)/2));background:var(--brand-deep)}
.auth-intro{color:#fff;position:relative;width:100%;max-width:520px}.auth-intro .brand{margin-bottom:64px}.auth-intro .eyebrow{color:var(--accent)}.auth-intro h2{font-size:clamp(2.5rem,4.5vw,4.3rem);line-height:1.08;font-weight:700;margin-bottom:24px}.auth-intro h2 span{color:var(--accent)}.auth-intro>p:not(.eyebrow){font-size:.9rem;color:#b8c4db;max-width:370px}.auth-intro .auth-intro-foot{font-size:.65rem!important;letter-spacing:.18em;text-transform:uppercase;margin-top:30px}
.auth-card{border:1px solid #ffffff20;padding:38px;width:100%;max-width:430px;border-radius:18px;box-shadow:0 24px 70px #0002}.auth-card h1{font-size:1.9rem}.auth-card>p{font-size:.85rem;color:var(--muted)}.auth-card .stack{margin:26px 0 20px}.auth-card .stack .button{margin-top:16px}.auth-card .auth-tagline{margin-top:28px;font-size:.6rem}.auth-court{position:relative;width:240px;height:110px;margin-top:40px;border:1px solid #ffffff35;transform:skewY(-8deg);background:linear-gradient(90deg,transparent 49.7%,#ffffff35 49.7% 50.3%,transparent 50.3%)}.auth-court::before{content:"";position:absolute;inset:23px 0;border-top:1px solid #ffffff35;border-bottom:1px solid #ffffff35}.auth-court span{position:absolute;width:25px;height:25px;right:28px;top:17px;border-radius:50%;background:var(--ball);box-shadow:0 8px 14px #0003}
@media(min-width:1100px){.appbar-brand{width:220px}.tabbar{position:fixed;left:0;top:80px;bottom:0;right:auto;width:240px;max-width:none;margin:0;padding:32px 18px;display:flex;flex-direction:column;gap:8px;background:#fff;border-right:1px solid var(--line);border-top:0;border-radius:0;box-shadow:none}.tabbar a{flex-direction:row;gap:12px;border:0;border-radius:9px;padding:11px 14px;font-size:.83rem;min-height:48px;justify-content:flex-start}.tabbar a[aria-current=page]{background:var(--accent-tint);color:var(--accent-ink)}.tabbar a[aria-current=page] .tab-icon{background:transparent;color:var(--accent-ink);box-shadow:none}.tab-icon{width:24px;height:24px}.tabbar svg{width:21px;height:21px}.player-shell{max-width:1240px;margin-left:240px;padding:36px 40px 60px}.player-footer{margin-left:240px}.appbar{border-bottom:1px solid var(--line)}}
@media(min-width:900px) and (max-width:1099px){.tabbar{padding-top:18px;max-width:1200px}.tabbar a{border:0;border-radius:9px}.tabbar a[aria-current=page]{background:var(--brand)}.player-shell{max-width:1200px}}
@media(max-width:899px){.appbar-inner{min-height:66px;padding:10px 18px}.dashboard-heading{align-items:flex-start;margin-bottom:22px}.dashboard-heading .button{font-size:.75rem;padding:10px 12px;min-width:110px}.dashboard-heading h1{font-size:1.6rem}.dashboard-heading .muted{font-size:.78rem}.dashboard-grid{grid-template-columns:1fr;gap:16px}.hero,.dashboard-grid .upcoming,.dashboard-grid .panel,.achievement-panel,.dashboard-stats,.dashboard-rewards{grid-column:1;grid-row:auto}.hero{padding:24px;min-height:245px}.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tile{padding:18px;min-height:100px}.dashboard-grid .upcoming{padding:24px}.tabbar a[aria-current=page] .tab-icon{background:var(--accent-tint);box-shadow:none;color:var(--accent-ink)}.tabbar a[aria-current=page]{color:var(--accent-ink)}.player-shell{padding-bottom:44px}.player-footer{padding-bottom:105px}.tabbar{box-shadow:0 -2px 12px #13213b06}.auth-shell{grid-template-columns:1fr;gap:30px;padding:36px 20px}.auth-intro{max-width:430px}.auth-intro .brand{margin-bottom:28px}.auth-intro h2{font-size:2.4rem}.auth-intro>p:not(.eyebrow),.auth-court,.auth-intro-foot{display:none}.auth-card{padding:28px}.header-inner{gap:8px}.nav-links{gap:0 16px}.nav-links form{position:static;padding-left:12px;margin-left:auto}.brand{font-size:.95rem}}
@media(max-width:400px){.dashboard-heading{flex-direction:column;gap:14px}.hero-level{align-items:flex-start;flex-direction:column;gap:10px}.appbar-brand{font-size:.85rem;gap:6px}.hero-count{font-size:.72rem}.reward-grid{grid-template-columns:1fr}}
.auth-recovery{grid-template-columns:1fr;gap:0}.auth-recovery .auth-card{justify-self:center}
.hero,.dashboard-grid .hero{margin:0}
.cal td small{color:var(--accent-ink)}.cal td.is-marked small{color:var(--brand)}
.brand-logo{display:block;flex:none;width:52px;height:52px;border-radius:10px;background:#fff;object-fit:cover}
.reward-row .state+.muted{margin-left:10px}
@media(max-width:899px){.brand-logo{width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
