/* Brett Strength ? home / sign-in */

:root {
  --blue: #1565c0;
  --blue-hot: #1e74d8;
  --blue-deep: #0d47a1;
  --ink: #0f0f0f;
  --muted: #5a6572;
  --line: #d5dbe5;
  --card: #ffffff;
  --field: #eef1f5;
  --font: "Montserrat", "Segoe UI", sans-serif;
  --display: "Oswald", "Montserrat", sans-serif;
  --safe: env(safe-area-inset-bottom, 0px);
  --safe-top: env(safe-area-inset-top, 0px);
  --shadow: 0 28px 70px rgba(12, 28, 58, 0.18);
  /* Gio pattern: main 1140, header wider 1320 */
  --max: 1140px;
  --max-header: 1320px;
  --gutter: 1.25rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  min-height: 100dvh;
  font-family: var(--font);
  color: var(--ink);
  background: #eceff3;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--blue); text-decoration: none; font-weight: 600; }
a:hover { color: var(--blue-deep); }

/* ========== Background ? Image 1 lock (no heavy wash) ========== */
.bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

/* Image 1 ? same file + same overlay everywhere. Only position changes by viewport. */
.bg-photo {
  position: absolute;
  inset: 0;
  background-image: url("/images/brettstrenghtbackgroundnew3.webp");
  background-size: cover;
  background-repeat: no-repeat;
  /* Desktop: plate lower-left, BRETT STRENGTH readable beside login */
  background-position: left 78%;
}

/* Phone: same photo/style ? plate face mid-frame (hub was clipping left at 38%) */
@media (max-width: 720px) {
  .bg-photo {
    background-position: 18% 72%;
  }
}

.bg-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      180deg,
      rgba(236, 239, 243, 0.97) 0%,
      rgba(236, 239, 243, 0.92) 26%,
      rgba(236, 239, 243, 0.55) 42%,
      rgba(236, 239, 243, 0.12) 56%,
      transparent 68%
    ),
    linear-gradient(
      90deg,
      rgba(236, 239, 243, 0.4) 0%,
      transparent 50%
    );
}

/* Optional cutout later ? keep hidden */
.hero-weight {
  position: absolute;
  left: clamp(0.5rem, 4vw, 5rem);
  bottom: clamp(4rem, 12vh, 7rem);
  width: min(520px, 58vw);
  height: auto;
  opacity: 0.92;
  filter: drop-shadow(0 28px 50px rgba(0, 0, 0, 0.22));
  z-index: 1;
}

.hero-weight[hidden] {
  display: none !important;
}

body.is-app .bg-overlay {
  /* same as landing ? readable desk without washing the plate */
}

.page {
  position: relative;
  z-index: 1;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}

.header {
  padding: 1.15rem 0 0.25rem;
}

.header-inner {
  max-width: var(--max-header);
  margin: 0 auto;
}

.logo img {
  height: clamp(64px, 10vw, 96px);
  width: auto;
  max-width: min(420px, 88vw);
  object-fit: contain;
  object-position: left center;
}

/* Landing ? logo clear of pitch; no overlap; room under iPhone status strip */
body.is-landing .header {
  padding-top: calc(1.25rem + var(--safe-top));
  padding-bottom: 0.35rem;
  position: relative;
  z-index: 3;
}

body.is-landing .logo {
  display: inline-block;
  margin-top: 0;
}

body.is-landing .logo img {
  height: clamp(70px, 11vw, 106px);
  max-width: min(462px, 90vw);
}

body.is-landing .main {
  padding-top: 0.35rem;
}

body.is-landing .pitch {
  margin-top: 0;
}

body.is-landing .pitch-panel {
  max-width: min(100%, 560px);
  padding-left: 1.35rem;
  padding-right: 1.45rem;
}

body.is-landing .auth {
  padding-top: 12px;
}

body.is-landing .quote {
  margin-top: 1.15rem;
}

body.is-app .logo img {
  height: clamp(56px, 8vw, 72px);
  max-width: min(320px, 70vw);
}

.main {
  flex: 1;
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  padding: 0.5rem var(--gutter) 1.5rem;
  display: grid;
  gap: 1.5rem;
  align-items: start;
}

.pitch {
  display: flex;
  flex-direction: column;
  min-height: 0;
  max-width: none;
}

/* Fade panel so headline + features stay readable (esp. mobile) */
.pitch-panel {
  position: relative;
  z-index: 1;
  padding: 1.1rem 1rem 1.2rem;
  border-radius: 16px;
  background:
    linear-gradient(
      180deg,
      rgba(245, 247, 250, 0.96) 0%,
      rgba(245, 247, 250, 0.9) 55%,
      rgba(245, 247, 250, 0.55) 82%,
      rgba(245, 247, 250, 0) 100%
    );
}

.pitch h1 {
  margin: 0 0 0.75rem;
  font-family: var(--display);
  font-size: clamp(1.95rem, 7.2vw, 3.35rem);
  line-height: 0.98;
  font-weight: 700;
  font-style: italic;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: #111;
}

.pitch h1 .accent { color: var(--blue); }

.lead {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.55rem;
  margin: 0;
  font-size: 1.02rem;
  color: #222;
  line-height: 1.35;
  font-weight: 600;
}

.lead-part {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.lead-ico {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(21, 101, 192, 0.22);
  color: var(--blue);
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.lead-ico svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.lead-ico img {
  width: 18px;
  height: auto;
  display: block;
}

.lead-ico--img {
  width: auto;
  height: auto;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}

.lead-ico--img img {
  width: 26px;
  height: auto;
}

.lead-ico--img img[src*="profile-3d"] {
  width: 22px;
  height: auto;
}

.lead-ico--img img[src*="progress-3d"] {
  width: 18px;
  height: auto;
}

.lead-sep {
  color: #555;
  font-weight: 700;
}

/* Quote ? separate brush graphic below the login card (Image 1) */
.quote {
  position: relative;
  z-index: 2;
  width: min(420px, 100%);
  margin: calc(1.35rem - 12px) 0 0;
  padding: 1.2rem 1.5rem 1.3rem 1.35rem;
  color: #fff;
  background: url("/images/blacklablebackground.png") left center / 100% 100% no-repeat;
  border: 0;
  filter: contrast(1.12) drop-shadow(0 12px 28px rgba(0, 0, 0, 0.42));
  align-self: flex-start;
}

.quote .qmark {
  position: absolute;
  top: 0.15rem;
  left: 0.85rem;
  font-family: Georgia, serif;
  font-size: 3.2rem;
  line-height: 1;
  color: #6ea8ff;
  opacity: 0.95;
  pointer-events: none;
}

.quote p {
  position: relative;
  margin: 0.35rem 0 0;
  padding-left: 0.15rem;
  font-family: var(--display);
  font-size: clamp(1.05rem, 2.6vw, 1.28rem);
  font-weight: 700;
  font-style: italic;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.2;
}

.quote .q-line {
  display: block;
}

.quote .q-line:nth-child(2) {
  padding-left: 1.1rem;
}

.quote em {
  font-style: italic;
  color: #6ea8ff;
}

.quote cite {
  display: block;
  position: relative;
  margin-top: 0.45rem;
  font-family: "Caveat", cursive;
  font-size: 1.35rem;
  font-style: normal;
  font-weight: 700;
  color: #fff;
  text-transform: none;
  letter-spacing: 0.02em;
}

.auth {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.card {
  background: var(--card);
  border-radius: 18px;
  box-shadow: var(--shadow);
  border-top: 5px solid var(--blue);
  padding: 1rem 1.35rem 1.35rem;
  backdrop-filter: blur(6px);
}

.card h2 {
  margin: 0 0 0.85rem;
  font-family: var(--display);
  font-size: 1.55rem;
  font-weight: 700;
  font-style: italic;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--blue);
}

.card-kicker {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}

.card h2::after {
  content: "";
  display: block;
  width: 2.1rem;
  height: 3px;
  margin-top: 0.35rem;
  background: var(--blue);
  border-radius: 2px;
}

.card-lead {
  margin: 0.65rem 0 1.25rem;
  color: var(--muted);
  font-size: 0.94rem;
  line-height: 1.45;
}

.field { display: block; margin-bottom: 0.9rem; }

.field > span:first-child {
  display: block;
  margin-bottom: 0.38rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--muted);
}

.field-hint {
  display: block;
  margin-top: 0.4rem;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--muted);
}

.field-hint strong {
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--ink, #1a1a1a);
}

.join-code-input {
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
}

.control {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  min-height: 52px;
  padding: 0 0.9rem;
  border-radius: 12px;
  background: var(--field);
  border: 1px solid transparent;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.control:focus-within {
  background: #fff;
  border-color: var(--blue);
  box-shadow: 0 0 0 4px rgba(21, 101, 192, 0.14);
}

.control svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  fill: none;
  stroke: var(--blue);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.control input {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  font: inherit;
  font-size: 1rem;
  color: var(--ink);
  min-height: 50px;
  -webkit-appearance: none;
  appearance: none;
}

.row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0.15rem 0 1.05rem;
  font-size: 0.9rem;
}

.check {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: #333;
  user-select: none;
  font-weight: 500;
}

.check input {
  width: 1.05rem;
  height: 1.05rem;
  accent-color: var(--blue);
}

.btn {
  width: 100%;
  min-height: 54px;
  border-radius: 12px;
  border: 2px solid transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-family: inherit;
  font-size: 0.88rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform 0.12s ease, background 0.15s ease, box-shadow 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}

.btn:active { transform: translateY(1px); }

.btn svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.btn-solid {
  background: var(--blue);
  color: #fff;
  box-shadow: 0 14px 30px rgba(21, 101, 192, 0.32);
}

.btn-solid:hover { background: var(--blue-hot); }

.btn-outline {
  background: #fff;
  color: var(--blue);
  border-color: var(--blue);
}

.btn-outline:hover { background: rgba(21, 101, 192, 0.06); }

.divider {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin: 1.05rem 0;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
}

.divider::before,
.divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--line);
}

.card-foot {
  margin: 1.05rem 0 0;
  text-align: center;
  font-size: 0.86rem;
  color: var(--muted);
  line-height: 1.4;
}

.card-foot span {
  display: block;
}

.card-foot--join {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.55rem;
}

.auth-join-cta.coach-teams__create {
  flex: 0 0 auto;
  width: auto;
  align-self: center;
  margin-top: 0;
  padding: 0.6rem 1.02rem;
  font-size: 1.03rem;
  border-radius: 13px;
  /* LinkButton can inherit blue link color from .card-foot a */
  color: #fff !important;
  text-decoration: none !important;
}

.auth-join-cta.coach-teams__create:hover,
.auth-join-cta.coach-teams__create:focus {
  color: #fff !important;
}

.form-error,
.form-ok {
  margin: 0 0 1rem;
  padding: 0.7rem 0.85rem;
  border-radius: 10px;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.4;
}

.form-error {
  background: rgba(180, 35, 35, 0.08);
  color: #8b1e1e;
  border: 1px solid rgba(180, 35, 35, 0.25);
}

.form-ok {
  background: rgba(21, 101, 192, 0.08);
  color: #0d47a1;
  border: 1px solid rgba(21, 101, 192, 0.22);
}

.form-error a,
.form-ok a {
  color: inherit;
  font-weight: 700;
}

.auth-passkey__btn {
  width: 100%;
}

.auth-passkey__link {
  border: 0;
  background: none;
  padding: 0;
  font: inherit;
  font-weight: 700;
  color: var(--blue);
  cursor: pointer;
  text-decoration: underline;
}

.auth-passkey__list {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
}

.auth-passkey__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  font-weight: 600;
}

.auth-passkey__remove {
  border: 0;
  background: none;
  color: #8b1e1e;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  text-decoration: underline;
}

.auth-passkey__empty {
  color: #667;
  font-weight: 600;
  padding: 0.5rem 0 1rem;
}

.auth-passkey-desktop {
  margin: 0.85rem 0 0;
  text-align: center;
}

.auth-passkey-desktop .form-error {
  margin-top: 0.75rem;
  text-align: left;
}

.bs-faceid__hero {
  margin-bottom: 1rem;
}

.bs-faceid__foot {
  margin: 1rem 0 0;
  text-align: center;
  font-weight: 600;
}

.bs-faceid__foot a {
  font-weight: 700;
}

.bs-faceid .btn-solid {
  width: 100%;
}

.auth--faceid .card-foot a {
  font-weight: 700;
}

.control input[type="text"],
.control input[type="email"],
.control input[type="password"] {
  flex: 1;
  border: 0;
  background: transparent;
  font: inherit;
  color: inherit;
  outline: none;
  width: 100%;
  min-width: 0;
}

.btn.btn-solid {
  /* Keep .btn inline-flex + align-items:center (do not force inline-block). */
  width: 100%;
  text-align: center;
  cursor: pointer;
  text-decoration: none;
  box-sizing: border-box;
  line-height: 1.1;
}

.footer {
  position: relative;
  z-index: 1;
  background: var(--blue);
  color: #fff;
  padding: 1.25rem 0 calc(1.05rem + var(--safe));
  box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.12);
  margin-top: auto;
}

.footer-inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  gap: 1.15rem;
}

.trust-item {
  display: grid;
  grid-template-columns: 26px 1fr;
  gap: 0.7rem;
  align-items: start;
}

.trust-item svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: #fff;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  margin-top: 0.1rem;
}

.trust-item__ico {
  width: 22px;
  height: 22px;
  object-fit: contain;
  display: block;
  margin-top: 0.1rem;
}

.trust-item strong {
  display: block;
  font-size: 0.78rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.trust-item span {
  display: block;
  margin-top: 0.18rem;
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.86);
  line-height: 1.35;
}

.legal {
  padding-top: 0.35rem;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
}

