/* Purpose-built phone application UI. The approved desktop remains untouched. */
@media (max-width:760px){
  :root{--mobile-header:58px;--mobile-nav:64px;--mobile-gap:8px}
  html.mobile-app,html.mobile-app body{width:100%;height:100%;height:100dvh;overflow:hidden;overscroll-behavior:none}
  html.mobile-app body{padding:0 env(safe-area-inset-right) 0 env(safe-area-inset-left);background:var(--rc-bg)}

  html.mobile-app .app-header{height:calc(var(--mobile-header) + env(safe-area-inset-top));overflow:hidden;background:var(--rc-bg)}
  html.mobile-app .app-header__inner{height:100%;min-height:0;align-items:flex-end;padding:env(safe-area-inset-top) 0 9px}
  html.mobile-app .app-header__copy{align-self:flex-end}
  html.mobile-app .app-header .eyebrow{font-size:.54rem;letter-spacing:.14em}
  html.mobile-app .app-header h1{margin:2px 0 0;font-size:1.45rem;line-height:.95;letter-spacing:-.04em}
  html.mobile-app .app-header__meta{display:none!important}
  html.mobile-app .app-header__inner>:not(.app-header__copy){max-height:42px}
  html.mobile-app .month-review-banner{display:none!important}
  html.mobile-app body:not([data-view="today"]) #planbanner,html.mobile-app #planbanner:empty{display:none!important}
  html.mobile-app body[data-view="today"] main.page-container{display:grid;grid-template-rows:auto minmax(0,1fr);gap:var(--mobile-gap)}
  html.mobile-app #planbanner{z-index:3;min-height:0;overflow:hidden}
  html.mobile-app #planbanner .plan-banner{display:grid;min-height:46px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin:0;padding:7px 9px;border-radius:11px}
  html.mobile-app #planbanner .plan-banner>div{min-width:0;overflow:hidden}
  html.mobile-app #planbanner .plan-banner b,html.mobile-app #planbanner .plan-banner small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  html.mobile-app #planbanner .plan-banner b{font-size:.67rem}html.mobile-app #planbanner .plan-banner small{font-size:.53rem}
  html.mobile-app #planbanner .plan-banner br{display:none}
  html.mobile-app #planbanner .plan-banner a{padding:6px 8px;border:1px solid currentColor;border-radius:8px;font-size:.58rem;text-decoration:none;white-space:nowrap}
  html.mobile-app #planbanner:not(:empty)+#app{min-height:0;height:100%}
  html.mobile-app #planbanner:not(:empty)+#app .mobile-home{grid-template-rows:235px 68px 155px minmax(112px,1fr)}

  html.mobile-app main.page-container{width:calc(100% - 20px);height:calc(100dvh - var(--mobile-header) - var(--mobile-nav) - env(safe-area-inset-top) - env(safe-area-inset-bottom));margin:0 auto;padding:var(--mobile-gap) 0;overflow:hidden}
  html.mobile-app #app{height:100%;overflow:hidden}
  html.mobile-app .mobile-bottom-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));left:0;right:0;bottom:0;z-index:80;min-height:calc(var(--mobile-nav) + env(safe-area-inset-bottom));padding:5px max(6px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(6px,env(safe-area-inset-left));border-top:1px solid color-mix(in srgb,var(--rc-border) 80%,transparent);background:color-mix(in srgb,var(--rc-surface) 94%,transparent);backdrop-filter:blur(18px)}
  html.mobile-app .mobile-bottom-nav__link{position:relative;min-height:54px;gap:4px;padding:5px 2px;background:transparent!important;color:var(--rc-text-muted);font-size:.6rem;letter-spacing:.01em;transition:color 180ms ease}
  html.mobile-app .mobile-bottom-nav__link>span{font-size:.93rem}
  html.mobile-app .mobile-bottom-nav__link.active{color:var(--rc-danger)}
  html.mobile-app .mobile-bottom-nav__link.active:before{content:"";position:absolute;top:0;width:24px;height:2px;border-radius:3px;background:var(--rc-danger);box-shadow:0 0 12px color-mix(in srgb,var(--rc-danger) 45%,transparent)}
  html.mobile-app .modal{z-index:120;align-items:stretch;padding:0}
  html.mobile-app .modal>div{width:100%;height:100dvh;max-width:none;max-height:none;padding:calc(16px + env(safe-area-inset-top)) 16px calc(20px + env(safe-area-inset-bottom));border-radius:0;overflow-y:auto}

  .mobile-screen{height:100%;min-height:0;display:grid;gap:var(--mobile-gap)}
  .mobile-screen .card{margin:0;border-radius:15px}
  .mobile-screen .eyebrow{font-size:.58rem;letter-spacing:.12em}

  /* Home */
  .mobile-home{grid-template-rows:280px 72px 180px minmax(0,1fr)}
  .mobile-home__run{position:relative;display:flex;min-height:0;flex-direction:column;justify-content:center;overflow:hidden;padding:16px;border:1px solid color-mix(in srgb,var(--tone,var(--rc-primary)) 56%,var(--rc-border));border-top:4px solid var(--tone,var(--rc-primary));background:radial-gradient(circle at 100% 0,color-mix(in srgb,var(--tone,var(--rc-primary)) 18%,transparent),transparent 46%),linear-gradient(145deg,#222c25,#171e1a)}
  .mobile-home__run h2{display:-webkit-box;max-width:96%;margin:7px 0 13px;overflow:hidden;font-size:clamp(1.45rem,6.7vw,1.85rem);line-height:1.02;letter-spacing:-.035em;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .mobile-home__run-footer{display:flex;align-items:stretch;gap:8px}
  .mobile-home__distance{display:flex;min-width:0;align-items:baseline;gap:5px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--tone,var(--rc-primary)) 52%,var(--rc-border));border-radius:9px;background:color-mix(in srgb,var(--rc-surface) 74%,transparent)}
  .mobile-home__distance small{color:var(--rc-text-muted);font-size:.55rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.mobile-home__distance strong{font-size:.95rem;white-space:nowrap}
  .mobile-home__run-footer>a{display:flex;align-items:center;justify-content:center;margin-left:auto;padding:7px 11px;border:1px solid var(--rc-border);border-radius:9px;color:var(--rc-text);font-size:.66rem;font-weight:850;text-decoration:none;white-space:nowrap}
  .mobile-home__run>p{display:-webkit-box;margin:10px 0 0;overflow:hidden;color:var(--rc-text-muted);font-size:.7rem;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .mobile-home__metrics{display:grid;grid-template-columns:1fr 1fr;gap:var(--mobile-gap)}
  .mobile-home__metric{display:flex;min-width:0;flex-direction:column;justify-content:center;padding:9px 12px;border:1px solid var(--rc-border);border-radius:13px;background:var(--rc-surface)}
  .mobile-home__metric span{overflow:hidden;color:var(--rc-text-muted);font-size:.57rem;font-weight:800;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}
  .mobile-home__metric strong{display:block;overflow:hidden;margin-top:2px;font-size:clamp(.8rem,3.8vw,1rem);text-overflow:ellipsis;white-space:nowrap}
  .mobile-home__week{padding:11px 10px 9px;overflow:hidden}
  .mobile-home__week .week-at-glance{margin:5px 0 0}.mobile-home__week .week-at-glance>.eyebrow,.mobile-home__week .marker-key{display:none}
  .mobile-home__week .mini-week{width:100%;min-width:0;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.mobile-home__week .mini-day{width:100%;min-width:0;height:55px;min-height:55px;padding:4px 0;background:transparent;border-color:transparent;overflow:hidden}
  .mobile-home__week .mini-day .calendar-markers{height:18px;min-height:18px;gap:1px;padding-inline:0;transform:scale(.82)}
  .mobile-home__week .mini-day.today{background:color-mix(in srgb,var(--rc-danger) 10%,var(--rc-surface));border-color:var(--rc-danger);box-shadow:inset 0 0 0 1px var(--rc-danger)}
  .mobile-home__next{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1px 8px;margin-top:8px;padding-top:7px;border-top:1px solid var(--rc-border)}
  .mobile-home__next small{grid-row:1/3;align-self:center;color:var(--rc-primary);font-size:.55rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.mobile-home__next b,.mobile-home__next span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-home__next b{font-size:.66rem}.mobile-home__next span{color:var(--rc-text-muted);font-size:.55rem}
  .mobile-home__phase{display:grid;min-height:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:13px;padding:14px;color:inherit;text-decoration:none;overflow:hidden}
  .mobile-home__phase-copy{min-width:0}.mobile-home__phase-copy>small{display:block;color:var(--rc-primary);font-size:.57rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em}.mobile-home__phase-copy>b{display:-webkit-box;margin-top:5px;overflow:hidden;font-size:clamp(.86rem,4vw,1.05rem);line-height:1.18;-webkit-box-orient:vertical;-webkit-line-clamp:2}.mobile-home__phase-copy>p{display:-webkit-box;margin:6px 0 0;overflow:hidden;color:var(--rc-text-muted);font-size:.63rem;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .mobile-home__phase-facts{display:grid;gap:6px}.mobile-home__phase-facts span{min-width:58px;padding:7px;border:1px solid var(--rc-border);border-radius:9px;text-align:center}.mobile-home__phase-facts small,.mobile-home__phase-facts b{display:block}.mobile-home__phase-facts small{color:var(--rc-text-muted);font-size:.49rem;text-transform:uppercase}.mobile-home__phase-facts b{margin-top:1px;font-size:.7rem}

  /* Calendar */
  html.mobile-app body[data-view="month"] .mobile-calendar{display:grid!important;width:100%;height:auto!important;grid-template-rows:42px max-content max-content;align-content:start;gap:8px;padding:11px;overflow:visible}
  .mobile-calendar-screen{min-width:0;align-content:start;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding-bottom:4px;scrollbar-width:none}
  .mobile-calendar-screen::-webkit-scrollbar{display:none}
  html.mobile-app body[data-view="month"] .mobile-calendar{align-self:start}
  html.mobile-app body[data-view="month"] .mobile-calendar>.month-head{order:1}
  html.mobile-app body[data-view="month"] .mobile-calendar>.month-portrait{order:2}
  html.mobile-app body[data-view="month"] .mobile-calendar>.mobile-day-panel{order:3}
  html.mobile-app body[data-view="month"] .month-head{display:flex;align-items:center}.month-head .eyebrow{display:none}
  html.mobile-app body[data-view="month"] .month-head h2{margin:0;font-size:1.08rem;letter-spacing:.055em;text-transform:uppercase}
  html.mobile-app body[data-view="month"] .navbuttons{display:flex;width:auto;margin-left:auto;gap:5px}
  html.mobile-app body[data-view="month"] .navbuttons button{width:38px;min-width:38px;min-height:34px;padding:0;font-size:0;color:transparent}
  html.mobile-app body[data-view="month"] .navbuttons button:first-child:after{content:"‹"}html.mobile-app body[data-view="month"] .navbuttons button:nth-child(3):after{content:"›"}
  html.mobile-app body[data-view="month"] .navbuttons .month-add-item:before{content:none}html.mobile-app body[data-view="month"] .navbuttons .month-add-item:after{content:"＋"}
  html.mobile-app body[data-view="month"] .navbuttons button:nth-child(2){display:none}.navbuttons button:after{color:var(--rc-text);font-size:1.45rem}
  html.mobile-app body[data-view="month"] .month-portrait{display:block;min-height:0;border:1px solid var(--rc-border);border-radius:12px;overflow:hidden}
  html.mobile-app body[data-view="month"] .portrait-labels span{padding:5px 0 4px}
  html.mobile-app body[data-view="month"] .month-card .portrait-day{display:grid!important;min-height:43px;padding:3px 1px!important;grid-template-rows:14px 19px!important;background:var(--rc-surface);border-radius:0}
  html.mobile-app body[data-view="month"] .portrait-day.today{background:color-mix(in srgb,var(--rc-primary) 11%,var(--rc-surface));box-shadow:inset 0 0 0 1px var(--rc-primary)}
  html.mobile-app body[data-view="month"] .portrait-day.selected{z-index:2;background:color-mix(in srgb,var(--rc-danger) 12%,var(--rc-surface));box-shadow:inset 0 0 0 2px var(--rc-danger)}
  html.mobile-app body[data-view="month"] .portrait-week-summary,html.mobile-app body[data-view="month"] .current-week-summary,html.mobile-app body[data-view="month"] .month-utilities,html.mobile-app body[data-view="month"] .calendar-notes,html.mobile-app body[data-view="month"] .month{display:none!important}
  .mobile-day-panel{display:grid;min-width:0;min-height:0;align-content:start;grid-template-rows:auto auto auto auto;gap:9px;padding:11px;border:1px solid var(--rc-border);border-radius:13px;background:linear-gradient(145deg,var(--rc-surface),color-mix(in srgb,var(--rc-surface) 92%,var(--rc-primary-soft)));overflow:visible}
  .mobile-day-panel__head{display:flex;align-items:center;gap:10px}.mobile-day-panel__head>div{min-width:0}.mobile-day-panel h3{margin:3px 0 0;color:var(--rc-text-muted);font-size:.67rem;line-height:1.12;font-weight:750}
  .mobile-day-panel__activities{display:grid;min-width:0;grid-template-columns:1fr;gap:7px}
  .mobile-activity-card{--activity-tone:#86a49a;display:grid;width:100%;min-width:0;min-height:94px;grid-template-columns:38px minmax(0,1fr) 14px;grid-template-rows:auto auto;align-items:center;gap:8px 10px;margin:0;padding:12px;border:1px solid color-mix(in srgb,var(--activity-tone) 48%,var(--rc-border));border-radius:12px;background:radial-gradient(circle at 0 0,color-mix(in srgb,var(--activity-tone) 13%,transparent),transparent 58%),linear-gradient(145deg,color-mix(in srgb,var(--rc-surface) 94%,var(--activity-tone)),var(--rc-surface-subtle));box-shadow:inset 0 1px 0 color-mix(in srgb,var(--activity-tone) 12%,transparent),0 7px 18px rgba(0,0,0,.08);color:var(--rc-text);text-align:left;white-space:normal;transition:border-color 160ms ease,background-color 160ms ease,transform 120ms ease}
  .mobile-activity-card.tone-long{--activity-tone:#68a9e5}.mobile-activity-card.tone-easy{--activity-tone:#79c79b}.mobile-activity-card.tone-threshold{--activity-tone:#dfa358}.mobile-activity-card.tone-hard{--activity-tone:#ed8063}.mobile-activity-card.tone-race{--activity-tone:#e97f9a}.mobile-activity-card.tone-strength{--activity-tone:#a58ad9}.mobile-activity-card.tone-recovery{--activity-tone:#5db9ad}.mobile-activity-card.tone-ancillary{--activity-tone:#7eae9c}.mobile-activity-card.tone-other{--activity-tone:#849a93}
  .mobile-activity-card:hover,.mobile-activity-card:focus-visible{border-color:var(--activity-tone);background:radial-gradient(circle at 0 0,color-mix(in srgb,var(--activity-tone) 18%,transparent),transparent 62%),linear-gradient(145deg,color-mix(in srgb,var(--rc-surface) 91%,var(--activity-tone)),var(--rc-surface-subtle));transform:translateY(-1px)}.mobile-activity-card:active{transform:scale(.99)}
  .mobile-activity-card__icon{grid-column:1;grid-row:1/3;display:grid;width:38px;height:38px;place-items:center;border:1px solid color-mix(in srgb,var(--activity-tone) 52%,var(--rc-border));border-radius:50%;background:color-mix(in srgb,var(--activity-tone) 15%,transparent);color:var(--activity-tone);font-size:1.05rem;line-height:1}
  .mobile-activity-card__copy{grid-column:2;grid-row:1;display:block;min-width:0}.mobile-activity-card__copy strong,.mobile-activity-card__copy>span{display:block;min-width:0}.mobile-activity-card__copy strong{font-size:.78rem;line-height:1.18;overflow-wrap:anywhere}.mobile-activity-card__copy>span{margin-top:3px;color:var(--rc-text-muted);font-size:.59rem;line-height:1.3;overflow-wrap:anywhere}
  .mobile-activity-card__chevron{grid-column:3;grid-row:1/3;align-self:center;color:var(--activity-tone);font-size:1.45rem;font-weight:450;line-height:1;text-align:right}
  .mobile-activity-card__metrics{grid-column:2/4;grid-row:2;display:flex!important;min-width:0;align-items:center;gap:5px 13px;flex-wrap:wrap;margin:0!important;color:var(--rc-text-muted);font-size:.56rem;font-weight:780;line-height:1.2}.mobile-activity-card__metrics>span{display:inline-flex;min-width:0;align-items:center;gap:4px;margin:0!important;white-space:nowrap}.mobile-activity-card__metrics>span:before{color:var(--activity-tone);font-size:.62rem}.mobile-activity-card__metrics .distance:before{content:"◆"}.mobile-activity-card__metrics .time:before{content:"◷"}.mobile-activity-card__metrics .elevation:before{content:"▲"}.mobile-activity-card__metrics .routine:before{content:"≡"}.mobile-activity-card__metrics .type:before{content:"●"}
  .mobile-day-panel__empty{padding:12px;border:1px dashed var(--rc-border);border-radius:10px;background:var(--rc-surface-subtle)}.mobile-day-panel__empty b,.mobile-day-panel__empty span{display:block}.mobile-day-panel__empty b{font-size:.7rem}.mobile-day-panel__empty span{margin-top:2px;color:var(--rc-text-muted);font-size:.56rem}
  .mobile-day-panel__divider{display:flex;align-items:center;gap:8px;color:var(--rc-text-muted);font-size:.48rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.mobile-day-panel__divider:before,.mobile-day-panel__divider:after{height:1px;flex:1;background:var(--rc-border);content:""}
  .mobile-day-panel__week{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.mobile-day-panel__week>span{min-width:0;padding:7px 8px;border:1px solid color-mix(in srgb,var(--rc-border) 78%,transparent);border-radius:8px;background:color-mix(in srgb,var(--rc-surface-subtle) 74%,transparent)}.mobile-day-panel__week small,.mobile-day-panel__week b{display:block;min-width:0;overflow-wrap:anywhere}.mobile-day-panel__week small{min-height:2.2em;color:var(--rc-text-muted);font-size:.48rem;line-height:1.12;text-transform:uppercase}.mobile-day-panel__week b{margin-top:2px;font-size:.64rem;line-height:1.15}
  .activity-detail-overlay.activity-accent-long{--calendar-activity-accent:#68a9e5}.activity-detail-overlay.activity-accent-easy{--calendar-activity-accent:#79c79b}.activity-detail-overlay.activity-accent-threshold{--calendar-activity-accent:#dfa358}.activity-detail-overlay.activity-accent-hard{--calendar-activity-accent:#ed8063}.activity-detail-overlay.activity-accent-race{--calendar-activity-accent:#e97f9a}.activity-detail-overlay[class*="activity-accent-"] .activity-detail-page>header{border-color:color-mix(in srgb,var(--calendar-activity-accent) 64%,var(--rc-border));background:radial-gradient(circle at 6% 0,color-mix(in srgb,var(--calendar-activity-accent) 20%,transparent),transparent 58%),var(--activity-hero-gradient);box-shadow:0 16px 42px color-mix(in srgb,var(--calendar-activity-accent) 10%,transparent)}.activity-detail-overlay[class*="activity-accent-"] .activity-status{background:color-mix(in srgb,var(--calendar-activity-accent) 16%,transparent);color:var(--calendar-activity-accent)}.activity-detail-overlay[class*="activity-accent-"] .activity-detail-page>header h2{color:color-mix(in srgb,var(--calendar-activity-accent) 30%,var(--rc-text))}
  html.mobile-app .activity-detail-dialog>.activity-detail-close{position:absolute;z-index:20;top:18px;right:18px;float:none;width:30px;min-width:30px;height:30px;min-height:30px;margin:0;padding:0;font-size:1.05rem;line-height:1;box-shadow:0 4px 12px rgba(0,0,0,.2)}

  /* Coaching */
  html.mobile-app body.mobile-coaching main.page-container{display:flex;flex-direction:column;gap:var(--mobile-gap)}
  html.mobile-app body.mobile-coaching main>.hero{display:block;height:82px;margin:0;padding:12px 14px;overflow:hidden;border-top-width:3px}
  html.mobile-app body.mobile-coaching main>.hero h2{margin:3px 0;font-size:1rem;line-height:1.15}
  html.mobile-app body.mobile-coaching main>.hero p,html.mobile-app body.mobile-coaching main>.hero .logic-link-wrap{display:none}
  html.mobile-app body.mobile-coaching main>.notice,html.mobile-app body.mobile-coaching main>.context-card{display:none}
  html.mobile-app body.mobile-coaching main>.two{display:block;min-height:0;flex:1 1 0;overflow:hidden}
  html.mobile-app body.mobile-coaching main>.two>article{display:flex;height:100%;min-height:0;flex-direction:column;padding:13px;overflow:hidden}
  html.mobile-app body.mobile-coaching main>.two>article>h2{margin:3px 0 8px;font-size:1.12rem}
  html.mobile-app body.mobile-coaching main>.two>aside{display:none}
  html.mobile-app body.mobile-coaching #coaching-form{display:flex;min-height:0;flex:1 1 0;flex-direction:column;gap:5px;overflow:hidden}
  html.mobile-app body.mobile-coaching #coaching-form label{margin:0;font-size:.66rem}
  html.mobile-app body.mobile-coaching #coaching-form select{min-height:40px;flex:0 0 40px;padding-block:6px}
  html.mobile-app body.mobile-coaching #coaching-form #reason-wrap{flex:0 0 auto}
  html.mobile-app body.mobile-coaching #coaching-form textarea{min-height:78px;height:auto;flex:1 1 78px;resize:none}
  html.mobile-app body.mobile-coaching #coaching-form .actions{display:grid;grid-template-columns:1fr auto;gap:6px}
  html.mobile-app body.mobile-coaching #coaching-form .actions>*{min-height:42px;margin:0}
  html.mobile-app body.mobile-coaching #coaching-form .status-line{margin:0;font-size:.58rem;line-height:1.25}
  html.mobile-app body.mobile-coaching #coaching-status:empty{display:none}

  /* Training phase */
  .mobile-phase{display:block;height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding-bottom:8px}
  .mobile-phase__hero{display:grid;min-height:94px;place-items:center;padding:12px;text-align:center;border-top:3px solid var(--rc-danger)}
  .mobile-phase__hero h2{margin:4px 0;font-size:clamp(1.14rem,5.5vw,1.55rem);line-height:1}.mobile-phase__hero p{margin:0;color:var(--rc-text-muted);font-size:.64rem}
  .mobile-phase__progression{margin-top:8px}
  .mobile-tpp-loading{padding:24px 12px;border:1px dashed var(--rc-border);border-radius:13px;color:var(--rc-text-muted);font-size:.68rem;text-align:center}
  .mobile-tpp{padding:10px;overflow:hidden;background:linear-gradient(145deg,color-mix(in srgb,var(--rc-surface) 96%,#0b3528 4%),var(--rc-surface))}
  .mobile-tpp>header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.mobile-tpp>header h3{margin:2px 0 0;font-size:.9rem}.mobile-tpp>header>small{color:var(--rc-text-muted);font-size:.52rem;white-space:nowrap}
  .mobile-tpp-summary{display:grid;grid-template-columns:1.35fr .75fr .7fr;gap:1px;margin:8px 0;background:var(--rc-border)}.mobile-tpp-summary>span{min-width:0;padding:7px 6px;background:var(--rc-surface)}.mobile-tpp-summary small,.mobile-tpp-summary b{display:block;overflow:hidden;text-overflow:ellipsis}.mobile-tpp-summary small{color:var(--rc-text-muted);font-size:.45rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.mobile-tpp-summary b{margin-top:2px;font-size:.61rem;white-space:nowrap}
  .mobile-tpp-phases{display:flex;gap:2px;margin:3px 0 5px}.mobile-tpp-phases span{display:flex;min-width:0;min-height:25px;align-items:center;justify-content:center;padding:3px;border:1px solid color-mix(in srgb,var(--rc-primary) 22%,var(--rc-border));border-radius:5px;background:color-mix(in srgb,var(--rc-primary) 7%,transparent);color:var(--rc-text-muted);font-size:.4rem;font-weight:850;line-height:1.05;text-align:center;text-transform:uppercase;overflow:hidden}
  .mobile-tpp-chart{height:auto;min-height:0;border:1px solid color-mix(in srgb,var(--rc-border) 80%,transparent);border-radius:9px;background:color-mix(in srgb,var(--rc-surface-subtle) 74%,transparent)}.mobile-tpp-chart svg{display:block;width:100%;height:auto}
  .mobile-tpp-key{display:flex;justify-content:center;gap:10px;margin:5px 0;color:var(--rc-text-muted);font-size:.46rem}.mobile-tpp-key span{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:none}.mobile-tpp-key span:before{width:12px;height:2px;background:var(--rc-primary);content:""}.mobile-tpp-key .metric-long:before{background:#83a5cd}.mobile-tpp-key .metric-forecast:before{height:0;border-top:1px dashed #dce9e2;background:none}
  .mobile-tpp-weeks{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;margin:6px 0}.mobile-tpp-weeks button{min-width:0;min-height:30px;padding:3px;border:1px solid var(--rc-border);border-radius:7px;background:transparent;color:var(--rc-text-muted);font-size:.56rem}.mobile-tpp-weeks button.active{border-color:var(--rc-primary);background:color-mix(in srgb,var(--rc-primary) 14%,transparent);color:var(--rc-text)}
  .mobile-tpp-detail{padding:9px;border:1px solid var(--rc-border);border-radius:10px;background:var(--rc-surface-subtle)}.mobile-tpp-detail.future{border-style:dashed}.mobile-tpp-detail__head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.mobile-tpp-detail__head small,.mobile-tpp-detail__head b{display:block}.mobile-tpp-detail__head small{color:var(--rc-primary);font-size:.48rem;font-weight:850;text-transform:uppercase}.mobile-tpp-detail__head b{margin-top:2px;font-size:.72rem}.mobile-tpp-detail__head>span{color:var(--rc-text-muted);font-size:.48rem;white-space:nowrap}
  .mobile-tpp-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:7px 0;background:var(--rc-border)}.mobile-tpp-metrics span{min-width:0;padding:6px 4px;background:var(--rc-surface);text-align:center}.mobile-tpp-metrics small,.mobile-tpp-metrics b{display:block}.mobile-tpp-metrics small{color:var(--rc-text-muted);font-size:.43rem;text-transform:uppercase}.mobile-tpp-metrics b{margin-top:2px;font-size:.61rem}
  .mobile-tpp-sessions{display:grid;gap:4px}.mobile-tpp-sessions>div{padding:6px 7px;border-left:3px solid var(--session-tone,#83a5cd);border-radius:6px;background:color-mix(in srgb,var(--session-tone,#83a5cd) 9%,transparent)}.mobile-tpp-sessions .threshold,.mobile-tpp-sessions .progression{--session-tone:#d9ad57}.mobile-tpp-sessions .intervals,.mobile-tpp-sessions .sharpen{--session-tone:#df8d52}.mobile-tpp-sessions .race,.mobile-tpp-sessions .race_specific{--session-tone:#d27678}.mobile-tpp-sessions .long{--session-tone:#83a5cd}.mobile-tpp-sessions small,.mobile-tpp-sessions b,.mobile-tpp-sessions span{display:block}.mobile-tpp-sessions small{color:var(--session-tone);font-size:.44rem;font-weight:900;text-transform:uppercase}.mobile-tpp-sessions b{margin-top:2px;font-size:.62rem}.mobile-tpp-sessions span{color:var(--rc-text-muted);font-size:.54rem}
  .mobile-tpp-detail>p,.mobile-tpp-empty{margin:6px 0 0;color:var(--rc-text-muted);font-size:.5rem;line-height:1.35}.mobile-tpp-method{display:block;margin-top:7px;color:var(--rc-text-muted);font-size:.46rem;line-height:1.35}
  html.mobile-app body[data-view="future-blocks"]{height:auto;min-height:100dvh;overflow-x:hidden;overflow-y:auto}
  html.mobile-app body[data-view="future-blocks"] main.page-container{height:auto;min-height:calc(100dvh - var(--mobile-header) - var(--mobile-nav));padding-bottom:calc(18px + var(--mobile-nav) + env(safe-area-inset-bottom));overflow:visible}
  html.mobile-app body[data-view="future-blocks"] .current-block-summary{padding:13px}html.mobile-app body[data-view="future-blocks"] .metric-grid{grid-template-columns:1fr 1fr}html.mobile-app body[data-view="future-blocks"] .metric-grid .metric:first-child{grid-column:1/-1}

  /* Statistics */
  html.mobile-app body.mobile-statistics main.page-container{padding-top:5px}
  html.mobile-app body.mobile-statistics #loading,html.mobile-app body.mobile-statistics #error,html.mobile-app body.mobile-statistics .statistics-review-entry,html.mobile-app body.mobile-statistics .limitations{display:none!important}
  html.mobile-app body.mobile-statistics #trend-content{height:100%;display:grid!important;grid-template-rows:39px minmax(0,1fr);gap:6px}
  html.mobile-app body.mobile-statistics.mobile-statistics-training #trend-content{grid-template-rows:39px 34px minmax(0,1fr)}
  .mobile-stat-tabs,.mobile-chart-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:3px;padding:3px;border:1px solid var(--rc-border);border-radius:11px;background:var(--rc-surface-subtle)}
  .mobile-stat-tabs button,.mobile-chart-tabs button{min-width:0;min-height:31px;padding:4px 3px;border:0;background:transparent;color:var(--rc-text-muted);font-size:.64rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mobile-stat-tabs button.active,.mobile-chart-tabs button.active{background:var(--rc-surface);color:var(--rc-danger);box-shadow:0 3px 10px rgba(0,0,0,.12)}
  html.mobile-app body.mobile-statistics .range-row{position:static;display:grid;grid-template-columns:repeat(5,1fr);gap:3px;margin:0;padding:0;background:none}
  html.mobile-app body.mobile-statistics .range-row[hidden]{display:none!important}
  html.mobile-app body.mobile-statistics .range-row>span{display:none}.range-row button{min-height:32px!important;padding:3px!important;font-size:0!important}
  html.mobile-app body.mobile-statistics .range-row button[data-range="8w"]:after{content:"8W"}html.mobile-app body.mobile-statistics .range-row button[data-range="3m"]:after{content:"3M"}html.mobile-app body.mobile-statistics .range-row button[data-range="6m"]:after{content:"6M"}html.mobile-app body.mobile-statistics .range-row button[data-range="12m"]:after{content:"1Y"}html.mobile-app body.mobile-statistics .range-row button[data-range="all"]:after{content:"All"}.range-row button:after{font-size:.64rem}
  .mobile-stat-stage{min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding-bottom:8px}
  .mobile-stat-stage>.trend-section{display:grid;width:100%;min-width:0;min-height:100%;grid-template-rows:38px minmax(0,1fr);gap:6px;margin:0!important;overflow:visible}
  .mobile-stat-stage>.trend-section{border:0!important;background:transparent!important;box-shadow:none!important}
  .mobile-stat-stage>.trend-section.mobile-single-panel{grid-template-rows:minmax(0,1fr)}
  html.mobile-app body.mobile-statistics .trend-section>.section-head,html.mobile-app body.mobile-statistics .fitness-tile-header,html.mobile-app body.mobile-statistics .training-analysis-head{display:none!important}
  html.mobile-app body.mobile-statistics .training-analysis{height:100%;min-height:0}
  html.mobile-app body.mobile-statistics .trend-section[hidden],html.mobile-app body.mobile-statistics .training-analysis-block[hidden],html.mobile-app body.mobile-statistics .trend-section [hidden]{display:none!important}
  html.mobile-app body.mobile-statistics .training-analysis-block,html.mobile-app body.mobile-statistics .recovery-overview-card,html.mobile-app body.mobile-statistics .fitness-trajectory-card,html.mobile-app body.mobile-statistics .fitness-support-card{height:100%;margin:0;padding:10px;overflow:hidden;border-radius:13px}
  html.mobile-app body.mobile-statistics .chart-title,html.mobile-app body.mobile-statistics .fitness-chart-title{display:block;margin:0 0 4px}.chart-title h3,.fitness-chart-title h3{margin:2px 0;font-size:.86rem}.chart-title p,.fitness-chart-title p{display:none}
  html.mobile-app body.mobile-statistics .timeline-key,html.mobile-app body.mobile-statistics .compact-fitness-key{gap:4px 8px;margin-top:3px;font-size:.54rem}
  html.mobile-app body.mobile-statistics .mobile-training-overview{align-content:start}
  html.mobile-app body.mobile-statistics .mobile-training-overview .training-analysis{height:auto!important;min-height:0!important;align-self:start;border:0!important;background:transparent!important;box-shadow:none!important}
  html.mobile-app body.mobile-statistics .mobile-training-overview .primary-load-card{display:grid;height:auto;min-height:0;align-content:start;grid-template-rows:repeat(6,auto);gap:0;padding:10px 11px 12px;overflow:visible;border:1px solid var(--rc-border);border-radius:13px;background:var(--rc-surface)}
  html.mobile-app body.mobile-statistics #training-chart{width:100%;height:auto;min-height:0;overflow:hidden}
  html.mobile-app body.mobile-statistics .training-summary{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:0;padding:0;overflow:visible;background:var(--rc-border)}
  html.mobile-app body.mobile-statistics .training-summary>*{min-width:0;padding:7px 3px!important;background:var(--rc-surface);text-align:center}.training-summary strong,.training-summary b{display:block;font-size:.66rem!important;line-height:1.15;overflow-wrap:anywhere}.training-summary small{display:none!important}.training-summary span{display:block;min-height:2.3em;font-size:.46rem!important;line-height:1.15;white-space:normal;overflow-wrap:anywhere}
  html.mobile-app body.mobile-statistics .week-detail{display:none!important}
  html.mobile-app body.mobile-statistics .training-composition{display:none!important}
  .mobile-period-mix,.mobile-period-totals,.mobile-selected-week,.mobile-week-mix{min-width:0;padding-top:9px}.mobile-period-totals,.mobile-selected-week,.mobile-week-mix{margin-top:9px;border-top:1px solid var(--rc-border)}
  .mobile-section-label{display:flex;min-width:0;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}.mobile-section-label small{color:var(--rc-text-muted);font-size:.49rem;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
  .mobile-training-bar{display:flex;width:100%;height:22px;overflow:hidden;border-radius:7px;background:var(--rc-surface-subtle)}.mobile-training-bar>span{display:flex;min-width:2px;align-items:center;justify-content:center;overflow:hidden;color:#102018;white-space:nowrap}.mobile-training-bar small{font-size:.45rem;font-weight:900}.mobile-training-bar.mini{height:9px;border-radius:999px}.mobile-training-bar .recovery,.mobile-training-key i.recovery{background:#6dafa3}.mobile-training-bar .easy,.mobile-training-key i.easy{background:#83c5a2}.mobile-training-bar .steady,.mobile-training-key i.steady{background:#75a9cb}.mobile-training-bar .threshold,.mobile-training-key i.threshold{background:#d7a34a}.mobile-training-bar .fast,.mobile-training-key i.fast{background:#df735b}.mobile-training-bar .unknown,.mobile-training-key i.unknown{background:#b6bdb8}
  .mobile-training-key{display:flex;align-items:center;justify-content:center;gap:3px 8px;flex-wrap:wrap;margin-top:5px;color:var(--rc-text-muted);font-size:.47rem}.mobile-training-key span{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}.mobile-training-key i{width:6px;height:6px;border-radius:2px}.mobile-training-key b{color:var(--rc-text);font-size:inherit}
  .mobile-composition-coverage{display:block;margin-top:3px;color:var(--rc-text-muted);font-size:.47rem}
  .mobile-metric-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--rc-border)}.mobile-metric-row article{min-width:0;padding:7px 3px;background:var(--rc-surface);text-align:center}.mobile-metric-row span,.mobile-metric-row strong{display:block;overflow-wrap:anywhere}.mobile-metric-row span{min-height:2.3em;color:var(--rc-text-muted);font-size:.46rem;font-weight:850;line-height:1.15;text-transform:uppercase;letter-spacing:.04em}.mobile-metric-row strong{margin-top:3px;font-size:.66rem;line-height:1.15}.mobile-composition-empty{margin:3px 0;color:var(--rc-text-muted);font-size:.56rem}
  html.mobile-app body.mobile-statistics .recovery-controls{margin-bottom:4px}.recovery-series-key button{min-height:30px!important;padding:3px!important}.events-disclosure{display:none}
  html.mobile-app body.mobile-statistics .mobile-recovery-overview .recovery-overview-card{display:grid;height:auto;min-height:0;grid-template-rows:auto auto clamp(390px,58vh,486px) auto;gap:5px;overflow:visible}
  html.mobile-app body.mobile-statistics .recovery-chart-shell{width:100%;height:100%!important;min-height:0;margin:0;padding:4px;overflow:hidden}.recovery-fixed-labels,.recovery-chart-viewport,.recovery-timeline-chart,.recovery-timeline-chart svg{height:100%!important;min-height:0}.recovery-chart-viewport{overflow-x:auto;overflow-y:hidden}.recovery-timeline-chart svg{display:block}
  html.mobile-app body.mobile-statistics .recovery-insights,html.mobile-app body.mobile-statistics .recovery-deep-detail{display:none!important}
  .mobile-recovery-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:5px;border-top:1px solid var(--rc-border);background:var(--rc-border)}.mobile-recovery-summary article{min-width:0;padding:10px 8px;background:var(--rc-surface);text-align:center}.mobile-recovery-summary span,.mobile-recovery-summary strong,.mobile-recovery-summary small{display:block}.mobile-recovery-summary span{min-height:2.3em;color:var(--rc-text-muted);font-size:.48rem;font-weight:850;line-height:1.15;text-transform:uppercase;letter-spacing:.06em}.mobile-recovery-summary strong{margin:4px 0 2px;color:var(--rc-primary);font-size:1.02rem}.mobile-recovery-summary small{color:var(--rc-text-muted);font-size:.46rem;line-height:1.25;overflow-wrap:anywhere}
  html.mobile-app body.mobile-statistics .fitness-trajectory-card{display:flex;width:100%;height:auto;min-height:0;flex-direction:column;align-self:start;overflow:hidden}
  html.mobile-app body.mobile-statistics .fitness-trajectory-card .fitness-snapshot{display:grid;flex:0 0 auto;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:4px 0 5px}
  html.mobile-app body.mobile-statistics .fitness-trajectory-card .fitness-snapshot article{min-width:0;padding:5px 4px;border-radius:7px}.fitness-trajectory-card .fitness-snapshot span{font-size:.42rem}.fitness-trajectory-card .fitness-snapshot strong{overflow:hidden;margin-top:2px;font-size:.58rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.fitness-trajectory-card .fitness-snapshot small{display:none}
  html.mobile-app body.mobile-statistics .fitness-trajectory-card .season-trajectory-chart{height:clamp(210px,34vh,300px);min-height:0;flex:0 0 auto;overflow-x:auto;overflow-y:hidden}.fitness-support-grid{display:contents}
  html.mobile-app body.mobile-statistics .fitness-support-card{padding:12px}.fitness-support-card h3{font-size:.9rem}.performance-evidence-list,.fitness-readiness-list{max-height:calc(100% - 42px);overflow:hidden}.performance-evidence-list article,.fitness-readiness-list article{padding:8px 0}.race-equivalent-row,.race-equivalent-head{font-size:.6rem}
}

@media (max-width:760px) and (min-height:701px){
  html.mobile-app body[data-view="month"] .month-card .portrait-day{min-height:clamp(49px,6vh,56px)!important;grid-template-rows:15px 21px!important;padding-block:6px!important}
}

@media (max-width:760px) and (max-height:700px){
  :root{--mobile-header:52px;--mobile-nav:58px;--mobile-gap:6px}
  html.mobile-app .app-header__inner{padding-bottom:7px}.mobile-home{grid-template-rows:190px 62px 145px minmax(0,1fr)}
  html.mobile-app #planbanner .plan-banner{min-height:42px;padding:5px 8px}
  html.mobile-app #planbanner:not(:empty)+#app .mobile-home{grid-template-rows:165px 56px 122px minmax(116px,1fr)}
  html.mobile-app #planbanner:not(:empty)+#app .mobile-home__next>span{display:none}
  html.mobile-app #planbanner:not(:empty)+#app .mobile-home__next small{grid-row:auto}
  .mobile-home__run{padding:12px}.mobile-home__run h2{margin:5px 0 8px;font-size:1.28rem}.mobile-home__run>p{margin-top:7px}.mobile-home__week{padding:8px}.mobile-home__week .mini-day{height:45px;min-height:45px}.mobile-home__next{margin-top:5px;padding-top:4px}
  html.mobile-app body[data-view="month"] .month-card .portrait-day{min-height:38px!important;grid-template-rows:12px 17px!important}
  html.mobile-app body.mobile-coaching main>.hero{height:70px;padding:9px 12px}.mobile-phase{grid-template-rows:minmax(0,1fr) auto minmax(0,1.15fr) minmax(0,.8fr)}
  html.mobile-app body.mobile-statistics .mobile-training-overview .primary-load-card{grid-template-rows:repeat(6,auto)}.mobile-training-bar{height:25px}.mobile-training-key{display:none}
}
@media (prefers-reduced-motion:reduce){.mobile-bottom-nav__link{transition:none!important}}
.mobile-training-bar .zone1,.mobile-training-key i.zone1{background:#6dafa3}.mobile-training-bar .zone2,.mobile-training-key i.zone2{background:#83c5a2}.mobile-training-bar .zone3,.mobile-training-key i.zone3{background:#75a9cb}.mobile-training-bar .zone4,.mobile-training-key i.zone4{background:#d7a34a}.mobile-training-bar .zone5,.mobile-training-key i.zone5{background:#df735b}
