:root {
    --blue: #2563eb;
    --ink: #111318;
    --muted: #6b7280;
    --border: #e5e7eb;
    --border-strong: #c9cdd5;
    --surface: #f8fafc;
    --white: #fff;
    --radius: 16px;
    --space-1: .5rem;
    --space-2: 1rem;
    --space-3: 1.5rem;
    --space-4: 2rem;
    --space-5: 3rem;
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--ink);
    background: var(--white);
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; min-height: 100vh; font-size: 16px; line-height: 1.5; }
a { color: var(--blue); text-decoration: none; }
h1, p { margin-top: 0; }
h1 { font-size: clamp(2rem, 9vw, 3.5rem); line-height: 1.06; letter-spacing: -.04em; }

.wordmark { display: inline-flex; align-items: baseline; color: var(--ink); font-size: 1.45rem; font-weight: 750; letter-spacing: -.04em; }
.wordmark__effort { color: var(--blue); }
.wordmark__app { margin-left: .04em; color: #9ca3af; font-size: .68em; font-weight: 600; letter-spacing: -.02em; }
.brand-lockup { --lockup-size: 1.45rem; display: inline-flex; min-width: 0; align-items: center; gap: .24em; font-size: var(--lockup-size); white-space: nowrap; }
.brand-lockup .wordmark { font-size: 1em; }
.brand-mark { width: .72em; height: .72em; flex: 0 0 auto; }
.tagline { color: var(--ink); }
.tagline__life { color: var(--blue); }

.app-content.welcome { width: 100%; min-height: calc(100svh - 4.75rem); display: grid; align-items: start; margin: 0; padding: clamp(2rem, 6vh, 3.5rem) 1.25rem 3rem; text-align: center; }
.welcome__content { display: grid; width: min(100%, 28rem); justify-items: center; margin: 0 auto; text-align: center; }
.welcome .brand-lockup { --lockup-size: clamp(2.2rem, 11vw, 4.15rem); }
.welcome h1 { margin: .65rem 0 1.4rem; font-size: clamp(1.2rem, 5vw, 1.75rem); font-weight: 500; letter-spacing: -.025em; }
.welcome__actions { display: grid; gap: .6rem; width: min(100%, 22rem); margin: 4.6875rem auto 0; }
.welcome__about { width: 100%; margin-top: 2.75rem; text-align: center; }
.welcome__about h2 { margin: 0; font-size: 1rem; }
.welcome__about h2 a { display: inline-flex; min-height: 44px; align-items: center; color: var(--ink); font-weight: 700; }
.strava-panel { display: inline-grid; grid-template-columns: auto 1px auto; align-items: center; gap: .7rem; width: auto; max-width: 100%; margin: 0 auto; border: 1px solid #fed7c3; border-radius: 10px; padding: .55rem .85rem; background: #fff8f4; text-align: left; }
.strava-panel__brand { color: #fc5200; font-size: .88rem; font-weight: 800; letter-spacing: .08em; white-space: nowrap; }
.strava-panel__divider { width: 1px; height: 2rem; background: #f5b995; }
.strava-panel__message { display: grid; gap: .18rem; min-width: 0; }
.strava-panel__status { color: var(--ink); font-size: .82rem; font-weight: 700; line-height: 1.1; }
.strava-panel__copy { color: var(--muted); font-size: .72rem; line-height: 1.2; white-space: nowrap; }
.welcome__activities { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .65rem; width: 100%; margin: 1.15rem 0 0; padding: 0; list-style: none; }
.welcome__activities li { display: grid; justify-items: center; gap: .35rem; color: var(--muted); font-size: .76rem; font-weight: 600; }
.activity-icon { width: 1.7rem; height: 1.7rem; background: currentColor; -webkit-mask: var(--activity-icon) no-repeat center / contain; mask: var(--activity-icon) no-repeat center / contain; }
.activity-icon--run { --activity-icon: url('../img/fontawesome-free/person-running.svg'); }
.activity-icon--ride { --activity-icon: url('../img/fontawesome-free/bicycle.svg'); }
.activity-icon--swim { --activity-icon: url('../img/fontawesome-free/person-swimming.svg'); }
.activity-icon--walk { --activity-icon: url('../img/fontawesome-free/person-walking.svg'); }
.activity-icon--workout { --activity-icon: url('../img/fontawesome-free/dumbbell.svg'); }
.welcome__positioning { margin: 1.125rem 0 0; color: var(--muted); font-size: .68rem; font-weight: 600; letter-spacing: .18em; }

@media (max-width: 759px) {
    .welcome__actions { margin-top: 6.875rem; }
}

.button, button { display: inline-flex; width: 100%; min-height: 52px; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 12px; padding: .8rem 1.25rem; font: inherit; font-weight: 650; cursor: pointer; }
.button--primary { background: var(--blue); color: var(--white); }
.button--primary:hover, .button--primary:focus { background: #1d4ed8; }
.button--secondary { border-color: var(--border-strong); background: var(--white); color: var(--ink); }
.button--secondary:hover, .button--secondary:focus { border-color: #aeb4bf; background: var(--surface); }
.button--secondary:focus { outline: 3px solid #dbeafe; outline-offset: 2px; }
.button--secondary:active { background: #f1f5f9; }
.button--recommendation { background: #15803d; color: var(--white); }
.button--recommendation:hover, .button--recommendation:focus { background: #166534; }
.button--recommendation:focus { outline: 3px solid #bbf7d0; outline-offset: 2px; }
.button--recommendation:active { background: #14532d; }
.button--disabled { border-color: #d1d5db; background: #e5e7eb; color: #6b7280; cursor: not-allowed; }
.private-alpha-action { display: grid; gap: .5rem; }
.private-alpha-action small { color: var(--muted); line-height: 1.35; }
.private-alpha-action--login { margin-top: var(--space-3); text-align: center; }

.auth-page { min-height: 100svh; display: grid; place-items: center; padding: var(--space-3); }
.auth-card { width: min(100%, 28rem); }
.auth-card__brand { display: inline-block; margin-bottom: var(--space-5); }
.auth-card h1 { margin-bottom: .5rem; font-size: 2.25rem; }
.auth-card > p { color: var(--muted); }
form { margin-top: var(--space-4); }
.input { margin-bottom: 1.15rem; }
label { display: block; margin-bottom: .4rem; font-size: .9rem; font-weight: 650; }
input, textarea { width: 100%; min-height: 52px; border: 1px solid var(--border); border-radius: 12px; padding: 0 1rem; font: inherit; color: var(--ink); background: var(--white); }
textarea { min-height: 8rem; padding-top: .8rem; resize: vertical; }
input:focus, textarea:focus { border-color: var(--blue); outline: 3px solid #dbeafe; }
.help { display: block; margin-top: .35rem; color: var(--muted); font-size: .82rem; }
.error-message { margin-top: .35rem; color: #b42318; font-size: .85rem; }
.auth-card__switch { margin-top: var(--space-3); text-align: center; font-size: .9rem; }
.auth-card__back { margin-top: var(--space-2); text-align: center; font-size: .82rem; }
.auth-card__back a { color: var(--muted); }
.registration-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.username-teaser { margin: .25rem 0 1rem; font-size: .9rem; }
.username-guidance, .username-permanence { margin: -.65rem 0 1rem; color: var(--muted); font-size: .88rem; }
.username-guidance span { white-space: normal; }
.username-permanence { margin-top: 0; color: var(--ink); }
.username-preview { margin: -.65rem 0 .3rem; color: var(--ink); font-weight: 700; overflow-wrap: anywhere; }
.username-availability { min-height: 1.4rem; margin: 0 0 1rem; color: var(--muted); font-size: .88rem; }
.username-availability.is-available { color: #167447; }
.username-availability.is-unavailable { color: #a13b2b; }
.username-confirmation { margin-top: var(--space-4); }
.username-confirmation h2 { margin-bottom: .65rem; }
.username-confirmation__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.username-confirmation__actions .button { margin: 0; }
.legal-consent { display: grid; gap: 1rem; margin: 1.5rem 0; }
.legal-consent__item { display: grid; grid-template-columns: 1.25rem minmax(0, 1fr); gap: .25rem .65rem; min-height: 2.75rem; align-content: center; }
.legal-consent input[type="checkbox"] { width: 1.25rem; min-height: 1.25rem; margin: .1rem 0 0; accent-color: var(--blue); }
.legal-consent label { margin: 0; line-height: 1.4; }
.legal-consent .error-message { grid-column: 2; margin: .1rem 0 0; font-size: .85rem; }

.legal-page { width: min(100%, 46rem); margin: 0 auto; padding: max(2rem, env(safe-area-inset-top)) 1.25rem 4rem; }
.legal-page__brand { display: inline-block; margin-bottom: 3rem; }
.legal-page .eyebrow { margin-bottom: .5rem; }
.legal-page h1 { max-width: 12ch; margin-bottom: 1rem; }
.legal-page__lead { margin-bottom: 3rem; color: var(--muted); font-size: 1.08rem; }
.legal-page h2 { margin: 2.25rem 0 .65rem; font-size: 1.15rem; letter-spacing: -.015em; }
.legal-page p { overflow-wrap: anywhere; }
.legal-footer { display: flex; justify-content: center; gap: 1.25rem; padding: 1.25rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom)); color: var(--muted); font-size: .82rem; }
.legal-footer a { color: var(--muted); font-weight: 600; }
.is-authenticated .legal-footer { padding-bottom: calc(6.5rem + env(safe-area-inset-bottom)); }

.about-page { min-height: 100svh; display: grid; place-items: start center; padding: max(1.5rem, env(safe-area-inset-top)) 1.25rem 3rem; }
.about-card { width: min(100%, 44rem); }
.about-card__brand { display: inline-block; margin-bottom: 1.75rem; }
.about-card .eyebrow { margin-bottom: .6rem; }
.about-card h1 { max-width: 12ch; margin-bottom: 1.5rem; font-size: clamp(2.25rem, 9vw, 3.75rem); }
.about-card__copy { max-width: 44rem; color: var(--muted); }
.about-card__copy p { margin-bottom: 1rem; }
.about-card__copy strong, .about-card__tagline .tagline, .about-capability h2 { color: var(--ink); }
.about-card__tagline { margin: 1.5rem 0; font-size: 1.35rem; font-weight: 750; letter-spacing: -.02em; }
.about-card__capabilities { display: grid; margin-top: .5rem; border-top: 1px solid var(--border); }
.about-capability { border-bottom: 1px solid var(--border); padding: 1rem 0; }
.about-capability h2 { margin: 0 0 .3rem; font-size: .75rem; letter-spacing: .07em; text-transform: uppercase; }
.about-capability p { margin: 0; }
.about-card__privacy { margin-top: 1.5rem; }
.about-card__closing { margin-top: 2rem; }
.about-card__actions { display: grid; gap: .75rem; width: min(100%, 22rem); margin-top: 2rem; }

.release-body { min-height: 100svh; }
.release-header { display: flex; min-height: 64px; justify-content: flex-end; align-items: center; padding: .75rem max(1.25rem, env(safe-area-inset-right)); }
.release-content { min-height: calc(100svh - 64px); display: grid; place-items: center; padding: 1rem 1.25rem 4rem; }
.release-page { width: min(100%, 40rem); }
.release-page > .brand-lockup { --lockup-size: 2rem; margin-bottom: 3.5rem; }
.release-page .eyebrow { margin-bottom: .6rem; }
.release-page h1 { margin-bottom: 2.75rem; color: var(--ink); font-size: clamp(3rem, 14vw, 5rem); }
.release-page h1.release-page__welcome { max-width: 12ch; font-size: clamp(2.5rem, 11vw, 4.5rem); line-height: .98; }
.release-page h2 { margin-bottom: 1rem; font-size: 1.1rem; }
.release-features { display: grid; border-top: 1px solid var(--border); }
.release-feature { border-bottom: 1px solid var(--border); padding: 1rem 0; }
.release-feature h3 { margin: 0 0 .3rem; color: var(--ink); font-size: .75rem; letter-spacing: .07em; text-transform: uppercase; }
.release-feature p { margin: 0; color: var(--muted); }
.release-page form { margin-top: 3rem; }
.release-page__back { margin-top: 2rem; }
.release-page__back a { display: inline-flex; min-height: 44px; align-items: center; color: var(--muted); font-weight: 650; }

.app-header { position: sticky; top: 0; z-index: 2; display: flex; min-height: 64px; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem max(1.25rem, env(safe-area-inset-left)); border-bottom: 1px solid var(--border); background: rgba(255,255,255,.96); }
.app-brand { display: flex; min-width: 0; align-items: center; gap: 1rem; }
.app-brand > a { min-width: 0; }
.app-tagline { display: none; color: var(--muted); font-size: .8rem; white-space: nowrap; }
.text-action { color: var(--muted); font-size: .9rem; font-weight: 600; }
.app-content { width: min(100%, 68rem); margin: 0 auto; padding: var(--space-5) 1.25rem calc(8.5rem + env(safe-area-inset-bottom)); }
.empty-state { min-height: 55vh; display: flex; flex-direction: column; justify-content: center; }
.empty-state h1 { max-width: 12ch; margin-bottom: .75rem; }
.empty-state > p:last-child { max-width: 30rem; color: var(--muted); }
.eyebrow { margin-bottom: .75rem; color: var(--blue); font-size: .8rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.tab-bar { position: fixed; right: 0; bottom: 0; left: 0; z-index: 3; display: grid; grid-template-columns: repeat(4, 1fr); padding: .4rem max(.4rem, env(safe-area-inset-right)) max(.4rem, env(safe-area-inset-bottom)) max(.4rem, env(safe-area-inset-left)); border-top: 1px solid var(--border); background: rgba(255,255,255,.97); }
.tab-bar a { display: grid; min-height: 54px; place-items: center; border-radius: 10px; color: var(--muted); font-size: .78rem; font-weight: 650; }
.tab-bar a.is-active { background: #dbeafe; box-shadow: inset 0 0 0 1px #bfdbfe; color: var(--blue); font-weight: 750; }
.flash-region { position: fixed; z-index: 5; top: 4.5rem; right: 1rem; left: 1rem; }
.message { max-width: 32rem; margin: 0 auto; border: 1px solid var(--border); border-radius: 12px; padding: .9rem 1rem; background: var(--white); }
.message[data-flash-notification] { opacity: 1; transition: opacity .2s ease; }
.message[data-flash-notification].is-dismissing { opacity: 0; pointer-events: none; }
.message.error { border-color: #fecaca; color: #991b1b; }

@media (min-width: 760px) {
    .about-page { padding-top: 3rem; padding-bottom: 4rem; }
    .about-card__brand { margin-bottom: 2.5rem; }
    .about-card__capabilities { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; }
    .release-features { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; }
    .app-header { padding-right: 2rem; padding-left: 2rem; }
    .app-tagline { display: inline; }
    .app-content { padding-right: 2rem; padding-bottom: 9rem; padding-left: 2rem; }
    .tab-bar { right: auto; bottom: 1.5rem; left: 50%; width: min(34rem, calc(100% - 3rem)); transform: translateX(-50%); border: 1px solid var(--border); border-radius: var(--radius); }
    .release-content { padding-bottom: 6rem; }
}

@media (prefers-reduced-motion: no-preference) {
    a, button, input { transition: color .15s, background-color .15s, border-color .15s; }
}

@media (prefers-reduced-motion: reduce) {
    .message[data-flash-notification] { transition: none; }
}

.page-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.page-heading h1, .workout-editor h1, .exercise-detail h1 { margin-bottom: 0; font-size: clamp(2rem, 8vw, 3rem); }
.page-heading--actions { align-items: center; }
.button--auto { width: auto; white-space: nowrap; }
.muted, .exercise-meta { color: var(--muted); }
.back-link { display: inline-block; margin-bottom: 2rem; color: var(--muted); font-weight: 600; }
.catalogue-search { display: grid; grid-template-columns: 1fr auto; gap: .75rem; margin: 0 0 1rem; }
.catalogue-search .input { margin: 0; }
.catalogue-search .button { width: auto; }
.filter-row { display: flex; gap: .5rem; overflow-x: auto; margin: 0 -1.25rem 1.5rem; padding: .25rem 1.25rem .65rem; scrollbar-width: none; }
.filter-row a, .filter-row button { width: auto; min-height: 40px; flex: 0 0 auto; border: 1px solid var(--border); border-radius: 999px; padding: .5rem .9rem; background: var(--white); color: var(--muted); font-size: .85rem; font-weight: 650; }
.filter-row .is-active { border-color: #bfdbfe; background: #eff6ff; color: var(--blue); }
.exercise-list, .workout-list { border-top: 1px solid var(--border); }
.exercise-row, .workout-row { display: flex; min-height: 72px; flex-direction: column; justify-content: center; border-bottom: 1px solid var(--border); color: var(--ink); }
.exercise-row { min-height: 84px; flex-direction: row; align-items: center; gap: .85rem; padding: .55rem 0; }
.exercise-row__copy, .picker-exercise__copy, .summary-exercise__copy { display: flex; min-width: 0; flex: 1; flex-direction: column; }
.exercise-row span, .workout-row span, .selected-exercise__title span { color: var(--muted); font-size: .88rem; }
.workout-row .workout-row__action { margin-top: .2rem; color: var(--blue); font-weight: 650; }
.library-link { margin-top: 2rem; }
.empty-state--compact { min-height: 18rem; }
.empty-state--compact h2 { margin-bottom: .5rem; font-size: 1.5rem; }
.exercise-recommendation-cta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 0 1.5rem; border: 1px solid var(--border); border-radius: 14px; padding: 1rem; background: var(--surface); }
.exercise-recommendation-cta > div { display: flex; min-width: 0; flex-direction: column; }
.exercise-recommendation-cta span { margin-top: .15rem; color: var(--muted); font-size: .85rem; }
.exercise-recommendation-cta .button { flex: 0 0 auto; }
.empty-state--compact .exercise-recommendation-cta { width: min(100%, 40rem); margin-top: .75rem; }
.media-placeholder { display: grid; min-height: 15rem; place-items: center; margin-bottom: 2rem; border-radius: var(--radius); background: var(--surface); color: var(--muted); font-weight: 650; }
.exercise-detail { width: min(100%, 42rem); margin-right: auto; margin-left: auto; }
.exercise-thumbnail { display: grid; width: 80px; height: 60px; flex: 0 0 80px; place-items: center; border-radius: 10px; background: var(--surface); color: var(--muted); overflow: hidden; }
.exercise-thumbnail img { display: block; width: 100%; height: 100%; object-fit: cover; }
.exercise-thumbnail__fallback { font-size: 1rem; font-weight: 800; }
.exercise-thumbnail--picker { width: 72px; height: 54px; flex-basis: 72px; }
.exercise-thumbnail--active { width: 84px; height: 63px; flex-basis: 84px; }
.exercise-thumbnail--summary, .exercise-thumbnail--history { width: 72px; height: 54px; flex-basis: 72px; }
.workout-library-link { display: flex; min-height: 88px; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2rem; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.workout-library-link div { display: flex; flex-direction: column; }
.workout-library-link span { margin-top: .2rem; color: var(--muted); font-size: .8rem; }
.workout-library-link a { min-height: 44px; display: inline-flex; align-items: center; color: var(--blue); font-weight: 700; white-space: nowrap; }
.workout-library-links .workout-library-link + .workout-library-link { margin-top: 0; border-top: 0; }
.my-exercise-row { flex-direction: row; align-items: center; justify-content: space-between; gap: 1rem; }
.my-exercise-row div { display: flex; flex-direction: column; }
.picker-source { display: grid; }
.picker-source__heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0 .5rem; border-bottom: 1px solid var(--border); color: var(--ink); }
.exercise-note-form { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.exercise-note-form textarea { min-height: 88px; }
.note-save-status { margin-left: .75rem; color: var(--muted); font-size: .9rem; }
.history-exercise-note { margin-top: 1rem; }
.history-exercise-note strong { color: var(--muted); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.history-exercise-note p { margin: .35rem 0 0; white-space: normal; }
.movement-guide { margin: 2rem 0; border: 1px solid var(--border); border-radius: 16px; padding: 1rem; background: var(--surface); }
.movement-guide svg { display: block; width: 100%; height: auto; }
.movement-guide__person { fill: none; stroke: var(--ink); stroke-linecap: round; stroke-linejoin: round; stroke-width: 9; }
.movement-guide__person circle { fill: var(--white); }
.movement-guide__arrow { fill: none; stroke: var(--blue); stroke-linecap: round; stroke-linejoin: round; stroke-width: 8; }
.movement-guide text { fill: var(--muted); font-family: inherit; font-size: 15px; font-weight: 750; letter-spacing: .08em; text-anchor: middle; }
.movement-guide figcaption { margin-top: .4rem; color: var(--muted); font-size: .76rem; text-align: center; }
.exercise-guide-unavailable { margin: 2rem 0; border: 1px solid var(--border); border-radius: 16px; padding: 1.25rem; background: var(--surface); }
.exercise-guide-unavailable h2 { margin: 0; font-size: 1.2rem; }
.exercise-guide-unavailable p { margin: .35rem 0 0; }
.exercise-media-state, .exercise-guide-state { margin: 2rem 0; border: 1px solid var(--border); border-radius: 16px; padding: 1.25rem; background: var(--surface); }
.exercise-media-state h2, .exercise-guide-state h2 { margin: 0 0 .5rem; font-size: 1.2rem; }
.exercise-media-state video { display: block; width: 100%; max-height: 34rem; border-radius: 10px; background: #111; }
.movement-guide__person--finish .movement-guide__arms, .movement-guide__person--finish .movement-guide__legs { transform-box: fill-box; transform-origin: center; }
.movement-guide--curl .movement-guide__person--finish .movement-guide__arms, .movement-guide--row .movement-guide__person--finish .movement-guide__arms, .movement-guide--pull-down .movement-guide__person--finish .movement-guide__arms { transform: translateY(-30px) scaleY(.5); }
.movement-guide--press .movement-guide__person--finish .movement-guide__arms, .movement-guide--raise .movement-guide__person--finish .movement-guide__arms, .movement-guide--extension .movement-guide__person--finish .movement-guide__arms { transform: translateY(-48px) rotate(180deg); }
.movement-guide--squat .movement-guide__person--finish, .movement-guide--hinge .movement-guide__person--finish { transform: translate(490px, 54px) scaleY(.82); }
.movement-guide--calf-raise .movement-guide__person--finish { transform: translate(490px, 4px); }
.movement-guide--core .movement-guide__person--finish, .movement-guide--controlled .movement-guide__person--finish { transform: translate(490px, 18px) rotate(-8deg); }
.exercise-instructions, .exercise-target { margin-top: 2.5rem; }
.exercise-instructions h2, .exercise-target h2 { font-size: 1.3rem; }
.exercise-instructions ol, .exercise-guide-state ul { display: grid; gap: .5rem; padding-left: 1.3rem; }
.exercise-instructions .muted { margin-top: 1.25rem; font-size: .85rem; }
.exercise-target dl { margin: 0; border-top: 1px solid var(--border); }
.exercise-target dl div { display: flex; min-height: 56px; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--border); }
.exercise-target dt { color: var(--muted); font-size: .82rem; }
.exercise-target dd { margin: 0; font-weight: 700; text-align: right; }
.workout-editor { max-width: 48rem; margin: 0 auto; }
.workout-editor form { margin-top: 2rem; }
.builder-heading { display: flex; align-items: baseline; justify-content: space-between; margin-top: 2.5rem; }
.builder-heading h2 { margin: 0; font-size: 1.25rem; }
.builder-heading span { color: var(--muted); font-size: .85rem; }
.selected-exercises { margin-top: 1rem; }
.selected-exercise { display: grid; grid-template-columns: minmax(0, 1fr) 5rem 6.5rem; gap: .75rem; padding: 1rem 0; border-top: 1px solid var(--border); }
.selected-exercise__identity, .logger-exercise__identity { display: flex; min-width: 0; align-items: center; gap: .75rem; }
.selected-exercise__title { display: flex; min-width: 0; flex-direction: column; justify-content: center; }
.selected-exercise label { margin: 0; color: var(--muted); font-size: .72rem; }
.selected-exercise input[type="number"] { min-height: 44px; margin-top: .25rem; padding: 0 .65rem; }
.workout-variations { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .65rem; margin: 0 0 .75rem; border-top: 1px solid var(--border); padding-top: .75rem; }
.workout-variations label { color: var(--muted); font-size: .72rem; font-weight: 650; }
.workout-variations select { min-height: 44px; margin-top: .25rem; padding: 0 .65rem; background: var(--white); color: var(--ink); font-size: 16px; }
.order-actions { grid-column: 1 / -1; display: flex; gap: .5rem; }
.order-actions button { width: auto; min-width: 44px; min-height: 40px; padding: .35rem .7rem; border-color: var(--border); background: var(--white); color: var(--muted); font-size: .85rem; }
.order-actions button:last-child { margin-left: auto; }
.exercise-picker { margin-top: 1rem; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.exercise-picker summary { min-height: 56px; padding: 1rem 0; color: var(--blue); font-weight: 700; cursor: pointer; }
.picker-controls { padding: .5rem 0 .1rem; background: var(--white); }
.picker-controls .filter-row { margin-top: .75rem; margin-bottom: .25rem; }
.picker-list { display: grid; }
.picker-exercise { display: flex; width: 100%; min-height: 70px; flex-direction: row; align-items: center; gap: .75rem; border-width: 1px 0 0; border-color: var(--border); border-radius: 0; padding: .5rem 0; background: var(--white); color: var(--ink); text-align: left; }
.picker-source[hidden], .picker-exercise[hidden], .picker-empty[hidden], .exercise-recommendation-cta[hidden] { display: none; }
.picker-exercise span { color: var(--muted); font-size: .82rem; font-weight: 400; }
.picker-exercise:disabled { opacity: .4; }
.picker-empty { padding: 1.25rem 0; }
.picker-empty h3 { margin: 0; font-size: 1.15rem; }
.picker-empty > p { margin: .25rem 0 1rem; color: var(--muted); }
.picker-empty .exercise-recommendation-cta { margin-bottom: 0; }
.picker-controls > .exercise-recommendation-cta { margin: 1rem 0; }
.editor-actions { margin-top: 2rem; }
.editor-actions--top { margin: 0 0 1.25rem; }
.delete-action { display: inline-block; margin-top: 1.5rem; color: #b42318; font-size: .9rem; }
.saved-workout, .live-workout, .workout-summary, .finish-confirmation { width: min(100%, 46rem); margin: 0 auto; }
.saved-workout__exercises { margin: 2rem 0; border-top: 1px solid var(--border); }
.saved-workout__exercises div { display: flex; min-height: 64px; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--border); }
.saved-workout__exercises span { color: var(--muted); font-size: .88rem; }
.start-workout { margin-top: 1rem; }
.selected-exercise { display: block; border: 1px solid var(--border); border-radius: 14px; padding: 1rem; }
.selected-exercise + .selected-exercise { margin-top: 1rem; }
.selected-exercise__title { margin-bottom: .75rem; }
.planned-set { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr) minmax(0, 1fr) 2.5rem; gap: .5rem; align-items: end; margin-top: .5rem; }
.planned-set > span { align-self: center; color: var(--muted); font-size: .82rem; font-weight: 700; text-align: center; }
.planned-set label { margin: 0; font-size: .7rem; text-transform: uppercase; }
.planned-set input { min-height: 46px; padding: 0 .6rem; font-size: 16px; }
.planned-set button { min-height: 46px; padding: 0; border-color: var(--border); background: var(--white); color: var(--muted); }
.text-button { display: inline-flex; width: auto; min-height: 44px; margin-top: .5rem; padding: .4rem 0; background: transparent; color: var(--blue); }
.text-button[hidden] { display: none; }
.builder-exercise-details { margin: -.2rem 0 .75rem; }
.builder-exercise-details summary { display: inline-flex; min-height: 44px; align-items: center; color: var(--blue); font-size: .85rem; font-weight: 650; cursor: pointer; }
.builder-exercise-details summary span:last-child, .builder-exercise-details[open] summary span:first-child { display: none; }
.builder-exercise-details[open] summary span:last-child { display: inline; }
.builder-exercise-details p { margin: 0 0 .75rem; border-left: 2px solid #bfdbfe; padding-left: .75rem; color: var(--muted); font-size: .88rem; white-space: pre-line; }
.picker-filter-grid { display: grid; gap: .5rem; margin-top: .75rem; }
.picker-filter-grid label { margin: 0; }
.live-workout__header { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.live-workout__heading { display: contents; }
.live-workout__header h1 { margin: 0; font-size: clamp(2rem, 8vw, 3rem); }
.session-progress { display: flex; flex: 0 0 auto; flex-direction: column; align-items: flex-end; color: var(--muted); font-size: .8rem; }
.session-progress > strong { color: var(--ink); font-size: 1.2rem; }
.timer-label { color: var(--muted); font-size: .65rem; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.rest-timer { display: flex; min-width: 7.25rem; flex-direction: column; align-items: center; justify-content: center; border: 1px solid #bfdbfe; border-radius: 12px; padding: .45rem .65rem; background: #eff6ff; }
.rest-timer[hidden] { display: none; }
.rest-timer strong { color: var(--blue); font-size: 1.45rem; line-height: 1.15; }
.rest-timer button { min-height: 44px; margin: .15rem 0 -.35rem; border: 0; padding: 0 .75rem; background: transparent; color: var(--blue); font-size: .78rem; }
.rest-timer button[hidden] { display: none; }
.rest-timer.is-ready { border-color: #86efac; background: #dcfce7; }
.rest-timer.is-ready .timer-label, .rest-timer.is-ready strong { color: #166534; }
.logger-exercise { margin: 0 0 1.25rem; border: 1px solid var(--border); border-radius: 16px; padding: 1rem; }
.logger-exercise__heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .85rem; }
.logger-exercise__heading h2 { margin: 0; font-size: 1.15rem; overflow-wrap: anywhere; }
.logger-exercise__actions { display: flex; flex: 0 0 auto; align-items: center; gap: .2rem; }
.logger-exercise__actions form { margin: 0; }
.logger-move, .logger-exercise__actions .text-action { display: inline-flex; min-height: 44px; align-items: center; padding: 0 .45rem; font-size: .72rem; font-weight: 750; }
.logger-move { color: var(--blue); }
.set-grid { display: grid; grid-template-columns: 1.7rem minmax(4.2rem, 1.3fr) minmax(3.5rem, 1fr) minmax(3.25rem, .8fr) 3rem; gap: .35rem; align-items: center; }
.set-grid--heading { margin-bottom: .35rem; padding: 0 .6rem 0 .2rem; color: var(--muted); font-size: .65rem; font-weight: 750; letter-spacing: .04em; text-align: center; text-transform: uppercase; }
.set-planned { margin: .55rem .6rem .05rem 2.05rem; color: var(--muted); font-size: .78rem; line-height: 1.4; overflow-wrap: anywhere; }
.set-planned strong { color: var(--ink); font-size: .7rem; letter-spacing: .03em; text-transform: uppercase; }
.set-row { margin: 0; border-radius: 10px; padding: .35rem .6rem .35rem .2rem; transition: background-color .15s; }
.set-row > strong, .set-previous { text-align: center; }
.set-previous { color: var(--muted); font-size: .76rem; white-space: nowrap; }
.set-row input[type="number"] { min-height: 48px; padding: 0 .4rem; font-size: 16px; text-align: center; }
.set-row input[type="hidden"] { display: none; }
.set-done { min-height: 48px; border: 1px solid var(--border); padding: 0; background: var(--white); color: var(--muted); font-size: 1.25rem; }
.set-row.is-complete { background: #ecfdf3; box-shadow: inset 0 0 0 1px #86efac; }
.set-row.is-complete .set-done { border-color: var(--blue); background: var(--blue); color: var(--white); font-weight: 800; }
.set-row.has-error { outline: 2px solid #fecaca; }
.set-remove { margin: -.15rem 0 .25rem; text-align: right; font-size: .72rem; }
.set-remove a { color: var(--muted); }
.logger-add-set { margin-top: .25rem; }
.logger-add-exercise { margin: 1.5rem 0; border: 1px solid var(--border); border-radius: 14px; padding: 0 1rem; }
.logger-add-exercise summary { min-height: 52px; padding: .85rem 0; color: var(--blue); font-weight: 700; cursor: pointer; }
.logger-add-exercise form { margin: 0 0 1rem; }
.active-exercise-picker__list { max-height: 20rem; margin: .75rem 0; overflow-y: auto; border: 1px solid var(--border); border-radius: 12px; }
.active-exercise-picker__source > strong { display: block; padding: .75rem .85rem .35rem; color: var(--muted); font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
.active-exercise-choice { display: flex; min-height: 52px; align-items: center; gap: .7rem; margin: 0; padding: .45rem .85rem; border-bottom: 1px solid var(--border); cursor: pointer; }
.active-exercise-choice:last-child { border-bottom: 0; }
.active-exercise-choice input { width: 1.1rem; min-height: 1.1rem; margin: 0; }
.active-exercise-choice span { display: flex; min-width: 0; flex-direction: column; }
.active-exercise-choice b { overflow-wrap: anywhere; }
.active-exercise-choice small { color: var(--muted); }
.active-exercise-variations { margin: .75rem 0; }
.active-exercise-variations[hidden] { display: none; }
.active-exercise-variations__heading { grid-column: 1 / -1; display: flex; min-width: 0; flex-direction: column; }
.active-exercise-variations__heading b { overflow-wrap: anywhere; }
.active-exercise-variations__heading small, .active-exercise-variations__heading span { color: var(--muted); }
.active-exercise-variations__heading span { margin-top: .65rem; font-size: .72rem; font-weight: 650; }
.active-custom-exercise { margin: 1rem 0; border-top: 1px solid var(--border); padding-top: .5rem; }
.active-custom-exercise > summary { min-height: 48px; color: var(--blue); font-weight: 700; }
.finish-workout { margin-top: .5rem; }
.finish-confirmation { padding-top: 12vh; text-align: center; }
.finish-confirmation h1 { max-width: 14ch; margin-right: auto; margin-left: auto; }
.finish-confirmation__actions { display: grid; gap: .75rem; width: min(100%, 24rem); margin: 2rem auto 0; }
.finish-confirmation__actions form { margin: 0; }
.workout-summary { text-align: center; }
.summary-brand { margin-bottom: 2.5rem; }
.workout-summary h1 { margin-bottom: .5rem; }
.workout-summary h2 { margin-top: 0; color: var(--muted); }
.summary-metrics { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; margin: 2rem 0; }
.summary-metrics div { display: flex; min-height: 96px; flex-direction: column; justify-content: center; border: 1px solid var(--border); border-radius: 14px; }
.summary-metrics strong { font-size: 1.5rem; }
.summary-metrics span { color: var(--muted); font-size: .78rem; }
.summary-exercises { margin: 0 0 2rem; border-top: 1px solid var(--border); text-align: left; }
.summary-exercises > div { padding: .75rem 0; border-bottom: 1px solid var(--border); }
.summary-exercise { display: flex; align-items: center; gap: .75rem; }
.summary-exercise__copy > span { color: var(--muted); font-size: .82rem; }
.summary-exercise .exercise-variation-snapshot { margin-bottom: 0; }
.share-feedback { min-height: 1.5rem; margin: .5rem 0; font-size: .82rem; }
.share-card-panel { margin-top: 2rem; border-top: 1px solid var(--border); padding-top: 2rem; text-align: left; scroll-margin-top: 5rem; }
.share-card-panel[hidden] { display: none; }
.share-card-panel h2 { margin: 0 0 1rem; font-size: 1.35rem; }
.share-format { display: grid; grid-template-columns: repeat(2, 1fr); gap: .5rem; }
.share-format button { min-height: 46px; border-color: var(--border); background: var(--white); color: var(--muted); }
.share-format button.is-active { border-color: #bfdbfe; background: #eff6ff; color: var(--blue); }
.share-card-preview { display: grid; min-height: 18rem; place-items: center; margin: 1rem 0; border-radius: 16px; padding: 1rem; background: var(--surface); }
.share-card-preview canvas { display: block; width: auto; max-width: 100%; max-height: min(62vh, 42rem); border: 1px solid var(--border); background: var(--white); box-shadow: 0 8px 24px rgba(17,19,24,.08); }
.share-actions { display: grid; gap: .65rem; }
.share-actions .button { margin: 0; }
.share-actions [hidden] { display: none; }
.summary-tagline { margin: 2rem 0; color: var(--muted); font-size: .85rem; }
.today-action { margin-top: 1.5rem; }
.today-page, .calendar-page { width: min(100%, 46rem); margin: 0 auto; }
.today-page > h1 { margin-bottom: 2rem; font-size: clamp(2rem, 8vw, 3rem); }
.today-schedules { margin-top: 2rem; }
.today-schedule { display: flex; min-height: 82px; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--border); }
.today-schedule:first-of-type { border-top: 1px solid var(--border); }
.schedule-status { display: flex; min-width: 0; align-items: center; gap: .65rem; }
.schedule-status > div { display: flex; min-width: 0; flex-direction: column; }
.schedule-status span { margin-top: .15rem; color: var(--muted); font-size: .78rem; }
.schedule-status__mark { width: 1.25rem; height: 1.25rem; flex: 0 0 auto; }
.today-rest { margin-top: 2rem; }
.today-rest p { margin-bottom: .3rem; }
.today-feedback { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin-top: 6rem; font-size: .82rem; }
.today-feedback__action { min-height: 38px; display: inline-flex; align-items: center; border: 1px solid #bfdbfe; border-radius: 10px; padding: .45rem .75rem; background: #eff6ff; color: var(--blue); font-weight: 650; }
.today-feedback__action:hover, .today-feedback__action:focus { border-color: #93c5fd; background: #dbeafe; }
.today-feedback__action:focus-visible { outline: 3px solid #bfdbfe; outline-offset: 2px; }
.calendar-page .page-heading { margin-bottom: 1.5rem; }
.calendar-month { border: 1px solid var(--border); border-radius: 16px; padding: .75rem; background: var(--white); }
.calendar-month__heading { display: grid; min-height: 52px; grid-template-columns: 52px 1fr 52px; align-items: center; }
.calendar-month__heading h2 { margin: 0; font-size: 1.15rem; text-align: center; }
.calendar-month__heading a { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; border-radius: 10px; color: var(--ink); font-size: 1.25rem; }
.calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .2rem; }
.calendar-grid--labels { margin: .35rem 0; color: var(--muted); font-size: .7rem; font-weight: 750; text-align: center; }
.calendar-day { position: relative; display: flex; aspect-ratio: 1; min-width: 0; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 10px; color: var(--ink); font-size: .85rem; }
.calendar-day--blank { pointer-events: none; }
.calendar-day.is-today { border-color: #bfdbfe; color: var(--blue); font-weight: 750; }
.calendar-day.is-selected { background: #eff6ff; color: var(--blue); font-weight: 750; }
.calendar-day.has-workouts small { position: absolute; right: 4px; bottom: 3px; display: flex; width: 14px; height: 14px; align-items: center; justify-content: center; border-radius: 999px; background: var(--blue); color: var(--white); font-size: .55rem; font-weight: 750; }
.calendar-selected { margin-top: 2rem; }
.calendar-selected h2 { margin-bottom: .75rem; font-size: 1.5rem; }
.schedule-list { border-top: 1px solid var(--border); }
.schedule-row { display: flex; min-height: 82px; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--border); }
.schedule-row__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .25rem .8rem; }
.schedule-row__actions a { display: inline-flex; min-height: 44px; align-items: center; color: var(--blue); font-size: .82rem; font-weight: 650; }
.calendar-empty { margin: 0; padding: 1.25rem 0; color: var(--muted); }
.schedule-form { display: grid; gap: .75rem; margin-top: 1.5rem; border-radius: 14px; padding: 1rem; background: var(--surface); }
.schedule-form .input { margin: 0; }
.schedule-form .button { margin: 0; }
.calendar-first { margin-top: 1.5rem; }
.schedule-editor { width: min(100%, 36rem); margin: 0 auto; }
.schedule-editor h1 { font-size: clamp(2rem, 8vw, 3rem); }
.schedule-editor form { display: grid; gap: 1rem; margin-top: 2rem; }
.schedule-editor form .input, .schedule-editor form .button { margin: 0; }
.progress-page, .history-page, .history-detail, .records-page, .record-detail { width: min(100%, 46rem); margin: 0 auto; }
.body-progress-page { width: min(100%, 52rem); margin: 0 auto; }
.body-progress-page h1 { margin-bottom: .75rem; font-size: clamp(2rem, 8vw, 3rem); }
.measurement-grid { display: grid; gap: .75rem; margin-top: 2rem; }
.measurement-card { display: flex; min-height: 112px; flex-direction: column; justify-content: center; border: 1px solid var(--border); border-radius: 14px; padding: 1rem; color: var(--ink); }
.measurement-card > span { color: var(--muted); font-size: .8rem; }
.measurement-card strong { margin: .2rem 0; font-size: 1.45rem; line-height: 1.15; }
.measurement-card small, .measurement-latest small { color: var(--muted); font-size: .65em; font-weight: 650; }
.body-measurement-form { max-width: 40rem; }
.body-measurement-form form { display: grid; gap: 1rem; margin-top: 2rem; }
.body-measurement-form form > label { margin: 0; }
.measurement-fields { display: grid; gap: 1rem; }
.measurement-fields .input { margin: 0; }
.measurement-latest { display: flex; flex-direction: column; margin: 2rem 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 1.25rem 0; }
.measurement-latest > span { color: var(--muted); font-size: .82rem; }
.measurement-latest strong { margin: .15rem 0; font-size: 2rem; }
.measurement-heading-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .65rem; }
.measurement-heading-actions .button { margin: 0; }
.measurement-chart { margin: 2rem 0 3rem; }
.range-controls { display: flex; gap: .35rem; overflow-x: auto; margin-bottom: 1rem; }
.range-controls button { min-width: 52px; min-height: 44px; margin: 0; border: 1px solid var(--border); border-radius: 999px; padding: 0 .7rem; background: var(--white); color: var(--muted); font-size: .76rem; font-weight: 700; }
.range-controls button.is-active { border-color: #bfdbfe; background: #eff6ff; color: var(--blue); }
.chart-frame { min-height: 260px; border: 1px solid var(--border); border-radius: 14px; padding: .75rem; background: var(--white); }
.chart-frame svg { display: block; width: 100%; height: 280px; }
.chart-frame svg[hidden] { display: none; }
.chart-grid { stroke: #eef2f7; stroke-width: 1; }
.chart-label { fill: var(--muted); font-family: inherit; font-size: 11px; }
.chart-area { fill: #2563eb; opacity: .09; }
.chart-line { fill: none; stroke: var(--blue); stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; }
.chart-dot { fill: var(--white); stroke: var(--blue); stroke-width: 2.5; }
.chart-frame p { padding: 5rem 1rem; color: var(--muted); text-align: center; }
.measurement-history h2 { font-size: 1.35rem; }
.measurement-row { display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--border); }
.measurement-row div { display: flex; flex-direction: column; }
.measurement-row span { color: var(--muted); font-size: .8rem; }
.measurement-row a { min-height: 44px; display: inline-flex; align-items: center; font-weight: 650; }
.measurement-delete { margin-top: 2rem; border-top: 1px solid var(--border); padding-top: 1.5rem; }
.measurement-delete .button { margin: 0; }
.weight-share-page { width: min(100%, 46rem); margin: 0 auto; }
.weight-share-page > h1 { margin-bottom: .5rem; }
.weight-share-controls { display: grid; gap: 1.25rem; margin-top: 2rem; }
.control-label { display: block; margin-bottom: .55rem; font-size: .8rem; font-weight: 700; }
.weight-share-privacy { display: grid; gap: .2rem; margin: 1.5rem 0 0; border: 1px solid #bfdbfe; border-radius: 14px; padding: 1rem; background: #eff6ff; }
.weight-share-privacy span { color: var(--muted); font-size: .85rem; }
.weight-share-privacy a { width: fit-content; margin-top: .35rem; font-size: .85rem; font-weight: 700; }
.weight-share-page [data-share-empty] { margin: 0; padding: 4rem 1rem; color: var(--muted); text-align: center; }
.progress-page h1, .history-page h1, .history-detail h1 { margin-bottom: .75rem; font-size: clamp(2rem, 8vw, 3rem); }
.metric-row { display: grid; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.metric-row--two { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 2rem 0 1rem; }
.metric-row--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.metric-row div { display: flex; min-width: 0; min-height: 84px; flex-direction: column; align-items: center; justify-content: center; padding: .75rem .25rem; text-align: center; }
.metric-row strong { font-size: 1.55rem; line-height: 1.1; }
.metric-row span { margin-top: .3rem; color: var(--muted); font-size: .74rem; line-height: 1.25; }
.progress-recent { color: var(--muted); font-size: .86rem; text-align: center; }
.progress-hub { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-top: 2rem; border-top: 1px solid var(--border); padding-top: 1.5rem; }
.progress-hub a { position: relative; display: flex; min-width: 0; min-height: 88px; flex-direction: column; justify-content: center; border: 1px solid var(--blue); border-radius: 14px; padding: .8rem 2rem .8rem .8rem; background: var(--blue); color: var(--white); }
.progress-hub a::after { position: absolute; top: 50%; right: .75rem; color: rgba(255,255,255,.85); content: '→'; transform: translateY(-50%); }
.progress-hub strong { font-size: .9rem; line-height: 1.2; }
.progress-hub span { margin-top: .25rem; color: rgba(255,255,255,.8); font-size: .75rem; line-height: 1.25; }
.records-page h1, .record-detail h1 { margin-bottom: .75rem; font-size: clamp(2rem, 8vw, 3rem); }
.records-list { margin-top: 2rem; border-top: 1px solid var(--border); }
.record-row { display: flex; min-height: 140px; flex-direction: column; justify-content: center; border-bottom: 1px solid var(--border); color: var(--ink); }
.record-row > span { margin-top: .2rem; color: var(--muted); font-size: .84rem; }
.record-row .record-row__action { margin-top: .45rem; color: var(--blue); font-weight: 650; }
.record-detail > h1 { margin-top: 1.5rem; }
.record-performance { display: block; margin-top: .35rem; font-size: clamp(2.1rem, 10vw, 4rem); line-height: 1.1; }
.record-date { margin: .75rem 0 2rem; color: var(--muted); }
.record-history { margin-top: 2.5rem; border-top: 1px solid var(--border); padding-top: 1.5rem; }
.record-history h2 { font-size: 1.35rem; }
.record-history div { display: flex; min-height: 64px; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--border); }
.record-history span { color: var(--muted); font-size: .82rem; }
.summary-records { margin: 0 0 2rem; border: 1px solid #bfdbfe; border-radius: 14px; padding: 1rem; background: #eff6ff; text-align: left; }
.summary-records .eyebrow { margin: 0 0 .5rem; }
.summary-records div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .55rem 0; }
.summary-records div + div { border-top: 1px solid #bfdbfe; }
.summary-records span { color: var(--blue); font-weight: 700; white-space: nowrap; }
.history-list { margin-top: 2rem; border-top: 1px solid var(--border); }
.history-filter { display: grid; grid-template-columns: minmax(0, 1fr); gap: .75rem; align-items: end; margin: 2rem 0 0; }
.history-filter label { min-width: 0; margin: 0; }
.history-date-control { position: relative; display: flex; width: 100%; min-height: 52px; align-items: center; margin-top: .35rem; border: 1px solid var(--border); border-radius: 12px; padding: 0 1rem; background: var(--white); overflow: hidden; }
.history-date-control:focus-within { border-color: var(--blue); outline: 3px solid #dbeafe; }
.history-date-control__value { color: var(--muted); font-weight: 400; pointer-events: none; }
.history-date-control.has-value .history-date-control__value { color: var(--ink); }
.history-date-control input[type="date"] { position: absolute; inset: 0; z-index: 1; display: block; width: 100%; min-width: 0; max-width: 100%; min-height: 52px; margin: 0; padding: 0; opacity: 0; -webkit-appearance: auto; appearance: auto; cursor: pointer; }
.history-filter .button { margin: 0; }
.history-filter__clear { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; color: var(--muted); font-weight: 650; }
.history-filter__summary, .history-filter__error { margin: 1rem 0 0; color: var(--muted); font-size: .85rem; }
.history-filter__error { color: #b42318; }
.history-row { display: flex; min-height: 132px; flex-direction: column; justify-content: center; border-bottom: 1px solid var(--border); color: var(--ink); }
.history-row > span { color: var(--muted); font-size: .84rem; }
.history-row .history-row__metrics { margin-top: .4rem; line-height: 1.5; }
.history-row .history-row__action { margin-top: .4rem; color: var(--blue); font-weight: 650; }
.history-exercises { margin: 2.5rem 0; }
.history-exercise { margin-top: 2rem; padding-bottom: 2rem; border-bottom: 1px solid var(--border); }
.history-exercise:last-child { border-bottom: 0; }
.history-exercise h2 { margin-bottom: .75rem; font-size: 1.2rem; }
.history-exercise__identity { display: flex; align-items: center; gap: .75rem; margin-bottom: .75rem; }
.history-exercise__identity h2 { margin: 0; }
.history-exercise__identity h2 a { color: var(--ink); }
.history-exercise__identity p { margin: .2rem 0 0; color: var(--muted); font-size: .82rem; }
.history-set-grid { display: grid; min-height: 48px; grid-template-columns: 3rem minmax(0, 1fr) minmax(0, .75fr); align-items: center; border-bottom: 1px solid var(--border); }
.history-set-grid > :not(:first-child) { text-align: right; }
.history-set-grid--heading { min-height: 36px; color: var(--muted); font-size: .7rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.history-detail__metrics { margin: 1.75rem 0 2.25rem; }
.history-pagination { display: grid; min-height: 64px; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; margin-top: 1.5rem; border-top: 1px solid var(--border); color: var(--muted); font-size: .82rem; }
.history-pagination > :last-child { text-align: right; }
.saved-workout__actions { display: grid; gap: .75rem; margin-top: 1rem; }
.saved-workout__actions .button { margin: 0; }
.button--danger { border-color: #b42318; background: #b42318; color: var(--white); }
.delete-confirmation { width: min(100%, 36rem); margin: 8vh auto 0; }
.delete-confirmation h1 { font-size: clamp(2rem, 8vw, 3rem); }
.delete-confirmation > p:not(.eyebrow) { color: var(--muted); }
.delete-confirmation__actions { display: grid; gap: .75rem; margin-top: 2rem; }
.delete-confirmation__actions form { margin: 0; }

@media (max-width: 560px) {
    .live-workout__header { display: contents; }
    .live-workout__heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: flex-start; gap: 1rem; margin-bottom: 1.75rem; }
    .rest-timer { position: sticky; top: 64px; z-index: 1; display: grid; width: 100%; min-width: 0; min-height: 48px; grid-template-columns: minmax(0, 1fr) auto minmax(44px, 1fr); gap: .75rem; margin: -1rem 0 1.75rem; padding: 0 .75rem; }
    .rest-timer .timer-label { text-align: left; }
    .rest-timer strong { text-align: center; white-space: nowrap; }
    .rest-timer button { width: auto; min-width: 44px; margin: 0; padding: 0; justify-self: end; }
    .page-heading--actions { display: block; }
    .page-heading--actions .button { width: 100%; margin-top: 1.25rem; }
    .measurement-heading-actions { display: grid; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin-top: 1.25rem; }
    .measurement-heading-actions .button { width: 100%; min-width: 0; margin: 0; padding-right: .75rem; padding-left: .75rem; }
    .selected-exercise { grid-template-columns: minmax(0, 1fr) 4.5rem 5.7rem; }
    .logger-exercise__heading { align-items: flex-start; }
    .exercise-thumbnail--active { width: 72px; height: 54px; flex-basis: 72px; }
    .calendar-month { padding: .5rem; }
    .calendar-day { border-radius: 8px; font-size: .78rem; }
    .schedule-row { align-items: flex-start; flex-direction: column; justify-content: center; gap: .2rem; padding: .7rem 0; }
    .schedule-row__actions { width: 100%; justify-content: flex-start; gap: 1.1rem; }
    .today-schedule { align-items: flex-start; flex-direction: column; justify-content: center; padding: .85rem 0; }
}

.account-page { max-width: 36rem; }
.settings-page { max-width: 36rem; margin-right: auto; margin-left: auto; }
.settings-page h1 { margin-bottom: .5rem; }
.settings-page .settings-heading { max-width: 18ch; font-size: clamp(1.9rem, 8vw, 3rem); }
.success-confirmation { margin: 1rem 0; }
.success-confirmation .message { width: 100%; max-width: none; }
.settings-form { display: grid; gap: 1rem; margin-top: 2rem; }
.settings-form .input { margin: 0; }
.settings-form .help { line-height: 1.4; }
.account-page h1 { margin-bottom: .5rem; }
.account-name { margin-bottom: .15rem; font-size: 1.35rem; font-weight: 700; }
.account-prompt { display: flex; flex-direction: column; margin: 1.5rem 0; border: 1px solid #bfdbfe; border-radius: 14px; padding: 1rem; background: #eff6ff; }
.account-prompt span { margin-top: .25rem; color: var(--muted); font-size: .9rem; }
.account-links { margin-top: 1.25rem; border-top: 1px solid var(--border); }
.account-links + .account-links { margin-top: 1rem; }
.account-links a { display: flex; min-height: 60px; flex-direction: column; justify-content: center; border-bottom: 1px solid var(--border); color: var(--ink); }
.account-links span { margin-top: .1rem; color: var(--muted); font-size: .88rem; line-height: 1.3; }
.account-section { margin-top: 1rem; }
.account-section h2 { margin: 0 0 .25rem; color: var(--blue); font-size: 1rem; letter-spacing: .01em; }
.account-section > .muted { margin: 0; }
.account-section .account-links { margin-top: .75rem; }
.feature-requests-page { width: min(100%, 42rem); margin: 0 auto; }
.feature-requests-page h1 { margin-bottom: 1rem; font-size: clamp(2rem, 8vw, 3rem); }
.feature-request-philosophy { margin: 1.5rem 0 2rem; border-left: 3px solid var(--blue); padding: .25rem 0 .25rem 1rem; }
.feature-request-philosophy h2, .feature-request-form h2, .my-feature-requests h2 { margin-bottom: .5rem; font-size: 1.2rem; }
.feature-request-philosophy p { margin: 0; color: var(--muted); }
.feature-request-form { border: 1px solid var(--border); border-radius: 14px; padding: 1rem; background: var(--surface); }
.feature-request-form form { margin-top: 1rem; }
.my-feature-requests { margin-top: 2.5rem; }
.feature-request-list { border-top: 1px solid var(--border); }
.feature-request-list article { border-bottom: 1px solid var(--border); padding: 1rem 0; }
.feature-request-list__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.feature-request-list h3 { margin: 0; font-size: 1rem; overflow-wrap: anywhere; }
.status-pill { flex: 0 0 auto; border-radius: 999px; padding: .25rem .55rem; background: #eff6ff; color: var(--blue); font-size: .72rem; font-weight: 700; }
.feature-request-date { margin: .3rem 0 .65rem; color: var(--muted); font-size: .78rem; }
.feature-request-details { margin: 0; white-space: normal; overflow-wrap: anywhere; }
.problem-report-page { width: min(100%, 42rem); margin: 0 auto; }
.problem-report-page h1 { margin-bottom: .75rem; font-size: clamp(2rem, 8vw, 3rem); }
.problem-report-intro { color: var(--muted); }
.problem-report-form { margin-top: 2rem; }
.problem-report-form textarea { min-height: 12rem; }
.problem-report-alternative { margin-top: 2rem; color: var(--muted); font-size: .9rem; }
.problem-report-alternative a, .problem-report-return a { display: inline-flex; min-height: 44px; align-items: center; font-weight: 650; }
.problem-report-return { margin-top: 1rem; }
.admin-header { min-height: 64px; padding: .75rem max(1.25rem, env(safe-area-inset-left)); border-bottom: 1px solid var(--border); }
.admin-brand { display: flex; min-width: 0; align-items: center; gap: .55rem; }
.admin-brand .wordmark { flex: 0 1 auto; min-width: 0; }
.admin-brand .brand-lockup { min-width: 0; }
.admin-label { color: var(--muted); font-size: .85rem; font-weight: 650; }
.env-badge { flex: 0 0 auto; border-radius: 999px; padding: .15rem .45rem; background: #eff6ff; color: var(--blue); font-size: .68rem; font-weight: 750; letter-spacing: .06em; }
.admin-body { min-width: 0; }
.admin-nav { display: flex; min-height: 52px; align-items: stretch; overflow-x: auto; padding: 0 max(1rem, env(safe-area-inset-left)); border-bottom: 1px solid var(--border); scrollbar-width: thin; }
.admin-nav a { display: inline-flex; min-height: 52px; flex: 0 0 auto; align-items: center; padding: 0 .65rem; color: var(--muted); font-size: .88rem; font-weight: 650; white-space: nowrap; }
.admin-nav a.is-active { box-shadow: inset 0 -2px var(--blue); color: var(--blue); }
.admin-nav .admin-nav__back { margin-left: auto; padding-right: .25rem; }
.catalogue-nav { display: flex; min-height: 48px; align-items: stretch; gap: .25rem; overflow-x: auto; padding: 0 max(1rem, env(safe-area-inset-left)); border-bottom: 1px solid var(--border); background: var(--surface); scrollbar-width: thin; }
.catalogue-nav a { display: inline-flex; min-height: 48px; flex: 0 0 auto; align-items: center; padding: 0 .7rem; color: var(--muted); font-size: .84rem; font-weight: 650; white-space: nowrap; }
.catalogue-nav a.is-active { color: var(--blue); }
.admin-content { width: min(100%, 68rem); margin: 0 auto; padding: 2.5rem 1.25rem 5rem; }
.registration-control { margin-bottom: 2rem; border: 1px solid var(--border); border-radius: 14px; padding: 1.25rem; background: var(--surface); }
.registration-control__heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.registration-control__heading h2 { margin: 0; font-size: 1.35rem; }
.registration-control > p:not(.eyebrow) { margin: .65rem 0 1rem; color: var(--muted); }
.registration-control .button { margin: 0; }
.registration-status { border-radius: 999px; padding: .3rem .65rem; background: #eef0f3; color: var(--muted); font-size: .72rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.registration-status--on { background: #eff6ff; color: var(--blue); }
.registration-status--locked { background: #fef2f2; color: #b42318; }
.registration-control .registration-control__audit { margin: 1rem 0 0; border-top: 1px solid var(--border); padding-top: .8rem; font-size: .78rem; }
.metric-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; }
.metric-grid article { display: flex; min-height: 104px; flex-direction: column; justify-content: center; border: 1px solid var(--border); border-radius: 14px; padding: 1rem; }
.metric-grid strong { display: block; font-size: 1.75rem; line-height: 1.1; letter-spacing: -.04em; }
.metric-grid span { display: block; margin-top: .4rem; color: var(--muted); font-size: .82rem; line-height: 1.3; }
.admin-section { margin-top: 3rem; }
.section-heading { display: flex; align-items: baseline; justify-content: space-between; }
.section-heading h2 { font-size: 1.25rem; }
.admin-list { border-top: 1px solid var(--border); }
.admin-list > a { display: flex; min-height: 70px; flex-direction: column; justify-content: center; border-bottom: 1px solid var(--border); color: var(--ink); overflow-wrap: anywhere; }
.admin-list span { color: var(--muted); font-size: .82rem; }
.admin-list__meta { display: flex; flex-wrap: wrap; gap: .15rem .65rem; margin-top: .15rem; }
.feedback-type--problem { color: #b42318; }
.admin-list__meta span { display: inline-block; }
.admin-feature-requests, .admin-feature-request-detail { max-width: 48rem; }
.admin-feature-requests .filter-row { margin-right: 0; margin-left: 0; padding-right: 0; padding-left: 0; }
.admin-feature-request-detail h1 { overflow-wrap: anywhere; }
.admin-feature-request-form { display: grid; gap: .5rem; margin-top: 2rem; }
.admin-feature-request-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }
.admin-feature-request-actions form { margin: 0; }
.danger-action { color: #991b1b; }
.admin-user { max-width: 38rem; }
.admin-user h1 { font-size: clamp(1.7rem, 7vw, 2.5rem); overflow-wrap: anywhere; }
.metadata-list { margin: 2rem 0; }
.metadata-list div { display: flex; min-height: 52px; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--border); }
.metadata-list dt { color: var(--muted); font-size: .85rem; }
.metadata-list dd { margin: 0; text-align: right; }
.admin-controls { display: grid; gap: 1rem; }
.admin-legal-state { margin: 2.5rem 0; }
.admin-legal-state h2 { font-size: 1.2rem; }
.admin-controls form { margin: 0; border: 1px solid var(--border); border-radius: 14px; padding: 1rem; }
select { width: 100%; min-height: 52px; border: 1px solid var(--border); border-radius: 12px; padding: 0 1rem; background: var(--white); font: inherit; }
.credential-once { margin-top: 2rem; border: 1px solid #bfdbfe; border-radius: 14px; padding: 1rem; background: #eff6ff; }
.credential-once p { margin: .5rem 0; color: var(--muted); }
.credential-once code { display: block; overflow-wrap: anywhere; font-size: 1rem; }
.catalogue-summary { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin: -1rem 0 1.5rem; color: var(--muted); font-size: .88rem; }
.catalogue-summary strong { color: var(--ink); }
.admin-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: 0 0 1.5rem; padding: 1rem; border-radius: 14px; background: var(--surface); }
.admin-filters .input { margin: 0; }
.admin-filters button { align-self: end; }
.exercise-admin-list strong { overflow-wrap: anywhere; }
.exercise-admin-editor, .exercise-admin-detail { max-width: 48rem; }
.exercise-admin-editor h1 { overflow-wrap: anywhere; }
.exercise-admin-form { margin-top: 2rem; }
.exercise-admin-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.exercise-admin-form select[multiple] { min-height: 9rem; padding-top: .5rem; padding-bottom: .5rem; }
.exercise-admin-copy { margin-top: 2rem; border-top: 1px solid var(--border); padding-top: 1.5rem; }
.exercise-admin-copy h2 { font-size: 1.2rem; }
.exercise-admin-copy img { display: block; width: min(100%, 28rem); max-height: 22rem; border-radius: 14px; object-fit: contain; background: var(--surface); }
.exercise-variations-admin { margin-top: 2rem; border-top: 1px solid var(--border); padding-top: 1.5rem; }
.variation-admin-group { margin-top: 1rem; border: 1px solid var(--border); border-radius: 14px; padding: 1rem; }
.variation-admin-group.is-archived, .variation-admin-option-wrap.is-archived { background: var(--surface); color: var(--muted); }
.variation-admin-row, .variation-admin-option { display: grid; grid-template-columns: minmax(0, 1fr) 10rem auto; align-items: end; gap: .75rem; }
.variation-admin-options { display: grid; gap: .75rem; margin-top: 1rem; border-top: 1px solid var(--border); padding-top: 1rem; }
.variation-admin-option { grid-template-columns: minmax(0, 1fr) 9rem 9rem auto; }
.variation-admin-order { display: flex; align-items: center; gap: .75rem; }
.variation-admin-order { margin-top: .5rem; }
.variation-admin-add-group { margin-top: 1.25rem; }
.catalogue-admin-editor { max-width: 36rem; }
.catalogue-admin-form { margin-top: 2rem; }
.catalogue-admin-form button { margin-top: .5rem; }
.catalogue-guidance { margin-top: 1rem; font-size: .85rem; }
.catalogue-note { margin-top: 2rem; border: 1px solid var(--border); border-radius: 14px; padding: 1rem; background: var(--surface); }
.catalogue-note p { margin: .35rem 0 0; color: var(--muted); font-size: .88rem; }
.custom-badge { display: inline-block; color: var(--blue); font-size: .68rem; font-weight: 800; letter-spacing: .08em; }
.custom-exercise-form { max-width: 42rem; }
.custom-exercise-form textarea { resize: vertical; }
.training-instructions { color: var(--muted); line-height: 1.55; }
.exercise-variation-snapshot { display: flex; flex-wrap: wrap; gap: .25rem .75rem; margin: .25rem 0 .75rem; color: var(--muted); font-size: .9rem; line-height: 1.4; overflow-wrap: anywhere; }
.exercise-variation-snapshot span { min-width: 0; }
.flexible-result { display: grid; gap: .8rem; max-width: 32rem; }
.flexible-result.is-complete { opacity: 1; }
.flexible-complete { justify-self: start; }
.flexible-incomplete { justify-self: start; background: transparent; border: 0; padding: .6rem 0; }
.flexible-complete-state { display: inline-flex; align-items: center; gap: .5rem; color: var(--blue); font-weight: 750; }
.flexible-complete-state b { display: inline-flex; width: 2rem; height: 2rem; align-items: center; justify-content: center; border-radius: 8px; background: var(--blue); color: var(--white); }
.pr-badge { display: inline-block; margin-left: .4rem; border-radius: 999px; padding: .15rem .45rem; background: #dbeafe; color: var(--blue); font-size: .7rem; font-weight: 800; vertical-align: middle; }
.history-result { color: var(--ink); font-size: 1.05rem; font-weight: 700; }
.set-grid--reps { grid-template-columns: 2.5rem minmax(5rem, 1fr) minmax(4rem, .7fr) 3rem; }
.history-set-grid--reps { grid-template-columns: 3rem 1fr; }

@media (min-width: 700px) {
    .progress-hub { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .measurement-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .measurement-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .metric-grid { grid-template-columns: repeat(4, 1fr); }
    .admin-content { padding-right: 2rem; padding-left: 2rem; }
    .admin-controls { grid-template-columns: repeat(2, 1fr); }
    .admin-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .picker-filter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .summary-metrics { grid-template-columns: repeat(4, 1fr); }
    .history-filter { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto auto; }
    .history-date-control { display: block; min-height: 0; border: 0; padding: 0; background: transparent; overflow: visible; }
    .history-date-control:focus-within { border-color: transparent; outline: 0; }
    .history-date-control__value { display: none; }
    .history-date-control input[type="date"] { position: static; width: 100%; min-height: 52px; border: 1px solid var(--border); padding: 0 1rem; opacity: 1; }
    .history-filter .button { width: auto; }
}

@media (max-width: 430px) {
    .exercise-recommendation-cta { align-items: stretch; flex-direction: column; gap: .75rem; }
    .exercise-recommendation-cta .button { width: 100%; }
    .my-exercise-row { align-items: flex-start; flex-direction: column; gap: .45rem; padding: .8rem 0; }
    .admin-header { padding-right: 1rem; padding-left: 1rem; }
    .admin-brand { gap: .45rem; }
    .admin-brand .brand-lockup { --lockup-size: 1.25rem; }
    .admin-label { font-size: .78rem; }
    .admin-content { padding: 2rem 1rem 4rem; }
    .page-heading { margin-bottom: 1.5rem; }
    .section-heading { align-items: center; gap: 1rem; }
    .section-heading h2 { margin-bottom: 0; }
    .catalogue-search { grid-template-columns: minmax(0, 1fr); }
    .catalogue-search .button { width: 100%; }
    .metadata-list div { display: grid; gap: .2rem; align-content: center; padding: .65rem 0; }
    .metadata-list dd { text-align: left; overflow-wrap: anywhere; }
    .admin-controls { grid-template-columns: minmax(0, 1fr); }
    .admin-filters, .exercise-admin-form__grid, .variation-admin-row, .variation-admin-option { grid-template-columns: minmax(0, 1fr); }
    .exercise-admin-list, .catalogue-admin-list { display: grid; gap: .75rem; border-top: 0; }
    .exercise-admin-list > a, .catalogue-admin-list > a { min-height: 82px; border: 1px solid var(--border); border-radius: 14px; padding: .85rem 1rem; background: var(--white); }
}

@media (max-width: 360px) {
    .metric-grid { grid-template-columns: minmax(0, 1fr); }
    .admin-nav a { padding-right: .35rem; padding-left: .35rem; font-size: .78rem; }
}