.legal strong {
  display: block;
  font-size: 0.88rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.legal small {
  display: block;
  margin-top: 0.1rem;
  font-size: 0.74rem;
  color: rgba(255, 255, 255, 0.82);
}

@media (min-width: 900px) {
  .header {
    /* padding-top: 1.35rem; */
    /* padding-bottom: 0; */
  }

  .main {
    grid-template-columns: 1.15fr 0.95fr;
    gap: 2rem;
    padding-top: 0.5rem;
    padding-bottom: 1.5rem;
    align-items: start;
    min-height: 0;
  }

  .pitch { order: 1; }

  .auth {
    order: 2;
    padding-top: 12px;
    align-items: flex-end;
  }

  .card {
    padding: 1.15rem 1.75rem 1.55rem;
    max-width: 420px;
    margin-left: auto;
    margin-right: 0;
    width: 100%;
  }

  .card h2 {
    font-size: 1.45rem;
  }

  .pitch {
    max-width: none;
  }

  body.is-landing .pitch {
    margin-top: 0;
  }

  .pitch-panel {
    padding: 0.35rem 0 0.5rem;
    background: none;
    border-radius: 0;
  }

  body.is-landing .pitch-panel {
    max-width: min(100%, 580px);
    padding: 0.35rem 0 0.5rem;
  }

  .lead {
    gap: 0.5rem 0.65rem;
    font-size: 1.05rem;
  }

  .lead-ico {
    width: 30px;
    height: 30px;
  }

  .quote {
    width: min(420px, 100%);
    margin-top: 1.15rem;
    margin-bottom: 0;
    margin-left: auto;
    margin-right: 0;
    padding: 1.35rem 1.75rem 1.4rem 1.5rem;
  }

  .footer {
    padding-top: 1.25rem;
  }

  .footer-inner {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: clamp(1.15rem, 2.4vw, 2rem);
    padding-left: 0;
  }

  .trust-item {
    flex: 1 1 0;
    min-width: 0;
    max-width: 15.5rem;
  }

  .legal {
    border-top: 0;
    padding-top: 0;
    padding-left: 1rem;
    margin-left: auto;
    border-left: 1px solid rgba(255, 255, 255, 0.35);
    text-align: left;
  }
}

@media (min-width: 1200px) {
  .pitch h1 { font-size: 3.35rem; }
  .logo img { height: 100px; max-width: 460px; }
  body.is-landing .logo img { height: 110px; max-width: 506px; }
}

/* Shell helpers (master + controls) */
.header-inner--bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 0 var(--gutter);
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.header-avatar {
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  overflow: hidden;
  background: transparent;
  border: 0;
  box-shadow: none;
  flex-shrink: 0;
}

.header-avatar img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.header-signout {
  font-weight: 700;
  white-space: nowrap;
}

.main--narrow {
  grid-template-columns: 1fr;
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
}

.main--legal {
  grid-template-columns: 1fr;
  max-width: 44rem;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

.main--single {
  grid-template-columns: 1fr;
}

/* Public Terms / Privacy */
.legal-doc {
  width: 100%;
  margin: 1.25rem 0 2.5rem;
  padding: 1.35rem 1.4rem 1.75rem;
  background: rgba(255, 255, 255, 0.94);
  border-radius: 12px;
  border-top: 3px solid var(--accent, #1e5bb8);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
  color: #1a1a1a;
}

.legal-doc__head h1 {
  margin: 0;
  font-size: 1.55rem;
  letter-spacing: 0.02em;
  color: var(--accent, #1e5bb8);
}

.legal-doc__meta {
  margin: 0.45rem 0 0;
  font-size: 0.85rem;
  color: #5a5a5a;
}

.legal-doc__body {
  margin-top: 1.15rem;
  font-size: 0.98rem;
  line-height: 1.55;
}

.legal-doc__body h2 {
  margin: 1.35rem 0 0.45rem;
  font-size: 1.05rem;
  color: #222;
}

.legal-doc__body p,
.legal-doc__body ul {
  margin: 0.4rem 0 0.65rem;
}

.legal-doc__body ul {
  padding-left: 1.2rem;
}

.legal-doc__body li {
  margin: 0.35rem 0;
}

.legal-doc__body a {
  color: var(--accent, #1e5bb8);
}

.legal__links a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.legal__links a:hover {
  opacity: 0.9;
}

/* Contact honeypot — FormSecurityControl */
.form-security-trap-wrap {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.form-security-trap {
  opacity: 0;
}

.quote-turnstile-wrap {
  margin: 0.5rem 0 0.85rem;
  min-height: 70px;
}

.quote-turnstile-wrap .gio-turnstile-widget {
  min-height: 65px;
}

.hp-field {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.contact-captcha {
  margin: 0.85rem 0 1rem;
}

.contact-captcha table {
  width: 100%;
}

.contact-captcha img {
  max-width: 100%;
  height: auto;
  border-radius: 6px;
}

.contact-captcha input[type="text"] {
  font-size: 1.25rem !important;
  letter-spacing: 0.08em;
}

.auth--narrow {
  width: 100%;
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
}

.signup-terms {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  margin: 0.75rem 0 1rem;
  font-size: 0.92rem;
  line-height: 1.4;
  color: var(--muted, #555);
}

.signup-terms a {
  color: var(--blue, #1e5bb8);
}

.auth--plans {
  width: 100%;
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
}

.card--plans {
  width: 100%;
}

.plan-list {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.plan-list__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.7);
}

.plan-list__copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.plan-list__copy strong {
  font-size: 1.05rem;
  color: #1a1a1a;
}

.plan-list__copy span {
  font-size: 0.9rem;
  color: var(--muted, #555);
}

.plan-list__price {
  font-weight: 700;
  color: #1a1a1a !important;
  margin-top: 0.2rem;
}

.auth .card-foot .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 12rem;
  min-height: 54px;
  padding: 0 1.25rem;
  text-decoration: none;
  margin-top: 0.5rem;
  line-height: 1.1;
  box-sizing: border-box;
}

.signup-pay__price {
  margin: 0 0 0.35rem;
  font-size: 1.35rem;
  font-weight: 700;
  color: #1a1a1a;
}

.plan-list__item .btn {
  flex: 0 0 auto;
  width: auto;
  min-width: 7rem;
}

.signup-pay__tax-note {
  margin: 0 0 1rem;
  font-size: 0.9rem;
  color: var(--muted);
}

.signup-pay__address {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem 1rem;
  margin: 0 0 1rem;
}

.signup-pay__field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.9rem;
  color: #1a1a1a;
}

.signup-pay__field--wide {
  grid-column: 1 / -1;
}

.signup-pay__field input,
.signup-pay__field select {
  font: inherit;
  padding: 0.55rem 0.65rem;
  border: 1px solid #c8c8c8;
  border-radius: 8px;
  background: #fff;
}

.signup-pay__address-actions {
  grid-column: 1 / -1;
  margin: 0.25rem 0 0;
}

.signup-pay__address-actions .btn {
  width: 100%;
}

.signup-pay__element {
  margin: 1rem 0 1.25rem;
  min-height: 12rem;
}

.signup-pay__actions {
  margin: 0 0 0.5rem;
}

.signup-pay__actions .btn {
  width: 100%;
}

@media (max-width: 520px) {
  .signup-pay__address {
    grid-template-columns: 1fr;
  }
}

/* Activating used the bare hero; keep it on the auth card surface */
.bs-activating {
  display: none;
}


.card-lead {
  margin: 0.5rem 0 1rem;
  color: var(--muted);
  font-size: 0.95rem;
}

.card-meta {
  margin: 0;
  font-size: 0.95rem;
  color: var(--muted);
  font-weight: 600;
}

.card-meta strong {
  color: var(--ink);
}

.coach-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  max-width: var(--max);
  margin: 0 auto 0.75rem;
  padding: 0 var(--gutter);
}

.coach-nav a {
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 0.35rem 0;
  border-bottom: 3px solid transparent;
}

.coach-nav a:hover,
.coach-nav a.is-active {
  color: var(--blue);
  border-bottom-color: var(--blue);
}

.desk {
  width: 100%;
}

.desk-card {
  max-width: 720px;
  margin: 0 auto;
}

.desk-card--wide {
  max-width: 900px;
}

.desk-form-grid--3 {
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .desk-form-grid--3 {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .field--span2 {
    grid-column: span 2;
  }
}

.desk-check {
  display: block;
  margin-top: 0.75rem;
}

.desk-test-bump {
  margin: 0.75rem 0 1rem;
  padding: 0.85rem 0.9rem;
  border: 1px solid #d5dae3;
  border-radius: 10px;
  background: #f7f8fb;
}

.desk-test-bump__lead {
  margin: 0 0 0.75rem;
  font-size: 0.8rem;
  color: #5c6575;
  line-height: 1.35;
}

.desk-hint {
  margin: 0.5rem 0 0;
  font-size: 0.85rem;
  color: var(--muted);
  font-weight: 600;
}

.desk-set-table .desk-input-sm {
  width: 100%;
  max-width: 6.5rem;
  border: 0;
  background: transparent;
  font: inherit;
  padding: 0.25rem 0;
  outline: none;
}

.desk-set-table td {
  vertical-align: middle;
}

.field--check .check {
  margin-top: 0.55rem;
}

.desk-assigned-list {
  margin: 0 0 1rem;
  padding-left: 1.2rem;
  font-weight: 600;
}

.desk-subhead {
  margin: 1.25rem 0 0.65rem;
  font-family: var(--display);
  font-size: 1rem;
  font-weight: 700;
  font-style: italic;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink);
}

.desk-form-grid {
  display: grid;
  gap: 0.85rem;
}

@media (min-width: 640px) {
  .desk-form-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.desk-btn {
  margin-top: 0.85rem;
  max-width: 280px;
}

.desk-actions {
  margin: 1.1rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.desk-back {
  margin: 0 0 0.65rem;
  font-size: 0.9rem;
}


.control--select {
  padding-right: 0.65rem;
}

/* The pill is built for one-line inputs ? a textarea has to fill it */
.control textarea {
  flex: 1;
  width: 100%;
  min-height: 78px;
  border: 0;
  outline: 0;
  background: transparent;
  font: inherit;
  color: inherit;
  resize: vertical;
}

.desk-select {
  flex: 1;
  width: 100%;
  border: 0;
  background: transparent;
  font: inherit;
  color: inherit;
  outline: none;
  min-height: 1.4rem;
}

.desk-empty {
  margin: 0;
  color: var(--muted);
  font-weight: 600;
}

.desk-ok {
  margin: 0 0 0.75rem;
  color: #2e7d32;
  font-weight: 600;
}

.desk-err {
  margin: 0 0 0.75rem;
  color: #c62828;
  font-weight: 600;
}

.desk-table__actions {
  white-space: nowrap;
}

.desk-table__actions .btn {
  display: inline-block;
  margin: 0 0.25rem 0.25rem 0;
  text-decoration: none;
}

.btn-sm {
  min-height: 2rem;
  padding: 0.35rem 0.65rem;
  font-size: 0.72rem;
  letter-spacing: 0.02em;
}

.desk-table-wrap {
  overflow-x: auto;
  margin-top: 0.35rem;
}

.desk-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92rem;
}

.desk-table th,
.desk-table td {
  text-align: left;
  padding: 0.65rem 0.55rem;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}

.desk-table th {
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 700;
}

.coach-welcome-title {
  font-size: clamp(1.8rem, 5vw, 2.6rem);
}

.coach-welcome-lead {
  margin-top: 0.75rem;
}

/* Athlete today workout */
.wo-block {
  margin: 1rem 0 0;
  padding: 0.85rem 0 0;
  border-top: 1px solid var(--line);
}

.wo-block:first-of-type {
  border-top: 0;
  padding-top: 0.25rem;
}

.wo-block-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  margin-bottom: 0.55rem;
}

.wo-ex-name {
  font-family: var(--display);
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.wo-ex-meta {
  font-size: 0.78rem;
  color: var(--muted);
  font-weight: 600;
}

.wo-sets {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}

.wo-set {
  display: grid;
  grid-template-columns: 5.5rem 1fr auto;
  gap: 0.5rem;
  align-items: center;
  padding: 0.55rem 0.7rem;
  background: var(--field);
  border-radius: 8px;
  font-size: 0.92rem;
}

.wo-set--test {
  background: #e8f1fb;
  outline: 1px solid rgba(21, 101, 192, 0.25);
}

.wo-set-num {
  font-weight: 700;
  color: var(--muted);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.wo-set-wt {
  font-family: var(--display);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--blue-deep);
  white-space: nowrap;
}

@media (max-width: 520px) {
  .wo-set {
    grid-template-columns: 1fr;
    grid-template-areas:
      "num"
      "reps"
      "actions";
  }
  .wo-set-num { grid-area: num; }
  .wo-set-reps { grid-area: reps; }
  .wo-set-actions { grid-area: actions; text-align: left; }
}

.wo-banner {
  margin: 0.75rem 0 1rem;
  padding: 0.75rem 1rem;
  background: #e8f1fb;
  border-radius: 8px;
  border: 1px solid rgba(21, 101, 192, 0.25);
}

.wo-banner p { margin: 0; }

.wo-set--done {
  opacity: 0.85;
  background: #e8f5e9;
}

.wo-set-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 0.45rem 0.65rem;
  text-align: right;
}

.wo-set-actual {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.55rem;
  align-items: flex-end;
}

.wo-set-actual-field {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  margin: 0;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
}

.wo-set-input {
  width: 3.4rem;
  padding: 0.35rem 0.4rem;
  border: 1px solid var(--line);
  border-radius: 6px;
  font-size: 0.95rem;
  font-weight: 600;
  text-align: center;
  background: #fff;
}

.wo-set-logged {
  font-weight: 700;
  color: #2e7d32;
  font-size: 0.88rem;
}

.wo-set-done {
  font-weight: 700;
  color: #2e7d32;
  font-size: 0.85rem;
}

.wo-feedback {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin: 0 0 0.65rem;
}

.wo-feedback-label {
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}

.wo-feedback-ddl {
  max-width: 8rem;
}

.wo-finish {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

/* ========== Athlete bottom tab nav (Chat) ========== */
body.is-athlete .page {
  padding-bottom: calc(4.75rem + var(--safe));
}

body.is-coach .page {
  padding-bottom: calc(4.75rem + var(--safe));
}

body.is-admin.has-coach-tabnav .page {
  padding-bottom: calc(4.75rem + var(--safe));
}

.athlete-tabnav {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 40;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  align-items: stretch;
  gap: 0;
  min-height: 3.85rem;
  padding: 0.35rem 0.25rem calc(0.35rem + var(--safe));
  background: #0b0d12;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 -10px 28px rgba(0, 0, 0, 0.22);
}

/* Desktop: same width as athlete header / content column */
@media (min-width: 900px) {
  .athlete-tabnav {
    left: 50%;
    right: auto;
    width: 880px;
    max-width: calc(100vw - 1.5rem);
    transform: translateX(-50%);
    border-radius: 16px 16px 0 0;
  }
}

.athlete-tabnav__item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  min-width: 0;
  padding: 0.45rem 0.15rem 0.35rem;
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  overflow: hidden;
  transition: color 0.15s ease;
}

.athlete-tabnav__item:hover {
  color: #fff;
}

.athlete-tabnav__item.is-active {
  color: var(--blue);
}

/* Thin blue rail on the active tab ? more than a color swap */
.athlete-tabnav__item.is-active::before {
  content: "";
  position: absolute;
  top: 0;
  left: 22%;
  right: 22%;
  height: 3px;
  border-radius: 0 0 3px 3px;
  background: var(--blue);
  box-shadow: 0 0 10px rgba(47, 107, 255, 0.45);
}

.athlete-tabnav__item.is-active .athlete-tabnav__label {
  font-weight: 700;
}

.athlete-tabnav__ico {
  display: grid;
  place-items: center;
  width: 1.55rem;
  height: 1.55rem;
}

.athlete-tabnav__ico svg {
  width: 1.35rem;
  height: 1.35rem;
}

.athlete-tabnav__ico--profile,
.athlete-tabnav__ico--img {
  position: relative;
  width: 1.35rem;
  height: 1.35rem;
  flex-shrink: 0;
  overflow: visible;
  background: transparent;
  box-shadow: none;
}

.athlete-tabnav__badge {
  position: absolute;
  top: -0.35rem;
  right: -0.5rem;
  z-index: 2;
  min-width: 1.05rem;
  height: 1.05rem;
  padding: 0 0.22rem;
  border-radius: 999px;
  background: #ffe566;
  border: 1.5px solid #0b0d12;
  color: #0b0d12;
  font-size: 0.58rem;
  font-weight: 800;
  line-height: 1.05rem;
  text-align: center;
  box-sizing: border-box;
}

.athlete-tabnav__ico--profile img,
.athlete-tabnav__profile-img,
.athlete-tabnav__img {
  width: 1.35rem !important;
  height: 1.35rem !important;
  max-width: 1.35rem;
  max-height: 1.35rem;
  object-fit: contain;
  display: block;
}

.athlete-tabnav__label {
  font-size: 0.62rem;
  letter-spacing: 0.02em;
  line-height: 1;
  white-space: nowrap;
}

.athlete-placeholder {
  max-width: 420px;
  margin: 1.5rem auto;
  text-align: center;
}

.athlete-placeholder h2 {
  margin: 0 0 0.5rem;
  font-family: var(--display);
  font-size: 1.6rem;
  font-style: italic;
  text-transform: uppercase;
  color: var(--blue);
}

.athlete-placeholder p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.athlete-profile {
  max-width: 420px;
  margin: 1.25rem auto;
  text-align: center;
}

.athlete-profile__avatar {
  width: 7.5rem;
  height: 7.5rem;
  margin: 0.25rem auto 1rem;
  border-radius: 0;
  overflow: visible;
  background: transparent;
  box-shadow: none;
  border: 0;
}

.athlete-profile__avatar img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.athlete-profile h2 {
  margin: 0 0 0.25rem;
  font-family: var(--display);
  font-size: 1.55rem;
  font-style: italic;
  text-transform: uppercase;
  color: var(--blue);
}

.athlete-profile__lead {
  margin: 0.85rem 0 1.25rem;
  color: var(--muted);
  line-height: 1.45;
}

/* Athlete Profile ? match Workouts / Exercises surfaces */
.athlete-prof {
  margin: 0 0 1.25rem;
}

.athlete-prof__hero {
  margin-bottom: 0.85rem;
}

.athlete-prof .form-ok,
.athlete-prof .form-error {
  margin: 0 0 0.75rem;
  padding: 0.65rem 0.8rem;
  border-radius: 12px;
  font-size: 0.9rem;
  font-weight: 600;
}

.athlete-prof .form-ok {
  background: #e8f5e9;
  color: #1b5e20;
  border: 1px solid #a5d6a7;
}

.athlete-prof .form-error {
  background: #ffebee;
  color: #b71c1c;
  border: 1px solid #ef9a9a;
}

.athlete-prof__card {
  overflow: hidden;
  margin: 0 0 0.75rem;
  border: 2px solid #0b0d12;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(11, 13, 18, 0.06);
}

.athlete-prof__card-top {
  padding: 0.62rem 0.9rem;
  background: #0b0d12;
  color: #fff;
}

.athlete-prof__card-title {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.athlete-prof__card-body {
  padding: 0.9rem;
}

.athlete-prof__email {
  margin: 0 0 0.55rem;
  font-size: 0.98rem;
  font-weight: 700;
  color: #0b0d12;
  word-break: break-word;
}

.athlete-prof__hint {
  margin: 0 0 0.75rem;
  font-size: 0.82rem;
  color: #5b6575;
  line-height: 1.4;
}

.athlete-prof__field {
  display: block;
  margin: 0 0 0.7rem;
}

.athlete-prof__field span {
  display: block;
  margin-bottom: 0.28rem;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #5b6575;
}

.athlete-prof__input {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 0.7rem 0.8rem;
  border: 1.5px solid #0b0d12;
  border-radius: 12px;
  font: inherit;
  font-size: 0.95rem;
  background: #fff;
}

.athlete-prof__input:focus {
  outline: none;
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(21, 101, 192, 0.18);
}

.athlete-prof__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.35rem;
}

.athlete-prof__btn.btn,
.athlete-prof__btn.btn-solid {
  width: auto !important;
  min-width: 8.5rem;
  min-height: 2.85rem;
  padding: 0.55rem 1rem;
}

.athlete-prof__link,
.athlete-prof__link:visited {
  color: var(--blue);
  font-size: 0.88rem;
  font-weight: 700;
  text-decoration: none;
}

.athlete-prof__link:hover {
  text-decoration: underline;
}

.athlete-progress__head {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  margin-bottom: 0.35rem;
}

.athlete-progress__mark {
  width: 2.75rem;
  height: 2.75rem;
  object-fit: contain;
  flex-shrink: 0;
}

.athlete-progress h2 {
  margin: 0 0 0.2rem;
}

.athlete-progress .card-lead {
  margin: 0;
}

.athlete-progress__list {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}

.athlete-progress__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 0.85rem;
  background: var(--field);
  border-radius: 10px;
}

.athlete-progress__main {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.athlete-progress__main strong {
  font-size: 0.95rem;
  color: var(--ink);
}

.athlete-progress__when {
  font-size: 0.78rem;
  color: var(--muted);
}

.athlete-progress__delta {
  flex-shrink: 0;
  font-weight: 800;
  font-size: 0.88rem;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.athlete-progress__delta.is-up { color: #2e7d32; }
.athlete-progress__delta.is-down { color: #c62828; }
.athlete-progress__delta.is-hold { color: var(--muted); }

/* ---- Athlete Progress (Chat mockup: stats card + lift list) ---- */
.athlete-prog__stats {
  background: #0b0d12;
  color: #fff;
  border-radius: 18px;
  padding: 1rem 1.1rem 1.1rem;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.22);
  margin-bottom: 0.25rem;
}

.athlete-prog__stats-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0;
}

.athlete-prog__stats-mark {
  width: 2.5rem;
  height: 2.5rem;
  object-fit: contain;
  flex-shrink: 0;
}

.athlete-prog__stats-title {
  margin: 0;
  font-family: var(--display);
  font-style: italic;
  font-weight: 700;
  font-size: 1.5rem;
  letter-spacing: 0.02em;
}

.athlete-prog__stats-sub {
  margin: 0.1rem 0 0;
  font-size: 0.82rem;
  color: #aeb6c2;
}

/* Views ? same list, different sort (quiet chips under the black header) */
.athlete-prog__views {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.85rem;
  margin: 0.85rem 0 0.15rem;
  padding: 0 0.15rem;
}

.athlete-prog__view {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #8a93a3;
  text-decoration: none;
  padding: 0.15rem 0;
  border-bottom: 2px solid transparent;
}

.athlete-prog__view:hover {
  color: var(--blue);
  text-decoration: none;
}

.athlete-prog__view.is-active {
  color: var(--blue);
  border-bottom-color: var(--blue);
}

.athlete-prog__stat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
}

.athlete-prog__stat {
  background: rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  padding: 0.6rem 0.4rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.athlete-prog__stat-num {
  font-family: var(--display);
  font-style: italic;
  font-weight: 700;
  font-size: 1.7rem;
  line-height: 1;
  color: #fff;
}

.athlete-prog__stat-num--sm {
  font-size: 1.1rem;
  padding-top: 0.25rem;
}

.athlete-prog__stat-num--up {
  color: #46c26a;
}

.athlete-prog__stat-lbl {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #9aa3b1;
}

.athlete-prog__lifts {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

/* Desktop: cards fill left ? right and wrap down (same as in-session grid) */
@media (min-width: 900px) {
  .athlete-prog__lifts {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 0.85rem 1rem;
    align-items: start;
  }

  .athlete-prog__lifts > li {
    display: flex;
    min-width: 0;
  }

  .athlete-prog__lift {
    width: 100%;
    align-self: start;
  }
}

.athlete-prog__lift {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  background: #fff;
  border: 2px solid #0b0d12;
  border-radius: 16px;
  padding: 0.85rem 0.9rem;
  box-shadow: 0 4px 14px rgba(11, 13, 18, 0.06);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: box-shadow 0.12s ease, transform 0.12s ease;
}

.athlete-prog__lift:hover,
.athlete-prog__lift:focus-visible {
  box-shadow: 0 8px 22px rgba(11, 13, 18, 0.16);
  transform: translateY(-1px);
}

.athlete-prog__lift:active {
  transform: translateY(0);
}

.athlete-prog__lift-name {
  display: block;
  margin: -0.85rem -0.9rem 0;
  padding: 0.68rem 0.9rem;
  border-radius: 15px 15px 0 0;
  background: var(--blue);
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  color: #fff;
  line-height: 1.15;
  text-align: left;
}

.athlete-prog__lift-body {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

/* 3D icon ? no chip / no black square */
.athlete-prog__lift-ico {
  flex-shrink: 0;
  width: 3rem;
  height: 3rem;
  object-fit: contain;
  background: transparent;
}

.athlete-prog__lift-nums {
  min-width: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  padding-top: 0.05rem;
}

.athlete-prog__lift-cols {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.athlete-prog__lift-col {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 3.6rem;
}

.athlete-prog__lift-col--hist {
  margin-left: auto;
  min-width: 0;
  text-align: right;
  align-items: flex-end;
}

.athlete-prog__lift-col-lbl {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #9aa3b1;
}

.athlete-prog__lift-col-val {
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.15;
  color: #8a93a3;
}

.athlete-prog__lift-col-val--max {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--blue);
}

.athlete-prog__lift-col-val.is-up {
  color: #1f7a3a;
}

.athlete-prog__lift-col-val.is-down {
  color: #b02a2a;
}

.athlete-prog__lift-col-val.is-hold {
  color: #8a93a3;
}

.athlete-prog__lift-hist {
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--blue);
  text-decoration: none;
  line-height: 1.15;
  white-space: nowrap;
}

.athlete-prog__lift-hist:hover {
  text-decoration: underline;
}

.athlete-prog__lift-sub {
  font-size: 0.72rem;
  color: #9aa3b1;
}

.athlete-prog__lock {
  margin: 0.9rem 0 0;
  text-align: center;
  font-size: 0.74rem;
  color: #8a93a3;
}

.athlete-prog__empty {
  margin: 1rem 0 0;
  padding: 1rem;
  background: #fff;
  border: 1px solid #e6e8ee;
  border-radius: 14px;
  font-size: 0.9rem;
  color: #4b5563;
}

.athlete-prog-ex__back {
  margin: 0 0 0.75rem;
}

.athlete-prog-ex__back a {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--blue);
  text-decoration: none;
}

.athlete-prog-ex__back a:hover {
  text-decoration: underline;
}

.athlete-prog-ex__h {
  margin: 1.15rem 0 0.55rem;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #8a93a3;
}

.athlete-prog-ex__hist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.athlete-prog-ex__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  background: #fff;
  border: 1.5px solid #0b0d12;
  border-radius: 12px;
  padding: 0.7rem 0.8rem;
}

.athlete-prog-ex__row-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
}

.athlete-prog-ex__row-main strong {
  font-size: 0.92rem;
  color: #0b0d12;
}

.athlete-prog-ex__row-note {
  font-size: 0.72rem;
  color: #9aa3b1;
}

.athlete-prog-ex__row-vals {
  flex-shrink: 0;
  text-align: right;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.athlete-prog-ex__row-max {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--blue);
  line-height: 1.1;
}

.athlete-prog-ex__row-delta {
  font-size: 0.82rem;
  font-weight: 700;
  color: #8a93a3;
}

.athlete-prog-ex__row-delta.is-up { color: #1f7a3a; }
.athlete-prog-ex__row-delta.is-down { color: #b02a2a; }
.athlete-prog-ex__row-delta.is-hold { color: #8a93a3; }

.athlete-prog-ex__edit {
  margin: 0 0 1.25rem;
  padding: 0.9rem 0 0;
  border-top: 1px solid #e8ebf0;
}

.athlete-prog-ex__edit-lead {
  margin: 0 0 0.75rem;
  font-size: 0.82rem;
  color: #8a93a3;
  line-height: 1.4;
}

.athlete-prog-ex__edit-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin: 0 0 0.75rem;
  max-width: 10rem;
}

.athlete-prog-ex__edit-field span {
  font-size: 0.75rem;
  font-weight: 700;
  color: #5c6575;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.athlete-prog-ex__edit-field input {
  font-size: 1.1rem;
  font-weight: 800;
  padding: 0.55rem 0.7rem;
  border: 1px solid #d5dae3;
  border-radius: 8px;
  width: 100%;
}

.athlete-prog-ex__edit-field input.is-readonly {
  background: #eef1f5;
  color: #5c6575;
  border-color: #d5dae3;
  cursor: default;
}

.athlete-prog-ex__derived {
  margin: 0.15rem 0 0;
  padding: 0.75rem 0.85rem;
  border-radius: 10px;
  background: #0b0d12;
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #e8ecf2;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.4;
}

.athlete-prog-ex__derived a {
  color: #7eb6ff;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ---- Athlete / Coach / Admin shells (role masters) ----
   Chrome is owned by the master. Content fills *__content only.
   Page black/blue cards are content design ? not site chrome. */

.athlete-shell {
  width: 100%;
  padding-bottom: 5.5rem; /* room for tab nav */
}

.athlete-shell__chrome {
  width: 100%;
}

/* iPhone status strip ? fixed black bar like the bottom tab safe area (does not scroll) */
.bs-status-safe {
  display: none;
}

body.is-athlete .bs-status-safe,
body.is-coach .bs-status-safe,
body.is-landing .bs-status-safe {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  height: var(--safe-top);
  background: #0b0d12;
  pointer-events: none;
}

body.is-athlete .athlete-shell__chrome,
body.is-coach .coach-shell__chrome {
  padding-top: var(--safe-top);
}

/* Kill old ::before strip if cached theme CSS still has it */
body.is-athlete .athlete-shell__chrome::before,
body.is-coach .coach-shell__chrome::before {
  content: none !important;
  display: none !important;
}

.athlete-shell__chrome-inner {
  max-width: 400px;
  margin: 0 auto;
  padding: 0.35rem 0.9rem 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.athlete-shell__identity {
  min-width: 0;
  flex: 1 1 auto;
}

.athlete-shell__name {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(2.55rem, 11vw, 3.25rem);
  font-style: italic;
  font-weight: 700;
  line-height: 0.92;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: #0b0d12;
}

/* Reserved band so 1-line vs 2-line subtitles don't thrash chrome height */
.athlete-shell__sub {
  min-height: 2.6rem;
  margin-top: 0.35rem;
}

.athlete-shell__sub .athlete-home__line {
  margin: 0;
  font-size: 1rem;
  color: #8a93a3;
}

.athlete-shell__sub .athlete-home__line + .athlete-home__line,
.athlete-shell__sub .athlete-home__line--sub {
  margin-top: 0.15rem;
  font-size: 0.88rem;
  color: #aeb6c2;
}

.athlete-shell__actions {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.15rem;
}

.athlete-shell__avatar {
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 999px;
  background: #0b0d12;
  display: grid;
  place-items: center;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}

.athlete-shell__avatar img {
  width: 1.15rem;
  height: 1.15rem;
  object-fit: contain;
}

.athlete-shell__account {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
}

.athlete-shell__switch {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #5a6575;
  text-decoration: none;
  white-space: nowrap;
}

.athlete-shell__switch:hover {
  text-decoration: underline;
  color: var(--blue);
}

.athlete-shell__signout {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--blue);
  text-decoration: none;
  white-space: nowrap;
}

.athlete-shell__signout:hover {
  text-decoration: underline;
}

.athlete-shell__content {
  max-width: 400px;
  margin: 0.9rem auto 0;
  padding: 0 0.9rem 0.75rem;
}

/* Desktop: same mobile look, wider canvas so home can sit two columns */
@media (min-width: 900px) {
  .athlete-shell__chrome-inner,
  .athlete-shell__content {
    max-width: 880px;
  }

  .athlete-shell__name {
    font-size: 3.1rem;
  }

  /* Fixed header ? same idea as the tab bar. Zero scroll travel. */
  body.is-athlete .page {
    padding-top: 0;
  }

  .athlete-shell__chrome {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 30;
    background: #eceff3;
    box-shadow: 0 8px 18px rgba(236, 239, 243, 0.95);
  }

  .athlete-shell__chrome-inner {
    padding-top: 0.85rem;
    padding-bottom: 0.55rem;
  }

  /* Reserve space so content doesn't sit under the fixed chrome (+ status strip when present) */
  .athlete-shell {
    padding-top: calc(7.75rem + var(--safe-top));
  }

  .athlete-shell__content {
    margin-top: 0.35rem;
  }
}

.coach-shell,
.admin-shell {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  padding: 0.5rem 0.75rem 1.5rem;
}

.coach-shell__chrome-inner,
.admin-shell__chrome-inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.coach-shell__identity {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
}

.coach-shell__name,
.admin-shell__name {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(2rem, 8vw, 2.6rem);
  font-style: italic;
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: #0b0d12;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.coach-shell__sub,
.admin-shell__sub {
  min-height: 1.4rem;
  margin-top: 0.3rem;
}

.coach-shell__sub .role-hero__line,
.admin-shell__sub .role-hero__line {
  margin: 0;
}

.coach-shell__subline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  min-height: 1.4rem;
}

.coach-shell__subline .role-hero__line {
  flex: 1 1 auto;
  min-width: 0;
}

.coach-shell__help-slot {
  display: flex;
  align-items: flex-start;
  padding-top: 0.12rem;
}

.coach-shell__help-slot:empty {
  display: none;
}

.coach-shell__help {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
  margin: 0;
  padding: 0.34rem 0.72rem 0.34rem 0.48rem;
  border: 1.5px solid rgba(255, 255, 255, 0.95);
  border-radius: 999px;
  background: linear-gradient(180deg, #34c471 0%, #228b54 52%, #1a6b40 100%);
  color: #fff;
  font-family: var(--display);
  font-size: 0.72rem;
  font-weight: 700;
  font-style: italic;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  cursor: pointer;
  line-height: 1;
  white-space: nowrap;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.38),
    0 3px 0 #145a32,
    0 5px 14px rgba(26, 107, 64, 0.42);
  transition: transform 0.12s ease, box-shadow 0.12s ease, filter 0.12s ease;
}

.coach-shell__help:hover,
.coach-shell__help:focus {
  filter: brightness(1.06);
  outline: none;
  transform: translateY(-1px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.42),
    0 4px 0 #145a32,
    0 7px 18px rgba(26, 107, 64, 0.48);
}

.coach-shell__help:active {
  transform: translateY(1px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 1px 0 #145a32,
    0 3px 10px rgba(26, 107, 64, 0.35);
}

.coach-shell__help.is-active {
  background: linear-gradient(180deg, #2db364 0%, #1a6b40 52%, #124d2e 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.28),
    0 0 0 2px rgba(34, 139, 84, 0.35),
    0 3px 0 #0f3d24,
    0 5px 14px rgba(26, 107, 64, 0.5);
}

.coach-shell__help-mark {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.2rem;
  height: 1.28rem;
  flex-shrink: 0;
}

.coach-shell__help-q {
  width: 100%;
  height: 100%;
  display: block;
  overflow: visible;
}

.coach-shell__help-label {
  padding-top: 0.06rem;
}

.coach-page-help {
  margin: -0.15rem 0 0.85rem;
  max-width: 100%;
  min-width: 0;
}

.coach-page-help__panel {
  background: #0b0d12;
  color: #fff;
  border-radius: 18px;
  padding: 0.95rem 1rem 1rem;
  box-shadow:
    0 10px 26px rgba(0, 0, 0, 0.22),
    0 0 0 1px rgba(255, 255, 255, 0.04) inset;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

.coach-page-help__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}

.coach-page-help__head-copy {
  min-width: 0;
  flex: 1 1 auto;
}

.coach-page-help__title {
  margin: 0;
  font-family: var(--display);
  font-style: italic;
  font-weight: 700;
  font-size: 1.35rem;
  letter-spacing: 0.02em;
  line-height: 1.05;
}

.coach-page-help__lead {
  margin: 0.35rem 0 0;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.45;
  color: #aeb6c2;
}

.coach-page-help__close {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  cursor: pointer;
  transition: background 0.15s ease;
}

.coach-page-help__close svg {
  width: 1rem;
  height: 1rem;
}

.coach-page-help__close:hover,
.coach-page-help__close:focus {
  background: rgba(255, 255, 255, 0.16);
  outline: none;
}

.coach-page-help__body {
  display: grid;
  gap: 0.85rem;
}

@media (min-width: 720px) {
  .coach-page-help__body {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    align-items: start;
    gap: 1rem;
  }
}

.coach-page-help__main {
  min-width: 0;
}

.coach-page-help__pane {
  display: none;
}

.coach-page-help__pane.is-active {
  display: block;
}

.coach-page-help__pane--text {
  padding: 0.85rem 1rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.08);
  min-height: 10.5rem;
}

.coach-page-help__video {
  position: relative;
  margin: 0;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(21, 101, 192, 0.45);
  background: #050608;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
}

.coach-page-help__video iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  display: none;
  border: 0;
  vertical-align: top;
}

.coach-page-help__video img,
.coach-page-help__poster {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  display: block;
  object-fit: cover;
  object-position: center center;
  vertical-align: top;
}

.coach-page-help__video.is-playing iframe {
  display: block;
}

.coach-page-help__video.is-playing img,
.coach-page-help__video.is-playing .coach-page-help__poster {
  display: none;
}

.coach-page-help__video.is-playing .coach-page-help__play {
  display: none;
}

.coach-page-help__play {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  margin: 0;
  padding: 1rem;
  border: 0;
  width: 100%;
  min-height: 10.5rem;
  cursor: pointer;
  background: linear-gradient(180deg, rgba(11, 13, 18, 0.12) 0%, rgba(11, 13, 18, 0.58) 100%);
  color: #fff;
  text-align: center;
  font: inherit;
}

.coach-page-help__play-label {
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.coach-page-help__play-time {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.82);
}

.coach-page-help__video .mkt-video__play {
  width: 3.25rem;
  height: 3.25rem;
  margin-bottom: 0.1rem;
  box-shadow: 0 10px 28px rgba(21, 101, 192, 0.45);
}

.coach-page-help__aside {
  display: flex;
  flex-direction: column;
  min-width: 0;
  max-width: 100%;
  padding: 0.75rem 0.85rem;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-sizing: border-box;
}

.coach-page-help__nav {
  display: grid;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.coach-page-help__nav-item {
  margin: 0;
  padding: 0;
}

.coach-page-help__nav-btn {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.55rem 0.65rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  color: #dce3ec;
  font-family: inherit;
  font-size: 0.8rem;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  line-height: 1.3;
  transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}

.coach-page-help__nav-btn:hover,
.coach-page-help__nav-btn:focus {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.18);
  color: #fff;
  outline: none;
}

.coach-page-help__nav-btn.is-active {
  background: rgba(34, 139, 84, 0.22);
  border-color: rgba(34, 139, 84, 0.55);
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(34, 139, 84, 0.25);
}

.coach-page-help__pane-head {
  margin: 0 0 0.55rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
}

.coach-page-help__pane-copy {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.5;
  color: #d8dde5;
}

.coach-page-help__faq {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.65rem;
}

.coach-page-help__faq li {
  padding-bottom: 0.65rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.coach-page-help__faq li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.coach-page-help__faq-q {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.82rem;
  font-weight: 800;
  color: #fff;
}

.coach-page-help__faq-a {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.45;
  color: #d8dde5;
}

.coach-page-help__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.55rem;
}

.coach-page-help__list li {
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.45;
  color: #d8dde5;
}

.coach-page-help__list strong {
  color: #fff;
  font-weight: 800;
}

.coach-shell__signout,
.admin-shell__signout {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--blue);
  text-decoration: none;
}

.admin-shell__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.2rem;
}

.admin-shell__back {
  font-size: 0.72rem;
  font-weight: 700;
  color: #5a6575;
  text-decoration: none;
  white-space: nowrap;
}

.admin-shell__back:hover,
.admin-shell__nav a:hover {
  color: var(--blue);
  text-decoration: underline;
}

.admin-shell__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.9rem;
  margin: 0 0 0.85rem;
  padding: 0.65rem 0;
  border-top: 1px solid #d8dde5;
  border-bottom: 1px solid #d8dde5;
}

.admin-shell__nav a {
  color: #0b0d12;
  font-size: 0.78rem;
  font-weight: 800;
  text-decoration: none;
}

.coach-shell__account {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
}

.coach-shell__switch {
  font-size: 0.72rem;
  font-weight: 700;
  color: #5a6575;
  text-decoration: none;
  white-space: nowrap;
}

.coach-shell__switch:hover {
  text-decoration: underline;
  color: var(--blue);
}

.coach-shell__actions {
  flex-shrink: 0;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 0.55rem;
  margin-top: 0.15rem;
  max-width: 100%;
}

.coach-shell__avatar {
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 999px;
  background: var(--blue);
  display: grid;
  place-items: center;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
  text-decoration: none;
  /* Feeds stroke="currentColor" on the mark */
  color: #fff;
}

.coach-shell__avatar svg {
  width: 1.2rem;
  height: 1.2rem;
}

.coach-shell__signout:hover {
  text-decoration: underline;
}

.coach-shell__nav {
  margin-bottom: 0.85rem;
}

.coach-shell__content,
.admin-shell__content {
  width: 100%;
}

/* ---- Athlete Home (page content under Athlete.master) ---- */
.athlete-home {
  max-width: 400px;
  margin: 0 auto 1.25rem;
  padding: 0.35rem 0.35rem 0.75rem;
}

.athlete-home__hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1.15rem;
}

.athlete-home__name {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(2.55rem, 11vw, 3.25rem);
  font-style: italic;
  font-weight: 700;
  line-height: 0.92;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: #0b0d12;
}

.athlete-home__line {
  margin: 0.4rem 0 0;
  font-size: 1rem;
  color: #8a93a3;
}

.athlete-home__line--sub {
  margin-top: 0.15rem;
  font-size: 0.88rem;
  color: #aeb6c2;
}

/* Role heroes (coach / admin nested masters) */
.role-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0 0 1rem;
}

.role-hero__name {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(2rem, 8vw, 2.6rem);
  font-style: italic;
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: #0b0d12;
}

.role-hero__line {
  margin: 0.35rem 0 0;
  font-size: 1rem;
  color: #8a93a3;
}

.role-hero__right {
  flex-shrink: 0;
  margin-top: 0.35rem;
}

.role-hero__signout {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--blue);
  text-decoration: none;
  white-space: nowrap;
}

.role-hero__signout:hover {
  text-decoration: underline;
}

.athlete-home__hero-right {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.15rem;
}

.athlete-home__avatar {
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
  background: #0b0d12;
  display: grid;
  place-items: center;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}

.athlete-home__avatar img {
  width: 1.55rem;
  height: 1.55rem;
  object-fit: contain;
}

.athlete-home__account {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.2rem;
}

.athlete-home__switch {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  white-space: nowrap;
}

.athlete-home__switch:hover {
  text-decoration: underline;
  color: #fff;
}

.athlete-home__signout {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--blue);
  text-decoration: none;
  white-space: nowrap;
}

.athlete-home__signout:hover {
  text-decoration: underline;
  color: var(--blue-deep);
}

.athlete-home__team { margin-bottom: 0.85rem; }

/*
  Home layout
  Mobile: single column, same order as before (TODAY ? goal ? note ? actions).
  Desktop: left = action (TODAY + start), right = context (goal + note).
*/
.athlete-home-layout {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.athlete-home-layout__primary,
.athlete-home-layout__secondary {
  display: contents;
}

.athlete-home-layout__card,
.athlete-home__today {
  order: 1;
}

.athlete-home-layout__goal {
  order: 2;
}

.athlete-home-layout__note {
  order: 3;
}

@media (min-width: 900px) {
  .athlete-home-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
    column-gap: 1.15rem;
    row-gap: 0;
    align-items: start;
  }

  .athlete-home-layout__primary,
  .athlete-home-layout__secondary {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    min-width: 0;
    margin: 0;
    padding: 0;
    align-self: start;
  }

  .athlete-home-layout__card,
  .athlete-home__today,
  .athlete-home-layout__goal,
  .athlete-home-layout__note {
    order: unset;
    margin-top: 0;
  }
}

.athlete-home__resume {
  margin: 0 0 0.85rem;
  padding: 0.8rem 0.95rem;
  border-radius: 12px;
  background: #ffe566;
  border: 2px solid #f0c400;
  color: #0b0d12;
  font-size: 0.95rem;
  font-weight: 700;
  box-shadow: 0 6px 18px rgba(240, 196, 0, 0.35);
}

.athlete-home__resume p { margin: 0; }

.athlete-home__resume a {
  color: #0b4ea2;
  font-weight: 800;
  text-decoration: underline;
}

.athlete-home-card {
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.12);
}

