/* Gym area: public board (.gb), login (.gl), dashboard (.gd). Builds on site.css tokens; calm motion only. */

/* ---------- shared bits ---------- */
.gd [hidden],.gb [hidden],.gl [hidden]{display:none !important;}
.g-loading{display:flex;align-items:center;gap:10px;color:var(--mut);padding:28px 0;font-family:var(--mono);font-size:13px;text-transform:uppercase;letter-spacing:.08em;}
.g-empty{border:2px dashed var(--line2);padding:28px 20px;text-align:center;color:var(--mut);margin:8px 0;}
.g-empty b{display:block;font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:28px;line-height:1;color:var(--w);margin-bottom:8px;}
.g-empty p{max-width:520px;margin:0 auto;font-size:14px;}
.g-err{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;}
.g-err .btn{--fg:#ffb3ab;border-color:#ff6b5e;}
.g-chip{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line2);color:var(--mut);white-space:nowrap;}
.g-chip.y{border-color:var(--y);color:var(--y);}
.g-chip.ok{background:var(--y);border-color:var(--y);color:#000;}
.g-chip.bad{border-color:#ff6b5e;color:#ffb3ab;}
.g-rank{display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 6px;font-family:var(--display);font-size:18px;border:2px solid var(--line2);color:var(--w);}
.g-rank.top{background:var(--y);border-color:var(--y);color:#000;}
.g-time{font-family:var(--mono);font-weight:800;color:var(--y);}
.g-you{display:inline-block;margin-left:6px;background:#000;color:var(--y);font-family:var(--mono);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:2px 6px;}
.gd-hint{font-size:12.5px;color:var(--mut);}
.f label small{font-weight:400;text-transform:none;letter-spacing:0;}
.f textarea{resize:vertical;min-height:110px;}
.f textarea:focus{border-color:var(--y);outline:none;}
.f.bad textarea{border-color:#ff6b5e;}

/* ---------- public board ---------- */
.gb-head{display:grid;gap:36px;}
@media (min-width:1000px){.gb-head{grid-template-columns:6fr 5fr;gap:60px;align-items:end;}}
.gb-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px;}
@media (max-width:520px){.gb-ctas .btn{width:100%;}}
.gb-steps{display:grid;border-top:2px solid var(--w);}
.gb-steps li{display:grid;grid-template-columns:56px 1fr;gap:14px;padding:18px 0;border-bottom:1px solid var(--line);}
.gb-steps b{font-family:var(--display);font-weight:400;font-size:40px;line-height:1;color:var(--y);}
.gb-steps h2{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:24px;line-height:1;margin-bottom:6px;}
.gb-steps p{color:var(--mut);font-size:15px;}
.gb-board-head{display:grid;gap:16px;margin-top:clamp(56px,7vw,96px);padding-top:28px;border-top:2px solid var(--w);align-items:end;}
@media (min-width:760px){.gb-board-head{grid-template-columns:1fr minmax(260px,360px);}}
.gb-h2{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(40px,6vw,80px);line-height:.9;}
.gb-status{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);margin:16px 0 14px;min-height:18px;}
.gb-list{display:grid;gap:12px;}
@media (min-width:720px){.gb-list{grid-template-columns:1fr 1fr;}}
@media (min-width:1150px){.gb-list{grid-template-columns:repeat(3,1fr);}}
.gb-card{display:grid;grid-template-columns:64px 1fr;gap:14px;align-content:start;border:2px solid var(--line2);background:var(--k2);padding:16px;transition:border-color .2s;}
.gb-card:hover{border-color:var(--y);}
.gb-card[hidden]{display:none;}
.gb-logo,.gd-logo{width:64px;height:64px;background:#fff;display:grid;place-items:center;overflow:hidden;flex:none;}
.gb-logo img,.gd-logo img{width:100%;height:100%;object-fit:contain;}
.gb-logo span,.gd-logo span{font-family:var(--display);font-size:26px;color:#000;background:var(--y);width:100%;height:100%;display:grid;place-items:center;}
.gb-body{min-width:0;}
.gb-body h3{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:26px;line-height:1;overflow-wrap:anywhere;}
.gb-site{display:inline-flex;align-items:center;min-height:32px;font-family:var(--mono);font-size:12px;color:var(--y);text-decoration:none;overflow-wrap:anywhere;}
.gb-site:hover{text-decoration:underline;}
.gb-count{font-size:13px;color:var(--mut);margin-top:4px;}
.gb-count b{font-family:var(--mono);color:var(--w);font-size:15px;}
.gb-cta,.gb-none{grid-column:1/-1;}
.gb-cta{width:100%;}
.gb-none{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px dashed var(--line2);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);}
.gb-loading{display:flex;gap:10px;align-items:center;color:var(--mut);padding:24px 0;}
.gb-empty{margin-top:18px;color:var(--mut);}
.gb-empty a,.gl-help a,.gd-note a{color:var(--y);}
.gb-foot{display:grid;gap:10px;margin-top:clamp(56px,7vw,96px);background:var(--y);color:#000;padding:clamp(24px,4vw,48px);}
.gb-foot p{max-width:620px;margin-top:12px;font-weight:500;}
.gb-foot .btn{--bg:#000;--fg:var(--y);}
.gb-foot .btn-ghost{--bg:transparent;--fg:#000;border-color:#000;}
.gb-foot .btn-ghost:hover{--bg:#000;--fg:var(--y);}
@media (min-width:1000px){.gb-foot{grid-template-columns:1fr auto;align-items:end;gap:40px;}.gb-foot .gb-ctas{margin-top:0;}}

/* ---------- login ---------- */
.gl-grid{display:grid;gap:36px;}
@media (min-width:900px){.gl-grid{grid-template-columns:1fr minmax(380px,480px);gap:64px;align-items:start;}}
.gl-help{margin-top:24px;color:var(--mut);font-size:15px;}
.gl-form{display:grid;gap:16px;background:#000;}
.gl-form[aria-busy="true"] .f,.gl-form[aria-busy="true"] .btn{opacity:.4;pointer-events:none;}

/* ---------- dashboard ---------- */
.gd-loading{display:flex;align-items:center;gap:10px;color:var(--mut);padding:40px 0;}
.gd-ro{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;border:2px solid var(--y);background:repeating-linear-gradient(-45deg,rgba(255,214,10,.12) 0 10px,transparent 10px 20px);padding:12px 14px;margin-bottom:22px;font-size:14px;}
.gd-ro[hidden]{display:none;}
.gd-ro b{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#000;background:var(--y);padding:3px 8px;}
.gd-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;}
.gd-id{display:flex;align-items:center;gap:16px;min-width:0;}
.gd-id .label{margin-bottom:8px;}
.gd-logo{width:72px;height:72px;}
.gd-logo.big{width:96px;height:96px;}
.gd-logo.big span{font-size:16px;font-family:var(--mono);background:#111;color:var(--mut);}
.gd-name{font-size:clamp(36px,6vw,80px);overflow-wrap:anywhere;}
.gd-tabs{margin-top:28px;}
.gd-tabs .tab{min-height:52px;}
.gd-panel{padding:26px 0 0;outline:none;}
.gd-panel:focus-visible{outline:3px solid var(--y);outline-offset:6px;}
.gd-h2{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(34px,4.6vw,60px);line-height:.95;margin-bottom:18px;}
.gd-h3{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(24px,2.6vw,34px);line-height:1;margin-bottom:12px;}
.gd-sec{margin-top:36px;}
.gd-note{color:var(--mut);font-size:15px;max-width:760px;margin-bottom:14px;}
.gd-note b{color:var(--w);}
.gd-count{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin:12px 0;}

/* stats */
.gd-stats{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--w);border-left:1px solid var(--line);}
@media (min-width:900px){.gd-stats{grid-template-columns:repeat(5,1fr);}}
.gd-stat{padding:18px 14px 20px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px;}
.gd-stat b{font-family:var(--display);font-weight:400;font-size:clamp(48px,6vw,80px);line-height:1;}
.gd-stat span{font-family:var(--mono);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}
.gd-stat small{color:var(--mut);font-size:12.5px;line-height:1.4;}
.gd-stat.hot{background:var(--y);color:#000;}
.gd-stat.hot small{color:rgba(0,0,0,.7);}
.gd-stat.warn b{color:var(--y);}
.gd-stats .gd-stat:last-child:nth-child(odd){grid-column:1/-1;}
@media (min-width:900px){.gd-stats .gd-stat:last-child:nth-child(odd){grid-column:auto;}}
#gd-ov-alert:not(:empty){margin-top:18px;}

/* pending redemptions */
.gd-pend{display:grid;gap:10px;}
.gd-pend li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;border:2px solid var(--y);padding:14px 16px;}
.gd-pend li>div{min-width:0;flex:1 1 240px;}
.gd-pend p{color:var(--mut);font-size:14px;overflow-wrap:anywhere;}
.gd-pend small{display:block;font-family:var(--mono);font-size:12px;color:var(--y);margin-top:4px;}
.gd-buckets{display:grid;gap:10px;margin:6px 0 16px;}
.gd-buckets li{border-left:4px solid var(--y);padding:6px 0 6px 14px;}
.gd-buckets b{margin-right:8px;}
.gd-buckets p{color:var(--mut);font-size:14px;margin-top:4px;}

/* sign-up links */
.gd-links{display:grid;gap:12px;}
.gd-link{display:grid;gap:14px;border:2px solid var(--line2);background:var(--k2);padding:16px;}
@media (min-width:900px){.gd-link{grid-template-columns:1fr auto;align-items:center;}}
.gd-link-t{min-width:0;display:grid;gap:4px;justify-items:start;}
.gd-link-t b{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:24px;line-height:1;}
.gd-link-t small{color:var(--mut);font-size:13px;}
.gd-url{display:inline-block;padding:6px 0;color:var(--y);font-size:13px;word-break:break-all;}
.gd-link-b{display:flex;gap:10px;flex-wrap:wrap;}
@media (max-width:520px){.gd-link-b .btn{flex:1 1 0;}}

/* filters + tables */
.gd-filters{display:grid;gap:12px;margin-bottom:6px;}
@media (min-width:700px){.gd-filters{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-width:900px;}}
.gd .tblwrap{border-top:2px solid var(--w);position:relative;}
.gd-tbl{font-size:14px;}
.gd-tbl td:first-child{font-family:var(--body);font-size:14px;color:inherit;width:auto;}
.gd-tbl td{vertical-align:middle;}
.gd-tbl td small{display:block;color:var(--mut);font-size:12px;}
.gd-tbl td a{color:var(--w);text-decoration-color:var(--line2);}
.gd-tbl td a:hover{color:var(--y);}
.gd-tbl .r{text-align:right;}
.gd-tbl tr.dim td{color:var(--mut);}
.gd-tbl .gd-none{text-align:center;color:var(--mut);padding:24px;}
.gd-stand tr.me td{background:var(--y);color:#000;}
.gd-stand tr.me .g-rank{border-color:#000;}
.gd-stand tr.me .g-rank.top{background:#000;color:var(--y);}
.gd-stand{min-width:420px;}
.gd-res{min-width:980px;}
.gd-days{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:16px;}
.gd-days li{display:flex;align-items:center;gap:8px;font-size:14px;}
.g-more{min-height:44px;min-width:64px;padding:0 10px;font-family:var(--mono);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line2);}
.g-more:hover,.g-more[aria-expanded="true"]{border-color:var(--y);color:var(--y);}
.g-detail td{background:var(--k3);white-space:normal;}
.g-detail-in{display:grid;gap:12px;padding:6px 0;max-width:620px;}
.g-splits{min-width:0;font-size:13px;}
.g-splits th,.g-splits td{padding:6px 10px;}
.g-splits td:first-child{font-family:var(--body);font-size:13px;color:var(--w);width:auto;}

/* free tickets */
.gd-ft-top{display:grid;gap:18px;margin-bottom:24px;}
@media (min-width:800px){.gd-ft-top{grid-template-columns:220px 1fr;align-items:start;}}
.gd-ft-top .gd-stat{border:0;}
.gd-ft-top .gd-note p+p{margin-top:8px;}
.gd-steps{display:flex;gap:0;margin-bottom:22px;border:2px solid var(--w);}
.gd-steps li{flex:1;padding:10px 12px;font-family:var(--mono);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);}
.gd-steps li+li{border-left:2px solid var(--w);}
.gd-steps li b{color:inherit;margin-right:4px;}
.gd-steps li[aria-current="step"]{background:var(--y);color:#000;}
.gd-steps li.done{color:var(--w);}
.gd-pick{display:grid;gap:10px;}
.gd-opt{display:grid;grid-template-columns:1fr auto;gap:2px 14px;align-items:center;width:100%;min-height:72px;text-align:left;border:2px solid var(--line2);background:var(--k2);padding:14px 16px;transition:border-color .2s;}
.gd-opt b{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:24px;line-height:1;}
.gd-opt small{grid-column:1;color:var(--mut);}
.gd-opt span{grid-column:2;grid-row:1/3;color:var(--y);font-size:22px;}
.gd-opt:hover:not(:disabled){border-color:var(--y);}
.gd-opt:disabled{opacity:.5;cursor:not-allowed;}
.gd-chosen{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;border-left:4px solid var(--y);background:var(--k2);padding:12px 14px;margin-bottom:22px;}
.gd-chosen small{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);}
.gd-chosen b{font-weight:700;}
.gd-chosen span{color:var(--mut);font-size:14px;}
.gd-tix{display:grid;gap:10px;margin-bottom:22px;}
.gd-tix li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;border:2px solid var(--line2);padding:12px 14px;}
.gd-tix li.on{border-color:var(--y);}
.gd-tix li>div:first-child{min-width:0;flex:1 1 200px;}
.gd-tix b{display:block;font-weight:700;}
.gd-tix small{color:var(--mut);font-size:13px;}
.gd-qty .qty-btn{width:48px;height:48px;}
.gd-qty .qty-n{width:48px;font-size:20px;}
.gd-cover{display:grid;gap:14px;max-width:620px;border-top:2px solid var(--w);padding-top:10px;}
.gd-cover .alert{margin:0;}
.gd-spot{background:var(--k2);}
.gd-spot legend{max-width:100%;overflow-wrap:anywhere;}
.gd-hint[data-u18]{margin-top:12px;border-left:3px solid var(--y);padding-left:10px;color:var(--w);}
.gd-done{border:3px solid var(--y);box-shadow:8px 8px 0 var(--y);padding:22px 18px;max-width:760px;margin-right:8px;display:grid;gap:14px;}
.gd-done .label{margin-bottom:0;}
.gd-done input{font-size:14px;}
.gd-done-b{display:flex;flex-wrap:wrap;gap:10px;}
@media (max-width:520px){.gd-done-b .btn{width:100%;}}

/* profile */
.gd-logo-edit{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:16px;}
.gd-logo-edit .f{flex:1 1 220px;}
.gd-logo-edit input[type="file"]{padding:10px;min-height:48px;}
#gd-prof .btn,#gd-pw .btn{margin-top:18px;}
#gd-pw .fgrid{max-width:720px;}
.gd-out{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:18px;color:var(--mut);}

/* read-only mode: writes stay visible but are clearly off */
.gd.is-ro [data-write]:disabled{opacity:.4;cursor:not-allowed;}
.gd.is-ro .btn[data-write]:disabled:hover{box-shadow:none;}

@media (prefers-reduced-motion:reduce){.gb-card,.gd-opt{transition:none;}}
