.gym-today{padding:28px;margin-bottom:20px;background:#1c2316;border:1px solid #526638}.gym-today-meta{display:flex;gap:12px;flex-wrap:wrap;justify-content:space-between;align-items:center}.gym-today time{color:#c2cab7;font-size:.9rem}.gym-today h1{font-size:clamp(26px,4vw,38px);line-height:1.2;margin:20px 0 14px;overflow-wrap:anywhere}.gym-today p{font-size:16px;line-height:1.6;margin:16px 0;color:#c2cab7}.gym-session-open{min-height:48px}.gym-calendar{margin-bottom:24px}.gym-calendar>summary{cursor:pointer;min-height:56px;padding:18px;font-size:16px;font-weight:700;list-style-position:inside}.gym-calendar>summary small{display:block;font-weight:400;font-size:14px;color:#bec5b5;margin-top:6px}.gym-calendar .client-calendar{margin:0;border:0}.gym-exercises{display:grid;gap:16px;margin:22px 0}.gym-exercise{padding:20px;background:#10150d;border:1px solid #46503b;border-radius:8px}.gym-exercise-heading{display:flex;gap:12px;align-items:baseline}.gym-exercise-heading>span{font-size:13px;color:#d8f36a}.gym-exercise h3{font-size:18px;line-height:1.4;margin:0}.gym-instructions{margin-top:14px}.gym-instructions p{font-size:17px;line-height:1.65;margin:10px 0;white-space:pre-wrap;overflow-wrap:anywhere;color:#edf0e5}.gym-connection{padding:14px;margin:12px 0;background:#382b16;border:1px solid #9e8147;color:#f4deb6;font-size:15px;line-height:1.5}.gym-connection[hidden]{display:none}.gym-calendar summary:focus-visible{outline:2px solid #d8f36a;outline-offset:2px}.gym-session-modal .modal-actions .btn{min-height:48px}.gym-session-modal .field,.gym-session-modal input,.gym-session-modal textarea,.gym-session-modal select{font-size:16px}.gym-session-modal .field select{min-height:48px}
@media(max-width:700px){.gym-client aside{padding:12px 16px;gap:0}.gym-client aside .brand img{max-width:122px}.gym-client aside>div:has(>nav){height:0}.gym-client aside nav{position:fixed;bottom:0;left:0;right:0;z-index:40;background:#151a12;border-top:1px solid #46503b;padding:8px 8px calc(8px + env(safe-area-inset-bottom));margin:0;display:flex;flex-wrap:nowrap;gap:4px}.gym-client aside .nav-btn{min-height:48px;font-size:13px;line-height:1.3;padding:9px 6px}.gym-client .topbar{min-height:60px;padding:10px 16px}.gym-client main{padding:18px 16px calc(100px + env(safe-area-inset-bottom))}.gym-today{padding:20px}.gym-today h1{font-size:28px}.gym-today-meta{display:grid;gap:8px}.gym-session-open{width:100%;font-size:16px}.gym-calendar .calendar-controls{width:100%;justify-content:space-between}.gym-calendar .calendar-controls .btn{min-width:48px;min-height:48px}.gym-calendar .calendar-event{min-height:100px}.gym-calendar .calendar-event strong{font-size:17px}.gym-calendar .calendar-event small{font-size:14px}.gym-client .client-month-card{margin-top:24px}.gym-session-modal{width:100%!important;max-width:100%!important;height:100dvh;max-height:100dvh!important;margin:0!important;padding:20px 18px calc(24px + env(safe-area-inset-bottom))!important;border-radius:0!important;overscroll-behavior:contain}.modal-backdrop:has(.gym-session-modal){padding:0;align-items:stretch}.gym-session-modal .modal-head{position:sticky;top:-20px;background:#191d16;z-index:2;padding:14px 0;margin-top:-6px;align-items:flex-start}.gym-session-modal .modal-head h2{font-size:24px;line-height:1.3;overflow-wrap:anywhere}.gym-session-modal .modal-head button{min-width:48px;min-height:48px;flex-shrink:0}.gym-session-modal .modal-actions{position:sticky;bottom:calc(-24px - env(safe-area-inset-bottom));background:#191d16;border-top:1px solid #46503b;padding:12px 0 calc(12px + env(safe-area-inset-bottom));margin-bottom:-24px;z-index:2}.gym-session-modal .modal-actions .btn{font-size:15px}.gym-session-modal .session-feedback-intro{font-size:16px;line-height:1.6}.gym-session-modal .session-mode-toggle{min-height:48px;font-size:15px}.gym-exercise{padding:16px}}
@media(prefers-reduced-motion:reduce){.gym-client *,.gym-session-modal *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
html:has(.gym-session-modal),body:has(.gym-session-modal){overflow:hidden}
/* Compact controls; preserve exercise typography and device safe areas. */
/* The same measured height is used for the bar and the scrollable content.
   An opaque, noninteractive tail masks the region below the visible viewport
   while Safari animates its browser controls. Never animate nav positioning. */
@media(max-width:700px){
 .gym-client aside nav{bottom:var(--grd-client-nav-offset,0px);isolation:isolate;transition:none;animation:none}
 .gym-client aside nav::after{content:"";position:absolute;left:0;right:0;top:100%;height:var(--grd-client-nav-offset,0px);background:#151a12;pointer-events:none}
 .gym-client .main-wrap main{padding-bottom:calc(var(--grd-client-nav-height,calc(65px + env(safe-area-inset-bottom,0px))) + var(--grd-client-nav-offset,0px) + 24px)}
 .gym-client[data-grd-nav-hidden] aside nav{visibility:hidden;pointer-events:none}
}
@media(max-width:700px){
 .modal-backdrop:has(.gym-session-modal){height:100dvh;overflow:hidden;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)!important;box-sizing:border-box}
 .gym-session-modal{height:100%!important;max-height:100%!important;padding:16px 18px 0!important;box-sizing:border-box}
 .gym-session-modal .modal-head{top:-16px;margin-top:0;padding:12px 0;gap:12px}
 .gym-session-modal .modal-head h2{margin:0;min-width:0}
 .gym-session-modal .modal-head button{width:44px;min-width:44px;height:44px;min-height:44px;padding:0;line-height:1}
 .gym-session-modal .modal-actions{bottom:0;margin:16px 0 0;padding:8px 0;gap:8px;display:flex;align-items:center;flex-wrap:wrap}
 .gym-session-modal .modal-actions .btn{min-height:44px;padding:10px 12px;font-size:14px;line-height:1.3;flex:1 1 110px;width:auto;white-space:normal}
 .gym-session-modal .modal-actions .btn.outline{flex:0 1 auto}
}
