/* Keep iOS chrome in document coordinates: stale fixed compositor offsets after
   the software keyboard closes cannot move navigation into the workout. */
:root[data-page=workout] .toast{bottom:calc(176px + env(safe-area-inset-bottom))}
:root[data-page=workout] body.rest-running .toast{bottom:calc(250px + env(safe-area-inset-bottom))}
.rest-overlay{bottom:calc(174px + env(safe-area-inset-bottom))}
:root[data-viewport-anchor=on] .nav{position:absolute;top:var(--viewport-nav-top);bottom:auto;left:var(--viewport-left);right:auto;width:var(--viewport-width);max-width:100vw}
:root[data-viewport-anchor=on] #workoutFabDock{position:absolute;top:var(--viewport-fab-top);bottom:auto;left:calc(var(--viewport-left) + 16px);right:auto;width:calc(min(var(--viewport-width),100vw) - 32px);padding:0;background:none}
:root[data-viewport-anchor=on] #workoutFabDock[hidden]{display:none!important}
:root[data-viewport-anchor=on] .rest-overlay{position:absolute;top:var(--viewport-rest-top);bottom:auto;left:calc(var(--viewport-left) + min(var(--viewport-width),100vw)/2);right:auto;transition-property:opacity,transform}
:root[data-viewport-anchor=on] .toast{position:absolute;top:var(--viewport-toast-top);bottom:auto;left:calc(var(--viewport-left) + min(var(--viewport-width),100vw)/2);right:auto;max-width:min(90vw,calc(var(--viewport-width) - 24px));transition-property:opacity,transform}
:root[data-viewport-anchor=on][data-viewport-keyboard=open] :is(.nav,.rest-overlay,#workoutFabDock){visibility:hidden;pointer-events:none}
:root[data-viewport-anchor=on]:not([data-page=login]) body{padding-bottom:calc(var(--viewport-nav-height,100px) + var(--viewport-fab-height,0px) + 24px)}
:root[data-viewport-anchor=on]{scroll-padding-bottom:calc(var(--viewport-nav-height,100px) + var(--viewport-fab-height,0px) + 24px)}
