:root{color-scheme:dark;--neutral-0: #FFFFFF;--neutral-500: #888888;--neutral-600: #56575B;--neutral-850: #242427;--neutral-900: #1A1A1C;--neutral-950: #0A0A0B;--green-400: #5DBB63;--green-500: #9ED153;--green-700: #648337;--blue-400: #4A90E2;--blue-500: #3FA2F7;--orange-500: #FF8C42;--red-500: #E84545;--purple-500: #B47BFF;--pink-500: #F178B6;--yellow-500: #FFD700;--beige-200: #FADFBE;--color-bg: var(--neutral-950);--color-card: var(--neutral-900);--color-card-hover: var(--neutral-850);--bg-base: var(--neutral-950);--surface: var(--neutral-900);--surface-raised: var(--neutral-850);--overlay-hover: rgba(255, 255, 255, .04);--layer-1: rgba(255, 255, 255, .04);--layer-2: rgba(255, 255, 255, .08);--layer-3: rgba(255, 255, 255, .12);--highlight-recent: rgba(255, 255, 255, .06);--surface-pinned: color-mix(in srgb, var(--color-text) 6%, var(--surface-raised));--surface-disabled: #1A1A1B;--surface-tonal: var(--neutral-850);--scrim-sticky: linear-gradient(to bottom, rgba(10, 10, 10, .95) 0%, rgba(10, 10, 10, .6) 50%, transparent 100%);--accent: var(--green-500);--accent-dark: var(--green-700);--accent-on: #0D0C0C;--color-primary: var(--accent);--color-primary-dark: var(--accent-dark);--green-timer: #33A756;--color-timer: var(--green-timer);--color-text: var(--neutral-0);--color-text-secondary: var(--neutral-500);--color-text-disabled: #4F4F4F;--color-text-tonal: var(--accent);--text-label: rgba(255, 255, 255, .85);--text-info: rgba(255, 255, 255, .68);--color-icon-muscle: var(--beige-200);--cat-strength: var(--red-500);--cat-cardio: var(--orange-500);--cat-pool: var(--blue-500);--cat-stretch: var(--pink-500);--cat-gym: #AEB7C4;--cat-recovery: var(--neutral-0);--tag-gym: var(--orange-500);--tag-home: var(--blue-400);--tag-outdoor: var(--green-400);--color-error: var(--red-500);--color-warning: var(--yellow-500);--color-success: var(--green-500);--color-info: var(--blue-500);--color-streak: var(--orange-500);--color-offline: var(--orange-500);--color-note: var(--orange-500);--color-note-surface: rgba(255, 140, 66, .06);--color-note-border: rgba(255, 140, 66, .2);--overlay-scrim: rgba(13, 12, 12, .85);--color-surface-dim: rgba(34, 34, 34, .3);--color-border: rgba(255, 255, 255, .07);--border-hairline: var(--color-border);--border-tonal: rgba(255, 255, 255, .08);--color-text-inactive: rgba(255, 255, 255, .5);--color-surface-active: rgba(79, 79, 79, .4);--blur-sm: 8px;--blur-md: 12px;--radius-pill: 90px;--radius-card: 33px;--radius-medium: 20px;--radius-small: 10px;--radius-xs: 6px;--icon-sm: 16px;--icon-md: 20px;--icon-lg: 24px;--btn-height: 52px;--btn-height-sm: 36px;--btn-height-xs: 30px;--space-05: 2px;--space-1: 4px;--space-15: 6px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--z-base: 1;--z-scrim: 90;--z-header: 95;--z-nav: 100;--z-banner: 9998;--z-modal: 9999;--shadow-dock: 0 8px 40px rgba(0, 0, 0, .12);--shadow-modal: 0 8px 40px rgba(0, 0, 0, .6);--font-manrope: "Manrope", system-ui, sans-serif;--font-display: "Geist", system-ui, sans-serif;--text-caption-size: 11px;--text-caption-weight: 500;--text-caption-lh: 1.4;--text-label-size: 13px;--text-label-weight: 700;--text-label-lh: 1.2;--text-button-size: 14px;--text-button-weight: 700;--text-button-lh: 1;--text-button-lg-size: 16px;--text-body-size: 15px;--text-body-weight: 500;--text-body-lh: 1.4;--text-title-size: 18px;--text-title-weight: 700;--text-title-lh: 1.2;--text-heading-size: 22px;--text-heading-weight: 800;--text-heading-lh: 1.15;--text-display-size: 28px;--text-display-weight: 800;--text-display-lh: 1.1;--text-hero-size: 40px;--text-hero-weight: 800;--text-hero-lh: 1;--weight-text: 500;--weight-label: 700;--weight-value: 800;--tabbar-height: 63px;--tabbar-bottom: 16px;--ease-ios: cubic-bezier(.32, .72, 0, 1);--duration-page: .28s;--press-scale: .97;--press-duration: .12s;--press-ease: cubic-bezier(.4, 0, .6, 1);--tg-safe-top: 108px;--tg-nav-top: 56px;--tg-nav-height: 44px}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}html{width:100%;height:100%;background:var(--color-bg);overscroll-behavior-y:contain}body{width:100%;min-height:100%;background:var(--color-bg);color:var(--color-text);font-family:var(--font-manrope);-webkit-font-smoothing:antialiased;overscroll-behavior-y:contain}#root{width:100%;min-height:100vh;min-height:100dvh;background:var(--color-bg)}button{background:none;border:none;color:inherit;font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}img,button{-webkit-user-drag:none}.app{position:relative;min-height:100vh;min-height:100dvh;background:var(--color-bg);padding-bottom:calc(var(--tabbar-height) + var(--tabbar-bottom) + 60px)}.app:before,.app:after{content:"";position:fixed;left:0;right:0;height:var(--tg-safe-top);pointer-events:none;z-index:90;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.app:before{top:0;height:calc(var(--tg-safe-top) + 14px);background:linear-gradient(to bottom,var(--color-bg) 0%,rgba(13,12,12,.7) 35%,rgba(13,12,12,0) 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 65%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 65%,transparent 100%)}.app:after{bottom:0;height:calc(var(--tg-safe-top) / 2);background:linear-gradient(to top,var(--color-bg) 0%,rgba(13,12,12,.7) 35%,rgba(13,12,12,0) 100%);-webkit-mask-image:linear-gradient(to top,#000 0%,#000 45%,transparent 100%);mask-image:linear-gradient(to top,#000 0%,#000 45%,transparent 100%)}body.hide-app-scrim .app:after{display:none}body.keyboard-open .app:after{display:none}.dock-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:linear-gradient(to top,var(--color-bg) 0%,rgba(13,12,12,.7) 35%,rgba(13,12,12,0) 100%);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);-webkit-mask-image:linear-gradient(to top,#000 0%,#000 45%,transparent 100%);mask-image:linear-gradient(to top,#000 0%,#000 45%,transparent 100%)}.page{padding:var(--tg-safe-top) 16px 24px;position:relative;z-index:1}@keyframes dayPickerPulse{0%,to{transform:scale(1)}50%{transform:scale(1.5)}}@keyframes overloadPopIn{0%{opacity:0;transform:translateY(-50%) scale(.9)}to{opacity:1;transform:translateY(-50%) scale(1)}}@keyframes popScale{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes ptrSpin{to{transform:rotate(360deg)}}@keyframes btnMorph{0%{transform:scale(1)}35%{transform:scale(.88)}to{transform:scale(1)}}@keyframes poolShine{0%{transform:translate(-140%)}to{transform:translate(240%)}}@keyframes pennantSway{0%,to{transform:rotate(-15deg)}50%{transform:rotate(15deg)}}@keyframes pageSlideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes dayLetterInRight{0%{transform:translate(40px)}to{transform:translate(0)}}@keyframes dayLetterInLeft{0%{transform:translate(-40px)}to{transform:translate(0)}}@keyframes hslideInRight{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@keyframes hslideInLeft{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:translate(0)}}@keyframes particleBurst{0%{opacity:0;transform:translate(0) scale(1)}10%{opacity:1}to{opacity:0;transform:translate(var(--burst-x, 0),var(--burst-y, -40px)) scale(.4)}}@keyframes questFlash{0%{opacity:0;transform:scale(.4)}30%{opacity:1}to{opacity:0;transform:scale(1.6)}}@keyframes errorShake{0%{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}to{transform:translate(0)}}@keyframes checkPop{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}60%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes weightRaiseArrow{0%{opacity:0;transform:translateY(calc(-50% + 4px))}10%{opacity:1;transform:translateY(-50%)}82%{opacity:1;transform:translateY(-50%)}to{opacity:0;transform:translateY(-50%)}}@keyframes weightLowerArrow{0%{opacity:0;transform:translateY(calc(-50% - 4px))}10%{opacity:1;transform:translateY(-50%)}82%{opacity:1;transform:translateY(-50%)}to{opacity:0;transform:translateY(-50%)}}@keyframes groupPillIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes timerPulse{0%{transform:scale(1)}45%{transform:scale(1.22)}to{transform:scale(1)}}@keyframes skeletonShimmer{0%{background-position:100% 0}to{background-position:0 0}}@keyframes returnGlowFade{0%{opacity:0}15%{opacity:1}55%{opacity:1}to{opacity:0}}@keyframes returnPress{0%{transform:scale(1)}22%{transform:scale(var(--press-scale))}to{transform:scale(1)}}@keyframes menuOverlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes menuPanelScaleIn{0%{opacity:0;transform:scale(.92) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes tabIconPop{0%{transform:scale(1)}40%{transform:scale(1.28)}to{transform:scale(1)}}@keyframes trainingDotPulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes rocketLaunch{0%{transform:translate(0) scale(1)}45%{transform:translate(7px,-7px) scale(1.12)}to{transform:translate(0) scale(1)}}@keyframes rocketLand{0%{transform:translate(0) scale(1)}45%{transform:translate(-3px,3px) scale(.94)}to{transform:translate(0) scale(1)}}@keyframes quickPopIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}12%{opacity:1;transform:translate(-50%,-50%) scale(1)}78%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.98)}}@keyframes popupDrop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.press-tile{transition:transform var(--press-duration) var(--press-ease),opacity .2s ease,box-shadow .2s ease;-webkit-tap-highlight-color:transparent}.press-tile:active{transform:scale(var(--press-scale));transition:transform 60ms var(--press-ease)}.press-dim{transition:box-shadow .2s ease;-webkit-tap-highlight-color:transparent}.press-dim:active{box-shadow:inset 0 0 0 999px #ffffff0f;transition:box-shadow 60ms ease}.press-dim:has(button:active){opacity:1}.tg-row{transition:background .12s ease;-webkit-tap-highlight-color:transparent}.tg-row:active{background:#ffffff0f}.modal-btn{background:#ffffff21;transition:background .15s ease;-webkit-tap-highlight-color:transparent}.modal-btn:active{background:#ffffff38}.day-picker-pulse{animation:dayPickerPulse 1.4s ease-in-out infinite}.pop-scale{animation:popScale .62s ease-in-out}.ptr-spin{animation:ptrSpin .7s linear infinite}.btn-morph{animation:btnMorph .46s var(--ease-ios)}.press-danger:active{background:#e845452e!important;color:#e84545!important}.press-grow{transition:transform .18s var(--press-ease)}.press-grow:focus,.press-grow:active{transform:scale(1.02)}.press-exercise-card{transition:transform .15s var(--press-ease),background .3s ease;-webkit-tap-highlight-color:transparent;will-change:transform}.press-exercise-card:active{transform:scale(.98);transition:transform 70ms var(--press-ease)}.page-enter{animation:pageSlideIn var(--duration-page) var(--ease-ios) both}.page-fade{animation:pageFadeIn var(--duration-page) var(--ease-ios) both}.day-letter-slide-in-right{animation:dayLetterInRight .32s var(--ease-ios) both}.day-letter-slide-in-left{animation:dayLetterInLeft .32s var(--ease-ios) both}.hslide-in-right{animation:hslideInRight .3s var(--ease-ios) both}.hslide-in-left{animation:hslideInLeft .3s var(--ease-ios) both}.shake-error{animation:errorShake .4s var(--press-ease) both}.skel{background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14 37%,#ffffff0a 63%);background-size:400% 100%;animation:skeletonShimmer 1.4s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.skel{animation:none}}::-webkit-scrollbar{display:none}
