/* FitSync — utility layer (only the classes this app uses) */
*,*::before,*::after{box-sizing:border-box;border:0 solid currentColor}
html,body{margin:0;padding:0}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior-y:none}
button{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer}
input,select,textarea{font:inherit;color:inherit;border:0;background:none}
svg{display:block;flex-shrink:0}
h1,h2,h3,p{margin:0}
.last\:border-0:last-child{border-width:0}
.-space-x-2>*+*{margin-left:-0.5rem}
.-rotate-90{transform:rotate(-90deg)}
.-translate-x-1\/2{transform:translateX(-50%)}
.absolute{position:absolute}
.bg-white{background-color:#fff}
.block{display:block}
.border-2{border-width:2px}
.border-b{border-bottom-width:1px}
.border-t{border-top-width:1px}
.border{border-width:1px}
.bottom-0{bottom:0}
.break-all{word-break:break-all}
.capitalize{text-transform:capitalize}
.cursor-pointer{cursor:pointer}
.fixed{position:fixed}
.flex-1{flex:1 1 0%}
.flex-col{flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.flex{display:flex}
.font-bold{font-weight:700}
.font-medium{font-weight:500}
.font-semibold{font-weight:600}
.gap-1\.5{gap:0.375rem}
.gap-1{gap:0.25rem}
.gap-2\.5{gap:0.625rem}
.gap-2{gap:0.5rem}
.gap-3{gap:0.75rem}
.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}
.grid{display:grid}
.h-10{height:2.5rem}
.h-11{height:2.75rem}
.h-14{height:3.5rem}
.h-1\.5{height:0.375rem}
.h-1{height:0.25rem}
.h-2{height:0.5rem}
.h-5{height:1.25rem}
.h-7{height:1.75rem}
.h-full{height:100%}
.inline-flex{display:inline-flex}
.inset-0{top:0;right:0;bottom:0;left:0}
.inset-x-0{left:0;right:0}
.items-baseline{align-items:baseline}
.items-center{align-items:center}
.items-end{align-items:flex-end}
.items-start{align-items:flex-start}
.justify-between{justify-content:space-between}
.justify-center{justify-content:center}
.justify-end{justify-content:flex-end}
.leading-\[1\.05\]{line-height:1.05}
.leading-none{line-height:1}
.leading-relaxed{line-height:1.625}
.leading-snug{line-height:1.375}
.leading-tight{line-height:1.25}
.left-1\/2{left:50%}
.max-h-\[88vh\]{max-height:88vh}
.max-w-2xl{max-width:42rem}
.max-w-sm{max-width:24rem}
.mb-1{margin-bottom:0.25rem}
.mb-2\.5{margin-bottom:0.625rem}
.mb-2{margin-bottom:0.5rem}
.mb-3{margin-bottom:0.75rem}
.mb-4{margin-bottom:1rem}
.mb-6{margin-bottom:1.5rem}
.min-h-screen{min-height:100vh;min-height:100dvh}
.min-w-0{min-width:0}
.min-w-\[52px\]{min-width:52px}
.mt-0\.5{margin-top:0.125rem}
.mt-14{margin-top:3.5rem}
.mt-1\.5{margin-top:0.375rem}
.mt-1{margin-top:0.25rem}
.mt-2\.5{margin-top:0.625rem}
.mt-2{margin-top:0.5rem}
.mt-3\.5{margin-top:0.875rem}
.mt-3{margin-top:0.75rem}
.mt-4{margin-top:1rem}
.mt-8{margin-top:2rem}
.mx-auto{margin-left:auto;margin-right:auto}
.outline-none{outline:none}
.overflow-hidden{overflow:hidden}
.overflow-y-auto{overflow-y:auto;-webkit-overflow-scrolling:touch}
.p-1\.5{padding-top:0.375rem;padding-right:0.375rem;padding-bottom:0.375rem;padding-left:0.375rem}
.p-1{padding-top:0.25rem;padding-right:0.25rem;padding-bottom:0.25rem;padding-left:0.25rem}
.p-2\.5{padding-top:0.625rem;padding-right:0.625rem;padding-bottom:0.625rem;padding-left:0.625rem}
.p-2{padding-top:0.5rem;padding-right:0.5rem;padding-bottom:0.5rem;padding-left:0.5rem}
.p-3\.5{padding-top:0.875rem;padding-right:0.875rem;padding-bottom:0.875rem;padding-left:0.875rem}
.p-4{padding-top:1rem;padding-right:1rem;padding-bottom:1rem;padding-left:1rem}
.p-5{padding-top:1.25rem;padding-right:1.25rem;padding-bottom:1.25rem;padding-left:1.25rem}
.pb-1{padding-bottom:0.25rem}
.pb-28{padding-bottom:7rem}
.pb-3{padding-bottom:0.75rem}
.pb-40{padding-bottom:10rem}
.pb-4{padding-bottom:1rem}
.pb-5{padding-bottom:1.25rem}
.pb-6{padding-bottom:1.5rem}
.pt-0\.5{padding-top:0.125rem}
.pt-1{padding-top:0.25rem}
.pt-2{padding-top:0.5rem}
.pt-4{padding-top:1rem}
.pt-5{padding-top:1.25rem}
.pt-8{padding-top:2rem}
.px-1\.5{padding-left:0.375rem;padding-right:0.375rem}
.px-1{padding-left:0.25rem;padding-right:0.25rem}
.px-2\.5{padding-left:0.625rem;padding-right:0.625rem}
.px-2{padding-left:0.5rem;padding-right:0.5rem}
.px-3\.5{padding-left:0.875rem;padding-right:0.875rem}
.px-3{padding-left:0.75rem;padding-right:0.75rem}
.px-4{padding-left:1rem;padding-right:1rem}
.px-5{padding-left:1.25rem;padding-right:1.25rem}
.px-6{padding-left:1.5rem;padding-right:1.5rem}
.px-8{padding-left:2rem;padding-right:2rem}
.py-0\.5{padding-top:0.125rem;padding-bottom:0.125rem}
.py-10{padding-top:2.5rem;padding-bottom:2.5rem}
.py-1\.5{padding-top:0.375rem;padding-bottom:0.375rem}
.py-1{padding-top:0.25rem;padding-bottom:0.25rem}
.py-2\.5{padding-top:0.625rem;padding-bottom:0.625rem}
.py-2{padding-top:0.5rem;padding-bottom:0.5rem}
.py-3\.5{padding-top:0.875rem;padding-bottom:0.875rem}
.py-3{padding-top:0.75rem;padding-bottom:0.75rem}
.py-4{padding-top:1rem;padding-bottom:1rem}
.py-5{padding-top:1.25rem;padding-bottom:1.25rem}
.relative{position:relative}
.right-1\/2{right:50%}
.rounded-2xl{border-radius:1rem}
.rounded-3xl{border-radius:1.5rem}
.rounded-full{border-radius:9999px}
.rounded-lg{border-radius:0.5rem}
.rounded-md{border-radius:0.375rem}
.rounded-t-\[28px\]{border-top-left-radius:28px;border-top-right-radius:28px}
.rounded-xl{border-radius:0.75rem}
.shadow-xl{box-shadow:0 18px 40px -12px rgba(0,0,0,.45)}
.shrink-0{flex-shrink:0}
.space-y-2>*+*{margin-top:0.5rem}
.space-y-2\.5>*+*{margin-top:0.625rem}
.space-y-3>*+*{margin-top:0.75rem}
.space-y-4>*+*{margin-top:1rem}
.space-y-5>*+*{margin-top:1.25rem}
.sticky{position:sticky}
.text-\[10\.5px\]{font-size:10.5px}
.text-\[10px\]{font-size:10px}
.text-\[11\.5px\]{font-size:11.5px}
.text-\[11px\]{font-size:11px}
.text-\[12\.5px\]{font-size:12.5px}
.text-\[12px\]{font-size:12px}
.text-\[13\.5px\]{font-size:13.5px}
.text-\[13px\]{font-size:13px}
.text-\[14\.5px\]{font-size:14.5px}
.text-\[14px\]{font-size:14px}
.text-\[15px\]{font-size:15px}
.text-\[16px\]{font-size:16px}
.text-\[17px\]{font-size:17px}
.text-\[19px\]{font-size:19px}
.text-\[21px\]{font-size:21px}
.text-\[22px\]{font-size:22px}
.text-\[23px\]{font-size:23px}
.text-\[24px\]{font-size:24px}
.text-\[26px\]{font-size:26px}
.text-\[30px\]{font-size:30px}
.text-\[38px\]{font-size:38px}
.text-\[9px\]{font-size:9px}
.text-center{text-align:center}
.text-left{text-align:left}
.text-right{text-align:right}
.top-0{top:0}
.tracking-\[0\.06em\]{letter-spacing:0.06em}
.tracking-\[0\.08em\]{letter-spacing:0.08em}
.tracking-tight{letter-spacing:-0.015em}
.translate-x-4{transform:translateX(1rem)}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uppercase{text-transform:uppercase}
.w-10{width:2.5rem}
.w-11{width:2.75rem}
.w-20{width:5rem}
.w-5{width:1.25rem}
.w-6{width:1.5rem}
.w-full{width:100%}
.whitespace-nowrap{white-space:nowrap}
.z-10{z-index:10}
.z-20{z-index:20}
.z-30{z-index:30}
.z-50{z-index:50}
.z-\[60\]{z-index:60}
@media (min-width:640px){
  .sm\:items-center{align-items:center}
  .sm\:max-w-md{max-width:28rem}
  .sm\:rounded-\[28px\]{border-radius:28px}
}
.bottom-2{bottom:0.5rem}
.bottom-24{bottom:6rem}
/* installed-app polish: keep the tab bar clear of the iPhone home indicator */
nav.fs-safe{padding-bottom:calc(0.75rem + env(safe-area-inset-bottom))}
.fs-safe-top{padding-top:env(safe-area-inset-top)}
/* iOS Safari zooms the page when a focused input is under 16px.
   Sizing inputs at 16px on small screens avoids that without
   disabling pinch-zoom, which would hurt accessibility. */
@media (max-width: 640px) {
  input, select, textarea { font-size: 16px !important; }
}
