:root{--app-safe-top:env(safe-area-inset-top,0px);--app-safe-right:env(safe-area-inset-right,0px);--app-safe-bottom:env(safe-area-inset-bottom,0px);--app-safe-left:env(safe-area-inset-left,0px);--tap-size:44px}
html,body{min-height:100%;overscroll-behavior-y:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{padding-left:var(--app-safe-left);padding-right:var(--app-safe-right);touch-action:manipulation}
button,a,input,select{min-height:var(--tap-size)}
button{-webkit-tap-highlight-color:transparent}
input,select,textarea{font-size:16px}
.phone-shell{min-height:100dvh;padding-bottom:calc(var(--nav) + var(--app-safe-bottom))}
.appbar{height:calc(92px + var(--app-safe-top));padding-top:calc(18px + var(--app-safe-top))}
.bottom-nav{height:calc(var(--nav) + var(--app-safe-bottom));padding-bottom:var(--app-safe-bottom)}
.picker-head{height:calc(94px + var(--app-safe-top));padding-top:calc(22px + var(--app-safe-top))}
.scroll-tabs{top:calc(94px + var(--app-safe-top))}
.picker-footer,.workout-actions{padding-bottom:calc(12px + var(--app-safe-bottom))}
dialog{max-height:calc(100dvh - var(--app-safe-top) - var(--app-safe-bottom) - 24px);overflow:auto}
html[data-platform="ios"] body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",sans-serif}
html[data-platform="ios"] input,html[data-platform="ios"] select{border-radius:12px}
html[data-platform="android"] body{font-family:Roboto,"Noto Sans KR",system-ui,sans-serif}
html[data-platform="android"] button:active{filter:brightness(1.12)}
html.is-standalone .phone-shell{user-select:none;-webkit-user-select:none}
html.is-standalone input,html.is-standalone textarea{user-select:text;-webkit-user-select:text}
@media (display-mode:standalone){.phone-shell{min-height:100dvh}.appbar{position:sticky}}
@media (min-width:768px) and (max-width:1180px){.phone-shell{width:min(900px,100%)}.bottom-nav,.picker-footer,.workout-actions{width:min(900px,100%)}.library-grid{grid-template-columns:repeat(3,1fr)}.exercise-list{padding-inline:28px}.calendar-card{margin-inline:24px}}
@media (orientation:landscape) and (max-height:560px){.appbar{height:70px;padding-top:calc(8px + var(--app-safe-top))}.picker-head{height:72px;padding-top:calc(8px + var(--app-safe-top))}.scroll-tabs{top:calc(72px + var(--app-safe-top))}.bottom-nav{--nav:58px}.exercise-row{min-height:78px}.exercise-row img{height:62px}}
@media (max-width:360px){.calendar-card{margin-inline:8px}.day{padding-inline:2px}.calendar-session b{max-width:28px}.appbar{padding-inline:12px}.record-hero strong{font-size:20px}}
