.pwa-status{top:calc(env(safe-area-inset-top) + 8px);z-index:20;align-items:center;gap:var(--space-3);max-width:calc(100% - 32px);padding:var(--space-2) var(--space-4);font-size:var(--text-caption);color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border);pointer-events:auto;border-radius:999px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #1f262314}.pwa-status--offline{color:var(--color-text-secondary)}.pwa-status__actions{gap:var(--space-2);display:flex}.pwa-status__btn{min-height:32px;padding:0 var(--space-3);background:var(--color-surface-secondary);color:var(--color-text-primary);font-size:var(--text-caption);-webkit-tap-highlight-color:transparent;border-radius:999px}.pwa-status__btn--primary{background:var(--color-accent);color:#fff;font-weight:600}.pwa-status__dismiss{background:var(--color-surface-secondary);width:24px;height:24px;color:var(--color-text-secondary);font-size:var(--text-body);-webkit-tap-highlight-color:transparent;border-radius:50%;justify-content:center;align-items:center;display:flex}.bottom-nav{height:var(--bottom-nav-height);padding-bottom:env(safe-area-inset-bottom);background:var(--color-surface);border-top:1px solid var(--color-border);display:flex}.bottom-nav__item{min-height:44px;color:var(--color-text-muted);-webkit-tap-highlight-color:transparent;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;display:flex}.bottom-nav__icon{display:block}.bottom-nav__label{font-size:var(--text-tab);line-height:1.2}.bottom-nav__item--active{color:var(--color-accent);font-weight:600}.page{padding:calc(var(--space-4) + env(safe-area-inset-top)) var(--space-4) calc(var(--bottom-nav-height) + var(--space-6) + env(safe-area-inset-bottom))}.page-header{min-height:44px;margin-bottom:var(--space-4);align-items:center;display:flex}.page-header__side{flex:1;align-items:center;min-width:44px;display:flex}.page-header__side--actions{justify-content:flex-end}.page-header__title{font-size:var(--text-title);text-align:center;white-space:nowrap;flex:0 auto;font-weight:600}.page-header__back{width:44px;height:44px;margin-left:calc(var(--space-3) * -1);border-radius:var(--radius-small);color:var(--color-text-secondary);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;display:flex}.page-header__back:active{background:var(--color-surface-secondary)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-large);padding:var(--space-4)}.section{margin-top:var(--space-6)}.section__title{font-size:var(--text-section);color:var(--color-text-primary);margin-bottom:var(--space-3);font-weight:600}.log-date-nav{justify-content:center;align-items:center;gap:var(--space-2);display:flex}.log-date-nav__arrow{border-radius:var(--radius-small);width:44px;height:44px;color:var(--color-text-secondary);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;display:flex}.log-date-nav__arrow:active{background:var(--color-surface-secondary)}.log-date-nav__label{text-align:center;min-width:130px;font-size:var(--text-section);color:var(--color-text-primary);font-weight:600}.log-future-tip{margin-top:var(--space-4);font-size:var(--text-caption);color:var(--color-text-muted);text-align:center}.log-error{margin-top:var(--space-4);padding:var(--space-3);border-radius:var(--radius-medium);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--text-body);text-align:center}.log-saved-hint{margin-top:var(--space-3);font-size:var(--text-caption);color:var(--color-text-muted);text-align:center}.log-field{margin-top:var(--space-4)}.log-field:first-child{margin-top:0}.log-field__label{font-size:var(--text-caption);color:var(--color-text-secondary);display:block}.log-field__hint{margin-top:var(--space-1);font-size:var(--text-caption);color:var(--color-text-muted)}.log-field__row{align-items:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.log-field__row--end{justify-content:flex-end}.log-input{width:120px;min-height:44px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface-secondary);color:var(--color-text-primary);font-size:var(--text-body);font-variant-numeric:tabular-nums}.log-input--narrow{width:72px}.log-input:disabled{opacity:.5}.log-field__unit{font-size:var(--text-caption);color:var(--color-text-muted)}.log-save-btn,.log-clear-btn{min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-medium);font-size:var(--text-body);-webkit-tap-highlight-color:transparent;font-weight:600}.log-save-btn{background:var(--color-accent);color:#fff}.log-clear-btn{background:var(--color-surface-secondary);color:var(--color-text-secondary)}.log-save-btn:disabled,.log-clear-btn:disabled,.log-water-btn:disabled,.log-status-option:disabled,.log-menstrual-btn:disabled,.log-textarea:disabled{opacity:.5}.log-water-quick{gap:var(--space-2);margin-top:var(--space-2);display:flex}.log-water-btn{min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-medium);background:var(--color-surface-secondary);color:var(--color-text-primary);font-size:var(--text-body);-webkit-tap-highlight-color:transparent;font-weight:600}.log-water-btn:active{background:var(--color-border)}.log-status-group{margin-top:var(--space-4)}.log-status-group:first-child{margin-top:0}.log-status-options{gap:var(--space-2);margin-top:var(--space-2);grid-template-columns:repeat(2,1fr);display:grid}.log-status-option{border-radius:var(--radius-medium);background:var(--color-surface-secondary);min-height:48px;color:var(--color-text-primary);font-size:var(--text-body);-webkit-tap-highlight-color:transparent;word-break:break-word}.log-status-option--active{background:var(--color-accent);color:#fff;font-weight:600}.log-menstrual-btn{min-height:48px;margin-top:var(--space-3);padding:0 var(--space-5);border-radius:var(--radius-medium);background:var(--color-surface-secondary);color:var(--color-text-primary);font-size:var(--text-body);-webkit-tap-highlight-color:transparent;font-weight:600}.log-menstrual-btn:active{background:var(--color-border)}.log-textarea{width:100%;min-height:84px;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface-secondary);color:var(--color-text-primary);font-size:var(--text-body);resize:vertical;font-family:inherit;line-height:1.5}.log-status{align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);text-align:center;color:var(--color-text-secondary);flex-direction:column;display:flex}.log-status__retry{min-height:44px;padding:0 var(--space-5);border-radius:var(--radius-medium);background:var(--color-accent);color:#fff;-webkit-tap-highlight-color:transparent;font-weight:600}.meal-detail__status{padding:var(--space-8) var(--space-4);text-align:center;color:var(--color-text-secondary)}.meal-detail__name{font-size:var(--text-display);color:var(--color-text-primary);margin-bottom:var(--space-4);word-break:break-word;font-weight:600}.meal-detail__macros{gap:var(--space-6);flex-wrap:wrap;display:flex}.meal-detail__macro{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.meal-detail__macro-value{font-size:var(--text-title);color:var(--color-text-primary);font-variant-numeric:tabular-nums;font-weight:600}.meal-detail__macro-label{font-size:var(--text-caption);color:var(--color-text-secondary)}.meal-detail__ingredients{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.meal-detail__ingredient{justify-content:space-between;gap:var(--space-3);font-size:var(--text-body);color:var(--color-text-primary);display:flex}.meal-detail__ingredient-amount{color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.meal-detail__steps{padding-left:var(--space-5);gap:var(--space-2);font-size:var(--text-body);color:var(--color-text-primary);flex-direction:column;margin:0;line-height:1.6;display:flex}.meal-card__head{justify-content:space-between;align-items:center;display:flex}.meal-card__slot{font-size:var(--text-caption);color:var(--color-text-secondary);font-weight:600}.meal-card__status{font-size:var(--text-caption);color:var(--color-text-muted)}.meal-card__status--completed,.meal-card__status--replaced{color:var(--color-success)}.meal-card__name{margin-top:var(--space-1);font-size:var(--text-section);color:var(--color-text-primary);word-break:break-word;font-weight:600}.meal-card__original{margin-top:var(--space-1);font-size:var(--text-caption);color:var(--color-text-muted)}.meal-card__nutrition{margin-top:var(--space-1);font-size:var(--text-body);color:var(--color-text-secondary)}.meal-card__ingredients{margin-top:var(--space-1);font-size:var(--text-caption);color:var(--color-text-muted);word-break:break-word;line-height:1.5}.meal-card__actions{align-items:center;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.meal-card__primary{min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-medium);background:var(--color-accent);color:#fff;-webkit-tap-highlight-color:transparent;font-weight:600}.meal-card__primary:disabled,.meal-card__more:disabled,.meal-card__menu-item:disabled{opacity:.5}.meal-card__ghost{align-items:center;gap:var(--space-1);min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-medium);color:var(--color-text-secondary);-webkit-tap-highlight-color:transparent;font-weight:500;display:inline-flex}.meal-card__ghost:active{background:var(--color-surface-secondary)}.meal-card__menu{gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);grid-template-columns:repeat(2,1fr);display:grid}.meal-card__menu-item{border-radius:var(--radius-medium);background:var(--color-surface-secondary);min-height:44px;color:var(--color-text-primary);font-size:var(--text-body);-webkit-tap-highlight-color:transparent}.meal-card__menu-item:active{background:var(--color-border)}.meal-card__unavailable{margin-top:var(--space-2);font-size:var(--text-body);color:var(--color-text-secondary)}.replacement-backdrop{z-index:30;background:#1f262366;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.replacement-sheet{width:100%;max-width:var(--shell-max-width);background:var(--color-surface);border-radius:var(--radius-large) var(--radius-large) 0 0;padding:var(--space-5) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom))}.replacement-sheet__title{font-size:var(--text-title);color:var(--color-text-primary);font-weight:600}.replacement-sheet__current{margin-top:var(--space-1);font-size:var(--text-caption);color:var(--color-text-secondary)}.replacement-sheet__list{gap:var(--space-2);margin-top:var(--space-4);flex-direction:column;display:flex}.replacement-sheet__empty{padding:var(--space-4) 0;text-align:center;font-size:var(--text-body);color:var(--color-text-secondary)}.replacement-sheet__item{gap:var(--space-1);min-height:56px;padding:var(--space-3);border-radius:var(--radius-medium);background:var(--color-surface-secondary);text-align:left;-webkit-tap-highlight-color:transparent;flex-direction:column;display:flex}.replacement-sheet__item:active{background:var(--color-border)}.replacement-sheet__item:disabled{opacity:.5}.replacement-sheet__item-name{font-size:var(--text-body);color:var(--color-text-primary);font-weight:600}.replacement-sheet__item-nutrition{font-size:var(--text-caption);color:var(--color-text-secondary)}.replacement-sheet__cancel{width:100%;min-height:44px;margin-top:var(--space-4);border-radius:var(--radius-medium);background:var(--color-surface-secondary);color:var(--color-text-primary);-webkit-tap-highlight-color:transparent;font-weight:600}.meals-date-nav{justify-content:center;align-items:center;gap:var(--space-2);display:flex}.meals-date-nav__arrow{border-radius:var(--radius-small);width:44px;height:44px;color:var(--color-text-secondary);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;display:flex}.meals-date-nav__arrow:active{background:var(--color-surface-secondary)}.meals-date-nav__label{text-align:center;min-width:120px;font-size:var(--text-section);color:var(--color-text-primary);font-weight:600}.meals-summary{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.meals-summary__item{gap:var(--space-1);flex-direction:column;display:flex}.meals-summary__label{font-size:var(--text-caption);color:var(--color-text-secondary)}.meals-summary__value{font-size:var(--text-body);color:var(--color-text-primary);font-variant-numeric:tabular-nums;font-weight:600}.meals-list{gap:var(--space-3);margin-top:var(--space-4);flex-direction:column;display:flex}.meals-empty{font-size:var(--text-body);color:var(--color-text-secondary)}.meals-future-tip{margin-top:var(--space-4);font-size:var(--text-caption);color:var(--color-text-muted);text-align:center}.meals-mutation-error{margin-top:var(--space-4);padding:var(--space-3);border-radius:var(--radius-medium);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--text-body);text-align:center}.meals-status{align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);text-align:center;color:var(--color-text-secondary);flex-direction:column;display:flex}.meals-status__retry{min-height:44px;padding:0 var(--space-5);border-radius:var(--radius-medium);background:var(--color-accent);color:#fff;-webkit-tap-highlight-color:transparent;font-weight:600}.settings-placeholder{font-size:var(--text-caption);color:var(--color-text-muted)}.settings-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;font-size:var(--text-body);display:flex}.settings-row__label{color:var(--color-text-primary)}.settings-row__value{color:var(--color-text-secondary)}.settings-install-btn{width:100%;min-height:48px;margin-top:var(--space-3);border-radius:var(--radius-medium);background:var(--color-accent);color:#fff;font-size:var(--text-body);-webkit-tap-highlight-color:transparent;font-weight:600}.settings-hint{margin-top:var(--space-3);font-size:var(--text-caption);color:var(--color-text-secondary);line-height:1.7}.settings-hint--important{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-border);color:var(--color-text-muted)}.empty-state{padding:var(--space-3) 0}.empty-state__title{font-size:var(--text-body);color:var(--color-text-primary);font-weight:600}.empty-state__description{margin-top:var(--space-1);font-size:var(--text-caption);color:var(--color-text-secondary);line-height:1.6}.progress-bar{background:var(--color-surface-secondary);border-radius:999px;width:100%;height:6px;overflow:hidden}.progress-bar__fill{background:var(--color-accent);border-radius:999px;height:100%;transition:width .2s}.metric-card{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.metric-card__label{font-size:var(--text-caption);color:var(--color-text-secondary)}.metric-card__value{font-size:var(--text-body);color:var(--color-text-primary);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.metric-card__current{font-size:var(--text-title)}.metric-card__target{font-size:var(--text-caption);color:var(--color-text-muted);font-weight:400}.today-header-action{border-radius:var(--radius-small);width:44px;height:44px;color:var(--color-text-secondary);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;display:flex}.today-header-action:active{background:var(--color-surface-secondary)}.today-date{margin-top:var(--space-2);font-size:var(--text-caption);color:var(--color-text-secondary)}.today-plan-day{margin-top:var(--space-1);font-size:var(--text-section);color:var(--color-text-primary);font-weight:600}.today-weight-card{margin-top:var(--space-5)}.today-weight-card__label{font-size:var(--text-body);color:var(--color-text-secondary)}.today-weight-card__value{margin-top:var(--space-1);color:var(--color-text-primary);font-variant-numeric:tabular-nums;font-size:2.75rem;font-weight:700;line-height:1.1}.today-weight-card__unit{font-size:var(--text-body);color:var(--color-text-muted);font-weight:500}.today-weight-card__meta{margin-top:var(--space-1);font-size:var(--text-caption);color:var(--color-text-muted)}.today-weight-card .progress-bar{margin-top:var(--space-3)}.today-weight-card__progress{margin-top:var(--space-2);font-size:var(--text-caption);color:var(--color-text-secondary)}.today-targets{row-gap:var(--space-5);column-gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.today-targets .metric-card__current{font-size:var(--text-title)}.today-workout__name{font-size:var(--text-body);color:var(--color-text-primary);font-weight:600}.today-workout__meta{margin-top:var(--space-1);font-size:var(--text-caption);color:var(--color-text-muted)}.today-workout__primary{width:100%;min-height:48px;margin-top:var(--space-3);border-radius:var(--radius-medium);background:var(--color-accent);color:#fff;font-size:var(--text-body);-webkit-tap-highlight-color:transparent;font-weight:600}.today-workout__primary:disabled{opacity:.6}.today-workout__error{margin-top:var(--space-2);font-size:var(--text-caption);color:var(--color-accent)}.today-status-log{gap:var(--space-2);flex-direction:column;display:flex}.today-status-log__item{font-size:var(--text-body);color:var(--color-text-primary)}.today-log-link{align-items:center;gap:var(--space-1);margin-top:var(--space-3);min-height:44px;font-size:var(--text-body);color:var(--color-accent);-webkit-tap-highlight-color:transparent;font-weight:600;display:inline-flex}.today-meal-summary__count{font-size:var(--text-body);color:var(--color-text-primary);font-weight:600}.today-meal-summary__slots{margin:var(--space-3) 0 0;gap:var(--space-2) var(--space-4);grid-template-columns:repeat(2,1fr);padding:0;list-style:none;display:grid}.today-meal-summary__slot{justify-content:space-between;gap:var(--space-2);font-size:var(--text-body);color:var(--color-text-primary);display:flex}.today-meal-summary__status{color:var(--color-text-muted);font-size:var(--text-caption)}.today-meal-summary__link{align-items:center;gap:var(--space-1);margin-top:var(--space-3);min-height:44px;font-size:var(--text-body);color:var(--color-accent);-webkit-tap-highlight-color:transparent;font-weight:600;display:inline-flex}.today-status{align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);text-align:center;color:var(--color-text-secondary);flex-direction:column;display:flex}.today-status__retry{min-height:44px;padding:0 var(--space-5);border-radius:var(--radius-medium);background:var(--color-accent);color:#fff;-webkit-tap-highlight-color:transparent;font-weight:600}.today-refresh-error{margin-top:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-medium);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--text-caption);text-align:center}.today-status__retry:active{opacity:.85}.waist-chart{width:100%}.waist-chart-empty{padding:var(--space-5) var(--space-4);text-align:center;color:var(--color-text-secondary)}.waist-chart-empty__hint{margin-top:var(--space-1);font-size:var(--text-caption);color:var(--color-text-muted)}.waist-chart__summary{margin-top:var(--space-2);font-size:var(--text-caption);color:var(--color-text-muted);line-height:1.6}.waist-chart-tooltip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-small);padding:var(--space-2) var(--space-3);font-size:var(--text-caption);color:var(--color-text-primary)}.weight-chart{width:100%}.weight-chart-empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--color-text-secondary)}.weight-chart-single{padding:var(--space-4) 0;text-align:center;color:var(--color-text-primary)}.weight-chart-single__hint{margin-top:var(--space-1);font-size:var(--text-caption);color:var(--color-text-muted)}.weight-chart__legend{align-items:center;gap:var(--space-4);margin-top:var(--space-2);font-size:var(--text-caption);color:var(--color-text-muted);display:flex}.weight-chart__legend-item{align-items:center;gap:var(--space-1);display:inline-flex}.weight-chart__legend-item:before{content:"";border-radius:2px;width:14px;height:3px;display:inline-block}.weight-chart__legend-item--raw:before{background:var(--color-text-muted)}.weight-chart__legend-item--avg:before{background:var(--color-accent)}.weight-chart__legend-item--period:before{background:var(--color-accent-soft);height:10px}.weight-chart__summary{margin-top:var(--space-2);font-size:var(--text-caption);color:var(--color-text-muted);line-height:1.6}.weight-chart-tooltip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-small);padding:var(--space-2) var(--space-3);font-size:var(--text-caption);color:var(--color-text-primary)}.weight-chart-tooltip__date{margin-bottom:var(--space-1);font-weight:600}.trends-progress__numbers{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.trends-progress__col{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.trends-progress__label{font-size:var(--text-caption);color:var(--color-text-secondary)}.trends-progress__value{font-size:var(--text-title);color:var(--color-text-primary);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.trends-progress__arrow{color:var(--color-text-muted);font-size:var(--text-title)}.trends-progress .progress-bar{margin-top:var(--space-3)}.trends-progress__percent{margin-top:var(--space-2);font-size:var(--text-caption);color:var(--color-text-secondary)}.trends-range-tabs{gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.trends-range-tab{border-radius:var(--radius-medium);background:var(--color-surface-secondary);min-height:44px;color:var(--color-text-secondary);font-size:var(--text-body);-webkit-tap-highlight-color:transparent;flex:1}.trends-range-tab--active{background:var(--color-accent);color:#fff;font-weight:600}.trends-data-quality{margin-top:var(--space-2);font-size:var(--text-caption);color:var(--color-text-muted)}.trends-week-empty{font-size:var(--text-body);color:var(--color-text-secondary)}.trends-week__cols{justify-content:space-between;gap:var(--space-4);display:flex}.trends-week__samples{font-size:var(--text-caption);color:var(--color-text-muted)}.trends-week__change{margin-top:var(--space-3);font-size:var(--text-title);color:var(--color-accent);font-variant-numeric:tabular-nums;font-weight:700}.trends-waist-empty{font-size:var(--text-body);color:var(--color-text-secondary)}.trends-waist-numbers{justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-3);display:flex}.trends-adherence{gap:var(--space-4);flex-direction:column;display:flex}.trends-adherence__head{margin-bottom:var(--space-1);justify-content:space-between;align-items:center;display:flex}.trends-adherence__label{font-size:var(--text-body);color:var(--color-text-primary);font-weight:600}.trends-adherence__value{font-size:var(--text-body);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.trends-rate{font-size:var(--text-title);color:var(--color-text-primary);font-variant-numeric:tabular-nums;font-weight:700}.trends-rate__status{margin-top:var(--space-1);font-size:var(--text-body);color:var(--color-accent);font-weight:600}.trends-rate__tip{margin-top:var(--space-2);font-size:var(--text-caption);color:var(--color-text-secondary);line-height:1.6}.trends-rate__weeks{margin-top:var(--space-1);font-size:var(--text-caption);color:var(--color-text-muted)}.trends-projection{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.trends-projection__title{font-size:var(--text-body);color:var(--color-text-primary);font-weight:600}.trends-projection__disclaimer{margin-top:var(--space-1);font-size:var(--text-caption);color:var(--color-text-muted);line-height:1.6}.trends-period-tip{font-size:var(--text-body);color:var(--color-text-secondary);line-height:1.6}.trends-status{align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);text-align:center;color:var(--color-text-secondary);flex-direction:column;display:flex}.trends-status__retry{min-height:44px;padding:0 var(--space-5);border-radius:var(--radius-medium);background:var(--color-accent);color:#fff;-webkit-tap-highlight-color:transparent;font-weight:600}.session-page{max-width:var(--shell-max-width);min-height:100vh;padding:calc(var(--space-4) + env(safe-area-inset-top)) var(--space-4) calc(var(--space-8) + env(safe-area-inset-bottom));background:var(--color-background);margin:0 auto}.session-page__status{padding:var(--space-8) var(--space-4);text-align:center;color:var(--color-text-secondary)}.session-page__back{margin:var(--space-4) auto 0;min-height:44px;padding:0 var(--space-5);border-radius:var(--radius-medium);background:var(--color-accent);color:#fff;font-weight:600;display:block}.session-header{align-items:center;gap:var(--space-3);display:flex}.session-header__exit{align-items:center;gap:var(--space-1);min-height:44px;padding:0 var(--space-2);border-radius:var(--radius-small);color:var(--color-text-secondary);font-size:var(--text-caption);-webkit-tap-highlight-color:transparent;display:inline-flex}.session-header__exit:active{background:var(--color-surface-secondary)}.session-header__name{text-align:center;font-size:var(--text-title);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:600;overflow:hidden}.session-progress{margin-top:var(--space-5);font-size:var(--text-body);color:var(--color-text-secondary);text-align:center}.session-error{margin-top:var(--space-3);padding:var(--space-3);border-radius:var(--radius-medium);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--text-body);text-align:center}.session-current{margin-top:var(--space-6);text-align:center;flex-direction:column;align-items:center;display:flex}.session-current__position{font-size:var(--text-caption);color:var(--color-text-muted)}.session-current__name{margin-top:var(--space-2);font-size:var(--text-display);color:var(--color-text-primary);word-break:break-word;font-weight:700}.session-current__target{margin-top:var(--space-2);font-size:var(--text-section);color:var(--color-text-secondary)}.session-load{align-items:center;gap:var(--space-4);margin-top:var(--space-5);display:flex}.session-load__btn{border-radius:var(--radius-medium);background:var(--color-surface);border:1px solid var(--color-border);width:48px;height:48px;color:var(--color-text-primary);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;display:flex}.session-load__btn:active{background:var(--color-surface-secondary)}.session-load__value{text-align:center;min-width:72px;font-size:var(--text-title);color:var(--color-text-primary);font-variant-numeric:tabular-nums;font-weight:600}.session-current__set{margin-top:var(--space-4);font-size:var(--text-section);color:var(--color-text-primary);font-weight:600}.session-rest{margin-top:var(--space-4);align-items:center;gap:var(--space-1);flex-direction:column;display:flex}.session-rest__label{font-size:var(--text-caption);color:var(--color-text-muted)}.session-rest__clock{color:var(--color-accent);font-variant-numeric:tabular-nums;font-size:2.5rem;font-weight:700}.session-rest__skip{min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-medium);background:var(--color-surface-secondary);color:var(--color-text-primary);font-size:var(--text-body);-webkit-tap-highlight-color:transparent}.session-complete-set{width:100%;min-height:64px;margin-top:var(--space-6);border-radius:var(--radius-large);background:var(--color-accent);color:#fff;font-size:var(--text-title);-webkit-tap-highlight-color:transparent;font-weight:700}.session-complete-set:disabled{opacity:.6}.session-nav{gap:var(--space-3);width:100%;margin-top:var(--space-3);display:flex}.session-nav__btn{border-radius:var(--radius-medium);background:var(--color-surface);border:1px solid var(--color-border);min-height:44px;color:var(--color-text-secondary);font-size:var(--text-body);-webkit-tap-highlight-color:transparent;flex:1}.session-nav__btn:disabled{opacity:.4}.session-tip{margin-top:var(--space-6);font-size:var(--text-caption);color:var(--color-text-muted);text-align:center}.session-actions{margin-top:var(--space-4);justify-content:center;display:flex}.session-finish{min-height:44px;padding:0 var(--space-6);border-radius:var(--radius-medium);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--text-body);-webkit-tap-highlight-color:transparent}.session-page--finished{justify-content:center;align-items:center;display:flex}.session-complete{text-align:center;width:100%}.session-complete__title{font-size:var(--text-display);color:var(--color-accent);font-weight:700}.session-complete__name{margin-top:var(--space-2);font-size:var(--text-title);color:var(--color-text-primary);font-weight:600}.session-complete__stats{gap:var(--space-3);margin-top:var(--space-6);grid-template-columns:repeat(3,1fr);display:grid}.session-complete__stat{gap:var(--space-1);flex-direction:column;display:flex}.session-complete__value{font-size:var(--text-title);color:var(--color-text-primary);font-variant-numeric:tabular-nums;font-weight:600}.session-complete__label{font-size:var(--text-caption);color:var(--color-text-muted)}.session-difficulty{margin-top:var(--space-6)}.session-difficulty__question{font-size:var(--text-section);color:var(--color-text-primary);font-weight:600}.session-difficulty__options{gap:var(--space-2);margin-top:var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}.session-difficulty__option{border-radius:var(--radius-medium);background:var(--color-surface);border:1px solid var(--color-border);min-height:48px;color:var(--color-text-primary);font-size:var(--text-body);-webkit-tap-highlight-color:transparent}.session-difficulty__option:active{background:var(--color-surface-secondary)}.session-complete__difficulty{margin-top:var(--space-4);font-size:var(--text-body);color:var(--color-text-secondary)}.session-complete__done{min-height:48px;margin-top:var(--space-6);padding:0 var(--space-6);border-radius:var(--radius-medium);background:var(--color-accent);color:#fff;-webkit-tap-highlight-color:transparent;font-weight:600}.workouts-week{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.workouts-week__day{align-items:center;gap:var(--space-3);grid-template-columns:44px 1fr auto;min-height:44px;display:grid}.workouts-week__day--today{background:var(--color-accent-soft);border-radius:var(--radius-medium);padding:var(--space-1) var(--space-2);margin:calc(var(--space-1) * -1) calc(var(--space-2) * -1)}.workouts-week__label{font-size:var(--text-body);color:var(--color-text-primary);font-weight:600}.workouts-week__name{font-size:var(--text-body);color:var(--color-text-primary);word-break:break-word}.workouts-week__status{font-size:var(--text-caption);color:var(--color-text-muted);white-space:nowrap}.workouts-today-recovery{font-size:var(--text-body);color:var(--color-text-primary);font-weight:600;line-height:1.6}.workouts-today-recovery__sub{color:var(--color-text-secondary);font-weight:400}.workouts-today-missing,.workouts-empty{font-size:var(--text-body);color:var(--color-text-secondary)}.workouts-today__name{font-size:var(--text-section);color:var(--color-text-primary);word-break:break-word;font-weight:600}.workouts-today__meta{margin-top:var(--space-1);font-size:var(--text-caption);color:var(--color-text-muted)}.workouts-today__status{margin-top:var(--space-2);font-size:var(--text-body);color:var(--color-text-secondary)}.workouts-today__primary{width:100%;min-height:48px;margin-top:var(--space-4);border-radius:var(--radius-medium);background:var(--color-accent);color:#fff;font-size:var(--text-body);-webkit-tap-highlight-color:transparent;font-weight:600}.workouts-today__primary:disabled{opacity:.6}.workouts-error{margin-top:var(--space-3);padding:var(--space-3);border-radius:var(--radius-medium);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--text-body);text-align:center}.workouts-exercises{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.workouts-exercises__item{justify-content:space-between;gap:var(--space-3);font-size:var(--text-body);color:var(--color-text-primary);display:flex}.workouts-exercises__target{color:var(--color-text-secondary);white-space:nowrap}.workouts-exercises__total{margin-top:var(--space-3);font-size:var(--text-caption);color:var(--color-text-muted)}.workouts-status{align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);text-align:center;color:var(--color-text-secondary);flex-direction:column;display:flex}.workouts-status__retry{min-height:44px;padding:0 var(--space-5);border-radius:var(--radius-medium);background:var(--color-accent);color:#fff;-webkit-tap-highlight-color:transparent;font-weight:600}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-bottom:calc(var(--bottom-nav-height) + var(--space-6) + env(safe-area-inset-bottom))}body{background:var(--color-background);color:var(--color-text-primary);font-family:var(--font-family-base);font-size:var(--text-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.5}h1,h2,h3,p{margin:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}a{color:inherit;text-decoration:none}#root{min-height:100vh}:root{--color-background:#f5f6f4;--color-surface:#fff;--color-surface-secondary:#eef1ed;--color-text-primary:#1f2623;--color-text-secondary:#5b6660;--color-text-muted:#6f7b73;--color-border:#e4e8e3;--color-accent:#357a5c;--color-accent-soft:#e6f1ea;--color-success:#2e9e6b;--color-warning:#d9903f;--font-family-base:-apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--text-display:1.75rem;--text-title:1.375rem;--text-section:1.0625rem;--text-body:.9375rem;--text-caption:.8125rem;--text-metric:2rem;--text-tab:.75rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--radius-small:8px;--radius-medium:12px;--radius-large:16px;--shell-max-width:560px;--bottom-nav-height:62px}.app-shell{max-width:var(--shell-max-width);background:var(--color-background);min-height:100vh;margin:0 auto}.app-shell__bottom{z-index:10;pointer-events:none;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.app-shell__bottom-inner{width:100%;max-width:var(--shell-max-width);pointer-events:auto}