/* Whole TODAY card is the start tap target (22yo / don?t-read path). Button stays too. */
.athlete-home-card__hit,
a.athlete-home-card--tap,
.athlete-home-card--tap {
  display: block;
  width: 100%;
  text-align: left;
  text-decoration: none;
  color: inherit;
  font-weight: inherit;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  border: 0;
  padding: 0;
  background: transparent;
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.athlete-home-card__hit:hover,
a.athlete-home-card--tap:hover,
.athlete-home-card--tap:hover {
  color: inherit;
  text-decoration: none;
}

.athlete-home-card__hit:active,
a.athlete-home-card--tap:active,
.athlete-home-card--tap:active {
  transform: scale(0.985);
}

.athlete-home-card__foot {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.55rem;
  padding: 0.85rem 0.9rem 0.85rem;
  border-top: 1px solid #e8eaef;
  background: #fff;
}

.athlete-home-card__empty {
  position: relative;
  min-height: 9.5rem;
  padding: 1.35rem 1.15rem 1.25rem;
  overflow: hidden;
  background: #fff;
}

.athlete-home-card__empty-plate {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center right;
  pointer-events: none;
}

.athlete-home-card__empty-plate::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    #ffffff 0%,
    #ffffff 22%,
    rgba(255, 255, 255, 0.92) 40%,
    rgba(255, 255, 255, 0.55) 62%,
    rgba(255, 255, 255, 0.15) 82%,
    rgba(255, 255, 255, 0) 100%
  );
}

.athlete-home-card__empty-copy {
  position: relative;
  z-index: 1;
  max-width: 78%;
}

.athlete-home-card__empty-title {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(1.55rem, 6vw, 2rem);
  font-style: italic;
  font-weight: 700;
  line-height: 1.05;
  text-transform: uppercase;
  color: var(--blue);
}

.athlete-home-card__empty-text {
  margin: 0.55rem 0 0;
  font-size: 0.92rem;
  line-height: 1.4;
  color: #5c6573;
}

.athlete-home-card__meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0 0.1rem;
}

.athlete-home-card__meta-name {
  min-width: 0;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #8a93a3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.athlete-home__change {
  flex-shrink: 0;
  margin-left: auto;
  font-size: 0.72rem;
  font-weight: 600;
  color: #9aa3b1;
  text-decoration: none;
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
}

.athlete-home__change:hover {
  color: var(--blue);
  text-decoration: underline;
}

.athlete-home-card__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.7rem 1rem;
  background: #0b0d12;
  color: #fff;
}

.athlete-home-card__today {
  font-weight: 800;
  letter-spacing: 0.1em;
  font-size: 0.78rem;
  color: #fff;
}

.athlete-home-card__date {
  font-size: 0.7rem;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.7);
}

.athlete-home-card__body {
  display: block;
  position: relative;
  min-height: 5.5rem;
  padding: 0.85rem 1.1rem 0.75rem;
  overflow: hidden;
  background: #fff;
}

.athlete-home-card__plate {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center right;
  opacity: 1;
  filter: none;
  pointer-events: none;
  /* White fade left ? right so title stays readable; plate shows full height on the right */
  -webkit-mask-image: none;
  mask-image: none;
}

.athlete-home-card__plate::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    #ffffff 0%,
    #ffffff 18%,
    rgba(255, 255, 255, 0.92) 34%,
    rgba(255, 255, 255, 0.55) 52%,
    rgba(255, 255, 255, 0.18) 72%,
    rgba(255, 255, 255, 0) 100%
  );
}

.athlete-home-card__copy {
  display: block;
  position: relative;
  z-index: 1;
  max-width: 62%;
}

.athlete-home-card__title {
  display: block;
  margin: 0;
  font-family: var(--display);
  font-size: clamp(1.85rem, 7.5vw, 2.35rem);
  font-style: italic;
  font-weight: 700;
  line-height: 0.98;
  text-transform: uppercase;
  color: var(--blue);
}

.athlete-home-card__type {
  display: block;
  margin: 0.4rem 0 0;
  font-size: 0.95rem;
  color: #8a93a3;
}

.athlete-home-card__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid #e8eaef;
  background: #fff;
}

.athlete-home-card__stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.12rem;
  padding: 0.85rem 0.3rem 0.9rem;
  text-align: center;
  border-right: 1px solid #e8eaef;
}

.athlete-home-card__stat:last-child { border-right: 0; }

.athlete-home-card__ico {
  width: 1.85rem;
  height: 1.85rem;
  object-fit: contain;
  margin-bottom: 0.2rem;
  color: var(--blue);
}

.athlete-home-card__ico--svg {
  display: grid;
  place-items: center;
}

.athlete-home-card__ico--svg svg {
  width: 1.7rem;
  height: 1.7rem;
  display: block;
}

.athlete-home-card__stat strong {
  font-size: 1.05rem;
  font-weight: 800;
  color: #0b0d12;
  letter-spacing: 0.01em;
  line-height: 1.1;
}

.athlete-home-card__stat span {
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--blue);
}

.athlete-home-goal {
  margin-top: 0;
  padding: 0.9rem 1rem;
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
  border: 2px solid rgba(21, 101, 192, 0.35);
  border-left: 5px solid var(--blue);
}

.athlete-home-goal__mark {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  display: grid;
  place-items: center;
  margin-top: 0.05rem;
  background: transparent;
}

.athlete-home-goal__mark img {
  width: 2.25rem;
  height: 2.25rem;
  object-fit: contain;
  display: block;
}

.athlete-home-goal__copy {
  min-width: 0;
}

.athlete-home-goal__label {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: var(--blue);
}

.athlete-home-goal__text {
  margin: 0.3rem 0 0;
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1.4;
  color: #0b0d12;
}

.athlete-home-note {
  position: relative;
  margin-top: 0;
  padding: 1rem 1.05rem 0.95rem;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.08);
}

.athlete-home-note__top {
  display: flex;
  align-items: center;
}

.athlete-home-note__label {
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: var(--blue);
}

.athlete-home-note__text {
  margin: 0.55rem 0 0.4rem;
  font-family: "Caveat", cursive;
  font-size: 1.45rem;
  line-height: 1.28;
  color: #1e3a5f;
}

.athlete-home-note__by {
  margin: 0;
  font-family: "Caveat", cursive;
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--blue);
}

.athlete-home__start-wrap {
  position: relative;
}

.athlete-home__start {
  width: 100%;
  min-height: 3.25rem;
  border-radius: 14px;
  font-size: 0.92rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding-right: 2.4rem;
}

.athlete-home__start-chev {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-54%);
  color: #fff;
  font-size: 1.55rem;
  font-weight: 400;
  pointer-events: none;
  line-height: 1;
}

.athlete-home-pick {
  padding: 0.95rem 1rem 1.05rem;
  background: #fff;
}

.athlete-home-pick__title {
  margin: 0 0 0.75rem;
  font-size: 0.95rem;
  font-weight: 800;
  color: #0b0d12;
}

.athlete-home-pick__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.athlete-home-pick__item {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  width: 100%;
  text-align: left;
  text-decoration: none;
  color: inherit;
  background: #f6f7f9;
  border: 1px solid #e6e8ee;
  border-radius: 12px;
  padding: 0.75rem 0.85rem;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.athlete-home-pick__item:hover {
  text-decoration: none;
  color: inherit;
  border-color: rgba(21, 101, 192, 0.45);
  background: #eef4fc;
}

.athlete-home-pick__bullet {
  flex-shrink: 0;
  width: 0.55rem;
  height: 0.55rem;
  margin-top: 0.45rem;
  border-radius: 999px;
  background: var(--blue);
}

.athlete-home-pick__copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.athlete-home-pick__name {
  font-size: 0.98rem;
  font-weight: 800;
  color: #0b0d12;
  line-height: 1.2;
}

.athlete-home-pick__type {
  font-size: 0.82rem;
  color: #8a93a3;
}

.athlete-home-pick__cancel {
  width: 100%;
  margin-top: 0.85rem;
}

.athlete-home-momentum {
  margin-top: 0;
  padding: 0 0.4rem 0.85rem;
  margin-left: -0.35rem;
  margin-right: -0.35rem;
  background: linear-gradient(
    180deg,
    rgba(236, 239, 243, 0.94) 0%,
    rgba(236, 239, 243, 0.88) 55%,
    rgba(236, 239, 243, 0.55) 100%
  );
  border-radius: 0 0 18px 18px;
}

.athlete-home-momentum__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin: 0;
  padding: 0.85rem 0.95rem 0.55rem;
  border-bottom: 1px solid #eef0f4;
}

.athlete-home-momentum__head h3 {
  margin: 0;
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  font-weight: 800;
  color: #0b0d12;
}

.athlete-home-momentum__head a {
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--blue);
}

.athlete-home-momentum__card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.1);
}

.athlete-home-momentum__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.athlete-home-momentum__row {
  display: grid;
  grid-template-columns: 1.6rem 1fr auto;
  gap: 0.55rem;
  align-items: center;
  padding: 0.8rem 0.95rem;
  border-bottom: 1px solid #eef0f4;
}

.athlete-home-momentum__move {
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-size: 0.78rem;
  font-weight: 800;
}

