@font-face{font-family:Aleo;src:url(/fonts/aleo-400.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Aleo;src:url(/fonts/aleo-500.ttf) format("truetype");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Aleo;src:url(/fonts/aleo-600.ttf) format("truetype");font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:Aleo;src:url(/fonts/aleo-700.ttf) format("truetype");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Aleo;src:url(/fonts/aleo-italic-400.ttf) format("truetype");font-style:italic;font-weight:400;font-display:swap}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:clamp(15px,.25vw + 14px,18px)}html,body,#root{min-height:100%}body{font-family:Aleo,Georgia,serif;font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}html.theme-animate,html.theme-animate *{transition:background-color .4s ease,color .4s ease,border-color .4s ease,box-shadow .4s ease,fill .4s ease,stroke .4s ease}@keyframes spin{to{transform:rotate(360deg)}}:root{--bg: #191918;--bg-raised: #111;--bg-hover: #161616;--bg-input: #1a1a1a;--text: #e0e0e0;--text-primary: #fff;--text-secondary: #999;--text-muted: #555;--border: #1a1a1a;--accent: #1ea87a;--accent-hover: #17946a;--accent-bg: rgba(30, 168, 122, .08);--negative: #dc3030;--ath-hm-0: #1e1e1c;--ath-hm-1: #133d2a;--ath-hm-2: #1a6b44;--ath-hm-3: #22945c;--ath-hm-4: #2db87a;--app-footer-text: #8f8a80;--app-footer-brand-opacity: .42;--ui-kicker-size: clamp(.75rem, .2vw + .71rem, .875rem);--ui-section-label-size: clamp(.82rem, .28vw + .76rem, 1rem);--ui-title-size: clamp(2rem, 1vw + 1.72rem, 2.5rem);--ui-body-size: clamp(.97rem, .24vw + .92rem, 1.08rem);--ui-setting-label-size: clamp(1.1rem, .36vw + 1.02rem, 1.3rem);--ui-setting-note-size: clamp(.92rem, .18vw + .88rem, 1rem);--ui-setting-value-size: clamp(1.26rem, .42vw + 1.16rem, 1.48rem);--ui-setting-unit-size: clamp(1rem, .22vw + .95rem, 1.12rem);--ui-athlete-summary-value-size: clamp(1.45rem, .8vw + 1.24rem, 1.95rem);--ui-athlete-summary-label-size: clamp(.72rem, .16vw + .69rem, .82rem);--ui-athlete-chip-size: clamp(.84rem, .2vw + .8rem, .94rem);--ui-athlete-meta-size: clamp(.94rem, .28vw + .88rem, 1.08rem);--ui-athlete-small-size: clamp(.82rem, .2vw + .78rem, .94rem);--ui-athlete-section-label-size: clamp(.8rem, .24vw + .75rem, .94rem);--ui-athlete-section-title-size: clamp(1.45rem, 1vw + 1.12rem, 2.1rem);--ui-athlete-run-name-size: clamp(1rem, .34vw + .94rem, 1.16rem);--ui-athlete-run-meta-size: clamp(.88rem, .22vw + .83rem, .98rem);--ui-athlete-run-value-size: clamp(1.35rem, .7vw + 1.18rem, 1.8rem);--ui-athlete-run-unit-size: clamp(.66rem, .18vw + .62rem, .78rem);--ui-period-kicker-size: clamp(.84rem, .18vw + .8rem, .94rem);--ui-period-tab-size: clamp(.9rem, .2vw + .86rem, 1rem);--ui-period-value-size: clamp(1.8rem, .9vw + 1.5rem, 2.35rem);--ui-period-label-size: clamp(.98rem, .18vw + .94rem, 1.08rem);--ui-period-trend-size: clamp(.9rem, .16vw + .86rem, .98rem);--ui-detail-head-size: clamp(.92rem, .18vw + .88rem, 1rem);--ui-detail-body-size: clamp(.98rem, .18vw + .94rem, 1.08rem);--ui-detail-meta-size: clamp(.88rem, .16vw + .84rem, .98rem)}html[data-theme=light]{--bg: #f6f5f1;--bg-raised: #fff;--bg-hover: #fafafa;--bg-input: #f0f0f0;--text: #333;--text-primary: #111;--text-secondary: #666;--text-muted: #aaa;--border: #e0e0e0;--accent: #16825e;--accent-hover: #126e4f;--accent-bg: rgba(22, 130, 94, .06);--negative: #c02020;--ath-hm-0: #eae7e1;--ath-hm-1: #c5e8d6;--ath-hm-2: #6fc49a;--ath-hm-3: #2f9b65;--ath-hm-4: #1a7a4e;--app-footer-text: #b0a492;--app-footer-brand-opacity: .38}body{background:var(--bg);color:var(--text)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;height:80px;position:sticky;top:0;background:var(--bg);z-index:100;border-bottom:1px solid var(--border)}.topbar-logo-wrap{position:absolute;left:50%;transform:translate(-50%)}.burger{background:none;border:none;color:var(--text-primary);font-size:1.75rem;cursor:pointer;padding:10px;margin:-10px;line-height:1}.topbar-logo{display:block;height:32px;width:auto;filter:brightness(0) invert(1)}html[data-theme=light] .topbar-logo{filter:none}.topbar-title{display:none}.profile-avatar{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#2d7a5f;color:#fff;font-size:.875rem;font-weight:700;padding-top:2px;letter-spacing:.5px;text-decoration:none;flex-shrink:0;transition:opacity .15s}.profile-avatar:hover{opacity:.8}.profile-avatar--syncing:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1.5px solid rgba(30,168,122,.24);border-top-color:#1ea87ae0;animation:profile-sync-spin 1.2s linear infinite}.topbar-actions{display:flex;align-items:center;gap:20px}@keyframes profile-sync-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.theme-menu-trigger{appearance:none;border:none;background:none;color:var(--text-secondary);width:24px;height:24px;display:grid;place-items:center;cursor:pointer;transition:color .15s}.theme-menu-trigger:hover{color:var(--text-primary)}.theme-menu-trigger svg{width:1.25rem;height:1.25rem}.menu-overlay{display:none;position:fixed;inset:0;background:var(--bg);z-index:200;flex-direction:column;align-items:center;justify-content:center;gap:12px}.menu-overlay.open{display:flex}.menu-link{font-size:2rem;font-weight:600;color:var(--text-secondary);text-decoration:none;padding:16px 40px;border-radius:12px;transition:color .15s,background .15s}.menu-link:hover,.menu-link.active{color:var(--text-primary);background:#ffffff0f}html[data-theme=light] .menu-link:hover,html[data-theme=light] .menu-link.active{background:#0000000f}.menu-close{position:absolute;top:24px;right:24px;background:none;border:none;color:var(--text-muted);font-size:2rem;cursor:pointer;padding:10px}.desktop-links{display:none}.page-notice-wrap{max-width:1060px;margin:0 auto;padding:18px 20px 0}.session-banner,.banner{border-radius:14px;padding:12px 14px;background:var(--bg-raised);border:1px solid var(--border)}.banner+.runs-sections,.banner+.placeholder-card{margin-top:18px}.runs-page .banner p{text-align:center}.session-banner strong{display:block;margin-bottom:6px;color:var(--text-primary)}.session-banner p,.banner p{margin:0;color:var(--text-secondary)}.banner-error{background:#ba3b281f;color:#8c2f1f}.banner-success{background:#1e784c1f;color:#185738}.loading-screen{min-height:calc(100vh - 80px);display:grid;place-items:center}.loading-screen-inline{min-height:220px}.loading-mark{width:44px;height:44px;border-radius:50%;border:1px solid var(--border);border-top-color:var(--accent);animation:spin .9s linear infinite}.onboarding-page{--ob-bg-alt: #f6f5f1;--ob-bg-card: #fff;--ob-text: #1a1a18;--ob-text-2: #5c5b56;--ob-text-3: #9c9a94;--ob-text-4: #c4c1ba;--ob-border: #ddd9d0;--ob-border-focus: #b8b3a8;--ob-accent: #1a7a56;--ob-accent-soft: rgba(26, 122, 86, .08);--ob-accent-border: rgba(26, 122, 86, .25);--ob-input-bg: #f6f5f1;--bg-alt: var(--ob-bg-alt);--bg-raised: var(--ob-bg-card);--border: var(--ob-border);--accent: var(--ob-accent);--text-primary: var(--ob-text);--text-secondary: var(--ob-text-2);--text-muted: var(--ob-text-3);--bg-input: var(--ob-input-bg);min-height:100vh;background:var(--bg-alt);font-size:1.0625rem;line-height:1.6}html[data-theme=dark] .onboarding-page{--ob-bg-alt: #191918;--ob-bg-card: #1e1e1c;--ob-text: #e8e6e0;--ob-text-2: #908e88;--ob-text-3: #5a5955;--ob-text-4: #3a3936;--ob-border: #2a2a27;--ob-border-focus: #4a4a45;--ob-accent: #2db87a;--ob-accent-soft: rgba(45, 184, 122, .08);--ob-accent-border: rgba(45, 184, 122, .28);--ob-input-bg: #161615}.ob-study-bar{position:fixed;top:0;left:0;right:0;z-index:120;display:flex;align-items:center;justify-content:center;gap:2px;padding:.625rem 20px;background:var(--bg-alt);border-bottom:1px solid var(--border)}.ob-auth-bar{position:fixed;top:0;left:0;right:0;z-index:120;display:flex;align-items:center;justify-content:space-between;padding:.875rem 20px;background:var(--bg-alt);border-bottom:1px solid var(--border)}.ob-auth-link{color:var(--text-secondary);text-decoration:none;font-size:.875rem;font-weight:600}.ob-auth-link:hover,.ob-auth-inline-link:hover{color:var(--text-primary)}.ob-study-tabs{display:flex;align-items:center;gap:2px}.ob-study-tabs--ghost,.ob-steps-wrap--ghost{visibility:hidden}.ob-study-tab{font-size:.8125rem;font-weight:600;padding:.4375rem 1rem;border:1px solid transparent;border-radius:8px;background:none;color:var(--text-muted);cursor:default}.ob-study-tab.active{color:var(--text-primary);background:var(--bg-raised);border-color:var(--border)}.ob-theme-btn{position:absolute;right:20px;top:0;bottom:0;display:flex;align-items:center;background:none;border:none;color:var(--text-muted);cursor:pointer}.ob-theme-btn:hover{color:var(--text-secondary)}.ob-theme-btn svg{width:1.25rem;height:1.25rem;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.ob-onboarding{min-height:100vh;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:96px 24px 32px;box-sizing:border-box}.ob-brand{display:block;height:clamp(2rem,2.8vw + .5rem,3rem);width:auto;margin-bottom:clamp(32px,3vw,48px)}html[data-theme=dark] .ob-brand{filter:brightness(0) invert(1)}.ob-steps-wrap{display:flex;flex-direction:column;align-items:center;width:100%}.ob-steps{display:flex;align-items:center;gap:0;margin-bottom:clamp(28px,3vw,40px)}.ob-step-dot{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--border);background:transparent;position:relative}.ob-step-dot.done{border-color:var(--accent);background:var(--accent)}.ob-step-dot.active{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 4px #1ea87a14}.ob-step-dot.active:after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1.5px solid rgba(30,168,122,.25)}.ob-step-line{width:clamp(40px,5vw,72px);height:1.5px;background:var(--border)}.ob-step-line.done{background:var(--accent)}.ob-card{width:min(calc(100vw - 48px),30rem);max-width:100%;background:var(--bg-raised);border:1px solid var(--border);border-radius:clamp(16px,1.4vw,24px);padding:clamp(28px,3vw,44px);box-shadow:0 1px 3px #1a1a180a,0 8px 32px #1a1a180f;box-sizing:border-box}html[data-theme=dark] .ob-card{box-shadow:0 1px 3px #0000001f,0 8px 32px #0000003d}.ob-card-header{margin-bottom:clamp(24px,2.5vw,36px);text-align:center}.ob-card-title{max-width:16ch;margin-inline:auto;font-size:clamp(1.5rem,2vw + .25rem,2rem);font-weight:600;line-height:1.2;color:var(--text-primary);letter-spacing:-.01em;text-wrap:balance}.ob-card-desc{margin-top:12px;font-size:clamp(.9375rem,.9vw + .1875rem,1.0625rem);color:var(--text-secondary);line-height:1.6}.ob-error{border-radius:10px;padding:12px 14px;background:#ba3b281f;color:#e0775e;font-size:.875rem;font-weight:500;line-height:1.5;margin-bottom:18px}.ob-inline-sync{margin-bottom:18px;border:1px solid rgba(30,168,122,.18);background:#1ea87a14;color:var(--text-secondary);border-radius:12px;padding:12px 14px;font-size:.875rem;line-height:1.5}html[data-theme=light] .ob-inline-sync{background:#1ea87a0f}.ob-post-card-note{width:min(calc(100vw - 80px),27rem);max-width:100%;margin:1.25rem auto 2.5rem}.ob-post-card-copy{margin:0;color:var(--text-secondary);text-align:center;font-size:.9375rem;line-height:1.65;font-weight:500;letter-spacing:0;opacity:.92}html[data-theme=light] .ob-error{background:#ba3b2814;color:#9c3524}.ob-field{display:grid;gap:7px;margin-bottom:18px}.ob-label{font-size:.8125rem;font-weight:600;color:var(--text-secondary);letter-spacing:.01em}.ob-input{width:100%;height:3.25rem;border-radius:12px;border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);padding:0 16px;font-size:1rem;outline:none}.ob-input::placeholder{color:var(--text-muted)}.ob-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1ea87a14}.ob-btn-primary,.ob-btn-secondary{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;cursor:pointer;transition:opacity .2s,transform .15s}.ob-btn-primary{height:3.25rem;border:none;border-radius:12px;background:var(--accent);color:#fff;font-size:1rem;font-weight:600;margin-top:8px}.ob-btn-primary:hover,.ob-btn-secondary:hover{opacity:.88;transform:translateY(-1px)}.ob-btn-primary:disabled,.ob-btn-secondary:disabled{opacity:.45;cursor:default;transform:none}.ob-btn-primary svg,.ob-focus-check svg,.ob-done-icon svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ob-btn-spinner{width:.875rem;height:.875rem;border-radius:999px;border:2px solid rgba(255,255,255,.28);border-top-color:#ffffffeb;animation:ob-btn-spin .8s linear infinite}.ob-btn-secondary{height:48px;border:1px solid var(--border);border-radius:12px;background:transparent;color:var(--text-secondary);font-size:.9375rem;font-weight:600}@keyframes ob-btn-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ob-divider{display:flex;align-items:center;gap:14px;margin:22px 0;color:var(--text-muted);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.ob-divider:before,.ob-divider:after{content:"";flex:1;height:1px;background:var(--border)}.ob-sync-center,.ob-done-center{display:flex;flex-direction:column;align-items:center;text-align:center}.ob-sync-ring{position:relative;width:clamp(180px,18vw + 40px,260px);aspect-ratio:1;margin-bottom:clamp(28px,3vw,40px)}.ob-sync-ring__sweep,.ob-sync-ring__pulse{position:absolute;border-radius:50%}.ob-sync-ring__outer,.ob-sync-ring__outer:before{position:absolute;inset:0;border-radius:50%;content:""}.ob-sync-ring__outer{border:1px solid rgba(30,168,122,.2);animation:obSyncRotate 7s linear infinite}.ob-sync-ring__outer:before{inset:18px;border:1px dashed rgba(30,168,122,.3);animation:obSyncRotateReverse 12s linear infinite}.ob-sync-ring__sweep{inset:4px;background:conic-gradient(from 0deg,#1ea87a00,#1ea87a14 210deg,#1ea87ac7 292deg,#1ea87a00 360deg);-webkit-mask:radial-gradient(circle,transparent calc(50% - 15px),#000 calc(50% - 13px),#000 calc(50% + 8px),transparent calc(50% + 10px));mask:radial-gradient(circle,transparent calc(50% - 15px),#000 calc(50% - 13px),#000 calc(50% + 8px),transparent calc(50% + 10px));animation:obSyncRotate 2.4s linear infinite}.ob-sync-ring__pulse{inset:34px;border:1px solid rgba(30,168,122,.16);animation:obSyncPulse 2.2s ease-in-out infinite}.ob-sync-ring__inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ob-sync-ring__value{font-size:clamp(2rem,2.5vw + .375rem,3rem);font-weight:600;color:var(--text-primary);line-height:1;animation:obSyncDots 1.1s ease-in-out infinite}.ob-sync-ring__label{font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-top:4px}.ob-sync-title,.ob-done-title{font-size:clamp(1.375rem,1.8vw + .25rem,1.75rem);font-weight:600;color:var(--text-primary);line-height:1.3}.ob-sync-desc,.ob-done-desc{margin-top:10px;font-size:clamp(.9375rem,.9vw + .1875rem,1.0625rem);color:var(--text-secondary);line-height:1.6;max-width:36ch}.ob-sync-stages{width:min(100%,420px);display:grid;gap:12px;margin-top:22px}.ob-sync-stage{padding:12px 14px;border-radius:16px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 92%,transparent)}.ob-sync-stage.active{border-color:#1ea87a47;box-shadow:0 0 0 1px #1ea87a0f}.ob-sync-stage.done{border-color:#1ea87a3d;background:#1ea87a12}.ob-sync-stage.subtle{opacity:.76}.ob-sync-stage__head{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:.6875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.ob-sync-stage__bar{position:relative;overflow:hidden;height:8px;margin-top:10px;border-radius:999px;background:#1ea87a1a}.ob-sync-stage__bar span{position:absolute;inset:0 auto 0 0;width:36%;border-radius:inherit;background:linear-gradient(90deg,#1ea87a14,#1ea87aeb,#54d69738);animation:obSyncBar 1.8s ease-in-out infinite}.ob-sync-stage.done .ob-sync-stage__bar span{width:100%;animation:none;background:linear-gradient(90deg,#1ea87a94,#1ea87ae6)}.ob-sync-stage.subtle .ob-sync-stage__bar span{width:22%;animation-duration:2.4s;opacity:.8}.ob-sync-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;margin-top:clamp(28px,3vw,40px)}.ob-meta-item{border:1px solid var(--border);border-radius:12px;padding:14px 16px;text-align:left;animation:obSyncMetaFloat 4s ease-in-out infinite}.ob-meta-item:nth-child(2){animation-delay:-2s}.ob-meta-label{font-size:.6875rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.ob-meta-val{margin-top:5px;font-size:1rem;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}@keyframes obSyncRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes obSyncRotateReverse{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes obSyncPulse{0%,to{transform:scale(.965);opacity:.4}50%{transform:scale(1.02);opacity:.82}}@keyframes obSyncDots{0%,20%{opacity:.5;letter-spacing:.06em;transform:translateY(0)}50%{opacity:1;letter-spacing:.14em;transform:translateY(-1px)}to{opacity:.5;letter-spacing:.06em;transform:translateY(0)}}@keyframes obSyncBar{0%{transform:translate(-115%)}60%{transform:translate(220%)}to{transform:translate(220%)}}@keyframes obSyncMetaFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.ob-focus-grid{margin-bottom:8px}.ob-focus-option{width:100%;text-align:left;border-radius:14px;border:1px solid var(--border);background:transparent;padding:18px 20px;cursor:pointer;display:grid;grid-template-columns:1fr auto;align-items:start;gap:16px;transition:all .2s;margin-bottom:12px;color:inherit}.ob-focus-option:hover{border-color:var(--ob-border-focus);box-shadow:0 1px 3px #1a1a180a,0 8px 32px #1a1a180f}.ob-focus-option.active{border-color:#1ea87a40;background:#1ea87a14}.ob-focus-option.locked{cursor:default}.ob-focus-name{font-size:1.0625rem;font-weight:600;color:var(--text-primary);line-height:1.3}.ob-focus-desc{margin-top:5px;font-size:.875rem;color:var(--text-secondary);line-height:1.5}.ob-focus-check{width:22px;height:22px;border-radius:7px;border:1.5px solid var(--border);display:grid;place-items:center;flex-shrink:0;margin-top:1px}.ob-focus-option.active .ob-focus-check{border-color:var(--accent);background:var(--accent)}.ob-focus-check svg{width:13px;height:13px;stroke:#fff;opacity:0}.ob-focus-option.active .ob-focus-check svg{opacity:1}.ob-done-icon{width:64px;height:64px;border-radius:50%;background:#1ea87a14;border:1.5px solid rgba(30,168,122,.25);display:grid;place-items:center;margin-bottom:24px}.ob-done-icon svg{width:28px;height:28px;stroke:var(--accent)}.ob-done-btn{margin-top:clamp(28px,3vw,40px)}.ob-done-btn .ob-btn-primary{width:auto;padding:0 32px}.ob-footer{margin-top:clamp(24px,2.5vw,36px);text-align:center}.ob-footer-text{max-width:32ch;margin-inline:auto;font-size:1rem;color:var(--text-muted);font-style:italic;text-wrap:balance}.ob-footer-text--action{margin-top:16px;white-space:nowrap}.ob-auth-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}.ob-auth-link-btn{appearance:none;border:none;background:transparent;color:var(--text-secondary);font:inherit;font-size:.875rem;font-weight:600;cursor:pointer;padding:0}.ob-auth-link-btn:disabled{opacity:.45;cursor:default}.ob-auth-inline-link{color:var(--text-secondary);text-decoration:underline;text-underline-offset:.14em}.today-page .container{max-width:600px;margin:0 auto;padding:0 20px 32px}.today-grid{display:flex;flex-direction:column;gap:18px;padding-top:24px}.today-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:18px;padding:28px 24px 24px;display:block;text-decoration:none;color:inherit;min-width:0}.today-card-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:18px}.today-card-title{font-size:1rem;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted)}.today-card-time{font-size:1rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.card-nutrition,.card-goal-primary,.card-goal-secondary{text-align:center}.goal-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 9px;border-radius:6px;border:1px solid rgba(30,168,122,.16);background:#1ea87a14;color:var(--accent);font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;flex-shrink:0}.focus-hero,.nutri-deficit{font-size:2.375rem;font-weight:800;line-height:1;letter-spacing:-1.5px;font-variant-numeric:tabular-nums}.focus-hero.good,.nutri-deficit.good{color:var(--accent)}.nutri-deficit.warning{color:#d4a520}.focus-hero.bad,.nutri-deficit.bad{color:var(--negative)}.focus-hero.neutral,.nutri-deficit.neutral{color:var(--text-primary)}.focus-sub{font-size:1rem;color:var(--text-muted);font-variant-numeric:tabular-nums;line-height:1.3;text-align:center}.nutri-rings-wrap{display:flex;justify-content:center;margin:20px 0 16px}.nutri-rings{position:relative;width:200px;height:200px;max-width:100%;aspect-ratio:1}.nutri-rings canvas{width:100%;height:100%}.nutri-rings-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;z-index:2}.nutri-deficit-unit{font-size:.875rem;color:var(--text-muted);font-weight:500;margin-top:2px}.nutri-legend{display:grid;grid-template-columns:repeat(4,minmax(0,auto));gap:16px;justify-content:center;margin-top:24px}.nutri-legend-item{display:flex;align-items:flex-start;gap:8px;justify-self:center;min-width:0;color:var(--text-muted)}.nutri-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:6px}.nutri-legend-copy{display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1.1;text-align:center}.nutri-legend-val{font-weight:600;color:var(--text-secondary);font-size:1.125rem;font-variant-numeric:tabular-nums}.nutri-legend-label{font-size:.8125rem;color:var(--text-muted)}@media(max-width:720px){.nutri-legend{grid-template-columns:repeat(2,minmax(0,auto));gap:12px 18px}.nutri-legend-item{min-width:0}}.health-index{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;font-size:1.0625rem;font-weight:800;line-height:1;flex-shrink:0}.health-index[data-score="5"]{background:#1ea87a26;color:#1ea87a}.health-index[data-score="4"]{background:#78c04026;color:#78c040}.health-index[data-score="3"]{background:#d4a52026;color:#d4a520}.health-index[data-score="2"]{background:#e0602026;color:#e06020}.health-index[data-score="1"]{background:#dc303026;color:#dc3030}.health-feed-card{display:flex;flex-direction:column;gap:14px;min-height:0;padding-bottom:8px}.health-feed-hero{display:flex;align-items:baseline;gap:8px}.health-feed-value{font-size:2.375rem;font-weight:700;line-height:1;letter-spacing:-.04em;color:var(--text-primary);font-variant-numeric:tabular-nums}.health-feed-unit{font-size:1rem;font-weight:500;color:var(--text-muted)}.health-feed-note{font-size:1rem;color:var(--text-muted);line-height:1.35;font-variant-numeric:tabular-nums}.health-feed-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.health-feed-metric{min-width:0}.health-feed-metric-value{font-size:1.125rem;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.health-feed-metric-label{margin-top:4px;font-size:.75rem;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase}.health-signal-card{--signal-border: rgba(90, 184, 171, .35);--signal-bg: rgba(90, 184, 171, .08);border:1px solid var(--signal-border);border-radius:20px;padding:18px 18px 16px;background:radial-gradient(circle at top right,var(--signal-bg),transparent 48%),linear-gradient(180deg,#ffffff08,#ffffff03)}html[data-theme=light] .health-signal-card{background:radial-gradient(circle at top right,var(--signal-bg),transparent 48%),linear-gradient(180deg,#00000004,#00000002)}.health-signal-card--baseline,.health-signal-card--stable{--signal-border: rgba(90, 184, 171, .3);--signal-bg: rgba(90, 184, 171, .08)}.health-signal-card--watch{--signal-border: rgba(201, 161, 107, .38);--signal-bg: rgba(201, 161, 107, .1)}.health-signal-card--strain{--signal-border: rgba(217, 124, 102, .42);--signal-bg: rgba(217, 124, 102, .12)}.health-signal-card--possible-illness{--signal-border: rgba(220, 48, 48, .45);--signal-bg: rgba(220, 48, 48, .12)}.health-signal-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.health-signal-card__eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}.health-signal-card__title{margin-top:6px;font-size:1.625rem;font-weight:700;line-height:1.05;color:var(--text-primary);letter-spacing:-.04em}.health-signal-card__pill{padding:8px 12px;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-primary);background:#ffffff0f;border:1px solid rgba(255,255,255,.08);white-space:nowrap}html[data-theme=light] .health-signal-card__pill{background:#00000008;border-color:#0000000f}.health-signal-card--stable .health-signal-card__pill,.health-signal-card--baseline .health-signal-card__pill{color:#1ea87a;background:#1ea87a14;border-color:#1ea87a2e}.health-signal-card--watch .health-signal-card__pill{color:#b5843f;background:#c9a16b1a;border-color:#c9a16b38}.health-signal-card--strain .health-signal-card__pill,.health-signal-card--possible-illness .health-signal-card__pill{color:#c86452;background:#d97c661a;border-color:#d97c6638}.health-signal-card__summary{font-size:.875rem;line-height:1.45;color:var(--text-muted)}.health-signal-card__footerline{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:nowrap;white-space:nowrap;overflow:hidden}.health-signal-card__meta-line{font-size:.8125rem;color:var(--text-muted);text-align:center;width:100%}.health-signal-card__meta-chip{font-size:.8125rem;color:var(--text-muted)}.health-signal-card__board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:0}.health-signal-metric{min-width:0;padding:12px 14px;border-radius:14px;background:#ffffff08;border:1px solid rgba(255,255,255,.04)}html[data-theme=light] .health-signal-metric{background:#00000006;border-color:#0000000a}.health-signal-metric__label{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.health-signal-metric__value{margin-top:10px;font-size:1.5rem;font-weight:700;line-height:1;color:var(--text-primary);letter-spacing:-.04em;font-variant-numeric:tabular-nums}.health-signal-metric__baseline{margin-top:8px;font-size:.8125rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.health-signal-metric__bars{position:relative;margin-top:12px;height:8px;overflow:hidden}.health-signal-metric__bar{position:absolute;left:0;top:0;height:8px;border-radius:999px}.health-signal-metric__bar--baseline{width:100%;background:#ffffff14}html[data-theme=light] .health-signal-metric__bar--baseline{background:#00000014}.health-signal-metric__bar--current{background:var(--accent)}.health-signal-metric__bar--good{background:#1ea87a}.health-signal-metric__bar--watch{background:#c9a16b}.health-signal-metric__bar--bad{background:#d97c66}.health-signal-card__drivers{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:18px}.health-signal-card__driver{min-width:0;padding:12px 14px;border-radius:14px;background:#ffffff08;border:1px solid rgba(255,255,255,.04)}html[data-theme=light] .health-signal-card__driver{background:#00000006;border-color:#0000000a}.health-signal-card__driver-label{font-size:.8125rem;font-weight:600;color:var(--text-primary)}.health-signal-card__driver-detail{margin-top:6px;font-size:.8125rem;line-height:1.4;color:var(--text-muted);font-variant-numeric:tabular-nums}.health-signal-card--compact{padding:18px}.health-signal-card--compact .health-signal-card__title{font-size:1.375rem}.health-signal-card--compact .health-signal-card__summary{font-size:.8125rem}.health-signal-card--compact .health-signal-card__board{grid-template-columns:repeat(2,minmax(0,1fr))}.health-signal-card--compact .health-signal-metric__value{font-size:1.25rem}.health-page .health-signal-card{margin-bottom:20px}.meal-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.meal-name{font-size:1.5rem;font-weight:600;color:var(--text-primary)}.meal-kcal{font-size:2.125rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;line-height:1}.meal-kcal-unit{font-size:1.0625rem;font-weight:400;color:var(--text-muted)}.meal-macros{display:flex;align-items:center;justify-content:space-between;margin-top:6px}.meal-macro-nums{display:flex;gap:12px;flex-wrap:nowrap}.meal-macro{display:flex;align-items:center;gap:4px;font-size:.875rem;font-variant-numeric:tabular-nums;white-space:nowrap}.meal-macro-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.meal-macro-val{font-weight:600;color:var(--text-secondary)}.meal-macro-label{font-size:.8125rem;color:var(--text-muted)}.races-page .container{max-width:1080px;margin:0 auto;padding:0 20px 48px}.race-detail-page .container{max-width:600px;margin:0 auto;padding:0 20px 48px}.page-header{padding:28px 0 12px}.page-eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted)}.health-page-eyebrow{position:relative;display:inline-flex;align-items:center;justify-content:center}.health-info-trigger{position:absolute;left:calc(100% + 10px);top:50%;display:inline-flex;align-items:center;padding:0;border:none;background:none;cursor:pointer;transform:translateY(-50%)}.health-info-trigger__icon{width:20px;height:20px;border-radius:50%;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:var(--text-muted)}.page-title{font-size:2.125rem;font-weight:800;color:var(--text-primary);letter-spacing:-.5px}.health-page-state{margin-top:8px;font-size:3.5rem;font-weight:800;line-height:.98;letter-spacing:-.06em;color:var(--text-primary)}.health-page-state--stable,.health-page-state--baseline{color:#1ea87a}.health-page-state--watch{color:#b5843f}.health-page-state--strain,.health-page-state--possible-illness{color:#c86452}.health-page-statusline{display:flex;align-items:center;gap:14px;margin-top:10px;font-size:1.0625rem;line-height:1.45;color:var(--text-muted)}.health-page .page-header{display:flex;flex-direction:column;align-items:center;text-align:center;padding:calc(clamp(32px,3vw,56px) + 20px) 0}.health-page .page-subtitle{max-width:560px}.modal.health-info-modal{width:min(92vw,760px);max-width:760px}.health-info-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.health-info-modal__title{margin-bottom:0}.health-info-modal__close{width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:1.375rem;line-height:1;cursor:pointer}.health-info-modal__body{display:flex;flex-direction:column;gap:18px;margin-top:18px}.health-info-note{padding:16px 18px;margin-bottom:18px;border-radius:16px;background:#1ea87a0f;border:1px solid rgba(30,168,122,.14);text-align:center}.health-info-note__eyebrow{font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.health-info-note p,.health-info-section p{margin:8px 0 0;font-size:.9375rem;line-height:1.55;color:var(--text-secondary)}.health-info-section h3{margin:0;font-size:1.0625rem;font-weight:700;color:var(--text-primary)}.page-subtitle{font-size:1.0625rem;color:var(--text-muted);margin-top:6px;line-height:1.4}.active-race-banner{position:relative;display:block;margin-bottom:20px;border-radius:22px;overflow:hidden;color:inherit;text-decoration:none;box-shadow:0 12px 32px #0000002e}.active-race-banner__image{width:100%;aspect-ratio:5 / 7;object-fit:cover;object-position:top center;display:block}.active-race-banner__overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:20px;background:linear-gradient(to top,#000000d1,#00000052 48%,#00000014)}.active-race-banner__badge{position:absolute;top:18px;left:18px;z-index:2;background:var(--accent);color:#fff;border-radius:999px;padding:8px 14px;font-size:.75rem;font-weight:800;letter-spacing:1.5px;text-transform:uppercase}.active-race-banner__title{font-size:1.625rem;font-weight:800;line-height:1.1;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.4)}.active-race-banner__tagline{margin-top:6px;font-size:1.15rem;color:#ffffffd6}.active-race-banner__meta{display:flex;flex-wrap:wrap;gap:14px;margin-top:16px;font-size:1rem;font-weight:600;color:#fffc;font-variant-numeric:tabular-nums}.race-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.race-card{position:relative;border-radius:18px;overflow:hidden;text-decoration:none;color:inherit;transition:box-shadow .15s ease}.race-card:hover{box-shadow:0 10px 30px #00000029}.race-card-image{width:100%;aspect-ratio:5 / 7;object-fit:cover;object-position:top center;display:block}.race-card-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:22px;background:linear-gradient(to top,rgba(0,0,0,.75) 0%,rgba(0,0,0,.16) 45%,transparent 100%)}.race-card-badge{position:absolute;top:16px;left:16px;z-index:2;background:var(--accent);color:#fff;border-radius:8px;padding:6px 14px;font-size:.75rem;font-weight:800;letter-spacing:1.5px;text-transform:uppercase}.race-card-name{font-size:1.625rem;font-weight:800;color:#fff;line-height:1.1;text-shadow:0 2px 12px rgba(0,0,0,.42)}.race-card-tagline{font-size:1.15rem;color:#ffffffd1;margin-top:6px;text-shadow:0 1px 6px rgba(0,0,0,.42)}.race-card-stats{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px}.race-card-stat{font-size:1.0625rem;font-weight:600;color:#ffffffc2;font-variant-numeric:tabular-nums}.race-history-list{display:flex;flex-direction:column;gap:14px}.past-race{background:linear-gradient(180deg,#ffffff05,#ffffff03);border:1px solid var(--border);border-radius:18px;padding:20px 24px;color:inherit;text-decoration:none;display:block}html[data-theme=light] .past-race{background:linear-gradient(180deg,#00000004,#00000002)}.past-race-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.past-race-name{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.past-race-badge{font-size:.75rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:4px 10px;border-radius:6px}.past-race-badge.finished,.history-badge.finished{background:#1ea87a26;color:#1ea87a}.past-race-badge.dnf,.history-badge.dnf{background:#c45c5c1f;color:#c45c5c}.past-race-detail{font-size:.9375rem;color:var(--text-muted);margin-top:6px;font-variant-numeric:tabular-nums}.race-header{padding:28px 0 8px}.race-title-row{display:flex;flex-direction:column;gap:16px}.race-title{font-size:2.125rem;font-weight:800;color:var(--text-primary);letter-spacing:-.5px;line-height:1.1}.race-subtitle{font-size:1.0625rem;color:var(--text-muted);margin-top:6px;font-weight:500}.race-stats{display:flex;gap:20px;margin-top:12px;flex-wrap:wrap}.race-stat{font-size:1.0625rem;font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums}.race-stat-label{font-size:.8125rem;font-weight:400;color:var(--text-muted);margin-left:3px}.join-wrap,.dnf-wrap{display:none}.race-status-chip{display:inline-flex;align-items:center;justify-content:center;min-width:76px;padding:7px 12px;border-radius:999px;border:1px solid var(--border);font-size:.75rem;font-weight:700;letter-spacing:1px;text-transform:uppercase}.race-status-chip.finished{color:#1ea87a;border-color:#1ea87a3d;background:#1ea87a14}.race-status-chip.dnf{color:#c45c5c;border-color:#c45c5c3d;background:#c45c5c14}.race-action-mobile{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 0 32px}.join-btn{background:var(--accent);color:#fff;border:none;border-radius:12px;padding:12px 28px;font-size:1.0625rem;font-weight:700;font-family:inherit;cursor:pointer;transition:background .15s ease,transform .15s ease}.join-btn:hover{background:var(--accent-hover)}.join-btn:active{transform:scale(.97)}.join-btn:disabled{background:var(--border);color:var(--text-muted);cursor:not-allowed}.dnf-btn{background:none;border:1px solid rgba(196,92,92,.35);color:#c45c5cc2;border-radius:12px;padding:12px 28px;font-size:1.0625rem;font-weight:700;font-family:inherit;cursor:pointer}.join-blocked,.dnf-hint{font-size:.875rem;color:var(--text-muted)}.join-blocked a{color:var(--accent);text-decoration:none;font-weight:600}.race-ring-section{padding:20px 0}.race-ring-wrap{display:flex;justify-content:center;position:relative}.race-info-btn{position:absolute;top:8px;right:max(0px,calc(50% - 170px));width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:var(--bg-raised);color:var(--text-secondary);font-size:1rem;font-weight:700;font-family:inherit;cursor:pointer;z-index:2}.race-info-btn:hover{color:var(--text-primary);border-color:var(--text-muted)}.next-checkpoint{text-align:center;padding:0 0 32px}.next-checkpoint-name{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.next-checkpoint-km{font-size:1.0625rem;margin-top:4px;font-variant-numeric:tabular-nums;color:var(--accent);font-weight:600}.next-checkpoint-count{font-size:1.25rem;margin-top:4px;color:var(--text-muted);font-weight:500}.race-metrics-row{display:flex;justify-content:center;gap:8px;padding:4px 0 28px;font-size:.9375rem;color:var(--text-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap}.race-metrics-row .metric-val{font-weight:700;color:var(--text-secondary)}.race-metrics-row .metric-sep{opacity:.3}.race-empty-note{background:linear-gradient(180deg,#ffffff05,#ffffff03);border:1px solid var(--border);border-radius:18px;padding:20px 24px;color:var(--text-muted)}html[data-theme=light] .race-empty-note{background:linear-gradient(180deg,#00000004,#00000002)}.race-empty-hint{text-align:center;color:var(--text-muted);font-style:italic;font-size:.9375rem;padding:24px 0}.race-info-overlay{display:none;position:fixed;inset:0;background:#000000ad;z-index:320;align-items:stretch;justify-content:center}.race-info-overlay.open{display:flex}.race-info-modal{position:relative;width:100%;min-height:100dvh;max-height:100dvh;overflow-y:auto;background:var(--bg-raised);padding:28px 24px 32px;padding-bottom:calc(32px + env(safe-area-inset-bottom,0px))}.race-info-close{position:absolute;top:16px;right:16px;border:none;background:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer}.race-info-kicker{font-size:.75rem;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--text-muted)}.race-info-title{font-size:1.75rem;font-weight:800;color:var(--text-primary);line-height:1.1;margin-top:8px}.race-info-intro{font-size:1rem;line-height:1.6;color:var(--text-secondary);margin-top:16px}.race-info-story-list{display:flex;flex-direction:column;gap:14px;margin-top:24px}.race-info-story{border:1px solid var(--border);border-radius:18px;background:var(--bg);padding:18px 18px 20px}.race-info-story-title{font-size:1.0625rem;font-weight:700;color:var(--text-primary);margin-bottom:8px}.race-info-story-text{font-size:.9375rem;line-height:1.65;color:var(--text-secondary)}.race-info-note{margin-top:20px;font-size:.875rem;line-height:1.6;color:var(--text-muted)}.race-detail-page .runs-section,.race-detail-page .history-section,.race-detail-page .story-section{padding:20px 0}.race-detail-page .runs-section-title,.race-detail-page .history-section-title,.race-detail-page .story-section-title{font-size:1rem;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);margin-bottom:20px}.runs-section-count{font-weight:400;color:var(--text-muted)}.race-detail-page .run-list,.history-list{display:flex;flex-direction:column;gap:14px}.race-detail-page .run-card,.history-card{background:linear-gradient(180deg,#ffffff05,#ffffff03);border:1px solid var(--border);border-radius:18px;padding:24px 28px;display:flex;gap:20px;align-items:center;color:inherit;text-decoration:none}html[data-theme=light] .race-detail-page .run-card,html[data-theme=light] .history-card{background:linear-gradient(180deg,#00000004,#00000002)}.history-card-link:hover,.past-race:hover{border-color:#ffffff24}.run-card-body--wide{width:100%}.history-ring-wrap{width:84px;height:84px;flex-shrink:0}.history-body{flex:1;min-width:0}.history-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.history-dates{font-size:.9375rem;color:var(--text-muted);font-weight:500}.history-badge{font-size:.75rem;font-weight:700;letter-spacing:.5px;padding:4px 10px;border-radius:8px;text-transform:uppercase}.history-detail{font-size:1rem;color:var(--text-secondary);margin-top:8px}.story-block{margin-bottom:36px}.story-block-title{font-size:1.375rem;font-weight:700;color:var(--text-primary);margin-bottom:10px;line-height:1.2}.story-block-text{font-size:1.0625rem;line-height:1.7;color:var(--text-secondary)}.story-rule{width:40px;height:2px;background:var(--accent);border:none;margin:28px 0;opacity:.4}.story-poster{position:relative;border-radius:18px;overflow:hidden;width:min(100%,28rem);margin:62px auto 0}.story-poster-image{width:100%;aspect-ratio:2 / 3;object-fit:cover;display:block}.story-poster-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:22px;background:linear-gradient(to top,rgba(0,0,0,.74) 0%,rgba(0,0,0,.16) 46%,transparent 100%)}.story-poster-name{font-size:2rem;font-weight:800;color:#fff;line-height:1.1}.story-poster-tagline{font-size:1.0625rem;color:#ffffffd1;margin-top:6px}.story-poster-stats{display:flex;gap:16px;margin-top:12px}.story-poster-stat{font-size:1rem;font-weight:600;color:#ffffffc7}.weight-logged{display:flex;align-items:center;justify-content:space-between}.weight-logged-with-header{margin-top:2px}.weight-logged-text{font-size:1.375rem;color:var(--text-secondary)}.weight-logged-check{font-size:1.25rem;color:var(--accent);font-weight:600}.fab{position:fixed;bottom:28px;right:24px;width:60px;height:60px;border-radius:50%;border:none;background:var(--accent);color:#fff;font-size:1.875rem;font-weight:300;cursor:pointer;z-index:99;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #1ea87a4d;transition:transform .2s;line-height:1}.fab.open{transform:rotate(45deg)}.fab-menu{position:fixed;bottom:126px;right:24px;display:none;flex-direction:column;gap:10px;z-index:99}.fab-menu.open{display:flex}.fab-option{display:flex;align-items:center;gap:12px;appearance:none;background:var(--bg-raised);border:1px solid var(--border);border-radius:14px;padding:14px 20px;cursor:pointer;white-space:nowrap;box-shadow:0 4px 16px #0000004d;font:inherit}.fab-option:active{transform:translateY(1px)}.fab-option-icon{font-size:1.625rem}.fab-option-label{font-size:1.1875rem;font-weight:600;color:var(--text-primary)}.fullmodal-overlay{display:none;position:fixed;inset:0;background:#0a0a0ab3;z-index:320;align-items:flex-end;justify-content:center}html[data-theme=light] .fullmodal-overlay{background:#0000004d}.fullmodal-overlay.open{display:flex}.fullmodal{width:100%;min-height:100dvh;background:var(--bg);color:var(--text-primary);display:flex;flex-direction:column}.fullmodal-header{height:80px;display:grid;grid-template-columns:88px 1fr 88px;align-items:center;padding:0 20px;border-bottom:1px solid var(--border)}.fullmodal-back{appearance:none;border:none;background:none;color:var(--text-secondary);font:inherit;font-size:1.0625rem;text-align:left;padding:0;cursor:pointer}.fullmodal-title{text-align:center;font-size:1.5rem;font-weight:700}.fullmodal-spacer{width:100%}.fullmodal-body{flex:1;padding:24px 20px;overflow-y:auto}.fullmodal-footer{padding:16px 20px 24px;border-top:1px solid var(--border)}.fullmodal-save{width:100%;border:none;border-radius:14px;background:var(--accent);color:#fff;font-size:1.0625rem;font-weight:700;padding:16px;cursor:pointer}.fullmodal-save:disabled{opacity:.6;cursor:default}.weight-stepper{max-width:420px;margin:0 auto}.weight-stepper-label{text-align:center;font-size:1rem;color:var(--text-muted);margin-bottom:22px}.weight-stepper-row{display:grid;grid-template-columns:80px 1fr 80px;align-items:center;gap:16px}.weight-picker-trigger{appearance:none;display:block;width:100%;background:none;border:none;color:inherit;cursor:pointer;padding:0}.weight-picker-trigger-inner{display:flex;flex-direction:column;align-items:center}.weight-step-btn{width:80px;height:80px;border-radius:18px;border:1px solid var(--border);background:var(--bg-raised);color:var(--text-primary);font-size:2.625rem;line-height:1;cursor:pointer}.weight-display{text-align:center;font-size:4rem;font-weight:800;letter-spacing:-.03em}.weight-display-unit{font-size:1.125rem;color:var(--text-muted)}.weight-delta{text-align:center;margin-top:18px;font-size:1.125rem;font-weight:600;color:var(--text-secondary)}.weight-delta.good{color:var(--accent)}.weight-delta.bad{color:#dc3030}.recent-dishes{display:flex;flex-direction:column;gap:12px}.recent-dish{width:100%;appearance:none;background:var(--bg-raised);border:1px solid var(--border);border-radius:18px;padding:18px 18px 16px;text-align:left;color:inherit;cursor:pointer}.recent-dish:disabled{opacity:.6;cursor:default}.recent-dish-top{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.recent-dish-name{font-size:1.25rem;font-weight:600}.recent-dish-kcal{font-size:1.75rem;font-weight:700;white-space:nowrap}.recent-dish-kcal-unit{font-size:.9375rem;font-weight:400;color:var(--text-muted)}.recent-dish-ingredients{margin-top:10px;font-size:.9375rem;color:var(--text-secondary)}.recent-dish-date{margin-top:10px;font-size:.875rem;color:var(--text-muted)}.create-btn{display:block;width:100%;margin-top:20px;background:none;border:2px dashed var(--border);border-radius:16px;padding:22px;font:inherit;font-size:1.125rem;font-weight:600;color:var(--text-muted);cursor:pointer}.create-btn:hover{border-color:var(--accent);color:var(--text-secondary)}.builder-total{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:4px 0 20px;border-bottom:1px solid var(--border);margin-bottom:20px}.builder-total-label{font-size:1.125rem;color:var(--text-muted);font-weight:500}.builder-total-val{font-size:2.875rem;font-weight:800;color:var(--text-primary);line-height:1;letter-spacing:-.04em}.builder-total-unit{font-size:1.125rem;color:var(--text-muted)}.builder-ingredients{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.builder-ing-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:18px;padding:18px}.builder-ing-top{display:flex;justify-content:space-between;gap:16px;margin-bottom:10px}.builder-ing-name{font-size:1.25rem;font-weight:600;color:var(--text-primary)}.builder-ing-kcal-100{margin-top:4px;font-size:.875rem;color:var(--text-muted)}.builder-ing-remove{appearance:none;border:none;background:none;color:var(--text-muted);font-size:1.5rem;line-height:1;cursor:pointer;padding:0 2px}.builder-ing-remove:hover{color:#dc3030}.builder-ing-controls{display:flex;justify-content:space-between;align-items:center;gap:16px}.builder-ing-weight-row{display:flex;align-items:center;gap:10px}.builder-ing-step{width:42px;height:42px;border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--text-primary);font:inherit;font-size:1.375rem;font-weight:600;cursor:pointer}.builder-ing-weight-input{width:76px;border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--text-primary);font:inherit;font-size:1.375rem;font-weight:700;line-height:1;text-align:center;padding:10px 8px}.builder-ing-weight-input:focus,.builder-name-input:focus,.search-input:focus{outline:none;border-color:var(--accent)}.builder-ing-unit{font-size:1.0625rem;color:var(--text-muted)}.builder-ing-kcal{font-size:1.75rem;font-weight:700;color:var(--text-primary);white-space:nowrap}.builder-ing-kcal-suffix{font-size:.9375rem;font-weight:400;color:var(--text-muted)}.builder-ing-slider{width:100%;margin-top:14px;appearance:none;height:6px;border-radius:999px;background:var(--border)}.builder-ing-slider::-webkit-slider-thumb{appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);border:3px solid var(--bg);box-shadow:0 2px 10px #00000024}.builder-ing-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);border:3px solid var(--bg)}.builder-add-btn{display:flex;align-items:center;justify-content:center;width:100%;border:2px dashed var(--border);border-radius:16px;background:none;color:var(--text-muted);font:inherit;font-size:1.125rem;font-weight:600;padding:20px;cursor:pointer}.builder-add-btn:hover{border-color:var(--accent);color:var(--text-secondary)}.builder-name-input{width:100%;margin-top:20px;border:1px solid var(--border);border-radius:16px;background:var(--bg-input);color:var(--text-primary);font:inherit;font-size:1.125rem;padding:16px 18px}.search-input{width:100%;margin-bottom:18px;border:1px solid var(--border);border-radius:16px;background:var(--bg-input);color:var(--text-primary);font:inherit;font-size:1.1875rem;padding:16px 18px}.search-results{display:flex;flex-direction:column;gap:6px}.search-result{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;border:none;background:none;color:inherit;border-radius:16px;padding:16px 14px;text-align:left;cursor:pointer}.search-result:hover{background:var(--bg-raised)}.search-result-name{font-size:1.125rem;font-weight:600;color:var(--text-primary)}.search-result-brand{margin-top:4px;font-size:.875rem;color:var(--text-muted)}.search-result-kcal{font-size:1.125rem;font-weight:700;white-space:nowrap;color:var(--text-secondary)}.search-result-kcal-unit{font-size:.875rem;font-weight:400;color:var(--text-muted)}.search-empty{padding:18px 4px;font-size:1rem;color:var(--text-muted)}.action-feedback{margin-top:16px;font-size:.9375rem;font-weight:600}.action-feedback-error{color:#dc3030}.action-feedback-success{color:var(--accent)}.athlete-page .container,.profile-page .container{max-width:600px;margin:0 auto;padding:28px 20px 32px}.athlete-flow{display:grid;gap:22px}.athlete-hero{background:var(--bg-raised);border:1px solid var(--border);border-radius:22px;padding:26px 24px;display:grid;gap:20px;position:relative}.athlete-kicker{text-transform:uppercase;letter-spacing:.14em;font-size:var(--ui-kicker-size);font-weight:700;color:var(--text-muted)}.athlete-hero-mark{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center}.athlete-avatar{width:68px;height:68px;border-radius:50%;background:#2d7a5f;color:#fff;display:grid;place-items:center;box-shadow:inset 0 1px #ffffff1a;font-size:1.25rem;font-weight:700;letter-spacing:.5px}.athlete-hero-copy h1{margin-top:8px;font-size:clamp(2.125rem,5vw,3.375rem);line-height:.94;letter-spacing:-.05em;color:var(--text-primary)}.athlete-hero-copy p{margin-top:10px;color:var(--text-secondary);font-size:var(--ui-body-size);line-height:1.55}.athlete-dot{margin:0 8px;color:var(--text-muted)}.athlete-hero-side{display:grid;gap:14px}.athlete-summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.athlete-summary-item{background:var(--bg-input);border:1px solid var(--border);border-radius:16px;padding:14px 14px 13px;display:grid;gap:4px}.athlete-summary-value{font-size:var(--ui-athlete-summary-value-size);line-height:1;letter-spacing:-.04em;font-weight:700;color:var(--text-primary)}.athlete-summary-label{text-transform:uppercase;letter-spacing:.12em;font-size:var(--ui-athlete-summary-label-size);font-weight:700;color:var(--text-muted)}.athlete-chip-row{display:flex;flex-wrap:wrap;gap:10px}.athlete-chip{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);font-size:var(--ui-athlete-chip-size);font-weight:700}.athlete-chip--accent{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 34%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.athlete-settings-link{position:absolute;top:24px;right:24px;width:42px;height:42px;border-radius:12px;border:1px solid var(--border);background:var(--bg-input);display:grid;place-items:center;color:var(--text-secondary)}.athlete-settings-link:hover{color:var(--text-primary)}.athlete-settings-link svg{width:18px;height:18px}.athlete-spotlight-card,.athlete-section-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:22px}.athlete-spotlight-card{padding:24px;display:grid;gap:22px;color:inherit}.athlete-spotlight-copy{display:grid;gap:16px}.athlete-spotlight-kicker{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;text-transform:uppercase;letter-spacing:.12em;font-size:.625rem;font-weight:700;color:var(--text-muted)}.athlete-spotlight-copy h2{font-size:clamp(2.125rem,5vw,3rem);line-height:.95;letter-spacing:-.05em;color:var(--text-primary)}.athlete-spotlight-copy p{max-width:44ch;color:var(--text-secondary);line-height:1.6}.athlete-spotlight-progress{display:grid;gap:10px}.athlete-spotlight-progress-head,.athlete-spotlight-progress-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.athlete-spotlight-progress-head strong{font-size:1.75rem;line-height:1;letter-spacing:-.04em;color:var(--text-primary)}.athlete-spotlight-progress-head span,.athlete-spotlight-progress-foot span{color:var(--text-secondary);font-size:.875rem;font-variant-numeric:tabular-nums}.athlete-spotlight-track{height:10px;border-radius:999px;background:var(--bg-input);overflow:hidden}.athlete-spotlight-track-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#1ea87a,#31c48d)}.athlete-spotlight-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.athlete-spotlight-stats div{display:grid;gap:6px;padding-top:12px;border-top:1px solid var(--border)}.athlete-spotlight-stat-label{text-transform:uppercase;letter-spacing:.12em;font-size:.625rem;font-weight:700;color:var(--text-muted)}.athlete-spotlight-stats strong{color:var(--text-primary);font-size:1rem;line-height:1.35}.athlete-spotlight-art{position:relative;min-height:220px;border-radius:18px;overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-input) 88%,#10281f 12%) 0%,var(--bg-input) 100%)}.athlete-spotlight-poster{width:100%;height:100%;object-fit:cover;opacity:.95}.athlete-columns{display:grid;gap:18px}.athlete-section-card{padding:22px 20px}.athlete-empty-copy{color:var(--text-secondary);line-height:1.65}.athlete-run-list,.athlete-race-history{display:grid;gap:12px}.athlete-run-row,.athlete-race-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 0;border-top:1px solid var(--border);color:inherit}.athlete-run-row:first-child,.athlete-race-row:first-child{padding-top:6px;border-top:none}.athlete-run-main,.athlete-race-main{min-width:0;display:grid;gap:8px}.athlete-run-name,.athlete-race-name{font-size:clamp(1.12rem,.24vw + 1.08rem,1.28rem);line-height:1.15;letter-spacing:-.03em;font-weight:700;color:var(--text-primary)}.athlete-run-meta,.athlete-race-meta{display:flex;flex-wrap:wrap;gap:8px 14px;color:var(--text-secondary);font-size:var(--ui-athlete-run-meta-size);font-variant-numeric:tabular-nums}.athlete-run-distance{font-size:var(--ui-athlete-run-value-size);line-height:1;letter-spacing:-.04em;font-weight:700;color:var(--text-primary)}.athlete-race-row{grid-template-columns:74px minmax(0,1fr)}.athlete-race-thumb{width:74px;height:90px;border-radius:14px;object-fit:cover;background:var(--bg-input)}.athlete-race-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.athlete-status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.athlete-status-pill--active{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 34%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.athlete-status-pill--finished{color:#7ccaa8}.athlete-status-pill--dnf{color:#d18989}.ath-page{max-width:clamp(800px,60vw,1000px);margin:0 auto;padding:clamp(12px,1vw,24px) clamp(16px,3vw,48px) clamp(60px,5vw,100px);--ath-text-2: #908e88;--ath-text-3: #5a5955;--ath-text-4: #3a3936}html[data-theme=light] .ath-page{--ath-text-2: #5c5b56;--ath-text-3: #9c9a94;--ath-text-4: #c4c1ba}.ath-divider{width:100%;height:1px;background:#2e2e2a}html[data-theme=light] .ath-divider{background:#ddd9d0}.ath-profile-section{padding:clamp(32px,3vw,56px) 0}.ath-reveal>*{opacity:1;transform:none}.ath-settings-cog{position:absolute;left:100%;margin-left:14px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--ath-text-4);transition:color .2s}.ath-settings-cog:hover{color:var(--ath-text-2)}.ath-settings-cog svg{width:100%;height:100%}.ath-hero-identity{text-align:center;padding-bottom:clamp(32px,3vw,56px)}.ath-empty-msg{font-size:clamp(.875rem,.9vw + .125rem,1.125rem);color:var(--text-secondary);font-style:italic}.ath-hero-name{font-size:clamp(1.75rem,2.4vw + .375rem,2.875rem);font-weight:600;color:var(--text-primary);letter-spacing:-.02em;line-height:1.15;margin-top:clamp(4px,.3vw,8px);text-align:center;position:relative;display:inline-block}.ath-hero-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(6px,.5vw,10px);margin-top:clamp(6px,.4vw,10px);font-size:var(--ui-athlete-meta-size);color:var(--ath-text-3)}.ath-hero-meta-dot{color:var(--ath-text-4)}.ath-hero-garmin{display:inline-flex;align-items:center;gap:5px}.ath-hero-garmin-dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.ath-stats-row-label{font-size:clamp(.6875rem,.7vw + .125rem,.8125rem);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ath-text-4);text-align:center;margin-bottom:clamp(4px,.3vw,8px)}.ath-stats-row{display:flex;justify-content:space-between;gap:0;padding:clamp(16px,1.4vw,24px) 0;margin-top:clamp(8px,.6vw,14px)}.ath-stat{text-align:center;flex:1;position:relative}.ath-stat+.ath-stat{border-left:none}.ath-stat+.ath-stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:#2e2e2a}html[data-theme=light] .ath-stat+.ath-stat:before{background:#ddd9d0}.ath-stat-val{font-size:clamp(1.5rem,1.8vw + .25rem,2.25rem);font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.5px;line-height:1}.ath-stat-val--muted{color:var(--text-muted)}.ath-stat-label{font-size:var(--ui-athlete-small-size);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ath-text-3);margin-top:clamp(4px,.3vw,6px)}.ath-stat-trend{font-size:var(--ui-athlete-small-size);font-weight:600;font-variant-numeric:tabular-nums;margin-top:clamp(2px,.2vw,4px);transition:opacity .4s ease}.ath-stats-row--counting .ath-stat-trend{opacity:0}.ath-stat-trend--good{color:var(--accent)}.ath-stat-trend--neutral{color:var(--ath-text-3)}.ath-section-label{font-size:var(--ui-athlete-section-label-size);font-weight:700;color:var(--accent);letter-spacing:1.5px;text-transform:uppercase}.ath-section-title{font-size:var(--ui-athlete-section-title-size);font-weight:600;color:var(--text-primary);margin-top:clamp(6px,.4vw,10px);line-height:1.3}.ath-section-title--muted{color:var(--text-secondary);font-weight:400}.ath-race-card{border-radius:clamp(12px,1vw,20px);overflow:hidden;position:relative;aspect-ratio:16 / 9;margin-top:clamp(16px,1.2vw,24px);display:block}.ath-race-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.ath-race-card-over{position:absolute;inset:0;z-index:3;background:linear-gradient(to top,#000c,#00000040 45%,#0000000d);display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(20px,2vw,36px)}.ath-race-card-name{font-size:clamp(1.25rem,1.6vw + .25rem,2rem);font-weight:600;color:#fff;line-height:1.2}.ath-race-card-tag{font-size:clamp(.75rem,.75vw + .125rem,1rem);color:#ffffff8c;font-style:italic;margin-top:3px}.ath-race-card-progress{width:100%;height:3px;background:#ffffff26;border-radius:99px;margin-top:clamp(12px,1vw,20px);overflow:hidden}.ath-race-card-progress-fill{height:100%;background:#2db87a;border-radius:99px}.ath-race-card-stats{display:flex;gap:clamp(16px,1.4vw,28px);margin-top:clamp(8px,.6vw,12px);flex-wrap:wrap}.ath-race-card-stats span{font-size:clamp(.75rem,.75vw + .125rem,1rem);font-weight:500;color:#ffffff80;font-variant-numeric:tabular-nums}.ath-race-card-stats strong{color:#ffffffd9;font-weight:600}.ath-hm-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.ath-hm-header-stats{font-size:var(--ui-athlete-meta-size);color:var(--ath-text-3);font-variant-numeric:tabular-nums;white-space:nowrap}.ath-hm-header-stats strong{font-weight:700;color:var(--ath-text-2)}.ath-heatmap-wrap{margin-top:clamp(12px,1vw,20px)}.ath-heatmap{display:grid;grid-template-columns:auto repeat(7,1fr);gap:clamp(5px,.4vw,8px)}.ath-hm-day-label{font-size:clamp(.6875rem,.7vw + .125rem,.8125rem);font-weight:500;color:var(--ath-text-4);text-align:center;line-height:1;padding-bottom:4px}.ath-hm-week-label{font-size:clamp(.6875rem,.7vw + .125rem,.8125rem);font-weight:500;color:var(--ath-text-4);display:flex;align-items:center;justify-content:flex-end;padding-right:8px}.ath-hm-cell{height:46px;border-radius:4px;background:var(--ath-hm-0)}.ath-hm-cell--link{display:block;transition:transform .2s ease,box-shadow .2s ease}.ath-hm-cell--link:hover,.ath-hm-cell--link:focus-visible{transform:translateY(-1px);box-shadow:0 0 0 1px var(--border-focus)}.ath-hm-cell[data-lvl="0"]{background:var(--ath-hm-0)}.ath-hm-cell[data-lvl="1"]{background:var(--ath-hm-1)}.ath-hm-cell[data-lvl="2"]{background:var(--ath-hm-2)}.ath-hm-cell[data-lvl="3"]{background:var(--ath-hm-3)}.ath-hm-cell[data-lvl="4"]{background:var(--ath-hm-4)}.ath-heatmap-footer{display:flex;align-items:center;justify-content:flex-end;margin-top:clamp(16px,1.4vw,24px)}.ath-heatmap-legend{display:flex;align-items:center;gap:4px}.ath-heatmap-legend-label{font-size:var(--ui-athlete-small-size);color:var(--ath-text-3);margin-right:3px}.ath-heatmap-legend-cell{width:16px;height:16px;border-radius:3px}.ath-runs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,1.4vw,28px);margin-top:clamp(24px,2vw,40px)}.ath-run-card{display:flex;flex-direction:column;align-items:center;width:100%;min-width:0;gap:clamp(10px,.8vw,16px);color:inherit}.ath-run-card .run-ring-block{--archive-ring-size: min(100%, 11.25rem)}.ath-run-card .run-ring-block__wrap{width:100%}.ath-run-card .run-ring-block__visual{margin:0 auto}.ath-run-card .run-ring-block__distance{font-size:clamp(2.2rem,1.8vw + .7rem,2.8rem)}.ath-run-card .run-ring-block__unit{font-size:var(--ui-athlete-run-unit-size);letter-spacing:.12em}.ath-run-ring{position:relative;width:min(100%,180px);aspect-ratio:1;margin:0 auto}.ath-run-ring canvas{width:100%;height:100%;display:block}.ath-run-ring-inner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.ath-run-ring-val{font-size:clamp(1.35rem,1.2vw + .5rem,1.85rem);font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.5px;line-height:1}.ath-run-ring-unit{font-size:var(--ui-athlete-run-unit-size);font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--ath-text-3);margin-top:2px}.ath-run-meta{text-align:center}.ath-run-meta-name{font-size:var(--ui-athlete-run-name-size);font-weight:600;color:var(--text)}.ath-run-meta-date{font-size:var(--ui-athlete-run-meta-size);color:var(--ath-text-3);margin-top:6px}.ath-run-meta-stats{display:flex;gap:clamp(6px,.4vw,10px);justify-content:center;margin-top:6px;flex-wrap:wrap}.ath-run-meta-stats span{font-size:var(--ui-athlete-run-meta-size);font-weight:500;color:var(--ath-text-3);font-variant-numeric:tabular-nums}.ath-empty-section{text-align:center}.ath-empty-section p{font-size:clamp(.875rem,.9vw + .125rem,1.125rem);color:var(--text-secondary);margin-top:clamp(8px,.6vw,14px);line-height:1.6}.ath-empty-cta{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#fff;font-size:clamp(.8125rem,.8vw + .125rem,1.0625rem);font-weight:600;padding:clamp(9px,.6vw,14px) clamp(18px,1.4vw,28px);border-radius:8px;margin-top:clamp(16px,1.2vw,24px);transition:opacity .2s}.ath-empty-cta:hover{opacity:.88}.app-page-footer{text-align:center;padding:clamp(48px,4vw,80px) 0 clamp(24px,2vw,40px)}.app-page-footer-tagline{font-size:clamp(.8125rem,.8vw + .125rem,1rem);color:var(--app-footer-text);font-style:italic}.app-page-footer-brand{display:flex;align-items:center;justify-content:center;gap:clamp(6px,.4vw,10px);margin-top:clamp(10px,.8vw,16px)}.app-page-footer-brand img{height:clamp(16px,1vw + 4px,24px);width:auto;opacity:var(--app-footer-brand-opacity)}html[data-theme=dark] .app-page-footer-brand img{filter:brightness(0) invert(1)}.runs-page .container{max-width:600px;margin:0 auto;padding:0 20px 32px}.filter-bar{display:flex;align-items:center;gap:10px;margin-bottom:20px;padding:24px 20px 0;margin-left:-20px;margin-right:-20px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.filter-bar::-webkit-scrollbar{display:none}.filter-pill{font-size:1.0625rem;font-weight:500;color:var(--text-muted);background:none;border:1px solid transparent;padding:10px 20px;border-radius:10px;cursor:pointer;white-space:nowrap;flex-shrink:0}.filter-pill:hover{color:var(--text-secondary)}.filter-pill.active{color:var(--text-primary);background:var(--bg-raised);border-color:var(--border)}.filter-sep{width:1px;height:28px;background:var(--border);flex-shrink:0}.filter-count{font-size:1rem;color:var(--text-muted);margin-left:auto;flex-shrink:0;font-variant-numeric:tabular-nums}.period-summary-header{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:14px}.period-summary-label{font-size:var(--ui-period-kicker-size);font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted)}.period-tab{appearance:none;border:1px solid transparent;border-radius:8px;background:none;padding:7px 14px;font:inherit;font-size:var(--ui-period-tab-size);font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);cursor:pointer;transition:color .15s,background .15s,border-color .15s}.period-tab:hover{color:var(--text-secondary)}.period-tab.active{color:var(--text-primary);background:var(--bg-raised);border-color:var(--border)}.period-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}.period-stat{background:linear-gradient(180deg,#ffffff05,#ffffff03);border:1px solid var(--border);border-radius:14px;padding:20px;text-align:center}html[data-theme=light] .period-stat{background:linear-gradient(180deg,#00000004,#00000002)}.period-stat-val{font-size:var(--ui-period-value-size);font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;line-height:1.02}.period-stat-label{font-size:var(--ui-period-label-size);color:var(--text-muted);margin-top:8px;display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:8px;line-height:1.3}.period-stat-trend{font-size:var(--ui-period-trend-size);font-weight:500;color:var(--accent)}.health-page .container{max-width:600px;margin:0 auto;padding:0 20px 48px}.health-range-label{margin-bottom:18px;text-align:center;font-size:.875rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.health-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:24px}.health-inline-unit{font-size:.875rem;font-weight:500;color:var(--text-muted)}.health-trend-grid{display:grid;grid-template-columns:1fr;gap:16px}.health-trend-card{--health-accent: var(--accent);background:linear-gradient(180deg,#ffffff05,#ffffff03);border:1px solid var(--border);border-radius:18px;padding:22px 22px 20px;position:relative;overflow:hidden}html[data-theme=light] .health-trend-card{background:linear-gradient(180deg,#00000004,#00000002)}.health-trend-card__header{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.health-trend-card__eyebrow{font-size:.8125rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted)}.health-trend-card__delta{font-size:.8125rem;color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:right}.health-trend-card__delta--better{color:#1ea87a}.health-trend-card__delta--worse{color:#c86452}.health-trend-card__delta--recovering{color:#c9913e}.health-trend-card__delta--neutral{color:var(--text-muted)}.health-trend-card__hero{display:flex;align-items:baseline;gap:8px;margin-top:12px}.health-trend-card__value{font-size:2.5rem;font-weight:700;line-height:1;color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.05em}.health-trend-card__unit{font-size:1rem;color:var(--text-muted)}.health-trend-card__detail{margin-top:8px;font-size:.9375rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.health-trend-card__status{text-align:right}.health-trend-card__hint{font-size:.875rem;color:var(--text-muted);margin-top:2px}.health-trend-chart{margin-top:20px}.health-trend-chart svg{width:100%;height:150px;display:block}.health-trend-chart__grid{fill:none;stroke:var(--border);stroke-width:.8}.health-trend-chart__area{fill:color-mix(in srgb,var(--health-accent) 18%,transparent);stroke:none}.health-trend-chart__line{fill:none;stroke:var(--health-accent);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.health-trend-chart__container{position:relative}.health-trend-chart__baseline{stroke:var(--text-muted);stroke-width:2;stroke-dasharray:4 3;opacity:.45;vector-effect:non-scaling-stroke}.health-trend-chart__baseline-tag{position:absolute;right:0;transform:translateY(-50%);font-size:.6875rem;font-weight:600;color:var(--text-muted);background:var(--bg-raised, rgba(255, 255, 255, .85));padding:2px 8px 2px 6px;border-radius:4px;line-height:1;pointer-events:none;white-space:nowrap;letter-spacing:.02em}.health-trend-chart__labels{display:flex;justify-content:space-between;margin-top:8px;font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.health-trend-chart--empty{margin-top:18px;min-height:120px;border:1px dashed var(--border);border-radius:14px;display:grid;place-items:center;color:var(--text-muted);font-size:.875rem}.run-list{display:flex;flex-direction:column;gap:16px}.runs-sections{display:flex;flex-direction:column;gap:28px}.runs-section{display:flex;flex-direction:column;gap:14px}.runs-section-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:0 10px}.runs-section-title{font-size:1rem;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted)}.runs-section-count{font-size:.875rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.inline-link-button{border:none;background:none;padding:0;color:var(--accent);font:inherit;font-weight:600;cursor:pointer}.inline-link-button:hover,.inline-link-button:focus-visible{text-decoration:underline}.goals-page .container{max-width:600px;margin:0 auto;padding:28px 20px 120px}.goals-page .container.container-wide{max-width:clamp(960px,78vw,1320px)}.goals-grid{display:flex;flex-direction:column;gap:20px}.goals-empty-wrap{width:100%;display:flex;justify-content:center}.goal-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:18px;padding:28px;position:relative}.goal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.goal-header-left{display:flex;align-items:center;gap:12px}.goal-title{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.goal-remove{width:32px;height:32px;border-radius:8px;background:none;border:1px solid transparent;color:var(--text-muted);font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.goal-remove:hover{color:var(--negative);border-color:#dc303033;background:#dc30300f}.goal-remove:disabled,.goal-target-btn:disabled,.goal-option:disabled,.archived-btn:disabled{opacity:.5;cursor:default}.goal-status{font-size:.9375rem;font-weight:600;padding:6px 14px;border-radius:8px}.goal-status.on-track{color:var(--accent);background:var(--accent-bg)}.goal-status.behind{color:var(--negative);background:#dc303014}.goal-progress{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}.goal-current{font-size:3rem;font-weight:800;color:var(--text-primary);font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-1.5px}.goal-target{font-size:1.25rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.goal-unit{font-size:1.0625rem;color:var(--text-secondary);font-weight:400}.goal-bar{height:10px;border-radius:5px;background:var(--border);margin:16px 0;overflow:hidden}.goal-bar-fill{height:100%;border-radius:5px;background:var(--accent)}.goal-detail{font-size:1.0625rem;color:var(--text-muted);font-variant-numeric:tabular-nums;line-height:1.5}.goal-setting{display:flex;align-items:center;justify-content:space-between;padding:20px 0 0;border-top:1px solid var(--border);margin-top:20px}.goal-setting-label{font-size:1.0625rem;color:var(--text-secondary)}.goal-target-btn{display:flex;align-items:center;gap:10px;background:var(--bg-input);border:1px solid var(--border);border-radius:12px;padding:12px 18px;cursor:pointer;transition:border-color .15s}.goal-target-btn:hover{border-color:var(--accent)}.goal-target-val{font-size:1.375rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.goal-target-unit{font-size:1.0625rem;color:var(--text-muted)}.archived-section{margin-top:40px}.archived-label{font-size:.9375rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);margin-bottom:14px;padding:0 10px}.archived-grid{display:flex;flex-direction:column;gap:12px}.archived-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:14px;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;opacity:.6}.archived-info{display:flex;flex-direction:column;gap:2px}.archived-name{font-size:1.0625rem;font-weight:600;color:var(--text-primary)}.archived-meta{font-size:.875rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.archived-actions{display:flex;gap:8px}.archived-btn{width:36px;height:36px;border-radius:8px;border:1px solid var(--border);background:none;font-size:1.125rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.archived-btn.restore{color:var(--accent)}.archived-btn.restore:hover{border-color:var(--accent);background:var(--accent-bg)}.archived-btn.delete{color:var(--text-muted)}.archived-btn.delete:hover{color:var(--negative);border-color:#dc303033;background:#dc30300f}.empty-panel{width:100%;min-height:clamp(300px,52vh,560px);margin:0 auto;padding:clamp(32px,6vw,72px) 0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.empty-panel h1{margin:0;font-size:clamp(1.75rem,2.4vw + .375rem,2.875rem);line-height:1.15;font-weight:600;color:var(--text-primary);letter-spacing:-.02em;max-width:14ch}.empty-panel p{margin:16px 0 0;font-size:clamp(1.0625rem,1vw + .5rem,1.375rem);line-height:1.72;color:var(--text-secondary);max-width:32ch}.fab{position:fixed;bottom:32px;right:32px;width:60px;height:60px;border-radius:50%;background:var(--accent);border:none;color:#fff;font-size:2rem;font-weight:300;cursor:pointer;z-index:50;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #1ea87a4d;transition:transform .15s,box-shadow .15s}.fab:active{transform:scale(.92)}.modal-overlay{display:none;position:fixed;inset:0;background:#0a0a0ab3;z-index:300;align-items:center;justify-content:center}html[data-theme=light] .modal-overlay{background:#0000004d}.modal-overlay.open{display:flex}.modal{background:var(--bg-raised);border:1px solid var(--border);border-radius:20px;width:90%;max-width:420px;padding:32px;max-height:80vh;overflow-y:auto}.modal-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:24px}.goal-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:18px 20px;border-radius:14px;border:1px solid var(--border);margin-bottom:10px;cursor:pointer;transition:all .15s;background:transparent;text-align:left}.goal-option:hover{border-color:var(--accent);background:var(--accent-bg)}.goal-option.disabled{opacity:.35;pointer-events:none}.goal-option-info{display:flex;flex-direction:column;gap:2px}.goal-option-name{font-size:1.125rem;font-weight:600;color:var(--text-primary)}.goal-option-desc{font-size:.9375rem;color:var(--text-muted)}.goal-option-icon{font-size:1.375rem;color:var(--text-muted)}.goal-option-added{font-size:.875rem;color:var(--text-muted);font-weight:500}.modal-cancel{width:100%;padding:16px;margin-top:12px;background:none;border:1px solid var(--border);border-radius:12px;color:var(--text-secondary);font-size:1.0625rem;font-weight:600;cursor:pointer;transition:all .15s}.modal-cancel:hover{border-color:var(--text-muted);color:var(--text-primary)}.picker-separator{font-size:1.75rem;font-weight:700;color:var(--text-primary);z-index:2;padding:0 2px}.picker-item{width:100%;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:600;color:var(--text-muted);transition:color .1s,transform .1s;font-variant-numeric:tabular-nums;cursor:pointer;-webkit-user-select:none;user-select:none;background:transparent;border:none}.activity-card{background:linear-gradient(180deg,#ffffff05,#ffffff03);border:1px solid var(--border);border-radius:18px;padding:24px 20px 20px;display:flex;flex-direction:column;align-items:center;transition:background .15s,border-color .15s}html[data-theme=light] .activity-card{background:linear-gradient(180deg,#00000004,#00000002)}.card-header{width:100%;display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.card-title{font-size:1rem;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted)}.card-time{font-size:1rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.card-ring{position:relative;width:300px;height:300px}.card-ring canvas{width:300px;height:300px}.card-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.card-dist{font-size:3rem;font-weight:700;color:var(--text-primary);letter-spacing:-1.5px;line-height:1}.card-unit{font-size:.875rem;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);margin-top:3px}.card-in-stats{display:flex;gap:16px;justify-content:center;margin-top:12px}.card-in-stat{display:flex;align-items:baseline;gap:3px}.card-in-stat-val{font-size:1rem;font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums}.card-in-stat-label{font-size:.6875rem;color:var(--text-muted)}.card-meta{text-align:center;margin-top:16px}.card-name{font-size:1.125rem;font-weight:600;color:var(--text-primary)}.card-date{font-size:.9375rem;color:var(--text-muted);margin-top:3px}.section-label{font-size:var(--ui-section-label-size);font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);margin-bottom:14px;margin-top:28px}.section-label:first-child{margin-top:0}.settings-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:18px;padding:0;margin-bottom:20px;overflow:hidden}.profile-flow{display:grid;gap:28px}.feature-section{background:linear-gradient(180deg,#ffffff05,#ffffff03);border:1px solid var(--border);border-radius:26px;padding:26px 22px 8px}html[data-theme=light] .feature-section{background:linear-gradient(180deg,#00000004,#00000002)}.feature-section.active{border-color:#1ea87a38}.feature-section-head{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start}.feature-section-icon{width:54px;height:54px;border-radius:16px;border:1px solid var(--border);background:var(--bg-input);display:grid;place-items:center;color:var(--text-primary)}.feature-section-icon svg{width:28px;height:28px}.feature-section-copy{min-width:0}.feature-section-kicker{text-transform:uppercase;letter-spacing:.14em;font-size:var(--ui-kicker-size);font-weight:700;color:var(--text-muted)}.feature-section-copy h2{margin-top:8px;font-size:var(--ui-title-size);line-height:1;color:var(--text-primary);letter-spacing:-.03em}.feature-section-copy p{margin-top:10px;max-width:60ch;color:var(--text-secondary);font-size:var(--ui-body-size);line-height:1.55}.feature-section-desc{margin-top:12px;color:var(--text-secondary);font-size:var(--ui-body-size);line-height:1.55}.feature-section-session>.settings-card,.feature-section-zones>.settings-card,.feature-section-health>.settings-card{margin-top:18px}.feature-section-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.feature-section-title-row h2{margin-top:0}.feature-section-actions{grid-column:1 / -1;display:flex;justify-content:flex-start;margin-top:2px}.feature-toggle-btn{appearance:none;border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);border-radius:10px;padding:11px 16px;font:inherit;font-size:.875rem;font-weight:700;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.feature-toggle-btn:disabled{cursor:default;opacity:.55}.feature-toggle-btn:hover{border-color:#1ea87a52}.feature-toggle-btn:disabled:hover{border-color:var(--border)}.feature-toggle-btn.active{border-color:#1ea87a3d;background:#1ea87a14;color:var(--accent)}.feature-action-link{appearance:none;border:none;background:transparent;color:var(--text-muted);font:inherit;font-size:.875rem;font-weight:600;cursor:pointer;padding:0;transition:color .15s}.feature-action-link:hover{color:var(--accent)}.feature-action-link:disabled{cursor:default;opacity:.55}.feature-action-link:disabled:hover{color:var(--text-muted)}.feature-toggle-btn-icon{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-muted);border-radius:999px}.feature-toggle-btn-icon:hover{border-color:transparent;background:transparent;color:var(--accent)}.feature-toggle-btn-icon:disabled:hover{border-color:transparent}.feature-toggle-btn-icon svg{width:18px;height:18px}.feature-toggle-btn-icon.spinning svg{animation:profile-sync-spin 1.2s linear infinite}.garmin-refresh-btn{display:inline-flex;align-items:center;gap:8px}.garmin-refresh-btn svg{width:16px;height:16px}.garmin-refresh-btn.spinning svg{animation:profile-sync-spin 1.2s linear infinite}.feature-section-empty{margin:22px 0 12px;padding:18px 20px;border-radius:16px;border:1px dashed var(--border);color:var(--text-secondary);line-height:1.55;background:#ffffff04}html[data-theme=light] .feature-section-empty{background:#00000003}.feature-grid{display:grid;gap:16px;margin-bottom:20px}.feature-card{appearance:none;width:100%;background:var(--bg-raised);border:1px solid var(--border);border-radius:18px;padding:22px 22px 20px;display:grid;grid-template-columns:auto 1fr;gap:16px;text-align:left;color:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s}.feature-card:hover{border-color:#1ea87a52;box-shadow:0 0 0 1px #1ea87a14}.feature-card.active{border-color:#1ea87a61;background:linear-gradient(180deg,#1ea87a14,#1ea87a08)}.feature-card.locked{cursor:default}.feature-card:disabled{opacity:1}.feature-icon{width:46px;height:46px;border-radius:14px;background:var(--bg-input);border:1px solid var(--border);display:grid;place-items:center;color:var(--text-primary);flex-shrink:0}.feature-icon svg{width:24px;height:24px}.feature-copy{display:grid;gap:10px;min-width:0}.feature-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.feature-title{font-size:1.1875rem;font-weight:700;color:var(--text-primary)}.feature-body{color:var(--text-secondary);font-size:.9375rem;line-height:1.5}.feature-chip{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:8px;border:1px solid var(--border);background:var(--bg-input);color:var(--text-muted);font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;flex-shrink:0}.feature-chip.on,.feature-chip.fixed{color:var(--accent);border-color:#1ea87a3d;background:#1ea87a14}.setting-row,.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 28px;border-bottom:1px solid var(--border)}.setting-row:last-child,.toggle-row:last-child{border-bottom:none}.hr-zone-actions{width:100%;margin-left:auto;gap:10px;justify-content:flex-start;padding:4px 28px 14px 0;border-bottom:none}.hr-zone-actions-copy{padding:0;text-align:left}.hr-zone-actions-buttons{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;flex-shrink:0;margin-left:auto}.hr-zone-inputs{border-bottom:none;padding-bottom:8px}.setting-row-stack{display:block}.setting-label,.toggle-label{font-size:var(--ui-setting-label-size);font-weight:600;color:var(--text-primary)}.setting-copy{display:grid;gap:6px;min-width:0}.setting-note{font-size:var(--ui-setting-note-size);color:var(--text-muted);line-height:1.4}.setting-tap{display:flex;align-items:center;gap:8px;background:var(--bg-input);border:1px solid var(--border);border-radius:12px;padding:12px 18px;cursor:pointer;transition:border-color .15s;font-family:inherit;appearance:none}.setting-tap:hover{border-color:var(--accent)}.setting-tap-val{font-size:var(--ui-setting-value-size);font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.setting-tap-unit{font-size:var(--ui-setting-unit-size);color:var(--text-muted)}.setting-hint{font-size:var(--ui-setting-note-size);color:var(--text-muted);line-height:1.4;padding:14px 28px 6px;text-align:center}.garmin-backfill-card{margin:18px 24px 20px;padding:14px 16px 18px;border-radius:14px;background:#ffffff05;border:1px solid var(--border)}.garmin-backfill-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.garmin-backfill-status{font-size:.875rem;color:var(--text-secondary);font-weight:600}.garmin-backfill-meter{height:6px;margin-top:12px;border-radius:999px;background:#ffffff0f;overflow:hidden}.garmin-backfill-meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1ea87a9e,#1ea87af5)}.garmin-backfill-copy{padding:12px 0 0}.segment{display:flex;background:var(--bg-input);border-radius:10px;padding:3px;gap:2px}.segment-btn{flex:1;padding:10px 16px;border:none;border-radius:8px;font-size:1rem;font-weight:600;font-family:inherit;color:var(--text-muted);background:none;cursor:pointer;transition:all .15s;white-space:nowrap}.segment-btn.active{color:var(--text-primary);background:var(--bg-raised);box-shadow:0 1px 3px #00000026}.zone-row{display:flex;align-items:center;gap:14px;padding:20px 38px;border-bottom:1px solid var(--border)}.zone-row:last-child{border-bottom:none}.zone-color{width:14px;height:14px;border-radius:4px;flex-shrink:0}.zone-name{font-size:1.0625rem;font-weight:600;color:var(--text-primary);flex:1}.profile-section-header{padding:18px 28px;border-bottom:1px solid var(--border)}.zone-preview-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px}.zone-preview-method{font-size:var(--ui-setting-note-size);color:var(--text-muted);line-height:1.4}.zone-preview-subtle{margin-top:4px;font-size:var(--ui-setting-note-size);color:var(--text-muted);line-height:1.4}.zone-end{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:136px}.zone-tap{display:flex;align-items:center;gap:6px;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;min-width:56px;justify-content:center;padding:12px 14px;cursor:pointer;transition:border-color .15s}.zone-tap:hover{border-color:var(--accent)}.zone-tap-val{font-size:1.1875rem;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.zone-sep{font-size:.9375rem;color:var(--text-muted);white-space:nowrap}.zone-static{display:inline-flex;align-items:baseline;gap:6px;font-size:1.1875rem;font-weight:600;color:var(--text-muted);font-variant-numeric:tabular-nums;min-width:96px;text-align:right;white-space:nowrap}.zone-unit{font-size:.76em;font-weight:500;color:var(--text-muted);letter-spacing:0}.zone-delta{font-size:.8125rem;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:.01em;white-space:nowrap}.zone-hint{font-size:var(--ui-setting-note-size);color:var(--text-muted);line-height:1.4;padding:14px 38px 18px}.garmin-status{display:grid;grid-template-columns:auto 1fr;align-items:start;column-gap:10px;font-size:var(--ui-body-size)}.garmin-status-copy{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;min-width:0}.garmin-status-line{display:flex;align-items:baseline;gap:0 8px;min-width:0}.garmin-status-state{font-weight:500}.garmin-status-meta,.garmin-status-user{color:var(--text-muted)}.garmin-status-user:before{content:"for "}.garmin-dot{width:10px;height:10px;margin-top:.4rem;border-radius:50%;background:var(--text-muted);flex-shrink:0}.garmin-dot.connected{background:var(--accent)}.garmin-dot.syncing{background:var(--accent);animation:garmin-dot-pulse 1.35s ease-in-out infinite;box-shadow:0 0 #1ea87a47}@keyframes garmin-dot-pulse{0%,to{transform:scale(.9);opacity:.75;box-shadow:0 0 #1ea87a1f}50%{transform:scale(1.12);opacity:1;box-shadow:0 0 0 5px #1ea87a00}}.profile-inline-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:14px}.profile-field{display:grid;gap:8px}.profile-field span{font-size:var(--ui-setting-note-size);color:var(--text-muted)}.profile-field input{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:12px;padding:14px 16px;color:var(--text-primary);font-size:1.125rem;outline:none}.profile-field input:focus{border-color:var(--accent)}.profile-select{width:100%;appearance:none;-webkit-appearance:none;background:var(--bg-input) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%23888' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center;border:1px solid var(--border);border-radius:12px;padding:14px 40px 14px 16px;color:var(--text-primary);font-size:1.125rem;font-family:inherit;outline:none;cursor:pointer}.profile-select:focus{border-color:var(--accent)}.profile-inline-action{display:grid;grid-template-columns:1fr auto;gap:10px}.profile-actions{display:flex;justify-content:flex-end;margin-top:6px}.picker-overlay{display:none;position:fixed;inset:0;background:#0a0a0ab3;z-index:400;align-items:flex-end;justify-content:center}html[data-theme=light] .picker-overlay{background:#0000004d}.picker-overlay.open{display:flex}.weight-entry-overlay{display:none;position:fixed;inset:0;background:#0a0a0ab3;z-index:410;align-items:flex-end;justify-content:center}html[data-theme=light] .weight-entry-overlay{background:#0000004d}.weight-entry-overlay.open{display:flex}.weight-entry-sheet{width:100%;min-height:100dvh;background:var(--bg);color:var(--text-primary);display:flex;flex-direction:column}.weight-entry-header{height:80px;display:grid;grid-template-columns:88px 1fr 88px;align-items:center;padding:0 20px;border-bottom:1px solid var(--border)}.weight-entry-back{appearance:none;border:none;background:none;color:var(--text-secondary);font:inherit;font-size:1.0625rem;text-align:left;padding:0;cursor:pointer}.weight-entry-title{text-align:center;font-size:1.5rem;font-weight:700}.weight-entry-spacer{width:100%}.weight-entry-body{flex:1;padding:24px 20px;overflow-y:auto}.weight-entry-picker{height:240px}.weight-entry-footer{padding:16px 20px 24px;border-top:1px solid var(--border)}.picker-sheet{width:100%;min-height:100dvh;background:var(--bg);color:var(--text-primary);display:flex;flex-direction:column;padding:0}.picker-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);text-align:center;padding:24px 24px 10px}.picker-body{display:flex;align-items:center;justify-content:center;flex:0 0 240px;height:240px;position:relative;overflow:hidden;padding:0 16px;margin:auto 0}.picker-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px 20px 24px;flex:1;overflow-y:auto}.picker-option{appearance:none;border:1px solid var(--border);background:var(--bg-raised);color:var(--text-secondary);border-radius:14px;padding:16px 14px;font:inherit;font-size:1.375rem;font-weight:700;font-variant-numeric:tabular-nums;cursor:pointer}.picker-option.selected{border-color:#1ea87a59;background:var(--accent-bg);color:var(--text-primary)}.picker-highlight{position:absolute;left:16px;right:16px;top:50%;transform:translateY(-50%);height:48px;border-radius:10px;background:var(--accent-bg);border:1px solid rgba(30,168,122,.15);pointer-events:none;z-index:1}.picker-column{flex:1;height:100%;overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-width:none;position:relative;z-index:2}.picker-column::-webkit-scrollbar{display:none}.picker-pad{height:96px}.picker-item{width:100%;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:600;color:var(--text-muted);border:none;background:none;scroll-snap-align:center;transition:color .1s,transform .1s;font-variant-numeric:tabular-nums;cursor:pointer;-webkit-user-select:none;user-select:none}.picker-item:hover{color:var(--text-secondary)}.picker-item.selected{color:var(--text-primary);font-weight:700;transform:scale(1.1)}.picker-sep{font-size:1.5rem;font-weight:700;color:var(--text-muted);display:flex;align-items:center;padding:0 2px;position:relative;z-index:2}.picker-footer{display:flex;gap:12px;padding:12px 20px 20px;border-top:1px solid var(--border)}.picker-btn{flex:1;padding:14px;border-radius:12px;font-size:1.0625rem;font-weight:600;font-family:inherit;cursor:pointer;text-align:center;border:none}.picker-btn-cancel{background:var(--bg-input);color:var(--text-secondary);border:1px solid var(--border)}.picker-btn-cancel:hover{color:var(--text-primary);border-color:var(--text-muted)}.picker-btn-confirm{background:var(--accent);color:#fff}.picker-btn-confirm:hover{opacity:.9}.placeholder-page .container{max-width:600px;margin:0 auto;padding:28px 20px 32px}.placeholder-card{background:linear-gradient(180deg,#ffffff05,#ffffff03);border:1px solid var(--border);border-radius:18px;padding:28px}html[data-theme=light] .placeholder-card{background:linear-gradient(180deg,#00000004,#00000002)}.eyebrow{margin-bottom:10px;font-size:.9375rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted)}.placeholder-card h1{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:12px}.placeholder-card p:last-child{color:var(--text-secondary);line-height:1.5}.activity-detail-page{min-height:100vh;background:var(--bg);color:var(--text)}.detail-topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;height:64px;position:sticky;top:0;background:var(--bg);z-index:100;border-bottom:1px solid var(--border)}.detail-burger{background:none;border:none;color:var(--text-primary);font-size:1.75rem;cursor:pointer;padding:10px;margin:-10px;line-height:1}.detail-topbar-title{font-size:1.375rem;font-weight:600;color:var(--text-primary);letter-spacing:-.3px}.detail-menu-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:200}.detail-menu-overlay.open{display:block}.detail-slide-menu{position:fixed;top:0;left:-320px;bottom:0;width:320px;background:var(--bg-raised);z-index:201;transition:left .25s ease;padding:80px 32px 32px;border-right:1px solid var(--border)}.detail-slide-menu.open{left:0}.detail-menu-link{display:block;font-size:1.5rem;font-weight:600;color:var(--text-secondary);text-decoration:none;padding:18px 0;border-bottom:1px solid var(--border)}.detail-menu-link:first-child{border-top:1px solid var(--border)}.detail-menu-link:hover,.detail-menu-link.active{color:var(--text-primary)}.detail-menu-close{position:absolute;top:20px;right:20px;background:none;border:none;color:var(--text-muted);font-size:1.875rem;cursor:pointer;padding:10px}.detail-desktop-links{display:none}.activity-detail-container{max-width:540px;margin:0 auto;padding:20px 16px;min-height:80vh}.back-link{font-size:.8125rem;color:var(--text-muted);text-decoration:none;display:inline-flex;align-items:center;gap:4px;margin-bottom:24px;letter-spacing:.3px;padding:6px 0}.back-link:hover{color:var(--text-secondary)}.hero-ring-wrap{display:flex;justify-content:center;margin-bottom:24px}.hero-ring{position:relative;width:340px;height:340px;max-width:100%;aspect-ratio:1}.hero-ring canvas{width:100%;height:100%}.hero-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.hero-dist{font-size:3.25rem;font-weight:800;color:var(--text-primary);letter-spacing:-2px;line-height:1}.hero-unit{font-size:.875rem;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);margin-top:3px}.hero-stats{display:flex;gap:16px;justify-content:center;margin-top:12px}.hero-stat{display:flex;align-items:baseline;gap:3px}.hero-stat-val{font-size:1rem;font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums}.hero-stat-label{font-size:.6875rem;color:var(--text-muted);letter-spacing:.3px}.run-info{text-align:center;margin-bottom:32px}.run-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:4px}.run-date{font-size:.875rem;color:var(--text-muted)}.metrics-grid{display:grid;width:100%;grid-template-columns:1fr;gap:12px;margin-top:40px;margin-bottom:48px;align-items:stretch;justify-items:stretch}.metric{background:linear-gradient(180deg,#ffffff05,#ffffff03);border:1px solid var(--border);border-radius:14px;padding:18px;min-width:0;height:100%;width:100%}html[data-theme=light] .metric{background:linear-gradient(180deg,#00000004,#00000002)}.metric-label{font-size:.625rem;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.metric-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.5px;line-height:1}.metric-suffix{font-size:.875rem;font-weight:400;color:var(--text-secondary)}.section{margin-bottom:40px}.activity-detail-page .section{padding-inline:10px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.section-header>.section-label{margin:0;line-height:1;display:flex;align-items:center}.section-label-tight{margin-bottom:20px}.section-settings{font-size:var(--ui-detail-head-size);font-weight:600;line-height:1;color:var(--text-muted);background:none;border:1px solid var(--border);border-radius:10px;padding:10px 16px;cursor:pointer;display:flex;align-items:center;gap:4px}.section-settings:active{background:var(--bg-hover)}.activity-zones .zone-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.activity-zones .zone-row:last-child{border-bottom:none}.activity-zones .zone-label{font-size:var(--ui-detail-body-size);font-weight:500;color:var(--text-secondary);width:clamp(6.8rem,30vw,8.2rem);flex-shrink:0}.activity-zones .zone-label-range{font-size:var(--ui-detail-meta-size);color:var(--text-muted);font-weight:400}.activity-zones .zone-bar-bg{flex:1;height:10px;border-radius:5px;background:var(--border);overflow:hidden}.activity-zones .zone-bar-fill{height:100%;border-radius:5px}.activity-zones .zone-pct{font-size:var(--ui-detail-body-size);font-weight:600;color:var(--text-primary);width:clamp(2.8rem,11vw,3.4rem);text-align:right;font-variant-numeric:tabular-nums}.activity-zones .zone-time{font-size:var(--ui-detail-meta-size);color:var(--text-muted);width:clamp(3rem,12vw,4rem);text-align:right;font-variant-numeric:tabular-nums}.activity-zones .zone-note{font-size:var(--ui-detail-meta-size);color:var(--text-muted);margin-top:12px;padding:10px 14px;background:var(--bg);border-radius:8px;line-height:1.5}.zone-modal-overlay{display:none;position:fixed;inset:0;background:#0009;z-index:200;justify-content:center;align-items:stretch}.zone-modal-overlay.open{display:flex}.zone-modal{background:var(--bg-raised);border-radius:0;width:100%;min-height:100dvh;max-height:100dvh;padding:24px;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));overflow-y:auto}.zone-modal-title{font-size:1.125rem;font-weight:700;color:var(--text-primary);margin-bottom:6px}.zone-modal-desc{font-size:.8125rem;color:var(--text-muted);margin-bottom:24px;line-height:1.5}.zone-modal-status{font-size:.8125rem;font-weight:600;margin:-10px 0 18px}.zone-modal-status.saving{color:var(--text-muted)}.zone-modal-status.error{color:#dc3030}.zone-modal-status.success{color:var(--accent)}.zone-edit-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.zone-edit-row:last-child{border-bottom:none}.zone-edit-name{font-size:.875rem;font-weight:600;color:var(--text-primary);width:80px;flex-shrink:0}.zone-edit-input{width:64px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px;color:var(--text-primary);font-size:1rem;font-weight:600;outline:none;text-align:center;font-variant-numeric:tabular-nums}.zone-edit-input:focus{border-color:var(--accent)}.zone-edit-sep{font-size:.875rem;color:var(--text-muted)}.zone-edit-prefix{width:32px;text-align:center}.zone-edit-static{font-size:.875rem;color:var(--text-muted);min-width:48px;text-align:left;font-variant-numeric:tabular-nums}.zone-edit-color{width:12px;height:12px;border-radius:3px;flex-shrink:0}.zone-save-btn{display:block;width:100%;margin-top:20px;background:var(--accent);color:#fff;border:none;border-radius:12px;padding:16px;font-size:1rem;font-weight:600;cursor:pointer}.zone-save-btn:disabled{opacity:.7;cursor:default}.splits-table{width:100%;border-collapse:collapse}.splits-table th{font-size:var(--ui-detail-head-size);font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--text-muted);text-align:left;padding:10px 0;border-bottom:1px solid var(--border)}.splits-table th:last-child{text-align:right}.splits-table td{font-size:var(--ui-detail-body-size);font-weight:500;color:var(--text-secondary);padding:12px 0;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;vertical-align:middle}.splits-table tr:last-child td{border-bottom:none}.splits-table td:first-child{font-weight:600;color:var(--text-muted);width:50px}.splits-table td:last-child{text-align:right}.hr-bar-cell{width:112px}.hr-bar{height:8px;border-radius:4px;display:inline-block;vertical-align:middle}.hr-legend{display:flex;align-items:center;gap:12px;justify-content:center;margin-top:24px}.hr-legend-bar{width:120px;height:5px;border-radius:2.5px;background:linear-gradient(90deg,#1ea87a,#78c040,#d4a520,#e06020,#dc3030)}.hr-legend span{font-size:var(--ui-detail-head-size);color:var(--text-muted)}@media(min-width:480px){.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}@media(min-width:768px){.topbar-logo-wrap{position:static;transform:none}.burger,.topbar-title{display:none}.profile-avatar{width:40px;height:40px;font-size:.9375rem;margin-left:0}.topbar-logo{height:44px}.desktop-links{display:flex;gap:6px;margin-left:auto}.topbar-actions{margin-left:36px;padding-left:22px;border-left:none}.desktop-links a{font-size:1.0625rem;font-weight:500;color:var(--text-muted);text-decoration:none;padding:10px 16px;border-radius:8px}.desktop-links a:hover{color:var(--text-secondary)}.desktop-links a.active{color:var(--text-primary);background:var(--bg-raised)}.topbar{padding:0 40px}.detail-burger{display:none}.detail-desktop-links{display:flex;gap:6px}.detail-desktop-links a{font-size:1.0625rem;font-weight:500;color:var(--text-muted);text-decoration:none;padding:10px 16px;border-radius:8px}.detail-desktop-links a:hover{color:var(--text-secondary)}.detail-desktop-links a.active{color:var(--text-primary);background:var(--bg-raised)}.detail-topbar{padding:0 40px}.activity-detail-container{max-width:720px;padding:32px 24px}.metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.metric-value{font-size:2rem}.picker-sheet{width:min(100%,420px);min-height:auto;max-height:min(88dvh,760px);background:var(--bg-raised);border:1px solid var(--border);border-radius:20px;margin-bottom:10vh;overflow:hidden}.picker-overlay{align-items:center}.weight-entry-overlay{align-items:center;padding:24px}.weight-entry-sheet{width:min(100%,420px);min-height:auto;max-height:min(88dvh,760px);border-radius:22px;border:1px solid var(--border);overflow:hidden;background:var(--bg-raised)}.weight-entry-body{padding:24px 24px 28px}.weight-entry-footer{padding:16px 24px 24px}.fullmodal-overlay{align-items:center;padding:24px}.fullmodal{width:min(100%,620px);min-height:auto;max-height:min(88dvh,900px);border-radius:22px;border:1px solid var(--border);overflow:hidden;background:var(--bg-raised)}.fullmodal-body{padding:24px 24px 28px}.fullmodal-footer{padding:16px 24px 24px}.zone-modal-overlay{align-items:center;padding:24px}.zone-modal{border-radius:20px;width:min(100%,560px);min-height:auto;max-height:min(90dvh,820px);padding:24px 24px 28px}.race-info-overlay{align-items:center;padding:24px}.race-info-modal{width:min(100%,620px);min-height:auto;max-height:min(88dvh,880px);border-radius:22px;border:1px solid var(--border);padding:30px 30px 34px}.race-info-close{top:18px;right:20px}}@media(min-width:900px){.today-page .container,.runs-page .container{max-width:100%;padding:0 36px 48px}.goals-page .container{max-width:100%;padding:36px 36px 120px}.activity-detail-container{max-width:980px;padding:36px 24px 48px}.hero-ring{width:620px;height:620px}.hero-ring canvas{width:620px;height:620px}.hero-dist{font-size:4.5rem}.today-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto;align-items:start;gap:20px}.today-card{padding:28px}.card-nutrition,.card-goal-primary,.card-goal-secondary{grid-column:span 1}.card-run{grid-column:span 1;display:flex;flex-direction:column}.card-sleep,.card-hrv{grid-column:span 1}.card-recovery-signal{grid-column:span 2}.card-meal,.card-weight-log{grid-column:span 1}.focus-hero{font-size:3.5rem}.focus-sub{font-size:1.125rem}.health-feed-value{font-size:2.125rem}.nutri-rings{width:220px;height:220px}.nutri-deficit{font-size:2.625rem}.period-summary{grid-template-columns:1fr 1fr 1fr 1fr}.period-stat{padding:28px 24px;border-radius:18px}.period-stat-val{font-size:2.25rem}.period-stat-label{font-size:1rem;margin-top:8px}.period-stat-trend{font-size:.9375rem}.run-list,.goals-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.archived-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.race-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.active-race-banner__image{aspect-ratio:16 / 8.5}.active-race-banner__overlay{padding:30px}.active-race-banner__title{font-size:2.375rem}.active-race-banner__tagline{font-size:1.15rem;margin-top:8px}.race-card-name{font-size:1.7rem}.race-card-tagline{font-size:1.15rem}.race-card-stat{font-size:1.0625rem}.race-title{font-size:2.625rem}.race-title-row{flex-direction:row;align-items:flex-start;justify-content:space-between}.join-wrap,.dnf-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.race-action-mobile{display:none}.race-info-btn{top:20px;right:max(0px,calc(50% - 310px))}.race-metrics-row{font-size:1.375rem;gap:16px;padding:8px 0 36px}.race-metrics-row .metric-val{font-size:1.625rem}.athlete-page .container,.profile-page .container{max-width:100%;padding:36px 36px 48px}.profile-flow{gap:32px}.feature-section{padding:30px 28px 12px}.feature-section-head{align-items:center}.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-label:first-child{margin-top:0}.athlete-hero{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:end}.athlete-spotlight-card{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);align-items:stretch}.athlete-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media(min-width:1100px){.today-page .container,.health-page .container,.runs-page .container,.goals-page .container,.races-page .container,.race-detail-page .container,.athlete-page .container,.profile-page .container,.page-notice-wrap,.activity-detail-container{max-width:1060px}.race-metrics-row{font-size:1.5rem;gap:20px;padding:12px 0 40px}.race-metrics-row .metric-val{font-size:1.875rem}}@media(max-width:820px){.ath-stats-row{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0}.ath-stat{padding:clamp(14px,1.2vw,20px) 0}.ath-stat+.ath-stat:before{display:none}.ath-stat:nth-child(odd){border-right:1px solid #2e2e2a}.ath-stat:nth-child(n+3){border-top:1px solid #2e2e2a}html[data-theme=light] .ath-stat:nth-child(odd){border-right-color:#ddd9d0}html[data-theme=light] .ath-stat:nth-child(n+3){border-top-color:#ddd9d0}.ath-hm-header{flex-direction:column;align-items:flex-start}.ath-runs-grid{grid-template-columns:repeat(2,1fr);gap:16px}.athlete-hero{padding:22px 18px}.athlete-hero-mark{grid-template-columns:1fr}.athlete-avatar{width:60px;height:60px;font-size:1.125rem}.athlete-summary-strip,.athlete-spotlight-stats{grid-template-columns:1fr}.athlete-spotlight-card,.athlete-section-card{padding:20px 18px}.athlete-race-row{grid-template-columns:1fr}.athlete-race-thumb{width:100%;height:180px}.athlete-run-row{grid-template-columns:1fr}.athlete-run-distance{font-size:var(--ui-athlete-run-value-size)}.ob-study-bar{padding:10px 12px}.ob-study-tabs{gap:1px}.ob-study-tab{font-size:.8125rem;padding:7px 12px}.ob-nav-link{left:12px;display:none}.ob-theme-btn{right:12px}.ob-onboarding{padding:72px 16px 60px}.ob-card{border-radius:18px;padding:24px 20px}.ob-card-title{font-size:1.625rem}.ob-card-desc,.ob-sync-desc,.ob-done-desc{font-size:1rem}.ob-label{font-size:.875rem}.ob-input,.ob-btn-primary{height:52px;font-size:1.0625rem}.ob-focus-name{font-size:1.125rem}.ob-focus-desc{font-size:.9375rem}.ob-sync-title,.ob-done-title{font-size:1.5rem}.ob-sync-meta{grid-template-columns:1fr}.setting-row,.toggle-row{align-items:flex-start;flex-direction:column}.garmin-status{align-items:flex-start}.garmin-status-copy{display:block}.garmin-status-user{margin-top:2px}.zone-name{font-size:1rem}.zone-static{font-size:1.0625rem}.zone-delta{font-size:.75rem}.hr-zone-actions{align-items:center;flex-direction:column;justify-content:center;gap:8px;padding-right:0}.hr-zone-actions-copy{width:auto;max-width:240px;text-align:center;line-height:1.2}.hr-zone-actions-buttons{width:auto;justify-content:center;margin-left:0}}@media(max-width:640px){.ath-runs-grid{grid-template-columns:1fr;gap:20px}.ath-run-card .run-ring-block{--archive-ring-size: min(100%, 14rem)}}@media(max-width:720px){.story-poster{margin-top:32px}.health-overview-grid{grid-template-columns:1fr}.health-trend-card__value{font-size:2.125rem}.health-trend-chart svg{height:128px}.health-signal-card__header{align-items:flex-start;flex-direction:column}.health-signal-card__board{grid-template-columns:repeat(2,minmax(0,1fr))}.health-signal-card__footerline{justify-content:center;overflow:visible}.health-page-state{font-size:2.75rem}.health-page-statusline{align-items:center;justify-content:center;text-align:center;font-size:.9375rem}.health-page .page-header{align-items:center;text-align:center;padding:calc(clamp(32px,3vw,56px) + 20px) 0}.health-page .page-subtitle{max-width:28rem;margin:0 auto}.health-signal-card__meta-line{text-align:center}.modal.health-info-modal{width:100%;max-width:none;height:100%;max-height:none;border-radius:0;padding:24px 20px 28px;display:flex;flex-direction:column}.health-info-modal__body{flex:1;overflow-y:auto}}@media(max-width:420px){.health-feed-value{font-size:2rem}.health-feed-note{font-size:.875rem}.health-feed-metrics{gap:10px}.health-feed-metric-value{font-size:1rem}.health-feed-metric-label{font-size:.6875rem}.health-range-label{margin-bottom:16px;font-size:.8125rem}.health-trend-card{padding:20px 18px 18px}.health-trend-card__header{align-items:flex-start;flex-direction:column;gap:6px}.health-trend-card__value{font-size:1.875rem}.health-signal-card{padding:18px}.health-signal-card__title{font-size:1.375rem}.health-signal-card__summary{font-size:.875rem}.health-signal-card__board{grid-template-columns:1fr}.health-signal-metric__value{font-size:1.375rem}.health-signal-card__drivers{grid-template-columns:1fr}.health-signal-card__meta-chip{font-size:.75rem}.health-trend-card__detail,.health-trend-card__delta{font-size:.8125rem}.health-trend-chart__labels{font-size:.6875rem}.ath-runs-grid{grid-template-columns:repeat(2,1fr);gap:12px}}.run-ring-block{--archive-ring-size: 18.75rem;width:100%;text-align:center}.card-run .run-ring-block{display:flex;flex-direction:column;flex:1;min-height:0}.run-ring-block__header{width:100%;display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.run-ring-block__header-title{font-size:1rem;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted, var(--text-3))}.run-ring-block__header-time{font-size:1rem;color:var(--text-muted, var(--text-3));font-variant-numeric:tabular-nums}.run-ring-block__wrap{display:flex;justify-content:center}.card-run .run-ring-block__wrap{flex:1;align-items:center}.run-ring-block__visual{position:relative;width:300px;height:300px;max-width:100%;aspect-ratio:1}.run-ring-block__canvas{width:100%;height:100%}.run-ring-block__center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.run-ring-block__distance{font-size:3rem;font-weight:800;color:var(--text-primary, var(--text));letter-spacing:-2px;line-height:1;font-variant-numeric:tabular-nums}.run-ring-block__unit{font-size:.875rem;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted, var(--text-3));margin-top:3px}.run-ring-block__stats{display:flex;gap:16px;justify-content:center;margin-top:12px}.run-ring-block__stat{display:flex;align-items:baseline;gap:3px}.run-ring-block__stat-val{font-size:1rem;font-weight:600;color:var(--text-secondary, var(--text-2));font-variant-numeric:tabular-nums}.run-ring-block__stat-label{font-size:.6875rem;font-weight:400;color:var(--text-muted, var(--text-3));letter-spacing:.3px}.run-ring-block__meta{text-align:center;margin-top:16px}.card-run .run-ring-block__meta{margin-top:auto;padding-top:20px}.run-ring-block__meta-title{font-size:1.375rem;font-weight:600;color:var(--text-primary, var(--text))}.run-ring-block__meta-subtitle{font-size:1.0625rem;color:var(--text-muted, var(--text-3));margin-top:4px}.run-ring-block--archive .run-ring-block__visual{width:min(100%,var(--archive-ring-size));height:min(100%,var(--archive-ring-size))}.run-ring-block--archive .run-ring-block__meta-title{font-size:1.125rem}.run-ring-block--archive .run-ring-block__meta-subtitle{font-size:.9375rem;margin-top:3px}.run-ring-block--today .run-ring-block__wrap{margin:-6px 0 2px}.run-ring-block--today .run-ring-block__meta{padding-bottom:0}.run-ring-block--today .run-ring-block__meta-subtitle{margin-top:8px}.run-ring-block--detail .run-ring-block__visual{width:340px;height:340px}.run-ring-block--detail .run-ring-block__meta-title{font-size:1.5rem;font-weight:700}.run-ring-block--detail .run-ring-block__meta-subtitle{font-size:.875rem}.race-ring-block{width:100%}.race-ring-block__visual{position:relative;width:340px;height:340px;max-width:100%;aspect-ratio:1;margin:0 auto}.race-ring-block--mini .race-ring-block__visual{width:84px;height:84px}.race-ring-block__canvas{width:100%;height:100%}.race-ring-block__center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}.race-ring-block__distance{font-size:3.25rem;font-weight:800;color:var(--text-primary, var(--text));letter-spacing:-2px;line-height:1;font-variant-numeric:tabular-nums}.race-ring-block__unit{font-size:.875rem;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted, var(--text-3));margin-top:3px}.race-ring-block__accent{font-size:1.25rem;font-weight:700;color:var(--accent);margin-top:8px}.race-ring-block--mini .race-ring-block__distance{font-size:1.25rem;letter-spacing:-.8px}.race-ring-block--mini .race-ring-block__unit,.race-ring-block--mini .race-ring-block__accent{display:none}@media(min-width:768px){.run-ring-block__header-title,.run-ring-block__header-time{font-size:1.0625rem}.run-ring-block__distance{font-size:3.25rem}.run-ring-block__stats{gap:20px;margin-top:14px}.run-ring-block__stat-val{font-size:1.125rem}.run-ring-block__stat-label{font-size:.75rem}}@media(min-width:900px){.run-ring-block{--archive-ring-size: 21.25rem}.run-ring-block--archive .run-ring-block__visual{width:min(100%,var(--archive-ring-size));height:min(100%,var(--archive-ring-size))}.run-ring-block--today .run-ring-block__visual{width:324px;height:324px}.run-ring-block--detail .run-ring-block__visual{width:620px;height:620px}.run-ring-block--detail .run-ring-block__distance{font-size:4.5rem}.run-ring-block--detail .run-ring-block__stats{gap:24px;margin-top:16px}.run-ring-block--detail .run-ring-block__stat-val{font-size:1.375rem}.run-ring-block--detail .run-ring-block__stat-label{font-size:.875rem}.run-ring-block--archive .run-ring-block__meta-title{font-size:1.125rem}.run-ring-block--archive .run-ring-block__meta-subtitle{font-size:.9375rem}.race-ring-block__visual{width:620px;height:620px}.race-ring-block__distance{font-size:4.5rem}.race-ring-block__accent{font-size:1.5rem}}@media(min-width:1100px){.run-ring-block--detail .run-ring-block__visual{width:700px;height:700px}.run-ring-block--detail .run-ring-block__distance{font-size:5rem}.run-ring-block--detail .run-ring-block__stats{gap:28px}.run-ring-block--detail .run-ring-block__stat-val{font-size:1.5rem}.run-ring-block--detail .run-ring-block__stat-label{font-size:.9375rem}.race-ring-block__visual{width:700px;height:700px}.race-ring-block__distance{font-size:5rem}}
