.shell{min-height:100dvh;display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);grid-template-areas:"side main"}.side{grid-area:side;background:var(--night);border-right:1px solid var(--line);color:var(--night-ink);padding:var(--s-5) var(--s-3) var(--s-4);display:flex;flex-direction:column;gap:var(--s-4);position:sticky;top:0;height:100dvh;overflow:auto}.side-brand{display:grid;gap:2px;padding:0 var(--s-2)}.side-role{font:var(--t-small);color:var(--night-muted);padding-left:52px}.gymmark{display:flex;align-items:center;gap:var(--s-3);min-width:0}.gymname{font:850 21px/1.05 var(--font-brand);font-variation-settings:"wdth" var(--wdth-head);letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scope select{width:100%;min-height:var(--tap-min);appearance:none;background:var(--night-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23a3a3a3' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;color:var(--night-ink);border:1px solid var(--night-3);border-radius:var(--r-pill);padding:0 36px 0 14px;font:var(--t-label)}.scope select:disabled{opacity:1;cursor:default}.scope{display:flex;align-items:center;gap:var(--s-2);min-width:0}.scope select{flex:1;min-width:0}.scope-one,.scope-wait{min-height:var(--tap-min);padding:0 var(--s-3);border-radius:var(--r-pill);font:var(--t-label);border:1px solid var(--night-3);background:var(--night-2);color:var(--night-ink)}.scope-one>span:not(.chip),.scope-wait>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scope-wait{color:var(--night-muted);font-weight:500}.scope-failed{width:100%;text-align:left;padding-block:var(--s-2);cursor:pointer}.scope.scope-failed>span{white-space:normal;font:var(--t-small)}.scope-failed u{font-weight:600;text-underline-offset:.18em}.scope-failed:hover{border-color:var(--night-muted)}.mtop .scope-one,.mtop .scope-wait{background:var(--surface);border-color:var(--card-edge);box-shadow:var(--card-shadow);color:var(--ink)}.mtop .scope-wait{color:var(--ink-3)}.mtop .scope-failed u{color:var(--ink)}.mtop .scope-failed:hover{border-color:var(--line-strong)}.nav{flex-direction:column;gap:2px;overflow:auto;flex:1;margin:0 calc(var(--s-1) * -1);padding:0 var(--s-1) var(--s-6);-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - 28px),transparent)}.nav,.nav a{display:flex}.nav a{align-items:center;gap:var(--s-3);min-height:var(--tap-min);padding:0 var(--s-3);border-radius:var(--r-sm);color:var(--night-muted);text-decoration:none;font:var(--t-label);transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease}.nav a .icon{width:20px;height:20px}.nav a:hover{background:var(--night-2);color:var(--night-ink)}.nav a[aria-current=page]{background:var(--night-3);color:var(--night-ink);font-weight:600}.nav a:focus-visible,.signout:focus-visible{outline-color:var(--night-ink)}.side-foot{display:grid;gap:var(--s-3);border-top:1px solid var(--night-3);padding-top:var(--s-3)}.signout{display:flex;align-items:center;gap:var(--s-3);min-height:var(--tap-min);padding:0 var(--s-3);border:0;border-radius:var(--r-sm);background:none;color:var(--night-ink);font:var(--t-label);text-align:left}.signout:hover{background:var(--night-2)}.runs{display:flex;align-items:center;gap:var(--s-2);padding:0 var(--s-3);font:var(--t-caption);color:var(--night-muted)}.main{grid-area:main;min-width:0;padding:var(--s-6) var(--gutter) var(--s-14)}.page{display:grid;gap:var(--s-5);max-width:1120px}.page h1{font:var(--t-title);letter-spacing:-.025em;margin:0;text-wrap:balance}.mtop,.tabbar{display:none}.loading{padding:var(--s-6);color:var(--ink-3)}@media (min-width:769px) and (max-width:1100px){.shell{grid-template-columns:var(--rail-w) minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"side top" "side main"}.side{padding:var(--s-4) var(--s-2);gap:var(--s-3)}.side-brand{justify-items:center;padding:0}.side .scope,.side-brand .gymname,.side-role{display:none}.side-brand .crest{--c:48px}.nav{gap:var(--s-1)}.nav a{flex-direction:column;justify-content:center;gap:4px;min-height:64px;padding:var(--s-2) 4px;text-align:center;font:500 12px/1.15 var(--font-ui)}.nav a .icon{width:24px;height:24px}.signout{flex-direction:column;gap:4px;min-height:60px;padding:var(--s-2) 4px;font:500 12px/1.15 var(--font-ui);text-align:center}.runs,.signout{justify-content:center}.runs{padding:0}.runs span{display:none}.mtop{grid-area:top;display:flex;align-items:center;gap:var(--s-4);position:sticky;top:0;z-index:30;background:var(--bg);border-bottom:1px solid var(--line);padding:var(--s-3) var(--gutter);min-height:68px}.mtop .gymmark .crest{display:none}.mtop .scope{margin-left:auto;width:240px}.mtop .scope select{background-color:var(--surface);color:var(--ink);border-color:var(--line-strong)}}@media (max-width:768px){.shell{display:block}.side{display:none}.mtop{display:flex;align-items:center;gap:var(--s-3);position:sticky;top:0;z-index:30;background:var(--bg);padding:var(--s-2) var(--gutter);padding-top:calc(var(--s-2) + env(safe-area-inset-top,0px));min-height:60px}.mtop .gymmark{flex:1}.mtop .gymname{font-size:19px}.mtop .scope{flex:none;max-width:62%}.mtop .scope select{flex:none;width:min(36vw,170px);background-color:var(--surface);color:var(--ink);border-color:var(--line-strong);font-size:14px}.main{padding:var(--s-2) var(--gutter) calc(var(--tabbar-h) + var(--s-8) + env(safe-area-inset-bottom,0px))}.tabbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:30;background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(18px);backdrop-filter:saturate(1.6) blur(18px);border-top:1px solid var(--line);padding:6px 2px calc(6px + env(safe-area-inset-bottom,0px));min-height:var(--tabbar-h)}.tabbar a,.tabbar button{border:0;background:none;display:grid;justify-items:center;align-content:start;gap:2px;min-height:56px;padding:2px 0 0;color:var(--ink-3);text-decoration:none;text-align:center}.tab-pill{display:grid;place-items:center;width:56px;height:32px;border-radius:var(--r-pill);transition:background-color var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out),transform var(--dur-press) var(--ease-out)}.tab-label{font:500 11.5px/1.15 var(--font-ui);letter-spacing:-.01em;max-width:100%;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:break-word;hyphens:auto}.tabbar [aria-current=page]{color:var(--ink)}.tabbar [aria-current=page] .tab-pill{background:var(--tile);color:var(--ink)}.tabbar [aria-current=page] .tab-label{font-weight:600}.tabbar a:active .tab-pill,.tabbar button:active .tab-pill{transform:scale(.94)}.sheet-wrap{position:fixed;inset:0;z-index:40;background:var(--scrim);display:flex;align-items:flex-end;animation:fade var(--dur-base) ease both}.sheet{width:100%;max-height:82dvh;overflow:auto;background:var(--raised);border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:var(--e-2);padding:var(--s-2) var(--s-3) calc(var(--s-4) + env(safe-area-inset-bottom,0px));display:grid;gap:2px;animation:rise var(--dur-sheet) var(--ease-drawer) both}.sheet-handle{justify-self:center;width:40px;height:5px;border-radius:var(--r-pill);background:var(--line-strong);margin:4px 0 var(--s-2)}.sheet-row{display:flex;align-items:center;gap:var(--s-3);min-height:52px;padding:0 var(--s-3);border:0;border-radius:var(--r-sm);background:none;color:var(--ink);text-decoration:none;font:var(--t-label);text-align:left;width:100%}.sheet-row:hover{background:var(--hover)}.sheet-row .icon{color:var(--ink-2)}.sheet .btn{margin-top:var(--s-2)}}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(100%)}}@media (min-width:769px){.sheet-wrap{position:fixed;inset:0;z-index:40;background:var(--scrim);display:flex;align-items:center;justify-content:center;animation:fade var(--dur-base) ease both}.sheet-wrap .sheet{width:min(440px,92vw);max-height:82dvh;overflow:auto;background:var(--raised);border-radius:var(--r-lg);box-shadow:var(--e-2);padding:var(--s-4);display:grid;gap:var(--s-2)}.sheet-wrap .sheet-handle{display:none}}.gymmark-wide .brandlogo{--h:58px}.side-brand:has(.gymmark-wide) .side-role{padding-left:var(--s-1)}@media (min-width:769px) and (max-width:1100px){.side-brand .gymmark-wide .brandlogo{--h:26px}.mtop .gymmark-wide{display:none}}@media (max-width:768px){.mtop .gymmark-wide .brandlogo{--h:58px}.tabbar{grid-template-columns:repeat(var(--tabs,5),minmax(0,1fr))}}.nav a,.sheet-row,.signout{transition:background-color var(--dur-fast) ease,color var(--dur-fast) ease,transform var(--dur-press) var(--ease-out)}.nav a:active,.sheet-row:active,.signout:active{transform:scale(.97)}@media (prefers-reduced-motion:reduce){.nav a:active,.sheet-row:active,.signout:active{transform:none}}.screen{animation:screen-in var(--dur-base) var(--ease-out) both}@keyframes screen-in{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.screen{animation:none}}@media (min-width:1101px){.shell.is-work .side-brand .gymmark-wide .brandlogo{--h:36px}}@media (max-width:768px){.shell.is-work .mtop .gymmark-wide .brandlogo{--h:30px}.shell.is-work .mtop{min-height:52px}}.lang-pick{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);padding:0 var(--s-2)}.lang-pick-label{font:var(--t-small);color:var(--muted)}.lang-pick .seg button{min-height:36px;min-width:48px;padding:0 var(--s-2);border:0;border-radius:var(--r-xs);background:none;color:var(--ink-2);font:600 14px/1 var(--font-ui);cursor:pointer}.lang-pick .seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--e-1)}.sheet-lang{padding:var(--s-2) var(--s-3);min-height:var(--tap)}@media (min-width:769px) and (max-width:1100px){.side-lang{flex-direction:column;padding:0}.side-lang .lang-pick-label{display:none}}.mtop .ibtn{background:var(--surface);border:1px solid var(--card-edge,var(--line));box-shadow:var(--card-shadow,none);color:var(--ink)}.mtop .ibtn:hover{background:var(--hover)}.sheet-me,.side-me{display:flex;align-items:center;gap:var(--s-3)}.sheet-me .photo-picker .btn,.side-me .photo-picker .btn{display:none}.sheet-me span,.side-me span{display:grid;gap:2px;min-width:0}.sheet-me b,.side-me b{font:600 15px/1.2 var(--font-ui);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-me small,.side-me small{font:var(--t-caption);opacity:.7}.sheet-me{padding:var(--s-2) var(--s-1) var(--s-3)}.book-head{display:grid;gap:var(--s-1)}.book-head p{margin:0;font:var(--t-small);color:var(--muted)}.book-gyms{width:100%}.book-gyms button{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-offline{margin:0}.book-offline>div>span{font:var(--t-small);color:var(--ink-2)}.book-rows .classrow-action .btn{max-width:136px;white-space:normal;line-height:1.15;text-align:center;padding:var(--s-1) var(--s-3)}.book-pt{margin-top:var(--s-2)}.book-sheet{display:grid;gap:var(--s-3)}.book-told{display:flex;gap:var(--s-2);align-items:flex-start;margin:0 0 var(--s-2);font:var(--t-body);color:var(--ink-2)}.book-told .icon{flex:none;color:var(--gym-text);margin-top:2px}.book-told[role=alert] .icon{color:var(--bad)}.book-drop{--b-bg:var(--bad);--b-fg:var(--surface)}.ptask{display:grid;gap:var(--s-5)}.ptask .field>span:first-child{font:var(--t-label)}.ptask-coaches{display:flex;flex-wrap:wrap;gap:var(--s-2)}.ptask-coach{display:inline-flex;align-items:center;gap:var(--s-2);min-height:var(--tap);padding:0 var(--s-4) 0 6px;border:2px solid var(--line);border-radius:var(--r-pill);background:var(--surface);color:var(--ink);font:var(--t-label);transition:border-color var(--dur-fast) ease,transform var(--dur-press) var(--ease-out)}.ptask-coach:hover{border-color:var(--line-strong)}.ptask-coach:active{transform:scale(.97)}.ptask-initial{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--sunken);color:var(--ink-2);font:900 17px/1 var(--font-display);font-variation-settings:"wdth" var(--wdth-num)}.ptask-coach[aria-pressed=true]{border-color:var(--gym);background:var(--gym-soft)}.ptask-coach[aria-pressed=true] .ptask-initial{background:var(--gym);color:var(--on-gym);animation:stick var(--dur-stick) var(--ease-stick) both}.ptask-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:var(--s-2)}.ptask-time{min-height:var(--tap-min);padding:0 var(--s-2);border:2px dashed var(--line-strong);border-radius:var(--r-sm);background:var(--sunken);color:var(--ink);font:900 18px/1 var(--font-display);font-variation-settings:"wdth" var(--wdth-num);font-variant-numeric:tabular-nums;transition:transform var(--dur-press) var(--ease-out)}.ptask-time:hover{border-color:var(--ink-2)}.ptask-time:active{transform:scale(.97)}.ptask-time[aria-pressed=true]{border:3px solid var(--surface);background:var(--gym);color:var(--on-gym);box-shadow:var(--e-1);animation:stick var(--dur-stick) var(--ease-stick) both}.ptask-coach:focus-visible,.ptask-time:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.ptask textarea{min-height:88px;resize:vertical}@media (prefers-reduced-motion:reduce){.ptask-coach[aria-pressed=true] .ptask-initial,.ptask-time[aria-pressed=true]{animation:none}}.mine-rows .classrow-action .btn{max-width:136px;white-space:normal;line-height:1.15;text-align:center;padding:var(--s-1) var(--s-3)}.mine-rows .classrow-spots{display:grid;gap:4px;justify-items:start}.mine-late{display:inline-flex;align-items:flex-start;gap:4px;font:var(--t-caption);color:var(--warn)}.mine-late .icon{flex:none;margin-top:1px}.mine-line{margin:0;font:var(--t-small);color:var(--muted)}.mine-visits{justify-self:start;display:inline-flex;align-items:baseline;gap:var(--s-2);margin:0;padding:var(--s-3) var(--s-4);background:var(--gym);color:var(--on-gym);border:3px solid var(--surface);border-radius:var(--r-md);box-shadow:var(--e-1);rotate:-2deg;animation:stick var(--dur-stick) var(--ease-stick) both}.mine-visits b{font:900 44px/1 var(--font-display);font-variation-settings:"wdth" var(--wdth-num);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.mine-visits span{font:var(--t-label)}.mine-visits-failed{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3)}.mine-att .chip{flex:none}@media (prefers-reduced-motion:reduce){.mine-visits{animation:none}}