.athlete-home-momentum__move.is-up { background: #e8f5e9; color: #2e7d32; }
.athlete-home-momentum__move.is-down { background: #ffebee; color: #c62828; }
.athlete-home-momentum__move.is-held { background: #eceff1; color: #607d8b; }

.athlete-home-momentum__ex {
  font-size: 0.86rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: #0b0d12;
}

.athlete-home-momentum__delta {
  font-size: 0.82rem;
  font-weight: 800;
}

.athlete-home-momentum__delta.is-up { color: #2e7d32; }
.athlete-home-momentum__delta.is-down { color: #c62828; }
.athlete-home-momentum__delta.is-held { color: #607d8b; }

.athlete-home-momentum__streak {
  margin: 0;
  padding: 0.85rem 0.95rem;
  background: rgba(21, 101, 192, 0.08);
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  border-bottom: 1px solid rgba(21, 101, 192, 0.08);
}

.athlete-home-momentum__streak strong {
  font-size: 0.9rem;
  letter-spacing: 0.05em;
  color: var(--blue);
}

.athlete-home-momentum__streak span {
  font-size: 0.8rem;
  color: #5b6575;
}

.is-athlete .athlete-home__name,
.is-athlete .athlete-home-card__title {
  text-shadow: none;
}

.is-athlete .main--single {
  padding-top: 0.35rem;
}

/* Status strip owns safe-area-inset-top for athlete + coach (see .athlete-shell__chrome::before) */


/* ---- Athlete Workout / in-session (Brett locks) ---- */
body.is-athlete .main--single {
  padding-left: 0.65rem;
  padding-right: 0.65rem;
  overflow-x: hidden;
  max-width: var(--max);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

.athlete-wo {
  max-width: 400px;
  width: 100%;
  margin: 0 auto 1.25rem;
  padding: 0.2rem 0 5.5rem;
  overflow-x: hidden;
  box-sizing: border-box;
}

.athlete-wo-grid {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}

@media (min-width: 900px) {
  .athlete-wo {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }

  .athlete-wo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 0.9rem 1rem;
    align-items: start;
  }

  .athlete-wo-grid .athlete-wo-card {
    margin-bottom: 0;
    align-self: start;
  }

  .athlete-wo-footer {
    margin-top: 1rem;
  }
}

.athlete-wo__hero { margin-bottom: 1rem; }

.athlete-wo__name {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(2.2rem, 10vw, 3.25rem);
  font-style: italic;
  font-weight: 700;
  line-height: 0.92;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: #0b0d12;
}

.athlete-wo__line {
  margin: 0.4rem 0 0;
  font-size: 0.92rem;
  color: #8a93a3;
}

.athlete-wo-card {
  background: #fff;
  border-radius: 16px;
  border: 1.5px solid var(--blue);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
  overflow: hidden;
  margin-bottom: 0.9rem;
  max-width: 100%;
  box-sizing: border-box;
}

.athlete-wo-card__head {
  display: flex;
  align-items: stretch;
  gap: 0;
  min-width: 0;
}

.athlete-wo-card__num {
  flex: 0 0 2.4rem;
  display: grid;
  place-items: center;
  background: var(--blue);
  color: #fff;
  font-weight: 600;
  font-size: 1.15rem;
  letter-spacing: 0.02em;
}

/* White tile so the dark 3D art reads ? bottom rule keeps it off the set rows */
.athlete-wo-card__icon {
  flex: 0 0 2.6rem;
  display: grid;
  place-items: center;
  /* #31683a at 38% over white ? flattened so no card background can change it */
  background: #b2c6b5;
  border-bottom: 2px solid #0b0d12;
}

.athlete-wo-card__icon img {
  display: block;
  width: 30px;
  height: 30px;
}

.athlete-wo-card__titlebar {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem;
  padding: 0.65rem 0.7rem;
  background: #0b0d12;
  min-width: 0;
}

.athlete-wo-card__title {
  font-weight: 600;
  font-size: 0.82rem;
  letter-spacing: 0.03em;
  color: #fff;
  text-transform: uppercase;
  line-height: 1.15;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}

.athlete-wo-card__max {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  padding: 0.22rem 0.5rem;
  border-radius: 999px;
  border: 1.5px solid #fff;
  background: #31683a;
  color: #fff;
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.athlete-wo-sets {
  list-style: none;
  margin: 0;
  padding: 0;
}

.athlete-wo-set {
  border-top: 1px solid #e8eaef;
  background: #fff;
}

.athlete-wo-set:nth-child(even) { background: #f0f1f4; }

.athlete-wo-set.is-test { background: rgba(21, 101, 192, 0.08); }

.athlete-wo-set.is-done { background: #e8f5e9; }

.athlete-wo-set__hit {
  display: grid;
  grid-template-columns: 3.1rem minmax(0, 1fr) 4.25rem 1.85rem;
  align-items: center;
  column-gap: 0.35rem;
  width: 100%;
  max-width: 100%;
  padding: 0.7rem 0.65rem;
  text-decoration: none;
  color: inherit;
  font-weight: 400;
  box-sizing: border-box;
  min-height: 3rem;
}

.athlete-wo-set__hit:link,
.athlete-wo-set__hit:visited,
.athlete-wo-set__hit:hover,
.athlete-wo-set__hit:active {
  color: inherit;
  font-weight: 400;
  text-decoration: none;
}

.athlete-wo-set__hit[disabled] {
  pointer-events: none;
  opacity: 0.85;
}

.athlete-wo-set__num {
  font-size: 0.68rem;
  font-weight: 400;
  letter-spacing: 0.03em;
  color: #0b0d12;
}

.athlete-wo-set__mid {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.3rem;
  min-width: 0;
}

.athlete-wo-set__test {
  flex-shrink: 0;
  display: inline-block;
  padding: 0.12rem 0.35rem;
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
  font-size: 0.55rem;
  font-weight: 500;
  letter-spacing: 0.05em;
}

.athlete-wo-set__reps {
  font-weight: 600;
  color: var(--blue);
  font-size: 0.82rem;
  letter-spacing: 0.01em;
  white-space: nowrap;
}

.athlete-wo-set__wt {
  text-align: right;
  font-weight: 600;
  color: #0b0d12;
  font-size: 0.88rem;
  white-space: nowrap;
}

.athlete-wo-set__mark {
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: transparent;
  border: 2px solid #c5cbd6;
  color: #c5cbd6;
  font-size: 0.65rem;
  font-weight: 600;
  justify-self: end;
  box-sizing: border-box;
}

.athlete-wo-set.is-test:not(.is-done) .athlete-wo-set__mark {
  border-color: var(--blue);
  color: var(--blue);
}

.athlete-wo-set.is-done .athlete-wo-set__mark {
  background: #2e7d32;
  border-color: #2e7d32;
  color: #fff;
}

.athlete-wo-testgoal {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
  padding: 0.8rem 0.75rem;
  border-top: 1px solid #e8eaef;
  background: #f7f8fa;
}

.athlete-wo-testgoal__label {
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--blue);
}

.athlete-wo-testgoal__text {
  margin: 0.15rem 0 0;
  font-size: 0.88rem;
  font-weight: 400;
  color: #0b0d12;
}

.athlete-wo-testgoal__text strong {
  color: var(--blue);
  font-weight: 600;
}

.athlete-wo-testgoal__adj {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  width: 100%;
}

.athlete-wo-testgoal__btn {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 10px;
  border: 1.5px solid var(--blue);
  background: #fff;
  color: var(--blue);
  font-size: 1.35rem;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.athlete-wo-testgoal__wt {
  min-width: 4.5rem;
  text-align: center;
  font-weight: 500;
  font-size: 0.95rem;
  color: #0b0d12;
}

.athlete-wo-footer {
  margin-top: 1rem;
  padding-bottom: 0.5rem;
  max-width: 100%;
}

.athlete-wo-notes {
  display: block;
  margin-bottom: 0.85rem;
}

.athlete-wo-notes-card {
  margin-bottom: 0.85rem;
}

.athlete-wo-notes-card .athlete-wo-card__titlebar {
  justify-content: flex-start;
}

.athlete-wo-notes-card .athlete-wo-notes {
  margin: 0;
  padding: 0.75rem;
}

.athlete-wo-notes-card .athlete-wo-notes__box {
  border: none;
  border-radius: 0;
  padding: 0;
  min-height: 4.5rem;
  box-shadow: none;
  background: transparent;
  width: 100%;
  box-sizing: border-box;
  font: inherit;
  resize: vertical;
}

.athlete-wo-notes__label {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--blue);
  margin-bottom: 0.35rem;
}

.athlete-wo-notes__box {
  width: 100%;
  box-sizing: border-box;
  border: 1.5px solid #d5dae3;
  border-radius: 12px;
  padding: 0.7rem 0.85rem;
  font: inherit;
  min-height: 4.5rem;
  resize: vertical;
  background: #fff;
}

.athlete-wo-footer__actions {
  display: grid;
  grid-template-columns: 1fr 1fr 1.35fr;
  gap: 0.5rem;
  align-items: stretch;
}

.athlete-wo__cancel,
.athlete-wo__pause,
.athlete-wo__done {
  width: 100%;
  min-height: 3rem;
  font-size: 0.72rem;
  letter-spacing: 0.03em;
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}

.athlete-wo__done {
  font-size: 1rem;
  letter-spacing: 0.05em;
}

a.athlete-wo__pause.btn,
a.athlete-wo__pause.btn-outline {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  text-align: center;
  text-decoration: none !important;
  text-transform: uppercase;
  font-weight: 800;
}

.athlete-wo-done {
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.12);
  padding: 1.75rem 1.25rem 1.5rem;
  text-align: center;
}

.athlete-wo-done__mark {
  width: 3.5rem;
  height: 3.5rem;
  margin: 0 auto 0.85rem;
  border-radius: 999px;
  background: #2e7d32;
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 1.6rem;
  font-weight: 600;
}

.athlete-wo-done__title {
  margin: 0;
  font-family: var(--display);
  font-style: italic;
  font-size: 1.85rem;
  text-transform: uppercase;
  color: #0b0d12;
}

.athlete-wo-done__lead {
  margin: 0.45rem 0 1.25rem;
  color: #8a93a3;
  font-size: 1.05rem;
  font-weight: 600;
}

a.athlete-wo-done__home.btn,
a.athlete-wo-done__home.btn-solid {
  display: flex !important;
  width: 100% !important;
  box-sizing: border-box;
  min-height: 3.25rem;
  margin: 0;
  padding: 0.85rem 1rem;
  border: none;
  border-radius: 12px;
  background: var(--blue);
  color: #fff !important;
  font-size: 0.88rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  text-decoration: none !important;
  box-shadow: 0 14px 30px rgba(21, 101, 192, 0.32);
  -webkit-tap-highlight-color: transparent;
}

a.athlete-wo-done__home.btn-solid:hover,
a.athlete-wo-done__home.btn-solid:visited,
a.athlete-wo-done__home.btn-solid:active {
  color: #fff !important;
  text-decoration: none !important;
  background: var(--blue-hot);
}

/* Athlete ? workouts list and read-only session history */
.athlete-workouts__list {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.athlete-workouts__item {
  display: block;
  overflow: hidden;
  border: 2px solid #0b0d12;
  border-radius: 16px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  box-shadow: 0 4px 14px rgba(11, 13, 18, 0.06);
  transition: box-shadow 0.12s ease, transform 0.12s ease;
}

.athlete-workouts__item:hover,
.athlete-workouts__item:focus-visible {
  box-shadow: 0 8px 22px rgba(11, 13, 18, 0.16);
  transform: translateY(-1px);
}

.athlete-workouts__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  padding: 0.68rem 0.9rem;
  background: var(--blue);
  color: #fff;
}

.athlete-workouts__name {
  min-width: 0;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.15;
}

.athlete-workouts__status {
  flex-shrink: 0;
  padding: 0.22rem 0.48rem;
  border: 1px solid rgba(255, 255, 255, 0.82);
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #fff;
}

.athlete-workouts__status.is-live {
  background: #ffe566;
  border-color: #f0c400;
  color: #0b0d12;
}
.athlete-workouts__status.is-completed { background: #31683a; }
.athlete-workouts__status.is-cancelled { background: #656b75; }

.athlete-workouts__body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 0.82rem 0.9rem;
}

.athlete-workouts__date,
.athlete-workouts__sets {
  display: block;
}

.athlete-workouts__date {
  font-size: 0.92rem;
  font-weight: 800;
  color: #0b0d12;
}

.athlete-workouts__sets {
  margin-top: 0.16rem;
  font-size: 0.72rem;
  color: #8a93a3;
}

.athlete-workouts__open {
  flex-shrink: 0;
  font-size: 0.88rem;
  font-weight: 800;
  color: var(--blue);
}

.athlete-wo-readonly {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0 0 0.85rem;
  padding: 0.65rem 0.75rem;
  border-radius: 12px;
  background: #0b0d12;
}

.athlete-wo-readonly__back,
.athlete-wo-readonly__back:visited {
  color: #fff;
  font-size: 0.78rem;
  font-weight: 800;
  text-decoration: none;
}

.athlete-wo-readonly__end {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.athlete-wo-readonly__delete,
.athlete-wo-readonly__delete:link,
.athlete-wo-readonly__delete:visited {
  color: #c8cdd6;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-decoration: none;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}

.athlete-wo-readonly__delete:hover,
.athlete-wo-readonly__delete:focus {
  color: #fff;
  text-decoration: underline;
}

.athlete-wo-readonly__status {
  color: #8ab4f8;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.05em;
}

.athlete-wo-notes__text {
  margin: 0;
  padding: 0.75rem;
  color: #0b0d12;
  font-size: 0.92rem;
  line-height: 1.45;
  white-space: pre-wrap;
}

/* Athlete + coach ? messages thread */
.athlete-msg__bar {
  margin-bottom: 0.85rem;
}

.athlete-msg__bar .athlete-wo-readonly__status {
  color: #fff;
}

.athlete-msg__preview-wrap {
  min-width: 0;
}

.athlete-msg__preview {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.athlete-msg__list {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.athlete-msg__row {
  display: flex;
}

.athlete-msg__row.is-mine { justify-content: flex-end; }
.athlete-msg__row.is-coach { justify-content: flex-start; }

.athlete-msg__bubble {
  max-width: min(78%, 30rem);
  padding: 0.6rem 0.8rem;
  border-radius: 14px;
  box-shadow: 0 3px 10px rgba(11, 13, 18, 0.08);
}

.athlete-msg__row.is-coach .athlete-msg__bubble {
  background: #fff;
  border: 1.5px solid #0b0d12;
  border-bottom-left-radius: 4px;
}

.athlete-msg__row.is-mine .athlete-msg__bubble {
  background: var(--blue);
  border: 1.5px solid var(--blue);
  border-bottom-right-radius: 4px;
}

.athlete-msg__body {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.4;
  color: #0b0d12;
  overflow-wrap: anywhere;
}

.athlete-msg__row.is-mine .athlete-msg__body { color: #fff; }

.athlete-msg__when {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.65rem;
  letter-spacing: 0.03em;
  color: #8a93a3;
}

.athlete-msg__row.is-mine .athlete-msg__when { color: rgba(255, 255, 255, 0.75); }

.athlete-msg__compose {
  display: flex;
  align-items: stretch;
  gap: 0.5rem;
}

.athlete-msg__input {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 7.5rem;
  padding: 0.6rem 0.75rem;
  border: 1.5px solid #0b0d12;
  border-radius: 12px;
  font: inherit;
  font-size: 0.92rem;
  resize: none;
  box-sizing: border-box;
}

.athlete-msg__input:focus {
  outline: none;
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(21, 101, 192, 0.18);
}

.athlete-msg__actions {
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  align-self: stretch;
  gap: 0.3rem;
  width: 6.5rem;
}

.athlete-msg__send.btn,
.athlete-msg__send.btn-solid {
  flex: 2 1 0;
  width: 100% !important;
  min-width: 0;
  height: auto;
  min-height: 0;
  padding: 0.45rem 0.5rem;
  font-size: 0.95rem;
  box-sizing: border-box;
}

.athlete-msg__refresh,
.athlete-msg__refresh:visited {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 0;
  width: 100%;
  box-sizing: border-box;
  height: auto;
  min-height: 2.6rem;
  padding: 0.35rem 0.4rem;
  border-radius: 8px;
  background: #1b8a4a;
  color: #fff;
  font-size: 0.82rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  text-decoration: none;
  text-align: center;
  white-space: nowrap;
  line-height: 1.1;
}

.athlete-msg__refresh:hover {
  background: #16753e;
  color: #fff;
  text-decoration: none;
}

.coach-msg__new {
  display: inline-block;
  margin-left: 0.4rem;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  background: #ffe566;
  border: 1px solid #f0c400;
  color: #0b0d12;
  font-size: 0.68rem;
  font-weight: 800;
}

a.athlete-wo-done__view,
a.athlete-wo-done__view:visited {
  display: block;
  margin-top: 0.75rem;
  text-align: center;
  color: var(--blue);
  font-size: 0.82rem;
  font-weight: 800;
  text-decoration: none;
}

a.athlete-wo-done__view:hover {
  text-decoration: underline;
}

@media (min-width: 900px) {
  .athlete-workouts__list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 0.85rem 1rem;
    align-items: start;
  }
}

/* Coach ? exercise catalog icons */
.ex-icon-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
  margin: 0 0 1.1rem;
  padding: 0.75rem 0.85rem;
  background: #f7f8fa;
  border-radius: 12px;
  border: 1px solid var(--line);
}

.ex-icon-legend__label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  margin-right: 0.35rem;
}

.ex-icon-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.45rem 0.2rem 0.2rem;
  background: #fff;
  border-radius: 10px;
  border: 1px solid #e8eaef;
}

.ex-icon-chip__key {
  font-size: 0.72rem;
  font-weight: 600;
  color: #0b0d12;
}

.ex-icon {
  flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 10px;
  background: transparent;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.ex-icon img {
  width: 2.35rem;
  height: 2.35rem;
  display: block;
  object-fit: contain;
}

.ex-table .ex-icon {
  width: 3rem;
  height: 3rem;
}

.ex-table .ex-icon img {
  width: 2.85rem;
  height: 2.85rem;
}

.ex-select {
  min-width: 9rem;
}

.ex-row--missing {
  background: rgba(198, 40, 40, 0.04);
}

/* ========================================================================== */
/*  Coach app ? shell, home inbox, more                                       */
/*  Width / tab nav: same standards as athlete (400 mobile ? 880 desktop).    */
/* ========================================================================== */

body.is-coach .coach-shell {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0 5.5rem;
  overflow-x: clip;
}

body.is-coach .coach-shell__chrome-inner {
  max-width: 400px;
  margin: 0 auto 0;
  padding: 0.35rem 0.9rem 0;
}

body.is-coach .coach-shell__name {
  font-size: clamp(1.15rem, 4.2vw + 0.55rem, 2.55rem);
  line-height: 0.92;
}

body.is-coach .coach-shell__content {
  max-width: 400px;
  margin: 0.9rem auto 0;
  padding: 0 0.9rem 0.75rem;
  width: 100%;
  box-sizing: border-box;
  min-width: 0;
}

@media (max-width: 420px) {
  body.is-coach .coach-shell__help {
    padding: 0.3rem 0.52rem 0.3rem 0.38rem;
    gap: 0.28rem;
    font-size: 0.66rem;
  }

  body.is-coach .coach-shell__help-mark {
    width: 1.05rem;
    height: 1.12rem;
  }

  body.is-coach .coach-shell__actions {
    gap: 0.4rem;
  }
}

@media (min-width: 900px) {
  body.is-coach .coach-shell__chrome-inner,
  body.is-coach .coach-shell__content {
    max-width: 880px;
  }

  body.is-coach .coach-shell__name {
    font-size: clamp(2rem, 3.5vw, 3.1rem);
  }
}

/* Coach tab bar reuses .athlete-tabnav markup/CSS. Keep a tiny alias hook only. */
.coach-tabnav.athlete-tabnav {
  /* no extra rules ? athlete-tabnav owns layout + 880 desktop width */
}

/* ---- Coach home ---- */
.coach-home {
  max-width: none;
  margin: 0 auto 1.25rem;
}

/* ---- Last 24h feed ---- */
.coach-home__feed {
  list-style: none;
  margin: 0.85rem 0 0;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
}

.coach-home__feed-row {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  padding: 0.75rem 0.9rem;
  border-top: 1px solid var(--line);
}

.coach-home__feed-row:first-child {
  border-top: none;
}

.coach-home__feed-row:nth-child(even) {
  background: var(--field);
}

/* Quiet on the black hero ? Clear all is not a create action */
.coach-home__clear-all {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.45rem 0.75rem;
  border-radius: 10px;
  background: transparent;
  border: 1.5px solid rgba(255, 255, 255, 0.45);
  color: #fff;
  font-size: 0.78rem;
  letter-spacing: 0.02em;
  text-decoration: none;
  white-space: nowrap;
  line-height: 1;
}

.coach-home__clear-all:hover,
.coach-home__clear-all:focus {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
  text-decoration: none;
}

.coach-getting-started__home {
  margin-bottom: 0.85rem;
}

.coach-getting-started__home-title {
  color: inherit;
  text-decoration: none;
}

.coach-getting-started__home-title:hover,
.coach-getting-started__home-title:focus {
  text-decoration: underline;
}

.coach-getting-started__home-cta {
  margin: 0.75rem 0 0;
}

.coach-getting-started__open {
  color: #9ec1ff;
  font-weight: 700;
  text-decoration: none;
}

.coach-getting-started__open:hover,
.coach-getting-started__open:focus {
  color: #fff;
  text-decoration: underline;
}

.coach-getting-started__body {
  margin-top: 0.85rem;
}

.coach-getting-started__note {
  margin: 0;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(213, 219, 229, 0.95);
  color: #3a4450;
  font-weight: 600;
  line-height: 1.45;
}

.coach-help-group {
  margin-top: 1.1rem;
}

.coach-help-group:first-child {
  margin-top: 0;
}

.coach-help-group__head {
  margin: 0 0 0.65rem;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
}

.coach-help-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.85rem;
}

.coach-help-step {
  margin: 0;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(213, 219, 229, 0.95);
}

.coach-help-step__row {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
}

.coach-help-step__num {
  flex: 0 0 auto;
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1.65rem;
  text-align: center;
}

.coach-help-step__num--dot {
  background: rgba(21, 101, 192, 0.22);
  box-shadow: inset 0 0 0 2px var(--blue);
  color: transparent;
  font-size: 0;
}

.coach-help-step__copy {
  flex: 1 1 auto;
  min-width: 0;
}

.coach-help-step__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 800;
  color: #1a2430;
}

.coach-help-step__sub {
  margin: 0.25rem 0 0;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.45;
  color: #4a5564;
}

.coach-help-step__action {
  margin: 0.55rem 0 0;
}

.coach-help-step__link {
  color: var(--blue);
  font-weight: 800;
  text-decoration: none;
}

.coach-help-step__link:hover,
.coach-help-step__link:focus {
  text-decoration: underline;
}

.coach-help-step--video .coach-help-video {
  margin-top: 0.85rem;
}

.coach-help-video {
  position: relative;
  margin: 0;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(21, 101, 192, 0.45);
  box-shadow: 0 12px 28px rgba(12, 28, 58, 0.18);
  background: #0b0d12;
  width: 100%;
}

.coach-help-video iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  display: none;
  border: 0;
  vertical-align: top;
}

.coach-help-video.is-playing iframe {
  display: block;
}

.coach-help-video.is-playing .coach-help-video__cap {
  display: none;
}

.coach-help-video__cap {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  margin: 0;
  padding: 1rem;
  border: 0;
  width: 100%;
  min-height: 12rem;
  cursor: pointer;
  background: linear-gradient(180deg, rgba(11, 13, 18, 0.2) 0%, rgba(11, 13, 18, 0.62) 100%);
  color: #fff;
  text-align: center;
  font: inherit;
}

.coach-help-video__label {
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.coach-help-video__time {
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.82);
}

.coach-help-video .mkt-video__play {
  width: 3.5rem;
  height: 3.5rem;
  margin-bottom: 0.15rem;
  box-shadow: 0 10px 28px rgba(21, 101, 192, 0.45);
}

.coach-home__feed-clear {
  flex: 0 0 auto;
  align-self: center;
  padding: 0.2rem 0.4rem;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  text-decoration: none;
  white-space: nowrap;
}

.coach-home__feed-clear:hover,
.coach-home__feed-clear:focus {
  color: var(--blue);
  text-decoration: none;
}

.coach-home__feed-dot {
  flex: 0 0 auto;
  width: 0.6rem;
  height: 0.6rem;
  margin-top: 0.35rem;
  border-radius: 999px;
  background: var(--muted);
}

.coach-home__feed-dot.is-session { background: #228b54; }
.coach-home__feed-dot.is-test { background: #ffd21f; border: 1px solid #e6b800; }
.coach-home__feed-dot.is-message { background: var(--blue); }
.coach-home__feed-dot.is-max { background: #e07b39; }
.coach-home__feed-dot.is-swap { background: #7b5ea7; }
.coach-home__feed-dot.is-stale { background: #d1495b; }
.coach-home__feed-dot.is-join { background: #17a2a2; }

.coach-home__feed-body {
  min-width: 0;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: inherit;
  text-decoration: none;
}

.coach-home__feed-text {
  min-width: 0;
  flex: 1 1 auto;
}

/* Chevron only renders on rows that go somewhere */
.coach-home__feed-go {
  flex: 0 0 auto;
  font-size: 1.15rem;
  line-height: 1;
  color: var(--muted);
}

a.coach-home__feed-body:hover .coach-home__feed-line,
a.coach-home__feed-body:focus .coach-home__feed-line,
a.coach-home__feed-body:hover .coach-home__feed-go,
a.coach-home__feed-body:focus .coach-home__feed-go {
  color: var(--blue);
}

.coach-home__feed-line {
  display: block;
  font-size: 0.92rem;
  color: var(--ink);
  line-height: 1.35;
}

.coach-home__feed-when {
  display: block;
  margin-top: 0.1rem;
  font-size: 0.72rem;
  color: var(--muted);
}

.coach-home__empty {
  margin-top: 0.85rem;
  padding: 1rem;
  border: 1px dashed var(--line);
  border-radius: 14px;
  color: var(--muted);
  text-align: center;
  font-size: 0.9rem;
}

.coach-home__more-wrap {
  margin-top: 0.75rem;
  text-align: center;
}

.coach-home__more {
  display: inline-block;
  padding: 0.55rem 1.1rem;
  border: 1.5px solid var(--blue);
  border-radius: 10px;
  background: #fff;
  color: var(--blue);
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
  line-height: 1;
}

.coach-home__more:hover,
.coach-home__more:focus {
  background: var(--blue);
  color: #fff;
  text-decoration: none;
}

/* ---- Coach More (overflow) ---- */
.coach-more {
  max-width: none;
  margin: 0 auto 1.25rem;
}

.coach-more__list {
  list-style: none;
  margin: 0.85rem 0 0;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
}

.coach-more__item {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.95rem 0.9rem;
  border-top: 1px solid var(--line);
  text-decoration: none;
  color: inherit;
}

.coach-more__list li:first-child .coach-more__item {
  border-top: none;
}

.coach-more__ico {
  display: grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  flex: 0 0 auto;
  border-radius: 10px;
  background: rgba(47, 107, 255, 0.1);
  color: var(--blue);
}

.coach-more__ico svg {
  width: 1.3rem;
  height: 1.3rem;
}

.coach-more__text {
  min-width: 0;
  flex: 1 1 auto;
}

.coach-more__name {
  display: block;
  font-weight: 700;
  color: var(--ink);
}

.coach-more__sub {
  display: block;
  font-size: 0.8rem;
  color: var(--muted);
}

.coach-more__chev {
  flex: 0 0 auto;
  color: var(--muted);
  font-size: 1.3rem;
  line-height: 1;
}

/* ---- Coach Teams list (Workouts-style cards) ---- */
.coach-teams,
.coach-msgs {
  max-width: none;
  margin: 0 auto 1.25rem;
}

/* A thread nobody has written in yet ? hint, not headline */
.coach-msgs .athlete-workouts__date.is-empty {
  font-weight: 600;
  color: #8a93a3;
}

.coach-teams__hero-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.coach-teams__hero-title {
  display: flex;
  align-items: flex-start; /* tops of icon + TEAMS line up */
  gap: 0.55rem;
  min-width: 0;
  flex: 1 1 auto;
}

.coach-teams__create {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 0;
  padding: 0.45rem 0.75rem;
  border-radius: 10px;
  background: #228b54;
  border: 1.5px solid #fff;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 400;
  letter-spacing: 0.02em;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 4px 12px rgba(34, 139, 84, 0.35);
  line-height: 1;
}

.coach-teams__hero-actions {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.35rem;
}

.coach-teams__sub-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.4rem;
}

.coach-teams__sub-row .coach-teams__sub {
  margin: 0;
  min-width: 0;
  flex: 1 1 auto;
}

.coach-teams__hero-link {
  flex: 0 0 auto;
  font-size: 0.78rem;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
  line-height: 1.2;
}

.coach-teams__hero-link:hover,
.coach-teams__hero-link:focus {
  color: #fff;
  text-decoration: underline;
}

.coach-teams__mark {
  display: grid;
  place-items: center;
  width: 1.5rem;
  height: 1.5rem;
  flex-shrink: 0;
  color: var(--blue);
  margin-top: -0.1rem; /* nudge up to match TEAMS / Create top */
}

.coach-teams__mark svg {
  width: 1.5rem;
  height: 1.5rem;
}

.coach-teams__hero .athlete-prog__stats-title {
  margin: 0;
  font-size: 1.5rem;
  line-height: 1;
}

.coach-teams__sub {
  margin: 0.4rem 0 0;
}

.coach-teams__create:hover,
.coach-teams__create:focus {
  color: #fff;
  text-decoration: none;
}

.coach-teams__create-panel {
  margin: 0.85rem 0 0.35rem;
  padding: 0.95rem 1rem;
  border: 2px solid #0b0d12;
  border-radius: 16px;
  background: #fff;
}

.coach-teams__field {
  display: block;
  margin: 0 0 0.75rem;
}

.coach-teams__field > span {
  display: block;
  margin-bottom: 0.3rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.coach-teams__input {
  width: 100%;
  box-sizing: border-box;
  padding: 0.7rem 0.8rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f0f2f5;
  font-size: 1rem;
}

.coach-teams__create-actions {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.coach-teams__save.btn {
  width: auto;
  min-width: 7rem;
  margin: 0;
}

.coach-teams__cancel {
  font-weight: 700;
  color: var(--blue);
  text-decoration: none;
}

.coach-teams__create-actions .coach-teams__retire {
  margin-left: auto;
  font-weight: 700;
  text-decoration: none;
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  cursor: pointer;
}

.coach-teams__list {
  margin-top: 1rem;
}

.coach-teams__hint {
  display: block;
  margin-top: 0.3rem;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.35;
  color: #8a93a3;
  text-transform: none;
  letter-spacing: 0;
}

.coach-teams__check {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 0.75rem;
  font-size: 0.9rem;
  font-weight: 700;
  color: #0b0d12;
}

.coach-teams__check input {
  width: 1.05rem;
  height: 1.05rem;
}

/* ---- Coach's own exercises ---- */
.coach-ex__item {
  position: relative;
  cursor: default;
}

.coach-ex__item--edit {
  cursor: pointer;
}

@media (hover: hover) {
  .coach-ex__item--edit:hover .athlete-workouts__body {
    background: #d9e6f7;
  }
}

.coach-ex__item--edit:focus {
  outline: none;
}

.coach-ex__item--edit:focus .athlete-workouts__body {
  background: #d9e6f7;
  box-shadow: inset 3px 0 0 var(--blue);
}

/* The shared card clips itself so the blue header's corners stay round. The icon
   panel has to escape that, so the header rounds itself instead. */
.coach-ex__item.athlete-workouts__item {
  overflow: visible;
}

.coach-ex__item .athlete-workouts__top {
  border-radius: 14px 14px 0 0;
}

.coach-ex__item.is-picking {
  z-index: 50;
}

/* Sits left of the spec line, as tall as the two lines beside it */
.coach-ex__ico {
  flex: 0 0 auto;
  align-self: center;
  width: 40px;
  height: 40px;
  margin-right: 0.7rem;
}

/* Codes like SAFETY_SQUAT_BAR_BOX_SQUAT are one unbreakable token. The card used
   to clip them; now that it cannot, they have to wrap or they widen the page. */
.coach-ex__item .athlete-workouts__body {
  flex-wrap: wrap;
}

.coach-ex__item .athlete-workouts__body > div {
  flex: 1 1 9rem;
  min-width: 0;
}

.coach-ex__item .athlete-workouts__date {
  overflow-wrap: anywhere;
}

.coach-ex__cat {
  align-self: center;
  flex-shrink: 0;
  white-space: nowrap;
  padding: 0.24rem 0.6rem;
  border-radius: 999px;
  background: #eef2f8;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #4a5464;
}

.coach-ex__acts {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 0.9rem;
}

.coach-ex__act {
  font-size: 0.86rem;
  font-weight: 800;
  color: var(--blue);
  text-decoration: none;
}

.coach-ex__act:hover {
  text-decoration: underline;
}

.coach-ex__act--danger {
  color: #b23b3b;
}

.coach-ex__load {
  padding-top: 0.15rem;
}

.coach-ex__group {
  margin: 1.05rem 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: #8a93a3;
}

.coach-ex__group:first-child {
  margin-top: 0;
}

/* Admin catalog card — Shared-library shape, plus Edit and an icon picker */
.coach-ex__admin-card {
  position: relative;
  align-items: flex-start;
  gap: 0.55rem;
  overflow: visible;
}

.coach-ex__admin-card--edit {
  cursor: pointer;
  transition: background-color 0.12s ease, box-shadow 0.12s ease;
}

@media (hover: hover) {
  .coach-ex__admin-card--edit:hover {
    background: #d9e6f7;
    box-shadow: inset 3px 0 0 var(--blue);
  }
}

.coach-ex__admin-card--edit:focus {
  outline: none;
  background: #d9e6f7;
  box-shadow: inset 3px 0 0 var(--blue);
}

.coach-lib__retired-hint {
  margin: 0.35rem 0 0.75rem;
  color: rgba(255, 255, 255, 0.72);
}

.coach-ex__admin-card--retired {
  opacity: 0.88;
}

.coach-ex__admin-card.is-picking {
  z-index: 50;
}

.coach-ex__admin-ico {
  flex: 0 0 auto;
  position: relative;
}

.coach-ex__admin-main {
  flex: 1 1 auto;
  min-width: 0;
}

.coach-ex__admin-card .coach-ex__acts {
  flex-direction: column;
  align-items: flex-end;
  gap: 0.15rem;
  margin-left: 0.25rem;
}

.coach-ex__admin-code {
  display: block;
  font-size: 0.72rem;
  letter-spacing: 0.02em;
}

/* Compact icon picker: thumbnail + caret, no key label crowding the card */
.coach-ex__admin-card .icon-pick {
  flex: 0 0 auto;
}

.coach-ex__admin-card .icon-pick__btn {
  width: auto;
  min-width: 0;
  padding: 0.15rem;
  gap: 0.15rem;
  background: transparent;
  border-color: transparent;
}

.coach-ex__admin-card .icon-pick__btn:hover {
  border-color: var(--blue);
  background: #eef4ff;
}

.coach-ex__admin-card .icon-pick__label {
  display: none;
}

.coach-ex__admin-card .icon-pick__btn img {
  width: 40px;
  height: 40px;
}

.coach-ex__admin-card .icon-pick__panel {
  left: 0;
  right: auto;
  width: min(18rem, 70vw);
}

.coach-ex__icon {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-top: 0.7rem;
  padding-top: 0.7rem;
  border-top: 1px solid var(--line);
}

.coach-ex__icon-pick {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0.42rem 0.5rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-size: 0.88rem;
}

/* The native select stays in the DOM to carry the postback, but the thumbnail
   picker takes its place once script has run. */
.coach-ex__icon-pick.is-replaced {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  overflow: hidden;
}

.icon-pick {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
}

.icon-pick__btn {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.36rem 0.5rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  font: inherit;
  font-size: 0.88rem;
  text-align: left;
  cursor: pointer;
}

.icon-pick__btn:hover {
  border-color: var(--blue);
}

.icon-pick__btn img {
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
  object-fit: contain;
}

.icon-pick__label {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 700;
  color: #0b0d12;
}

.icon-pick__caret {
  flex: 0 0 auto;
  color: #8a93a3;
}

.icon-pick__panel {
  position: absolute;
  z-index: 40;
  top: calc(100% + 0.3rem);
  left: 0;
  right: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(5rem, 1fr));
  gap: 0.3rem;
  max-height: 17rem;
  padding: 0.5rem;
  overflow-y: auto;
  border: 2px solid var(--blue);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(11, 13, 18, 0.18);
}

.icon-pick__opt {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  padding: 0.4rem 0.2rem;
  border: 1px solid transparent;
  border-radius: 9px;
  background: none;
  font: inherit;
  font-size: 0.7rem;
  font-weight: 700;
  color: #4a5464;
  cursor: pointer;
  word-break: break-all;
}

.icon-pick__opt:hover {
  border-color: var(--blue);
  background: #f2f7ff;
}

.icon-pick__opt img {
  width: 40px;
  height: 40px;
  object-fit: contain;
}

/* ---- Icon files ---- */
.icon-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  gap: 0.7rem;
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
}

.icon-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.24rem;
  padding: 0.85rem 0.6rem 0.7rem;
  border: 2px solid var(--blue);
  border-radius: 14px;
  background: #fff;
  text-align: center;
}

.icon-tile__art {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 56px;
}

.icon-tile__art img {
  max-width: 56px;
  max-height: 56px;
  height: auto;
}

.icon-tile__key {
  font-size: 0.9rem;
  font-weight: 800;
  color: #0b0d12;
  word-break: break-all;
}

.icon-tile__meta {
  font-size: 0.72rem;
  font-weight: 700;
  color: #8a93a3;
}

.icon-tile__use {
  margin-top: 0.1rem;
}

.icon-tile__on,
.icon-tile__free,
.icon-tile__badge {
  display: inline-block;
  padding: 0.16rem 0.5rem;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.icon-tile__on {
  background: #e7f0ff;
  color: #1f5fbf;
}

.icon-tile__free {
  background: #f1f3f7;
  color: #8a93a3;
}

.icon-tile__badge {
  background: #0b0d12;
  color: #fff;
}

.icon-tile__acts {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  margin-top: 0.35rem;
  font-size: 0.8rem;
}

.coach-ex__editing {
  margin: 0 0 0.85rem;
  padding-left: 0.7rem;
  border-left: 3px solid var(--blue);
  font-size: 0.86rem;
  line-height: 1.4;
  color: #4a5464;
}

.coach-more__section {
  margin: 1.4rem 0 0.4rem;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: #8a93a3;
}

.coach-more__admin {
  margin-top: 1.15rem;
}

.coach-more__admin-bar {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0 0 0.55rem;
  padding: 0.7rem 0.9rem;
  border-radius: 14px;
  background: #0b0b0b;
  color: #fff;
}

.coach-more__admin-bar .coach-teams__mark {
  color: var(--blue);
}

.coach-more__admin-title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 900;
  font-style: italic;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1;
}

.coach-more__admin .coach-more__list {
  margin-top: 0;
}

/* ---- Admin GTM Plan (anti-drift) ---- */
.admin-gtm {
  display: grid;
  gap: 0.85rem;
}

.admin-gtm__err {
  margin: 0;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  background: #fff1f1;
  color: #8b1e1e;
  font-weight: 700;
}

.admin-gtm__summary,
.admin-gtm__block {
  margin: 0;
  padding: 1rem 1.05rem;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}

.admin-gtm__dl {
  margin: 0;
  display: grid;
  gap: 0.55rem;
}

.admin-gtm__row {
  display: grid;
  grid-template-columns: 7.5rem 1fr;
  gap: 0.65rem;
  align-items: baseline;
}

.admin-gtm__row dt {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6b7280;
}

.admin-gtm__row dd {
  margin: 0;
  font-size: 0.98rem;
  font-weight: 700;
  color: #0b0d12;
  line-height: 1.35;
}

.admin-gtm__now {
  margin: 0;
}

.admin-gtm__now-day {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--blue);
}

.admin-gtm__now-action {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.35;
  color: #fff;
}

.admin-gtm__next .admin-gtm__now-action {
  color: #0b0d12;
}

.admin-gtm__next .admin-gtm__now-day {
  color: var(--blue);
}

.admin-gtm__h {
  margin: 0 0 0.65rem;
  font-size: 0.82rem;
  font-weight: 900;
  font-style: italic;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #0b0d12;
}

.admin-gtm__note {
  margin: 0.45rem 0 0;
  font-size: 0.9rem;
  font-weight: 600;
  color: #5a6570;
  line-height: 1.4;
}

.admin-gtm__list,
.admin-gtm__changes {
  margin: 0;
  padding: 0 0 0 1.1rem;
}

.admin-gtm__list li,
.admin-gtm__changes li {
  margin: 0 0 0.55rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: #0b0d12;
  line-height: 1.4;
}

.admin-gtm__change-date {
  font-weight: 800;
  color: var(--blue);
}

.admin-gtm__change-why {
  display: block;
  margin-top: 0.2rem;
  font-weight: 600;
  color: #5a6570;
}

.admin-gtm__days {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}

.admin-gtm__day {
  margin: 0;
  padding: 0.75rem 0.9rem;
  border-radius: 12px;
  background: #f3f5f8;
}

.admin-gtm__day--now {
  background: #0b0d12;
  color: #f3f5f8;
}

.admin-gtm__day--now .admin-gtm__day-title,
.admin-gtm__day--now .admin-gtm__day-note {
  color: #f3f5f8;
}

.admin-gtm__day--next {
  background: #d9e8fb;
  box-shadow: inset 3px 0 0 var(--blue);
}

.admin-gtm__day--done,
.admin-gtm__day--done-changed {
  background: #e6f6ea;
  box-shadow: inset 3px 0 0 #2f9e5d;
}

.admin-gtm__day--changed {
  background: #fff6e8;
  box-shadow: inset 3px 0 0 #d97706;
}

.admin-gtm__day-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0 0 0.3rem;
}

.admin-gtm__day-num {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--blue);
}

.admin-gtm__day--now .admin-gtm__day-num {
  color: #7eb6ff;
}

.admin-gtm__day-status {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #5a6570;
}

.admin-gtm__day--now .admin-gtm__day-status {
  color: #7eb6ff;
}

.admin-gtm__day-title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.35;
  color: #0b0d12;
}

.admin-gtm__day-note {
  margin: 0.35rem 0 0;
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.35;
  color: #5a6570;
}

.admin-gtm__day--now .admin-gtm__day-note {
  color: rgba(243, 245, 248, 0.75);
}

@media (min-width: 720px) {
  .admin-gtm__row {
    grid-template-columns: 9rem 1fr;
  }
}

/* ---- Admin Marketing (Phase 0 OAuth) ---- */
.admin-marketing__grid {
  display: grid;
  gap: 1rem;
  margin-top: 1rem;
}

@media (min-width: 720px) {
  .admin-marketing__grid {
    grid-template-columns: 1fr 1fr;
  }
}

.admin-marketing__card {
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  padding: 1rem 1.1rem 1.15rem;
}

.admin-marketing__card--ok {
  border-color: rgba(34, 139, 84, 0.35);
  background: rgba(34, 139, 84, 0.04);
}

.admin-marketing__card--meta-ok {
  border-color: rgba(24, 119, 242, 0.4);
  background: #e7f0fd;
}

.admin-marketing__card--youtube-ok {
  border-color: rgba(185, 28, 28, 0.28);
  background: #fde8e8;
}

.admin-marketing__queue {
  margin-top: 1.25rem;
}

.admin-marketing__queue-form {
  display: grid;
  gap: 0.75rem;
  margin: 0.75rem 0 1.25rem;
  max-width: 40rem;
}

.admin-marketing__label {
  display: grid;
  gap: 0.35rem;
  font-size: 0.9rem;
  color: var(--muted);
}

.admin-marketing__label input[type="text"],
.admin-marketing__label input[type="file"],
.admin-marketing__label textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 0.55rem 0.7rem;
  font: inherit;
  color: inherit;
  background: #fff;
}

.admin-marketing__queue-list {
  display: grid;
  gap: 0.85rem;
}

.admin-marketing__queue-item {
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  padding: 0.9rem 1rem;
}

.admin-marketing__queue-title {
  margin: 0 0 0.4rem;
  font-size: 1rem;
}

.admin-marketing__queue-caption {
  margin: 0 0 0.5rem;
  white-space: pre-wrap;
}

.admin-marketing__channel-list {
  margin: 0.4rem 0 0.75rem;
  padding-left: 1.1rem;
}

.admin-marketing__channel-detail {
  margin-top: 0.25rem;
  font-size: 0.85rem;
  color: #9a3412;
  white-space: pre-wrap;
}

.admin-marketing__card-title {
  margin: 0 0 0.65rem;
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.admin-marketing__status {
  margin: 0 0 0.75rem;
  font-size: 0.95rem;
  color: var(--muted);
}

.admin-marketing__status--ok {
  color: #1a7a45;
  font-weight: 600;
}

.admin-marketing__status--warn {
  color: #b45309;
}

.admin-marketing__status--err {
  color: #b91c1c;
}

.admin-marketing__flash {
  margin: 0.85rem 0 0;
  padding: 0.65rem 0.85rem;
  border-radius: 10px;
  background: rgba(34, 139, 84, 0.12);
  color: #14532d;
  font-size: 0.95rem;
}

.admin-marketing__flash--err {
  background: rgba(185, 28, 28, 0.1);
  color: #991b1b;
}

.admin-marketing__actions {
  margin-top: 0.85rem;
}

.admin-marketing__btn {
  display: inline-block;
  margin-top: 0.35rem;
  padding: 0.55rem 1rem;
  border: 1px solid var(--blue);
  border-radius: 10px;
  background: var(--blue);
  color: #fff;
  font-family: var(--font-display);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
}

.admin-marketing__btn:hover {
  filter: brightness(1.05);
  color: #fff;
  text-decoration: none;
}

.admin-marketing__btn--ghost {
  border-color: var(--line);
  background: #fff;
  color: var(--text);
}

.admin-marketing__btn--ghost:hover {
  background: #f8fafc;
  color: var(--text);
}

/* ---- Admin Users ---- */
.admin-users__list {
  list-style: none;
  margin: 0.55rem 0 0;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
}

.admin-users__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 0.75rem;
  margin: 0.85rem 0 0;
}

.admin-users__toolbar-search {
  display: flex;
  flex: 1 1 16rem;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.65rem;
  min-width: 0;
}

.admin-users__toolbar-search .admin-users__find {
  flex: 1 1 12rem;
}

.admin-users__find-input {
  width: 100%;
  box-sizing: border-box;
  padding: 0.65rem 0.75rem;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 10px;
  background: #fff;
  color: #0b0d12;
  font: inherit;
  font-size: 0.95rem;
}

.admin-users__find-input::placeholder {
  color: #5a6474;
}

.admin-users__find-input:focus {
  outline: 2px solid rgba(47, 107, 255, 0.55);
  outline-offset: 1px;
  border-color: var(--blue);
}

.admin-users__search-btn {
  appearance: none;
  flex: 0 0 auto;
  margin: 0;
  padding: 0.65rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 10px;
  background: var(--blue);
  color: #fff;
  font: inherit;
  font-size: 0.9rem;
  font-weight: 700;
  cursor: pointer;
}

.admin-users__search-btn:hover,
.admin-users__search-btn:focus {
  filter: brightness(1.06);
}

.admin-users__pager {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem 1rem;
  margin: 1rem 0 0.25rem;
  padding: 0.75rem 0.5rem;
}

.admin-users__pager-status {
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.9rem;
}

.admin-users__pager-btn {
  display: inline-block;
  padding: 0.45rem 0.85rem;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 8px;
  color: #fff;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 600;
}

.admin-users__pager-btn:hover,
.admin-users__pager-btn:focus {
  border-color: rgba(47, 107, 255, 0.75);
  background: rgba(47, 107, 255, 0.18);
}

.admin-users__filters {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  flex: 0 0 auto;
}

.admin-users__filter {
  appearance: none;
  margin: 0;
  padding: 0.45rem 0.75rem;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: #e8ecf2;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  cursor: pointer;
}

.admin-users__filter[aria-pressed="true"] {
  border-color: var(--blue);
  background: rgba(47, 107, 255, 0.35);
  color: #fff;
}

.admin-users__none {
  margin: 0.75rem 0 0;
  color: #8a93a3;
  font-size: 0.9rem;
}

.admin-users__card[hidden] {
  display: none !important;
}

.admin-users__card {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  padding: 0.95rem 0.9rem;
  border-top: 1px solid var(--line);
}

.admin-users__list > li:first-child {
  border-top: none;
}

.admin-users__card--off {
  opacity: 0.62;
  background: #f7f8fa;
}

/* Shared zebra for admin list cards (Users + user-detail lists) */
.admin-users__card.admin-users__card--stripe {
  background: #f0f1f4;
}

.admin-users__card--off.admin-users__card--stripe {
  opacity: 0.62;
  background: #f0f1f4;
}

/* Comp codes Admin — list filters */
.admin-comp-codes__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 1rem 0 0.75rem;
}

.admin-comp-codes__filter {
  display: inline-block;
  padding: 0.4rem 0.85rem;
  border: 1px solid #c8ccd4;
  background: #fff;
  color: #222;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 600;
}

.admin-comp-codes__filter:hover {
  border-color: #8a909c;
  text-decoration: none;
}

.admin-comp-codes__filter.is-active {
  border-color: #1a1a1a;
  background: #1a1a1a;
  color: #fff;
}

.admin-comp-codes__empty {
  margin: 0.5rem 0 1rem;
  padding: 1rem 1.1rem;
  border-radius: 12px;
  background: #fff;
  color: #1a1a1a;
  font-size: 0.95rem;
  font-weight: 600;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

/* Admin Coaches list readability — #adminCoaches only */
#adminCoaches .admin-users__card {
  transition: background-color 0.15s ease, box-shadow 0.15s ease;
}

#adminCoaches .admin-users__card.admin-coaches__card--stripe {
  background: #f0f1f4;
}

#adminCoaches .admin-users__card--off,
#adminCoaches .admin-users__card--off.admin-coaches__card--stripe {
  opacity: 0.62;
  background: #f7f8fa;
}

@media (hover: hover) {
  #adminCoaches .admin-users__card:hover {
    background: #d9e6f7;
    box-shadow: inset 3px 0 0 var(--blue);
    opacity: 1;
  }
}

#adminCoaches .admin-users__card:focus-within {
  background: #d9e6f7;
  box-shadow: inset 3px 0 0 var(--blue);
  opacity: 1;
}

/* Admin Users list readability — #adminUsers only (same treatment as Coaches) */
#adminUsers .admin-users__card {
  transition: background-color 0.15s ease, box-shadow 0.15s ease;
  cursor: pointer;
}

