.trainer-shell{max-width:1180px;margin:0 auto;padding:28px 0 48px}.trainer-nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:24px}.trainer-nav a{padding:10px 15px;border:1px solid #e7e5ea;border-radius:999px;text-decoration:none;color:#292929;font-weight:700}.trainer-nav a.active,.trainer-nav a:hover{background:#292929;color:#fff;border-color:#292929}.trainer-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:28px;border-radius:24px;background:linear-gradient(135deg,#26232d,#4c4264);color:#fff;margin-bottom:24px}.trainer-hero h1{margin:5px 0 8px;font-size:clamp(28px,4vw,44px)}.trainer-hero p{margin:0;color:#e4dfeb;max-width:720px}.trainer-badge{display:inline-flex;padding:7px 11px;border-radius:999px;background:#daf66b;color:#292929;font-size:12px;font-weight:800}.trainer-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border:0;border-radius:12px;background:#daf66b;color:#292929;text-decoration:none;font-weight:800;cursor:pointer}.trainer-button.secondary{background:#fff;border:1px solid #dedbe3}.trainer-button.danger{background:#fff1f1;color:#a12121;border:1px solid #f1cccc}.trainer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.trainer-card{padding:20px;border:1px solid #e8e5ec;border-radius:20px;background:#fff;box-shadow:0 10px 28px rgba(36,31,45,.06)}.trainer-card>img,.trainer-avatar{width:72px;height:72px;border-radius:22px;object-fit:cover;background:#eeeaf3}.trainer-card h2,.trainer-card h3{margin:13px 0 5px}.trainer-card p{color:#716a77}.trainer-meta{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.trainer-meta span{padding:6px 9px;border-radius:999px;background:#f2eff5;color:#514a5b;font-size:12px}.trainer-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0}.trainer-metric{padding:18px;border:1px solid #e7e3eb;border-radius:18px;background:#fff}.trainer-metric span{display:block;color:#817987;font-size:13px}.trainer-metric strong{display:block;margin-top:7px;font-size:26px}.trainer-panel{padding:22px;border:1px solid #e7e3eb;border-radius:20px;background:#fff;margin-bottom:20px}.trainer-panel h2{margin-top:0}.trainer-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.trainer-field{display:grid;gap:7px}.trainer-field.full{grid-column:1/-1}.trainer-field label{font-weight:800;color:#37323c}.trainer-field input,.trainer-field textarea,.trainer-field select{width:100%;box-sizing:border-box;border:1px solid #dcd7e1;border-radius:12px;padding:12px 13px;background:#fff;font:inherit}.trainer-field textarea{min-height:120px;resize:vertical}.trainer-goals{display:flex;gap:8px;flex-wrap:wrap}.trainer-goals label{border:1px solid #ddd7e2;border-radius:999px;padding:9px 12px}.trainer-table{width:100%;border-collapse:collapse}.trainer-table th,.trainer-table td{padding:12px;border-bottom:1px solid #eeeaf1;text-align:left;vertical-align:top}.trainer-exercise-row{display:grid;grid-template-columns:90px 1fr 1fr;gap:12px;padding:16px;border:1px solid #e8e4ec;border-radius:16px;margin-bottom:12px}.trainer-exercise-row .wide{grid-column:2/-1}.trainer-status{display:inline-flex;padding:6px 10px;border-radius:999px;background:#fff4d6;color:#775c11;font-size:12px;font-weight:800}.trainer-status.active{background:#e4f7e9;color:#17642d}.trainer-public-profile{display:grid;grid-template-columns:280px minmax(0,1fr);gap:36px;align-items:start}.trainer-public-photo{width:100%;aspect-ratio:1;border-radius:28px;object-fit:cover;background:#ece8f0}.trainer-choice{border:2px solid transparent}.trainer-choice.is-selected{border-color:#95bb10;background:#fbfff0}@media(max-width:900px){.trainer-grid,.trainer-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.trainer-public-profile{grid-template-columns:1fr}.trainer-public-photo{max-width:280px}}@media(max-width:640px){.trainer-shell{padding:18px 0 40px}.trainer-hero{grid-template-columns:1fr}.trainer-grid,.trainer-metrics,.trainer-form-grid{grid-template-columns:1fr}.trainer-field.full{grid-column:auto}.trainer-exercise-row{grid-template-columns:1fr}.trainer-exercise-row .wide{grid-column:auto}.trainer-table{display:block;overflow:auto}}

/* Trainer photo with certified overlay badge + rating (public trainer cards, profile, onboarding picker). */
.trainer-avatar { position: relative; display: inline-block; width: 72px; height: 72px; flex: 0 0 auto; border-radius: 22px; background: #eeeaf3; overflow: visible; vertical-align: top; }
.trainer-avatar img, .trainer-avatar__image { display: block; width: 100%; height: 100%; border-radius: inherit; object-fit: cover; background: #eeeaf3; }
.trainer-avatar--link { cursor: zoom-in; }
.trainer-avatar--large { width: 100%; height: auto; aspect-ratio: 1; border-radius: 28px; }
.trainer-avatar__badge { position: absolute; right: -4px; bottom: -4px; display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border: 2px solid #fff; border-radius: 999px; background: #1f9d55; color: #fff; font-size: 12px; font-weight: 800; line-height: 1; box-shadow: 0 2px 6px rgba(0, 0, 0, .18); }
.trainer-avatar--large .trainer-avatar__badge { width: 34px; height: 34px; right: 8px; bottom: 8px; font-size: 18px; border-width: 3px; }
.trainer-rating { display: inline-flex; align-items: center; gap: 4px; margin: 6px 0 0; color: #37323c; font-size: 13px; font-weight: 800; }
.trainer-rating small { color: #817987; font-weight: 600; }
.trainer-photo-dialog { border: 0; padding: 0; border-radius: 20px; background: transparent; max-width: min(92vw, 720px); }
.trainer-photo-dialog::backdrop { background: rgba(20, 16, 26, .78); }
.trainer-photo-dialog img { display: block; width: 100%; max-height: 86vh; object-fit: contain; border-radius: 20px; background: #000; }
.trainer-photo-dialog button { position: absolute; top: 10px; right: 10px; width: 40px; height: 40px; border: 0; border-radius: 999px; background: rgba(255, 255, 255, .92); font-size: 22px; line-height: 1; cursor: pointer; }

/* ---------------------------------------------------------------------------
   Optional trainer-or-Fitme step (website onboarding) — ts-*
   Reuses flow-card / trainer-card / trainer-grid / trainer-meta / trainer-button.
   --------------------------------------------------------------------------- */
.ts-page { --ts-line: #e3e5eb; --ts-muted: #6f6a78; --ts-soft: #f7f7fa; --ts-accent: #d7ff85; --ts-warn-bg: #fff4d6; --ts-warn: #775c11; --ts-ok-bg: #e4f7e9; --ts-ok: #17642d; }
.ts-page .flow-progress { width: 100%; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 8px; }
.ts-page .flow-progress--done span { background: #292929; }
.ts-step-head { margin-bottom: 22px; }
.ts-page[data-trainer-step] .ts-step-head .flow-title { max-width: 920px; font-size: clamp(19px, 1.6vw, 23px); line-height: 1.22; }
.ts-back { display: inline-block; margin-top: 10px; color: #292929; font-size: 13px; font-weight: 700; text-decoration: none; }
.ts-back:hover, .ts-link:hover { text-decoration: underline; }
.ts-link { color: #292929; font-weight: 700; text-decoration: underline; }
.ts-kicker { margin: 0 0 4px; font-size: 11px; letter-spacing: .08em; }
.flow-alert--success { border-color: #cbe8b0; color: #2f5a10; background: #f4ffdc; }

/* filters */
.ts-filters { display: grid; gap: 14px; margin-bottom: 22px; padding: 18px; border: 1px solid var(--ts-line); border-radius: 10px; background: var(--ts-soft); }
.ts-goal-line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 28px 0 16px; font-size: 14px; }
.ts-goal-line__label { color: var(--ts-muted); }
.ts-goal-line__value { font-family: FitmeCaps, Fitme, sans-serif; font-size: 16px; }
.ts-filter-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) auto; gap: 12px; align-items: end; }
.ts-filter-form .trainer-field span { font-weight: 800; color: #37323c; font-size: 13px; }
.ts-filter-form__actions { display: flex; gap: 8px; }
.ts-count { margin-left: auto; padding: 6px 10px; border-radius: 999px; color: #292929; background: #f1f2f4; font-size: 12px; font-weight: 700; }

/* Equal, explicit alternative to choosing a trainer. */
.ts-solo-choice { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 18px 20px; border: 1px solid #292929; border-radius: 16px; background: #f7f7f8; }
.ts-solo-choice > div { display: grid; gap: 4px; }
.ts-solo-choice strong { font-family: FitmeCaps, Fitme, sans-serif; font-size: 17px; }
.ts-solo-choice span { color: var(--ts-muted); font-size: 13px; line-height: 1.4; }
.ts-solo-choice form { flex: 0 0 auto; margin: 0; }
.ts-solo-choice .trainer-button { min-height: 48px; border-color: #292929; white-space: nowrap; }
.ts-solo-choice--footer { margin-top: 24px; border-color: #d9dde5; background: linear-gradient(135deg, #f8f9f4, #f4ffdc); }

/* trainer cards */
.ts-trainer-grid { grid-template-columns: repeat(auto-fit, minmax(320px, 420px)); align-items: stretch; gap: 24px; }
.ts-trainer-card { display: flex; flex-direction: column; gap: 0; padding: 0; overflow: hidden; border-radius: 24px; box-shadow: 0 18px 44px rgba(28, 27, 32, .09) !important; }
.ts-trainer-card.is-selected { background: #fff; }
.ts-trainer-card__photo { position: relative; display: block; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; background: #eeeaf3; }
.ts-trainer-card__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; transition: transform .25s ease; }
.ts-trainer-card__photo:hover img { transform: scale(1.02); }
.ts-trainer-card__photo .ts-score { position: absolute; top: 16px; right: 16px; }
.ts-selected-ribbon { position: absolute; top: 16px; left: 16px; padding: 8px 11px; border-radius: 999px; background: #d7ff85; color: #292929; font-size: 12px; font-weight: 900; }
.ts-photo-badge { position: absolute; right: 16px; bottom: 16px; display: grid; width: 34px; height: 34px; place-items: center; border: 3px solid #fff; border-radius: 50%; background: #1f9d55; color: #fff; font-family: Arial, sans-serif; font-size: 18px; font-weight: 900; }
.ts-trainer-card__body { display: flex; flex: 1; flex-direction: column; gap: 14px; padding: 20px; }
.ts-trainer-card__title h2 { margin: 0; font-size: 22px; line-height: 1.15; }
.ts-trainer-card__title p { display: -webkit-box; overflow: hidden; margin: 7px 0 0; color: #514a5b; font-size: 13px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.ts-trainer-card__title .trainer-rating { margin-top: 8px; }
.ts-score { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 54px; padding: 8px 11px; border-radius: 999px; background: #292929; color: #d7ff85; font-family: FitmeCaps, Fitme, sans-serif; font-size: 13px; white-space: nowrap; }
.ts-score > span { color: #fff; font-family: Fitme, sans-serif; font-size: 10px; font-weight: 700; }
.ts-score > b { color: #d7ff85; font-size: 13px; font-weight: 900; }
.ts-trainer-card__details { display: grid; gap: 12px; padding: 14px; border: 1px solid #e3e5eb; border-radius: 16px; background: #f7f7f8; }
.ts-trainer-card__details .trainer-meta { margin: 0; }
.ts-trainer-card__details .trainer-meta span { background: #fff; }
.ts-trainer-card__cta, .ts-program-card__cta { margin-top: auto; width: 100%; }
.ts-trainer-card__cta.trainer-button, .ts-trainer-card__cta .trainer-button { min-height: 50px; width: 100%; }
.ts-selection-hint { margin: 0 0 10px; color: var(--ts-muted); font-size: 12px; line-height: 1.4; }
.ts-trainer-card__actions { display: grid; gap: 8px; margin-top: auto; }
.ts-trainer-card__actions form, .ts-trainer-card__actions .trainer-button { width: 100%; }
.ts-selected-confirmation { display: flex; align-items: center; gap: 10px; margin-top: auto; padding: 12px 14px; border: 1px solid #a8cf2f; border-radius: 14px; background: #f4ffdc; color: #294609; }
.ts-selected-confirmation > span { display: grid; flex: 0 0 30px; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: #5d8e12; color: #fff; font-weight: 900; }
.ts-selected-confirmation div { display: grid; gap: 2px; }
.ts-selected-confirmation strong { font-size: 14px; }
.ts-selected-confirmation small { color: #557027; font-size: 12px; }
form[data-choose-form] button[aria-busy="true"], form[data-skip-form] button[aria-busy="true"] { opacity: .76; cursor: wait; }
form[data-choose-form] button[aria-busy="true"]::before, form[data-skip-form] button[aria-busy="true"]::before { width: 14px; height: 14px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; content: ""; animation: ts-spin .7s linear infinite; }
@keyframes ts-spin { to { transform: rotate(360deg); } }
.ts-featured { display: grid; gap: 6px; padding-top: 12px; border-top: 1px solid #e3e5eb; }
.ts-featured small { color: var(--ts-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.ts-featured strong { font-size: 14px; }
.ts-featured__facts { display: flex; flex-wrap: wrap; gap: 6px; color: #514a5b; font-size: 12px; }
.ts-featured__facts > span { padding: 4px 8px; border-radius: 999px; background: #fff; border: 1px solid var(--ts-line); }
.trainer-meta b, .ts-featured__facts b, .ts-count b, .ts-nday__totals b, .ts-meal__macros b, .week-preview b, .ts-hint b { font-weight: 800; }

/* reasons */
.ts-reasons { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.ts-reason { padding: 5px 9px; border: 1px solid #292929; border-radius: 999px; background: #fff; color: var(--ts-ok); font-size: 12px; font-weight: 700; }
.ts-reason--warn { background: var(--ts-warn-bg); color: var(--ts-warn); }
.ts-pill--goal { background: #292929 !important; color: #fff !important; }
.ts-pill--cert { background: var(--ts-ok-bg) !important; color: var(--ts-ok) !important; font-weight: 800; }
.ts-pill--video { padding: 3px 7px; border-radius: 999px; background: #292929; color: #d7ff85; font-size: 11px; font-weight: 800; }

/* empty state */
.ts-empty { text-align: center; padding: 36px 22px; }
.ts-empty h2 { font-size: 20px; }
.ts-empty p { max-width: 560px; margin: 8px auto 18px; color: var(--ts-muted); }
.ts-empty__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }

/* trainer page inside the flow */
.ts-trainer-hero { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 24px; align-items: start; margin-bottom: 22px; padding: 20px; border: 1px solid var(--ts-line); border-radius: 12px; background: #fff; }
.ts-trainer-hero h2 { margin: 0 0 4px; font-size: 24px; }
.ts-trainer-hero > div > strong { display: block; color: #514a5b; font-size: 14px; font-weight: 600; }
.ts-bio { margin: 10px 0 0; color: #37323c; font-size: 14px; line-height: 1.5; }
.ts-cert { margin: 8px 0 0; font-size: 13px; color: #37323c; }
.ts-cert small { display: block; color: var(--ts-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.ts-note { margin: 0 0 16px; padding: 12px 14px; border-radius: 8px; background: var(--ts-soft); color: #37323c; font-size: 14px; }
.ts-note--single { background: #f4ffdc; }
.ts-note--warn { background: var(--ts-warn-bg); color: var(--ts-warn); }
.ts-program-list { display: grid; gap: 16px; }
.ts-program-card { display: grid; grid-template-columns: minmax(280px, 30%) minmax(0, 1fr); gap: 18px; padding: 0; overflow: hidden; }
.ts-program-card.is-incompatible { opacity: .72; }
.ts-program-card.is-selected { border-color: #95bb10; background: #fbfff0; }
.ts-program-card > .ts-program-card__cover { display: block; align-self: start; width: 100%; height: auto; min-height: 0; aspect-ratio: 4 / 3; border-radius: 0; object-fit: cover; object-position: center; background: #eeeaf3; }
.ts-program-card__body { display: flex; min-width: 0; flex-direction: column; gap: 10px; padding: 18px 18px 18px 0; }
.ts-program-card:not(:has(.ts-program-card__cover)) .ts-program-card__body { padding-left: 18px; grid-column: 1 / -1; }
.ts-program-card__head { display: flex; justify-content: space-between; gap: 12px; align-items: start; }
.ts-program-card__head h3 { margin: 0; font-size: 20px; line-height: 1.15; }
.ts-program-card p { margin: 0; color: #514a5b; font-size: 14px; }
.ts-program-meta { margin: 0; }

/* programme preview */
.ts-preview-hero { display: grid; gap: 12px; margin-bottom: 22px; padding: 18px; border: 1px solid var(--ts-line); border-radius: 12px; background: #fff; }
.ts-preview-hero__trainer { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: 14px; align-items: center; }
.ts-preview-hero__trainer small { display: block; color: var(--ts-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.ts-preview-hero__trainer strong { display: block; font-family: FitmeCaps, Fitme, sans-serif; font-size: 18px; }
.ts-preview-hero__trainer > div > span { display: block; color: #514a5b; font-size: 13px; }
.ts-preview-hero__cover { width: 100%; max-height: 260px; border-radius: 10px; object-fit: cover; }
.ts-pro-lock { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: start; margin-top: 20px; padding: 20px; border: 1px solid #d9dde5; border-radius: 16px; background: #f7f7f8; }
.ts-pro-lock__icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 13px; background: #292929; font-size: 19px; }
.ts-pro-lock h2 { margin: 1px 0 6px; font-size: 18px; }
.ts-pro-lock p { margin: 0; color: var(--ts-muted); font-size: 13px; line-height: 1.5; }
.ts-block { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--ts-line); }
.ts-block h2 { margin: 0 0 6px; font-size: 20px; }
.ts-hint { margin: 0 0 14px; color: var(--ts-muted); font-size: 13px; }
.ts-schedule__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.ts-days { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ts-day { padding: 14px; border: 1px solid var(--ts-line); border-radius: 10px; background: #fff; }
.ts-day--rest { background: var(--ts-soft); }
.ts-day__head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.ts-day__head h3 { margin: 0; flex: 1; font-size: 15px; }
.ts-day__head small { color: var(--ts-muted); font-size: 12px; white-space: nowrap; }
.ts-day__index { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 999px; background: #292929; color: #d7ff85; font-family: FitmeCaps, Fitme, sans-serif; font-size: 13px; }
.ts-day__rest { margin: 0; color: var(--ts-muted); font-size: 13px; }
.ts-exercises { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; counter-reset: ex; }
.ts-exercise { padding: 10px 12px; border-radius: 8px; background: var(--ts-soft); }
.ts-exercise__title { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ts-exercise__title strong { font-size: 14px; }
.ts-exercise__facts { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 6px 0 0; }
.ts-exercise__facts div { display: flex; gap: 4px; font-size: 12px; }
.ts-exercise__facts dt { color: var(--ts-muted); }
.ts-exercise__facts dd { margin: 0; font-weight: 800; }
.ts-exercise__note { margin: 6px 0 0; color: #514a5b; font-size: 12px; }
.ts-nutrition { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ts-nday { padding: 14px; border: 1px solid var(--ts-line); border-radius: 10px; background: #fff; }
.ts-nday__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 12px; align-items: baseline; margin-bottom: 10px; }
.ts-nday__head h3 { margin: 0; font-size: 15px; }
.ts-nday__totals { color: #514a5b; font-size: 12px; }
.ts-meals { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ts-meal { display: grid; gap: 2px; padding: 10px 12px; border-radius: 8px; background: var(--ts-soft); }
.ts-meal__type { color: var(--ts-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.ts-meal strong { font-size: 14px; }
.ts-meal__macros, .ts-meal__ingredients { color: #514a5b; font-size: 12px; }
.ts-meal__macros, .ts-nday__totals { display: inline-flex; flex-wrap: wrap; gap: 4px 10px; }
.ts-choose { position: sticky; bottom: 0; z-index: 3; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 24px -30px -30px; padding: 16px 30px calc(16px + env(safe-area-inset-bottom)); border-top: 1px solid var(--ts-line); background: rgba(255, 255, 255, .97); border-radius: 0 0 9px 9px; }
.ts-choose__copy { display: grid; gap: 2px; min-width: 0; }
.ts-choose__copy strong { font-size: 15px; }
.ts-choose__copy span { color: var(--ts-muted); font-size: 13px; }
.ts-choose form { margin: 0; }
.ts-choose .flow-button { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.ts-choose__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 9px; margin-left: auto; }
.ts-choose__actions form { display: flex; }

/* FitMe confirmation dialog (replaces the browser-native confirm alert). */
html.ts-modal-open { overflow: hidden; }
.ts-confirm-dialog { width: min(92vw, 540px); max-width: none; margin: auto; padding: 0; overflow: visible; border: 0; border-radius: 28px; background: transparent; color: #292929; box-shadow: 0 30px 90px rgba(21, 25, 18, .32); }
.ts-confirm-dialog::backdrop { background: rgba(20, 23, 18, .64); backdrop-filter: blur(7px); }
.ts-confirm-dialog__card { position: relative; display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 16px; padding: 30px; overflow: hidden; border: 1px solid rgba(41, 41, 41, .08); border-radius: 28px; background: linear-gradient(145deg, #fff 0%, #fbfff2 100%); }
.ts-confirm-dialog__card::before { position: absolute; top: -92px; right: -72px; width: 220px; height: 220px; border-radius: 50%; background: rgba(215, 255, 133, .45); content: ""; }
.ts-confirm-dialog__icon { position: relative; z-index: 1; display: grid; width: 62px; height: 62px; place-items: center; border-radius: 20px; background: #292929; color: #d7ff85; font-family: Arial, sans-serif; font-size: 27px; font-weight: 900; box-shadow: 0 12px 24px rgba(41, 41, 41, .18); }
.ts-confirm-dialog.is-skip .ts-confirm-dialog__icon { background: #d7ff85; color: #292929; }
.ts-confirm-dialog__copy { position: relative; z-index: 1; min-width: 0; padding: 3px 32px 0 0; }
.ts-confirm-dialog__eyebrow { margin: 0 0 5px; color: #6d7e47; font-size: 11px; font-weight: 900; letter-spacing: .16em; }
.ts-confirm-dialog h2 { margin: 0; font-family: FitmeCaps, Fitme, sans-serif; font-size: clamp(21px, 4vw, 27px); line-height: 1.15; }
.ts-confirm-dialog__copy > p:last-child { margin: 11px 0 0; color: #625f68; font-size: 14px; line-height: 1.55; }
.ts-confirm-dialog__close { position: absolute; z-index: 3; top: 16px; right: 16px; display: grid; width: 36px; height: 36px; place-items: center; padding: 0; border: 1px solid #e2e4dd; border-radius: 50%; background: rgba(255, 255, 255, .9); color: #292929; font: 24px/1 Arial, sans-serif; cursor: pointer; }
.ts-confirm-dialog__close:hover { background: #fff; border-color: #292929; }
.ts-confirm-dialog__actions { position: relative; z-index: 1; display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 10px; margin-top: 8px; }
.ts-confirm-dialog__actions .trainer-button { min-height: 52px; width: 100%; border-radius: 15px; }
.ts-confirm-dialog__actions .trainer-button:not(.secondary) { background: #d7ff85; box-shadow: 0 10px 24px rgba(145, 184, 62, .2); }

/* plan page: the trainer + programme the plan comes from */
.ts-source { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.4fr); gap: 16px; margin: 20px 0 0; padding: 16px; border: 1px solid #e3e5eb; border-radius: 10px; background: #f7f7fa; }
.ts-source__trainer, .ts-source__program { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 12px; align-items: center; }
.ts-source__program img { width: 72px; height: 72px; border-radius: 12px; object-fit: cover; }
.ts-source small { display: block; color: #6f6a78; font-size: 11px; font-weight: 700; text-transform: uppercase; }
.ts-source strong { display: block; font-family: FitmeCaps, Fitme, sans-serif; font-size: 16px; }
.ts-source__trainer > div > span { display: block; color: #514a5b; font-size: 13px; }
.ts-source__program .trainer-meta { margin: 6px 0 0; }
.ts-source__change { grid-column: 1 / -1; font-size: 13px; }
.ts-source .ts-note { grid-column: 1 / -1; margin: 0; }
.week-preview li strong em { color: #6f6a78; font-size: 11px; font-style: normal; font-weight: 600; }
.ts-nutrition-preview li { align-items: start; }
.ts-nutrition-preview li span { text-align: right; }

/* public directory */
.ts-public-programs { display: grid; gap: 6px; margin: 0 0 14px; padding: 0; list-style: none; }
.ts-public-programs a { display: grid; gap: 2px; padding: 8px 10px; border: 1px solid #e8e5ec; border-radius: 10px; text-decoration: none; color: inherit; }
.ts-public-programs a:hover { background: #f7f7fa; }
.ts-public-programs strong { font-size: 13px; }
.ts-public-programs span { color: #716a77; font-size: 12px; }

/* tablet */
@media (max-width: 980px) {
    .ts-schedule__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ts-trainer-hero { grid-template-columns: 160px minmax(0, 1fr); }
    .ts-program-card { grid-template-columns: 240px minmax(0, 1fr); }
    .ts-source { grid-template-columns: 1fr; }
}
/* phone */
@media (max-width: 760px) {
    .ts-page .flow-progress { gap: 4px; }
    .ts-page[data-trainer-step] .ts-step-head .flow-title { font-size: 19px; }
    .ts-solo-choice { align-items: stretch; flex-direction: column; gap: 14px; }
    .ts-solo-choice form, .ts-solo-choice .trainer-button { width: 100%; }
    .ts-trainer-grid { grid-template-columns: 1fr; gap: 18px; }
    .ts-trainer-card__photo { aspect-ratio: 1.18; }
    .ts-filter-form { grid-template-columns: 1fr; }
    .ts-filter-form__actions { justify-content: stretch; }
    .ts-filter-form__actions .trainer-button { flex: 1; }
    .ts-trainer-hero { grid-template-columns: 1fr; }
    .ts-trainer-hero .trainer-avatar--large { max-width: 180px; }
    .ts-program-card { grid-template-columns: minmax(0, 1fr); }
    .ts-program-card > .ts-program-card__cover { height: auto; min-height: 0; max-height: none; aspect-ratio: 4 / 3; }
    .ts-program-card__body { padding: 16px; }
    .ts-days, .ts-nutrition { grid-template-columns: 1fr; }
    .ts-schedule__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ts-choose { margin: 20px -18px -23px; padding: 12px 18px calc(12px + env(safe-area-inset-bottom)); }
    .ts-choose form, .ts-choose .flow-button, .ts-choose__actions { width: 100%; }
    .ts-choose__actions { display: grid; margin-left: 0; }
    .ts-preview-hero__trainer { grid-template-columns: 56px minmax(0, 1fr); }
    .ts-preview-hero__trainer .ts-score { grid-column: 2; justify-self: start; }
    .ts-source__trainer, .ts-source__program { grid-template-columns: 56px minmax(0, 1fr); }
    .ts-confirm-dialog__card { grid-template-columns: 50px minmax(0, 1fr); gap: 13px; padding: 24px 20px 20px; border-radius: 22px; }
    .ts-confirm-dialog__icon { width: 50px; height: 50px; border-radius: 16px; font-size: 23px; }
    .ts-confirm-dialog__copy { padding-right: 26px; }
    .ts-confirm-dialog__actions { grid-template-columns: 1fr; }
    .ts-confirm-dialog__actions [data-confirm-submit] { grid-row: 1; }
}

.ts-skip { margin-top: 20px; padding-top: 18px; border-top: 1px solid #e3e5eb; text-align: center; }
.ts-skip .flow-button { min-width: 260px; }
.ts-empty form { display: inline-block; margin-top: 4px; }
.ts-program-card__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; }
.ts-program-card__actions form { margin: 0; }
.ts-program-card__actions .trainer-button { padding: 11px 15px; font-size: 13px; line-height: 1.2; }
.ts-source__logo { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 22px; background: #292929; color: #d7ff85; font-family: FitmeCaps, Fitme, sans-serif; font-size: 34px; }
.ts-source--fitme { grid-template-columns: minmax(0, 1fr); }
.ts-trainer-card form.ts-trainer-card__cta { margin: auto 0 0; }
@media (max-width: 760px) { .ts-program-card__actions > * { flex: 1 1 100%; } .ts-program-card__actions .trainer-button { width: 100%; } }
