.app-content { max-width:1460px; min-width:0; }
.app-dashboard-link { padding:9px 15px; border:1px solid rgba(183,220,105,.2); border-radius:999px; color:#dfe8ce; background:rgba(183,220,105,.07); text-decoration:none; font-size:.75rem; font-weight:700; }
.app-page-head { display:flex; align-items:end; justify-content:space-between; gap:25px; margin-bottom:25px; }
.app-page-head h1 { margin:5px 0 5px; font-size:clamp(2.2rem,4.5vw,4rem); line-height:.98; letter-spacing:-.05em; }
.app-page-head p:last-child { max-width:650px; margin:0; color:#8b9186; }
.app-section { min-width:0; margin-bottom:20px; }
.app-section-heading { display:flex; align-items:end; justify-content:space-between; gap:15px; margin-bottom:12px; }
.app-section-heading h2 { margin:4px 0 0; font-size:1.25rem; }
.app-section-heading > span { color:#73796e; font-size:.67rem; }
.app-grid { display:grid; gap:14px; }
.app-grid-2 { grid-template-columns:1fr 1fr; }
.app-grid-3 { grid-template-columns:repeat(3,1fr); }
.app-panel { min-width:0; padding:21px; border:1px solid rgba(183,220,105,.15); border-radius:17px; background:linear-gradient(145deg,rgba(183,220,105,.035),transparent 45%),rgba(22,24,20,.86); box-shadow:0 16px 48px rgba(0,0,0,.16); }
.app-panel h2,.app-panel h3 { margin:4px 0 0; }
.app-muted { color:#7e8479; }
.app-pill { display:inline-flex; align-items:center; padding:5px 9px; border:1px solid rgba(183,220,105,.16); border-radius:999px; color:#b7dc69; background:rgba(183,220,105,.08); font-size:.61rem; font-weight:700; }
.app-button { display:inline-flex; align-items:center; justify-content:center; gap:15px; min-height:43px; padding:0 17px; border:0; border-radius:999px; color:#172016; background:#b7dc69; text-decoration:none; font-size:.75rem; font-weight:800; }
.app-button:hover { color:#172016; background:#c7e888; border:0; }
.app-button-secondary { color:#d9e3c8; background:rgba(183,220,105,.07); border:1px solid rgba(183,220,105,.2); }
.app-button-secondary:hover { color:#fff; background:rgba(183,220,105,.12); border-color:rgba(183,220,105,.3); }
.app-empty-action { width:100%; min-height:56px; border:1px dashed rgba(183,220,105,.25); border-radius:12px; color:#98b166; background:rgba(183,220,105,.025); font-size:.72rem; font-weight:700; }
.app-linear { height:7px; overflow:hidden; border-radius:99px; background:rgba(255,255,255,.07); }
.app-linear span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#809e4d,#b7dc69); }

/* Training */
.training-layout { grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr); }
.training-session-head { display:flex; align-items:start; justify-content:space-between; gap:14px; margin-bottom:18px; }
.training-session-head h2 { font-size:1.35rem; }
.training-meta { display:flex; flex-wrap:wrap; gap:7px; margin-top:8px; color:#747a70; font-size:.65rem; }
.exercise-list { display:grid; gap:7px; }
.exercise-row { display:grid; grid-template-columns:34px minmax(0,1fr) repeat(3,64px) 28px; align-items:center; gap:9px; min-height:58px; padding:8px 10px; border:1px solid rgba(255,255,255,.055); border-radius:11px; background:rgba(255,255,255,.02); }
.exercise-number { display:grid; place-items:center; width:28px; height:28px; border-radius:8px; color:#b7dc69; background:rgba(183,220,105,.08); font-size:.63rem; font-weight:800; }
.exercise-name strong,.exercise-name small { display:block; }
.exercise-name strong { font-size:.74rem; }
.exercise-name small { margin-top:2px; color:#6b7167; font-size:.59rem; }
.exercise-metric { text-align:center; }
.exercise-metric span,.exercise-metric strong { display:block; }
.exercise-metric span { color:#62685e; font-size:.5rem; text-transform:uppercase; }
.exercise-metric strong { margin-top:2px; font-size:.69rem; }
.exercise-check { width:25px; height:25px; padding:0; border:1px solid rgba(183,220,105,.2); border-radius:7px; color:#b7dc69; background:rgba(183,220,105,.06); }
.week-schedule { display:grid; gap:8px; margin-top:17px; }
.week-day { display:flex; align-items:center; gap:11px; padding:11px; border-radius:10px; background:rgba(255,255,255,.023); }
.week-day > span { width:34px; color:#68705f; font-size:.59rem; font-weight:700; text-transform:uppercase; }
.week-day div { flex:1; }
.week-day strong,.week-day small { display:block; }
.week-day strong { font-size:.72rem; }
.week-day small { margin-top:2px; color:#686e64; font-size:.58rem; }
.week-day i { width:7px; height:7px; border-radius:50%; background:#59604f; }
.week-day.is-done i { background:#b7dc69; }
.recent-workouts { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.recent-workout { padding:15px; border:1px solid rgba(255,255,255,.06); border-radius:12px; background:rgba(255,255,255,.02); }
.recent-workout span,.recent-workout small,.recent-workout strong { display:block; }
.recent-workout span { color:#7b8176; font-size:.58rem; }
.recent-workout strong { margin:5px 0; font-size:.8rem; }
.recent-workout small { color:#687063; font-size:.58rem; }

/* Programs */
[data-programs-page] [hidden] { display:none !important; }
.program-owned-grid,.program-market-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:14px; }
.program-card { position:relative; display:flex; min-height:310px; flex-direction:column; overflow:hidden; border:1px solid rgba(183,220,105,.16); border-radius:17px; color:#fff; background:rgba(21,23,19,.88); text-decoration:none; }
.program-card:hover { color:#fff; border-color:rgba(183,220,105,.35); transform:translateY(-2px); }
.program-card-visual { height:155px; overflow:hidden; background:radial-gradient(circle at 50% 100%,rgba(183,220,105,.16),transparent 56%),#171a15; }
.program-card-visual img { width:100%; height:145%; object-fit:contain; object-position:center 10%; transition:transform .25s ease; }
.program-card-visual img.program-card-cover--wide { height:100%; object-fit:cover; object-position:center; }
.program-card:hover img { transform:scale(1.045); }
.program-card-body { flex:1; display:flex; flex-direction:column; padding:16px; }
.program-card-body h3 { margin:4px 0 5px; font-size:1rem; }
.program-card-body p { margin:0 0 14px; color:#7b8176; font-size:.65rem; }
.program-hover-details { display:grid; grid-template-columns:1fr 1fr; gap:6px; max-height:0; margin:0; overflow:hidden; opacity:0; transform:translateY(-5px); transition:max-height .28s ease,opacity .22s ease,transform .22s ease,margin .22s ease; }
.program-hover-details span { padding:6px 7px; border-radius:8px; color:#72796c; background:rgba(255,255,255,.025); font-size:.68rem; white-space:nowrap; }
.program-hover-details b { color:#cbd1c5; font-weight:600; }
.program-card:hover .program-hover-details,.program-card:focus-within .program-hover-details,.program-card:focus .program-hover-details { max-height:130px; margin:0 0 13px; opacity:1; transform:translateY(0); }
.program-card-meta { display:flex; justify-content:space-between; color:#858b80; font-size:.59rem; }
.program-card .app-linear { margin:8px 0 5px; }
.program-card-progress { color:#a7c472; font-size:.58rem; }
.program-card-cta { display:flex; justify-content:space-between; margin-top:auto; padding-top:14px; color:#b7dc69; font-size:.66rem; font-weight:700; }
.program-card.is-locked { filter:saturate(.3); border-color:rgba(255,255,255,.08); }
.program-card.is-locked .program-card-visual img { opacity:.48; filter:grayscale(1); }
.program-lock { position:absolute; top:14px; right:14px; z-index:2; display:grid; place-items:center; width:32px; height:32px; border:1px solid rgba(255,255,255,.12); border-radius:50%; background:rgba(9,10,8,.75); font-size:.8rem; }
.program-price { color:#e1e4dc; font-size:.83rem; font-weight:800; }
.program-owned-grid-single { grid-template-columns:minmax(280px,480px); }
.program-market-grid--single { grid-template-columns:minmax(280px,480px); }
.program-test-badge { position:absolute; top:14px; left:14px; z-index:2; padding:6px 10px; border:1px solid rgba(183,220,105,.28); border-radius:999px; color:#dff5b6; background:rgba(13,17,10,.88); font-size:.57rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.program-card-progress b { color:#dfe8ce; font-weight:700; }
.program-detail-actions { display:flex; align-items:center; gap:12px; }
.program-detail-actions button:disabled { cursor:not-allowed; opacity:.58; }
.program-abandon { min-height:40px; padding:0 13px; border:1px solid rgba(220,120,120,.17); border-radius:999px; color:#c98686; background:rgba(160,70,70,.05); font-size:.64rem; font-weight:700; }
.program-detail-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:14px; }
.program-progress-top { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:17px; }
.program-progress-top h2 { font-size:1.35rem; }
.program-progress-top > strong { color:#b7dc69; font-size:.72rem; }
.program-progress-facts { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:14px; color:#747b70; font-size:.61rem; }
.program-next-panel p { margin:7px 0 15px; color:#81877d; font-size:.68rem; }
.program-session-meta { display:flex; flex-wrap:wrap; gap:7px; }
.program-session-meta span { padding:6px 8px; border-radius:8px; color:#929b88; background:rgba(255,255,255,.035); font-size:.56rem; }
.program-week-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.program-session-row { display:grid; grid-template-columns:34px minmax(0,1fr); gap:10px; min-height:112px; padding:15px; border:1px solid rgba(255,255,255,.065); border-radius:13px; background:rgba(22,24,20,.78); }
.program-session-row > span { display:grid; place-items:center; width:31px; height:31px; border-radius:9px; color:#77806e; background:rgba(255,255,255,.04); font-size:.65rem; font-weight:800; }
.program-session-row strong,.program-session-row small,.program-session-row b { display:block; }
.program-session-row strong { font-size:.72rem; }
.program-session-row small { margin-top:4px; color:#686f65; font-size:.55rem; line-height:1.35; }
.program-session-row b { grid-column:2; align-self:end; color:#6f756a; font-size:.54rem; }
.program-session-row.is-current { border-color:rgba(183,220,105,.38); background:linear-gradient(145deg,rgba(183,220,105,.08),transparent),rgba(22,24,20,.88); }
.program-session-row.is-current > span { color:#172016; background:#b7dc69; }
.program-session-row.is-current b,.program-session-row.is-done b { color:#b7dc69; }
.program-session-row.is-done > span { color:#b7dc69; background:rgba(183,220,105,.1); }
.program-principles p { margin-bottom:0; font-size:.63rem; line-height:1.55; }

/* Progress */
.progress-metrics { display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin-bottom:14px; }
.progress-metric { padding:16px; border:1px solid rgba(183,220,105,.12); border-radius:14px; background:rgba(22,24,20,.84); }
.progress-metric--ratio { background:linear-gradient(145deg,rgba(183,220,105,.08),transparent 60%),rgba(22,24,20,.88); }
.progress-metric span,.progress-metric strong,.progress-metric small { display:block; }
.progress-metric span { color:#737a6e; font-size:.59rem; }
.progress-metric strong { margin:6px 0; font-size:1.25rem; }
.progress-metric strong i { color:#777d72; font-size:.6rem; font-style:normal; }
.progress-metric small { color:#9db66c; font-size:.56rem; }
.progress-chart-grid { grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); }
.progress-chart-top { display:flex; align-items:stretch; flex-direction:column; gap:16px; margin-bottom:8px; }
.progress-chart-top .app-section-heading { margin-bottom:0; }
.progress-range-filter { display:flex; align-items:center; flex-wrap:wrap; gap:7px; }
.progress-range-filter button { min-height:34px; display:inline-flex; align-items:center; justify-content:center; padding:0 12px; border:1px solid rgba(255,255,255,.085); border-radius:999px; color:#8a9085; background:rgba(12,14,11,.48); font:inherit; font-size:.62rem; font-weight:800; cursor:pointer; }
.progress-range-filter button.is-active { color:#fff; border-color:#4f7fbd; background:#4f7fbd; }
.progress-range-filter button span { display:inline-flex; align-items:center; flex:0 0 auto; margin-left:4px; font-size:.58rem; line-height:0; }
.progress-range-filter button span .pro-lock-icon { width:13px; height:13px; }
.membership-pro .progress-range-filter button span { display:none; }
.membership-free .progress-range-filter button:not(.is-active) { color:#798aa2; background:rgba(79,127,189,.06); }
.progress-chart-tabs { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:8px; }
.progress-chart-tabs button { min-height:51px; display:flex; align-items:center; gap:9px; padding:6px 14px 6px 7px; border:1px solid rgba(255,255,255,.085); border-radius:999px; color:#8a9085; background:rgba(12,14,11,.48); text-align:left; white-space:nowrap; transition:border-color .18s,background .18s,color .18s,transform .18s; }
.progress-chart-tabs button:hover { color:#e2e6dd; border-color:rgba(183,220,105,.25); transform:translateY(-1px); }
.progress-chart-tabs button.is-active { color:#f1f4ec; border-color:rgba(183,220,105,.45); background:rgba(183,220,105,.105); box-shadow:inset 0 1px rgba(255,255,255,.025),0 8px 25px rgba(0,0,0,.14); }
.progress-tab-icon { width:37px; height:37px; display:grid; place-items:center; flex:0 0 auto; border:1px solid rgba(255,255,255,.07); border-radius:50%; color:#737a6e; background:rgba(255,255,255,.035); font-size:.7rem; font-weight:900; }
.progress-chart-tabs button.is-active .progress-tab-icon { color:#172016; border-color:#b7dc69; background:#b7dc69; }
.progress-tab-copy strong,.progress-tab-copy small { display:block; }
.progress-tab-copy strong { color:inherit; font-size:.72rem; line-height:1.1; }
.progress-tab-copy small { margin-top:3px; color:#686f64; font-size:.6rem; line-height:1; }
.progress-chart-tabs button.is-active .progress-tab-copy small { color:#a8bb84; }
.progress-chart-stage { --progress-chart-accent:#b7dc69; position:relative; }
.progress-chart-stage > svg { width:100%; min-height:270px; touch-action:pan-y; }
.progress-big-chart .axis { stroke:rgba(255,255,255,.055); }
.progress-big-chart .area { fill:url(#progressArea); }
.progress-big-chart .line { fill:none; stroke:var(--progress-chart-accent); stroke-width:4; stroke-linecap:round; transition:stroke .2s; }
.progress-chart-scale { position:absolute; z-index:2; top:26px; bottom:42px; left:4px; display:flex; flex-direction:column; justify-content:space-between; color:#687064; font-size:.62rem; pointer-events:none; }
.progress-chart-tooltip { position:absolute; z-index:4; min-width:132px; padding:9px 11px; border:1px solid color-mix(in srgb,var(--progress-chart-accent) 45%,transparent); border-radius:10px; background:rgba(12,14,11,.96); box-shadow:0 12px 34px rgba(0,0,0,.4); transform:translate(-50%,calc(-100% - 12px)); pointer-events:none; }
.progress-chart-tooltip span,.progress-chart-tooltip strong { display:block; white-space:nowrap; }
.progress-chart-tooltip span { color:#858d80; font-size:.65rem; }
.progress-chart-tooltip strong { margin-top:3px; color:var(--progress-chart-accent); font-size:.78rem; }
.progress-chart-hits rect { fill:transparent; cursor:crosshair; pointer-events:all; }
.progress-chart-hits rect:focus { outline:none; stroke:var(--progress-chart-accent); stroke-width:1; stroke-dasharray:4 5; }
.progress-target-line { fill:none; stroke:rgba(183,220,105,.5); stroke-width:1.5; stroke-dasharray:7 8; }
.progress-target-label { fill:#93aa68; font-size:11px; font-weight:700; }
.progress-target-line[hidden],.progress-target-label[hidden] { display:none; }
.measurement-list { display:grid; gap:8px; margin-top:17px; }
.measurement-row { display:grid; grid-template-columns:1fr auto auto; gap:12px; padding:10px 11px; border-radius:9px; background:rgba(255,255,255,.025); font-size:.68rem; }
.measurement-row span { color:#858b80; }
.measurement-row small { color:#97ae69; }
.adonis-ratio { margin-top:15px; padding:15px; border:1px solid rgba(183,220,105,.14); border-radius:13px; background:linear-gradient(135deg,rgba(183,220,105,.06),rgba(255,255,255,.018)); }
.adonis-ratio-head { display:flex; align-items:end; justify-content:space-between; gap:12px; }
.adonis-ratio-head span,.adonis-ratio-head strong { display:block; }
.adonis-ratio-head span { color:#858b80; font-size:.69rem; }
.adonis-ratio-head strong { margin-top:3px; color:#f1f3ee; font-size:1.25rem; }
.adonis-ratio-head small { color:#a6bd77; font-size:.66rem; font-weight:700; }
.adonis-ratio-track { height:6px; margin:11px 0; overflow:hidden; border-radius:99px; background:rgba(255,255,255,.075); }
.adonis-ratio-track span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#7f9c4c,#b7dc69); box-shadow:0 0 14px rgba(183,220,105,.18); }
.adonis-ratio p { margin:0; color:#7d8378; font-size:.68rem; line-height:1.5; }
.progress-loading { display:flex; align-items:center; gap:14px; min-height:92px; margin-bottom:14px; }
[data-progress-state] [hidden] { display:none !important; }
.progress-loading > span { width:34px; aspect-ratio:1; flex:0 0 auto; border:3px solid rgba(183,220,105,.14); border-top-color:#b7dc69; border-radius:50%; animation:progressSpin .8s linear infinite; }
.progress-loading strong,.progress-loading small { display:block; }
.progress-loading strong { font-size:.82rem; }
.progress-loading small { margin-top:4px; color:#747b70; font-size:.72rem; }
@keyframes progressSpin { to { transform:rotate(360deg); } }
.progress-error { margin-bottom:14px; text-align:center; }
.progress-error strong { font-size:1rem; }
.progress-error p { margin:7px 0 16px; color:#777e72; font-size:.78rem; }
.progress-metrics--training { grid-template-columns:repeat(4,1fr); }
.progress-metric strong b { font:inherit; }
.progress-big-chart [data-progress-points] circle { fill:var(--progress-chart-accent); stroke:#20261b; stroke-width:3; pointer-events:none; transition:fill .2s; }
.progress-record-panel { min-width:0; }
.progress-best-list { display:grid; gap:8px; margin-top:15px; }
.progress-best { display:grid; grid-template-columns:32px minmax(0,1fr) auto; align-items:center; gap:10px; padding:10px; border:1px solid rgba(255,255,255,.055); border-radius:11px; background:rgba(255,255,255,.022); }
.progress-best > span { display:grid; place-items:center; width:32px; height:32px; border-radius:9px; color:#b7dc69; background:rgba(183,220,105,.08); font-size:.72rem; font-weight:800; }
.progress-best strong,.progress-best small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.progress-best strong { font-size:.75rem; }
.progress-best small { margin-top:3px; color:#777e72; font-size:.67rem; }
.progress-best > b { color:#9fbd68; font-size:.7rem; }
.progress-best > b.is-negative { color:#d3947d; }
.progress-empty { display:grid; justify-items:start; gap:6px; padding:22px; border:1px dashed rgba(183,220,105,.16); border-radius:12px; color:#dce1d7; background:rgba(183,220,105,.025); }
.progress-empty small { color:#747b70; font-size:.72rem; line-height:1.5; }
.progress-empty .app-button { margin-top:7px; }

/* Physical evolution chart + check-in panel */
.progress-chart-empty { position:absolute; inset:0; z-index:3; display:grid; place-items:center; justify-items:center; gap:5px; padding:20px; text-align:center; background:inherit; }
.progress-chart-empty strong { color:#dce1d7; font-size:.82rem; }
.progress-chart-empty small { max-width:320px; color:#747b70; font-size:.68rem; line-height:1.5; }
.progress-checkin-panel { display:flex; flex-direction:column; min-width:0; }
.progress-checkin-latest { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:15px; }
.progress-checkin-latest > div { padding:12px; border:1px solid rgba(255,255,255,.055); border-radius:11px; background:rgba(255,255,255,.022); }
.progress-checkin-latest span { display:block; color:#737a6e; font-size:.58rem; text-transform:uppercase; letter-spacing:.06em; }
.progress-checkin-latest strong { display:block; margin-top:5px; font-size:.95rem; }
.progress-measurement-details { position:relative; margin-bottom:20px; border-radius:14px; }
.progress-measurement-details__grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.progress-measurement-details__grid > div { padding:12px; border:1px solid rgba(255,255,255,.055); border-radius:11px; background:rgba(255,255,255,.022); }
.progress-measurement-details__grid span { display:block; color:#737a6e; font-size:.58rem; text-transform:uppercase; letter-spacing:.06em; }
.progress-measurement-details__grid strong { display:block; margin-top:5px; font-size:.95rem; }
.progress-measurement-details.is-locked { min-height:290px; overflow:hidden; }
.progress-measurement-details.is-locked > :not(.progress-measurement-lock) { pointer-events:none; user-select:none; filter:blur(1.4px); opacity:.25; }
.progress-measurement-details.is-locked::after { content:''; position:absolute; z-index:1; inset:0; background:linear-gradient(180deg,rgba(198,220,247,.04),rgba(198,220,247,.82)); pointer-events:none; }
.progress-measurement-lock { position:absolute; z-index:2; inset:0; display:grid; place-content:center; justify-items:center; gap:7px; padding:18px; text-align:center; }
.progress-measurement-lock[hidden] { display:none; }
.progress-measurement-lock > span { width:42px; height:42px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#4f7fbd; }
.progress-measurement-lock > span .pro-lock-icon { width:18px; height:18px; }
.progress-measurement-lock strong { color:#1f3a5f; font-size:.82rem; }
.progress-measurement-lock small { max-width:260px; color:#48668e; font-size:.64rem; line-height:1.45; }
.progress-measurement-lock .app-button { min-height:38px; margin-top:4px; color:#fff; background:#4f7fbd; font-size:.65rem; }
.membership-free [data-pro-physical] { color:#71839b; background:rgba(79,127,189,.07); }
.pro-feature-inline-lock { display:none; width:14px; height:14px; min-height:0; flex:0 0 14px; margin-left:5px; color:#315e9b; line-height:0; }
.membership-free .pro-feature-inline-lock { display:inline-block; }
.membership-free [data-pro-measurement-field] { display:none!important; }
.membership-free .progress-checkin-bodyfat-row { display:block; }
.progress-checkin-button { position:relative; justify-content:center; gap:0; width:100%; margin-top:auto; padding:0 44px; text-align:center; }
.progress-checkin-button span { position:absolute; top:50%; right:18px; line-height:1; transform:translateY(-50%); }

/* Progress photos */
.progress-photos-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:10px; margin-top:15px; }
.progress-photo-upload { position:relative; min-width:0; width:100%; aspect-ratio:3/4; overflow:hidden; border-radius:13px; }
.progress-photo-upload { display:grid; place-items:center; gap:6px; border:1px dashed rgba(183,220,105,.25); background:rgba(183,220,105,.03); color:#9db66c; }
.progress-photo-upload span { font-size:1.4rem; line-height:1; }
.progress-photo-upload small { color:#747b70; font-size:.6rem; }
.progress-photo-upload:hover { border-color:rgba(183,220,105,.45); background:rgba(183,220,105,.06); }
.progress-photo-card { min-width:0; margin:0; }
.progress-photo-media { position:relative; display:grid; place-items:center; aspect-ratio:3/4; overflow:hidden; border:1px solid rgba(255,255,255,.06); border-radius:13px; background:#11140f; }
.progress-photo-card img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
.progress-photo-card figcaption { padding:8px 3px 0; text-align:center; }
.progress-photo-card time { color:#747b70; font-size:.6rem; font-weight:800; }
.progress-photo-card button { position:absolute; top:6px; right:6px; width:26px; height:26px; padding:0; border:0; border-radius:50%; color:#fff; background:rgba(8,10,7,.72); opacity:0; transition:opacity .15s ease; }
.progress-photo-card:hover button,.progress-photo-card button:focus-visible { opacity:1; }
@media (hover:none) { .progress-photo-card button { opacity:1; } }
.progress-photos-empty { margin:15px 0 0; color:#747b70; font-size:.7rem; line-height:1.55; }

/* Check-in / photo-upload dialogs */
.progress-checkin-dialog,.progress-photo-dialog { width:min(610px,calc(100% - 28px)); max-height:calc(100dvh - 28px); padding:24px; overflow:auto; overscroll-behavior:contain; border:1px solid rgba(183,220,105,.22); border-radius:20px; color:#fff; background:#141711; box-shadow:0 30px 100px rgba(0,0,0,.72); }
.progress-checkin-dialog::backdrop,.progress-photo-dialog::backdrop { background:rgba(0,0,0,.74); backdrop-filter:blur(7px); }
.progress-dialog-close { position:absolute; top:14px; right:14px; width:34px; height:34px; padding:0; border:0; border-radius:50%; color:#c7cec0; background:rgba(255,255,255,.04); font-size:1rem; }
.progress-checkin-dialog header,.progress-photo-dialog header { padding-right:35px; }
.progress-checkin-dialog h2,.progress-photo-dialog h2 { margin:5px 0; font-size:1.5rem; }
.progress-checkin-dialog header p,.progress-photo-dialog header p { margin:0; color:#737a6f; font-size:.68rem; }
.progress-checkin-dialog form,.progress-photo-dialog form { display:grid; gap:12px; margin-top:20px; }
.progress-checkin-dialog form { grid-template-columns:1fr 1fr; }
.progress-checkin-bodyfat-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; grid-column:1/-1; }
.progress-checkin-dialog label { display:grid; gap:6px; color:#9aa092; font-size:.61rem; }
.progress-checkin-dialog input,.progress-checkin-dialog select { width:100%; min-height:44px; padding:0 11px; border:1px solid rgba(255,255,255,.09); border-radius:10px; color:#f0f1ed; background:#1a1d17; outline:0; }
.progress-checkin-dialog input:focus,.progress-checkin-dialog select:focus { border-color:rgba(74,114,176,.55); box-shadow:0 0 0 3px rgba(74,114,176,.07); }
.progress-checkin-dialog label small { color:#737a6f; font-size:.56rem; line-height:1.4; }
.progress-checkin-dialog footer,.progress-photo-dialog footer { display:flex; justify-content:flex-end; gap:8px; grid-column:1/-1; margin-top:8px; padding-top:15px; border-top:1px solid rgba(255,255,255,.06); }
.progress-checkin-dialog footer button,.progress-photo-dialog footer button { min-width:110px; padding:10px 13px; border-radius:9px; }
.progress-checkin-form-error { grid-column:1/-1; margin:0; color:#dc8d8d; font-size:.68rem; }
.progress-photo-picker { position:relative; display:grid; place-items:center; gap:6px; min-height:220px; overflow:hidden; border:1px dashed rgba(255,255,255,.12); border-radius:14px; cursor:pointer; text-align:center; background:rgba(255,255,255,.018); }
.progress-photo-picker:hover { border-color:rgba(183,220,105,.35); }
.progress-photo-picker:focus-visible,.progress-photo-picker.is-dragging { border-color:#4a72b0; box-shadow:0 0 0 3px rgba(74,114,176,.12); outline:0; }
.progress-photo-picker.is-dragging { background:rgba(183,220,105,.09); }
.progress-photo-picker img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:center; background:#11140f; }
.progress-photo-picker strong { display:block; font-size:.78rem; }
.progress-photo-picker small { display:block; margin-top:3px; color:#747b70; font-size:.65rem; }
.progress-exercise-head,.progress-exercise-row { display:grid; grid-template-columns:minmax(210px,1fr) 85px 140px 140px 105px; align-items:center; gap:12px; }
.progress-exercise-head { padding:0 14px 9px; color:#687064; font-size:.66rem; font-weight:700; }
.progress-exercise-list { overflow:hidden; border:1px solid rgba(255,255,255,.055); border-radius:12px; }
.progress-exercise-row { min-height:66px; padding:10px 14px; border-bottom:1px solid rgba(255,255,255,.05); background:rgba(255,255,255,.015); }
.progress-exercise-row:last-child { border-bottom:0; }
.progress-exercise-row div strong,.progress-exercise-row div small { display:block; }
.progress-exercise-row div strong { font-size:.77rem; }
.progress-exercise-row div small { margin-top:4px; color:#697065; font-size:.66rem; }
.progress-exercise-row > span { color:#8c9388; font-size:.72rem; }
.progress-exercise-row > span b { color:#dce5cd; }
.progress-session-list { display:grid; overflow:hidden; border:1px solid rgba(255,255,255,.055); border-radius:12px; }
.progress-session-row { display:grid; grid-template-columns:70px minmax(220px,1fr) 85px 110px 55px; align-items:center; gap:13px; min-height:68px; padding:10px 14px; border-bottom:1px solid rgba(255,255,255,.05); background:rgba(255,255,255,.015); }
.progress-session-row:last-child { border-bottom:0; }
.progress-session-row time strong,.progress-session-row time small,.progress-session-row div strong,.progress-session-row div small { display:block; }
.progress-session-row time strong { color:#b7dc69; font-size:.75rem; }
.progress-session-row time small,.progress-session-row div small { margin-top:3px; color:#697065; font-size:.66rem; }
.progress-session-row div strong { font-size:.77rem; }
.progress-session-row > span { color:#91988d; font-size:.72rem; }
.progress-session-row > b { justify-self:end; padding:4px 7px; border-radius:999px; color:#b7dc69; background:rgba(183,220,105,.09); font-size:.65rem; }
.progress-session-row > i { justify-self:end; color:#596054; font-style:normal; }

/* Nutrition */
.nutrition-top { grid-template-columns:minmax(0,1.25fr) minmax(310px,.75fr); }
.calorie-summary { display:grid; grid-template-columns:150px 1fr; align-items:center; gap:24px; margin-top:20px; }
.calorie-ring { --size:136px; width:var(--size); aspect-ratio:1; display:grid; place-items:center; border-radius:50%; background:conic-gradient(#b7dc69 87%,rgba(255,255,255,.07) 0); }
.calorie-ring::before { content:''; grid-area:1/1; width:119px; aspect-ratio:1; border-radius:50%; background:#171a15; }
.calorie-ring div { z-index:1; grid-area:1/1; text-align:center; }
.calorie-ring strong,.calorie-ring span { display:block; }
.calorie-ring strong { font-size:1.45rem; }
.calorie-ring span { color:#73796e; font-size:.58rem; }
.macro-summary { display:grid; gap:13px; }
.macro-summary > div { display:grid; grid-template-columns:1fr auto; gap:6px; color:#7f857a; font-size:.63rem; }
.macro-summary b { color:#d8dcd3; }
.macro-summary .app-linear { grid-column:1/-1; height:6px; }
.meal-list { display:grid; gap:8px; margin-top:16px; }
.meal-row { display:grid; grid-template-columns:42px 1fr auto auto; align-items:center; gap:12px; padding:10px; border:1px solid rgba(255,255,255,.055); border-radius:11px; background:rgba(255,255,255,.02); }
.meal-icon { display:grid; place-items:center; width:39px; height:39px; border-radius:10px; background:rgba(183,220,105,.08); }
.meal-row strong,.meal-row small { display:block; }
.meal-row strong { font-size:.73rem; }
.meal-row small { margin-top:2px; color:#6c7268; font-size:.57rem; }
.meal-calories { text-align:right; color:#e1e4dd; font-size:.69rem; font-weight:700; }
.meal-calories span { display:block; color:#676d63; font-size:.52rem; font-weight:400; }
.meal-row button { width:28px; height:28px; padding:0; border-radius:8px; border-color:rgba(255,255,255,.07); background:rgba(255,255,255,.025); }
.nutrition-insights { display:grid; gap:10px; margin-top:16px; }
.nutrition-insight { display:flex; align-items:center; gap:12px; padding:12px; border-radius:10px; background:rgba(255,255,255,.025); }
.nutrition-insight > span { width:35px; font-size:1rem; }
.nutrition-insight strong,.nutrition-insight small { display:block; }
.nutrition-insight strong { font-size:.7rem; }
.nutrition-insight small { margin-top:2px; color:#70766b; font-size:.58rem; }

/* Supplements */
.supplement-layout { grid-template-columns:minmax(0,1.28fr) minmax(290px,.72fr); }
.supplement-stack { display:grid; gap:9px; margin-top:16px; }
.supplement-card { display:grid; grid-template-columns:50px 1fr auto; align-items:center; gap:13px; padding:12px; border:1px solid rgba(255,255,255,.06); border-radius:12px; background:rgba(255,255,255,.022); }
.supplement-icon { display:grid; place-items:center; width:48px; height:48px; border-radius:13px; background:linear-gradient(145deg,rgba(183,220,105,.2),rgba(183,220,105,.06)); font-size:1.25rem; }
.supplement-info strong,.supplement-info small { display:block; }
.supplement-info strong { font-size:.76rem; }
.supplement-info small { margin:3px 0 8px; color:#70766c; font-size:.57rem; }
.supplement-info .app-linear { height:5px; }
.supplement-stock { text-align:right; }
.supplement-stock strong,.supplement-stock span { display:block; }
.supplement-stock strong { color:#c5d7a1; font-size:.7rem; }
.supplement-stock span { margin-top:3px; color:#666c62; font-size:.54rem; }
.supplement-stock.is-low strong { color:#d8a96c; }
.supplement-card.is-low .app-linear span { background:linear-gradient(90deg,#a7713b,#d8a96c); }
.supplement-library { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:15px; }
.supplement-library article { display:grid; justify-items:center; padding:14px 9px; border:1px solid rgba(255,255,255,.06); border-radius:11px; background:rgba(255,255,255,.022); text-align:center; }
.supplement-library article > span { font-size:1.45rem; }
.supplement-library strong { margin:6px 0 2px; font-size:.68rem; }
.supplement-library small { color:#70766b; font-size:.55rem; }
.supplement-partner { margin-top:15px; padding:14px; border:1px solid rgba(183,220,105,.14); border-radius:12px; background:rgba(183,220,105,.045); }
.supplement-partner strong,.supplement-partner span { display:block; }
.supplement-partner strong { font-size:.72rem; }
.supplement-partner span { margin:4px 0 11px; color:#747a70; font-size:.6rem; }

/* Settings */
.settings-layout { display:grid; grid-template-columns:190px minmax(0,1fr); align-items:start; gap:18px; }
.settings-nav { position:sticky; top:96px; display:grid; gap:4px; padding:8px; border:1px solid rgba(255,255,255,.06); border-radius:14px; background:rgba(20,22,18,.84); }
.settings-nav a { padding:10px 11px; border-radius:9px; color:#7f857a; text-decoration:none; font-size:.68rem; font-weight:650; }
.settings-nav a:hover,.settings-nav a.is-active { color:#e7eadf; background:rgba(183,220,105,.08); }
.settings-nav a.is-active { color:#b7dc69; }
.settings-main { display:grid; gap:14px; min-width:0; }
.settings-section { scroll-margin-top:96px; }
.settings-profile-head { display:flex; align-items:center; gap:12px; margin-top:17px; padding-bottom:17px; border-bottom:1px solid rgba(255,255,255,.07); }
.settings-profile-head div { min-width:0; }
.settings-profile-head strong,.settings-profile-head small { display:block; }
.settings-profile-head strong { font-size:.76rem; }
.settings-profile-head small { color:#70766b; font-size:.57rem; }
.settings-profile-head button,.settings-security button { margin-left:auto; padding:7px 10px; border:1px solid rgba(183,220,105,.17); border-radius:8px; color:#a8c273; background:rgba(183,220,105,.055); font-size:.61rem; }
.settings-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; margin-top:17px; }
.settings-form-grid label > span { display:block; margin:0 3px 6px; color:#858b80; font-size:.59rem; }
.settings-form-grid input,.settings-form-grid select { width:100%; min-height:42px; padding:0 11px; outline:0; border:1px solid rgba(255,255,255,.08); border-radius:10px; color:#daddd6; background:#131612; font-size:.68rem; }
.settings-form-grid input:focus,.settings-form-grid select:focus { border-color:rgba(74,114,176,.38); }
.settings-rows { margin-top:14px; }
.settings-row { min-height:86px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:14px 4px; border-top:1px solid rgba(255,255,255,.065); }
.settings-row:first-child { border-top:0; }
.settings-row strong,.settings-row small { display:block; }
.settings-row strong { font-size:.78rem; }
.settings-row small { margin-top:3px; color:#6f756b; font-size:.57rem; }
.settings-segment { display:grid; grid-template-columns:1fr 1fr; flex:0 0 auto; padding:4px; border:1px solid rgba(255,255,255,.075); border-radius:12px; background:rgba(255,255,255,.025); }
.settings-segment button { min-width:57px; height:36px; padding:0; border:0; border-radius:9px; color:#6f756b; background:transparent; font-size:.68rem; font-weight:700; }
.settings-segment button.is-selected { color:#172016; background:#b7dc69; }
.settings-toggles,.settings-security { display:grid; margin-top:13px; }
.settings-toggles > label,.settings-security > div { min-height:69px; display:flex; align-items:center; gap:18px; padding:11px 4px; border-top:1px solid rgba(255,255,255,.065); }
.settings-toggles > label:first-child,.settings-security > div:first-child { border-top:0; }
.settings-toggles div,.settings-security div > div { min-width:0; }
.settings-toggles strong,.settings-toggles small,.settings-security strong,.settings-security small { display:block; }
.settings-toggles strong,.settings-security strong { font-size:.72rem; }
.settings-toggles small,.settings-security small { margin-top:3px; color:#6f756b; font-size:.57rem; }
.settings-toggles input[type=checkbox],.settings-security input[type=checkbox] { appearance:none; width:39px; height:22px; flex:0 0 auto; margin-left:auto; border-radius:99px; background:#30342d; position:relative; cursor:pointer; }
.settings-toggles input[type=checkbox]::after,.settings-security input[type=checkbox]::after { content:''; position:absolute; top:3px; left:3px; width:16px; height:16px; border-radius:50%; background:#777d72; transition:.18s; }
.settings-toggles input:checked,.settings-security input:checked { background:rgba(183,220,105,.28); }
.settings-toggles input:checked::after,.settings-security input:checked::after { left:20px; background:#b7dc69; }
.settings-security button.is-danger { color:#d98888; border-color:rgba(217,100,100,.18); background:rgba(217,100,100,.055); }

/* Hero Hub Free / Pro access states */
.dash-plan-badge { margin-left:7px; padding:2px 6px; border-radius:99px; color:#315e9b; background:#e3edf9; font-size:.48rem; font-weight:900; letter-spacing:.06em; }
.dash-plan-badge.is-pro { color:#fff; background:#4a72b0; } /* Same blue PRO badge on every Hero Hub page. */
.dash-nav a .dash-pro-lock { display:none; width:14px; height:14px; margin-left:auto; color:inherit; opacity:.78; font-style:normal; }
.dash-nav a .dash-pro-lock .pro-lock-icon { display:block; width:100%; height:100%; }
.membership-free .dash-nav a[data-pro-nav] .dash-pro-lock { display:inline-grid; place-items:center; }
.membership-free .dash-nav a[data-pro-nav] { position:relative; }
[data-pro-gate] { position:relative; isolation:isolate; }
[data-pro-gate].is-pro-locked { min-height:420px; overflow:hidden; }
[data-pro-gate].is-pro-locked > :not(.pro-gate-overlay) { pointer-events:none; user-select:none; filter:grayscale(.2) blur(1.5px); opacity:.34; }
[data-pro-gate].is-pro-locked::after { content:''; position:absolute; z-index:2; inset:25% 0 0; background:linear-gradient(180deg,rgba(198,220,247,0),#c6dcf7 78%); pointer-events:none; }
.pro-gate-overlay { position:absolute; z-index:3; inset:0; display:grid; place-items:center; padding:28px; text-align:center; }
.pro-gate-overlay > div { position:relative; width:min(460px,100%); margin-top:46px; padding:66px 30px 30px; border:1px solid rgba(31,58,95,.13); border-radius:24px; background:rgba(255,255,255,.95); box-shadow:0 22px 65px rgba(31,58,95,.18); backdrop-filter:blur(10px); }
.pro-gate-captain { position:absolute; z-index:1; top:0; left:50%; width:min(190px,52%); height:auto; transform:translate(-50%,-61%); pointer-events:none; }
.pro-gate-overlay > div > span { width:48px; height:48px; display:grid; place-items:center; margin:0 auto 11px; border-radius:50%; color:#fff; background:#4f7fbd; box-shadow:0 8px 22px rgba(79,127,189,.25); font-size:1.1rem; }
.pro-gate-overlay > div > span .pro-lock-icon { width:20px; height:20px; }
.pro-gate-overlay h2 { margin:5px 0 8px; color:#1f3a5f; font-size:1.35rem; }
.pro-gate-overlay p:not(.dash-kicker) { margin:0 auto 18px; color:#48668e; font-size:.76rem; line-height:1.55; }
.pro-gate-overlay .app-button { min-width:190px; color:#fff; background:#4f7fbd; }
.pro-gate-overlay .app-button:hover { color:#fff; background:#3f6da9; }
.pro-upgrade-dialog { width:min(520px,calc(100% - 28px)); padding:32px; border:0; border-radius:24px; color:#1f3a5f; background:#fff; box-shadow:0 30px 100px rgba(31,58,95,.35); text-align:center; }
.pro-upgrade-dialog::backdrop { background:rgba(31,58,95,.5); backdrop-filter:blur(8px); }
.pro-upgrade-dialog__close { position:absolute; top:14px; right:14px; width:38px; height:38px; padding:0; border:0; border-radius:50%; color:#315e9b; background:#e3edf9; font-size:1.25rem; cursor:pointer; }
.pro-upgrade-dialog__lock { width:58px; height:58px; display:grid; place-items:center; margin:0 auto 14px; border-radius:50%; color:#fff; background:#4f7fbd; font-size:1.25rem; }
.pro-upgrade-dialog__lock .pro-lock-icon { width:23px; height:23px; }
.pro-upgrade-dialog h2 { margin:6px 0 10px; color:#1f3a5f; font-size:1.7rem; }
.pro-upgrade-dialog > p:not(.dash-kicker) { margin:0 auto 22px; max-width:410px; color:#48668e; font-size:.82rem; line-height:1.6; }
.pro-upgrade-dialog > div { display:flex; justify-content:center; gap:10px; }
.pro-upgrade-dialog > div > button { padding:11px 17px; border:0; border-radius:11px; color:#315e9b; background:#e3edf9; font:inherit; font-weight:750; cursor:pointer; }
.pro-upgrade-dialog .app-button { text-decoration:none; }
.membership-free [data-pro-action]:disabled { color:#71839b; background:#dce7f5; box-shadow:none; cursor:not-allowed; opacity:.9; }
.membership-free [data-pro-action]:disabled .pro-lock-icon { width:14px; height:14px; margin-right:7px; }
.history-pro-limit { position:relative; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:16px; margin-top:18px; padding:22px; overflow:hidden; border:1px solid rgba(92,70,165,.18); border-radius:18px; background:linear-gradient(180deg,rgba(228,238,251,.62),rgba(255,255,255,.94)); }
.history-pro-limit::before { content:""; position:absolute; inset:0 0 auto; height:42px; background:linear-gradient(180deg,rgba(255,255,255,.92),transparent); pointer-events:none; }
.history-pro-limit > span { position:relative; display:grid; width:44px; height:44px; place-items:center; border-radius:50%; background:#e7e1f6; font-size:1.1rem; }
.history-pro-limit > span .pro-lock-icon { width:18px; height:18px; color:#315e9b; }
.history-pro-limit strong,.history-pro-limit p { position:relative; display:block; }
.history-pro-limit strong { color:#193b68; }
.history-pro-limit p { margin:4px 0 0; color:#5c7292; line-height:1.45; }
.history-pro-limit .app-button { position:relative; white-space:nowrap; }
@media(max-width:560px){
  [data-pro-gate].is-pro-locked{min-height:360px}
  .pro-gate-overlay{padding:16px}
  .pro-gate-overlay>div{margin-top:38px;padding:56px 18px 24px}
  .pro-gate-captain{width:min(160px,58%)}
  .pro-upgrade-dialog{padding:24px 18px}
  .pro-upgrade-dialog>div{flex-direction:column}
  .pro-upgrade-dialog>div>*{width:100%;justify-content:center}
  .history-pro-limit{grid-template-columns:auto 1fr;padding:18px 15px}
  .history-pro-limit .app-button{grid-column:1/-1;width:100%;justify-content:center}
}

@media (max-width:1000px) {
  .program-owned-grid,.program-market-grid { grid-template-columns:1fr 1fr; }
  .program-owned-grid-single { grid-template-columns:minmax(280px,480px); }
  .program-week-list { grid-template-columns:1fr 1fr; }
  .progress-metrics { grid-template-columns:repeat(3,1fr); }
  .progress-metrics--training { grid-template-columns:repeat(2,1fr); }
  .progress-exercise-head,.progress-exercise-row { grid-template-columns:minmax(190px,1fr) 75px 125px 100px; }
  .progress-exercise-head span:nth-child(3),.progress-exercise-row > span:nth-child(3) { display:none; }
}
@media (max-width:820px) {
  .training-layout,.progress-chart-grid,.nutrition-top,.supplement-layout { grid-template-columns:1fr; }
  .app-grid-2,.app-grid-3 { grid-template-columns:1fr; }
  .app-page-head { align-items:start; flex-direction:column; }
  .program-detail-grid { grid-template-columns:1fr; }
  .recent-workouts { grid-template-columns:1fr; }
  .progress-metrics { grid-template-columns:1fr 1fr; }
  .progress-chart-tabs { width:calc(100% + 42px); margin-inline:-21px; padding-inline:21px; flex-wrap:nowrap; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:none; }
  .progress-chart-tabs::-webkit-scrollbar { display:none; }
  .progress-chart-tabs button { flex:0 0 auto; }
  .progress-exercise-head { display:none; }
  .progress-exercise-list { display:grid; grid-template-columns:1fr 1fr; gap:9px; overflow:visible; border:0; }
  .progress-exercise-row { grid-template-columns:1fr 1fr; gap:10px; border:1px solid rgba(255,255,255,.055); border-radius:12px; }
  .progress-exercise-row div { grid-column:1/-1; }
  .progress-exercise-row > span { display:block!important; }
  .progress-exercise-row > span::before { content:attr(data-label); display:block; margin-bottom:3px; color:#5f665b; font-size:.61rem; }
  .progress-exercise-row > span:last-child { grid-column:1/-1; }
  .progress-session-row { grid-template-columns:58px minmax(0,1fr) auto; }
  .progress-session-row > span:nth-of-type(1) { display:none; }
  .progress-session-row > span:nth-of-type(2) { text-align:right; }
  .progress-session-row > b,.progress-session-row > i { grid-column:3; }
  .program-hover-details { max-height:130px; margin:0 0 13px; opacity:1; transform:none; }
  .settings-layout { grid-template-columns:1fr; }
  .settings-nav { position:static; display:flex; overflow:auto; scrollbar-width:none; }
  .settings-nav a { flex:0 0 auto; }
}
@media (max-width:560px) {
  .app-dashboard-link { display:none; }
  .app-page-head { width:100%; gap:18px; }
  .app-page-head > div { min-width:0; }
  .app-page-head h1 { font-size:2.55rem; overflow-wrap:anywhere; }
  .app-page-head > .app-button { width:100%; }
  .app-section-heading { align-items:flex-start; flex-wrap:wrap; }
  .app-section-heading > div { min-width:0; }
  .app-section-heading > span { max-width:100%; overflow-wrap:anywhere; }
  .app-panel { padding:17px 14px; }
  .exercise-row { grid-template-columns:30px minmax(0,1fr) 43px 25px; }
  .exercise-metric:nth-of-type(2),.exercise-metric:nth-of-type(3) { display:none; }
  .program-owned-grid,.program-market-grid { grid-template-columns:1fr; }
  .program-detail-actions { width:100%; align-items:stretch; flex-direction:column; }
  .program-week-list { grid-template-columns:1fr; }
  .program-card { min-height:290px; }
  .progress-metrics { grid-template-columns:1fr 1fr; gap:8px; }
  .progress-metrics--training { grid-template-columns:1fr 1fr; }
  .progress-metric { min-width:0; padding:14px 12px; }
  .progress-metric strong { overflow-wrap:anywhere; font-size:1.1rem; }
  .progress-chart-tabs { width:calc(100% + 28px); margin-inline:-14px; padding-inline:14px; scroll-padding-inline:14px; }
  .progress-chart-tabs button { min-height:47px; padding-right:12px; }
  .progress-tab-icon { width:34px; height:34px; }
  .progress-big-chart { overflow:hidden; }
  .progress-chart-stage > svg { min-height:220px; }
  .progress-chart-scale { top:22px; bottom:36px; }
  .progress-chart-tooltip { min-width:0; max-width:calc(100% - 20px); }
  .progress-best { grid-template-columns:30px minmax(0,1fr); }
  .progress-best > b { grid-column:2; justify-self:start; }
  .progress-checkin-latest > div { min-width:0; padding:11px 10px; }
  .progress-checkin-latest span,.progress-checkin-latest strong { overflow-wrap:anywhere; }
  .progress-checkin-button { margin-top:18px; }
  .progress-exercise-list { grid-template-columns:1fr; }
  .progress-session-row { grid-template-columns:52px minmax(0,1fr) auto; padding-inline:10px; }
  .progress-checkin-dialog,.progress-photo-dialog { width:calc(100% - 16px); max-width:none; max-height:calc(100dvh - 16px); padding:20px 15px max(15px,env(safe-area-inset-bottom)); border-radius:17px; }
  .progress-checkin-dialog form { grid-template-columns:1fr; }
  .progress-checkin-bodyfat-row { grid-template-columns:1fr; }
  .progress-checkin-dialog h2,.progress-photo-dialog h2 { padding-right:24px; font-size:1.3rem; }
  .progress-dialog-close { top:10px; right:10px; width:38px; height:38px; }
  .progress-checkin-dialog footer,.progress-photo-dialog footer { position:sticky; bottom:-15px; z-index:5; margin:4px -15px 0; padding:14px 15px max(15px,env(safe-area-inset-bottom)); background:inherit; }
  .progress-checkin-dialog footer button,.progress-photo-dialog footer button { min-width:0; min-height:46px; flex:1 1 0; }
  .progress-photo-picker { min-height:clamp(190px,46dvh,340px); }
  .progress-photo-picker img { object-fit:contain; }
  .progress-session-row > span:nth-of-type(2) { display:none; }
  .progress-photos-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .progress-photo-card,.progress-photo-media { min-width:0; }
  .progress-photo-card figcaption { padding-top:7px; }
  .calorie-summary { grid-template-columns:110px 1fr; gap:14px; }
  .calorie-ring { --size:104px; }
  .calorie-ring::before { width:91px; }
  .meal-row { grid-template-columns:38px 1fr auto; gap:8px; }
  .meal-row button { display:none; }
  .supplement-card { grid-template-columns:44px 1fr; }
  .supplement-icon { width:42px; height:42px; }
  .supplement-stock { grid-column:2; text-align:left; }
  .supplement-stock strong,.supplement-stock span { display:inline; margin-right:6px; }
  .supplement-library { grid-template-columns:1fr 1fr; }
  .settings-form-grid { grid-template-columns:1fr; }
  .settings-row { align-items:flex-start; flex-direction:column; gap:11px; }
  .settings-segment { width:100%; }
  .settings-segment button { min-width:0; }
  .settings-profile-head { flex-wrap:wrap; }
  .settings-profile-head button { flex:1 1 110px; }
  .settings-security > div { align-items:flex-start; flex-wrap:wrap; }
  .settings-security button { margin-left:0; }
}
@media (max-width:360px) {
  .progress-metrics { grid-template-columns:1fr; }
  .progress-checkin-latest { grid-template-columns:1fr; }
  .progress-measurement-details__grid { grid-template-columns:1fr 1fr; }
  .progress-range-filter { width:100%; flex-wrap:nowrap; }
  .progress-range-filter button { flex:1 1 0; padding-inline:8px; white-space:nowrap; }
  .progress-checkin-dialog footer,.progress-photo-dialog footer { flex-direction:column-reverse; }
  .progress-checkin-dialog footer button,.progress-photo-dialog footer button { width:100%; flex-basis:auto; }
  .calorie-summary { grid-template-columns:1fr; justify-items:center; }
  .macro-summary { width:100%; }
}