#adminUsers .admin-users__card.admin-users__card--stripe {
  background: #f0f1f4;
}

#adminUsers .admin-users__card--off,
#adminUsers .admin-users__card--off.admin-users__card--stripe {
  opacity: 0.62;
  background: #f7f8fa;
}

@media (hover: hover) {
  #adminUsers .admin-users__card:hover {
    background: #d9e6f7;
    box-shadow: inset 3px 0 0 var(--blue);
    opacity: 1;
  }
}

#adminUsers .admin-users__card:focus-within {
  background: #d9e6f7;
  box-shadow: inset 3px 0 0 var(--blue);
  opacity: 1;
}

.admin-users__main {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
  flex: 1 1 14rem;
}

.admin-users__name {
  font-weight: 800;
  font-size: 1rem;
  line-height: 1.25;
}

.admin-users__name-link {
  color: inherit;
  text-decoration: none;
}

.admin-users__name-link:hover {
  color: var(--blue);
  text-decoration: underline;
}

.admin-users__coaches {
  color: #4a5464;
  font-size: 0.82rem;
  line-height: 1.3;
}

.admin-users__email {
  color: #5a6474;
  font-size: 0.88rem;
  word-break: break-all;
}

.admin-user-detail__back {
  margin: 0 0 0.65rem;
  font-size: 0.88rem;
}

.admin-user-detail__back a {
  color: var(--blue);
  font-weight: 700;
  text-decoration: none;
}

.admin-user-detail__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  margin-top: 0.65rem;
}

.admin-user-detail__login-gate {
  flex: 0 0 auto;
  margin: 0;
  padding-top: 0.15rem;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.35rem;
}

.admin-user-detail__login-gate-btn {
  display: inline-block;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: rgba(232, 236, 242, 0.72);
  font: inherit;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  line-height: 1.2;
}

.admin-user-detail__login-gate-btn:hover,
.admin-user-detail__login-gate-btn:focus {
  color: #fff;
  text-decoration: underline;
}

.admin-user-detail__login-gate-btn--muted,
.admin-user-detail__login-gate-btn--muted:hover {
  color: rgba(232, 236, 242, 0.35);
  text-decoration: none;
  cursor: default;
}

.admin-user-detail__filters {
  margin-top: 0.85rem;
}

.admin-user-detail__filters[hidden] {
  display: none !important;
}

.admin-user-detail__role-mode + .admin-user-detail__filters {
  margin-top: 0.5rem;
}

.admin-user-detail__panel {
  margin-top: 0.75rem;
}

.admin-user-detail__panel[hidden] {
  display: none !important;
}

.admin-user-detail__row-link {
  cursor: pointer;
}

@media (hover: hover) {
  .admin-user-detail__row-link:hover {
    background: #d9e6f7;
    box-shadow: inset 3px 0 0 var(--blue);
    opacity: 1;
  }
}

/* Hero email stays light-on-black — never a white field */
.admin-user-detail .coach-teams__hero .athlete-prog__stats-sub,
.admin-user-detail .coach-teams__hero .coach-teams__sub {
  margin: 0.4rem 0 0;
  padding: 0;
  max-width: none;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: #aeb6c2;
  font-size: 0.82rem;
  line-height: 1.35;
}

/* Section labels: dark chip (matches hero), not white wallpaper */
.admin-user-detail__h {
  display: inline-block;
  margin: 1.15rem 0 0.55rem;
  padding: 0.28rem 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  background: rgba(11, 13, 18, 0.88);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  text-shadow: none;
}

.admin-user-detail__note {
  margin: 0 0 0.55rem;
  max-width: 34rem;
  padding: 0;
  background: transparent;
  border: 0;
  color: #1a2330;
  font-size: 0.86rem;
  line-height: 1.35;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.85);
}

/* Title + description together in one black bar */
.admin-user-detail__banner {
  margin: 1.15rem 0 0.55rem;
  padding: 0.75rem 0.95rem;
  border-radius: 14px;
  background: #0b0d12;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
}

.admin-user-detail__banner-title {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
}

.admin-user-detail__banner-note {
  margin: 0.35rem 0 0;
  max-width: 36rem;
  color: #aeb6c2;
  font-size: 0.86rem;
  line-height: 1.35;
}

.admin-user-detail__access-comp-link {
  display: inline-block;
  margin-left: 0.65rem;
  font-weight: 700;
  color: #7eb6ff;
  text-decoration: underline;
}

.admin-user-detail__access-comp-link:hover {
  color: #fff;
}

.admin-access-card {
  margin: 1.15rem 0 0.75rem;
  padding: 0.9rem 1rem 1rem;
  border-radius: 14px;
  background: #fff;
  border: 1px solid #d8dde6;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}

.admin-access-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.admin-access-card__title {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #111;
}

.admin-access-card__comp-link {
  flex: 0 0 auto;
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--blue);
  text-decoration: underline;
  white-space: nowrap;
}

.admin-access-card__comp-link:hover {
  color: #0b3d91;
}

.admin-access-card__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem 1rem;
  margin: 0;
}

@media (min-width: 720px) {
  .admin-access-card__facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.admin-access-card__fact {
  margin: 0;
}

.admin-access-card__fact dt {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6b7280;
}

.admin-access-card__fact dd {
  margin: 0.15rem 0 0;
  font-size: 0.95rem;
  font-weight: 700;
  color: #111;
}

.admin-access-card__portal-wrap {
  margin: 0.85rem 0 0;
}

.admin-access-card__portal {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--blue);
  text-decoration: underline;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}

.admin-access-card__portal:hover {
  color: #0b3d91;
}

.admin-access-card__live-warn {
  margin: 0.75rem 0 0;
  padding: 0.45rem 0.6rem;
  border-radius: 8px;
  background: #fff4e5;
  border: 1px solid #f0c36d;
  color: #7a4b00;
  font-size: 0.84rem;
  font-weight: 650;
  line-height: 1.35;
}

.coach-billing__card {
  margin: 0 0 1.25rem;
}

.coach-billing__back {
  margin: 0 0 1.5rem;
  font-size: 0.92rem;
}

.coach-billing__back a {
  color: #0b3d91;
  text-decoration: none;
  font-weight: 650;
}

.coach-billing__back a:hover {
  text-decoration: underline;
}

.coach-billing__payments {
  margin: 0 0 1.25rem;
}

.coach-billing__section-title {
  margin: 0 0 0.55rem;
  font-size: 0.95rem;
  font-weight: 750;
  letter-spacing: 0.02em;
  color: #0b0d12;
}

.coach-billing__invoice-list {
  margin-top: 0;
}

.coach-billing__empty {
  margin: 0;
  padding: 0.85rem 0.95rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  color: #4b5563;
  font-size: 0.92rem;
  line-height: 1.4;
}

.coach-billing__card-panel {
  margin: 0 0 1.25rem;
  padding: 0.95rem 1rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}

.coach-billing__card-current {
  margin: 0.35rem 0 0;
  font-size: 0.98rem;
  font-weight: 650;
  color: #0b0d12;
}

.coach-billing__card-form {
  margin-top: 0.85rem;
}

.coach-billing__stripe-el {
  padding: 0.75rem 0.85rem;
  border: 1px solid rgba(15, 23, 42, 0.16);
  border-radius: 10px;
  background: #f8fafc;
}

.coach-billing__cancel-panel {
  margin: 0 0 1.25rem;
  padding: 0.95rem 1rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}

.coach-billing__cancel-note {
  margin: 0 0 0.75rem;
  color: #4b5563;
  font-size: 0.92rem;
  line-height: 1.4;
}

.coach-billing__cancel-confirm {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.coach-billing__comp-note {
  margin: 0 0 1.25rem;
  padding: 0.95rem 1rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}

.admin-access-sandbox {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  margin: 0 0 1rem;
  padding: 0.75rem 0.95rem;
  border-radius: 12px;
  background: #fff3bf;
  border: 1px solid #e6d27a;
}

.admin-access-sandbox__label {
  font-size: 0.86rem;
  font-weight: 700;
  color: #5c4d00;
}

.admin-access-sandbox .btn {
  width: auto;
  min-height: 42px;
  min-width: 0;
  margin: 0;
  padding: 0.45rem 0.9rem;
  font-size: 0.78rem;
}

/* Black section header inside standard create-panel (Comp setup / Comp manage) */
.admin-user-detail__banner--in-panel {
  margin: 0 0 0.85rem;
}

.admin-user-detail__coach-footprint {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0.65rem 0 0.15rem;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.admin-user-detail__coach-footprint .admin-users__badge {
  color: #0b0d12;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(11, 13, 18, 0.16);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
}

.admin-user-detail__coach-status {
  margin: 0.45rem 0 0;
  padding: 0;
  background: transparent;
  border: 0;
}

.admin-user-detail__list {
  margin-top: 0.35rem;
}

.admin-user-detail .admin-users__list {
  border-color: rgba(11, 13, 18, 0.16);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.1);
}

/* Admin read-only team detail */
.admin-team-detail__ro {
  flex: 0 0 auto;
  margin-top: 0.35rem;
  color: #8ab4f8;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.05em;
}

.admin-user-detail__more {
  display: flex;
  justify-content: flex-end;
  margin: 0.55rem 0 0.15rem;
}

.admin-user-detail__more-btn {
  display: inline-block;
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  border: 1.5px solid var(--blue);
  background: #fff;
  color: var(--blue);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-decoration: none;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

.admin-user-detail__more-btn:hover,
.admin-user-detail__more-btn:focus {
  background: #eef5ff;
  color: var(--blue);
  text-decoration: none;
}

.admin-user-detail__lift {
  align-items: center;
}

.admin-user-detail__lift-ico {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  object-fit: contain;
}

.admin-user-detail__thread-bar {
  margin-top: 1rem;
  align-items: flex-start;
}

.admin-user-detail__thread-bar-main {
  min-width: 0;
  flex: 1 1 auto;
}

.admin-user-detail__thread-bar .athlete-wo-readonly__status {
  display: block;
  color: #fff;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.admin-user-detail__thread-bar .athlete-wo-readonly__back {
  flex: 0 0 auto;
  color: var(--blue);
}

.admin-user-detail__readonly {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  color: #9aa3b2;
  line-height: 1.35;
}

.admin-user-detail__msgs {
  margin: 0.35rem 0 0;
}

.admin-users__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin-top: 0.35rem;
}

.admin-users__badge {
  display: inline-block;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  background: #eef1f6;
  color: #4a5464;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.admin-users__badge--admin {
  background: rgba(47, 107, 255, 0.14);
  color: var(--blue);
}

.admin-users__badge--off {
  background: #eceff3;
  color: #6a7382;
}

.admin-users__badge--warn {
  background: #fff3cd;
  color: #8a6d00;
}

.admin-users__badge--role {
  background: #f0f2f5;
}

.admin-users__login {
  font-size: 0.78rem;
  color: #8a93a3;
}

.admin-users__acts {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.45rem;
  flex: 0 0 auto;
}

.admin-users__acts .admin-user-detail__more-btn {
  padding: 0.32rem 0.75rem;
  font-size: 0.78rem;
}

.coach-ex__act--muted,
.coach-ex__act--muted:hover {
  opacity: 0.45;
  cursor: default;
  text-decoration: none;
}

.coach-teams__create--flat {
  background: none;
  border: none;
  color: #cfd6e2;
  cursor: default;
}

.coach-teams__hero-acts {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.coach-teams__create--ghost {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.55);
}

.coach-teams__create--ghost:hover {
  background: rgba(255, 255, 255, 0.14);
}

.coach-team__label-note {
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #8a93a3;
}

/* Shared library: a section per category so a group cannot be mistaken for a card */
.coach-lib__group {
  margin-top: 1.2rem;
}

.coach-lib__group-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  margin: 0;
  padding: 0.45rem 0.85rem;
  border-radius: 10px;
  background: #0b0d12;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.coach-lib__group-count {
  color: #93a1b5;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.coach-lib__list {
  list-style: none;
  margin: 0.55rem 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 0.5rem;
}

/* Read-only row in the shared library ? no header bar, nothing to click */
.coach-ex__read {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.5rem 0.85rem;
  border: 1.5px solid var(--blue);
  border-radius: 12px;
  background: #fff;
}

.coach-ex__read > div {
  min-width: 0;
}

.coach-ex__read .coach-ex__ico {
  margin-right: 0;
}

.coach-ex__read-name {
  display: block;
  font-size: 0.95rem;
  font-weight: 800;
  color: #0b0d12;
}

/* Max rules ? multiplier is a short number, not a full-width field */
.coach-maxrules__mult {
  max-width: 12rem;
}

.coach-maxrules__item .athlete-workouts__top {
  padding-right: 0.55rem;
}

/* Solid plate — muted grey on the photo background was unreadable (Brett Aug 26). */
.coach-ex__lib-intro {
  margin: 1.1rem 0 0;
  padding: 0.7rem 0.9rem 0.65rem;
  border-radius: 10px;
  background: #fff;
  border: 1px solid rgba(11, 13, 18, 0.08);
  box-shadow: 0 2px 8px rgba(11, 13, 18, 0.06);
}

.coach-ex__foot {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.45;
  color: #0b0d12;
}

.coach-ex__lib-intro .coach-ex__foot {
  margin: 0;
}

/* Shared library title/count sit on the same photo — keep them readable. */
#coachExercises .coach-team__label {
  color: #0b0d12;
}

#coachExercises .coach-team__label-note {
  color: #3a4450;
}

#coachExercises .coach-ex__lib-bar {
  margin-top: 0.65rem;
  padding-top: 0.6rem;
  border-top: 1px solid rgba(11, 13, 18, 0.1);
  align-items: center;
}

#coachExercises .coach-ex__lib-bar-acts {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  flex-shrink: 0;
}

#coachExercises .coach-ex__lib-toggle {
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--blue);
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  white-space: nowrap;
}

#coachExercises .coach-ex__lib-toggle:hover,
#coachExercises .coach-ex__lib-toggle:focus {
  text-decoration: underline;
}

.coach-ex__admin {
  margin-top: 0.5rem;
}

.coach-ex__admin a {
  font-size: 0.84rem;
  font-weight: 800;
  color: var(--blue);
  text-decoration: none;
}

.ex-code {
  display: block;
  margin-top: 0.15rem;
}

.ex-owner {
  font-size: 0.82rem;
  font-weight: 800;
  color: #0b0d12;
}

/* ---- Coach roster card ---- */
.coach-roster__view {
  flex-direction: column;
  align-items: stretch;
  gap: 0.7rem;
}

.coach-roster__teams {
  list-style: none;
  margin: 0;
  padding: 0;
}

.coach-roster__teams li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.4rem;
}

.coach-roster__teams li + li {
  margin-top: 0.24rem;
}

.coach-roster__team {
  font-size: 0.92rem;
  font-weight: 800;
  color: #0b0d12;
}

.coach-roster__plan {
  font-size: 0.78rem;
  font-weight: 700;
  color: #8a93a3;
}

.coach-roster__plan.is-none {
  color: #8b1e1e;
}

/* Off the team plan ? the thing worth spotting from a scan */
.coach-roster__own {
  padding: 0.06rem 0.34rem;
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.coach-roster__links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 1.1rem;
  padding-top: 0.62rem;
  border-top: 1px solid rgba(11, 13, 18, 0.1);
}

.coach-roster__links a {
  font-size: 0.88rem;
  font-weight: 800;
  color: var(--blue);
  text-decoration: none;
  white-space: nowrap;
}

.coach-roster__links a:hover,
.coach-roster__links a:focus {
  text-decoration: underline;
}

/* ---- Coach roster remove ---- */
.coach-roster__confirm {
  flex-direction: column;
  align-items: stretch;
  gap: 0.85rem;
}

.coach-roster__warn {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: #0b0d12;
}

/* Removing a person is the one destructive thing on this page */
.coach-roster__danger.btn {
  width: auto;
  min-width: 9rem;
  margin: 0;
  background: #8b1e1e;
  border-color: #8b1e1e;
  color: #fff;
}

.coach-roster__danger.btn:hover,
.coach-roster__danger.btn:focus {
  background: #6f1717;
  border-color: #6f1717;
  color: #fff;
}

/* ---- Coach athlete maxes ---- */
/* ---- Coach workouts ---- */
.coach-workouts {
  max-width: none;
  margin: 0 auto 1.25rem;
}

.coach-teams__input--area {
  min-height: 84px;
  font-family: inherit;
  line-height: 1.4;
  resize: vertical;
}

/* How hard today is, readable from a scan of the list */
.coach-workouts__tag {
  flex-shrink: 0;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
}

/* On the dark hero it has to carry ? bigger, brighter than the list pills */
.coach-teams__hero-title .coach-workouts__tag {
  align-self: center;
  margin-top: 0;
  padding: 0.24rem 0.75rem;
  font-size: 0.85rem;
  line-height: 1;
  letter-spacing: 0.08em;
}

.coach-teams__hero-title .coach-workouts__tag.is-easy {
  background: #4caf50;
}

.coach-teams__hero-title .coach-workouts__tag.is-medium {
  background: #2f86e8;
}

.coach-teams__hero-title .coach-workouts__tag.is-hard {
  background: #ef8017;
}

.coach-teams__hero-title .coach-workouts__tag.is-max {
  background: #e04a44;
}

.coach-teams__hero-title .coach-workouts__tag.is-none {
  background: #39404d;
  color: #c9d0dc;
}

/* Workout hero, same shape at every width: mark + name on line one, then
   badge and type on the left of line two with Edit on the right. Those four
   sit under three different parents in the markup, so display: contents
   dissolves the wrappers and order puts them in reading order. */
.coach-workout .coach-teams__hero {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.coach-workout .coach-teams__hero-top,
.coach-workout .coach-teams__hero-title {
  display: contents;
}

/* Claims the rest of line one so everything after it wraps */
.coach-workout .coach-teams__hero .athlete-prog__stats-title {
  flex: 1 1 calc(100% - 3rem);
  min-width: 0;
}

.coach-workout .coach-teams__hero .coach-teams__sub {
  order: 1;
  flex: 0 1 auto;
  min-width: 0;
  margin: 0;
}

.coach-workout .coach-teams__hero .coach-teams__hero-acts {
  order: 2;
  margin-left: auto;
}

.coach-workout .coach-teams__hero .coach-teams__create {
  order: unset;
  margin-left: 0;
}

.coach-workouts__tag.is-easy {
  background: #4c9a56;
}

.coach-workouts__tag.is-medium {
  background: var(--blue);
}

.coach-workouts__tag.is-hard {
  background: #c2620f;
}

.coach-workouts__tag.is-max {
  background: #8b1e1e;
}

.coach-workouts__tag.is-none {
  background: #e6e9ef;
  color: #8a93a3;
}

/* ---- Coach workout detail ---- */
.coach-workout {
  max-width: none;
  margin: 0 auto 1.25rem;
}

/* The note the athlete reads on their home screen ? show it back to the coach */
.coach-workout__note {
  margin: 0.85rem 0 0.35rem;
  padding: 0.7rem 0.9rem;
  border-left: 4px solid var(--blue);
  border-radius: 0 12px 12px 0;
  background: #fff;
}

.coach-workout__note-label {
  display: block;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: #8a93a3;
}

.coach-workout__note-text {
  margin: 0.2rem 0 0;
  font-size: 0.95rem;
  line-height: 1.45;
  color: #0b0d12;
}

.coach-workout__build {
  margin-top: 0;
}

.coach-workout__step {
  margin: 1.15rem 0 0.65rem;
  font-family: var(--display);
  font-size: 0.95rem;
  font-weight: 700;
  font-style: italic;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink);
}

.coach-workout__grid {
  display: grid;
  gap: 0.75rem;
}

@media (min-width: 640px) {
  .coach-workout__grid {
    grid-template-columns: 1fr 1fr 1fr;
    align-items: end;
  }
}

.coach-workout__check {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0 0 0.75rem;
  font-size: 0.92rem;
  font-weight: 600;
}

.coach-workout__check--inline {
  margin-bottom: 0.55rem;
}

/* Bump inputs only matter while the test box is ticked */
.coach-workout__bump {
  margin: 0.35rem 0 0.9rem;
  padding: 0.85rem 0.9rem 0.25rem;
  border: 1px dashed var(--line);
  border-radius: 12px;
  background: #f8f9fc;
}

.coach-workout__bump-lead {
  margin: 0 0 0.75rem;
  font-size: 0.85rem;
  line-height: 1.45;
  color: #6b7382;
}

.coach-workout__sets {
  list-style: none;
  margin: 0 0 0.35rem;
  padding: 0;
}

.coach-workout__set {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--line);
}

.coach-workout__set-n {
  min-width: 3.2rem;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #8a93a3;
}

.coach-workout__set-spec {
  font-size: 0.98rem;
  font-weight: 800;
  color: #0b0d12;
}

.coach-workout__set-test {
  padding: 0.06rem 0.38rem;
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.coach-workout__set-remove {
  margin-left: auto;
  font-size: 0.82rem;
  font-weight: 700;
  color: #8b1e1e;
}

.coach-workout__save-row {
  margin-top: 1.1rem;
}

/* One line per set ? the card should read like the workout */
.coach-workout__lines {
  list-style: none;
  margin: 0 0 0.35rem;
  padding: 0;
}

.coach-workout__lines li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.45rem;
}

.coach-workout__lines li + li {
  margin-top: 0.22rem;
}

.coach-workout__line-n {
  min-width: 3.1rem;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #8a93a3;
}

.coach-workout__line-spec {
  font-size: 0.98rem;
  font-weight: 800;
  color: #0b0d12;
}

/* Order is the workout ? number every line */
.coach-workout__order {
  display: inline-block;
  min-width: 1.4rem;
  margin-right: 0.35rem;
  color: #8a93a3;
}

/* Search sits beside the dropdown; its hit list hangs under the search box */
.coach-workout__pickrow {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.coach-workout__pickrow > * {
  flex: 1 1 15rem;
  min-width: 0;
}

.coach-workout__find {
  position: relative;
}

.coach-workout__find .coach-teams__input {
  background: #f9f3c77a;
}

.coach-workout__hits {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 60;
  max-height: 15rem;
  overflow-y: auto;
  margin-top: 0.25rem;
  border: 1.5px solid var(--blue);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 26px rgba(11, 13, 18, 0.18);
}

.coach-workout__hit {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.6rem;
  width: 100%;
  padding: 0.5rem 0.7rem;
  border: none;
  border-bottom: 1px solid var(--line);
  background: none;
  font-size: 0.92rem;
  font-weight: 700;
  color: #0b0d12;
  text-align: left;
  cursor: pointer;
}

.coach-workout__hit:last-child {
  border-bottom: none;
}

.coach-workout__hit:hover,
.coach-workout__hit:focus {
  background: #eef4ff;
}

.coach-workout__hit-cat {
  flex-shrink: 0;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #8a93a3;
}

.coach-workout__hits-none {
  margin: 0;
  padding: 0.55rem 0.7rem;
  font-size: 0.88rem;
  color: #8a93a3;
}

/* Exercises already on the workout ? same black card the athlete sees */
.coach-workout__line .athlete-workouts__top {
  align-items: stretch;
  gap: 0;
  padding: 0;
  background: #0b0d12;
}

.coach-workout__line .athlete-workouts__name {
  display: flex;
  flex: 1;
  align-items: center;
  gap: 0;
  min-width: 0;
  min-height: 2.7rem;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  overflow-wrap: anywhere;
}

.coach-workout__line .coach-workout__order {
  flex: 0 0 2.4rem;
  align-self: stretch;
  display: grid;
  place-items: center;
  min-width: 0;
  margin: 0 0.6rem 0 0;
  background: var(--blue);
  color: #fff;
  font-size: 1.15rem;
  font-weight: 600;
}

/* White tile so the dark 3D art reads ? bottom rule keeps it off the set rows */
.coach-workout__line-icon {
  flex: 0 0 2.6rem;
  align-self: stretch;
  display: grid;
  place-items: center;
  /* #31683a at 38% over white ? flattened so the black header bar cannot darken it */
  background: #b2c6b5;
  border-bottom: 2px solid #0b0d12;
}

.coach-workout__line-icon img {
  display: block;
  width: 30px;
  height: 30px;
}

.coach-workout__line-acts {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0 0.85rem 0 0.6rem;
}

.coach-workout__move {
  display: inline-grid;
  place-items: center;
  width: 1.7rem;
  height: 1.7rem;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font-size: 0.6rem;
  line-height: 1;
  text-decoration: none;
}

.coach-workout__move:hover {
  border-color: var(--blue);
  background: var(--blue);
  color: #fff;
  text-decoration: none;
}

.coach-workout__move--x {
  font-size: 0.72rem;
}

.coach-workout__move--x:hover {
  border-color: #c62828;
  background: #c62828;
}

.coach-maxes {
  max-width: none;
  margin: 0 auto 1.25rem;
}

/* The max is the point of the card ? let it carry the weight */
.coach-maxes .athlete-workouts__date {
  font-size: 1.15rem;
  letter-spacing: 0.01em;
}

.coach-maxes__tag {
  flex-shrink: 0;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.82);
  white-space: nowrap;
}

.coach-maxes__lift {
  cursor: default;
}

.coach-maxes__lift:hover,
.coach-maxes__lift:focus-visible {
  transform: none;
}

.coach-maxes__lift-head {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: -0.85rem -0.9rem 0;
  padding: 0.68rem 0.9rem;
  border-radius: 15px 15px 0 0;
  background: var(--blue);
}

.coach-maxes__lift-head .athlete-prog__lift-name {
  margin: 0;
  padding: 0;
  background: none;
  border-radius: 0;
  flex: 1 1 auto;
  min-width: 0;
}

.coach-maxes__change {
  margin-top: 0;
  color: #fff;
}

.coach-maxes__change:hover {
  color: #fff;
  text-decoration: underline;
}

.coach-maxes__edit {
  flex-direction: column;
  align-items: stretch;
  gap: 0.85rem;
}

.coach-maxes__edit .coach-teams__field {
  margin: 0;
}

/* ---- Coach team detail ---- */
.coach-team {
  max-width: none;
  margin: 0 auto 1.25rem;
}

/* ---- Coach team invite code (hero) ---- */
.coach-team__invite {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.45rem 0.65rem;
  margin-top: 0.75rem;
}

.coach-team__invite-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.72);
}

.coach-team__invite-code {
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #fff;
}

