:root{font-family:'Trebuchet MS','Segoe UI',Arial,sans-serif;color:#203d2d;background:#f2f5ed;color-scheme:light}*{box-sizing:border-box}body{margin:0}header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 5vw;background:#fff;border-bottom:1px solid #dce5d5}a{color:#467126}.brand{text-decoration:none;color:#203d2d;font-size:28px;font-weight:bold;letter-spacing:-1px}.brand span{color:#639d32}main{max-width:1280px;padding:36px 24px 70px;margin:auto}h1{font-size:clamp(36px,5vw,60px);line-height:1.05;letter-spacing:-2px;margin:18px 0}h2{font-size:24px}p{line-height:1.7}.eyebrow{color:#639d32;font-size:12px;letter-spacing:2px;font-weight:bold}.auth-layout{display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:start;padding-top:65px}.panel{background:#fff;padding:28px;border-radius:20px;border:1px solid #dfe7d7;margin:20px 0}.panel>:first-child{margin-top:0}.notice{padding:18px;background:#e8efde;border-radius:12px;font-size:14px}.small{font-size:13px;color:#65755a}label{display:block;margin:17px 0 7px;font-weight:bold;font-size:14px}input,select,textarea{font:inherit;width:100%;border:1px solid #cdd9c3;background:white;color:#203d2d;padding:13px;border-radius:10px}textarea{resize:vertical}button{font:inherit;cursor:pointer;border:1px solid #cdd9c3;border-radius:30px;padding:11px 18px;background:white;color:#203d2d;font-weight:bold}button:disabled{opacity:.55;cursor:wait}.primary{background:#639d32;color:white;border-color:#639d32;margin-top:20px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.tabs .active{background:#203d2d;color:white;border-color:#203d2d}.actions,.page-title{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:26px 0}.stat{padding:22px;border:1px solid #dfe7d7;background:white;border-radius:18px}.stat strong{display:block;font-size:32px;margin-bottom:6px}.entry{padding:23px 0;border-bottom:1px solid #e3e9dc}.entry h3{margin:0 0 8px}.entry p{margin:5px 0;font-size:14px}.edit-grid,.columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.entry .edit-grid{margin:12px 0}.status{display:inline-block;background:#e8efde;padding:5px 10px;border-radius:18px;font-size:12px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;margin-top:25px;font-size:14px}th,td{text-align:left;padding:13px;border-bottom:1px solid #e3e9dc;white-space:nowrap}fieldset{border:1px solid #dfe7d7;border-radius:12px;margin-top:20px;display:flex;gap:12px;flex-wrap:wrap}fieldset label{font-weight:normal;display:flex;align-items:center;gap:7px;margin:5px}fieldset input{width:auto}[hidden]{display:none!important}[role=status]:not(:empty){padding:14px;background:#e8efde;border-radius:10px;margin:15px 0}.error{background:#fff1df!important}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #639d32;outline-offset:3px}@media(max-width:800px){.auth-layout,.columns{grid-template-columns:1fr;gap:10px}.auth-layout{padding-top:24px}.stats{grid-template-columns:1fr}.panel{padding:22px}.edit-grid{grid-template-columns:1fr}header{padding:18px;flex-wrap:wrap}#onlineIdentity{font-size:13px}}

.studio-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:18px 0}.studio-gallery:empty{display:none}.studio-gallery img{width:100%;height:190px;object-fit:cover;border-radius:14px;background:#e8efde}#studioPhotoForm{border-top:1px solid #dfe7d7;padding-top:12px}

.action-link{display:inline-block;background:#639d32;color:white;text-decoration:none;border-radius:30px;padding:12px 20px;font-weight:bold;margin:12px 0}.action-link:hover{background:#467126}.studio-intro{padding:38px 0 12px}.studio-intro h1{overflow-wrap:anywhere}.studio-location{font-size:22px}.sport-tags{display:flex;gap:10px;flex-wrap:wrap}.sport-tags span{background:#e4eddc;border:1px solid #cadcbb;padding:9px 15px;border-radius:30px;font-weight:bold}.studio-description{white-space:pre-line;overflow-wrap:anywhere}address{font-style:normal;line-height:1.8}.studio-detail #studioDetailPhotos .studio-gallery img{height:auto;max-height:440px;object-fit:contain;background:#edf2e8}.studio-detail .columns{align-items:start}

.portal-columns:has(>#portalMemberNotes[hidden]){grid-template-columns:1fr}.portal-columns:has(>#onlineStudioProfile[hidden]){grid-template-columns:1fr}#portalStudioStatus{font-size:clamp(20px,3vw,30px)}#portalVisitMonth{margin-top:8px}#portalVisits .entry:last-child{border:0}

#memberTraining .tabs a{margin:0}.plan-exercise{display:grid;grid-template-columns:2fr 1fr 1.5fr 1fr;align-items:end;margin-bottom:18px;padding:18px}.plan-exercise label{display:block;margin:0}.plan-exercise input{width:100%}.plan-exercise button{grid-column:1/-1;justify-self:start}.plan-exercise legend{font-weight:bold;padding:0 6px}.progress-chart{display:grid;gap:10px;margin:24px 0}.progress-point{display:grid;grid-template-columns:100px 1fr 60px;gap:14px;align-items:center}.progress-point meter{width:100%;height:24px;accent-color:#639d32}#memberLogRating{accent-color:#639d32;padding:8px 0}#memberTraining details summary{font-weight:bold;cursor:pointer;padding:10px 0}#memberTraining h4{margin:0 0 8px}#memberTraining .entry p{white-space:pre-line}@media(max-width:650px){.plan-exercise{grid-template-columns:1fr 1fr}.plan-exercise label:first-of-type{grid-column:1/-1}.progress-point{grid-template-columns:85px 1fr 50px;gap:8px;font-size:13px}}

.online-qr{width:min(100%,300px);margin:20px auto;background:white}.online-qr:empty{display:none}.online-qr svg{width:100%;height:auto;display:block}#qrCamera{display:block;width:100%;max-height:350px;background:#203d2d;border-radius:14px;margin-bottom:15px}#qrMemberCode{font-family:monospace;overflow-wrap:anywhere}#qrOnlinePanel section{border-top:1px solid #dfe7d7;padding-top:22px;margin-top:22px}#qrOnlinePanel h4{margin:0 0 8px}

.studio-filters{margin:18px 0;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.studio-filters label{min-width:0}.favorite-login{display:block;margin-top:12px}button[data-favorite-id]{display:block;margin-top:12px}button[data-favorite-id][aria-pressed="true"]{background:#e4eddc;color:#203d2d}#memberFavorites{margin:28px 0;scroll-margin-top:20px}#memberFavorites .panel{box-shadow:none;border:1px solid #cadcbb}#memberFavoritesLink{margin-left:12px}@media(max-width:650px){.studio-filters{grid-template-columns:1fr}#memberFavoritesLink{margin-left:0}}

.member-account-layout{display:grid;grid-template-columns:minmax(200px,1fr) minmax(250px,2fr);gap:32px;align-items:start}#memberAccount{margin:28px 0;scroll-margin-top:20px}#memberAvatar,#memberAvatarEmpty{width:160px;height:160px;border-radius:50%;object-fit:cover;background:#e4eddc;border:3px solid #cadcbb;margin-bottom:18px}#memberAvatarEmpty{display:grid;place-items:center;font-size:44px;font-weight:bold;color:#203d2d}#memberAccount dt{font-weight:bold;margin-top:16px}#memberAccount dd{margin:6px 0;overflow-wrap:anywhere}@media(max-width:650px){.member-account-layout{grid-template-columns:1fr}}
#memberCameraVideo{display:block;width:100%;max-height:360px;object-fit:contain;background:#203d2d;border-radius:16px;margin:14px 0;transform:scaleX(-1)}#memberCameraOpen{margin-bottom:16px}#memberCameraDiscard{margin:12px 0}

#memberStopwatch{margin:28px 0;scroll-margin-top:20px}#stopwatchTime{display:block;font-size:clamp(30px,8vw,64px);font-weight:bold;font-variant-numeric:tabular-nums;letter-spacing:.03em;color:#203d2d;margin:24px 0}#stopwatchLaps{max-height:300px;overflow:auto;padding-left:26px}#stopwatchLaps li{padding:10px 0;border-bottom:1px solid #dfe7d7;font-variant-numeric:tabular-nums}

.place-results{display:grid;gap:8px;margin:12px 0}.place-results button{text-align:left;border-radius:12px}#meetupRadiusStatus{padding:12px;border-radius:12px;background:#e8efde}#meetupSearchFind,#meetupCityFind{margin-top:12px}