.coach-team__invite-new {
  margin-left: auto;
  font-size: 0.82rem;
  font-weight: 700;
  color: #ffe566;
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

.coach-team__invite-new:hover {
  text-decoration: underline;
  color: #ffe566;
}

.coach-team__back {
  margin: 0 0 0.75rem;
}

.coach-team__back a {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--blue);
  text-decoration: none;
}

.coach-team__back a:hover {
  text-decoration: underline;
}

.coach-team__label-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 1.25rem 0 0.55rem;
}

.coach-team__label {
  margin: 1.25rem 0 0.55rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.coach-team__label-row .coach-team__label {
  margin: 0;
  min-width: 0;
  flex: 1 1 auto;
}

.coach-team__change {
  flex-shrink: 0;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--blue);
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  text-align: right;
}

.coach-team__change:hover {
  text-decoration: underline;
}

.coach-team__plan {
  margin: 1.25rem 0 0;
  cursor: default;
}

.coach-team__plan-card:hover,
.coach-team__plan-card:focus-visible {
  transform: none;
  box-shadow: 0 4px 14px rgba(11, 13, 18, 0.06);
}

.coach-team__plan-head {
  align-items: flex-start;
}

.coach-team__plan-title {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.coach-team__plan-sub {
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: none;
  color: rgba(255, 255, 255, 0.86);
  line-height: 1.25;
}

.coach-team__plan-change {
  flex-shrink: 0;
  margin-top: 0.12rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  white-space: nowrap;
}

.coach-team__plan-actions {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.2rem;
  margin-top: 0.12rem;
}

.coach-team__plan-actions .coach-team__plan-change {
  margin-top: 0;
}

.coach-team__plan-change:hover {
  text-decoration: underline;
  color: #fff;
}

.coach-team__plan-body {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.85rem;
  padding: 0.85rem 0.9rem;
}

.coach-team__plan-schedule {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
}

.coach-team__plan-schedule-value {
  min-width: 0;
  text-align: left;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--ink);
}

.coach-team__plan-open {
  flex: 0 0 auto;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--blue);
  text-decoration: none;
  white-space: nowrap;
}

.coach-team__plan-edit {
  gap: 0.85rem;
}

.coach-team__plan-edit-field {
  margin: 0;
  width: 100%;
}

.coach-team__plan-edit .coach-teams__create-actions {
  margin-top: 0;
}

.coach-team__plan-workouts {
  list-style: none;
  margin: 0;
  padding: 0;
}

.coach-team__plan-workouts--week {
  counter-reset: none;
}

.coach-team__plan-workouts li {
  position: relative;
  padding: 0.28rem 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.35;
}

.coach-team__plan-day {
  display: inline-block;
  min-width: 3.1rem;
  margin-right: 0.35rem;
  font-weight: 800;
  color: var(--muted);
}

.coach-team__plan-workout-link {
  color: var(--blue);
  font-weight: 700;
  text-decoration: none;
}

.coach-team__plan-workout-link:hover {
  text-decoration: underline;
}

.coach-team__plan-workouts--week .coach-team__plan-day {
  min-width: 5.5rem;
}

.coach-team__plan-workouts-empty {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--muted);
}

.coach-team__select {
  appearance: auto;
  -webkit-appearance: menulist;
  background: #f0f2f5;
}

.coach-team__roster {
  margin-top: 0.35rem;
}

.coach-team__section {
  margin-top: 1.25rem;
  padding: 0.85rem 0.9rem 1rem;
  background: #ffffffcc;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 2px 10px rgba(11, 13, 18, 0.05);
}

.coach-team__section .coach-team__label-row {
  margin: 0 0 0.55rem;
}

.coach-team__section .coach-team__label {
  margin: 0;
}

.coach-team__add-panel {
  margin: 0 0 0.75rem;
}

.coach-team__member-card {
  /* not a link ? same card chrome as workouts */
  cursor: default;
}

.coach-team__member-card:hover,
.coach-team__member-card:focus-visible {
  transform: none;
  box-shadow: 0 4px 14px rgba(11, 13, 18, 0.06);
}

.coach-team__remove {
  flex-shrink: 0;
  font-size: 0.82rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.92);
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

.coach-team__remove:hover {
  text-decoration: underline;
  color: #fff;
}

.coach-team__stats {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 0;
  background: #f0f2f5;
}

.coach-team__stat {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.55rem 0.9rem;
}

.coach-team__stat:nth-child(even) {
  background: #fff8e1;
}

.coach-team__stat--completed {
  flex-direction: column;
  align-items: stretch;
  gap: 0.2rem;
}

.coach-team__stat--plan {
  flex-direction: column;
  align-items: stretch;
  gap: 0.45rem;
}

.coach-team__stat--plan .coach-team__stat-main {
  width: 100%;
}

.coach-team__stat--plan .coach-team__stat-value {
  text-align: left;
}

.coach-team__stat--plan .coach-team__plan-change {
  flex-shrink: 0;
  margin-left: auto;
  margin-top: 0;
  color: var(--blue);
}

.coach-team__stat--plan .coach-team__plan-change:hover {
  color: var(--blue);
  text-decoration: underline;
}

.coach-team__athlete-plan-edit {
  padding: 0.15rem 0 0.25rem;
}

.coach-team__athlete-plan-edit .coach-teams__create-actions {
  margin-top: 0.55rem;
}

.coach-team__stat-main {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
}

.coach-team__stat-workout {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--ink);
  text-align: left;
  word-break: break-word;
}

.coach-team__stat-workout:empty {
  display: none;
}

.coach-team__stat-link {
  color: var(--blue);
  font-weight: 600;
  text-decoration: none;
}

.coach-team__stat-link:hover {
  text-decoration: underline;
}

.coach-team__stat-label {
  flex-shrink: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}

.coach-team__stat-value {
  min-width: 0;
  flex: 1 1 auto;
  text-align: right;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--ink);
  word-break: break-word;
}

.coach-team__stat-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.12rem;
}

.coach-team__stat-line {
  display: block;
  text-align: right;
  max-width: 100%;
}

.coach-team__member-foot {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  padding: 0.7rem 0.85rem 0.8rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  background: #f7f8fa;
  border-radius: 0 0 12px 12px;
}

.coach-team__member-foot-link {
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--blue);
  text-decoration: none;
}

.coach-team__member-foot-link:hover {
  text-decoration: underline;
}

/* ---- Coach Plan detail (team-page card pattern) ---- */
.coach-plan {
  max-width: none;
  margin: 0 auto 1.25rem;
}

.coach-plan__edit-mode-note {
  margin: 0 0 0.75rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--muted);
}

.coach-plan__card {
  margin-top: 1rem;
  cursor: default;
}

.coach-plan__card:hover,
.coach-plan__card:focus-visible {
  transform: none;
  box-shadow: 0 4px 14px rgba(11, 13, 18, 0.06);
}

.coach-plan__body {
  align-items: stretch;
}

.coach-plan__body--flush {
  padding: 0;
  gap: 0;
}

.coach-plan__empty {
  margin: 0;
  font-size: 0.9rem;
  color: #8a93a3;
}

.coach-plan__day-list,
.coach-plan__menu-list,
.coach-plan__assigned-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.coach-plan__day-row,
.coach-plan__menu-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.75rem;
  padding: 0.75rem 0.9rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.coach-plan__day-row {
  align-items: flex-start;
}

.coach-plan__day-row:nth-child(even),
.coach-plan__menu-row:nth-child(even) {
  background: #fff8e1;
}

.coach-plan__day-row:last-child,
.coach-plan__menu-row:last-child {
  border-bottom: none;
}

.coach-plan__day-name {
  flex: 0 0 6.5rem;
  font-size: 0.88rem;
  font-weight: 800;
  color: #0b0d12;
  line-height: 1.35;
  padding-top: 0.1rem;
}

.coach-plan__day-controls {
  flex: 1 1 12rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}

.coach-plan__day-select {
  flex: 1 1 10rem;
  min-width: 0;
  margin: 0;
}

.coach-plan__row-action {
  flex-shrink: 0;
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--blue);
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
}

.coach-plan__row-action:hover {
  text-decoration: underline;
}

.coach-plan__row-action--muted {
  color: #8a93a3;
}

.coach-plan__menu-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
}

.coach-plan__menu-name {
  font-size: 0.95rem;
  font-weight: 800;
  color: #0b0d12;
}

.coach-plan__workout-link {
  display: inline-block;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.25;
}

.coach-plan__workout-empty {
  color: #8a93a3;
  font-weight: 600;
}

.coach-plan__day-current {
  flex: 1 1 100%;
  min-width: 0;
}

.coach-plan__team-link {
  color: var(--blue);
  font-weight: 700;
  text-decoration: none;
}

.coach-plan__team-link:hover {
  text-decoration: underline;
}

.coach-plan__menu-type {
  font-size: 0.72rem;
  color: #8a93a3;
}

.coach-plan__add-day {
  padding: 0.9rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  background: #f7f8fa;
  border-radius: 0 0 14px 14px;
}

.coach-plan__assign {
  margin-top: 1.35rem;
}

.coach-plan__assigned-list {
  margin: 0 0 0.85rem;
  padding: 0;
}

.coach-plan__assigned-list li {
  position: relative;
  margin: 0 0 0.35rem;
  padding-left: 0.9rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: #0b0d12;
}

.coach-plan__assigned-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.45em;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 50%;
  background: var(--blue);
}

.coach-team__setting {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin: 0 0 0.95rem;
  cursor: pointer;
}

.coach-team__setting input[type="checkbox"] {
  margin-top: 0.2rem;
  width: 1.1rem;
  height: 1.1rem;
  flex-shrink: 0;
}

.coach-team__setting-copy {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.coach-team__setting-copy strong {
  font-size: 0.95rem;
  font-weight: 800;
  color: #0b0d12;
  line-height: 1.25;
}

.coach-team__setting-copy span {
  font-size: 0.78rem;
  color: #8a93a3;
  line-height: 1.35;
}

/* ========== Public marketing (/for-coaches, /for-athletes) ========== */
.main--mkt {
  max-width: none;
  width: 100%;
  display: block;
  padding: 0 0 2.5rem;
}

.mkt {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.mkt-body {
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
  width: 100%;
  max-width: min(860px, 100%);
  margin: 1.5rem auto 0;
  padding: 0 var(--gutter);
}

/* Public marketing stage ? mobile-first stack; desktop fold lock only at 900px+ */
body.is-mkt-coaches .page,
body.is-mkt-athletes .page,
body.is-mkt-about .page {
  min-height: 100dvh;
}

body.is-mkt-coaches .main--mkt,
body.is-mkt-athletes .main--mkt,
body.is-mkt-about .main--mkt {
  display: block;
  padding: 0 0 2.5rem;
}

/* Default = phone/tablet: normal document flow. Do NOT lock height here. */
.mkt-stage {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 0;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 0.35rem var(--gutter) 1rem;
  box-sizing: border-box;
}

.mkt-stage__inner {
  display: grid;
  gap: 1.35rem;
  align-items: start;
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  flex: 0 1 auto;
  min-height: 0;
  padding-bottom: 0;
}

.mkt-stage__pitch {
  min-width: 0;
  position: relative;
  z-index: 1;
}

.mkt-stage .pitch {
  order: unset;
}

.mkt-stage__aside {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
  position: relative;
  z-index: 1;
}

/* Pitch panel ? no white fade; page bg already light enough for title */
body.is-mkt-coaches .mkt-stage .pitch-panel,
body.is-mkt-athletes .mkt-stage .pitch-panel,
body.is-mkt-about .mkt-stage .pitch-panel {
  max-width: none;
  padding: 0.55rem 0.85rem 1rem 0.25rem;
  border-radius: 0;
  background: none;
}

.mkt-stage__copy {
  position: relative;
  margin: 0;
  padding: 0;
  background: none;
}

.mkt-stage__copy::before {
  content: none;
}

body.is-mkt-coaches .mkt-stage .pitch h1,
body.is-mkt-athletes .mkt-stage .pitch h1,
body.is-mkt-about .mkt-stage .pitch h1 {
  font-size: clamp(1.85rem, 8vw, 3.5rem);
  line-height: 0.98;
  margin: 0 0 0.7rem;
}

body.is-mkt-coaches .mkt-stage .pitch h1 .mkt-h1-line,
body.is-mkt-athletes .mkt-stage .pitch h1 .mkt-h1-line,
body.is-mkt-about .mkt-stage .pitch h1 .mkt-h1-line {
  display: block;
  white-space: normal;
}

body.is-mkt-coaches .mkt-stage .pitch h1 .mkt-h1-line:last-child,
body.is-mkt-athletes .mkt-stage .pitch h1 .mkt-h1-line:last-child,
body.is-mkt-about .mkt-stage .pitch h1 .mkt-h1-line:last-child {
  font-size: 1.06em;
  letter-spacing: 0.005em;
}

.mkt-stage__sub,
.mkt-stage__lead {
  margin: 0 0 0.8rem;
  font-size: 1.02rem;
  line-height: 1.5;
  color: #1a1f27;
  font-weight: 600;
  max-width: 34rem;
}

.mkt-stage__lead {
  color: #2c3440;
  margin-bottom: 0;
}

.mkt-stage__cta-block {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.8rem;
}

/* Athlete hero ? join card (home .card top: blue bar + title) */
.mkt-join-card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
  padding: 1rem 1.2rem 1.2rem;
  border-radius: 18px;
  background: var(--card);
  border-top: 5px solid var(--blue);
  box-shadow: var(--shadow);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

.mkt-join-card__title {
  margin: 0;
  font-family: var(--display);
  font-size: 1.35rem;
  font-weight: 700;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--blue);
  line-height: 1.1;
}

.mkt-join-card__copy {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.4;
  color: #3a4450;
}

.mkt-join-card .mkt-waitlist-btn {
  margin-top: 0.15rem;
}

.mkt-join-card__link {
  display: inline-block;
  margin: 0.1rem 0 0;
  text-align: center;
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--blue);
  text-decoration: none;
}

.mkt-join-card__link:hover,
.mkt-join-card__link:focus {
  text-decoration: underline;
}

body.is-mkt-athletes .mkt-stage__video img {
  object-position: center 35%;
}

.mkt-waitlist-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 3.45rem;
  padding: 0.95rem 1.35rem;
  border-radius: 12px;
  background: var(--blue);
  color: #fff !important;
  font-family: var(--font);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none !important;
  box-shadow:
    0 14px 34px rgba(21, 101, 192, 0.45),
    0 2px 0 rgba(13, 71, 161, 0.35);
  transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.mkt-waitlist-btn:hover,
.mkt-waitlist-btn:focus {
  background: var(--blue-hot);
  color: #fff !important;
  box-shadow:
    0 18px 40px rgba(21, 101, 192, 0.52),
    0 2px 0 rgba(13, 71, 161, 0.4);
  transform: translateY(-1px);
}

.mkt-stage__offer {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin: 0;
  font-size: 0.9rem;
  font-weight: 600;
  color: #3a4450;
  line-height: 1.45;
}

.mkt-stage__offer strong {
  font-weight: 800;
  color: #0b0d12;
}

.mkt-stage__lock-ico {
  flex: 0 0 auto;
  width: 0.95rem;
  height: 0.95rem;
  margin-top: 0.18rem;
  fill: none;
  stroke: rgba(21, 101, 192, 0.55);
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.9;
}

.mkt-stage__video {
  position: relative;
  z-index: 1;
  margin: 0;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(21, 101, 192, 0.55);
  box-shadow:
    0 0 0 1px rgba(21, 101, 192, 0.18),
    0 0 44px rgba(21, 101, 192, 0.34),
    0 24px 48px rgba(12, 28, 58, 0.36);
  background: #0b0d12;
  align-self: stretch;
  width: 100%;
}

.mkt-stage__video img,
.mkt-stage__video video,
.mkt-stage__video iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  max-height: none;
  object-fit: cover;
  object-position: center center;
  opacity: 0.9;
  display: block;
  background: #0b0d12;
}

.mkt-stage__video iframe {
  border: 0;
  opacity: 1;
  display: none;
}

.mkt-stage__video.is-playing iframe {
  display: block;
}

.mkt-stage__video.is-playing img {
  display: none;
}

.mkt-stage__video video {
  opacity: 1;
  vertical-align: top;
}

.mkt-stage__video.is-playing .mkt-stage__video-cap {
  display: none;
}

.mkt-stage__video-cap {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  margin: 0;
  padding: 1rem;
  border: 0;
  width: 100%;
  cursor: pointer;
  background: linear-gradient(180deg, rgba(11, 13, 18, 0.15) 0%, rgba(11, 13, 18, 0.52) 100%);
  color: #fff;
  text-align: center;
  font: inherit;
}

.mkt-stage__video-label {
  font-size: 0.98rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.mkt-stage__video-time {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.82);
}

.mkt-stage .mkt-video__play {
  width: 3.75rem;
  height: 3.75rem;
  margin-bottom: 0.25rem;
  box-shadow: 0 12px 32px rgba(21, 101, 192, 0.5);
}

.mkt-rail {
  list-style: none;
  position: relative;
  z-index: 2;
  flex: 0 0 auto;
  margin: 1.15rem auto 0;
  padding: 0.85rem 1rem;
  width: 100%;
  max-width: var(--max);
  display: grid;
  gap: 0.55rem;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.95);
  box-shadow:
    0 16px 40px rgba(12, 28, 58, 0.12),
    0 1px 0 rgba(255, 255, 255, 0.9) inset;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.mkt-rail__item {
  display: grid;
  grid-template-columns: 2.35rem 1fr;
  gap: 0.7rem;
  align-items: start;
  padding: 0.5rem 0.45rem;
  border-radius: 10px;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.mkt-rail__ico {
  display: grid;
  place-items: center;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 999px;
  background: rgba(21, 101, 192, 0.12);
  color: var(--blue);
}

.mkt-rail__ico--img {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 0;
  background: none;
}

.mkt-rail__ico--img img {
  width: 2.35rem;
  height: 2.35rem;
  object-fit: contain;
  display: block;
}

.mkt-rail__ico svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mkt-rail__text {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.mkt-rail__text strong {
  font-family: var(--display);
  font-size: 0.98rem;
  font-weight: 700;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--blue);
}

.mkt-rail__text span {
  font-size: 0.86rem;
  font-weight: 600;
  color: #4a5563;
  line-height: 1.35;
}

.mkt-body {
  margin-top: 1.75rem;
}

/* Desktop only ? fold lock (does not touch mobile) */
@media (min-width: 900px) {
  .mkt-stage {
    justify-content: flex-end;
    height: calc(100dvh - 8.75rem);
    min-height: calc(100dvh - 8.75rem);
    max-height: calc(100dvh - 8.75rem);
    padding-top: 0.2rem;
    padding-bottom: 0;
  }

  .mkt-stage__inner {
    grid-template-columns: 1.15fr 0.95fr;
    gap: 2rem;
    align-items: start;
    flex: 1 1 auto;
    padding-bottom: 2.25rem;
  }

  .mkt-stage__pitch {
    order: 1;
  }

  .mkt-stage__aside {
    order: 2;
    gap: 1.1rem;
    width: 100%;
    max-width: 400px;
    margin-left: auto;
    padding-top: 0.35rem;
  }

  body.is-mkt-coaches .mkt-stage .pitch h1 .mkt-h1-line,
  body.is-mkt-athletes .mkt-stage .pitch h1 .mkt-h1-line,
  body.is-mkt-about .mkt-stage .pitch h1 .mkt-h1-line {
    white-space: nowrap;
  }

  .mkt-stage__video {
    max-width: none;
    margin-left: 0;
  }

  .mkt-stage__video img,
  .mkt-stage__video video,
  .mkt-stage__video iframe {
    aspect-ratio: 16 / 9;
    max-height: 28vh;
    min-height: 0;
  }

  .mkt-rail {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.35rem;
    margin-top: -2.25rem;
    padding: 0.9rem 1.05rem 1rem;
    border-radius: 16px 16px 0 0;
    border-bottom: 0;
    box-shadow:
      0 -8px 30px rgba(12, 28, 58, 0.12),
      0 1px 0 rgba(255, 255, 255, 0.9) inset;
  }

  .mkt-rail__item {
    padding: 0.45rem 0.55rem;
  }
}

/* Coach marketing shares home Public.master bg ? do not override .bg-photo */
@media (max-width: 720px) {
  .mkt-stage {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0.25rem var(--gutter) 1.15rem;
  }

  .mkt-stage__inner {
    gap: 1.25rem;
    padding-bottom: 0;
  }

  .mkt-rail {
    margin-top: 1rem;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.95);
  }
}

/* Public marketing header nav ? quiet text; hamburger on phone */
.pub-nav-toggle {
  display: none;
  flex: 0 0 auto;
  width: 2.5rem;
  height: 2.5rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
}

.pub-nav-toggle span {
  display: block;
  width: 1.35rem;
  height: 2px;
  border-radius: 2px;
  background: #0b0d12;
  transition: transform 0.18s ease, opacity 0.18s ease;
}

.header.is-nav-open .pub-nav-toggle span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.header.is-nav-open .pub-nav-toggle span:nth-child(2) {
  opacity: 0;
}

.header.is-nav-open .pub-nav-toggle span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.pub-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.55rem 1.1rem;
  max-width: min(100%, 36rem);
}

.pub-nav__link {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: #1a1f27;
  text-decoration: none;
  white-space: nowrap;
  line-height: 1.2;
}

.pub-nav__link:hover,
.pub-nav__link:focus {
  color: var(--blue);
}

.pub-nav__link.is-active {
  color: var(--blue);
  box-shadow: inset 0 -2px 0 var(--blue);
  padding-bottom: 0.08rem;
}

.pub-nav__link--signup {
  color: var(--blue);
  border: 2px solid var(--blue);
  border-radius: 6px;
  padding: 0.35rem 0.7rem;
  box-shadow: none;
}

.pub-nav__link--signup:hover,
.pub-nav__link--signup:focus {
  color: #fff;
  background: var(--blue);
  border-color: var(--blue);
}

.pub-nav__link--signup.is-active {
  color: #fff;
  background: var(--blue-deep);
  border-color: var(--blue-deep);
  box-shadow: none;
  padding-bottom: 0.35rem;
}

@media (max-width: 899px) {
  .header-inner--bar {
    flex-wrap: wrap;
    align-items: center;
    position: relative;
  }

  .pub-nav-toggle {
    display: inline-flex;
    margin-left: auto;
  }

  .pub-nav {
    display: none;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    flex: 1 0 100%;
    width: 100%;
    max-width: none;
    gap: 0;
    margin-top: 0.55rem;
    padding: 0.35rem 0;
    border-radius: 12px;
    background: rgba(245, 247, 250, 0.96);
    box-shadow: 0 10px 28px rgba(12, 28, 58, 0.12);
  }

  .header.is-nav-open .pub-nav {
    display: flex;
  }

  .pub-nav__link {
    font-size: 0.92rem;
    padding: 0.75rem 1rem;
    white-space: normal;
    box-shadow: none;
  }

  .pub-nav__link.is-active {
    box-shadow: inset 3px 0 0 var(--blue);
    padding-bottom: 0.75rem;
    background: rgba(21, 101, 192, 0.06);
  }

  .pub-nav__link--signup {
    margin: 0.35rem 0.75rem 0.55rem;
    text-align: center;
  }

  .pub-nav__link--signup.is-active {
    box-shadow: none;
    padding-bottom: 0.75rem;
    background: var(--blue-deep);
    color: #fff;
  }
}

@media (min-width: 900px) {
  .pub-nav-toggle {
    display: none !important;
  }

  .pub-nav {
    display: flex !important;
  }
}

.mkt-kicker {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--blue);
}

.mkt-hero__title,
.mkt-h2 {
  margin: 0 0 0.65rem;
  font-family: var(--display);
  font-weight: 700;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  color: #111;
  line-height: 1.02;
}

.mkt-hero__title {
  font-size: clamp(2rem, 7vw, 3.25rem);
}

.mkt-hero__title .accent { color: var(--blue); }

.mkt-h2 {
  font-size: clamp(1.45rem, 4vw, 2rem);
}

.mkt-h3 {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  font-weight: 800;
  color: #0b0d12;
}

.mkt-hero__sub,
.mkt-hero__lead,
.mkt-p {
  margin: 0 0 0.85rem;
  font-size: 1.02rem;
  line-height: 1.45;
  color: #222;
  font-weight: 600;
}

.mkt-p--quiet,
.mkt-hero__lead {
  color: #3a4450;
  font-weight: 600;
}

.mkt-hero__cta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  margin: 0 0 1.25rem;
}

.mkt-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.mkt-cta:hover,
.mkt-cta:visited {
  color: #fff;
}

.mkt-offer {
  font-size: 0.88rem;
  font-weight: 700;
  color: #3a4450;
  line-height: 1.35;
}

.mkt-offer--block {
  display: block;
  margin: 0 0 1rem;
  padding: 0.75rem 0.9rem;
  border-radius: 12px;
  background: rgba(21, 101, 192, 0.1);
  color: #0d47a1;
}

.mkt-block {
  padding: 1.15rem 1.1rem 1.25rem;
  border-radius: 16px;
  background:
    linear-gradient(
      180deg,
      rgba(245, 247, 250, 0.96) 0%,
      rgba(245, 247, 250, 0.88) 70%,
      rgba(245, 247, 250, 0.65) 100%
    );
}

.mkt-block--accent {
  border: 2px solid rgba(21, 101, 192, 0.25);
}

/* ---- Section 2: Stop? + Old way vs Brett Strength ---- */
.mkt-s2 {
  position: relative;
  z-index: 1;
  margin: 2.25rem 0 0;
  padding: 2rem var(--gutter) 2.5rem;
  background:
    linear-gradient(180deg, rgba(236, 239, 243, 0.92) 0%, rgba(245, 247, 250, 0.98) 100%);
}

.mkt-s2__inner {
  display: grid;
  gap: 2rem;
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  align-items: start;
}

.mkt-s2__kicker {
  margin: 0 0 0.85rem;
  padding-left: 0.75rem;
  border-left: 3px solid var(--blue);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--blue);
  line-height: 1.2;
}

.mkt-s2__stops {
  margin: 0 0 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.mkt-s2__stop {
  display: block;
  font-family: var(--display);
  font-size: clamp(1.2rem, 3.4vw, 1.85rem);
  font-weight: 700;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 1.12;
  color: #0b0d12;
}

.mkt-s2__stop .accent { color: var(--blue); }

.mkt-s2__lead {
  margin: 0 0 1.35rem;
  font-size: 1.02rem;
  line-height: 1.45;
  font-weight: 600;
  color: #3a4450;
  max-width: 34rem;
}

.mkt-s2__benefits {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.85rem;
}

.mkt-s2__benefits li {
  display: grid;
  grid-template-columns: 2.35rem 1fr;
  gap: 0.7rem;
  align-items: start;
}

.mkt-s2__bico {
  display: grid;
  place-items: center;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 999px;
  background: rgba(21, 101, 192, 0.12);
  color: var(--blue);
}

.mkt-s2__bico--img {
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 0;
  background: none;
  color: inherit;
}

.mkt-s2__bico--img img {
  width: 2.15rem;
  height: 2.15rem;
  object-fit: contain;
  display: block;
}

.mkt-s2__bico svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mkt-s2__benefits strong {
  display: block;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #0b0d12;
}

.mkt-s2__benefits span {
  display: block;
  margin-top: 0.12rem;
  font-size: 0.86rem;
  font-weight: 600;
  color: #4a5563;
  line-height: 1.35;
}

.mkt-s2__shot {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

.mkt-s2__visual {
  margin: 0;
  padding: 0;
  background: transparent;
}

body.is-mkt-about .mkt-s2__visual,
body.is-mkt-about .mkt-s2__shot {
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}

.mkt-s2__lead + .mkt-s2__lead {
  margin-top: -0.85rem;
}

.mkt-s2__pains {
  list-style: none;
  margin: 1.15rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}

.mkt-s2__pains li {
  display: grid;
  grid-template-columns: 1.15rem 1fr;
  gap: 0.6rem;
  align-items: start;
  font-size: 0.94rem;
  font-weight: 600;
  color: #2c3440;
  line-height: 1.4;
}

.mkt-s2__x {
  display: grid;
  place-items: center;
  width: 1.15rem;
  height: 1.15rem;
  margin-top: 0.12rem;
  border-radius: 999px;
  background: rgba(21, 101, 192, 0.12);
  color: var(--blue);
  position: relative;
}

.mkt-s2__x::before,
.mkt-s2__x::after {
  content: "";
  position: absolute;
  width: 0.55rem;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
}

.mkt-s2__x::before { transform: rotate(45deg); }
.mkt-s2__x::after { transform: rotate(-45deg); }

.mkt-s2__bar {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  width: 100%;
  max-width: var(--max);
  margin: 1.75rem auto 0;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(213, 219, 229, 0.9);
  box-shadow: 0 12px 28px rgba(12, 28, 58, 0.06);
  overflow: hidden;
}

.mkt-s2__bar-item {
  display: grid;
  grid-template-columns: 2.15rem 1fr;
  grid-template-rows: auto auto;
  column-gap: 0.7rem;
  row-gap: 0.2rem;
  align-content: start;
  padding: 1rem 1.1rem;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.mkt-s2__bar-item:last-child {
  border-bottom: 0;
}

.mkt-s2__bar-item .mkt-s2__bico {
  grid-row: 1 / span 2;
}

.mkt-s2__bar-item strong {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #0b0d12;
}

.mkt-s2__bar-item > span:last-child {
  font-size: 0.88rem;
  font-weight: 600;
  color: #4a5563;
  line-height: 1.35;
}

.mkt-versus {
  position: relative;
  display: grid;
  gap: 0;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 24px 56px rgba(12, 28, 58, 0.16);
  border: 1px solid rgba(213, 219, 229, 0.9);
}

.mkt-versus__old,
.mkt-versus__new {
  padding: 1.15rem 1.1rem 1.25rem;
}

.mkt-versus__old {
  background:
    repeating-linear-gradient(
      -12deg,
      transparent,
      transparent 11px,
      rgba(12, 28, 58, 0.03) 11px,
      rgba(12, 28, 58, 0.03) 12px
    ),
    #eef1f5;
}

.mkt-versus__new {
  background: linear-gradient(160deg, #1565c0 0%, #0d47a1 100%);
  color: #fff;
}

.mkt-versus__label {
  margin: 0 0 0.2rem;
  font-family: var(--display);
  font-size: 1.05rem;
  font-weight: 700;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.mkt-versus__old .mkt-versus__label { color: #3a4450; }
.mkt-versus__new .mkt-versus__label { color: #fff; }

.mkt-versus__sub {
  margin: 0 0 0.95rem;
  font-size: 0.86rem;
  font-weight: 600;
  line-height: 1.35;
}

.mkt-versus__old .mkt-versus__sub { color: #5a6572; }
.mkt-versus__new .mkt-versus__sub { color: rgba(255, 255, 255, 0.85); }

.mkt-versus__badge {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  transform: translate(-50%, -50%);
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #fff;
  color: var(--blue);
  font-family: var(--display);
  font-size: 0.85rem;
  font-weight: 700;
  font-style: italic;
  text-transform: uppercase;
  box-shadow: 0 8px 22px rgba(12, 28, 58, 0.22);
}

.mkt-versus__sheet {
  margin: 0 0 0.85rem;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #d5dbe5;
  font-size: 0.72rem;
  font-weight: 700;
}

.mkt-versus__sheet-row {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 0.7fr;
  gap: 0.25rem;
  padding: 0.4rem 0.55rem;
  color: #3a4450;
  border-top: 1px solid #e8ecf2;
}

.mkt-versus__sheet-row--head {
  border-top: 0;
  background: #f5f7fa;
  color: #5a6572;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.64rem;
}

.mkt-versus__texts {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.mkt-versus__texts p {
  margin: 0;
  padding: 0.45rem 0.65rem;
  border-radius: 12px 12px 12px 4px;
  background: #fff;
  border: 1px solid #d5dbe5;
  font-size: 0.78rem;
  font-weight: 600;
  color: #4a5563;
  line-height: 1.3;
  max-width: 92%;
}

.mkt-versus__texts p:nth-child(2) {
  align-self: flex-end;
  border-radius: 12px 12px 4px 12px;
}

.mkt-versus__texts p:nth-child(3) { max-width: 80%; }

.mkt-versus__devices {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin: 0 0 0.95rem;
  min-height: 11rem;
}

.mkt-device {
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.22);
  overflow: hidden;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.28);
}

.mkt-device__screen {
  background: #f5f7fa;
  color: #0b0d12;
}

.mkt-device--laptop .mkt-device__screen {
  padding: 0.7rem 0.75rem 0.8rem;
}

.mkt-device--phone {
  max-width: 11.5rem;
  margin-left: auto;
  border-radius: 18px;
}

.mkt-device--phone .mkt-device__screen {
  padding: 0.65rem 0.55rem 0.45rem;
}

.mkt-ui__eyebrow {
  margin: 0 0 0.55rem;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--blue);
}

.mkt-ui__lifts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.mkt-ui__lifts li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.55rem;
  align-items: center;
  padding: 0.4rem 0.45rem;
  border-radius: 10px;
  background: #fff;
  border: 1px solid #e1e6ee;
}

.mkt-ui__lifts img {
  width: 36px;
  height: 36px;
  object-fit: contain;
  border-radius: 8px;
  background: #eef1f5;
}

.mkt-ui--phone .mkt-ui__lifts img {
  width: 28px;
  height: 28px;
}

.mkt-ui__lifts strong {
  display: block;
  font-size: 0.78rem;
  font-weight: 800;
  color: #0b0d12;
  line-height: 1.15;
}

.mkt-ui__lifts span {
  display: block;
  margin-top: 0.1rem;
  font-size: 0.7rem;
  font-weight: 600;
  color: #5a6572;
}

.mkt-ui__prog {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-top: 0.65rem;
  padding: 0.5rem 0.55rem;
  border-radius: 10px;
  background: rgba(21, 101, 192, 0.1);
}

.mkt-ui__prog span {
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--blue);
}

.mkt-ui__prog strong {
  font-family: var(--display);
  font-size: 1.05rem;
  font-style: italic;
  color: #0b0d12;
}

.mkt-ui__tabs {
  display: flex;
  justify-content: space-around;
  align-items: center;
  margin-top: 0.7rem;
  margin-left: -0.55rem;
  margin-right: -0.55rem;
  margin-bottom: -0.45rem;
  padding: 0.45rem 0.35rem;
  border-top: 1px solid #e1e6ee;
  background: #0b0d12;
}

.mkt-ui__tabs img {
  width: 22px;
  height: 22px;
  object-fit: contain;
}

.mkt-versus__pill {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  padding: 0.55rem 0.8rem;
  border-radius: 999px;
  background: #fff;
  color: #0b0d12;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.25;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
}

.mkt-versus__pill svg {
  flex: 0 0 auto;
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: var(--blue);
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (min-width: 900px) {
  .mkt-s2 {
    margin-top: 2.75rem;
    padding: 2.75rem var(--gutter) 3rem;
  }

  .mkt-s2__inner {
    grid-template-columns: 1.05fr 1.1fr;
    gap: 2.5rem;
    align-items: center;
  }

  .mkt-s2__benefits {
    grid-template-columns: 1fr 1fr;
    gap: 0.95rem 1rem;
  }

  .mkt-s2__bar {
    grid-template-columns: repeat(3, 1fr);
    margin-top: 2rem;
  }

  .mkt-s2__bar-item {
    border-bottom: 0;
    border-right: 1px solid rgba(15, 23, 42, 0.08);
    padding: 1.15rem 1.2rem;
  }

  .mkt-s2__bar-item:last-child {
    border-right: 0;
  }

  .mkt-versus {
    grid-template-columns: 1fr 1fr;
  }

  .mkt-versus__devices {
    grid-template-columns: 1.25fr 0.85fr;
    align-items: end;
  }

  .mkt-device--phone {
    margin-bottom: 0.35rem;
    transform: translate(-0.35rem, 0.35rem);
  }
}

/* ---- Section 3: Build / deliver / automatically card ---- */
.mkt-s3 {
  position: relative;
  z-index: 1;
  margin: 2rem 0 0;
  padding: 0 var(--gutter);
}

.mkt-s3__card {
  display: grid;
  gap: 0;
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  border-radius: 22px;
  overflow: hidden;
  background: #f4f6f8;
  box-shadow:
    0 28px 64px rgba(0, 0, 0, 0.38),
    0 0 0 1px rgba(255, 255, 255, 0.06);
}

.mkt-s3__left,
.mkt-s3__right {
  padding: 1.5rem 1.25rem 1.6rem;
}

.mkt-s3__left {
  background: #f7f8fa;
}

.mkt-s3__right {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  background: #eceff3;
  border-top: 1px solid rgba(15, 23, 42, 0.06);
}

.mkt-s3__kicker {
  margin: 0 0 0.85rem;
  padding-left: 0.7rem;
  border-left: 3px solid var(--blue);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--blue);
  line-height: 1.25;
}

.mkt-s3__title {
  margin: 0 0 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  font-family: var(--display);
  font-size: clamp(1.45rem, 4.2vw, 2.15rem);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 1.05;
  color: #0b0d12;
}

.mkt-s3__title-accent {
  color: var(--blue);
  font-style: italic;
  font-weight: 800;
}

.mkt-s3__lead {
  margin: 0 0 1.35rem;
  max-width: 32rem;
  font-size: 0.98rem;
  line-height: 1.45;
  font-weight: 600;
  color: #4a5563;
}

.mkt-s3__features {
  list-style: none;
  margin: 0;
  padding: 0;
}

.mkt-s3__features li {
  display: grid;
  grid-template-columns: 2.4rem 1fr;
  gap: 0.85rem;
  align-items: start;
  padding: 0.95rem 0;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.mkt-s3__features li:last-child {
  padding-bottom: 0;
}

.mkt-s3__fico {
  display: grid;
  place-items: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
  box-shadow: 0 8px 18px rgba(21, 101, 192, 0.28);
}

.mkt-s3__fico--img {
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: inherit;
}

.mkt-s3__fico--img img {
  width: 2.4rem;
  height: 2.4rem;
  object-fit: contain;
  display: block;
}

.mkt-s3__fico--program {
  width: 2.85rem;
  height: 2.4rem;
}

.mkt-s3__fico--program img {
  width: 2.85rem;
  height: 2.4rem;
}

.mkt-s3__fico svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mkt-s3__features p {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.4;
  font-weight: 600;
  color: #3a4450;
}

.mkt-s3__features strong {
  color: #0b0d12;
  font-weight: 800;
}

.mkt-s3__steps {
  list-style: none;
  margin: 0;
  padding: 0;
}

.mkt-s3__steps li {
  display: grid;
  grid-template-columns: 1.7rem 1fr;
  gap: 0.75rem;
  align-items: start;
  padding: 0.85rem 0;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.mkt-s3__steps li:first-child {
  border-top: 0;
  padding-top: 0.15rem;
}

.mkt-s3__n {
  display: grid;
  place-items: center;
  width: 1.7rem;
  height: 1.7rem;
  margin-top: 0.1rem;
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1;
}

.mkt-s3__steps h3 {
  margin: 0 0 0.2rem;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #0b0d12;
}

.mkt-s3__steps p {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.4;
  font-weight: 600;
  color: #4a5563;
}

.mkt-s3__video {
  position: relative;
  margin: 0;
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: #0b0d12;
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.22);
}

.mkt-s3__video img,
.mkt-s3__video video,
.mkt-s3__video iframe {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #0b0d12;
}

.mkt-s3__video iframe {
  border: 0;
  display: none;
}

.mkt-s3__video.is-playing iframe {
  display: block;
}

.mkt-s3__video.is-playing img {
  display: none;
}

.mkt-s3__video img {
  filter: grayscale(1) contrast(1.05);
}

.mkt-s3__video.is-playing .mkt-s3__video-cap {
  display: none;
}

.mkt-s3__video-cap {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  margin: 0;
  padding: 1rem;
  border: 0;
  width: 100%;
  cursor: pointer;
  background: linear-gradient(180deg, rgba(8, 10, 14, 0.18) 0%, rgba(8, 10, 14, 0.55) 100%);
  color: #fff;
  text-align: center;
  font: inherit;
}

.mkt-s3__video-label {
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.mkt-s3__video-time {
  font-size: 0.78rem;
  font-weight: 700;
  opacity: 0.85;
}

@media (min-width: 900px) {
  .mkt-s3 {
    margin-top: 2.5rem;
    padding: 0 var(--gutter);
  }

  .mkt-s3__card {
    grid-template-columns: 1.05fr 0.95fr;
  }

  .mkt-s3__left {
    padding: 2rem 1.85rem 2.1rem 2rem;
  }

  .mkt-s3__right {
    padding: 1.75rem 1.5rem 1.5rem;
    border-top: 0;
    border-left: 1px solid rgba(15, 23, 42, 0.06);
  }

  .mkt-s3__title {
    font-size: clamp(1.7rem, 2.4vw, 2.25rem);
  }
}

/* ---- Section 4: Tools you need + product shot + coach quote ---- */
.mkt-s4 {
  position: relative;
  z-index: 1;
  margin: 2.25rem 0 0;
  padding: 2rem var(--gutter) 2.5rem;
  background:
    linear-gradient(180deg, rgba(236, 239, 243, 0.92) 0%, rgba(245, 247, 250, 0.98) 100%);
}

.mkt-s4__inner {
  display: grid;
  gap: 2rem;
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  align-items: start;
}

.mkt-s4__kicker {
  margin: 0 0 0.85rem;
  padding-left: 0.75rem;
  border-left: 3px solid var(--blue);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--blue);
  line-height: 1.2;
}

.mkt-s4__title {
  margin: 0 0 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  font-family: var(--display);
  font-size: clamp(1.45rem, 4.2vw, 2.15rem);
  font-weight: 800;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 1.05;
  color: #0b0d12;
}

.mkt-s4__title-accent {
  color: var(--blue);
}

.mkt-s4__lead {
  margin: 0 0 1.35rem;
  max-width: 34rem;
  font-size: 1.02rem;
  line-height: 1.45;
  font-weight: 600;
  color: #3a4450;
}

.mkt-s4__features {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.95rem;
}

.mkt-s4__features li {
  display: grid;
  grid-template-columns: 2.35rem 1fr;
  gap: 0.75rem;
  align-items: start;
}

.mkt-s4__fico {
  display: grid;
  place-items: center;
  width: 2.35rem;
  height: 2.35rem;
}

.mkt-s4__fico img {
  width: 2.35rem;
  height: 2.35rem;
  object-fit: contain;
  display: block;
}

.mkt-s4__fico--svg {
  border-radius: 999px;
  background: rgba(21, 101, 192, 0.12);
  color: var(--blue);
}

.mkt-s4__fico--svg svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.mkt-s4__features strong {
  display: block;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #0b0d12;
}

.mkt-s4__features span {
  display: block;
  margin-top: 0.12rem;
  font-size: 0.86rem;
  font-weight: 600;
  color: #4a5563;
  line-height: 1.35;
}

.mkt-s4__visual {
  margin: 0;
  padding: 0;
}

.mkt-s4__shot {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 18px;
}

.mkt-s4__quote {
  display: grid;
  grid-template-columns: 5.5rem 1fr;
  gap: 1rem;
  align-items: center;
  width: 100%;
  max-width: var(--max);
  margin: 1.75rem auto 0;
  padding: 0.85rem 1.15rem 0.95rem 1.45rem;
  border-radius: 18px;
  background: #0b0d12;
  color: #f3f5f8;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.28);
  overflow: hidden;
}

.mkt-s4__quote-photo {
  width: 5.5rem;
  height: 6.75rem;
  overflow: hidden;
  border-radius: 12px;
  background: #0b0d12;
}

.mkt-s4__quote-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.mkt-s4__quote-body {
  position: relative;
  min-width: 0;
}

.mkt-s4__qmark {
  position: absolute;
  top: -0.55rem;
  left: -0.1rem;
  font-family: Georgia, serif;
  font-size: 3.2rem;
  line-height: 1;
  color: var(--blue);
  opacity: 0.95;
  pointer-events: none;
}

.mkt-s4__quote-title {
  margin: 0.35rem 0 0.45rem;
  padding-left: 0.15rem;
  font-family: var(--display);
  font-size: clamp(1.05rem, 2.6vw, 1.35rem);
  font-weight: 700;
  font-style: italic;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #fff;
  line-height: 1.15;
}

.mkt-s4__quote-text {
  margin: 0 0 0.7rem;
  font-size: 0.92rem;
  line-height: 1.45;
  font-weight: 600;
  color: #d8dde6;
}

.mkt-s4__quote-attr {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  align-items: baseline;
  font-size: 0.82rem;
}

.mkt-s4__quote-attr strong {
  color: #7eb6ff;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.mkt-s4__quote-attr span {
  color: rgba(243, 245, 248, 0.78);
  font-weight: 600;
}

@media (min-width: 900px) {
  .mkt-s4 {
    margin-top: 2.75rem;
    padding: 2.75rem var(--gutter) 3rem;
  }

  .mkt-s4__inner {
    grid-template-columns: 1.05fr 1.05fr;
    gap: 2.5rem;
    align-items: start;
  }

  .mkt-s4__features {
    grid-template-columns: 1fr 1fr;
    gap: 1rem 1.25rem;
  }

  .mkt-s4__title {
    font-size: clamp(1.7rem, 2.4vw, 2.25rem);
  }

  .mkt-s4__quote {
    grid-template-columns: 7rem 1fr;
    gap: 1.35rem;
    padding: 0.9rem 1.5rem 1rem 1.6rem;
  }

  .mkt-s4__quote-photo {
    width: 7rem;
    height: 8.5rem;
  }
}

/* ---- Section 5: Imagine Monday Morning ---- */
.mkt-s5 {
  position: relative;
  z-index: 1;
  margin: 2.25rem 0 0;
  padding: 0 var(--gutter) 0.5rem;
}

.mkt-s5__card {
  position: relative;
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  border-radius: 22px;
  overflow: hidden;
  color: #f3f5f8;
  background:
    linear-gradient(105deg, rgba(8, 10, 14, 0.94) 0%, rgba(8, 10, 14, 0.82) 42%, rgba(8, 10, 14, 0.45) 68%, rgba(8, 10, 14, 0.28) 100%),
    #0b0d12 url("/images/monday-morning2.jpg") right center / cover no-repeat;
  box-shadow: 0 22px 48px rgba(0, 0, 0, 0.32);
}

.mkt-s5__main {
  display: grid;
  gap: 1.5rem;
  padding: 1.5rem 1.25rem 1.35rem;
}

.mkt-s5__kicker {
  margin: 0 0 0.85rem;
  padding-left: 0.75rem;
  border-left: 3px solid var(--blue);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--blue);
  line-height: 1.2;
}

.mkt-s5__title {
  margin: 0 0 1.15rem;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  font-family: var(--display);
  font-size: clamp(1.55rem, 4.5vw, 2.35rem);
  font-weight: 800;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 1.05;
  color: #fff;
}

.mkt-s5__title-accent {
  color: var(--blue);
}

/* Athlete s5 ? lead + feature list (coaches keep Monday scene beats) */
.mkt-s5__lead {
  margin: 0 0 1.15rem;
  max-width: 32rem;
  font-size: 1.02rem;
  line-height: 1.45;
  font-weight: 600;
  color: rgba(243, 245, 248, 0.9);
}

.mkt-s5__features {
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: 32rem;
}

.mkt-s5__features li {
  display: grid;
  grid-template-columns: 2.15rem 1fr;
  gap: 0.75rem;
  align-items: start;
  padding: 0.85rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.mkt-s5__features li:last-child {
  padding-bottom: 0.15rem;
}

.mkt-s5__fico {
  display: grid;
  place-items: center;
  width: 2.15rem;
  height: 2.15rem;
}

.mkt-s5__fico img {
  width: 2.15rem;
  height: 2.15rem;
  object-fit: contain;
  display: block;
}

.mkt-s5__features strong {
  display: block;
  font-size: 0.88rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fff;
  line-height: 1.25;
}

.mkt-s5__features span {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: rgba(220, 226, 235, 0.88);
  line-height: 1.4;
}

body.is-mkt-athletes .mkt-s5__card {
  background:
    linear-gradient(105deg, rgba(8, 10, 14, 0.94) 0%, rgba(8, 10, 14, 0.82) 42%, rgba(8, 10, 14, 0.45) 68%, rgba(8, 10, 14, 0.28) 100%),
    #0b0d12 url("/images/athlete-coach.webp") right center / cover no-repeat;
}

.mkt-s5__scene {
  max-width: 28rem;
  margin-top: 0.15rem;
}

.mkt-s5__time {
  margin: 0 0 0.2rem;
  font-family: var(--display);
  font-size: clamp(1.55rem, 4vw, 2.1rem);
  font-weight: 800;
  font-style: italic;
  letter-spacing: 0.01em;
  line-height: 1.05;
  color: var(--blue);
}

.mkt-s5__time-sub {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.3;
}

.mkt-s5__beats {
  margin: 0;
  padding: 0;
}

.mkt-s5__beat {
  padding: 0.85rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.mkt-s5__beat--close {
  padding-bottom: 0.15rem;
  border-bottom: 0;
}

.mkt-s5__beat-line {
  margin: 0;
  font-size: 1rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.3;
}

.mkt-s5__beat-quote {
  margin: 0.25rem 0 0;
  padding-left: 0.15rem;
  font-size: 0.98rem;
  font-weight: 700;
  font-style: italic;
  color: #7eb6ff;
  line-height: 1.35;
}

.mkt-s5__beat-sub {
  margin: 0.2rem 0 0;
  font-size: 0.88rem;
  font-weight: 600;
  color: rgba(216, 221, 230, 0.86);
  line-height: 1.35;
}

.mkt-s5__beat-punch {
  margin: 0.55rem 0 0;
  font-family: var(--display);
  font-size: clamp(1.45rem, 3.6vw, 1.95rem);
  font-weight: 800;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--blue);
  line-height: 1.05;
}

.mkt-s5__quote {
  position: relative;
  align-self: end;
  max-width: 22rem;
  margin: 0;
  padding: 1.15rem 1.1rem 1.05rem;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(8, 10, 14, 0.72);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.mkt-s5__qmark {
  display: block;
  margin: 0 0 0.15rem;
  font-family: Georgia, serif;
  font-size: 2.6rem;
  line-height: 0.8;
  color: var(--blue);
}

.mkt-s5__quote-text {
  margin: 0 0 0.7rem;
  font-size: 0.98rem;
  line-height: 1.45;
  font-weight: 650;
  color: #f3f5f8;
}

.mkt-s5__quote-text em {
  font-style: italic;
  font-weight: 800;
  color: #7eb6ff;
}

.mkt-s5__quote-attr {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 700;
  color: rgba(216, 221, 230, 0.72);
}

.mkt-s5__bar {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin: 0 0.85rem 0.85rem;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(8, 10, 14, 0.78);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  overflow: hidden;
}

.mkt-s5__bar-item {
  display: grid;
  grid-template-columns: 2rem 1fr;
  grid-template-rows: auto auto;
  column-gap: 0.65rem;
  row-gap: 0.2rem;
  align-content: start;
  padding: 0.95rem 0.85rem;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.mkt-s5__bar-item:nth-child(2n) {
  border-right: 0;
}

.mkt-s5__bar-item:nth-child(n + 3) {
  border-bottom: 0;
}

.mkt-s5__bico {
  grid-row: 1 / span 2;
  display: grid;
  place-items: start center;
  padding-top: 0.1rem;
}

.mkt-s5__bico img {
  width: 1.85rem;
  height: 1.85rem;
  object-fit: contain;
  display: block;
}

.mkt-s5__bar-item strong {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #fff;
  line-height: 1.25;
}

.mkt-s5__bar-item > span:last-child {
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(216, 221, 230, 0.82);
  line-height: 1.35;
}

@media (min-width: 900px) {
  .mkt-s5 {
    margin-top: 2.75rem;
    padding-bottom: 0.75rem;
  }

  .mkt-s5__card {
    background:
      linear-gradient(105deg, rgba(8, 10, 14, 0.95) 0%, rgba(8, 10, 14, 0.84) 36%, rgba(8, 10, 14, 0.4) 62%, rgba(8, 10, 14, 0.18) 100%),
      #0b0d12 url("/images/monday-morning2.jpg") right center / cover no-repeat;
  }

  body.is-mkt-athletes .mkt-s5__card {
    background:
      linear-gradient(105deg, rgba(8, 10, 14, 0.95) 0%, rgba(8, 10, 14, 0.84) 36%, rgba(8, 10, 14, 0.4) 62%, rgba(8, 10, 14, 0.18) 100%),
      #0b0d12 url("/images/athlete-coach.webp") right center / cover no-repeat;
  }

  .mkt-s5__main {
    grid-template-columns: 1.15fr 0.85fr;
    gap: 2rem;
    align-items: end;
    padding: 2rem 1.75rem 1.5rem 1.85rem;
  }

  .mkt-s5__title {
    font-size: clamp(1.9rem, 2.8vw, 2.55rem);
  }

  .mkt-s5__quote {
    justify-self: end;
    margin-bottom: 0.35rem;
  }

  .mkt-s5__bar {
    grid-template-columns: repeat(4, 1fr);
    margin: 0 1.15rem 1.15rem;
  }

  .mkt-s5__bar-item {
    border-right: 1px solid rgba(255, 255, 255, 0.1);
    border-bottom: 0;
    padding: 1.05rem 1rem;
  }

  .mkt-s5__bar-item:nth-child(2n) {
    border-right: 1px solid rgba(255, 255, 255, 0.1);
  }

  .mkt-s5__bar-item:last-child {
    border-right: 0;
  }
}

/* ---- Section 6: Athletes never pay (same band layout as s2 / s4) ---- */
.mkt-s6 {
  position: relative;
  z-index: 1;
  margin: 2.25rem 0 0;
  padding: 2rem var(--gutter) 2.5rem;
  background:
    linear-gradient(180deg, rgba(236, 239, 243, 0.92) 0%, rgba(245, 247, 250, 0.98) 100%);
}

.mkt-s6__inner {
  display: grid;
  gap: 2rem;
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  align-items: start;
}

.mkt-s6__kicker {
  margin: 0 0 0.85rem;
  padding-left: 0.75rem;
  border-left: 3px solid var(--blue);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--blue);
  line-height: 1.2;
}

.mkt-s6__title {
  margin: 0 0 0.95rem;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  font-family: var(--display);
  font-size: clamp(1.45rem, 4.2vw, 2.15rem);
  font-weight: 800;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 1.05;
  color: #0b0d12;
}

.mkt-s6__title-accent {
  color: var(--blue);
}

.mkt-s6__lead {
  margin: 0 0 0.75rem;
  max-width: 34rem;
  font-size: 1.02rem;
  line-height: 1.45;
  font-weight: 600;
  color: #3a4450;
}

.mkt-s6__lead:last-of-type {
  margin-bottom: 1.15rem;
}

.mkt-s6__callout {
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  gap: 0.85rem;
  align-items: center;
  margin: 0;
  padding: 1rem 1.05rem;
  border-radius: 14px;
  background: rgba(21, 101, 192, 0.12);
  border: 1px solid rgba(21, 101, 192, 0.16);
}

.mkt-s6__callout-ico img {
  width: 2.35rem;
  height: 2.35rem;
  object-fit: contain;
  display: block;
}

.mkt-s6__callout p {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.4;
  font-weight: 600;
  color: #2a3442;
}

.mkt-s6__callout strong {
  font-weight: 800;
  color: #0b0d12;
}

.mkt-s6__callout-attr {
  margin-top: 0.45rem !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  color: var(--blue) !important;
}

.mkt-s6__visual {
  margin: 0;
  padding: 0;
}

.mkt-s6__shot {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 18px;
}

.mkt-s6__bar {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  width: 100%;
  max-width: var(--max);
  margin: 1.75rem auto 0;
  border-radius: 18px;
  background: #0b0d12;
  color: #f3f5f8;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.28);
  overflow: hidden;
}

.mkt-s6__bar-item {
  display: grid;
  grid-template-columns: 2rem 1fr;
  grid-template-rows: auto auto;
  column-gap: 0.65rem;
  row-gap: 0.2rem;
  align-content: start;
  padding: 0.95rem 1.05rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.mkt-s6__bar-item:last-child {
  border-bottom: 0;
}

.mkt-s6__bico {
  grid-row: 1 / span 2;
  display: grid;
  place-items: start center;
  padding-top: 0.1rem;
}

.mkt-s6__bico img {
  width: 1.85rem;
  height: 1.85rem;
  object-fit: contain;
  display: block;
}

.mkt-s6__bar-item strong {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #fff;
  line-height: 1.25;
}

.mkt-s6__bar-item > span:last-child {
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(216, 221, 230, 0.86);
  line-height: 1.35;
}

.mkt-s6__foot {
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  padding: 1.05rem 0 0;
  text-align: center;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--blue);
  position: relative;
}

.mkt-s6__foot::before,
.mkt-s6__foot::after {
  content: "";
  position: absolute;
  top: 50%;
  width: min(18%, 5.5rem);
  height: 1px;
  background: rgba(21, 101, 192, 0.35);
}

.mkt-s6__foot::before {
  left: 0;
}

.mkt-s6__foot::after {
  right: 0;
}

@media (min-width: 900px) {
  .mkt-s6 {
    margin-top: 2.75rem;
    padding: 2.75rem var(--gutter) 3rem;
  }

  .mkt-s6__inner {
    grid-template-columns: 1.05fr 1.05fr;
    gap: 2.5rem;
    align-items: start;
  }

  .mkt-s6__title {
    font-size: clamp(1.7rem, 2.4vw, 2.25rem);
  }

  .mkt-s6__bar {
    grid-template-columns: repeat(3, 1fr);
  }

  .mkt-s6__bar-item {
    border-bottom: 0;
    border-right: 1px solid rgba(255, 255, 255, 0.1);
    padding: 1.15rem 1.15rem;
  }

  .mkt-s6__bar-item:last-child {
    border-right: 0;
  }
}

/* ---- Section 7: Why I built Brett Strength (rounded dark card like s3/s5) ---- */
.mkt-s7 {
  position: relative;
  z-index: 1;
  margin: 2.25rem 0 0;
  padding: 0 var(--gutter) 0.5rem;
  background: transparent;
}

.mkt-s7__card {
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  padding: 1.5rem 1.25rem 1.5rem;
  border-radius: 22px;
  overflow: hidden;
  background: #0b0d12;
  box-shadow: 0 22px 48px rgba(0, 0, 0, 0.32);
}

.mkt-s7__head {
  margin: 0 0 1.35rem;
}

.mkt-s7__kicker {
  margin: 0 0 0.35rem;
  padding-left: 0.75rem;
  border-left: 3px solid var(--blue);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--blue);
  line-height: 1.2;
}

.mkt-s7__title {
  margin: 0;
  display: block;
  line-height: 0;
  border: 0;
  padding: 0;
}

.mkt-s7__logo {
  display: block;
  width: min(100%, 28rem);
  height: auto;
}

.mkt-s7__grid {
  display: grid;
  gap: 1.5rem;
  align-items: start;
}

.mkt-s7__notes,
.mkt-s7__photo {
  margin: 0;
  padding: 0;
}

.mkt-s7__notes img,
.mkt-s7__photo img {
  display: block;
  width: 100%;
  height: auto;
}

.mkt-s7__line {
  margin: 1rem 0 0;
  padding: 0;
  border: 0;
  text-align: center;
  line-height: 0;
}

.mkt-s7__line-img {
  display: block;
  width: 100%;
  max-width: 28rem;
  height: auto;
  margin: 0 auto;
}

@media (min-width: 900px) {
  .mkt-s7 {
    margin-top: 2.75rem;
    padding-bottom: 0.75rem;
  }

  .mkt-s7__card {
    padding: 2rem 1.75rem 2rem;
  }

  .mkt-s7__grid {
    grid-template-columns: 1.05fr 1.05fr;
    gap: 2rem;
    align-items: start;
  }

  .mkt-s7__line {
    margin-top: 1.15rem;
  }

  .mkt-s7__line-img {
    max-width: 32rem;
  }
}


/* ---- Pricing: light band like s2 / s4 / s6 (after solid s7) ---- */
.mkt-pricing {
  position: relative;
  z-index: 1;
  margin: 2.25rem 0 0;
  padding: 2.35rem var(--gutter) 2.85rem;
  background:
    linear-gradient(180deg, rgba(236, 239, 243, 0.92) 0%, rgba(245, 247, 250, 0.98) 100%);
}

.mkt-pricing__inner {
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
}

.mkt-pricing__intro {
  margin: 0 0 1.75rem;
  max-width: 40rem;
}

.mkt-pricing__kicker {
  margin: 0 0 0.85rem;
  padding-left: 0.75rem;
  border-left: 3px solid var(--blue);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--blue);
  line-height: 1.2;
}

.mkt-pricing__title {
  margin: 0 0 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  font-family: var(--display);
  font-size: clamp(1.55rem, 4.4vw, 2.35rem);
  font-weight: 800;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 1.05;
  color: #0b0d12;
}

.mkt-pricing__title-accent {
  color: var(--blue);
}

.mkt-pricing__lead {
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.45;
  font-weight: 600;
  color: #3a4450;
}

.mkt-pricing__tiers {
  list-style: none;
  margin: 0 0 1.35rem;
  padding: 0;
  display: grid;
  gap: 0.85rem;
}

.mkt-pricing__tier {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.55rem 1.25rem;
  padding: 1.1rem 1.15rem;
  border-radius: 16px;
  background: #0b0d12;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);
}

.mkt-pricing__name {
  margin: 0 0 0.2rem;
  font-family: var(--display);
  font-size: 1.18rem;
  font-weight: 800;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: #fff;
  line-height: 1.1;
}

.mkt-pricing__cap {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 600;
  color: rgba(243, 245, 248, 0.72);
  line-height: 1.3;
}

.mkt-pricing__price {
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: 0.15rem;
  white-space: nowrap;
}

.mkt-pricing__amount {
  font-family: var(--display);
  font-size: clamp(1.7rem, 4.2vw, 2.1rem);
  font-weight: 800;
  font-style: italic;
  color: var(--blue);
  line-height: 1;
}

.mkt-pricing__per {
  font-size: 0.9rem;
  font-weight: 700;
  color: rgba(243, 245, 248, 0.72);
}

.mkt-pricing__reinforce {
  margin: 0;
  padding: 0.85rem 0 0;
}

.mkt-pricing__reinforce p {
  margin: 0 0 0.4rem;
  font-size: 0.95rem;
  line-height: 1.4;
  font-weight: 600;
  color: #0b0d12;
}

.mkt-pricing__reinforce p:last-child {
  margin-bottom: 0;
}

.mkt-pricing__over {
  font-weight: 600 !important;
  color: #3a4450 !important;
}

.mkt-pricing__over a {
  color: var(--blue);
  font-weight: 800;
  text-decoration: none;
}

.mkt-pricing__over a:hover,
.mkt-pricing__over a:focus {
  text-decoration: underline;
}

@media (min-width: 720px) {
  .mkt-pricing__tiers {
    grid-template-columns: 1fr 1fr;
    gap: 0.85rem;
  }
}

@media (min-width: 900px) {
  .mkt-pricing {
    margin-top: 2.75rem;
    padding: 3rem var(--gutter) 3.25rem;
  }

  .mkt-pricing__title {
    font-size: clamp(1.85rem, 2.5vw, 2.45rem);
  }
}

/* ---- Section 8: FAQ (gray band like s2 / s4 / s6) ---- */
.mkt-s8 {
  position: relative;
  z-index: 1;
  margin: 2.25rem 0 0;
  padding: 2rem var(--gutter) 2.5rem;
  background:
    linear-gradient(180deg, rgba(236, 239, 243, 0.92) 0%, rgba(245, 247, 250, 0.98) 100%);
}

.mkt-s8__inner {
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
}

.mkt-s8__intro {
  display: grid;
  gap: 1.25rem;
  margin: 0 0 1.5rem;
  align-items: start;
}

.mkt-s8__kicker {
  margin: 0 0 0.85rem;
  padding-left: 0.75rem;
  border-left: 3px solid var(--blue);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--blue);
  line-height: 1.2;
}

.mkt-s8__title {
  margin: 0 0 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  font-family: var(--display);
  font-size: clamp(1.45rem, 4.2vw, 2.15rem);
  font-weight: 800;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 1.05;
  color: #0b0d12;
}

.mkt-s8__title-accent {
  color: var(--blue);
}

.mkt-s8__lead {
  margin: 0;
  max-width: 34rem;
  font-size: 1.02rem;
  line-height: 1.45;
  font-weight: 600;
  color: #3a4450;
}

.mkt-s8__help {
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  gap: 0.85rem;
  align-items: center;
  padding: 1rem 1.1rem;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.1);
}

.mkt-s8__help-ico img {
  width: 2.25rem;
  height: 2.25rem;
  object-fit: contain;
  display: block;
}

.mkt-s8__help strong {
  display: block;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #0b0d12;
}

.mkt-s8__help span {
  display: block;
  margin: 0.15rem 0 0.35rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: #4a5563;
}

.mkt-s8__help a {
  font-size: 0.88rem;
  font-weight: 800;
  color: var(--blue);
  text-decoration: none;
}

.mkt-s8__help a:hover {
  text-decoration: underline;
}

.mkt-s8__list {
  display: grid;
  gap: 0.75rem;
}

.mkt-s8__item {
  margin: 0;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
  overflow: hidden;
}

.mkt-s8__item summary {
  display: grid;
  grid-template-columns: 2.5rem 1fr 1.5rem;
  gap: 0.85rem;
  align-items: center;
  padding: 1rem 1.05rem;
  cursor: pointer;
  list-style: none;
}

.mkt-s8__item summary::-webkit-details-marker {
  display: none;
}

.mkt-s8__ico {
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 12px;
  background: rgba(21, 101, 192, 0.1);
}

.mkt-s8__ico img {
  width: 1.65rem;
  height: 1.65rem;
  object-fit: contain;
  display: block;
}

.mkt-s8__q {
  font-size: 0.88rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #0b0d12;
  line-height: 1.25;
}

.mkt-s8__plus {
  position: relative;
  width: 1.15rem;
  height: 1.15rem;
  justify-self: end;
}

.mkt-s8__plus::before,
.mkt-s8__plus::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: var(--blue);
  border-radius: 2px;
  transform: translate(-50%, -50%);
}

.mkt-s8__plus::before {
  width: 1.05rem;
  height: 2.5px;
}

.mkt-s8__plus::after {
  width: 2.5px;
  height: 1.05rem;
  transition: transform 0.15s ease, opacity 0.15s ease;
}

.mkt-s8__item[open] .mkt-s8__plus::after {
  transform: translate(-50%, -50%) scaleY(0);
  opacity: 0;
}

.mkt-s8__a {
  margin: 0;
  padding: 0 1.05rem 1.05rem 4.4rem;
  font-size: 0.94rem;
  line-height: 1.45;
  font-weight: 600;
  color: #3a4450;
}

.mkt-s8__a p {
  margin: 0 0 0.65rem;
}

.mkt-s8__a p:last-child {
  margin-bottom: 0;
}

.mkt-s8__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  margin: 1.75rem 0 0;
  padding: 0 0.5rem;
  font-size: 1rem;
  font-weight: 600;
  color: #3a4450;
  text-align: center;
  line-height: 1.4;
}

.mkt-s8__cta strong {
  font-weight: 800;
  color: #0b0d12;
}

.mkt-s8__cta a {
  color: var(--blue);
  font-weight: 800;
  text-decoration: none;
}

.mkt-s8__cta a:hover,
.mkt-s8__cta a:focus {
  text-decoration: underline;
}

.mkt-s8__cta-check {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 999px;
  background: var(--blue);
  box-shadow: 0 6px 14px rgba(21, 101, 192, 0.35);
}

.mkt-s8__cta-check::before {
  content: "";
  width: 0.42rem;
  height: 0.72rem;
  margin-top: -0.12rem;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

@media (min-width: 900px) {
  .mkt-s8 {
    margin-top: 2.75rem;
    padding: 2.75rem var(--gutter) 3rem;
  }

  .mkt-s8__intro {
    grid-template-columns: 1.35fr 0.75fr;
    gap: 2rem;
    align-items: end;
  }

  .mkt-s8__title {
    font-size: clamp(1.7rem, 2.4vw, 2.25rem);
  }

  .mkt-s8__help {
    max-width: 20rem;
    justify-self: end;
  }
}


/* ---- Section 8 (coaches only): solid dark FAQ card like s7 — do not apply to athletes/about ---- */
body.is-mkt-coaches .mkt-s8 {
  padding: 0 var(--gutter) 0.5rem;
  background: transparent;
}

body.is-mkt-coaches .mkt-s8__card {
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  padding: 1.5rem 1.25rem 1.5rem;
  border-radius: 22px;
  overflow: hidden;
  background: #0b0d12;
  box-shadow: 0 22px 48px rgba(0, 0, 0, 0.32);
  color: #f3f5f8;
}

body.is-mkt-coaches .mkt-s8__title {
  color: #fff;
}

body.is-mkt-coaches .mkt-s8__lead {
  color: rgba(243, 245, 248, 0.88);
}

body.is-mkt-coaches .mkt-s8__help {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: none;
}

body.is-mkt-coaches .mkt-s8__help strong {
  color: #fff;
  font-size: 0.92rem;
  letter-spacing: 0;
  text-transform: none;
}

body.is-mkt-coaches .mkt-s8__help span {
  color: rgba(243, 245, 248, 0.72);
}

body.is-mkt-coaches .mkt-s8__list {
  gap: 0.65rem;
}

body.is-mkt-coaches .mkt-s8__item {
  border-radius: 14px;
  box-shadow: none;
}

body.is-mkt-coaches .mkt-s8__item summary {
  gap: 0.75rem;
  padding: 0.9rem 1rem;
}

body.is-mkt-coaches .mkt-s8__ico {
  background: transparent;
  width: auto;
  height: auto;
  border-radius: 0;
}

body.is-mkt-coaches .mkt-s8__ico img {
  width: 2rem;
  height: 2rem;
}

body.is-mkt-coaches .mkt-s8__q {
  font-size: 0.82rem;
  letter-spacing: 0.04em;
}

@media (min-width: 900px) {
  body.is-mkt-coaches .mkt-s8 {
    margin-top: 2.75rem;
    padding: 0 var(--gutter) 0.75rem;
  }

  body.is-mkt-coaches .mkt-s8__card {
    padding: 1.85rem 1.75rem 1.85rem;
  }
}

/* ---- Section 9: light closing CTA band (like s2 / s4 / s6) ---- */
.mkt-s9 {
  position: relative;
  z-index: 1;
  margin: 2.25rem 0 0;
  padding: 2rem var(--gutter) 2.5rem;
  background:
    linear-gradient(180deg, rgba(236, 239, 243, 0.92) 0%, rgba(245, 247, 250, 0.98) 100%);
  color: #0b0d12;
}

.mkt-s9__inner {
  display: grid;
  gap: 1.5rem;
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
}

.mkt-s9__title {
  margin: 0 0 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  font-family: var(--display);
  font-size: clamp(1.55rem, 4.5vw, 2.35rem);
  font-weight: 800;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 1.05;
  color: #0b0d12;
}

.mkt-s9__title-accent {
  color: var(--blue);
}

.mkt-s9__lead {
  margin: 0;
  max-width: 32rem;
  font-size: 1.02rem;
  line-height: 1.45;
  font-weight: 600;
  color: #3a4450;
}

.mkt-s9__form-wrap {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 28rem;
}

.mkt-s9__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.1rem;
  padding: 0.8rem 1.45rem;
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
  font-size: 1.02rem;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 12px 28px rgba(21, 101, 192, 0.28);
}

.mkt-s9__btn:hover,
.mkt-s9__btn:focus {
  filter: brightness(1.06);
  color: #fff;
  text-decoration: none;
}

.mkt-s9__note {
  margin: 0.85rem 0 0;
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.4;
  color: #5a6570;
}

@media (min-width: 900px) {
  .mkt-s9 {
    margin-top: 2.75rem;
    padding: 2.75rem var(--gutter) 3rem;
  }

  .mkt-s9__inner {
    grid-template-columns: 1.2fr 0.8fr;
    align-items: center;
    gap: 2rem;
  }

  .mkt-s9__title {
    font-size: clamp(1.7rem, 2.4vw, 2.35rem);
  }
}

/* legacy s9 signup-card form — unused; keep hidden so old rules cannot fight CTA band */
.mkt-s9__card {
  display: none;
}

.mkt-block--emotion {
  padding-top: 1.35rem;
  padding-bottom: 1.35rem;
}

.mkt-emotion {
  margin: 0 0 0.55rem;
  font-family: var(--display);
  font-size: clamp(1.15rem, 3.5vw, 1.55rem);
  font-weight: 700;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 1.2;
  color: #0b0d12;
}

.mkt-emotion:last-child { margin-bottom: 0; }

.mkt-block--dark {
  background: #0b0d12;
  color: #f3f5f8;
  border: 0;
}

.mkt-block--dark .mkt-h2 {
  color: #fff;
}

.mkt-block--dark .mkt-p {
  color: #d8dde6;
  font-weight: 600;
}

.mkt-p--stack {
  margin-top: 0.35rem;
}

.mkt-p--punch {
  margin-top: 0.85rem;
  margin-bottom: 0;
  font-family: var(--display);
  font-size: clamp(1.25rem, 3.5vw, 1.65rem);
  font-weight: 700;
  font-style: italic;
  text-transform: uppercase;
  color: #fff !important;
  letter-spacing: 0.02em;
}

.mkt-quote {
  margin: 0 0 0.85rem;
  padding: 0;
  border: 0;
}

.mkt-quote p {
  margin: 0 0 0.75rem;
  font-size: 1.08rem;
  line-height: 1.5;
  font-weight: 600;
  color: #e8ecf2;
}

.mkt-quote p:last-child { margin-bottom: 0; }

.mkt-quote-attr {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #8ab4f8;
}

.mkt-p--quiet-on-dark {
  margin: 0.85rem 0 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: #8a93a3 !important;
}

/* Numbered workflow (Program ? Assign ? Train ? Maxes) */
.mkt-flow {
  list-style: none;
  margin: 0 0 1.1rem;
  padding: 0;
  display: grid;
  gap: 0;
}

.mkt-flow__item {
  display: grid;
  grid-template-columns: 2.25rem 1fr;
  gap: 0.75rem;
  align-items: start;
  padding: 0.85rem 0.15rem 0.85rem 0;
  border-bottom: 1px solid rgba(213, 219, 229, 0.95);
}

.mkt-flow__item:last-child {
  border-bottom: 0;
  padding-bottom: 0.25rem;
}

.mkt-flow__n {
  display: grid;
  place-items: center;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
  font-size: 0.95rem;
  font-weight: 800;
  line-height: 1;
}

.mkt-flow__item .mkt-p {
  margin-bottom: 0;
  font-size: 0.95rem;
  color: #3a4450;
}

/* Product screenshot slot (real image later) */
.mkt-shot {
  margin: 1.15rem 0 0;
}

.mkt-shot__frame {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 0.35rem;
  min-height: 12rem;
  padding: 1.25rem 1.15rem;
  border-radius: 14px;
  border: 1px solid rgba(213, 219, 229, 0.95);
  background: #f5f7fa;
  box-shadow: 0 10px 28px rgba(12, 28, 58, 0.08);
}

.mkt-shot__label {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--blue);
}

.mkt-shot__title {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(1.35rem, 4vw, 1.85rem);
  font-weight: 700;
  font-style: italic;
  text-transform: uppercase;
  color: #0b0d12;
  line-height: 1.05;
}

.mkt-shot__hint {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 700;
  color: #5a6572;
}

.mkt-shot__cap {
  margin: 0.55rem 0 0;
  font-size: 0.88rem;
  font-weight: 600;
  color: #5a6572;
}

.mkt-bullets {
  margin: 0 0 0.5rem;
  padding: 0 0 0 1.15rem;
  font-weight: 600;
  color: #222;
  line-height: 1.5;
}

.mkt-bullets li { margin: 0.25rem 0; }

.mkt-steps {
  display: grid;
  gap: 0.85rem;
  margin-bottom: 1.1rem;
}

.mkt-step {
  padding: 0.75rem 0.85rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(213, 219, 229, 0.9);
}

.mkt-cards {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .mkt-cards {
    grid-template-columns: 1fr 1fr;
  }
}

.mkt-card {
  padding: 0.85rem 0.9rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(213, 219, 229, 0.9);
}

.mkt-card .mkt-p { margin-bottom: 0; font-size: 0.92rem; font-weight: 600; color: #3a4450; }

/* Video image placeholders (HeyGen later) */
.mkt-video {
  position: relative;
  margin: 0;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(15, 15, 15, 0.12);
  background: #0b0d12;
}

.mkt-video img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: left 70%;
  opacity: 0.92;
}

.mkt-video__cap {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  margin: 0;
  padding: 1rem;
  background: rgba(11, 13, 18, 0.42);
  color: #fff;
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-align: center;
}

.mkt-video__play {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 999px;
  background: rgba(21, 101, 192, 0.95);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  position: relative;
}

.mkt-video__play::after {
  content: "";
  position: absolute;
  left: 52%;
  top: 50%;
  transform: translate(-40%, -50%);
  border-style: solid;
  border-width: 0.55rem 0 0.55rem 0.9rem;
  border-color: transparent transparent transparent #fff;
}

.mkt-wait {
  display: grid;
  gap: 0.75rem;
  max-width: 28rem;
  margin-bottom: 1rem;
}

.mkt-wait .field { margin: 0; }

.field-optional {
  font-weight: 600;
  color: #8a93a3;
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.85em;
}

.mkt-msg {
  margin: 0 0 0.85rem;
  padding: 0.7rem 0.85rem;
  border-radius: 10px;
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.35;
}

.mkt-msg--ok {
  background: rgba(34, 140, 70, 0.12);
  color: #176b35;
}

.mkt-msg--err {
  background: rgba(180, 40, 40, 0.1);
  color: #9b1c1c;
}

.mkt-foot-links {
  margin: 0.5rem 0 0;
  font-size: 0.9rem;
  font-weight: 700;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.65rem;
  align-items: center;
}

.pitch-coach-link {
  margin: 0.85rem 0 0;
  font-size: 0.88rem;
  font-weight: 700;
}

.footer-nav {
  margin: 0.45rem 0 0.35rem;
  font-size: 0.78rem;
  font-weight: 700;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  align-items: center;
}

.footer-nav a {
  color: inherit;
  font-weight: 700;
}

.footer-nav a:hover {
  text-decoration: underline;
}

.mkt--stub {
  margin: 0.75rem var(--gutter) 0;
  max-width: min(860px, calc(100% - 2 * var(--gutter)));
  padding: 1.25rem 1.1rem;
  border-radius: 16px;
  background: rgba(245, 247, 250, 0.94);
}

/* ---- About: Coaching philosophy visual + mission banner ---- */
body.is-mkt-about .mkt-s4__shot {
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: cover;
  border-radius: 18px;
  box-shadow: 0 22px 48px rgba(12, 28, 58, 0.14);
}

body.is-mkt-about .mkt-s4__features {
  gap: 1.05rem;
}

@media (min-width: 900px) {
  body.is-mkt-about .mkt-s4__inner {
    grid-template-columns: 1.15fr 0.95fr;
    align-items: start;
  }

  body.is-mkt-about .mkt-s4__features {
    gap: 1.15rem 1.35rem;
  }
}

.mkt-mission {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--max);
  margin: 1.75rem auto 0;
  padding: 0;
}

.mkt-mission__card {
  display: grid;
  gap: 1.35rem;
  width: 100%;
  margin: 0;
  padding: 1.35rem 1.2rem 1.45rem;
  border-radius: 22px;
  overflow: hidden;
  color: #f3f5f8;
  background: #0b0d12;
  box-shadow: 0 22px 48px rgba(0, 0, 0, 0.32);
}

.mkt-mission__portrait {
  width: 7.5rem;
  margin: 0 auto;
}

.mkt-mission__portrait img {
  display: block;
  width: 100%;
  height: auto;
}

.mkt-mission__copy {
  text-align: center;
}

.mkt-mission__title {
  margin: 0 0 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  font-family: var(--display);
  font-size: clamp(1.35rem, 4.2vw, 1.95rem);
  font-weight: 800;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 1.12;
  color: #fff;
}

.mkt-mission__title-accent {
  color: var(--blue);
}

.mkt-mission__lead {
  margin: 0 0 1rem;
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
  font-size: 0.98rem;
  line-height: 1.45;
  font-weight: 600;
  color: rgba(220, 226, 235, 0.9);
}

.mkt-mission__sig {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  align-items: center;
  font-size: 0.86rem;
}

.mkt-mission__sig strong {
  color: var(--blue);
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.mkt-mission__sig span {
  color: rgba(243, 245, 248, 0.72);
  font-weight: 600;
}

.mkt-mission__values {
  display: grid;
  gap: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  padding-top: 0.35rem;
}

.mkt-mission__value {
  display: grid;
  grid-template-columns: 2.15rem 1fr;
  grid-template-rows: auto auto;
  column-gap: 0.75rem;
  row-gap: 0.15rem;
  padding: 0.95rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.mkt-mission__value:last-child {
  border-bottom: 0;
  padding-bottom: 0.15rem;
}

.mkt-mission__vico {
  grid-row: 1 / span 2;
  display: grid;
  place-items: center;
  width: 2.15rem;
  height: 2.15rem;
}

.mkt-mission__vico img {
  width: 2.15rem;
  height: 2.15rem;
  object-fit: contain;
  display: block;
}

.mkt-mission__value strong {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
}

.mkt-mission__value > span:last-child {
  font-size: 0.88rem;
  font-weight: 600;
  color: rgba(220, 226, 235, 0.86);
  line-height: 1.35;
}

@media (min-width: 900px) {
  .mkt-mission {
    margin-top: 2rem;
  }

  .mkt-mission__card {
    grid-template-columns: 9.5rem minmax(0, 1.15fr) minmax(0, 1.05fr);
    gap: 1.75rem;
    align-items: center;
    padding: 1.5rem 1.75rem 1.5rem 1.35rem;
  }

  .mkt-mission__portrait {
    width: 100%;
    margin: 0;
    align-self: end;
  }

  .mkt-mission__copy {
    text-align: left;
  }

  .mkt-mission__lead {
    margin-left: 0;
    margin-right: 0;
  }

  .mkt-mission__sig {
    align-items: flex-start;
  }

  .mkt-mission__title {
    font-size: clamp(1.45rem, 2vw, 1.85rem);
  }

  .mkt-mission__values {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0;
    border-top: 0;
    padding-top: 0;
    border-left: 1px solid rgba(255, 255, 255, 0.12);
    padding-left: 0.25rem;
  }

  .mkt-mission__value {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    justify-items: start;
    padding: 0.35rem 0.85rem;
    border-bottom: 0;
    border-right: 1px solid rgba(255, 255, 255, 0.1);
  }

  .mkt-mission__value:last-child {
    border-right: 0;
    padding-bottom: 0.35rem;
  }

  .mkt-mission__vico {
    grid-row: auto;
    margin-bottom: 0.35rem;
  }
}

/* ---- About: Section 5 Impact (huddle as full card bg + quote + people foot) ---- */
body.is-mkt-about .mkt-s5__card {
  background:
    linear-gradient(105deg, rgba(8, 10, 14, 0.94) 0%, rgba(8, 10, 14, 0.88) 38%, rgba(8, 10, 14, 0.55) 62%, rgba(8, 10, 14, 0.32) 100%),
    #0b0d12 url("/images/built-here.webp") right center / cover no-repeat;
}

body.is-mkt-about .mkt-s5__main {
  align-items: end;
}

body.is-mkt-about .mkt-s5__features {
  max-width: 32rem;
}

body.is-mkt-about .mkt-s5__quote--shot {
  padding: 0;
  border: 0;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  max-width: 22rem;
  overflow: hidden;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.4);
}

body.is-mkt-about .mkt-s5__quote--shot img {
  display: block;
  width: 100%;
  height: auto;
}

body.is-mkt-about .mkt-s5__impact-foot {
  display: grid;
  gap: 1.15rem;
  margin: 0 0.85rem 0.85rem;
  padding: 1.15rem 1rem 1.05rem;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(8, 10, 14, 0.88);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

body.is-mkt-about .mkt-s5__impact-mission {
  margin: 0;
  padding-left: 0.75rem;
  border-left: 3px solid var(--blue);
  font-family: var(--display);
  font-size: clamp(1.15rem, 3.6vw, 1.55rem);
  font-weight: 800;
  font-style: italic;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  line-height: 1.15;
  color: #fff;
}

body.is-mkt-about .mkt-s5__impact-mission .accent {
  color: var(--blue);
}

body.is-mkt-about .mkt-s5__impact-foot .mkt-s5__bar {
  margin: 0;
  border: 0;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-radius: 0;
  grid-template-columns: 1fr;
}

body.is-mkt-about .mkt-s5__impact-foot .mkt-s5__bar-item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

body.is-mkt-about .mkt-s5__impact-foot .mkt-s5__bar-item:last-child {
  border-bottom: 0;
}

@media (min-width: 900px) {
  body.is-mkt-about .mkt-s5__card {
    background:
      linear-gradient(105deg, rgba(8, 10, 14, 0.95) 0%, rgba(8, 10, 14, 0.88) 34%, rgba(8, 10, 14, 0.48) 58%, rgba(8, 10, 14, 0.22) 100%),
      #0b0d12 url("/images/built-here.webp") right center / cover no-repeat;
  }

  body.is-mkt-about .mkt-s5__main {
    grid-template-columns: 1.15fr 0.85fr;
    align-items: end;
    gap: 2rem;
  }

  body.is-mkt-about .mkt-s5__quote--shot {
    justify-self: end;
    margin-bottom: 0.35rem;
  }

  body.is-mkt-about .mkt-s5__impact-foot {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.05fr);
    gap: 1.5rem;
    align-items: center;
    margin: 0 1.15rem 1.15rem;
    padding: 1.15rem 1.25rem;
  }

  body.is-mkt-about .mkt-s5__impact-foot .mkt-s5__bar {
    grid-template-columns: repeat(3, 1fr);
  }

  body.is-mkt-about .mkt-s5__impact-foot .mkt-s5__bar-item {
    border-bottom: 0;
    border-right: 1px solid rgba(255, 255, 255, 0.1);
  }

  body.is-mkt-about .mkt-s5__impact-foot .mkt-s5__bar-item:last-child {
    border-right: 0;
  }
}






