/* KOACH-BUILD-STAMP: S334-B7-LIGHTCSS */ /* S334-B7: Training today row, a second hint sits under the first at 821px+ (F-334-8). Prior S333-B5. */ /* S333-B5: s.64 Amelia client pages (C635), s.65 My Documents sections, s.66 intake Assessment History rows, review fixes. S333-B4: s.61 the Plan summary (C639, C636), s.62 client content, s.63 intake rows. S333-B3: the My Account tab switcher edge at the R2 width (C652; the list is components piece 9). S333-B2: s.60 the Clients row (C638) + s.59 review fixes + 44px account menu items. S333-B1: s.59 Alerts one block per client (C637). Prior S332-B9. */ /* S332-B9: close re-stamp; carries S332 B1-B8 and sections 51-58 (walks 5-7). Prior S332-B4. */
/* S332-B3/B4: tokens moved to koach-tokens.css; controls read --kl-ctrl-bg + --kl-w-ctrl/--kl-line-ctrl (R2); hard-coded #C6CFDE/#EFF1F4 replaced by tokens. Prior S331-B15. */
/* S331-B14/B15: section 40 (C627 the frame on built pages); the spacing levels --kl-sp-* (tokens, section 0) and section 41 (SAMPLE: Training, Check-In, koach Clients -- sections by space, no line). Prior S331-B11. */
/* S331-B11: section 38 -- owner decisions 3-6 (one red primary per koach screen, role colours not as text, client small reds, booking title). Prior S331-B10. */
/* S331-B10: 37.10-37.11 -- live walk as uid 31: exercise-library rows, labels, 12px floor, 44px; calendar controls. Prior S331-B9. */
/* S331-B9: 37.9 -- fixes from the independent review (clipped day header, broken words, chips, unit overlap, dimmed intake section, legal tables). Prior S331-B8. */
/* S331-B8: section 37, the full scan (owner 19:57): dark-phone leftovers, faint greys, tags, 12px floor, one title size, rows not boxes, 44px targets. Prior S331-B7. */
/* S331-B7: walk 3 (Claude, uid 31) -- section 36: calendar title in the frame, phone first stat card, mesocycle spans 13px, 12px floor. Prior stamp S331-B6-LIGHTCSS. */
/* S331-B6: walk-2 fixes + D641 (the mesocycle tables at 13px), end of section 35. Prior stamp S331-B5-LIGHTCSS. */
/* S331-B4 / B5 (C621): section 34 (the koach build pages; written by the turn lost at 15:07 local, recovered by PR-60) and section 35 (the sweep fixes, client intake, periodized plan, assessment history, exercise library, the light account menu). Prior stamp S331-B2-LIGHTCSS. */
/* S331-B2 (C621, D638): sections 32 (the koach shell under the koach switch) and 33 (the Clients dashboard) added; sections 1-31.16 unchanged byte for byte. Prior stamp S330-B1-LIGHTCSS. */
/*
 * koach-light.css -- THE SHARED CLIENT STYLESHEET (C481, step 1 of C617)
 *
 * Source of every value: koach-app-page-design-standard-v3.md (D594) sections 1-8 and the
 * token sheet in koach-design-surface-inventory-v1.md section 4, read against the frozen v7
 * boards (claude/koach-design-v7-mockup/). Written rules win for values; the boards win for
 * look and placement (standard s.R). Do not re-derive a value here: change the standard first.
 *
 * OPT-IN ONLY. Nothing in this file matches any element until a surface opts in:
 *   - a wrapper:   <div class="kl"> ... </div>   (one tab, one card, one panel)
 *   - a page:      body.koach-light              (added by koach_light_body_class() in
 *                                                 koach-app-pages.php for the slugs in
 *                                                 koach_light_pages(); EMPTY at S330)
 * Every selector below starts at .kl or body.koach-light, and every class is kl-prefixed
 * (0 collisions measured S330 across koach-dashboards, koach-nutrition, mu-plugins koach-*).
 * The S149 layer in koach-app-pages.php (--c-*, .kap-*) is NOT touched and keeps serving
 * every page that has not opted in.
 *
 * Loaded on the app pages (koach_is_app_page()) by koach_light_enqueue() in koach-app-pages.php.
 * ASCII only. Lowercase koach.
 */

/* ------------------------------------------------------------------------------------------
   0. TOKENS (standard s.2, inventory s.4)
   ------------------------------------------------------------------------------------------ */
/* S332-B3: EVERY TOKEN NOW LIVES IN assets/css/koach-tokens.css (loaded before this file, on :root). Change a colour,
   line, size or space there; this file reads var(--kl-*) and must not hard-code values. The S331 values that were
   here are recorded in koach-tokens.css comments and the S332 manifest (R1-R3 changed control edges, row lines,
   control fill, the band and status colours). */

/* ------------------------------------------------------------------------------------------
   1. PAGE (s.1.2) -- whole-page opt-in paints the light canvas over the shell's
      #F8FAFC / #161B24 (koach-dashboards.php koach_app_shell_offset_css): two body classes
      out-rank its one, both carry !important.
   ------------------------------------------------------------------------------------------ */
body.koach-app-page.koach-light,
body.koach-app-page.koach-light #wrapper,
body.koach-app-page.koach-light #boxed-wrapper,
body.koach-app-page.koach-light #main { background: var(--kl-page) !important; }
@media (max-width: 820px) {
  body.koach-app-page.koach-light,
  body.koach-app-page.koach-light #wrapper,
  body.koach-app-page.koach-light #boxed-wrapper,
  body.koach-app-page.koach-light #main { background: var(--kl-page) !important; }
}

.kl, body.koach-light .kl-page {
  font-family: var(--kl-font);
  color: var(--kl-ink);
  font-size: 15px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
.kl *, .kl *::before, .kl *::after { box-sizing: border-box; }
.kl input, .kl textarea, .kl select, .kl button { font-family: var(--kl-font); }
.kl a { color: var(--kl-red); }
.kl a:hover, .kl a:focus-visible { color: var(--kl-red-press); }
.kl :focus-visible { outline: 2px solid var(--kl-red); outline-offset: 2px; }

/* The body of a restyled page: white, full width, no boxed cards, 20px sides (s.1.2) */
.kl .kl-body, .kl.kl-body { background: var(--kl-page); padding: 0 var(--kl-side); }

/* ------------------------------------------------------------------------------------------
   2. TITLES AND SECTIONS (s.1.3, s.1.4) -- wrapper-prefixed so Avada's heading set
      (Bebas leak on bare h tags) and .post-content p never win (primitives P2 rule).
   ------------------------------------------------------------------------------------------ */
.kl .kl-title {
  font-family: var(--kl-title-font);
  font-size: 40px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  color: var(--kl-ink);
  margin: 0;
}
.kl .kl-context { margin: 8px 0 0; font-family: var(--kl-font); font-size: 15px; color: var(--kl-ink2); }
.kl .kl-context b, .kl .kl-phase-name { color: var(--kl-phase-tx); font-weight: 700; }
.kl .kl-progress { margin-top: 10px; height: 6px; border-radius: 999px; background: var(--kl-ctrl); overflow: hidden; }
.kl .kl-progress > span { display: block; height: 6px; border-radius: 999px; background: var(--kl-phase); }

.kl .kl-section { border-top: 1px solid var(--kl-line-section); padding: var(--kl-section) 0; }
.kl .kl-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.kl .kl-h2 {
  font-family: var(--kl-font);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0;
  text-transform: none;
  color: var(--kl-ink);
  margin: 0;
}
.kl .kl-h3 { font-family: var(--kl-font); font-size: 17px; font-weight: 700; line-height: 1.3; letter-spacing: 0; text-transform: none; color: var(--kl-ink); margin: 0; }
.kl .kl-sub { margin: 2px 0 0; font-size: 14px; color: var(--kl-ink2); }
.kl .kl-hint { margin: 6px 0 0; font-size: 13px; color: var(--kl-ink2); }
.kl p.kl-text, .kl .kl-text { margin: 0; font-size: 15px; line-height: 1.5; color: var(--kl-ink); }
.kl .kl-small-caps { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--kl-ink2); }

/* status words: small text only (s.2.2) */
.kl .kl-ok { color: var(--kl-ok); }
.kl .kl-attn { color: var(--kl-attn); }
.kl .kl-quiet { color: var(--kl-quiet); }

/* ------------------------------------------------------------------------------------------
   3. BUTTONS AND CONTROLS (s.3) -- three levels, no black buttons, 44px floor
   ------------------------------------------------------------------------------------------ */
.kl .kl-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: var(--kl-h-tap);
  padding: 0 16px;
  border-radius: var(--kl-r-btn);
  font-family: var(--kl-font);
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  text-transform: none;
  letter-spacing: 0;
  cursor: pointer;
  white-space: normal;            /* French: grow and wrap, never cut (s.8) */
  -webkit-tap-highlight-color: transparent;
}
.kl .kl-btn--block { display: flex; width: 100%; }

/* Primary: ONE per screen (Start workout, Finish workout) */
.kl .kl-btn--primary {
  min-height: var(--kl-h-primary);
  background: var(--kl-red); color: #FFFFFF;
  border: 0;
  font-size: 17px; font-weight: 700;
  box-shadow: var(--kl-sh-primary);
}
.kl .kl-btn--primary:hover, .kl .kl-btn--primary:active { background: var(--kl-red-press); color: #FFFFFF; }

/* Secondary: soft grey with a thin outline */
.kl .kl-btn--secondary {
  min-height: var(--kl-h-secondary);
  background: var(--kl-ctrl-bg); color: var(--kl-ink);
  border: var(--kl-w-ctrl) solid var(--kl-line-ctrl);
  font-size: 16px; font-weight: 600;
}
.kl .kl-btn--secondary:hover { background: #E6E9EE; color: var(--kl-ink); }
.kl .kl-btn--secondary.kl-btn--compact { min-height: var(--kl-h-tap); font-size: 15px; } /* row-end action, board "Fill It In" */

/* Tertiary: red text link with a 44px tap area */
.kl .kl-link {
  display: inline-flex; align-items: center;
  min-height: var(--kl-h-tap);
  padding: 0;
  background: none; border: 0;
  color: var(--kl-red);
  font-family: var(--kl-font); font-size: 15px; font-weight: 600;
  text-decoration: none; cursor: pointer;
}
.kl .kl-link:hover { color: var(--kl-red-press); }

/* Inactive: shown, never hidden, never red; the helper line says when it opens (s.3) */
.kl .kl-btn[disabled], .kl .kl-btn[aria-disabled="true"], .kl .kl-btn--inactive {
  background: var(--kl-soft); color: var(--kl-inactive);
  border: 1px solid var(--kl-line-role);
  box-shadow: none; cursor: default;
}
.kl .kl-btn-help { margin: 6px 0 0; font-size: 13px; color: var(--kl-ink2); text-align: center; }

/* Icon button (week arrows) */
.kl .kl-ibtn {
  width: var(--kl-h-tap); height: var(--kl-h-tap);
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--kl-r-field);
  background: var(--kl-ctrl-bg); border: var(--kl-w-ctrl) solid var(--kl-line-ctrl);
  color: var(--kl-ink); cursor: pointer; padding: 0;
}
.kl .kl-ibtn svg { width: 18px; height: 18px; }

/* Chip: Swap exercise, Add weight (44px wins over the v5 board's 36px -- inventory s.4) */
.kl .kl-chip {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: var(--kl-h-tap); padding: 0 14px;
  border-radius: 999px;
  background: var(--kl-ctrl-bg); border: var(--kl-w-ctrl) solid var(--kl-line-ctrl);
  color: var(--kl-ink);
  font-family: var(--kl-font); font-size: 14px; font-weight: 600;
  cursor: pointer; text-decoration: none;
}

/* Choice: segmented track; selected = white with a soft shadow */
.kl .kl-seg {
  display: flex; gap: 2px; padding: 3px;
  background: var(--kl-ctrl); border: 1px solid var(--kl-line-ctrl);
  border-radius: var(--kl-r-btn);
}
.kl .kl-seg > button, .kl .kl-seg > label, .kl .kl-seg > a {
  flex: 1 1 0; min-height: calc(var(--kl-h-tap) - 6px);
  display: inline-flex; align-items: center; justify-content: center;
  border: 0; border-radius: var(--kl-r-seg);
  background: transparent; color: var(--kl-ink2);
  font-family: var(--kl-font); font-size: 15px; font-weight: 600;
  text-decoration: none; cursor: pointer; padding: 0 10px;
}
.kl .kl-seg > .is-selected, .kl .kl-seg > [aria-pressed="true"], .kl .kl-seg > [aria-checked="true"] {
  background: #FFFFFF; color: var(--kl-ink); box-shadow: var(--kl-sh-seg);
}

/* Option list: one 48px row per answer, round marker; selected = 2px red outline + red marker */
.kl .kl-options { display: flex; flex-direction: column; gap: 8px; }
.kl .kl-option {
  display: flex; align-items: center; gap: 12px;
  min-height: var(--kl-h-secondary); padding: 0 14px;
  border: 1px solid var(--kl-line-ctrl); border-radius: var(--kl-r-field);
  background: #FFFFFF; color: var(--kl-ink);
  font-size: 15px; cursor: pointer;
}
.kl .kl-option::before {
  content: ""; flex: 0 0 auto;
  width: 18px; height: 18px; border-radius: 50%;
  border: 2px solid var(--kl-inactive); background: #FFFFFF;
}
.kl .kl-option.is-selected, .kl .kl-option[aria-checked="true"] { border: 2px solid var(--kl-red); padding: 0 13px; }
.kl .kl-option.is-selected::before, .kl .kl-option[aria-checked="true"]::before {
  border-color: var(--kl-red); background: var(--kl-red); box-shadow: inset 0 0 0 3px #FFFFFF;
}

/* Number row: 44px squares; selected = WHITE + 2px red outline + red bold number (never black) */
.kl .kl-numrow { display: flex; flex-wrap: wrap; gap: 6px; }
.kl .kl-num {
  width: var(--kl-h-tap); height: var(--kl-h-tap);
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 10px;
  background: var(--kl-ctrl-bg); border: var(--kl-w-ctrl) solid var(--kl-line-ctrl);
  color: var(--kl-ink); font-family: var(--kl-font); font-size: 16px; font-weight: 600;
  cursor: pointer; padding: 0;
}
.kl .kl-num.is-selected, .kl .kl-num[aria-pressed="true"], .kl .kl-num[aria-checked="true"] {
  background: #FFFFFF; border: 2px solid var(--kl-red); color: var(--kl-red); font-weight: 700;
}
.kl .kl-numrow-ends { display: flex; justify-content: space-between; margin-top: 4px; font-size: 13px; color: var(--kl-ink2); }

/* ------------------------------------------------------------------------------------------
   4. ROWS AND EXERCISES (s.4)
   ------------------------------------------------------------------------------------------ */
.kl .kl-rows { margin: 8px 0 0; padding: 0; list-style: none; }
.kl .kl-row {
  display: flex; align-items: center; gap: 14px;
  min-height: var(--kl-h-tap); padding: 11px 0;
  border-bottom: 1px solid var(--kl-line-row);
  font-size: 15px; color: var(--kl-ink);
}
.kl .kl-row:last-child { border-bottom: 0; }
.kl .kl-row-label { flex: 0 0 auto; font-weight: 700; color: var(--kl-ink2); }
.kl .kl-row-main { flex: 1 1 auto; min-width: 0; }
.kl .kl-row-end { flex: 0 0 auto; margin-left: auto; text-align: right; }
.kl .kl-row.is-quiet, .kl .kl-row.is-quiet .kl-row-label { color: var(--kl-quiet); }
.kl .kl-row.is-today .kl-row-label { color: var(--kl-red); }

/* Exercise row, closed (s.4.2) */
.kl .kl-ex { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--kl-line-row); }
.kl .kl-ex-pic {
  flex: 0 0 auto; width: 52px; height: 52px;
  border-radius: var(--kl-r-field); border: 1px solid var(--kl-line-bar);
  background: var(--kl-pic); object-fit: contain;
  display: inline-flex; align-items: center; justify-content: center; color: var(--kl-ink2);
}
.kl .kl-ex-pic--none { background: var(--kl-soft); }
.kl .kl-ex-name { font-size: 16px; font-weight: 600; color: var(--kl-ink); line-height: 1.3; }
.kl .kl-ex-line { margin-top: 2px; font-size: 14px; color: var(--kl-ink2); }
.kl .kl-ex-progress { margin-left: auto; font-size: 14px; font-weight: 600; color: var(--kl-ink2); }

/* Exercise open (s.4.4) */
.kl .kl-ex-open { background: var(--kl-open); }
.kl .kl-ex-hero {
  position: relative; width: 100%; aspect-ratio: 16 / 8;
  border-radius: var(--kl-r-field); border: 1px solid var(--kl-line-bar);
  background: var(--kl-pic); overflow: hidden;
}
.kl .kl-ex-hero img, .kl .kl-ex-hero video { width: 100%; height: 100%; object-fit: contain; display: block; }
.kl .kl-ex-open-name { font-size: 19px; font-weight: 700; color: var(--kl-ink); line-height: 1.3; }
.kl .kl-set-cols { display: grid; gap: 8px; align-items: end; }
.kl .kl-set-label { font-size: 13px; font-weight: 600; color: var(--kl-ink2); }

/* canfitpro role heading (s.4.3): names never removed or renamed (D595) */
.kl .kl-role { border-top: 1px solid var(--kl-line-role); padding-top: var(--kl-role-gap); margin-top: var(--kl-role-gap); }
.kl .kl-role-name { display: flex; align-items: center; gap: 8px; font-size: 17px; font-weight: 700; color: var(--kl-ink); margin: 0; }
.kl .kl-role-name::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--kl-role, var(--kl-line-role)); flex: 0 0 auto; }
.kl .kl-role-desc { margin: 2px 0 0; font-size: 14px; color: var(--kl-ink2); }
.kl .kl-role--mobility     { --kl-role: var(--kl-role-mobility); }
.kl .kl-role--stability    { --kl-role: var(--kl-role-stability); }
.kl .kl-role--main         { --kl-role: var(--kl-role-main); }
.kl .kl-role--supplemental { --kl-role: var(--kl-role-supplemental); }
.kl .kl-role--accessory    { --kl-role: var(--kl-role-accessory); }
.kl .kl-role--finish       { --kl-role: var(--kl-role-finish); }

/* phase / role dot (10px) */
.kl .kl-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--kl-dot, var(--kl-phase)); vertical-align: middle; }

/* ------------------------------------------------------------------------------------------
   5. THE KOACH BUBBLE (s.5)
   ------------------------------------------------------------------------------------------ */
.kl .kl-bubble {
  padding: 12px 14px;
  border-radius: 4px 16px 16px 16px;
  background: var(--kl-soft); border: 1px solid var(--kl-line-bubble);
}
.kl .kl-bubble-head { display: flex; align-items: center; gap: 8px; }
.kl .kl-bubble-from { font-size: 13px; font-weight: 700; color: var(--kl-ink2); }
.kl .kl-bubble-msg { margin: 6px 0 0; font-size: 15px; line-height: 1.5; color: var(--kl-ink); }

/* ------------------------------------------------------------------------------------------
   6. AVATARS (s.6; amends avatar-standard v1 for light surfaces)
   ------------------------------------------------------------------------------------------ */
.kl .kl-av {
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%; flex: 0 0 auto;
  font-family: var(--kl-font); font-weight: 700; line-height: 1;
}
.kl .kl-av-1 { color: var(--kl-red); }
/* on a white surface: white fill, var(--kl-line-ctrl) outline, red first initial, ink second */
.kl .kl-av--light { width: 26px; height: 26px; font-size: 11px; background: #FFFFFF; border: 1px solid var(--kl-line-ctrl); }
.kl .kl-av--light .kl-av-2 { color: var(--kl-ink); }
/* on the dark top bar: #2C323C, red first initial, white second */
.kl .kl-av--dark { width: 36px; height: 36px; font-size: 14px; font-weight: 600; background: var(--kl-av-dark); border: 1.5px solid rgba(255,255,255,.10); }
.kl .kl-av--dark .kl-av-2 { color: #FFFFFF; }

/* ------------------------------------------------------------------------------------------
   7. FORMS (s.7)
   ------------------------------------------------------------------------------------------ */
.kl .kl-field-wrap { display: flex; flex-direction: column; gap: 6px; }
.kl .kl-label { font-size: 14px; font-weight: 600; color: var(--kl-ink); }
.kl .kl-field {
  width: 100%; min-height: var(--kl-h-secondary); height: auto;
  padding: 10px 14px;
  border: 1px solid var(--kl-line-ctrl); border-radius: var(--kl-r-field);
  background: #FFFFFF; color: var(--kl-ink);
  font-family: var(--kl-font); font-size: 17px; line-height: 1.3;
  box-shadow: none;
}
.kl .kl-field::placeholder { color: var(--kl-placeholder); }
.kl .kl-field:focus { border-color: var(--kl-red); box-shadow: 0 0 0 3px rgba(192,22,28,.12); outline: none; }
.kl textarea.kl-field { min-height: 96px; resize: vertical; line-height: 1.5; font-size: 16px; }
@media (max-width: 820px) {
  /* Avada's --form_input_height math: height beats min-height on native controls (P7 DELTA-8) */
  .kl input.kl-field, .kl select.kl-field { height: var(--kl-h-secondary); }
}

/* bottom sheet (Edit setup) */
.kl .kl-sheet {
  background: #FFFFFF; border-radius: 22px 22px 0 0;
  box-shadow: var(--kl-sh-float); padding: 12px var(--kl-side) 24px;
}

/* ------------------------------------------------------------------------------------------
   8. STATES (s.8)
   ------------------------------------------------------------------------------------------ */
.kl .kl-empty { text-align: center; padding: 32px 16px; }
.kl .kl-empty-ic {
  width: 56px; height: 56px; margin: 0 auto 12px;
  border-radius: 50%; background: var(--kl-soft); color: var(--kl-ink2);
  display: flex; align-items: center; justify-content: center;
}
.kl .kl-empty-title { font-size: 17px; font-weight: 700; color: var(--kl-ink); margin: 0; }
.kl .kl-empty-text { margin: 4px 0 16px; font-size: 15px; color: var(--kl-ink2); }

.kl .kl-note { padding: 12px 14px; border-radius: var(--kl-r-field); font-size: 15px; line-height: 1.45; color: var(--kl-ink); }
.kl .kl-note--offline { background: var(--kl-offline-bg); border: 1px solid var(--kl-offline-line); }
.kl .kl-note--error { background: var(--kl-error-bg); border: 1px solid var(--kl-error-line); }
.kl .kl-saved { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--kl-ok); }

.kl .kl-skel {
  border-radius: 8px;
  background: linear-gradient(90deg, #EEF0F3 25%, #F5F6F8 37%, #EEF0F3 63%);
  background-size: 400% 100%;
  animation: kl-shimmer 1.3s ease infinite;
}
@keyframes kl-shimmer { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }
@media (prefers-reduced-motion: reduce) { .kl .kl-skel { animation: none; } }

/* ------------------------------------------------------------------------------------------
   9. FLOATING CHAT BUTTON (s.1.6) -- placement is the page's job; this is the look
   ------------------------------------------------------------------------------------------ */
.kl .kl-chat {
  width: 52px; height: 52px; border-radius: 50%;
  background: #FFFFFF; border: 1px solid var(--kl-line-bar);
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--kl-sh-float); color: var(--kl-red);
}

/* ------------------------------------------------------------------------------------------
   10. SMALL HELPERS USED BY THE RESTYLED PAGES
   ------------------------------------------------------------------------------------------ */
.kl .kl-gap { margin-top: 12px; }
.kl .kl-gap-lg { margin-top: 16px; }
.kl .kl-strong { font-weight: 600; color: var(--kl-ink); }
.kl .kl-block { display: block; }
.kl .kl-center { align-items: center; }
.kl .kl-status { font-size: 14px; font-weight: 600; }
.kl .kl-link--strong { font-weight: 700; }
.kl .kl-section--first { border-top: 0; padding-top: 0; }

/* ------------------------------------------------------------------------------------------
   11. MEMBER DASHBOARD -- TRAINING TAB (board A7-Training; views/member-dashboard-training-light.php)
   ------------------------------------------------------------------------------------------ */
.kl.kl-training { padding: 0; }
.kl .kl-intro { padding: 0 0 22px; }
.kl .kl-today { margin-top: 12px; display: flex; gap: 12px; align-items: center; }
.kl .kl-today-pic {
  flex: 0 0 auto; width: 64px; height: 64px;
  border-radius: var(--kl-r-field); border: 1px solid var(--kl-line-bar);
  background: var(--kl-soft); color: var(--kl-ink2);
  display: inline-flex; align-items: center; justify-content: center;
}
.kl .kl-today-name { font-size: 18px; font-weight: 700; color: var(--kl-ink); line-height: 1.3; }
.kl .kl-week-nav { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.kl .kl-week-nav .kl-link { margin-right: 4px; }
.kl .kl-day { width: 36px; }
.kl .kl-date { width: 52px; }
.kl .kl-week-item { display: block; }
.kl .kl-week-item + .kl-week-item { margin-top: 6px; }
.kl .kl-row-act { min-height: 0; margin-left: 8px; }
.kl .kl-row .kl-row-main .kl-link:not(.kl-row-act) { min-height: 0; }

/* Bridging rules: the dashboard's own page title, when the whole page is light (body.koach-light).
   The light look reaches clients only through koach_light_on() (D603). */
body.koach-light .kmd-pgtitle {
  font-family: var(--kl-title-font) !important;
  font-size: 40px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  color: var(--kl-ink) !important;
}

/* ------------------------------------------------------------------------------------------
   12. THE LIGHT APP SHELL ON THE PHONE (standard s.1.1, 1.5, 1.7; boards A7-Training, A7-More)
       body.koach-light-shell = a CLIENT viewer with the light look on (koach_light_shell_on()).
       The shell's own <style> sits in <body> after this sheet, so every rule here carries the
       #kns-shell id (or two body classes) to out-rank it rather than relying on order.
   ------------------------------------------------------------------------------------------ */
/* S332-B4: the shell's own token copy was removed -- it reads the :root tokens in koach-tokens.css like every page. */
@media (max-width: 820px) {
  /* top bar: dark brand bar, 56px */
  body.koach-light-shell #kns-shell .kns-mtop {
    height: calc(56px + env(safe-area-inset-top, 0px));
    background: #161B24; backdrop-filter: none; -webkit-backdrop-filter: none;
    padding-left: 16px; padding-right: 16px;
  }
  body.koach-light-shell #kns-shell .kns-mlogo img { height: 24px; }
  body.koach-light-shell #kns-shell .kns-mav { width: 36px; height: 36px; font-size: 14px; }

  /* bottom bar: white, 72px, four labelled tabs, active = brand red */
  body.koach-light-shell #kns-shell .kns-tabbar {
    background: #FFFFFF; border-top: 1px solid var(--kl-line-bar);
    min-height: calc(72px + env(safe-area-inset-bottom, 0px));
  }
  body.koach-light-shell #kns-shell .kns-tab { height: 72px; color: var(--kl-ink2); gap: 4px; }
  body.koach-light-shell #kns-shell .kns-tab .kns-ic { width: 22px; height: 22px; }
  body.koach-light-shell #kns-shell .kns-tab .kns-tlbl { font-size: 12px; font-weight: 500; letter-spacing: 0; }
  body.koach-light-shell #kns-shell .kns-tab.is-active,
  body.koach-light-shell #kns-shell #kns-more-btn[aria-expanded="true"] { color: var(--kl-red); }
  body.koach-light-shell #kns-shell .kns-tab.is-active .kns-tlbl,
  body.koach-light-shell #kns-shell #kns-more-btn[aria-expanded="true"] .kns-tlbl { font-weight: 700; }
  body.koach-light-shell #kns-shell .kns-tab:focus-visible { outline: 2px solid var(--kl-red); outline-offset: -2px; }

  /* content offset under the 56px top bar and above the 72px bottom bar */
  body.koach-app-page.koach-light-shell #main {
    padding-top: calc(56px + env(safe-area-inset-top, 0px)) !important;
    padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important;
  }

  /* More: a white screen between the two bars (the bar stays visible, More turns red) */
  body.koach-light-shell #kns-shell .kns-sheet-scrim { display: none; }
  body.koach-light-shell #kns-shell .kns-sheet.kns-sheet--light {
    top: calc(56px + env(safe-area-inset-top, 0px));
    bottom: calc(72px + env(safe-area-inset-bottom, 0px));
    left: 0; right: 0;
    background: #FFFFFF; border: 0; border-radius: 0; box-shadow: none;
    padding: 0; overflow-y: auto; -webkit-overflow-scrolling: touch;
    max-height: none; /* walk 2: the shell's .kns-sheet max-height:80vh stopped the screen ~40px above the bar */
    z-index: 99989;
  }
  body.koach-light-shell #kns-shell .kns-sheet--light .kns-sheet-close {
    top: 20px; right: 16px; width: 44px; height: 44px; border-radius: 12px;
    background: var(--kl-ctrl-bg); border: var(--kl-w-ctrl) solid var(--kl-line-ctrl); color: var(--kl-ink);
  }
}
body.koach-light-shell #kns-shell .kns-sheet--light .kl-more-head { padding: 24px 20px 20px; }
body.koach-light-shell #kns-shell .kns-sheet--light .kl-more-sec { padding: 20px 20px 8px; }
body.koach-light-shell #kns-shell .kns-sheet--light .kl-more-row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  width: 100%; min-height: 52px; padding: 6px 0; margin: 0;
  background: none; border: 0; border-bottom: 1px solid var(--kl-line-row); border-radius: 0;
  color: var(--kl-ink) !important; text-align: left; text-transform: none; letter-spacing: 0;
  font-family: 'DM Sans', system-ui, sans-serif; font-size: 16px; font-weight: 400; cursor: pointer;
}
body.koach-light-shell #kns-shell .kns-sheet--light .kl-more-row[aria-current="page"] .kl-more-lbl { color: var(--kl-red); font-weight: 600; }
body.koach-light-shell #kns-shell .kns-sheet--light .kl-more-lbl { display: block; font-size: 16px; }
body.koach-light-shell #kns-shell .kns-sheet--light .kl-more-chev { width: 16px; height: 16px; color: #6B7280; flex: 0 0 auto; }
body.koach-light-shell #kns-shell .kns-sheet--light .kl-seg .kns-uom-btn { min-height: 42px; color: var(--kl-ink2); background: transparent; font-size: 15px; }
body.koach-light-shell #kns-shell .kns-sheet--light .kl-seg .kns-uom-btn.is-on { background: #FFFFFF; color: var(--kl-ink); font-weight: 700; box-shadow: 0 1px 3px rgba(16,24,40,.14); }
body.koach-light-shell #kns-shell .kns-sheet--light .kl-more-out { padding: 12px 20px 32px; }
body.koach-light-shell #kns-shell .kns-sheet--light .kl-more-logout {
  display: flex; align-items: center; min-height: 48px;
  font-family: 'DM Sans', system-ui, sans-serif; font-size: 16px; font-weight: 700; color: var(--kl-red) !important;
}

/* S330 walk fixes (koach-s330-walk report, 2026-10-16 ~10:00 local):
   (1) the closed More screen peeked above the bottom bar -> hidden until opened;
   (2) Training stayed red while More was open -> only More is red while it is open;
   (3) the beta feedback bubble (koach-beta-feedback.php, kept as the chat button, owner 10:15) takes the
       standard's chat-button look (s.1.6) and sits above the bar; the page gets room to scroll past it;
   (4) the cookie banner covered the bottom bar -> it sits above the bar (audit item D, D589). */
@media (max-width: 820px) {
  body.koach-light-shell #kns-shell .kns-sheet.kns-sheet--light { transform: translateY(calc(100% + 96px)); visibility: hidden; transition: transform .2s ease, visibility 0s linear .2s; }
  body.koach-light-shell #kns-shell .kns-sheet.kns-sheet--light.kns-open { transform: translateY(0); visibility: visible; transition: transform .2s ease, visibility 0s; }
  body.koach-light-shell #kns-shell .kns-tabbar:has(#kns-more-btn[aria-expanded="true"]) .kns-tab.is-active { color: var(--kl-ink2); }
  body.koach-light-shell #kns-shell .kns-tabbar:has(#kns-more-btn[aria-expanded="true"]) .kns-tab.is-active .kns-tlbl { font-weight: 500; }
  body.koach-light-shell .kbf-pill {
    bottom: calc(72px + 16px + env(safe-area-inset-bottom, 0px)) !important; right: 16px !important;
    width: 52px !important; height: 52px !important; padding: 0 !important; border-radius: 50% !important;
    background: #FFFFFF !important; color: #C0161C !important; border: 1px solid var(--kl-line-bar) !important;
    box-shadow: 0 6px 16px rgba(16,24,40,.16) !important;
  }
  body.koach-light-shell .kbf-pill .kbf-pill-txt { display: none !important; }
  /* walk 2: the icon is drawn with stroke="#fff" in koach-beta-feedback.php -> white on the white circle */
  body.koach-light-shell .kbf-pill svg { width: 22px !important; height: 22px !important; }
  body.koach-light-shell .kbf-pill svg path { stroke: #C0161C !important; }
  body.koach-light-shell .kbf-panel { bottom: calc(72px + 16px + env(safe-area-inset-bottom, 0px)) !important; }
  body.koach-light-shell .cmplz-cookiebanner { bottom: calc(72px + 8px + env(safe-area-inset-bottom, 0px)) !important; }
  .kl.kl-training { padding-bottom: 84px; }
}

/* The member dashboard's own tab switcher is replaced on the phone by the bottom bar and More
   (every tab stays reachable there: Training, Journal in the bar; My Plan, Schedule, Weekly Check-In,
   Progress, Milestones, Assessment in More). Desktop keeps it until its own layout is drawn. */
@media (max-width: 820px) {
  body.koach-light-shell .kmd-tab-dd,
  body.koach-light-shell .kmd-tabs { display: none !important; }
}

/* ------------------------------------------------------------------------------------------
   13. MEMBER DASHBOARD -- JOURNAL AND CHECK-IN TABS (boards A7-Journal, A7-CheckInTab;
       views/member-dashboard-journal-light.php, views/member-dashboard-checkin-light.php)
   ------------------------------------------------------------------------------------------ */
.kl.kl-journal, .kl.kl-checkin { padding: 0 0 84px; }
.kl button.kl-link { background: none; border: 0; padding: 0 8px; cursor: pointer; font-family: var(--kl-font); }
.kl .klj-unit-row { display: flex; align-items: center; gap: 10px; }
.kl .klj-unit { font-size: 15px; color: var(--kl-ink2); }
.kl input.kl-field.klj-w-num { width: 140px; flex: 0 0 140px; }
.kl input.kl-field.klj-w-date { width: 180px; max-width: 100%; }
.kl .klj-hide { display: none !important; }
.kl .kl-numrow.klj-numrow { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.kl .klj-numrow .kl-num { width: 100%; border-radius: 12px; }
.kl .klj-save { margin-top: 18px; }
.kl .klj-feedback { margin: 6px 0 0; min-height: 0; font-size: 14px; font-weight: 600; color: var(--kl-ok); text-align: center; }
.kl .klj-feedback:empty { display: none; }
.kl .klj-feedback.kmd-jf-error { color: var(--kl-red); }
.kl .klj-entry { padding: 14px 0; border-bottom: 1px solid var(--kl-line-row); }
.kl .klj-entry:last-child { border-bottom: 0; }
.kl .klj-entry-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.kl .klj-entry-date { font-size: 15px; font-weight: 700; color: var(--kl-ink); }
.kl .klj-entry-acts { display: flex; align-items: center; gap: 4px; }
.kl .klj-del { width: 44px; height: 44px; border: 0; background: transparent; display: inline-flex; align-items: center; justify-content: center; color: var(--kl-red-press); cursor: pointer; padding: 0; }
.kl .klj-chips { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 6px; }
.kl .klj-chip { font-size: 14px; padding: 4px 10px; border-radius: 999px; background: var(--kl-soft); border: 1px solid var(--kl-line-bubble); color: var(--kl-ink); }
.kl .klj-note { margin-top: 8px; font-size: 15px; }
.kl .klj-feed .kmd-sparkline { margin-top: 4px; }
.kl .kl-row-end .kmd-sparkline { margin: 4px 0 0 auto; }
.kl .klc-submit { padding: 0 0 22px; }
.kl .klc-date { margin: 6px 0 0; font-size: 15px; }
.kl .klc-pain { margin-top: 10px; background: var(--kl-offline-bg); border: 1px solid var(--kl-offline-line); }
.kl .klc-lbl { color: var(--kl-ink2); font-weight: 400; }

/* ------------------------------------------------------------------------------------------
   14. PROGRAM CARD (boards A7-ProgramCard + A7-Setup; koach-program-card.php, root .kpc-light).
       The card keeps its own markup and script; these rules restyle it. P = the scope prefix.
   ------------------------------------------------------------------------------------------ */
body.koach-light .koach-program-card.kpc-light { background: transparent; color: var(--kl-ink); font-family: var(--kl-font); }
body.koach-light .koach-program-card.kpc-light .kpc-section-eyebrow,
body.koach-light .koach-program-card.kpc-light .kpc-grouping-code,
body.koach-light .koach-program-card.kpc-light .kpc-type-badge,
body.koach-light .koach-program-card.kpc-light .kpc-hd-target,
body.koach-light .koach-program-card.kpc-light .kpc-swap-mark,
body.koach-light .koach-program-card.kpc-light .kpc-acc-chev,
body.koach-light .koach-program-card.kpc-light .kpc-rx { display: none !important; }

/* header */
body.koach-light .koach-program-card.kpc-light .kpcl-head { padding: 0 0 20px; }
body.koach-light .koach-program-card.kpc-light .kpcl-head .kl-context { margin: 0; font-size: 14px; }
body.koach-light .koach-program-card.kpc-light .kpcl-title { margin: 4px 0 0; }
body.koach-light .koach-program-card.kpc-light .kpcl-client { margin: 0 0 6px; }
body.koach-light .koach-program-card.kpc-light .kpcl-done-tag { margin: 6px 0 0; }
body.koach-light .koach-program-card.kpc-light .kpcl-head-links { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 6px; }
body.koach-light .koach-program-card.kpc-light .kpcl-head-links .kl-link { min-height: 36px; font-size: 14px; }

/* today's setup summary */
body.koach-light .koach-program-card.kpc-light .kpcl-setup { border: 1px solid var(--kl-line-ctrl); border-radius: 14px; padding: 12px 14px; margin: 0 0 22px; background: #FFFFFF; }
body.koach-light .koach-program-card.kpc-light .kpcl-setup-head { display: flex; align-items: center; justify-content: space-between; }
body.koach-light .koach-program-card.kpc-light .kpcl-setup-title { margin: 0; font-family: var(--kl-font); font-size: 15px; font-weight: 700; color: var(--kl-ink); letter-spacing: 0; text-transform: none; }
body.koach-light .koach-program-card.kpc-light button.kpcl-edit { padding: 8px 0; }
body.koach-light .koach-program-card.kpc-light .kpcl-setup-grid { margin: 6px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; }
body.koach-light .koach-program-card.kpc-light .kpcl-setup-grid dt { font-size: 13px; font-weight: 400; color: var(--kl-ink2); margin: 0; }
body.koach-light .koach-program-card.kpc-light .kpcl-setup-grid dd { margin: 2px 0 0; font-size: 15px; font-weight: 600; color: var(--kl-ink); }
body.koach-light .koach-program-card.kpc-light .kpcl-setup-grid dd.kl-attn { color: var(--kl-attn); }

/* the setup sheet */
body.kpcl-sheet-open { overflow: hidden; }
body.koach-light .koach-program-card.kpc-light .kpcl-scrim { position: fixed; inset: 0; background: rgba(13,17,25,.45); z-index: 100000; }
body.koach-light .koach-program-card.kpc-light .kpcl-scrim[hidden], body.koach-light .koach-program-card.kpc-light .kpcl-sheet[hidden] { display: none !important; }
body.koach-light .koach-program-card.kpc-light .kpcl-sheet {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 100001; max-height: 88vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
  padding: 10px 20px calc(24px + env(safe-area-inset-bottom, 0px)); margin: 0 auto; max-width: 640px;
}
body.koach-light .koach-program-card.kpc-light .kpcl-grab { width: 40px; height: 4px; border-radius: 999px; background: var(--kl-line-ctrl); margin: 0 auto; }
body.koach-light .koach-program-card.kpc-light .kpcl-sheet-head { margin-top: 14px; display: flex; align-items: center; justify-content: space-between; }
body.koach-light .koach-program-card.kpc-light .kpcl-sheet .kl-label { margin: 0; }
body.koach-light .koach-program-card.kpc-light .kpcl-quiet { font-weight: 400; color: var(--kl-ink2); }
body.koach-light .koach-program-card.kpc-light input.kl-field.kpcl-w-date { max-width: 220px; }
body.koach-light .koach-program-card.kpc-light .kl-seg .kpc-mode-btn {
  flex: 1 1 0; min-height: 42px; border: 0 !important; border-radius: 11px; background: transparent !important; box-shadow: none;
  font-family: var(--kl-font) !important; font-size: 15px; font-weight: 600; color: var(--kl-ink2) !important; padding: 0 6px; cursor: pointer;
}
body.koach-light .koach-program-card.kpc-light .kl-seg .kpc-mode-btn.is-active { background: #FFFFFF !important; color: var(--kl-ink) !important; font-weight: 700; box-shadow: 0 1px 3px rgba(16,24,40,.14); }
body.koach-light .koach-program-card.kpc-light .kpcl-partner { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
body.koach-light .koach-program-card.kpc-light .kpcl-partner .kpc-partner-btn.is-active { background: #FFFFFF; border: 2px solid var(--kl-red); color: var(--kl-red); }
body.koach-light .koach-program-card.kpc-light .kpc-equip-list { display: flex; flex-wrap: wrap; gap: 8px 14px; margin: 6px 0 10px; }
body.koach-light .koach-program-card.kpc-light .kpc-equip-opt { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 15px; }
body.koach-light .koach-program-card.kpc-light .kpc-equip-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }

/* exercises heading, logging hint, role headings */
body.koach-light .koach-program-card.kpc-light .kpcl-ex-head { padding-bottom: 0; }
body.koach-light .koach-program-card.kpc-light .kpc-log-hint { margin: 8px 0 0; padding: 0; background: none; border: 0; font-size: 13px; line-height: 1.5; color: var(--kl-ink2); }
body.koach-light .koach-program-card.kpc-light .kpcl-role { margin-top: 28px; padding-top: 22px; padding-bottom: 6px; }
body.koach-light .koach-program-card.kpc-light .kpc-log-hint + .kpcl-role { margin-top: 12px; padding-top: 12px; border-top: 0; }
body.koach-light .koach-program-card.kpc-light .kl-role-desc { padding-left: 18px; }

/* exercise rows (closed) */
body.koach-light .koach-program-card.kpc-light .kpc-station {
  background: transparent; border: 0; border-bottom: 1px solid var(--kl-line-row); border-left: 0; border-radius: 0; box-shadow: none; margin: 0;
}
body.koach-light .koach-program-card.kpc-light .kpc-card-hd { flex-direction: row !important; align-items: center; gap: 12px; padding: 12px 0; background: transparent; border-bottom: 0 !important; }
body.koach-light .koach-program-card.kpc-light .kpc-card-hd:hover { background: transparent; }
body.koach-light .koach-program-card.kpc-light .kpc-hd-main { display: grid; grid-template-columns: 52px minmax(0, 1fr); column-gap: 12px; row-gap: 2px; align-items: center; width: auto; flex: 1 1 auto; }
body.koach-light .koach-program-card.kpc-light .kpc-grp1 { display: none; }
body.koach-light .koach-program-card.kpc-light .kpcl-thumb {
  grid-row: 1 / span 3; width: 52px; height: 52px; border-radius: 10px; background: var(--kl-soft); border: 1px solid var(--kl-line-bar);
  display: flex; align-items: center; justify-content: center; color: var(--kl-placeholder);
}
body.koach-light .koach-program-card.kpc-light .kpc-card-ttl { width: auto; font-size: 16px; font-weight: 600; line-height: 1.3; color: var(--kl-ink); }
body.koach-light .koach-program-card.kpc-light .kpc-card-sub { font-size: 14px; color: var(--kl-ink2); margin-top: 0; font-weight: 400; }
body.koach-light .koach-program-card.kpc-light .kpcl-sub { display: block; font-size: 14px; line-height: 1.45; color: var(--kl-ink2); }
body.koach-light .koach-program-card.kpc-light .kpc-station:not(.is-open) .kpcl-sub--open,
body.koach-light .koach-program-card.kpc-light .kpc-station.is-open .kpcl-sub--closed { display: none; }
body.koach-light .koach-program-card.kpc-light .kpc-hd-side { width: auto; flex: 0 0 auto; justify-content: flex-end; }
body.koach-light .koach-program-card.kpc-light .kpc-station:not(.is-open) .kpc-hd-side .kpc-chip,
body.koach-light .koach-program-card.kpc-light .kpc-station:not(.is-open) .kpc-hd-side .kpc-noalts { display: none !important; }
body.koach-light .koach-program-card.kpc-light .kpc-hd-status { background: none; border: 0; padding: 0; min-width: 0; height: auto; font-size: 14px; font-weight: 400; color: var(--kl-ink2); }
body.koach-light .koach-program-card.kpc-light .kpc-hd-status.is-part { color: var(--kl-attn); background: none; }
body.koach-light .koach-program-card.kpc-light .kpc-hd-status.is-done { color: var(--kl-ok); background: none; font-weight: 600; }

/* the open exercise */
body.koach-light .koach-program-card.kpc-light .kpc-station.is-open {
  background: #FAFBFC; margin: 6px calc(-1 * var(--kl-side)) 0; padding: 0 var(--kl-side) 18px;
  border-top: 1px solid var(--kl-line-row); border-bottom: 1px solid var(--kl-line-row);
}
body.koach-light .koach-program-card.kpc-light .kpc-station.is-open > .kpc-card-hd { flex-direction: column !important; align-items: stretch; padding-top: 14px; }
body.koach-light .koach-program-card.kpc-light .kpc-station.is-open .kpc-hd-main { grid-template-columns: minmax(0, 1fr); }
body.koach-light .koach-program-card.kpc-light .kpc-station.is-open .kpcl-thumb { display: none; }
body.koach-light .koach-program-card.kpc-light .kpc-station.is-open .kpc-card-ttl { font-size: 19px; font-weight: 700; }
body.koach-light .koach-program-card.kpc-light .kpc-station.is-open .kpcl-sub { font-size: 15px; line-height: 1.5; margin-top: 4px; }
body.koach-light .koach-program-card.kpc-light .kpc-station.is-open .kpc-hd-side { width: 100%; justify-content: flex-start; gap: 8px; margin-top: 10px; }
body.koach-light .koach-program-card.kpc-light .kpc-chip,
body.koach-light .koach-program-card.kpc-light .kpc-addload {
  min-height: 44px; padding: 0 16px; border-radius: 999px; background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important;
  color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 14px; font-weight: 600; gap: 6px; box-shadow: none;
}
body.koach-light .koach-program-card.kpc-light .kpc-chip-ico svg { width: 14px; height: 14px; }
body.koach-light .koach-program-card.kpc-light .kpc-noalts { font-size: 13px; color: var(--kl-ink2); }
body.koach-light .koach-program-card.kpc-light .kpc-alt-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0; padding: 0; }
body.koach-light .koach-program-card.kpc-light .kpc-alt-opt.is-active { background: #FFFFFF !important; border: 2px solid var(--kl-red) !important; color: var(--kl-red) !important; }
body.koach-light .koach-program-card.kpc-light .kpc-alt-eq { margin-left: 6px; font-size: 12px; font-weight: 500; color: var(--kl-ink2); }

/* the koach bubble and the notes */
body.koach-light .koach-program-card.kpc-light .kpc-card-cue { padding: 0; margin-top: 14px; border: 0; gap: 8px; }
body.koach-light .koach-program-card.kpc-light .kpc-cue-koach {
  display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 6px 8px;
  padding: 12px 14px; border-radius: 4px 16px 16px 16px; background: var(--kl-soft); border: 1px solid var(--kl-line-bubble); border-left: 1px solid var(--kl-line-bubble);
}
body.koach-light .koach-program-card.kpc-light .kpc-cue-koach-label { font-size: 13px; font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--kl-ink2); }
body.koach-light .koach-program-card.kpc-light .kpc-cue-koach-text { flex: 1 1 100%; font-size: 15px; line-height: 1.5; color: var(--kl-ink); }
body.koach-light .koach-program-card.kpc-light .kpc-cue-koach.is-collapsed .kpcl-av { display: none; }
body.koach-light .koach-program-card.kpc-light .kpc-cue-koach-swapline, body.koach-light .koach-program-card.kpc-light .kpc-cue-koach-show { color: var(--kl-ink2); font-size: 14px; }
body.koach-light .koach-program-card.kpc-light .kpc-cue-line { font-size: 14px; line-height: 1.45; color: var(--kl-ink2); }
body.koach-light .koach-program-card.kpc-light .kpc-cue-swapinfo-btn { background: none !important; border: 0 !important; padding: 0; color: var(--kl-red) !important; font: inherit; font-weight: 600; cursor: pointer; text-align: left; }
body.koach-light .koach-program-card.kpc-light .kpc-state-note.kpc-card-sub { color: var(--kl-attn); }
body.koach-light .koach-program-card.kpc-light .kpc-last-head, body.koach-light .koach-program-card.kpc-light .kpc-last-note { padding: 0; margin-top: 12px; font-size: 14px; color: var(--kl-ink2); }
body.koach-light .koach-program-card.kpc-light .kpc-last-note { margin-top: 2px; }
body.koach-light .koach-program-card.kpc-light .kpc-load-hint { margin-top: 8px; font-size: 13px; color: var(--kl-ink2); }

/* the set boxes (phone stack) */
body.koach-light .koach-program-card.kpc-light .kpc-stack { margin-top: 10px; }
body.koach-light .koach-program-card.kpc-light .kpcl-cols { display: flex; gap: 8px; align-items: flex-end; margin: 0 0 6px; font-size: 13px; font-weight: 600; color: var(--kl-ink2); }
body.koach-light .koach-program-card.kpc-light .kpcl-cols > span { flex: 1 1 0; min-width: 0; }
body.koach-light .koach-program-card.kpc-light .kpcl-cols > .kpcl-col-n { flex: 0 0 48px; }
body.koach-light .koach-program-card.kpc-light .kpc-station:not(.kpc-load-on) .kpcl-col-addload { display: none; }
body.koach-light .koach-program-card.kpc-light .kpc-set-row { gap: 8px; padding: 0 0 6px; border-bottom: 0; }
body.koach-light .koach-program-card.kpc-light .kpc-set-n { width: 48px; font-family: var(--kl-font) !important; font-size: 15px; font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--kl-ink); }
body.koach-light .koach-program-card.kpc-light .kpc-set-fields { gap: 8px; }
body.koach-light .koach-program-card.kpc-light .kpc-set-fields--single { max-width: none; }
body.koach-light .koach-program-card.kpc-light .kpc-set-fields .kpc-logfield { flex: 1 1 0; min-width: 0; }
body.koach-light .koach-program-card.kpc-light .kpc-log-input {
  height: 52px; border-radius: 12px; border: 1px solid var(--kl-line-ctrl) !important; background: #FFFFFF !important;
  font-family: var(--kl-font) !important; font-size: 18px; font-weight: 500; color: var(--kl-ink); text-align: left;
}
body.koach-light .koach-program-card.kpc-light .kpc-log-input:focus { border-color: var(--kl-red) !important; box-shadow: 0 0 0 3px rgba(192,22,28,.12); }
body.koach-light .koach-program-card.kpc-light .kpc-log-input::placeholder { color: var(--kl-placeholder); }
body.koach-light .koach-program-card.kpc-light .kpc-set-fields .kpc-log-input { padding: 0 12px; text-align: left; height: 52px; font-size: 18px; }
body.koach-light .koach-program-card.kpc-light .kpcl-cols + .kpc-sets .kpc-lf-tag { display: none; }
body.koach-light .koach-program-card.kpc-light .kpc-set-row--sides .kpc-set-fields .kpc-log-input { padding-left: 44px; }
/* per-side rows: Left and Right side by side under their column labels (board A7-ProgramCard) */
body.koach-light .koach-program-card.kpc-light .kpc-set-row--sides { flex-wrap: wrap; }
body.koach-light .koach-program-card.kpc-light .kpc-set-row--sides .kpc-set-fields { flex: 1 1 0; min-width: 0; padding-left: 0; }
body.koach-light .koach-program-card.kpc-light .kpc-set-row--sides .kpc-set-fields + .kpc-set-fields { margin-top: 0; }
body.koach-light .koach-program-card.kpc-light .kpc-set-row--sides .kpc-side-tag { display: none; }
/* the save / resume message: readable, not pale on pale (walk 4) */
body.koach-light .koach-program-card.kpc-light .kpc-save-status.kpc-status--success { background: #FFFFFF !important; border: 1px solid #BFE6D5 !important; color: var(--kl-ok) !important; font-weight: 600; opacity: 1; }
body.koach-light .koach-program-card.kpc-light .kpc-save-status.kpc-status--error { background: var(--kl-error-bg) !important; border: 1px solid var(--kl-error-line) !important; color: var(--kl-ink) !important; }
body.koach-light .koach-program-card.kpc-light .kpc-save-status.kpc-status--offline { background: #FFF7E8 !important; border: 1px solid #E8C98F !important; color: var(--kl-ink) !important; font-weight: 600; opacity: 1; }   /* S330 (C618) */
body.koach-light .koach-program-card.kpc-light .kpc-set-last { flex: 1 1 100%; padding-left: 56px; font-size: 13px; color: var(--kl-ink2); }
body.koach-light .koach-program-card.kpc-light .kpcl-rirhelp { margin: 10px 0 0; font-size: 14px; line-height: 1.5; color: var(--kl-ink2); }
body.koach-light .koach-program-card.kpc-light .kpcl-rirhelp b { color: var(--kl-ink); }
body.koach-light .koach-program-card.kpc-light .kpc-ex-card-note { margin-top: 10px; }
body.koach-light .koach-program-card.kpc-light textarea.kpc-log-note { width: 100%; min-height: 48px; padding: 12px; font-size: 15px; text-align: left; }

/* warm-up / finish prose, save status, end of the workout, finish bar */
body.koach-light .koach-program-card.kpc-light .kpc-notes-bar { background: var(--kl-soft); border: 1px solid var(--kl-line-bubble); border-radius: 12px; padding: 12px 14px; box-shadow: none; }
body.koach-light .koach-program-card.kpc-light .kpc-notes-label { font-size: 13px; font-weight: 700; letter-spacing: 0; color: var(--kl-ink2); }
body.koach-light .koach-program-card.kpc-light .kpc-save-status { border-radius: 12px; font-family: var(--kl-font); font-size: 14px; }
body.koach-light .koach-program-card.kpc-light .kpcl-end { margin-top: 18px; }
body.koach-light .koach-program-card.kpc-light .kpcl-end textarea.kl-field { min-height: 84px; }
body.koach-light .koach-program-card.kpc-light .kpcl-finish { margin-top: 16px; }
body.koach-light .koach-program-card.kpc-light .kpc-fb-inner { border-color: var(--kl-line-ctrl); }
body.koach-light .koach-program-card.kpc-light .kpc-fb-save { background: var(--kl-red) !important; color: #FFFFFF !important; border: 0 !important; border-radius: 14px; font-family: var(--kl-font) !important; font-size: 16px; font-weight: 700; }
body.koach-light .koach-program-card.kpc-light .kpc-fb-save .kpc-btn-ico { display: none; }

/* ==========================================================================
   15. MY DOCUMENTS (S330-B10, C617, D594 s.1-2, D589 item I). Scoped body.koach-light.koach-app-page
   (0,4,x) so it wins over the page's own <style> and the contract plugin's mobile dark-canvas rule.
   ========================================================================== */
body.koach-light.koach-app-page .kmydocs-wrap { max-width: none; margin: 0; font-family: var(--kl-font); color: var(--kl-ink); line-height: 1.5; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-title { font-family: var(--kl-title-font); font-size: 40px; line-height: 1; color: var(--kl-ink); margin: 0 0 8px; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-sub,
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-empty { font-size: 15px; line-height: 1.5; color: var(--kl-ink2); margin: 0 0 var(--kl-section); }
/* health screening (item I) */
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-screen { border-top: 1px solid var(--kl-line-section); padding: var(--kl-section) 0; margin: 0; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-screen-t { font-family: var(--kl-font); font-size: 20px; font-weight: 700; color: var(--kl-ink); margin: 0 0 8px; line-height: 1.3; letter-spacing: 0; text-transform: none; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-screen-line { display: flex; align-items: center; gap: 10px; font-size: 16px; font-weight: 700; margin: 0 0 4px; color: var(--kl-ok); }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-screen-line::before { content: ""; flex: 0 0 10px; width: 10px; height: 10px; border-radius: 50%; background: currentColor; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-screen--wait .kmydocs-screen-line,
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-screen--due .kmydocs-screen-line { color: var(--kl-attn); }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-screen-res { font-size: 14px; color: var(--kl-quiet); margin: 0; padding-left: 20px; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-screen-act { margin: 14px 0 0; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-screen-btn { display: inline-flex; align-items: center; justify-content: center; min-height: var(--kl-h-primary); padding: 0 24px; border-radius: var(--kl-r-btn); background: var(--kl-red); color: #FFFFFF; font-size: 16px; font-weight: 700; text-decoration: none; box-shadow: var(--kl-sh-primary); }
@media (max-width: 720px) { body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-screen-btn { width: 100%; } }
/* the list: rows on the page, no boxed cards (s.1.2) */
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-list { gap: 0; border-top: 1px solid var(--kl-line-section); }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-item { background: transparent; border: 0; border-bottom: 1px solid var(--kl-line-row); border-radius: 0; box-shadow: none; padding: 14px 0; gap: 14px; min-height: 64px; transform: none; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-item:hover { border-color: var(--kl-line-row); box-shadow: none; transform: none; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-item-icon { width: 40px; height: 40px; flex: 0 0 40px; border-radius: 50%; background: var(--kl-soft); color: var(--kl-ink2); }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-item-icon svg { width: 20px; height: 20px; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-item-name { font-size: 16px; font-weight: 700; color: var(--kl-ink); line-height: 1.3; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-item-meta { font-size: 14px; color: var(--kl-quiet); line-height: 1.4; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-item-open { color: var(--kl-red); font-size: 15px; font-weight: 700; padding-left: 8px; white-space: nowrap; }
/* grouped uploads */
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-group > summary { list-style: none; cursor: pointer; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-group > summary::-webkit-details-marker { display: none; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-group .kmydocs-gs-hide,
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-group[open] .kmydocs-gs-show { display: none; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-group[open] .kmydocs-gs-hide { display: inline; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-group-list { background: var(--kl-open); padding-left: 54px; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-group-list .kmydocs-item-icon { display: none; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-group-list .kmydocs-item { min-height: 56px; padding-right: 0; }
/* notices */
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-notice { border-radius: 12px; font-size: 15px; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-notice--ok { background: #FFFFFF; border: 1px solid #BFE6D5; color: var(--kl-ok); font-weight: 600; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-notice--err { background: var(--kl-error-bg); border: 1px solid var(--kl-error-line); color: var(--kl-ink); }
/* upload section */
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-upload { margin: var(--kl-section) 0 0; background: transparent; border: 0; border-top: 1px solid var(--kl-line-section); border-radius: 0; box-shadow: none; padding: var(--kl-section) 0 0; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-up-title { font-family: var(--kl-font); font-size: 20px; font-weight: 700; color: var(--kl-ink); margin: 0 0 8px; line-height: 1.3; letter-spacing: 0; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-upload .kmydocs-up-sub { font-size: 15px; color: var(--kl-ink2); margin: 0 0 10px; line-height: 1.5; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-upload .kmydocs-up-rules { font-size: 14px; color: var(--kl-ink); font-weight: 700; margin: 0 0 16px; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-up-file { font-family: var(--kl-font); font-size: 15px; color: var(--kl-quiet); }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-up-file::file-selector-button { font-family: var(--kl-font); font-size: 15px; font-weight: 700; color: var(--kl-ink); background: #FFFFFF; border: 1px solid var(--kl-line-ctrl); border-radius: var(--kl-r-btn); min-height: var(--kl-h-secondary); padding: 0 18px; margin-right: 12px; cursor: pointer; }   /* walk 6: the browser's plain picker */
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-up-btn { background: var(--kl-red); color: #FFFFFF; border-radius: var(--kl-r-btn); min-height: var(--kl-h-primary); padding: 0 24px; font-family: var(--kl-font); font-size: 16px; font-weight: 700; box-shadow: var(--kl-sh-primary); filter: none; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-up-btn:active { background: var(--kl-red-press); }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-upload .kmydocs-up-note { font-size: 14px; color: var(--kl-quiet); margin: 16px 0 0; line-height: 1.5; }
/* a document opened from the list (signed instrument / contract): on the white page, no float */
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-back,
body.koach-light.koach-app-page .kct-doc-bar a.kct-doc-back,
body.koach-light.koach-app-page .kct-doc-note { color: var(--kl-ink2); }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-print { border-radius: var(--kl-r-btn); min-height: var(--kl-h-tap); }
body.koach-light.koach-app-page .kmydocs-wrap .kdoc { box-shadow: none; }
@media (max-width: 720px) {
    body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-up-btn { width: 100%; }
    body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-group-list { padding-left: 16px; }
}

/* ==========================================================================
   17. SCHEDULE TAB (S330-B11, C617, D597, D598). The appointments part is member-dashboard-schedule-light.php;
   the Semi-Private cards and the session-usage chip keep their markup and sit on the page as sections.
   ========================================================================== */
.kl .kls-list { list-style: none; margin: 0; padding: 0; }
.kl .kls-date { width: 56px; line-height: 1.3; }
.kl .kls-tags { margin-top: 6px; display: flex; gap: 6px; flex-wrap: wrap; }
.kl.kl-schedule > .kl-link { display: inline-flex; margin-top: var(--kl-section); }
body.koach-light #kmd-tab-schedule .kmd-sp-card,
body.koach-light #kmd-tab-schedule .kmd-susage-card { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; box-shadow: none !important; padding: var(--kl-section) 0 !important; margin: 0 !important; color: var(--kl-ink) !important; font-family: var(--kl-font); }
body.koach-light #kmd-tab-schedule .kmd-sp-card-title { font-size: 20px; font-weight: 700; color: var(--kl-ink) !important; margin: 0 0 8px; font-family: var(--kl-font) !important; text-transform: none; letter-spacing: 0; }
body.koach-light #kmd-tab-schedule .kmd-sp-card-body,
body.koach-light #kmd-tab-schedule .kmd-susage-anchor,
body.koach-light #kmd-tab-schedule .kmd-susage-label { font-size: 15px; color: var(--kl-ink2) !important; }
body.koach-light #kmd-tab-schedule .kmd-susage-count { font-size: 20px; font-weight: 700; color: var(--kl-ink) !important; }
body.koach-light #kmd-tab-schedule .kmd-sp-btn { border-radius: var(--kl-r-btn) !important; min-height: var(--kl-h-tap); font-family: var(--kl-font) !important; font-weight: 700; }
body.koach-light #kmd-tab-schedule .kmd-sp-btn--primary { background: var(--kl-red) !important; color: #FFFFFF !important; border: 0 !important; }
body.koach-light #kmd-tab-schedule .kmd-sp-btn:not(.kmd-sp-btn--primary) { background: #FFFFFF !important; color: var(--kl-ink) !important; border: 1px solid var(--kl-line-ctrl) !important; }

/* ==========================================================================
   18. AMELIA PAGES (/my-schedule/, /book-checkin/, /book/) (S330-B12, C617, owner "All three", walk 7).
   Amelia pins its colour variables inline on each element, so (like the font fix in koach-dashboards.php
   7a-bis) the variables are re-pointed with !important on every am-/el- element. Light look only.
   ========================================================================== */
body.koach-light .amelia-v2-booking,
body.koach-light .amelia-v2-booking [class*="am-"],
body.koach-light .amelia-v2-booking [class*="el-"] {
    --am-c-main-bgr: #FFFFFF !important;
    --am-c-main-heading-text: #21252E !important;
    --am-c-main-text: #21252E !important;
    --am-c-sb-bgr: var(--kl-soft) !important;
    --am-c-sb-text: #21252E !important;
    --am-c-sb-text-op5: rgba(33,37,46,.05) !important;
    --am-c-sb-text-op10: rgba(33,37,46,.10) !important;
    --am-c-sb-text-op60: rgba(33,37,46,.60) !important;
    --am-c-primary: #C0161C !important;
    --am-c-btn-prim: #C0161C !important;
    --am-c-btn-prim-text: #FFFFFF !important;
    --am-c-cust-link: #C0161C !important;
    /* walk 8: past / unavailable calendar days were tinted purple (Amelia default) -> koach grey */
    --am-c-cal-disabled: #8A909C !important;
    --am-c-cal-disabled-op10: rgba(138,144,156,.10) !important;
    --am-c-cal-disabled-op60: rgba(138,144,156,.60) !important;
}
/* walk 8: an open Amelia menu (Reschedule / Cancel) or picker hides the Feedback bubble so it never covers a choice */
body.koach-light-shell:has(.el-popper[aria-hidden="false"]) .kbf-pill,
body.koach-light-shell:has(.am-cc__popper:not([style*="display: none"])) .kbf-pill { opacity: 0; pointer-events: none; }
body.koach-light .amelia-v2-booking #amelia-container { background: #FFFFFF; }
body.koach-light .amelia-v2-booking #amelia-container .am-fs-sb { border-right: 1px solid var(--kl-line-section); }
body.koach-light .amelia-v2-booking #amelia-container .am-fs__main-heading-inner-title { color: var(--kl-ink) !important; }
/* the policy note above the widget (koach-dashboards.php 7a-bis): red link, neutral bar */
body.koach-light #koach-booking-policy-note { box-shadow: none; }
body.koach-light #koach-booking-policy-note .kbpn-bar { background: var(--kl-line-ctrl); }
body.koach-light #koach-booking-policy-note .kbpn-link,
body.koach-light .am-cc__edit .kbpn-expired .kbpn-link { color: var(--kl-red); }
/* the row menu (Reschedule / Cancel) never wider than the screen on phone */
body.koach-light .am-cc__popper { max-width: calc(100vw - 24px) !important; }
/* walk 9: the open menu sat under the phone bottom bar ("Cancel" hidden) -- menus and pickers go above the bars */
body.koach-light .am-cc__popper,
body.koach-light .el-popper.am-select-popper,
body.koach-light .el-popper { z-index: 100050 !important; }

/* ==========================================================================
   19. PROGRESS TAB (S330-B13, C617, C583 item H). The top part is member-dashboard-progress-light.php;
   the filter, charts, detail table and assessment history keep their markup and script.
   ========================================================================== */
.kl.kl-progress .klp-delta { font-size: 13px; color: var(--kl-quiet); margin-top: 2px; }
body.koach-light #kmd-tab-progress .kmd-delta { background: transparent !important; border: 0 !important; padding: 0 !important; font-weight: 700; }
body.koach-light #kmd-tab-progress .kmd-delta-good { color: var(--kl-ok) !important; }
body.koach-light #kmd-tab-progress .kmd-delta-bad { color: var(--kl-attn) !important; }
body.koach-light #kmd-tab-progress .kmd-delta-neutral { color: var(--kl-quiet) !important; }
body.koach-light #kmd-tab-progress .kmd-section-title { display: block; background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; padding: var(--kl-section) 0 0 !important; margin: 0 0 12px !important; box-shadow: none !important; }
body.koach-light #kmd-tab-progress .kmd-st-main { display: block; font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--kl-ink) !important; }
body.koach-light #kmd-tab-progress .kmd-st-sub { display: block; font-family: var(--kl-font); font-size: 14px !important; color: var(--kl-ink2) !important; text-transform: none; letter-spacing: 0; margin-top: 2px; }
body.koach-light #kmd-tab-progress .kmd-explorer { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important; }
body.koach-light #kmd-tab-progress .kmd-explorer-controls-tbl th { background: transparent !important; color: var(--kl-ink2) !important; font-family: var(--kl-font) !important; font-size: 13px !important; font-weight: 600; text-transform: none; letter-spacing: 0; border: 0 !important; padding: 0 0 6px !important; }
body.koach-light #kmd-tab-progress .kmd-explorer-controls-tbl td { border: 0 !important; padding: 0 8px 8px 0 !important; background: transparent !important; }
body.koach-light #kmd-tab-progress select,
body.koach-light #kmd-tab-progress input[type="date"] { min-height: var(--kl-h-tap); border: 1px solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-field) !important; background: #FFFFFF !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 15px !important; padding: 0 10px !important; }
body.koach-light #kmd-tab-progress .kmd-run-cta { background: #FFFFFF !important; color: var(--kl-ink) !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-btn) !important; min-height: var(--kl-h-tap); font-family: var(--kl-font) !important; font-weight: 700; box-shadow: none !important; }
body.koach-light #kmd-tab-progress .kmd-explorer-empty,
body.koach-light #kmd-tab-progress .kmd-chart-one-note { background: transparent !important; border: 0 !important; color: var(--kl-ink2) !important; font-family: var(--kl-font); font-size: 15px; padding: 8px 0 !important; text-align: left; }
body.koach-light #kmd-tab-progress .kmd-assessment-table-wrap { border: 0 !important; box-shadow: none !important; border-radius: 0 !important; background: transparent !important; }
body.koach-light #kmd-tab-progress .kmd-assessment-table th { background: transparent !important; color: var(--kl-ink2) !important; font-family: var(--kl-font) !important; font-size: 13px !important; font-weight: 600; text-transform: none; letter-spacing: 0; border: 0 !important; border-bottom: 1px solid var(--kl-line-section) !important; }
body.koach-light #kmd-tab-progress .kmd-assessment-table td { background: transparent !important; color: var(--kl-ink) !important; font-family: var(--kl-font); font-size: 15px; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; }
body.koach-light #kmd-tab-progress .kmd-atype-badge,
body.koach-light #kmd-tab-progress .kmd-level-pill { background: var(--kl-soft) !important; color: var(--kl-ink2) !important; border: 0 !important; font-family: var(--kl-font); font-size: 13px; font-weight: 600; text-transform: none; letter-spacing: 0; }
body.koach-light #kmd-tab-progress .kmd-expand-btn { background: transparent !important; border: 0 !important; color: var(--kl-red) !important; font-family: var(--kl-font) !important; font-weight: 700; font-size: 15px; min-height: var(--kl-h-tap); }
body.koach-light #kmd-tab-progress .kmd-assess-detail-tile { background: var(--kl-open) !important; border: 0 !important; box-shadow: none !important; border-radius: 12px !important; }
body.koach-light #kmd-tab-progress .kmd-assess-detail-val { color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-weight: 700; }
body.koach-light #kmd-tab-progress .kmd-assess-detail-label { color: var(--kl-ink2) !important; font-family: var(--kl-font) !important; text-transform: none; letter-spacing: 0; font-size: 13px; }

/* ==========================================================================
   20. MILESTONES, MY PLAN, ASSESSMENT TABS (S330-B14, C617). Look only: each tab keeps its markup, words and
   script; the light rules turn boxed cards into sections and rows (standard v3 s.1.2, 1.4) and set the type.
   ========================================================================== */
/* -- Milestones -- */
body.koach-light #kmd-tab-milestones .kmd-milestones-summary { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 0 var(--kl-section) !important; text-align: left; }
body.koach-light #kmd-tab-milestones .kmd-milestones-count { font-family: var(--kl-font) !important; font-size: 32px !important; font-weight: 700; color: var(--kl-ink) !important; }
body.koach-light #kmd-tab-milestones .kmd-milestones-count-label { font-family: var(--kl-font) !important; font-size: 15px !important; color: var(--kl-ink2) !important; text-transform: none; letter-spacing: 0; }
body.koach-light #kmd-tab-milestones .kmd-milestones-section { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; box-shadow: none !important; padding: var(--kl-section) 0 !important; margin: 0 !important; }
body.koach-light #kmd-tab-milestones .kmd-milestones-section-header { background: transparent !important; border: 0 !important; padding: 0 0 8px !important; }
body.koach-light #kmd-tab-milestones .kmd-milestones-section-title { font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700; color: var(--kl-ink) !important; text-transform: none; letter-spacing: 0; }
body.koach-light #kmd-tab-milestones .kmd-milestones-grid { display: block !important; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card { display: flex !important; align-items: center; gap: 14px; text-align: left !important; background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; padding: 12px 0 !important; min-height: 64px; margin: 0 !important; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card-icon { flex: 0 0 40px; width: 40px !important; height: 40px !important; margin: 0 !important; border-radius: 50% !important; background: var(--kl-soft) !important; color: var(--kl-ok) !important; display: grid; place-items: center; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card-icon--locked { color: var(--kl-inactive) !important; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card-label { font-family: var(--kl-font) !important; font-size: 16px !important; font-weight: 700; color: var(--kl-ink) !important; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card-label--locked { color: var(--kl-ink2) !important; font-weight: 600; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card-date,
body.koach-light #kmd-tab-milestones .kmd-milestone-card-detail { font-family: var(--kl-font) !important; font-size: 14px !important; color: var(--kl-quiet) !important; margin-left: auto; text-align: right; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card-major-tag { background: var(--kl-soft) !important; color: var(--kl-ink2) !important; border: 0 !important; font-family: var(--kl-font); font-size: 12px; font-weight: 600; text-transform: none; letter-spacing: 0; }
/* -- My Plan (the shared plan view, client side only) -- */
body.koach-light #kmd-tab-programs .kpp-mp-sechead { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; padding: var(--kl-section) 0 8px !important; margin: 0 !important; }
body.koach-light #kmd-tab-programs .kpp-mp-sechead .tl { font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700; letter-spacing: 0 !important; }
body.koach-light #kmd-tab-programs .kpp-mp-sechead .kpp-mp-bank-count { font-family: var(--kl-font); font-size: 15px; color: var(--kl-ink); }
body.koach-light #kmd-tab-programs .kpp-mp-sechead .kpp-mp-bank-count .rem { font-size: 14px; color: var(--kl-ink2); margin-left: 0; }
body.koach-light #kmd-tab-programs .kpp-mp-sechead .kpp-mp-bank-count .rem::before { content: " \00B7  "; white-space: pre; }   /* walk 13: one sentence, "Week 11 of 12 . 13 of 24 workouts done" */
body.koach-light #kmd-tab-programs .kpp-mp-sec { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 0 var(--kl-section) !important; }
body.koach-light #kmd-tab-programs .kpp-mp-ov dt,
body.koach-light #kmd-tab-programs .kpp-mp-tab th { font-family: var(--kl-font) !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 13px !important; background: transparent !important; }
body.koach-light #kmd-tab-programs .kpp-mp-ov dd,
body.koach-light #kmd-tab-programs .kpp-mp-tab td { font-family: var(--kl-font) !important; color: var(--kl-ink) !important; font-size: 15px; }
body.koach-light #kmd-tab-programs .kps-mc { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; }
body.koach-light #kmd-tab-programs .kps-mc-name { font-family: var(--kl-font) !important; font-size: 16px; font-weight: 700; color: var(--kl-ink) !important; }
/* -- Assessment (the client's self-guided assessment and its history) -- */
/* walk 13: the tab already carries the page title "Assessment" (one title per page, s.1.3) -> the inner title is hidden */
body.koach-light #kmd-tab-assessment .kmd-pgtitle { display: none !important; }
/* walk 13: the notes were peach -> the standard's soft grey note */
body.koach-light #kmd-tab-assessment .kmd-assess-how { background: var(--kl-soft) !important; border: 0 !important; border-radius: 12px !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 15px !important; line-height: 1.5; padding: 14px 16px !important; }
body.koach-light #kmd-tab-assessment .kmd-assess-how strong { color: var(--kl-ink) !important; }
/* walk 13: the closed phone More sheet is never drawn on desktop (a full-page capture showed it below the page) */
body.koach-light-shell #kns-shell .kns-sheet.kns-sheet--light:not(.kns-open) { visibility: hidden; }
body.koach-light #kmd-tab-assessment .kmd-page-sub { font-family: var(--kl-font) !important; font-size: 15px !important; color: var(--kl-ink2) !important; }
body.koach-light #kmd-tab-assessment .kmd-as-card { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; box-shadow: none !important; padding: var(--kl-section) 0 !important; margin: 0 !important; }
body.koach-light #kmd-tab-assessment .kmd-as-card-head,
body.koach-light #kmd-tab-assessment .kmd-section-header,
body.koach-light #kmd-tab-assessment .kmd-section-title { background: transparent !important; border: 0 !important; padding: 0 0 8px !important; font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700; color: var(--kl-ink) !important; text-transform: none; letter-spacing: 0; }
body.koach-light #kmd-tab-assessment .kmd-as-body { padding: 0 !important; }
body.koach-light #kmd-tab-assessment .kgsa-screen { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; padding: 16px 0 !important; }
body.koach-light #kmd-tab-assessment .kgsa-screen-name { font-family: var(--kl-font) !important; font-size: 16px !important; font-weight: 700; color: var(--kl-ink) !important; }
body.koach-light #kmd-tab-assessment .kgsa-screen-cue,
body.koach-light #kmd-tab-assessment .kmd-assess-field-hint { font-family: var(--kl-font) !important; font-size: 14px !important; color: var(--kl-ink2) !important; }
body.koach-light #kmd-tab-assessment .kgsa-tag { background: var(--kl-soft) !important; color: var(--kl-ink2) !important; border: 0 !important; font-family: var(--kl-font); font-size: 12px; font-weight: 600; text-transform: none; letter-spacing: 0; }
body.koach-light #kmd-tab-assessment input:not([type="file"]):not([type="checkbox"]):not([type="radio"]),
body.koach-light #kmd-tab-assessment select,
body.koach-light #kmd-tab-assessment textarea { min-height: var(--kl-h-tap); border: 1px solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-field) !important; background: #FFFFFF !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 16px !important; }
body.koach-light #kmd-tab-assessment .kgsa-upload-btn { background: #FFFFFF !important; color: var(--kl-ink) !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-btn) !important; min-height: var(--kl-h-secondary); font-family: var(--kl-font) !important; font-weight: 700; box-shadow: none !important; }
body.koach-light #kmd-tab-assessment .kmd-assess-submit-btn { background: var(--kl-red) !important; color: #FFFFFF !important; border: 0 !important; border-radius: var(--kl-r-btn) !important; min-height: var(--kl-h-primary); font-family: var(--kl-font) !important; font-size: 16px !important; font-weight: 700; box-shadow: var(--kl-sh-primary) !important; }
body.koach-light #kmd-tab-assessment .kmd-assessment-table th { background: transparent !important; color: var(--kl-ink2) !important; font-family: var(--kl-font) !important; font-size: 13px !important; text-transform: none; letter-spacing: 0; border: 0 !important; border-bottom: 1px solid var(--kl-line-section) !important; }
body.koach-light #kmd-tab-assessment .kmd-assessment-table td { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; font-family: var(--kl-font); font-size: 15px; }
body.koach-light #kmd-tab-assessment .kmd-expand-btn { background: transparent !important; border: 0 !important; color: var(--kl-red) !important; font-family: var(--kl-font) !important; font-weight: 700; }

/* ==========================================================================
   21. DESKTOP LAYOUT (S330, owner after walk 14): one centred 960px content column on every light page
   (the dashboard tabs already are), reading lines held to about 70 characters, D105 "View more" on long help
   text, and Feedback as a sidebar row wherever the sidebar shows.
   ========================================================================== */
@media (min-width: 1101px) {
    body.koach-light.koach-app-program-card .koach-content-area,
    body.koach-light.koach-app-my-documents .koach-content-area,
    body.koach-light.koach-app-my-schedule .koach-content-area,
    body.koach-light.koach-app-book-checkin .koach-content-area,
    body.koach-light.koach-app-book .koach-content-area { max-width: 1056px !important; margin-left: auto !important; margin-right: auto !important; }
    body.koach-light.koach-app-page .kmydocs-wrap { max-width: 960px; margin-left: auto; margin-right: auto; }
}
/* reading width: paragraphs and notes stop at about 70 characters; rows, tables and forms keep the full column */
body.koach-light .kl p.kl-text,
body.koach-light .kl .kl-context,
body.koach-light .kl .kl-sub,
body.koach-light .kpc-light .kpc-log-hint,
body.koach-light #kmd-tab-assessment .kmd-page-sub,
body.koach-light #kmd-tab-assessment .kmd-assess-how,
body.koach-light #kmd-tab-assessment .kmd-assess-field-hint,
body.koach-light #kmd-tab-assessment .kgsa-screen-cue,
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-sub,
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-upload p,
body.koach-light #koach-booking-policy-note .kbpn-text { max-width: 70ch; }
/* D105 View more (long help text only; never safety or legal text) */
body.koach-light .kl-vm { max-height: 4.6em; overflow: hidden; -webkit-mask-image: linear-gradient(#000 55%, transparent); mask-image: linear-gradient(#000 55%, transparent); }
body.koach-light .kl-vm.kl-vm-open { max-height: none; -webkit-mask-image: none; mask-image: none; }
body.koach-light .kl-vm-btn { display: inline-flex; align-items: center; min-height: var(--kl-h-tap); padding: 0; margin: 0 0 8px; background: transparent !important; border: 0 !important; box-shadow: none !important; color: var(--kl-red) !important; font-family: var(--kl-font) !important; font-size: 15px !important; font-weight: 600; text-transform: none; letter-spacing: 0; cursor: pointer; }
/* Feedback: a sidebar row where the sidebar shows (desktop / tablet), the bubble on phones */
@media (min-width: 821px) {
    body.koach-light-shell .kbf-pill { display: none !important; }
}
body.koach-light-shell .kns-side .kl-fb-side { width: 100%; background: transparent; border: 0; cursor: pointer; text-align: left; font-family: var(--kl-font); }

/* ==========================================================================
   22. NUTRITION (S330-B15, owner 19:26: "approved for now" = restyle now, update as the app grows). Look only:
   the koach-nutrition plugin keeps every field, word, regulatory line and script. Its own phone rules lift text
   to white for the old dark canvas; on the light page they are put back to ink, the tab dropdown becomes a light
   control, and boxed cards become sections (standard v3 s.1).
   ========================================================================== */
body.koach-light.koach-app-nutrition .kap-pg-title { font-family: var(--kl-title-font) !important; font-size: 40px !important; color: var(--kl-ink) !important; }
body.koach-light.koach-app-nutrition .knut-eyebrow { color: var(--kl-ink2) !important; }
body.koach-light.koach-app-nutrition .kap-card { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; box-shadow: none !important; }
body.koach-light.koach-app-nutrition .kap-tile { background: var(--kl-soft) !important; border: 0 !important; box-shadow: none !important; border-radius: 12px !important; }
body.koach-light.koach-app-nutrition .knut-sec { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; padding: var(--kl-section) 0 8px !important; margin: 0 !important; }
body.koach-light.koach-app-nutrition .knut-sec-t { font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700; color: var(--kl-ink) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light.koach-app-nutrition .knut-submit,
body.koach-light.koach-app-nutrition .knut-btn-primary { background: var(--kl-red) !important; color: #FFFFFF !important; border: 0 !important; border-radius: var(--kl-r-btn) !important; min-height: var(--kl-h-tap); font-family: var(--kl-font) !important; font-weight: 700; }
body.koach-light.koach-app-nutrition .knut-btn2 { background: var(--kl-ctrl-bg) !important; color: var(--kl-ink) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-btn) !important; font-family: var(--kl-font) !important; font-weight: 600; }
body.koach-light.koach-app-nutrition .knut-as-field input,
body.koach-light.koach-app-nutrition .knut-as-field select,
body.koach-light.koach-app-nutrition .knut-in { border: 1px solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-field) !important; background: #FFFFFF !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 16px !important; }
@media (max-width: 820px) {
    body.koach-light.koach-app-nutrition .kap-pg-title,
    body.koach-light.koach-app-nutrition .knut-ct1-lead,
    body.koach-light.koach-app-nutrition .knut-dayl,
    body.koach-light.koach-app-nutrition .knut-meal-nm { color: var(--kl-ink) !important; }
    body.koach-light.koach-app-nutrition .knut-eyebrow,
    body.koach-light.koach-app-nutrition .knut-sub,
    body.koach-light.koach-app-nutrition .knut-ct1,
    body.koach-light.koach-app-nutrition .knut-sec-t,
    body.koach-light.koach-app-nutrition .knut-note,
    body.koach-light.koach-app-nutrition .knut-empty,
    body.koach-light.koach-app-nutrition .knut-attrib,
    body.koach-light.koach-app-nutrition .knut-attrib-a,
    body.koach-light.koach-app-nutrition .knut-meal-kc,
    body.koach-light.koach-app-nutrition .knut-cf-lead,
    body.koach-light.koach-app-nutrition .knut-axis-n,
    body.koach-light.koach-app-nutrition .knut-axis-rule,
    body.koach-light.koach-app-nutrition .knut-fw-reset .knut-rowbtn,
    body.koach-light.koach-app-nutrition .knut-setby,
    body.koach-light.koach-app-nutrition .knut-days,
    body.koach-light.koach-app-nutrition .knut-cellctl-t { color: var(--kl-ink2) !important; }
    body.koach-light.koach-app-nutrition .knut-sec-t { color: var(--kl-ink) !important; }
    body.koach-light.koach-app-nutrition .knut-attrib-a { color: var(--kl-red) !important; }
    body.koach-light.koach-app-nutrition .knut-daynav { background: var(--kl-soft) !important; border: 0 !important; border-radius: 12px !important; }
    body.koach-light.koach-app-nutrition .knut-daybtn { background: #FFFFFF !important; border: 1px solid var(--kl-line-ctrl) !important; color: var(--kl-ink) !important; }
    /* the page-level tab menu: a light control (was the dark dropdown of the dark canvas) */
    body.koach-light.koach-app-nutrition .knut-tabdd-t { background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; color: var(--kl-ink) !important; border-radius: var(--kl-r-btn) !important; min-height: var(--kl-h-secondary); }
    body.koach-light.koach-app-nutrition .knut-tabdd-l { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; }   /* walk 16: the label sat in a white box */
    body.koach-light.koach-app-nutrition .knut-tabdd-m { background: #FFFFFF !important; border: 1px solid var(--kl-line-ctrl) !important; box-shadow: var(--kl-sh-float) !important; }   /* walk 16: the open list was dark */
    body.koach-light.koach-app-nutrition .knut-tabdd-o { color: var(--kl-ink2) !important; }
    body.koach-light.koach-app-nutrition .knut-tabdd-o.is-on { color: var(--kl-ink) !important; }
    body.koach-light.koach-app-nutrition .knut-tabdd-o + .knut-tabdd-o { border-top-color: var(--kl-line-row) !important; }
    body.koach-light.koach-app-nutrition .knut-c { box-shadow: none !important; }
}

/* ==========================================================================
   23. LIGHT GREY MENUS (owner 19:47-19:51: the bottom bar and the desktop sidebar in light grey; the top bar stays
   dark, unchanged) + THE DESIGN SWEEP (walk 17: boxes removed, stacked lines removed, one section-heading style;
   Bebas stays for page titles) + the install card on Training only.
   ========================================================================== */
/* -- phone bottom bar -- */
body.koach-light-shell #kns-shell .kns-tabbar { background: var(--kl-menu-bg) !important; border-top: 1px solid var(--kl-line-menu) !important; box-shadow: none !important; }
/* -- desktop / tablet sidebar -- */
body.koach-light-shell .kns-side { background: var(--kl-menu-bg) !important; border-right: 1px solid var(--kl-line-menu) !important; }
body.koach-light-shell .kns-side-logo { border-bottom-color: var(--kl-line-menu) !important; }
body.koach-light-shell .kns-side .kns-logo-full img { content: url("https://koach.ca/wp-content/uploads/2025/12/koach-logo_black-1017x230-1.webp"); }
/* walk 18: the collapsed "k" mark kept its white stroke on grey -> the white part turns ink, the red stays red */
body.koach-light-shell .kns-side .kns-kmark svg [fill="#FFFFFF"],
body.koach-light-shell .kns-side .kns-kmark svg [fill="#fff"],
body.koach-light-shell .kns-side .kns-kmark svg [fill="#ffffff"],
body.koach-light-shell .kns-side .kns-kmark svg [fill="white"] { fill: #21252E !important; }
/* walk 18 remaining boxes */
body.koach-light #kmd-tab-programs .kpp-mp-bank-statband { border: 0 !important; }
body.koach-light .koach-program-card.kpc-light th.kpc-th-set,
body.koach-light .koach-program-card.kpc-light th.kpc-th-notes,
body.koach-light .koach-program-card.kpc-light td.kpc-td-set { background: transparent !important; }
body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-group-list { background: transparent !important; }
body.koach-light .amelia-v2-booking #amelia-container,
body.koach-light .amelia-v2-booking .am-caph__main,
body.koach-light .amelia-v2-booking .am-fs__main-heading,
body.koach-light .amelia-v2-booking .am-fs__main-footer { box-shadow: none !important; }
body.koach-light .amelia-v2-booking #amelia-container { border: 1px solid var(--kl-line-section); border-radius: 12px; }
body.koach-light #koach-booking-policy-note .kbpn-title { font-size: 16px !important; }
body.koach-light-shell .kns-side .kns-collapse { color: #6B7280 !important; }
body.koach-light-shell .kns-side .kns-collapse:hover { background: rgba(33,37,46,.06) !important; color: var(--kl-ink) !important; }
body.koach-light-shell .kns-side .kns-eyebrow { color: #5F6673 !important; }
body.koach-light-shell .kns-side .kns-item { color: #4A515F !important; border: 1px solid transparent; border-radius: 10px; }
body.koach-light-shell .kns-side .kns-item .kns-ic { color: #6B7280 !important; }
body.koach-light-shell .kns-side .kns-item:hover { background: rgba(33,37,46,.05) !important; color: var(--kl-ink) !important; }
body.koach-light-shell .kns-side .kns-item:hover .kns-ic { color: var(--kl-ink) !important; }
body.koach-light-shell .kns-side .kns-item.is-active { background: #FFFFFF !important; border-color: var(--kl-line-menu); color: var(--kl-red) !important; font-weight: 600; }
body.koach-light-shell .kns-side .kns-item.is-active .kns-ic { color: var(--kl-red) !important; }
body.koach-light-shell .kns-side .kns-item.is-active::before { display: none !important; }
body.koach-light-shell .kns-side .kns-divider { background: var(--kl-line-menu) !important; }
body.koach-light-shell .kns-side .kns-acct { border-top-color: var(--kl-line-menu) !important; }
body.koach-light-shell .kns-side .kns-acct-btn:hover { background: rgba(33,37,46,.05) !important; }
body.koach-light-shell .kns-side .kns-acct-name { color: var(--kl-ink) !important; }
body.koach-light-shell .kns-side .kns-acct-chev,
body.koach-light-shell .kns-side .kns-acct-role { color: #6B7280 !important; }
body.koach-light-shell .kns-side .kns-avatar { background: #FFFFFF !important; border: 1px solid var(--kl-line-ctrl) !important; }
body.koach-light-shell .kns-side .kns-av1 { color: var(--kl-red) !important; }
body.koach-light-shell .kns-side .kns-av2 { color: var(--kl-ink) !important; }
body.koach-light-shell .kns-side .kns-uom { background: var(--kl-ctrl) !important; border: 1px solid var(--kl-line-ctrl) !important; }
body.koach-light-shell .kns-side .kns-uom-btn { color: var(--kl-ink2) !important; background: transparent !important; }
body.koach-light-shell .kns-side .kns-uom-btn.is-on { background: #FFFFFF !important; color: var(--kl-ink) !important; box-shadow: var(--kl-sh-seg) !important; }
/* -- install card: Training only (More has an "Install the app" row) -- */
body.koach-light-shell:not(.koach-app-member-dashboard):not(.koach-app-guide) #kpwa-install-card,   /* owner 20:01: the Guide keeps it too */
body.koach-light-shell:has(#kmd-tab-training:not(.active)) #kpwa-install-card { display: none !important; }
@media (display-mode: standalone) { body.koach-light-shell .kl-more-install { display: none !important; } }
/* -- sweep: section headings, one style (DM Sans 20 bold); page titles stay Bebas -- */
body.koach-light #kmd-tab-progress .kmd-section-title,
body.koach-light #kmd-tab-assessment .kmd-section-title { font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; color: var(--kl-ink) !important; letter-spacing: 0 !important; text-transform: none !important; }
body.koach-light #kmd-tab-milestones .kmd-milestones-section-title,
body.koach-light #kmd-tab-assessment .kmd-as-card-head,
body.koach-light #kmd-tab-assessment .kmd-section-header { font-weight: 700 !important; }
/* -- sweep: Journal entries as rows -- */
body.koach-light .klj-entry { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; }
/* -- sweep: data tables (Progress details, Assessment history) without card rows or tinted cells -- */
body.koach-light #kmd-tab-progress table tr,
body.koach-light #kmd-tab-assessment table tr { background: transparent !important; box-shadow: none !important; border: 0 !important; border-radius: 0 !important; }
body.koach-light #kmd-tab-progress table th,
body.koach-light #kmd-tab-progress table td,
body.koach-light #kmd-tab-assessment table th,
body.koach-light #kmd-tab-assessment table td { background: transparent !important; box-shadow: none !important; }
body.koach-light #kmd-tab-progress table th,
body.koach-light #kmd-tab-assessment table th { color: var(--kl-ink2) !important; font-family: var(--kl-font) !important; font-size: 13px !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-section) !important; }
body.koach-light #kmd-tab-progress table td,
body.koach-light #kmd-tab-assessment table td { border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; }
body.koach-light #kmd-tab-progress table td::before,
body.koach-light #kmd-tab-assessment table td::before { background: transparent !important; border: 0 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 13px !important; }
body.koach-light #kmd-tab-assessment .kmd-assessment-table-wrap { box-shadow: none !important; border: 0 !important; }
body.koach-light #kmd-tab-assessment .kmd-assess-detail-tile { border: 0 !important; background: var(--kl-soft) !important; }
/* -- sweep: My Plan -- */
body.koach-light #kmd-tab-programs dd,
body.koach-light #kmd-tab-programs td,
body.koach-light #kmd-tab-programs th,
body.koach-light #kmd-tab-programs summary,
body.koach-light #kmd-tab-programs .kpp-mp-bank-statband,
body.koach-light #kmd-tab-programs .kpp-mp-bank-statband > div,
body.koach-light #kmd-tab-programs .kpp-mp-tfoot,
body.koach-light #kmd-tab-programs .kps-fitt-mini { background: transparent !important; box-shadow: none !important; }
body.koach-light #kmd-tab-programs .kpp-mp-bank-statband > div,
body.koach-light #kmd-tab-programs .kps-fitt-mini,
body.koach-light #kmd-tab-programs .kpp-mp-tfoot { border: 0 !important; }
body.koach-light #kmd-tab-programs .kpp-mp-tfoot { color: var(--kl-quiet) !important; font-size: 13px; padding-left: 0 !important; }
body.koach-light #kmd-tab-programs .kps-mc { border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; }
body.koach-light #kmd-tab-programs .kps-mc-sec,
body.koach-light #kmd-tab-programs .kps-mc .r { border-top: 0 !important; }
body.koach-light #kmd-tab-programs .kpp-mp-tab td { border-color: var(--kl-line-row) !important; }
/* -- sweep: Nutrition -- */
body.koach-light.koach-app-nutrition .knut-daynav { background: transparent !important; border: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
body.koach-light.koach-app-nutrition .knut-cell { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; }
body.koach-light.koach-app-nutrition .knut-cf,
body.koach-light.koach-app-nutrition .knut-fw,
body.koach-light.koach-app-nutrition .knut-notice { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
body.koach-light.koach-app-nutrition .knut-fw { border-bottom: 1px solid var(--kl-line-row) !important; }
body.koach-light.koach-app-nutrition .knut-cf { margin-bottom: var(--kl-section) !important; }
body.koach-light.koach-app-nutrition .knut-cf-hd { background: transparent !important; border: 0 !important; padding: 0 0 6px !important; font-family: var(--kl-font) !important; font-size: 16px !important; font-weight: 700 !important; color: var(--kl-ink) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light.koach-app-nutrition .knut-cf-note { background: transparent !important; border: 0 !important; padding: 0 0 8px !important; color: var(--kl-ink2) !important; }
body.koach-light.koach-app-nutrition .knut-notice { padding: 0 !important; }
/* -- sweep: Program Card setup and open exercise -- */
body.koach-light .koach-program-card.kpc-light .kpcl-setup { border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; padding: var(--kl-section) 0 !important; background: transparent !important; }
body.koach-light .koach-program-card.kpc-light .kpc-station.is-open { background: #FFFFFF !important; }
/* -- sweep: booking policy note, a soft note without a frame -- */
body.koach-light #koach-booking-policy-note { border: 0 !important; }

/* 16. FEEDBACK BUBBLE WHILE SCROLLING (S330, owner ruling after walk 6): light shell only. */
body.koach-light-shell .kbf-pill { transition: opacity .2s ease; }
body.koach-light-shell.kl-scrolling .kbf-pill { opacity: 0; pointer-events: none; }

/* ==========================================================================
   24. THE GUIDE + walk-19 fixes (S330-B19). Look only: the wizard keeps every word, link and script.
   ========================================================================== */
/* -- Guide: Bebas page title on the page (no grey bar), the three cards become sections, rows keep a row line
      between them only (no stacked lines under the section line) -- */
body.koach-light.koach-app-guide .kow-head { background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; min-height: 0 !important; margin: 0 0 8px !important; }
body.koach-light.koach-app-guide .kow-head-t { font-family: var(--kl-title-font) !important; font-size: 40px !important; color: var(--kl-ink) !important; letter-spacing: 0 !important; }
body.koach-light.koach-app-guide .kow-card { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; box-shadow: none !important; padding: var(--kl-section) 0 !important; margin: 0 !important; }
body.koach-light.koach-app-guide .kow-ct { font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; color: var(--kl-ink) !important; margin: 0 0 8px !important; }
body.koach-light.koach-app-guide .kow-row { padding: 12px 0 !important; border-top: 1px solid var(--kl-line-row) !important; }
body.koach-light.koach-app-guide .kow-row:first-of-type { border-top: 0 !important; padding-top: 4px !important; }
body.koach-light.koach-app-guide .kow-rt { font-size: 16px !important; }
body.koach-light.koach-app-guide .kow-sd { font-size: 16px !important; line-height: 1.6 !important; color: var(--kl-ink2) !important; max-width: 70ch; }
body.koach-light.koach-app-guide .kow-foot { border-top: 1px solid var(--kl-line-section); margin: 0 !important; padding: var(--kl-section) 0 0; font-size: 16px !important; }
/* -- install card: its own padding back (walk 19: a page rule left it at 16px 0) -- */
body.koach-light-shell #kpwa-install-card { padding: 20px 22px !important; }
@media (max-width: 460px) { body.koach-light-shell #kpwa-install-card { padding: 16px !important; } }
/* -- collapsed sidebar: the k mark stays after a mouse click; the expand arrow shows on hover or keyboard focus only -- */
body.koach-light-shell.kns-rail .kns-side-logo:focus-within:not(:hover):not(:has(:focus-visible)) .kns-kmark { opacity: 1 !important; }
body.koach-light-shell.kns-rail .kns-side-logo:focus-within:not(:hover):not(:has(:focus-visible)) .kns-collapse { opacity: 0 !important; }

/* ==========================================================================
   25. THE CLIENT FORMS (S330-B20): /intake/ (PAR-Q+), /health-questionnaire/ (HLQ), /check-in/ (Weekly Check-In).
   Look only: Gravity Forms keeps every field, word, rule, page break and script; the 8b/8c layer in
   koach-dashboards.php (koach_form_pages_css, the JS card wrapper) keeps serving the current pages.
   Values: standard v3 s.7 (.kl-field), v7 board A7-CheckIn (48px rows, var(--kl-line-ctrl) line, radius 12, 15px/600 labels).
   /assessment/ is koach-only and stays for the koach-side batch.
   ========================================================================== */
/* -- page: white, no grey bands, the JS card becomes the page -- */
body.koach-light.koach-form-page #content,
body.koach-light.koach-form-page .fusion-page-title-bar,
body.koach-light.koach-form-page .fusion-row,
body.koach-light.koach-form-page .fusion-layout-column,
body.koach-light.koach-form-page .fusion-column-wrapper,
body.koach-light.koach-form-page .fusion-flex-container { background: transparent !important; }
body.koach-light.koach-form-page .koach-form-wrap { max-width: 960px; padding: 16px var(--kl-side) 96px !important; }
@media (min-width: 821px) { body.koach-light.koach-form-page .koach-form-wrap { padding: 32px 0 96px !important; } }
body.koach-light.koach-form-page .koach-form-card { background: transparent !important; border: 0 !important; border-radius: 0 !important; overflow: visible !important; }
body.koach-light.koach-form-page .koach-form-card-header { background: transparent !important; padding: 0 0 8px !important; }
body.koach-light.koach-form-page .koach-form-card-header .kfch-label { font-family: var(--kl-font) !important; font-size: 13px !important; font-weight: 600 !important; letter-spacing: .06em !important; color: var(--kl-ink2) !important; margin: 0 0 6px !important; }
body.koach-light.koach-form-page .koach-form-card-header .kfch-title { font-family: var(--kl-title-font) !important; font-size: 40px !important; font-weight: 400 !important; line-height: 1 !important; color: var(--kl-ink) !important; margin: 0 0 8px !important; }
body.koach-light.koach-form-page .koach-form-card-header .kfch-desc { font-family: var(--kl-font) !important; font-size: 16px !important; line-height: 1.5 !important; color: var(--kl-ink2) !important; max-width: 70ch; }
body.koach-light.koach-form-page .koach-form-card-body { background: transparent !important; padding: 0 !important; }
/* -- the form's own title repeats the page title: hidden; its description stays as page text -- */
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_heading .gform_title { display: none !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_heading .gform_description { font-family: var(--kl-font) !important; font-size: 16px !important; line-height: 1.5 !important; color: var(--kl-ink2) !important; max-width: 70ch; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_heading .gform_description:empty { display: none !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme { --gf-form-gap-y: 24px !important; --gf-color-primary: #C0161C; --gf-color-primary-rgb: 192, 22, 28; --gf-ctrl-border-color: var(--kl-line-ctrl); font-family: var(--kl-font) !important; }
/* -- sections: one line on top, DM Sans 20 heading, no second line under the heading -- */
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield.gsection { border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; padding: var(--kl-section) 0 0 !important; margin: 8px 0 0 !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_page_fields .gform_fields > .gfield.gsection:first-child,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_body > .gform_fields > .gfield.gsection:first-child { border-top: 0 !important; padding-top: 0 !important; margin-top: 0 !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gsection_title { font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; line-height: 1.25 !important; color: var(--kl-ink) !important; border: 0 !important; padding: 0 !important; margin: 0 0 6px !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gsection_description { font-family: var(--kl-font) !important; font-size: 16px !important; line-height: 1.5 !important; color: var(--kl-ink2) !important; max-width: 70ch; }
/* -- labels, questions, help text -- */
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_label,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme legend.gfield_label { font-family: var(--kl-font) !important; font-size: 16px !important; font-weight: 600 !important; line-height: 1.4 !important; color: var(--kl-ink) !important; margin: 0 0 8px !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_required_text { font-size: 13px !important; font-weight: 400 !important; color: var(--kl-ink2) !important; margin-left: 4px; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_description,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield-description,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform-field-label--type-sub { font-family: var(--kl-font) !important; font-size: 14px !important; line-height: 1.5 !important; color: var(--kl-ink2) !important; }
/* -- typed fields (.kl-field) -- */
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme input[type="text"],
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme input[type="email"],
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme input[type="number"],
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme input[type="tel"],
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme input[type="date"],
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme input[type="url"],
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .ginput_container input:not([type="radio"]):not([type="checkbox"]):not([type="button"]):not([type="submit"]):not([type="file"]):not([type="hidden"]),
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme select { height: var(--kl-h-secondary) !important; min-height: var(--kl-h-secondary) !important; padding: 0 14px !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-field) !important; background-color: #FFFFFF !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 17px !important; line-height: 1.3 !important; box-shadow: none !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme textarea { min-height: 96px !important; padding: 10px 14px !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-field) !important; background: #FFFFFF !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 16px !important; line-height: 1.5 !important; box-shadow: none !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme input::placeholder,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme textarea::placeholder { color: var(--kl-placeholder) !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme input:focus,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme select:focus,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme textarea:focus { border-color: var(--kl-red) !important; box-shadow: 0 0 0 3px rgba(192,22,28,.12) !important; outline: none !important; background: #FFFFFF !important; }
/* -- choices: each answer a full-width row (board A7-CheckIn); the whole row is the tap target -- */
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_radio,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_checkbox { display: flex !important; flex-direction: column !important; gap: 8px !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_radio .gchoice,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_checkbox .gchoice { display: flex !important; align-items: center !important; gap: 0 !important; min-height: var(--kl-h-secondary); margin: 0 !important; padding: 0 0 0 14px !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-field) !important; background: #FFFFFF !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gchoice:has(input:checked) { border-color: var(--kl-red) !important; box-shadow: inset 0 0 0 1px var(--kl-red) !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gchoice input[type="radio"],
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gchoice input[type="checkbox"] { flex: 0 0 auto !important; width: 20px !important; height: 20px !important; margin: 0 !important; accent-color: var(--kl-red) !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gchoice label { flex: 1 1 auto !important; display: flex !important; align-items: center !important; min-height: calc(var(--kl-h-secondary) - 2px); padding: 10px 14px 10px 12px !important; margin: 0 !important; max-width: none !important; font-family: var(--kl-font) !important; font-size: 16px !important; font-weight: 400 !important; line-height: 1.4 !important; color: var(--kl-ink) !important; cursor: pointer; }
/* -- progress (HLQ, 13 steps) -- */
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gf_progressbar_wrapper { margin: 0 0 24px !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gf_progressbar_title { font-family: var(--kl-font) !important; font-size: 14px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink2) !important; margin: 0 0 8px !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gf_progressbar { background: var(--kl-ctrl) !important; border: 0 !important; border-radius: 6px !important; height: 6px !important; box-shadow: none !important; padding: 0 !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gf_progressbar_percentage { background: var(--kl-ink) !important; /* S333-B9: progress is not an action (R3), owner yes */ border-radius: 6px !important; height: 6px !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gf_progressbar_percentage span { display: none !important; }
/* -- buttons: Next / Submit = primary; Previous = secondary -- */
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_footer,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_page_footer { border-top: 1px solid var(--kl-line-section) !important; padding: var(--kl-section) 0 0 !important; margin: 16px 0 0 !important; gap: 12px !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_footer input[type="submit"],
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_page_footer input[type="submit"],
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_page_footer .gform_next_button,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_button { min-height: var(--kl-h-primary) !important; padding: 0 20px !important; border: 0 !important; border-radius: var(--kl-r-btn) !important; background: var(--kl-red) !important; color: #FFFFFF !important; font-family: var(--kl-font) !important; font-size: 17px !important; font-weight: 700 !important; box-shadow: var(--kl-sh-primary) !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_page_footer .gform_next_button:hover,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_button:hover,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme input[type="submit"]:hover { background: var(--kl-red-press) !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_page_footer .gform_previous_button { min-height: var(--kl-h-secondary) !important; padding: 0 20px !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-btn) !important; background: var(--kl-ctrl-bg) !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 16px !important; font-weight: 600 !important; box-shadow: none !important; }
/* -- errors and the thank-you message: notes, no frame colours beyond the error note -- */
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_validation_errors,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .validation_error { background: var(--kl-error-bg) !important; border: 1px solid var(--kl-error-line) !important; border-radius: var(--kl-r-field) !important; color: var(--kl-ink) !important; box-shadow: none !important; font-family: var(--kl-font) !important; font-size: 15px !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_validation_errors * { color: var(--kl-ink) !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_error .gfield_label { color: var(--kl-ink) !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_validation_message,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .validation_message { background: transparent !important; border: 0 !important; padding: 6px 0 0 !important; color: var(--kl-red) !important; font-family: var(--kl-font) !important; font-size: 14px !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_error input,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_error select,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_error textarea { border-color: var(--kl-red) !important; background: #FFFFFF !important; }
body.koach-light.koach-form-page .gform_confirmation_message { background: var(--kl-soft) !important; border: 0 !important; border-radius: var(--kl-r-field) !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 16px !important; padding: 16px 18px !important; }
/* -- signature (PAR-Q+ declaration) -- */
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .ginput_container_signature canvas,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .ginput_container_signature .gform-signature-canvas { border: 1px solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-field) !important; }

/* -- walk 21: Check-In says its name once and has one intro; questions keep a reading width on desktop -- */
body.koach-light.koach-form-page.koach-app-check-in .koach-form-card-header .kfch-label,
body.koach-light.koach-form-page.koach-app-check-in .koach-form-card-header .kfch-desc { display: none !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_label,
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_description { max-width: 70ch; }

/* ==========================================================================
   26. ONE LINE BETWEEN GROUPS + THE EXERCISE ARROW (S330-B21, owner 09:48: "double separator lines under each
   exercise", "a dropdown arrow on the exercises"). Found by the S330 measured sweep (lines up to 32px apart).
   ========================================================================== */
/* Program Card: the last exercise of a category (and of the list) drops its row line; the next category brings its own */
body.koach-light .koach-program-card.kpc-light .kpc-station:has(+ .kpcl-role),
body.koach-light .koach-program-card.kpc-light .kpc-station:not(:has(~ .kpc-station)) { border-bottom: 0 !important; }
/* Program Card: the open/closed arrow on every exercise */
body.koach-light .koach-program-card.kpc-light .kpc-acc-chev { display: inline-flex !important; align-items: center; color: var(--kl-ink2); margin-left: 6px; }
body.koach-light .koach-program-card.kpc-light .kpc-acc-chev svg { width: 20px; height: 20px; }
body.koach-light .koach-program-card.kpc-light .kpc-station.is-open .kpc-acc-chev { transform: rotate(180deg); }
/* the open exercise's up arrow sits top-right, where every closed row's down arrow sits (owner 16:50: "no collapse up arrow") */
body.koach-light .koach-program-card.kpc-light .kpc-station.is-open > .kpc-card-hd { position: relative; }
body.koach-light .koach-program-card.kpc-light .kpc-station.is-open .kpc-acc-chev { position: absolute; top: 6px; right: 0; margin: 0; width: 44px; height: 44px; justify-content: flex-end; transform: none !important; }
/* walk 25: turning the whole 44px box drew the arrow on its left; turn only the arrow so it stays on the right edge */
body.koach-light .koach-program-card.kpc-light .kpc-station.is-open .kpc-acc-chev svg { transform: rotate(180deg); }
body.koach-light .koach-program-card.kpc-light .kpc-station.is-open .kpc-hd-main { padding-right: 44px; }
/* My Documents: the uploads group row drops its line when the upload section's line follows */
body.koach-light details.kmydocs-group:not(:has(~ *)) > .kmydocs-group-sum { border-bottom: 0 !important; }
/* Program Card categories, option B (owner 2026-10-17: "B grey band", "enough padding for the dot inside"): a soft grey
   band holds each canfitpro category name (names unchanged, D595); 16px inside so the dot never touches its edge.
   Kept inside the content width (the card clips anything wider). Amends standard v3 s.4.3 at close. */
body.koach-light .koach-program-card.kpc-light .kpcl-role { background: var(--kl-soft); border: 0 !important; border-radius: 10px; margin: 32px 0 4px !important; padding: 14px 16px !important; }
body.koach-light .koach-program-card.kpc-light .kpc-log-hint + .kpcl-role { margin-top: 20px !important; }
body.koach-light .koach-program-card.kpc-light .kpcl-role .kl-role-name { font-size: 15px; letter-spacing: .06em; text-transform: uppercase; }
body.koach-light .koach-program-card.kpc-light .kpcl-role .kl-role-desc { font-size: 13px; margin-top: 4px; }
body.koach-light .koach-program-card.kpc-light .kpcl-role + .kpc-station.is-open { border-top: 0 !important; margin-top: 0 !important; }

/* Program Card: "Training at" value opens the setup sheet (owner 2026-10-17 16:45) */
body.koach-light .koach-program-card.kpc-light button.kpcl-mode-link { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; margin: -12px 0; padding: 0; background: none !important; border: 0 !important; box-shadow: none !important; font-family: var(--kl-font) !important; font-size: 15px; font-weight: 600; color: var(--kl-red) !important; text-transform: none; letter-spacing: 0; cursor: pointer; text-align: left; }
body.koach-light .koach-program-card.kpc-light .kpcl-mode-chev { font-size: 20px; line-height: 1; }

/* ==========================================================================
   27. WEEKLY CHECK-IN FORM, standard v3 s.7b (S330-B22): four sections, 1-5 number rows with end labels
   (headings + rows drawn by koach_light_checkin_groups in koach-app-pages.php).
   ========================================================================== */
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield.gsection.kl-ci-sec--first { border-top: 0 !important; padding-top: 0 !important; margin-top: 0 !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_radio.kl-scale { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 8px !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .kl-scale .gchoice { position: relative; padding: 0 !important; min-height: var(--kl-h-tap); background: var(--kl-ctrl) !important; justify-content: center !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .kl-scale .gchoice input { position: absolute !important; opacity: 0 !important; width: 100% !important; height: 100% !important; inset: 0; margin: 0 !important; cursor: pointer; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .kl-scale .gchoice label { justify-content: center !important; padding: 0 !important; min-height: var(--kl-h-tap); font-size: 16px !important; font-weight: 600 !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .kl-scale .gchoice:has(input:checked) { background: #FFFFFF !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .kl-scale .gchoice:has(input:checked) label { color: var(--kl-red) !important; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .kl-scale .gchoice:has(input:focus-visible) { outline: 2px solid var(--kl-red); outline-offset: 2px; }
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .kl-scale-ends { display: flex; justify-content: space-between; gap: 12px; margin-top: 6px; font-size: 13px; color: var(--kl-ink2); }

/* ==========================================================================
   28. ACCOUNT + LOGIN (S330-B24, owner 2026-10-17: mock-ups approved, "Add My Account", "Preview link").
   Look only: koach-account.php (client path) and the login shortcode keep every field, tab, link and script.
   Login is signed out: it shows this look only with ?kl_preview=<key> (koach_light_on) until the live switch.
   ========================================================================== */
body.koach-light .kac-wrap { background: transparent !important; color: var(--kl-ink); font-family: var(--kl-font); max-width: 960px; }
body.koach-light h1.kl-acct-title { font-family: var(--kl-title-font) !important; font-size: 40px !important; font-weight: 400 !important; line-height: 1 !important; color: var(--kl-ink) !important; letter-spacing: 0 !important; text-transform: none !important; margin: 0 0 16px !important; max-width: 960px; }
/* header: light avatar, name, email, status as a word with a dot under the email */
body.koach-light .kac-header { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 0 20px !important; margin: 0 !important; border-radius: 0 !important; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 12px; }
body.koach-light .kac-avatar { background: var(--kl-soft) !important; border: 1px solid var(--kl-line-section) !important; }
body.koach-light .kac-av-first { color: #C0161C !important; } body.koach-light .kac-av-last { color: #21252E !important; }
body.koach-light .kac-welcome { color: var(--kl-ink) !important; font-size: 20px !important; font-weight: 700 !important; }
body.koach-light .kac-email { color: var(--kl-ink2) !important; font-size: 14px !important; }
body.koach-light .kac-header-badge { display: flex !important; justify-content: flex-start !important; text-align: left !important; flex-basis: 100%; width: 100%; background: transparent !important; border: 0 !important; padding: 0 0 0 60px !important; margin-top: -4px; color: var(--kl-ok) !important; font-size: 14px !important; font-weight: 600 !important; }
/* tabs: phone = light dropdown control; desktop = underline tabs */
body.koach-light .kac-tab-dd-trigger { background: #FFFFFF !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; /* S333-B3: R2 width */ border-radius: 12px !important; min-height: 48px; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 16px !important; font-weight: 600 !important; box-shadow: none !important; }
body.koach-light .kac-tab-dd-chev { color: var(--kl-ink2) !important; }
body.koach-light .kac-tabs { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; padding: 0 !important; gap: 24px !important; box-shadow: none !important; }
body.koach-light .kac-tab-btn { background: transparent !important; border: 0 !important; border-bottom: 2px solid transparent !important; border-radius: 0 !important; color: var(--kl-ink2) !important; font-family: var(--kl-font) !important; font-size: 16px !important; font-weight: 600 !important; padding: 12px 0 !important; min-height: 44px; box-shadow: none !important; }
body.koach-light .kac-tab-btn.active { color: var(--kl-ink) !important; border-bottom-color: var(--kl-red) !important; }
/* sections */
body.koach-light .kac-rvsec { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; padding: var(--kl-section) 0 8px !important; margin: 24px 0 0 !important; }
body.koach-light .kac-rvsec-t { font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; color: var(--kl-ink) !important; text-transform: none !important; letter-spacing: 0 !important; }
/* settings rows: no table box; a row line between rows */
body.koach-light .kac-pt-wrap { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; overflow: visible !important; }
body.koach-light .kac-pt, body.koach-light .kac-pt tr, body.koach-light .kac-pt td { background: transparent !important; border: 0 !important; }
body.koach-light .kac-pt tr + tr td { border-top: 1px solid var(--kl-line-row) !important; }
body.koach-light .kac-pt td.rail { font-family: var(--kl-font) !important; font-size: 14px !important; font-weight: 400 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; padding: 14px 12px 14px 0 !important; width: 40%; vertical-align: middle; }
body.koach-light .kac-pt td.val { font-family: var(--kl-font) !important; font-size: 16px !important; color: var(--kl-ink) !important; padding: 14px 0 !important; }
body.koach-light .kac-status-pill { background: transparent !important; border: 0 !important; padding: 0 !important; color: var(--kl-ok) !important; font-size: 15px !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light .kac-order-status::before, body.koach-light .kac-header-badge::before, body.koach-light .kac-status-pill::before { background: currentColor !important; }
/* fields (Billing, Profile, Password): no row lines; stacked on phone (D486) */
body.koach-light .kac-pt:has(input) tr + tr td { border-top: 0 !important; }
body.koach-light .kac-pt td.val input, body.koach-light .kac-pt td.val select { height: 48px !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: 12px !important; background: #FFFFFF !important; font-size: 17px !important; color: var(--kl-ink) !important; padding: 0 14px !important; box-shadow: none !important; width: 100% !important; }
@media (max-width: 820px) {
  body.koach-light .kac-pt:has(input) tr, body.koach-light .kac-pt:has(input) td { display: block; width: 100% !important; }
  body.koach-light .kac-pt:has(input) td.rail { padding: 14px 0 6px !important; font-weight: 600 !important; color: var(--kl-ink) !important; }
  body.koach-light .kac-pt:has(input) td.val { padding: 0 0 4px !important; }
}
/* actions */
body.koach-light .kac-sub-action-link { background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; border-radius: 14px !important; min-height: 48px; display: inline-flex !important; align-items: center; padding: 0 16px !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 16px !important; font-weight: 600 !important; box-shadow: none !important; }
body.koach-light .kac-save-btn { background: var(--kl-red) !important; color: #FFFFFF !important; border: 0 !important; border-radius: 14px !important; min-height: 54px; padding: 0 24px !important; font-family: var(--kl-font) !important; font-size: 17px !important; font-weight: 700 !important; box-shadow: var(--kl-sh-primary) !important; }
/* orders: phone = rows, no cards; desktop = plain table */
body.koach-light .kac-ktm-card { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; padding: 12px 0 !important; margin: 0 !important; overflow: visible !important; }
body.koach-light .kac-ktm-strip { background: transparent !important; border: 0 !important; padding: 0 0 6px !important; font-size: 16px !important; font-weight: 700 !important; color: var(--kl-ink) !important; }
body.koach-light .kac-ktm-row { display: flex !important; justify-content: space-between; gap: 16px; background: transparent !important; border: 0 !important; padding: 4px 0 !important; }
body.koach-light .kac-ktm-row > * { border: 0 !important; box-shadow: none !important; padding: 0 !important; background: transparent !important; }
body.koach-light .kac-ktm-row .k { font-size: 14px !important; font-weight: 400 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light .kac-ktm-row .v { font-size: 15px !important; color: var(--kl-ink) !important; text-align: right; }
body.koach-light .kac-order-status { background: transparent !important; border: 0 !important; padding: 0 !important; font-size: 14px !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light .kac-order-status--completed { color: var(--kl-ok) !important; } body.koach-light .kac-order-status--cancelled { color: var(--kl-ink2) !important; }
body.koach-light .kac-ktwrap { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
body.koach-light .kac-kt th { background: transparent !important; color: var(--kl-ink2) !important; font-size: 13px !important; font-weight: 600 !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-section) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light .kac-wrap .kac-kt tbody tr td, body.koach-light .kac-wrap .kac-kt tbody tr td.rail { background: transparent !important; box-shadow: none !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; font-size: 15px !important; color: var(--kl-ink) !important; }
@media (min-width: 821px) {
  body.koach-light .kac-tabs { justify-content: flex-start !important; }
  body.koach-light .kac-tab-btn { flex: 0 0 auto !important; }
  body.koach-light .kac-tabs ~ .kac-tab-content > .kac-rvsec:first-child { border-top: 0 !important; margin-top: 8px !important; }
  body.koach-light .kac-pt { max-width: 640px; }
}
/* walk 27: whole item names on desktop (no "..."), and the page body lines up with the title */
body.koach-light .kac-wrap .kac-kt tbody tr td { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; vertical-align: top; }
body.koach-light .kac-wrap .kac-kt tbody tr td:nth-child(3) { font-size: 15px !important; color: var(--kl-ink) !important; }
body.koach-light .kac-wrap { padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; }
body.koach-light .kac-header-left { padding: 0 !important; margin: 0 !important; }
body.koach-light .kac-wrap .kac-header { flex-direction: row !important; align-items: center !important; }
/* -- Login (signed out; preview link only until the live switch) -- */
html body.koach-light .klg-wrap, html body.koach-light #main, html body.koach-light #wrapper, html body.koach-light .fusion-fullwidth.koach-content-area { background: #FFFFFF !important; }
html body.koach-light .klg-wrap .klg-card { background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; }
html body.koach-light .klg-wrap .klg-card-head { background: transparent !important; padding: 0 0 16px !important; }
html body.koach-light .klg-wrap .klg-card .klg-card-head .klg-label { color: var(--kl-ink2) !important; }
html body.koach-light .klg-wrap .klg-card .klg-card-head .klg-title { font-family: var(--kl-title-font) !important; font-size: 40px !important; font-weight: 400 !important; color: var(--kl-ink) !important; line-height: 1 !important; }
html body.koach-light .klg-wrap .klg-card .klg-card-head .klg-desc { color: var(--kl-ink2) !important; font-size: 16px !important; }
html body.koach-light .klg-wrap .klg-card-body { padding: 0 !important; background: transparent !important; }
html body.koach-light .klg-wrap .klg-card .klg-field input { height: 48px !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: 12px !important; background: #FFFFFF !important; font-size: 17px !important; }
html body.koach-light .klg-wrap .klg-submit { min-height: 54px !important; border-radius: 14px !important; font-size: 17px !important; font-weight: 700 !important; box-shadow: var(--kl-sh-primary) !important; }
html body.koach-light .klg-wrap .klg-inner { padding-left: var(--kl-side) !important; padding-right: var(--kl-side) !important; }

/* ==========================================================================
   29. CART, CHECKOUT, THANK-YOU (S330-B26, owner 2026-10-17 18:13 "Approved. Go." after three mock-up rounds).
   Look only: every price, plan fact, legal line, field, consent box and the Stripe payment step stay as they are.
   Body class koach-light-shop is added by koach_light_body_class() for a light viewer on is_cart()/is_checkout().
   No containers: only text boxes keep an outline; the koach note is the standard koach bubble (s.5).
   ========================================================================== */
html body.koach-light-shop, html body.koach-light-shop #wrapper, html body.koach-light-shop #main, html body.koach-light-shop .fusion-wrapper, html body.koach-light-shop main, html body.koach-light-shop section.full-width, html body.koach-light-shop .kct-wrap, html body.koach-light-shop .fusion-row { background: #FFFFFF !important; }
/* -- cart -- */
html body.koach-light-shop .kct-item-card, html body.koach-light-shop .kct-summary, html body.koach-light-shop .kct-trust { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; box-shadow: none !important; overflow: visible !important; }
html body.koach-light-shop .kct-item-card-header, html body.koach-light-shop .kct-summary-header { background: transparent !important; padding: 24px 0 8px !important; height: auto !important; }
html body.koach-light-shop .kct-item-card-header *, html body.koach-light-shop .kct-summary-header * , html body.koach-light-shop .kct-item-card-header, html body.koach-light-shop .kct-summary-header { color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; }
html body.koach-light-shop .kct-solo-option { background: #FFFFFF !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: 12px !important; color: var(--kl-ink) !important; }
html body.koach-light-shop .kct-solo-option * { color: var(--kl-ink) !important; }
html body.koach-light-shop .kct-solo-option.active { background: #FFFFFF !important; border: 2px solid var(--kl-red) !important; }
html body.koach-light-shop .kct-solo-option.active * { color: var(--kl-ink) !important; }
html body.koach-light-shop .kct-coupon-notice { background: var(--kl-soft) !important; border: 0 !important; border-radius: 12px !important; color: var(--kl-ink) !important; }
html body.koach-light-shop .kct-wrap a.checkout-button, html body.koach-light-shop .kct-checkout-btn, html body.koach-light-shop .kct-summary a.button, html body.koach-light-shop .kct-summary .button { border-radius: 14px !important; min-height: 54px !important; box-shadow: var(--kl-sh-primary) !important; font-weight: 700 !important; }
/* -- checkout -- */
html body.koach-light-shop.woocommerce-checkout .fusion-woo-checkout-billing-tb, html body.koach-light-shop.woocommerce-checkout .fusion-woo-checkout-order-review-tb, html body.koach-light-shop.woocommerce-checkout .fusion-woo-checkout-payment-tb { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; box-shadow: none !important; padding-left: 0 !important; padding-right: 0 !important; overflow: visible !important; }
html body.koach-light-shop.woocommerce-checkout .fusion-woo-checkout-billing-tb::before, html body.koach-light-shop.woocommerce-checkout .fusion-woo-checkout-order-review-tb::before, html body.koach-light-shop.woocommerce-checkout .fusion-woo-checkout-payment-tb::before { background: transparent !important; color: var(--kl-ink) !important; height: auto !important; padding: 24px 0 12px !important; margin: 0 !important; font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; }
html body.koach-light-shop.woocommerce-checkout .fusion-woo-checkout-billing-tb::before { content: 'Billing details' !important; }
html body.koach-light-shop.woocommerce-checkout .fusion-woo-checkout-order-review-tb::before { content: 'Order summary' !important; }
html body.koach-light-shop.woocommerce-checkout .fusion-woo-checkout-payment-tb::before { content: 'Payment' !important; }
html body.koach-light-shop.woocommerce-checkout .woocommerce-billing-fields input.input-text, html body.koach-light-shop.woocommerce-checkout .woocommerce-billing-fields select, html body.koach-light-shop.woocommerce-checkout .woocommerce-billing-fields .select2-selection { height: 48px !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: 12px !important; background: #FFFFFF !important; font-size: 17px !important; box-shadow: none !important; }
html body.koach-light-shop.woocommerce-checkout .woocommerce-billing-fields label { font-family: var(--kl-font) !important; font-size: 15px !important; font-weight: 600 !important; color: var(--kl-ink) !important; }
html body.koach-light-shop.woocommerce-checkout ul.wc_payment_methods { background: transparent !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: 12px !important; }
html body.koach-light-shop.woocommerce-checkout #place_order { border-radius: 14px !important; min-height: 54px !important; box-shadow: var(--kl-sh-primary) !important; font-weight: 700 !important; }
html body.koach-light-shop .kco-contract-h { font-family: var(--kl-font) !important; font-size: 16px !important; font-weight: 700 !important; color: var(--kl-ink) !important; text-transform: none !important; letter-spacing: 0 !important; }
/* -- thank-you -- */
html body.koach-light-shop .ktq-hero { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 8px 0 16px !important; }
html body.koach-light-shop .ktq-hero * { color: var(--kl-ink2) !important; }
html body.koach-light-shop .ktq-hero h1, html body.koach-light-shop .ktq-hero h2 { font-family: var(--kl-title-font) !important; font-size: 40px !important; font-weight: 400 !important; color: var(--kl-ink) !important; }
html body.koach-light-shop .ktq-hero [class*="tag"], html body.koach-light-shop .ktq-hero .ktq-tagline { color: var(--kl-red) !important; }
html body.koach-light-shop .ktq-meta-pill { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; padding: 12px 0 !important; margin: 0 !important; }
html body.koach-light-shop .ktq-step { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; padding: 14px 0 !important; margin: 0 !important; }
html body.koach-light-shop .ktq-wrap a.ktq-cta, html body.koach-light-shop a[class*="ktq"][class*="btn"], html body.koach-light-shop .ktq-cta { border-radius: 14px !important; min-height: 54px !important; box-shadow: var(--kl-sh-primary) !important; font-weight: 700 !important; }
html body.koach-light-shop.woocommerce-checkout, html body.koach-light-shop.woocommerce-checkout #wrapper, html body.koach-light-shop.woocommerce-checkout #main, html body.koach-light-shop.woocommerce-checkout .fusion-wrapper, html body.koach-light-shop.woocommerce-checkout main, html body.koach-light-shop.woocommerce-checkout section.full-width, html body.koach-light-shop.woocommerce-checkout .fusion-fullwidth, html body.koach-light-shop.woocommerce-checkout .fusion-column-wrapper { background: #FFFFFF !important; background-color: #FFFFFF !important; }
html body.koach-light-shop.woocommerce-checkout .woocommerce-checkout-review-order-table, html body.koach-light-shop.woocommerce-checkout .woocommerce-checkout-review-order-table * { background-color: transparent !important; }
html body.koach-light-shop.woocommerce-checkout .fusion-woo-checkout-billing-tb > *, html body.koach-light-shop.woocommerce-checkout .fusion-woo-checkout-order-review-tb > *, html body.koach-light-shop.woocommerce-checkout .fusion-woo-checkout-payment-tb > *, html body.koach-light-shop.woocommerce-checkout .woocommerce-billing-fields__field-wrapper { padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; }
/* -- no containers (owner 17:5x) -- */
html body.koach-light-shop .kct-item, html body.koach-light-shop .kct-includes, html body.koach-light-shop .kct-solo-wrap, html body.koach-light-shop .kct-trust, html body.koach-light-shop .kct-summary-body { padding-left: 0 !important; padding-right: 0 !important; background: transparent !important; }
html body.koach-light-shop .kct-includes { border-top: 1px solid var(--kl-line-section) !important; }
html body.koach-light-shop .kct-coupon-notice, html body.koach-light-shop .kct-coupon-notice.success { background: transparent !important; border: 0 !important; padding: 4px 0 !important; color: var(--kl-ok) !important; }
/* plan choices = radio rows, no boxes */
html body.koach-light-shop .kct-solo-option, html body.koach-light-shop .kct-solo-option.active { background: transparent no-repeat 0 50% / 22px 22px !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; padding: 14px 0 14px 36px !important; margin: 0 !important; }
html body.koach-light-shop .kct-solo-option { background-image: radial-gradient(circle, #FFFFFF 52%, #8A909C 54%, #8A909C 64%, transparent 66%) !important; }
html body.koach-light-shop .kct-solo-option.active { background-image: radial-gradient(circle, #C0161C 30%, #FFFFFF 32%, #FFFFFF 52%, #C0161C 54%, #C0161C 64%, transparent 66%) !important; }
html body.koach-light-shop .kct-solo-option.active * { color: var(--kl-ink) !important; }
/* checkout */
html body.koach-light-shop.woocommerce-checkout #main section.full-width, html body.koach-light-shop.woocommerce-checkout #main .fusion-column-wrapper { background: #FFFFFF !important; background-color: #FFFFFF !important; }
html body.koach-light-shop.woocommerce-checkout td.product-name { padding-left: 0 !important; padding-right: 0 !important; }
html body.koach-light-shop.woocommerce-checkout .kco-plan-total { background: transparent !important; padding: 8px 0 !important; border-radius: 0 !important; }
html body.koach-light-shop.woocommerce-checkout ul.wc_payment_methods { border: 0 !important; padding: 0 !important; }
html body.koach-light-shop.woocommerce-checkout .payment_box { background: transparent !important; padding: 8px 0 0 !important; }
html body.koach-light-shop.woocommerce-checkout .payment_box::before { display: none !important; }
/* thank-you: the koach note is the standard koach bubble (standard v3 s.5) */
html body.koach-light-shop .ktq-signature { background: var(--kl-soft) !important; border: 1px solid var(--kl-line-bubble) !important; border-radius: 4px 16px 16px 16px !important; padding: 16px !important; }
html body.koach-light-shop.woocommerce-checkout #main .woocommerce-checkout-review-order-table td.product-name, html body.koach-light-shop.woocommerce-checkout #main .woocommerce-checkout-review-order-table th, html body.koach-light-shop.woocommerce-checkout #main .woocommerce-checkout-review-order-table td { padding-left: 0 !important; padding-right: 0 !important; }
html body.koach-light-shop.woocommerce-checkout #main .kco-plan-total { background: transparent !important; background-color: transparent !important; padding: 8px 0 !important; border-radius: 0 !important; }
html body.koach-light-shop.woocommerce-checkout #main ul.wc_payment_methods.payment_methods { border: 0 !important; padding: 0 !important; background: transparent !important; }
html body.koach-light-shop.woocommerce-checkout #main .payment_box.payment_method_stripe { background: transparent !important; background-color: transparent !important; padding: 8px 0 0 !important; }
html body.koach-light-shop.woocommerce-checkout #main .fusion-column-wrapper { background: transparent !important; background-color: transparent !important; }
html body.koach-light-shop.woocommerce-checkout #main .fusion-woo-checkout-billing-tb > *, html body.koach-light-shop.woocommerce-checkout #main .fusion-woo-checkout-payment-tb > *, html body.koach-light-shop.woocommerce-checkout #main .woocommerce-billing-fields, html body.koach-light-shop.woocommerce-checkout #main .woocommerce-billing-fields__field-wrapper, html body.koach-light-shop.woocommerce-checkout #main .woocommerce-checkout-payment, html body.koach-light-shop.woocommerce-checkout #main .kco-contract { padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; }
/* -- standard type, spacing and widths; the "Best value" tag (owner 18:08) -- */
/* side gutter 20px (standard 1.2) */
@media (max-width: 820px) {
  html body.koach-light-shop .kct-page { padding-left: 20px !important; padding-right: 20px !important; }
  html body.koach-light-shop .ktq-wrap { padding-left: 4px !important; padding-right: 4px !important; }
}
/* page titles: Bebas 40 (standard 1.3) */
html body.koach-light-shop .kct-page-title { font-family: var(--kl-title-font) !important; font-size: 40px !important; font-weight: 400 !important; line-height: 1 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink) !important; margin: 8px 0 8px !important; }
/* sub-headings inside a section: 16 bold ink, sentence case (no tiny caps) */
html body.koach-light-shop .kct-includes-title, html body.koach-light-shop .kct-solo-label { font-family: var(--kl-font) !important; font-size: 16px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink) !important; margin: 0 0 10px !important; display: block; }
html body.koach-light-shop .kct-includes { padding-top: 20px !important; padding-bottom: 20px !important; }
html body.koach-light-shop .kct-includes-item { font-size: 15px !important; line-height: 1.45 !important; color: var(--kl-ink) !important; padding: 5px 0 !important; }
/* plan rows: name + tag left, price right, one line under per row */
html body.koach-light-shop .kct-solo-options { display: flex !important; flex-direction: column !important; gap: 0 !important; }
html body.koach-light-shop .kct-solo-option, html body.koach-light-shop .kct-solo-option.active { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "name price" "per price"; align-items: center; column-gap: 12px; row-gap: 2px; min-height: 64px; width: 100% !important; text-align: left !important; padding: 14px 0 14px 38px !important; cursor: pointer; }
html body.koach-light-shop .kct-solo-tier-name { grid-area: name; font-family: var(--kl-font) !important; font-size: 16px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink) !important; display: flex; align-items: center; gap: 8px; }
html body.koach-light-shop .kct-solo-per { grid-area: per; font-size: 14px !important; color: var(--kl-ink2) !important; letter-spacing: 0 !important; text-transform: none !important; }
html body.koach-light-shop .kct-solo-price { grid-area: price; font-size: 20px !important; font-weight: 700 !important; color: var(--kl-ink) !important; text-align: right; white-space: nowrap; }
html body.koach-light-shop .kct-solo-price span { font-size: 14px !important; font-weight: 400 !important; color: var(--kl-ink2) !important; }
html body.koach-light-shop .kct-solo-option.active .kct-solo-tier-name { font-weight: 700 !important; }
/* "Best value": a small green tag beside the plan name (same green as "Active"), with real padding */
html body.koach-light-shop .kct-solo-option .kct-solo-badge { grid-area: name; justify-self: start; position: static !important; transform: none !important; margin: 0 0 0 calc(var(--kl-badge-x, 0px)) !important; inset: auto !important; display: inline-flex !important; align-items: center; height: 22px; padding: 0 10px !important; border-radius: 999px !important; background: #E7F6EF !important; border: 0 !important; color: #076E4C !important; font-family: var(--kl-font) !important; font-size: 12px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; box-shadow: none !important; }
html body.koach-light-shop .kct-solo-option:has(.kct-solo-badge) { grid-template-areas: "name price" "badge price" "per price"; }
html body.koach-light-shop .kct-solo-option:has(.kct-solo-badge) .kct-solo-badge { grid-area: badge; margin: 2px 0 2px !important; }
html body.koach-light-shop .kct-solo-note { font-size: 14px !important; line-height: 1.5 !important; color: var(--kl-ink2) !important; margin-top: 12px !important; }
/* cart summary rows: label left, value right, 15/16px */
html body.koach-light-shop .kct-summary-body { padding-top: 4px !important; }
html body.koach-light-shop .kct-summary-row { display: flex !important; justify-content: space-between !important; align-items: baseline; gap: 16px; padding: 12px 0 !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; }
html body.koach-light-shop .kct-summary-row-label { font-size: 15px !important; color: var(--kl-ink2) !important; }
html body.koach-light-shop .kct-summary-row-value { font-size: 16px !important; font-weight: 600 !important; color: var(--kl-ink) !important; text-align: right; }
html body.koach-light-shop .kct-summary-total { display: flex !important; justify-content: space-between !important; align-items: baseline; padding: 16px 0 !important; border: 0 !important; }
html body.koach-light-shop .kct-summary-total-label { font-size: 17px !important; font-weight: 700 !important; color: var(--kl-ink) !important; }
html body.koach-light-shop .kct-summary-total-value { font-size: 20px !important; font-weight: 700 !important; color: var(--kl-ink) !important; }
html body.koach-light-shop .kct-coupon-toggle { font-size: 15px !important; padding: 10px 0 !important; min-height: 44px; }
/* checkout order summary: the hidden 2nd column no longer squeezes the plan; full width of its column */
html body.koach-light-shop.woocommerce-checkout #main .woocommerce-checkout-review-order-table, html body.koach-light-shop.woocommerce-checkout #main .woocommerce-checkout-review-order-table tbody, html body.koach-light-shop.woocommerce-checkout #main .woocommerce-checkout-review-order-table tbody tr, html body.koach-light-shop.woocommerce-checkout #main .woocommerce-checkout-review-order-table td.product-name { display: block !important; width: 100% !important; }
html body.koach-light-shop.woocommerce-checkout #main .woocommerce-checkout-review-order-table tfoot { display: block !important; width: 100% !important; }
html body.koach-light-shop.woocommerce-checkout #main .woocommerce-checkout-review-order-table tr.order-total { display: flex !important; justify-content: space-between !important; align-items: baseline; width: 100%; padding: 16px 0 !important; border-top: 1px solid var(--kl-line-section) !important; }
html body.koach-light-shop.woocommerce-checkout #main .woocommerce-checkout-review-order-table tr.order-total th { font-family: var(--kl-font) !important; font-size: 17px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink) !important; border: 0 !important; }
html body.koach-light-shop.woocommerce-checkout #main .woocommerce-checkout-review-order-table tr.order-total td { font-size: 20px !important; font-weight: 700 !important; color: var(--kl-ink) !important; border: 0 !important; text-align: right; }
html body.koach-light-shop.woocommerce-checkout #main td.product-name { font-family: var(--kl-font) !important; font-size: 18px !important; font-weight: 700 !important; color: var(--kl-ink) !important; }
html body.koach-light-shop.woocommerce-checkout #main .kco-plan-total { display: flex !important; justify-content: space-between !important; align-items: baseline; gap: 16px; width: 100% !important; padding: 12px 0 !important; }
html body.koach-light-shop.woocommerce-checkout #main .kco-plan-total-l { font-size: 15px !important; font-weight: 400 !important; color: var(--kl-ink2) !important; }
html body.koach-light-shop.woocommerce-checkout #main .kco-plan-total-v { font-size: 24px !important; font-weight: 700 !important; color: var(--kl-ink) !important; }
html body.koach-light-shop.woocommerce-checkout #main .kco-plan-facts { margin: 4px 0 0 !important; padding-left: 18px !important; }
html body.koach-light-shop.woocommerce-checkout #main .kco-plan-facts li { font-size: 15px !important; font-weight: 400 !important; line-height: 1.5 !important; color: var(--kl-ink2) !important; padding: 3px 0 !important; }
html body.koach-light-shop.woocommerce-checkout #main .kco-contract-h { font-size: 16px !important; text-transform: none !important; letter-spacing: 0 !important; margin-bottom: 8px !important; }
html body.koach-light-shop.woocommerce-checkout #main .kco-contract-p { font-size: 15px !important; line-height: 1.55 !important; color: var(--kl-ink2) !important; }
/* thank-you: plain labels, a real section heading */
html body.koach-light-shop .ktq-meta-pill-label { font-size: 13px !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink2) !important; margin-bottom: 2px !important; }
html body.koach-light-shop .ktq-meta-pill-value { font-size: 16px !important; font-weight: 600 !important; }
html body.koach-light-shop .ktq-steps-heading { font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink) !important; border-top: 1px solid var(--kl-line-section); padding-top: 24px; margin: 24px 0 4px !important; }
html body.koach-light-shop .ktq-hero-tagline { font-size: 13px !important; }
html body.koach-light-shop.woocommerce-checkout #main .kco-plan-facts { padding-left: 0 !important; list-style: none !important; }
html body.koach-light-shop.woocommerce-checkout #main .kco-plan-facts li { position: relative; padding: 3px 0 3px 16px !important; list-style: none !important; }
html body.koach-light-shop.woocommerce-checkout #main .kco-plan-facts li::before { left: 0 !important; }
html body.koach-light-shop.woocommerce-checkout #main .woocommerce-checkout-review-order-table tr.order-total td, html body.koach-light-shop.woocommerce-checkout #main .woocommerce-checkout-review-order-table tr.order-total td * { font-size: 20px !important; font-weight: 700 !important; color: var(--kl-ink) !important; }
html body.koach-light-shop .kct-trust, html body.koach-light-shop .kct-trust * { font-size: 15px !important; color: var(--kl-ink) !important; }
@media (max-width: 820px) {
  html body.koach-light-shop.woocommerce-checkout #main .fusion-column-wrapper { padding-left: 20px !important; padding-right: 20px !important; }
}
html body.koach-light-shop .kct-summary-body > .kct-summary-row:first-child { flex-direction: column !important; align-items: flex-start !important; gap: 2px; }
html body.koach-light-shop .kct-summary-body > .kct-summary-row:first-child .kct-summary-row-value { text-align: left; }

/* ==========================================================================
   30. READABILITY FLOOR (S330 full sweep, owner 18:24): no pale or white text on white, no text under 13px,
   roomy text boxes, one line between groups. Applies to every light page.
   ========================================================================== */
/* -- the old pale greys become the standard's readable greys (the inactive-control grey --kl-inactive is untouched) -- */
body.koach-light, body.koach-light * { --c-muted: #4A515F; --k-muted: #4A515F; --kmd-muted: #4A515F; --kpc-muted: #4A515F; --phase-none-tx: #4A515F; --c-muted2: #5F6673; --k-light: #5F6673; --kmd-light-text: #5F6673; --kpc-muted2: #5F6673; }
/* -- My Plan (phone): text left white for the old dark canvas -- */
body.koach-light #kmd-tab-programs .tl, body.koach-light #kmd-tab-programs .kpp-mp-bank-count { color: var(--kl-ink) !important; }
body.koach-light #kmd-tab-programs .rem { color: var(--kl-ink2) !important; }
/* ---------- My Plan (the "programs" tab), phone + desktop: standard rows, no pills, no boxes ---------- */
body.koach-light #kmd-tab-programs .kpp-mp { background: transparent !important; padding: 0 !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; }
body.koach-light #kmd-tab-programs .kpp-mp-sechead { display: flex !important; flex-wrap: wrap !important; align-items: baseline !important; gap: 4px 12px !important; background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; box-shadow: none !important; margin: 24px 0 0 !important; padding: var(--kl-section) 0 12px !important; }
body.koach-light #kmd-tab-programs .kpp-mp > .kpp-mp-sechead:first-of-type { border-top: 0 !important; margin-top: 0 !important; padding-top: 0 !important; }
body.koach-light #kmd-tab-programs .kpp-mp-sechead .ic { display: none !important; }
body.koach-light #kmd-tab-programs .kpp-mp-sechead .tl { flex: 1 1 100% !important; font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink) !important; }
body.koach-light #kmd-tab-programs .kpp-mp-sechead .ct, body.koach-light #kmd-tab-programs .kpp-mp-bank-count { flex: 1 1 100% !important; font-size: 15px !important; font-weight: 600 !important; color: var(--kl-ink) !important; letter-spacing: 0 !important; text-transform: none !important; }
body.koach-light #kmd-tab-programs .kpp-mp-sechead .ct { font-weight: 400 !important; color: var(--kl-ink2) !important; }
body.koach-light #kmd-tab-programs .kpp-mp-bank-count .rem { font-size: 15px !important; font-weight: 400 !important; color: var(--kl-ink2) !important; }
body.koach-light #kmd-tab-programs .kpp-mp-sec { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; }
/* overview: label left, value right, a row line between rows, no column line */
body.koach-light #kmd-tab-programs .kpp-mp-ov dl { display: grid !important; grid-template-columns: minmax(96px, 34%) 1fr !important; margin: 0 !important; border: 0 !important; background: transparent !important; }
body.koach-light #kmd-tab-programs .kpp-mp-ov dt, body.koach-light #kmd-tab-programs .kpp-mp-ov dd { margin: 0 !important; padding: 12px 0 !important; border: 0 !important; border-top: 1px solid var(--kl-line-row) !important; background: transparent !important; }
body.koach-light #kmd-tab-programs .kpp-mp-ov dt:first-of-type, body.koach-light #kmd-tab-programs .kpp-mp-ov dd:first-of-type { border-top: 0 !important; }
body.koach-light #kmd-tab-programs .kpp-mp-ov dt { font-size: 14px !important; font-weight: 400 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light #kmd-tab-programs .kpp-mp-ov dd, body.koach-light #kmd-tab-programs .kpp-mp-ov dd b { font-size: 16px !important; font-weight: 400 !important; color: var(--kl-ink) !important; }
/* progress: legend + three stats as plain label/value */
body.koach-light #kmd-tab-programs .kpp-mp-bank-body { padding: 0 !important; background: transparent !important; border: 0 !important; }
body.koach-light #kmd-tab-programs .kpp-mp-bank-legend .bl { font-size: 14px !important; color: var(--kl-ink2) !important; letter-spacing: 0 !important; text-transform: none !important; }
body.koach-light #kmd-tab-programs .kpp-mp-bank-statband { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 12px !important; background: transparent !important; border: 0 !important; padding: 16px 0 0 !important; margin: 0 !important; text-align: left !important; }
body.koach-light #kmd-tab-programs .kpp-mp-bank-statband > div { text-align: left !important; background: transparent !important; border: 0 !important; padding: 0 !important; }
body.koach-light #kmd-tab-programs .kpp-mp-bank-statband .k { display: block; font-size: 13px !important; font-weight: 400 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light #kmd-tab-programs .kpp-mp-bank-statband .v { display: block; font-size: 16px !important; font-weight: 700 !important; color: var(--kl-ink) !important; margin-top: 2px; }
/* full plan (phone list): each block a row; phase and status as words with a dot (standard: phases are 10px dots) */
body.koach-light #kmd-tab-programs .kps-mc { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; }
body.koach-light #kmd-tab-programs .kps-mc:first-child { border-top: 0 !important; }
body.koach-light #kmd-tab-programs .kps-mc > summary { display: grid !important; grid-template-columns: minmax(0, 1fr) auto !important; align-items: center; gap: 4px 12px; padding: 14px 0 !important; list-style: none !important; cursor: pointer; min-height: 44px; }
body.koach-light #kmd-tab-programs .kps-mc > summary::-webkit-details-marker { display: none; }
body.koach-light #kmd-tab-programs .kps-mc .kpb-phase-pill, body.koach-light #kmd-tab-programs .kps-mc .kps-status-pill { display: inline-flex !important; align-items: center; gap: 6px; background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; margin: 0 12px 0 0 !important; height: auto !important; font-size: 14px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; box-shadow: none !important; }
body.koach-light #kmd-tab-programs .kps-mc .kpb-phase-pill::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: currentColor; flex: 0 0 auto; }
body.koach-light #kmd-tab-programs .kps-mc .kpb-phase-foundations { color: var(--kl-phase-tx) !important; }
body.koach-light #kmd-tab-programs .kps-mc .kpb-phase-evolution { color: #0B5F66 !important; }
body.koach-light #kmd-tab-programs .kps-mc .kps-status-pill { color: var(--kl-ink2) !important; }
body.koach-light #kmd-tab-programs .kps-mc .kps-status-pill::before { display: none !important; }
body.koach-light #kmd-tab-programs .kps-mc .kps-status-pill--done { color: var(--kl-ok) !important; }
body.koach-light #kmd-tab-programs .kps-mc .kps-status-pill--inprogress { color: var(--kl-ink) !important; }
body.koach-light #kmd-tab-programs .kps-mc .chev { grid-column: 2; grid-row: 1 / span 3; font-size: 18px !important; color: var(--kl-ink2) !important; }
body.koach-light #kmd-tab-programs .kps-mc-name { font-size: 17px !important; font-weight: 700 !important; color: var(--kl-ink) !important; }
body.koach-light #kmd-tab-programs .kps-mc-wk, body.koach-light #kmd-tab-programs .kps-mc-wk .dl { font-size: 14px !important; color: var(--kl-ink2) !important; }
body.koach-light #kmd-tab-programs .kps-mc-sec { background: transparent !important; border: 0 !important; padding: 0 0 12px !important; margin: 0 !important; font-size: 15px !important; line-height: 1.5 !important; color: var(--kl-ink2) !important; }
body.koach-light #kmd-tab-programs .kps-mc .lbl { display: block; font-size: 13px !important; font-weight: 400 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; margin-bottom: 2px; }
body.koach-light #kmd-tab-programs .kps-mc .val { font-size: 15px !important; font-weight: 600 !important; color: var(--kl-ink) !important; }
body.koach-light #kmd-tab-programs .kps-mc .val .sub { display: block; font-size: 14px !important; font-weight: 400 !important; color: var(--kl-ink2) !important; }
body.koach-light #kmd-tab-programs .kps-fitt-mini { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; }
body.koach-light #kmd-tab-programs .kps-fitt-mini .h { font-size: 14px !important; font-weight: 700 !important; color: var(--kl-ink) !important; text-transform: none !important; letter-spacing: 0 !important; background: transparent !important; border: 0 !important; padding: 4px 0 6px !important; }
body.koach-light #kmd-tab-programs .kps-fitt-mini .r { display: flex !important; justify-content: space-between; padding: 6px 0 !important; border: 0 !important; border-top: 1px solid var(--kl-line-row) !important; background: transparent !important; }
body.koach-light #kmd-tab-programs .kps-fitt-mini .fk { font-size: 14px !important; font-weight: 400 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light #kmd-tab-programs .kps-fitt-mini .fv { font-size: 14px !important; font-weight: 600 !important; color: var(--kl-ink) !important; }
body.koach-light #kmd-tab-programs .kpp-mp-tfoot { font-size: 14px !important; font-style: normal !important; color: var(--kl-ink2) !important; padding: 12px 0 0 !important; }
/* goal: plain text, no red bar */
body.koach-light #kmd-tab-programs .kpp-mp-goal { background: transparent !important; border: 0 !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; }
body.koach-light #kmd-tab-programs .kpp-mp-goal::before, body.koach-light #kmd-tab-programs .kpp-mp-goal::after { display: none !important; }
body.koach-light #kmd-tab-programs .kpp-mp-goal .q { font-family: var(--kl-font) !important; font-size: 17px !important; font-weight: 600 !important; font-style: normal !important; color: var(--kl-ink) !important; margin: 0 !important; }
/* desktop table: readable headers, no tinted cells */
body.koach-light #kmd-tab-programs .kpp-mp-tab th { font-size: 13px !important; font-weight: 600 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; background: transparent !important; border-bottom: 1px solid var(--kl-line-section) !important; }
body.koach-light #kmd-tab-programs .kpp-mp-tab td { font-size: 14px !important; color: var(--kl-ink) !important; background: transparent !important; }
body.koach-light #kmd-tab-programs .kpp-mp-tab .k, body.koach-light #kmd-tab-programs .kpp-mp-tab .fk, body.koach-light #kmd-tab-programs .kpp-mp-model-sub { font-size: 13px !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light #kmd-tab-programs .kpp-mp-tab .fv { font-size: 14px !important; }
body.koach-light #kmd-tab-programs .kpp-mp-pill, body.koach-light #kmd-tab-programs .kpp-mp-mstat { background: transparent !important; border: 0 !important; padding: 0 !important; font-size: 13px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; }
body.koach-light #kmd-tab-programs .kpp-mp-pill-foundations, body.koach-light #kmd-tab-programs .kpp-mp-pill-evolution { color: var(--kl-phase-tx) !important; }
body.koach-light #kmd-tab-programs .kpp-mp-mstat--complete { color: var(--kl-ok) !important; } body.koach-light #kmd-tab-programs .kpp-mp-mstat--current { color: var(--kl-ink) !important; }
body.koach-light #kmd-tab-programs .kpp-mp-nowtag { font-size: 13px !important; background: transparent !important; color: var(--kl-phase-tx) !important; padding: 0 !important; font-weight: 600 !important; }
body.koach-light #kmd-tab-programs .kpp-mp-dash { color: var(--kl-quiet) !important; }
body.koach-light #kmd-tab-programs .kps-mc > summary { display: flex !important; flex-wrap: wrap !important; align-items: center !important; position: relative; padding: 14px 32px 14px 0 !important; gap: 4px 0 !important; }
body.koach-light #kmd-tab-programs .kps-mc-name, body.koach-light #kmd-tab-programs .kps-mc-wk { flex: 1 1 100% !important; }
body.koach-light #kmd-tab-programs .kps-mc-name { margin-top: 4px; }
body.koach-light #kmd-tab-programs .kps-mc .chev { position: absolute !important; right: 0; top: 50%; transform: translateY(-50%); }
body.koach-light #kmd-tab-programs .kps-mc[open] .chev { transform: translateY(-50%) rotate(90deg); }
body.koach-light #kmd-tab-programs .kps-mc-fitt { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 0 24px !important; }
/* ---------- Milestones (owner 18:24: bigger titles, roomier icons, better layout) ---------- */
body.koach-light #kmd-tab-milestones .kmd-milestones-wrap { padding: 0 !important; }
body.koach-light #kmd-tab-milestones .kmd-milestones-summary { display: flex !important; align-items: baseline !important; gap: 10px !important; padding: 0 0 20px !important; margin: 0 !important; background: transparent !important; border: 0 !important; }
body.koach-light #kmd-tab-milestones .kmd-milestones-count { font-family: var(--kl-title-font) !important; font-size: 48px !important; font-weight: 400 !important; line-height: 1 !important; color: var(--kl-ink) !important; }
body.koach-light #kmd-tab-milestones .kmd-milestones-count-label { font-size: 16px !important; font-weight: 600 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light #kmd-tab-milestones .kmd-milestones-section { border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; padding: var(--kl-section) 0 8px !important; margin: 0 !important; background: transparent !important; }
body.koach-light #kmd-tab-milestones .kmd-milestones-section-header { display: flex !important; align-items: center !important; gap: 10px !important; margin: 0 0 8px !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
body.koach-light #kmd-tab-milestones .kmd-milestones-section-icon svg { width: 22px !important; height: 22px !important; }
body.koach-light #kmd-tab-milestones .kmd-milestones-section-title { font-family: var(--kl-font) !important; font-size: 22px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink) !important; }
body.koach-light #kmd-tab-milestones .kmd-milestones-grid { display: flex !important; flex-direction: column !important; gap: 0 !important; }
/* a row: icon circle | name, detail, date stacked */
body.koach-light #kmd-tab-milestones .kmd-milestone-card { display: grid !important; grid-template-columns: 48px minmax(0, 1fr) !important; grid-template-areas: "icon tag" "icon label" "icon detail" "icon date" !important; column-gap: 14px !important; row-gap: 2px !important; align-items: center !important; text-align: left !important; background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; padding: 14px 0 !important; margin: 0 !important; min-height: 76px; position: relative; }
body.koach-light #kmd-tab-milestones .kmd-milestones-grid > .kmd-milestone-card:first-child { border-top: 0 !important; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card-icon { grid-area: icon; align-self: center; width: 48px !important; height: 48px !important; border-radius: 50% !important; background: var(--kl-soft) !important; border: 1px solid var(--kl-line-bubble) !important; display: flex !important; align-items: center !important; justify-content: center !important; margin: 0 !important; padding: 0 !important; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card-icon svg { width: 22px !important; height: 22px !important; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card-label { grid-area: label; font-size: 16px !important; font-weight: 600 !important; line-height: 1.3 !important; color: var(--kl-ink) !important; text-align: left !important; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card-detail { grid-area: detail; font-size: 14px !important; color: var(--kl-ink2) !important; text-align: left !important; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card-date { grid-area: date; font-size: 14px !important; font-style: normal !important; color: var(--kl-ink2) !important; text-align: left !important; white-space: normal !important; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card--locked .kmd-milestone-card-label { color: var(--kl-ink2) !important; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card-icon--locked { opacity: 1 !important; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card-icon--locked svg { opacity: .7; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card-major-tag { grid-area: tag; position: static !important; transform: none !important; justify-self: start !important; display: inline-flex !important; align-items: center !important; height: 22px; padding: 0 10px !important; margin: 0 0 4px !important; border-radius: 999px !important; background: var(--kl-ctrl) !important; border: 0 !important; color: var(--kl-ink2) !important; font-size: 12px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; box-shadow: none !important; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card > * { justify-self: start !important; margin-left: 0 !important; margin-right: 0 !important; text-align: left !important; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card > .kmd-milestone-card-icon { justify-self: center !important; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card-icon > *, body.koach-light #kmd-tab-milestones .kmd-milestone-card-icon svg { width: 24px !important; height: 24px !important; min-width: 24px; }
/* ---------- Assessment (owner 18:24: text boxes too tight; plus labels, indent, stacked notes) ---------- */
body.koach-light #kmd-tab-assessment #koach-solo-assessment, body.koach-light #kmd-tab-assessment .kmd-as-card, body.koach-light #kmd-tab-assessment .kmd-as-body, body.koach-light #kmd-tab-assessment .kgsa-screen { padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; margin-right: 0 !important; background: transparent !important; box-shadow: none !important; }
body.koach-light #kmd-tab-assessment .kmd-as-card { border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; padding-top: var(--kl-section) !important; margin-top: 24px !important; }
body.koach-light #kmd-tab-assessment .kmd-as-card-head, body.koach-light #kmd-tab-assessment .kmd-section-title { font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink) !important; background: transparent !important; padding: 0 0 12px !important; border: 0 !important; }
/* notes: plain text; only the safety note (the first) keeps a soft note */
body.koach-light #kmd-tab-assessment .kmd-assess-how { background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; margin: 0 0 14px !important; font-size: 15px !important; line-height: 1.55 !important; color: var(--kl-ink2) !important; }
body.koach-light #kmd-tab-assessment #koach-solo-assessment > .kmd-page-sub + .kmd-assess-how { background: var(--kl-soft) !important; border: 1px solid var(--kl-line-bubble) !important; border-radius: 12px !important; padding: 14px 16px !important; color: var(--kl-ink) !important; }
body.koach-light #kmd-tab-assessment .kmd-assess-how strong, body.koach-light #kmd-tab-assessment .kmd-assess-how b { color: var(--kl-ink) !important; }
/* labels like the forms: 15px semibold, dark, sentence case */
body.koach-light #kmd-tab-assessment label:not(.kgsa-tv-opt) { display: block; font-family: var(--kl-font) !important; font-size: 15px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink) !important; margin: 0 0 6px !important; }
body.koach-light #kmd-tab-assessment .kmd-assess-field, body.koach-light #kmd-tab-assessment .kmd-assess-notes-field { margin: 0 0 18px !important; }
/* text boxes: 48px, 14px inside, radius 12, full width */
body.koach-light #kmd-tab-assessment input:not([type=radio]):not([type=checkbox]):not([type=hidden]):not([type=file]), body.koach-light #kmd-tab-assessment select { width: 100% !important; height: 48px !important; min-height: 48px !important; padding: 0 14px !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: 12px !important; background-color: #FFFFFF !important; font-family: var(--kl-font) !important; font-size: 17px !important; color: var(--kl-ink) !important; box-shadow: none !important; }
body.koach-light #kmd-tab-assessment textarea { width: 100% !important; min-height: 96px !important; padding: 12px 14px !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: 12px !important; background: #FFFFFF !important; font-family: var(--kl-font) !important; font-size: 16px !important; line-height: 1.5 !important; color: var(--kl-ink) !important; box-shadow: none !important; }
body.koach-light #kmd-tab-assessment .kmd-assess-field-hint { font-size: 14px !important; line-height: 1.5 !important; color: var(--kl-ink2) !important; margin-top: 6px !important; }
body.koach-light #kmd-tab-assessment .kgsa-ms-skip > summary, body.koach-light #kmd-tab-assessment .kgsa-ws-skip-toggle, body.koach-light #kmd-tab-assessment .kgsa-screen-demo { font-size: 15px !important; font-weight: 600 !important; color: var(--kl-red) !important; text-decoration: none !important; min-height: 44px; display: inline-flex; align-items: center; }
/* movement screens: readable names, cues, tags and captions */
body.koach-light #kmd-tab-assessment .kgsa-screen { border: 0 !important; border-top: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; padding-top: 16px !important; padding-bottom: 16px !important; }
body.koach-light #kmd-tab-assessment .kgsa-screen-name { font-size: 17px !important; font-weight: 700 !important; color: var(--kl-ink) !important; }
body.koach-light #kmd-tab-assessment .kgsa-screen-cue, body.koach-light #kmd-tab-assessment .kgsa-film { font-size: 15px !important; line-height: 1.5 !important; color: var(--kl-ink2) !important; font-style: normal !important; }
body.koach-light #kmd-tab-assessment .kgsa-tag { display: inline-flex !important; align-items: center; height: 22px; padding: 0 10px !important; margin-left: 8px; border-radius: 999px !important; background: var(--kl-ctrl) !important; border: 0 !important; color: var(--kl-ink2) !important; font-size: 13px !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light #kmd-tab-assessment .kgsa-tag:not(.kgsa-tag-passive) { background: #FFF6E9 !important; color: var(--kl-attn) !important; }
body.koach-light #kmd-tab-assessment figcaption { font-size: 14px !important; color: var(--kl-ink2) !important; }
body.koach-light #kmd-tab-assessment .kgsa-upload-state { font-size: 14px !important; color: var(--kl-ink2) !important; }
body.koach-light #kmd-tab-assessment .kgsa-tv-opt { font-size: 15px !important; color: var(--kl-ink) !important; }
body.koach-light #kmd-tab-assessment .kmd-atype-badge, body.koach-light #kmd-tab-assessment .kmd-level-pill { font-size: 13px !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; background: transparent !important; border: 0 !important; padding: 0 !important; }
body.koach-light #kmd-tab-assessment .kmd-expand-btn { font-size: 15px !important; min-height: 44px; }
body.koach-light #kmd-tab-assessment .kgsa-screen:has(+ .kmd-as-card), body.koach-light #kmd-tab-assessment .kgsa-screen:last-of-type { border-bottom: 0 !important; }
/* ---------- More menu: one line between groups (owner 18:24 "double separators in the bottom menu") ---------- */
body.koach-light-shell #kns-shell .kns-sheet--light .kl-more-sec > .kl-more-row:last-child { border-bottom: 0 !important; }
/* ---------- desktop sidebar group labels: 12px floor ---------- */
body.koach-light-shell #kns-shell .kns-eyebrow { font-size: 12px !important; }
/* ---------- Nutrition: 13-15px text, roomy text boxes ---------- */
body.koach-light.koach-app-nutrition .knut-cf-l, body.koach-light.koach-app-nutrition .knut-cf-hedge, body.koach-light.koach-app-nutrition .knut-cf-lead, body.koach-light.koach-app-nutrition .knut-cf-note, body.koach-light.koach-app-nutrition .knut-ct1-lead { font-size: 14px !important; line-height: 1.5 !important; }
body.koach-light.koach-app-nutrition .knut-cell-k, body.koach-light.koach-app-nutrition .knut-days, body.koach-light.koach-app-nutrition .knut-eg, body.koach-light.koach-app-nutrition .knut-as-hint, body.koach-light.koach-app-nutrition .knut-attrib, body.koach-light.koach-app-nutrition .knut-eyebrow, body.koach-light.koach-app-nutrition .knut-cellctl-t { font-size: 13px !important; letter-spacing: 0 !important; }
body.koach-light.koach-app-nutrition .knut-cell-v + span, body.koach-light.koach-app-nutrition [class*="knut"] span { font-size: max(13px, 1em) !important; }
body.koach-light.koach-app-nutrition #knut-q, body.koach-light.koach-app-nutrition #knut-slot, body.koach-light.koach-app-nutrition #knut-water-amt { height: 48px !important; min-height: 48px !important; padding: 0 14px !important; border-radius: 12px !important; font-size: 17px !important; }
/* ---------- Progress filters ---------- */
body.koach-light #kmd-tab-progress #kmdMetricSelect, body.koach-light #kmd-tab-progress #kmdDateFrom, body.koach-light #kmd-tab-progress #kmdDateTo, body.koach-light #kmd-tab-progress #kmdInterval { height: 48px !important; min-height: 48px !important; padding: 0 14px !important; border-radius: 12px !important; font-size: 16px !important; }
/* ---------- Program Card desktop table: 13px headers and units ---------- */
body.koach-light .koach-program-card.kpc-light .kpc-card-table th { font-size: 13px !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink2) !important; }
body.koach-light .koach-program-card.kpc-light .kpc-per-side, body.koach-light .koach-program-card.kpc-light .kpc-side-tag { font-size: 13px !important; color: var(--kl-ink2) !important; }
body.koach-light .koach-program-card.kpc-light .kpc-lf-tag { font-size: 12px !important; color: var(--kl-ink2) !important; }
body.koach-light.koach-app-nutrition label { font-size: 15px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink) !important; }

/* =====================================================================================================
   SECTION 31 -- S330 OWNER SWEEP 2 (owner 2026-10-18 10:45, installed app + desktop): standard v3 applied
   where the full phone + desktop render sweep (scripts running, real fonts) found it was not.
   31.1 every dropdown: one chevron, 16px in from the right edge, 48px of room (owner: arrow too close).
   31.2 number boxes without spin arrows.
   31.3 round answer markers (standard s.3 "Option list ... round marker"); assessment answers as rows.
   31.4 Nutrition: Bebas only for the page title (s.1.3); controls, day and headings in DM Sans; section
        headings 20px (s.1.4); no card box; rows without indents; quiet disclaimer; 960 column on desktop.
   31.5 page gutters: forms, My Account and Login at 20px on phone (s.1.2).
   31.6 Assessment: answer rows, clip count as plain text, full-width send button on phone.
   31.7 public pages opened inside the app (Contact, Terms, Privacy, Cookie policy): app frame, white page,
        no boxed cards, section headings per s.1.4.
   ===================================================================================================== */

/* ---------- 31.1 dropdowns ---------- */
html body.koach-light select:not([multiple]):not([size]),
html body.koach-light-shop select:not([multiple]):not([size]),
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme select:not([multiple]):not([size]),
html body.koach-light #kmd-tab-assessment select:not([multiple]):not([size]),
html body.koach-light #kmd-tab-progress select:not([multiple]):not([size]) {
  -webkit-appearance: none !important; -moz-appearance: none !important; appearance: none !important;
  background-color: #FFFFFF !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%234A515F' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
  background-size: 18px 18px !important;
  padding-right: 48px !important;
  text-overflow: ellipsis;
}
html body.koach-light select::-ms-expand { display: none; }

/* ---------- 31.2 number boxes: no spin arrows ---------- */
html body.koach-light input[type="number"], html body.koach-light-shop input[type="number"] { -moz-appearance: textfield !important; appearance: textfield !important; }
html body.koach-light input[type="number"]::-webkit-inner-spin-button,
html body.koach-light input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none !important; margin: 0 !important; }

/* ---------- 31.3 round answer markers ---------- */
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_radio:not(.kl-scale) .gchoice input[type="radio"],
html body.koach-light #kmd-tab-assessment input[type="radio"],
html body.koach-light .kgsa-tv-opt input[type="radio"] {
  -webkit-appearance: none !important; appearance: none !important; box-sizing: border-box !important;
  flex: 0 0 22px !important; width: 22px !important; height: 22px !important; min-width: 22px !important; min-height: 22px !important; max-height: 22px !important;
  padding: 0 !important; margin: 0 !important; border: 2px solid #8A909C !important; border-radius: 50% !important;
  background: #FFFFFF !important; box-shadow: none !important; cursor: pointer; position: relative !important; opacity: 1 !important;
}
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_radio:not(.kl-scale) .gchoice input[type="radio"]:checked,
html body.koach-light #kmd-tab-assessment input[type="radio"]:checked,
html body.koach-light .kgsa-tv-opt input[type="radio"]:checked {
  border-color: var(--kl-red, #C0161C) !important;
  background: radial-gradient(circle at center, var(--kl-red, #C0161C) 0 5px, #FFFFFF 5.5px) !important;
}
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_radio:not(.kl-scale) .gchoice input[type="radio"]::before,
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_radio:not(.kl-scale) .gchoice input[type="radio"]::after { display: none !important; content: none !important; }
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_checkbox .gchoice input[type="checkbox"],
html body.koach-light.koach-light .klg-wrap input[type="checkbox"] {
  -webkit-appearance: none !important; appearance: none !important; box-sizing: border-box !important;
  flex: 0 0 22px !important; width: 22px !important; height: 22px !important; min-width: 22px !important; min-height: 22px !important; max-height: 22px !important;
  padding: 0 !important; margin: 0 !important; border: 2px solid #8A909C !important; border-radius: 6px !important;
  background: #FFFFFF !important; box-shadow: none !important; cursor: pointer; vertical-align: middle;
}
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_checkbox .gchoice input[type="checkbox"]:checked,
html body.koach-light.koach-light .klg-wrap input[type="checkbox"]:checked {
  border-color: var(--kl-red, #C0161C) !important;
  background: var(--kl-red, #C0161C) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 15px 15px no-repeat !important;
}
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_checkbox .gchoice input[type="checkbox"]::before,
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_checkbox .gchoice input[type="checkbox"]::after { display: none !important; content: none !important; }
html body.koach-light :is(input[type="radio"], input[type="checkbox"]):focus-visible { outline: 2px solid var(--kl-red, #C0161C) !important; outline-offset: 2px !important; }

/* ---------- 31.4 Nutrition ---------- */
body.koach-light.koach-app-nutrition .knut-eyebrow { display: none !important; }                 /* repeats the page title */
/* view switch: a control, not a heading -> DM Sans */
body.koach-light.koach-app-nutrition .knut-tabdd-t { height: 48px !important; min-height: 48px !important; padding: 0 16px !important; background: #FFFFFF !important; border: 1px solid var(--kl-line-ctrl, var(--kl-line-ctrl)) !important; border-radius: 12px !important; box-shadow: none !important; }
body.koach-light.koach-app-nutrition .knut-tabdd-l,
body.koach-light.koach-app-nutrition .knut-tabwrap--page .knut-tabdd-l { font-family: var(--kl-font, 'DM Sans', system-ui, sans-serif) !important; font-size: 16px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink, #21252E) !important; line-height: 1.2 !important; }
body.koach-light.koach-app-nutrition .knut-tabdd-t svg { width: 18px !important; height: 18px !important; color: #4A515F; }
body.koach-light.koach-app-nutrition .knut-tabwrap--page .knut-tab { font-family: var(--kl-font, 'DM Sans', system-ui, sans-serif) !important; font-size: 16px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; color: #4A515F !important; padding: 0 0 12px !important; margin-right: 28px !important; border-bottom: 2px solid transparent !important; line-height: 1.2 !important; }
body.koach-light.koach-app-nutrition .knut-tabwrap--page .knut-tab.is-on { color: var(--kl-ink, #21252E) !important; border-bottom-color: var(--kl-red, #C0161C) !important; }
/* day: "Today" + the date, readable, 44px arrows */
body.koach-light.koach-app-nutrition .knut-daynav { align-items: center !important; gap: 12px !important; padding: 0 !important; }
body.koach-light.koach-app-nutrition .knut-daybtn { flex: 0 0 44px !important; width: 44px !important; height: 44px !important; padding: 0 !important; border: 1px solid var(--kl-line-ctrl, var(--kl-line-ctrl)) !important; border-radius: 12px !important; background: #FFFFFF !important; font-size: 22px !important; line-height: 1 !important; color: var(--kl-ink, #21252E) !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; }
body.koach-light.koach-app-nutrition .knut-daybtn:disabled { color: #8A909C !important; border-color: var(--kl-line-role) !important; background: var(--kl-soft) !important; }
body.koach-light.koach-app-nutrition .knut-daynow { border: 0 !important; background: transparent !important; padding: 4px 0 !important; text-align: left !important; flex-direction: column !important; align-items: flex-start !important; gap: 2px !important; }
body.koach-light.koach-app-nutrition .knut-dayl { font-family: var(--kl-font, 'DM Sans', system-ui, sans-serif) !important; font-size: 17px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink, #21252E) !important; line-height: 1.25 !important; }
body.koach-light.koach-app-nutrition .knut-days { font-size: 14px !important; color: #4A515F !important; line-height: 1.3 !important; }
/* day totals */
body.koach-light.koach-app-nutrition .knut-cell-k { font-size: 14px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; color: #4A515F !important; }
body.koach-light.koach-app-nutrition .knut-cell-v { font-size: 24px !important; font-weight: 700 !important; color: var(--kl-ink, #21252E) !important; }
body.koach-light.koach-app-nutrition .knut-cell-d { font-size: 13px !important; color: #4A515F !important; }
body.koach-light.koach-app-nutrition .knut-nft-tog, body.koach-light.koach-app-nutrition .knut-cellctl-t { font-size: 15px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-red, #C0161C) !important; min-height: 44px !important; }
/* add-food block: no card box, aligned to the page gutter */
body.koach-light.koach-app-nutrition .kap-card { border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; box-shadow: none !important; background: transparent !important; }
body.koach-light.koach-app-nutrition .kap-card-bd { padding: 24px 0 0 !important; }
body.koach-light.koach-app-nutrition .knut-as-hint { font-size: 14px !important; color: #4A515F !important; }
body.koach-light.koach-app-nutrition .knut-link { font-size: 15px !important; font-weight: 600 !important; text-decoration: none !important; color: var(--kl-red, #C0161C) !important; min-height: 44px; }
body.koach-light.koach-app-nutrition .knut-quick { padding-top: 4px !important; }
body.koach-light.koach-app-nutrition .knut-empty, body.koach-light.koach-app-nutrition .knut-empty--page { font-size: 15px !important; color: #4A515F !important; }
/* frameworks: section heading 20, framework names 17, rows without indents, labels in sentence case */
body.koach-light.koach-app-nutrition .knut-sec { padding: 24px 0 8px !important; }
body.koach-light.koach-app-nutrition .knut-sec-t { font-family: var(--kl-font, 'DM Sans', system-ui, sans-serif) !important; font-size: 20px !important; font-weight: 700 !important; letter-spacing: 0 !important; color: var(--kl-ink, #21252E) !important; line-height: 1.3 !important; }
body.koach-light.koach-app-nutrition .knut-cf-lead, body.koach-light.koach-app-nutrition .knut-cf-note { font-size: 15px !important; color: #4A515F !important; }
body.koach-light.koach-app-nutrition .knut-cf { margin-top: 24px !important; }
body.koach-light.koach-app-nutrition .knut-cf-hd { font-size: 17px !important; font-weight: 700 !important; color: var(--kl-ink, #21252E) !important; padding-bottom: 4px !important; }
body.koach-light.koach-app-nutrition .knut-cf-line { padding: 12px 0 !important; gap: 4px 16px !important; }
body.koach-light.koach-app-nutrition .knut-cf-l { font-size: 15px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink, #21252E) !important; }
body.koach-light.koach-app-nutrition .knut-cf-said { font-size: 15px !important; color: #4A515F !important; }
body.koach-light.koach-app-nutrition .knut-cf-hedge { padding: 12px 0 !important; font-size: 14px !important; font-style: normal !important; color: #4A515F !important; }
/* the information notice: a quiet section, not a red warning bar */
body.koach-light.koach-app-nutrition .knut-ct1 { border-top: 1px solid var(--kl-line-section) !important; padding-top: 24px !important; margin-top: 32px !important; }
body.koach-light.koach-app-nutrition .knut-ct1-lead { font-size: 16px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink, #21252E) !important; }
@media (min-width: 821px) {
  body.koach-light.koach-app-nutrition .knut-wrap { max-width: 960px !important; margin-left: auto !important; margin-right: auto !important; }
  body.koach-light.koach-app-nutrition .knut-cf-line { display: grid !important; grid-template-columns: 240px 1fr !important; align-items: baseline !important; }
  body.koach-light.koach-app-nutrition .knut-cf-l { width: auto !important; }
}

/* ---------- 31.5 page gutters (phone 20px, desktop the 960 column) ---------- */
@media (max-width: 820px) {
  html body.koach-light.koach-form-page .koach-form-wrap { padding-left: 0 !important; padding-right: 0 !important; }
  html body.koach-light .kac-wrap, html body.koach-light #koach-account-page.kac-wrap { padding-left: 0 !important; padding-right: 0 !important; }
}
@media (min-width: 821px) {
  html body.koach-light #koach-account-page.kac-wrap { max-width: 960px !important; margin-left: auto !important; margin-right: auto !important; padding-left: 0 !important; padding-right: 0 !important; }
  html body.koach-light.koach-app-guide .kow-wrap { max-width: 960px !important; margin-left: auto !important; margin-right: auto !important; }
}

/* ---------- 31.6 Assessment ---------- */
body.koach-light .kgsa-tv-pick { display: flex; flex-direction: column; gap: 8px; }
body.koach-light .kgsa-tv-opt { display: flex !important; align-items: center; gap: 12px; min-height: 48px; padding: 12px 14px; border: 1px solid var(--kl-line-ctrl, var(--kl-line-ctrl)); border-radius: 12px; font-size: 16px; line-height: 1.35; color: var(--kl-ink, #21252E); cursor: pointer; background: #FFFFFF; }
body.koach-light .kgsa-tv-opt:has(input:checked) { border-color: var(--kl-red, #C0161C); box-shadow: inset 0 0 0 1px var(--kl-red, #C0161C); }
body.koach-light #kmd-tab-assessment .kmd-assess-detail-grid { display: block !important; }
body.koach-light #kmd-tab-assessment .kmd-assess-detail-tile { display: flex !important; align-items: baseline; gap: 8px; padding: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important; }
body.koach-light #kmd-tab-assessment .kmd-assess-detail-label { font-size: 15px !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; color: #4A515F !important; }
body.koach-light #kmd-tab-assessment .kmd-arow-expand-cell { padding-left: 0 !important; }
body.koach-light #kmd-tab-assessment .kmd-expand-btn { padding-left: 0 !important; min-height: 44px; }
@media (max-width: 820px) {
  body.koach-light #kmd-tab-assessment .kmd-assess-submit-row { display: block !important; }
  body.koach-light #kmd-tab-assessment .kmd-assess-submit-btn { width: 100% !important; justify-content: center !important; min-height: 54px !important; }
}

/* ---------- 31.7 public pages opened inside the app ---------- */
html body.koach-light.koach-app-page:is(.koach-app-contact, .koach-app-terms-of-service, .koach-app-privacy-policy, .koach-app-cookie-policy, .koach-app-health-disclaimer),
html body.koach-light.koach-app-page:is(.koach-app-contact, .koach-app-terms-of-service, .koach-app-privacy-policy, .koach-app-cookie-policy, .koach-app-health-disclaimer) :is(#wrapper, #boxed-wrapper, #main, .fusion-row, section.full-width, .fusion-fullwidth, .fusion-builder-row, .fusion-layout-column, .fusion-column-wrapper) { background: #FFFFFF !important; }
/* Contact */
body.koach-light.koach-app-contact .koach-contact-root { max-width: 960px !important; margin: 0 auto !important; padding: 0 20px 48px !important; width: 100% !important; min-width: 0 !important; flex: 1 1 100% !important; box-sizing: border-box !important; }
body.koach-light.koach-app-contact .koach-contact-root > *, body.koach-light.koach-app-contact .contact-body > * { max-width: none !important; width: auto !important; }
body.koach-light.koach-app-contact .contact-hero { background: transparent !important; padding: 24px 0 8px !important; margin: 0 !important; width: auto !important; min-height: 0 !important; overflow: visible !important; }
body.koach-light.koach-app-contact .contact-hero-grid, body.koach-light.koach-app-contact .contact-hero-glow, body.koach-light.koach-app-contact .contact-eyebrow { display: none !important; }
body.koach-light.koach-app-contact .contact-hero-inner { padding: 0 !important; max-width: none !important; text-align: left !important; }
body.koach-light.koach-app-contact .contact-h1, body.koach-light.koach-app-contact .contact-h1 span { font-family: 'Bebas Neue', sans-serif !important; font-size: 40px !important; line-height: 1 !important; letter-spacing: .01em !important; color: var(--kl-ink, #21252E) !important; margin: 0 0 8px !important; text-align: left !important; background: none !important; -webkit-text-fill-color: currentColor !important; }
body.koach-light.koach-app-contact .contact-sub { font-size: 15px !important; line-height: 1.5 !important; color: #4A515F !important; margin: 0 !important; max-width: 60ch; text-align: left !important; }
body.koach-light.koach-app-contact .contact-body { padding: 0 !important; margin: 0 !important; display: flex !important; flex-direction: column !important; gap: 0 !important; max-width: none !important; }
body.koach-light.koach-app-contact .contact-sidebar { order: 1; display: block !important; width: auto !important; }
body.koach-light.koach-app-contact .contact-form-card { order: 2; }
body.koach-light.koach-app-contact :is(.contact-info-card, .contact-links-card, .contact-form-card) { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; overflow: visible !important; width: auto !important; }
body.koach-light.koach-app-contact :is(.contact-info-header, .contact-links-header, .contact-form-header) { background: transparent !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; margin: 24px 0 0 !important; padding: 24px 0 8px !important; }
body.koach-light.koach-app-contact :is(.contact-info-header, .contact-links-header, .contact-form-header) span { font-family: var(--kl-font, 'DM Sans', system-ui, sans-serif) !important; font-size: 20px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink, #21252E) !important; }
body.koach-light.koach-app-contact :is(.contact-info-body, .contact-links-body, .contact-form-body) { padding: 8px 0 0 !important; }
body.koach-light.koach-app-contact .contact-info-item { padding: 12px 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; gap: 14px !important; margin: 0 !important; }
body.koach-light.koach-app-contact .contact-info-item:last-child { border-bottom: 0 !important; }
body.koach-light.koach-app-contact .contact-info-body hr, body.koach-light.koach-app-contact .contact-info-divider { display: none !important; }
body.koach-light.koach-app-contact .contact-info-icon { background: var(--kl-soft) !important; border-radius: 50% !important; }
body.koach-light.koach-app-contact .contact-info-text-label { font-size: 14px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; color: #4A515F !important; }
body.koach-light.koach-app-contact .contact-info-text-value, body.koach-light.koach-app-contact .contact-info-text-value a { font-size: 16px !important; font-weight: 600 !important; }
body.koach-light.koach-app-contact .contact-info-sub { font-size: 14px !important; color: #4A515F !important; }
body.koach-light.koach-app-contact .contact-quick-link { padding: 16px 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; background: transparent !important; }
body.koach-light.koach-app-contact .contact-quick-link:last-child { border-bottom: 0 !important; }
body.koach-light.koach-app-contact .contact-quick-link-label { font-size: 16px !important; font-weight: 600 !important; color: var(--kl-ink, #21252E) !important; }
body.koach-light.koach-app-contact .contact-quick-link-sub { font-size: 14px !important; color: #4A515F !important; }
body.koach-light.koach-app-contact .contact-form-body .gform_wrapper label, body.koach-light.koach-app-contact .contact-form-body .gfield_label { font-size: 15px !important; font-weight: 600 !important; color: var(--kl-ink, #21252E) !important; }
body.koach-light.koach-app-contact .contact-form-body :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]), select) { height: 48px !important; min-height: 48px !important; padding: 0 14px !important; border: 1px solid var(--kl-line-ctrl, var(--kl-line-ctrl)) !important; border-radius: 12px !important; background-color: #FFFFFF !important; font-size: 16px !important; color: var(--kl-ink, #21252E) !important; box-shadow: none !important; }
body.koach-light.koach-app-contact .contact-form-body textarea { padding: 12px 14px !important; border: 1px solid var(--kl-line-ctrl, var(--kl-line-ctrl)) !important; border-radius: 12px !important; background: #FFFFFF !important; font-size: 16px !important; box-shadow: none !important; }
@media (min-width: 821px) {
  body.koach-light.koach-app-contact .koach-contact-root { padding: 48px 0 96px !important; }
  body.koach-light.koach-app-contact .contact-hero { padding-top: 0 !important; }
}
/* legal pages */
body.koach-light.koach-app-page .koach-legal-wrap { max-width: 960px !important; margin: 0 auto !important; padding: 24px 20px 48px !important; background: transparent !important; }
body.koach-light.koach-app-page .koach-legal-card { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; max-width: 760px; }
body.koach-light.koach-app-page .koach-legal-body { padding: 0 !important; }
/* walk 34 L1: the legal template's own rules (body.koach-legal-page .koach-legal-body .koach-legal-h1/h2, !important
   font shorthand) out-specify the two lines below; the three-class selectors win now. Cookie Policy (Complianz) too. */
html body.koach-light.koach-app-page.koach-legal-page .koach-legal-body .koach-legal-h1 { font-size: 40px !important; line-height: 1 !important; color: var(--kl-ink, #21252E) !important; padding-bottom: 8px !important; }
html body.koach-light.koach-app-page.koach-legal-page .koach-legal-body .koach-legal-h2,
html body.koach-light.koach-app-page.koach-legal-page .koach-legal-body--cmplz #cmplz-document h2 { font-size: 20px !important; line-height: 1.3 !important; }
html body.koach-light.koach-app-page.koach-legal-page .koach-legal-body .koach-legal-h3,
html body.koach-light.koach-app-page.koach-legal-page .koach-legal-body--cmplz #cmplz-document h3 { font-size: 17px !important; }
body.koach-light.koach-app-page .koach-legal-table { display: block !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch; font-size: 14px !important; }
body.koach-light.koach-app-page .koach-legal-table :is(th, td) { font-size: 14px !important; min-width: 88px; word-break: normal !important; overflow-wrap: normal !important; hyphens: none !important; }
@media (min-width: 821px) { body.koach-light.koach-app-page .koach-legal-wrap { padding: 48px 0 96px !important; } }
body.koach-light.koach-app-contact .contact-hero-inner, body.koach-light.koach-app-contact .contact-hero-inner * { opacity: 1 !important; animation: none !important; transform: none !important; }
/* the in-app public pages carry marketing rules that zero #main's margin: keep the sidebar offset */
@media (min-width: 821px) {
  html body.koach-light.koach-app-page:is(.koach-app-contact, .koach-app-terms-of-service, .koach-app-privacy-policy, .koach-app-cookie-policy, .koach-app-health-disclaimer) #main { margin-left: 252px !important; width: auto !important; max-width: none !important; }
  html body.koach-light.koach-app-page.kns-rail:is(.koach-app-contact, .koach-app-terms-of-service, .koach-app-privacy-policy, .koach-app-cookie-policy, .koach-app-health-disclaimer) #main { margin-left: 68px !important; }
}
/* Nutrition: the water button is a normal secondary button */
body.koach-light.koach-app-nutrition .knut-as-field--btn button, body.koach-light.koach-app-nutrition .knut-water-row button { min-height: 48px !important; height: 48px !important; padding: 0 20px !important; font-size: 16px !important; font-weight: 600 !important; border-radius: 14px !important; }
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme input[type="number"]::-webkit-inner-spin-button,
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none !important; appearance: none !important; display: none !important; margin: 0 !important; }

/* 31.8 shop pages (walk 30): one line between the plan row and "What's included"; one line between the
   order facts and "What happens next"; the per-item price line left-aligned like the other summary rows. */
html body.koach-light-shop .kct-includes { border-top: 0 !important; }
html body.koach-light-shop .ktq-steps-heading { border-top: 0 !important; }
html body.koach-light-shop.woocommerce-checkout table.shop_table .wcs-checkout-item-price { text-align: left !important; font-size: 16px !important; font-weight: 600 !important; margin-top: 8px !important; color: var(--kl-ink, #21252E) !important; }

/* 31.9 shop pages readability (sweep 2): nothing under 4.5:1, nothing under 13px in the content. */
html body.koach-light-shop .kct-item-remove { color: #5F6673 !important; min-width: 44px; min-height: 44px; display: inline-flex !important; align-items: center; justify-content: center; }
html body.koach-light-shop .kct-item-meta { color: #4A515F !important; font-size: 14px !important; }
html body.koach-light-shop .kct-summary-note, html body.koach-light-shop .kct-summary-note a { font-size: 13px !important; color: #4A515F !important; }
html body.koach-light-shop .kct-summary-note a { color: var(--kl-red, #C0161C) !important; }
html body.koach-light-shop .kco-back-link { color: #4A515F !important; font-size: 14px !important; min-height: 44px; display: inline-flex !important; align-items: center; }
html body.koach-light-shop .kco-step { font-size: 13px !important; color: #5F6673 !important; }
html body.koach-light-shop .kco-step.kco-step-active { color: var(--kl-ink, #21252E) !important; }
html body.koach-light-shop .kco-step.kco-step-done { color: #076E4C !important; }
html body.koach-light-shop .kco-step-num { font-size: 12px !important; color: #4A515F !important; }
html body.koach-light-shop .kco-step.kco-step-active .kco-step-num { color: #FFFFFF !important; }


/* 31.10 owner rulings 2026-10-18: Contact's "Looking for something else?" hidden in the INSTALLED app only (the browser
   keeps the links to the public pages); no chat bubble on checkout; the desktop sidebar shows every link. */
html.koach-standalone body.koach-light.koach-app-contact .contact-links-card { display: none !important; }
html body.koach-light-shop #kbf-root { display: none !important; }
html.koach-standalone body.koach-light-shell .kl-more-install { display: none !important; }
body.koach-light-shell .kns-side .kns-group--static .kns-group-hd--static { cursor: default !important; margin: 0 !important; display: block !important; }
body.koach-light-shell .kns-side .kns-group--static .kns-group-body { max-height: none !important; overflow: visible !important; }


body.koach-light-shell .kns-side .kns-group--static + .kns-group--static .kns-group-hd--static { margin-top: 16px !important; }

/* 31.11 owner 2026-10-18 (revised 13:09 "slightly blue ... still grey with a hue tint and an outline that matches"):
   an OPEN Join Google Meet keeps the secondary-button shape and weight, with a light blue tint, a matching blue
   outline and blue text, a small pulsing blue dot, and a "Live now" line. Palette blue family (#1D5FD0 / #185FA5);
   text #185FA5 on #EEF4FD = 5.9:1. The inactive (greyed) version is unchanged. */
html body.koach-light .kl a.kl-btn--live, html body.koach-light .kl a.kl-btn--live:is(:link, :visited, :focus, :focus-visible) {
  background: #EEF4FD !important; color: #185FA5 !important; -webkit-text-fill-color: #185FA5 !important;
  border: 1px solid #8DB0E8 !important; box-shadow: none !important;
  min-height: 48px !important; font-size: 16px !important; font-weight: 600 !important; border-radius: 14px !important;
  text-decoration: none !important; gap: 10px !important;
}
html body.koach-light .kl a.kl-btn--live:is(:hover, :active) { background: #E2ECFB !important; border-color: #6F9BE0 !important; color: #185FA5 !important; }
html body.koach-light .kl a.kl-btn--live:focus-visible { outline: 2px solid #1D5FD0 !important; outline-offset: 2px !important; }
html body.koach-light .kl .kl-live-dot { width: 8px; height: 8px; border-radius: 50%; background: #1D5FD0; box-shadow: 0 0 0 0 rgba(29,95,208,.45); animation: klLivePulse 1.8s ease-out infinite; flex: 0 0 8px; }
@keyframes klLivePulse { 0% { box-shadow: 0 0 0 0 rgba(29,95,208,.45); } 70% { box-shadow: 0 0 0 7px rgba(29,95,208,0); } 100% { box-shadow: 0 0 0 0 rgba(29,95,208,0); } }
@media (prefers-reduced-motion: reduce) { html body.koach-light .kl .kl-live-dot { animation: none; } }
html body.koach-light .kl .kl-live-help { color: #185FA5 !important; font-weight: 400 !important; }
/* primary buttons keep white text in every link state (owner saw an empty red Start workout button on the phone) */
html body.koach-light .kl a.kl-btn--primary, html body.koach-light .kl a.kl-btn--primary:is(:link, :visited, :hover, :focus, :focus-visible, :active) { color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF !important; text-decoration: none !important; }

/* 31.12 walk 32 (2026-10-20) fixes.
   (a) dropdown chevron PAINTED 16px from the edge (the icon has 4.5px of air inside it, so it sits at right 12px). */
html body.koach-light select:not([multiple]):not([size]),
html body.koach-light-shop select:not([multiple]):not([size]),
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme select:not([multiple]):not([size]),
html body.koach-light #kmd-tab-assessment select:not([multiple]):not([size]),
html body.koach-light #kmd-tab-progress select:not([multiple]):not([size]) { background-position: right 12px center !important; }
/* (b) checkout Country / Province (select2 boxes): same thin chevron, no divider, 48px, radius 12 */
html body.koach-light-shop .select2-container .select2-selection--single { position: relative !important; padding: 0 !important; height: 48px !important; border: 1px solid var(--kl-line-ctrl, var(--kl-line-ctrl)) !important; border-radius: 12px !important; background: #FFFFFF !important; }
html body.koach-light-shop .select2-container .select2-selection--single .select2-selection__rendered { line-height: 46px !important; padding-left: 14px !important; padding-right: 48px !important; color: var(--kl-ink, #21252E) !important; font-size: 16px !important; }
html body.koach-light-shop .select2-container .select2-selection--single .select2-selection__arrow { height: 46px !important; width: 46px !important; top: 0 !important; right: 0 !important; transform: none !important; border: 0 !important; background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%234A515F' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center / 18px 18px !important; }
html body.koach-light-shop .select2-container .select2-selection--single .select2-selection__arrow b { display: none !important; }
html body.koach-light-shop .select2-container .select2-selection--single .select2-selection__arrow::before, html body.koach-light-shop .select2-container .select2-selection--single .select2-selection__arrow::after { display: none !important; }
/* (c) Nutrition: an older catch-all span rule (s.30, "[class*=knut] span" = 1em) beat the 31.4 sizes on every SPAN; restated on the span itself */
html body.koach-light.koach-app-nutrition span.knut-sec-t { font-size: 20px !important; font-weight: 700 !important; }
html body.koach-light.koach-app-nutrition span.knut-dayl { font-size: 17px !important; font-weight: 700 !important; }
html body.koach-light.koach-app-nutrition span.knut-days { font-size: 14px !important; }
html body.koach-light.koach-app-nutrition span.knut-tabdd-l { font-size: 16px !important; font-weight: 600 !important; }
html body.koach-light.koach-app-nutrition span.knut-cf-l { font-size: 15px !important; font-weight: 600 !important; }
html body.koach-light.koach-app-nutrition span.knut-cf-said { font-size: 15px !important; }
/* (d) readable everywhere: locked milestones keep a lock look without fading the words; cart "/mo"; cart footer line */
body.koach-light #kmd-tab-milestones .kmd-milestone-card--locked { opacity: 1 !important; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card--locked .kmd-milestone-card-label { color: #5F6673 !important; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card--locked .kmd-milestone-card-icon, body.koach-light #kmd-tab-milestones .kmd-milestone-card--locked svg { opacity: .55; }
body.koach-light #kmd-tab-milestones .kmd-milestone-card-major-tag { color: #4A515F !important; background: #EEF0F3 !important; }
html body.koach-light-shop .kct-solo-price span { opacity: 1 !important; color: #4A515F !important; }
html body.koach-light-shop .kct-footer, html body.koach-light-shop .kct-footer p { color: rgba(255,255,255,.72) !important; font-size: 13px !important; }
/* (e) Progress details: 14px cells, the source as a neutral tag (it was a red 11px word -- red is reserved) */
body.koach-light #kmd-tab-progress .kmd-explorer-table :is(th, td) { font-size: 14px !important; }
body.koach-light #kmd-tab-progress :is(.kmd-src-assess, .kmd-src-self) { display: inline-block; font-size: 13px !important; font-weight: 600 !important; line-height: 1.6; padding: 0 10px; border-radius: 999px; background: #EEF0F3; color: #4A515F !important; }
body.koach-light #kmd-tab-progress .kmd-src-assess { background: #E4F5F7; color: #0C6E76 !important; }
/* (f) checkout desktop: "Back to cart" lines up with the step bar instead of the window edge */
@media (min-width: 821px) { html body.koach-light-shop .kco-back-link { display: flex !important; width: auto !important; max-width: 1320px !important; margin-left: auto !important; margin-right: auto !important; box-sizing: border-box; } }


/* ------------------------------------------------------------------------------------------
   31.13 PROGRESS: filter, one chart, details (S330 C617; owner-approved mock v3 2026-10-20)
   Markup: views/member-dashboard-progress-chart-light.php (light look only).
   ------------------------------------------------------------------------------------------ */
body.koach-light .kpl { margin: 0 0 8px; }
body.koach-light .kpl-filter { display: grid; gap: 20px; margin: 20px 0 28px; }
@media (min-width: 821px) {
  body.koach-light .kpl-filter { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 24px; align-items: start; }
  body.koach-light .kpl-filter > .kpl-field:nth-child(2) { grid-column: 2; grid-row: 1 / span 2; }
  body.koach-light .kpl-field--show { grid-column: 1; grid-row: 2; }
}
body.koach-light .kpl-lab { display: block; margin: 0 0 8px; font-family: var(--kl-font); font-size: 16px; font-weight: 600; line-height: 1.3; color: var(--kl-ink); }
body.koach-light .kpl-lab--sm { font-size: 15px; font-weight: 500; color: var(--kl-ink2); margin-bottom: 6px; }
body.koach-light #kmd-tab-progress .kpl select,
body.koach-light #kmd-tab-progress .kpl input[type="date"] { width: 100% !important; min-height: var(--kl-h-secondary) !important; font-size: 16px !important; box-sizing: border-box; }
body.koach-light #kmd-tab-progress .kpl input[type="date"] { padding: 0 12px !important; }
body.koach-light .kpl-seg { display: flex; gap: 4px; padding: 4px; background: var(--kl-ctrl); border-radius: var(--kl-r-btn); }
body.koach-light .kpl-seg button { flex: 1 1 0; min-width: 0; min-height: var(--kl-h-tap); padding: 0 6px; margin: 0; border: 0; border-radius: var(--kl-r-seg); background: transparent; box-shadow: none; font-family: var(--kl-font); font-size: 16px; font-weight: 500; line-height: 1.2; color: var(--kl-ink2); white-space: nowrap; cursor: pointer; text-transform: none; letter-spacing: 0; }
body.koach-light .kpl-seg button[aria-pressed="true"] { background: #FFFFFF; color: var(--kl-ink); font-weight: 600; box-shadow: var(--kl-sh-seg); }
body.koach-light .kpl-seg button:focus-visible,
body.koach-light .kpl-link:focus-visible,
body.koach-light .kpl-more:focus-visible { outline: 2px solid var(--kl-phase); outline-offset: 2px; }
body.koach-light .kpl-link { display: inline-flex; align-items: center; min-height: var(--kl-h-tap); margin: 6px 0 0; padding: 0; border: 0; background: none; box-shadow: none; font-family: var(--kl-font); font-size: 16px; font-weight: 600; color: var(--kl-red); cursor: pointer; text-transform: none; letter-spacing: 0; }
body.koach-light .kpl-link--in { margin: 0 0 0 6px; min-height: 0; display: inline; }
body.koach-light .kpl-dates { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 4px 0 0; }
body.koach-light .kpl-dates[hidden] { display: none; }
body.koach-light .kpl-chart { margin: 0 0 36px; }
body.koach-light .kpl-ch-name { margin: 0; font-family: var(--kl-font); font-size: 16px; font-weight: 600; color: var(--kl-ink); }
body.koach-light .kpl-ch-name span { font-weight: 400; color: var(--kl-ink2); }
body.koach-light .kpl-ch-val { margin: 2px 0 0; font-family: var(--kl-font); font-size: 34px; font-weight: 700; line-height: 1.15; color: var(--kl-ink); }
body.koach-light .kpl-ch-val small { margin-left: 6px; font-size: 18px; font-weight: 500; color: var(--kl-ink2); }
body.koach-light .kpl-ch-delta { margin: 2px 0 12px; font-family: var(--kl-font); font-size: 16px; color: var(--kl-ink2); }
body.koach-light .kpl-plot { position: relative; }
body.koach-light .kpl-plot svg { display: block; overflow: visible; touch-action: pan-y; }
body.koach-light .kpl-ax { font-family: var(--kl-font); font-size: 13px; fill: var(--kl-quiet); }
body.koach-light .kpl-tip { position: absolute; z-index: 2; transform: translate(-50%, -100%); padding: 6px 10px; border-radius: 8px; background: var(--kl-ink); color: #FFFFFF; font-family: var(--kl-font); font-size: 14px; line-height: 1.3; white-space: nowrap; pointer-events: none; }
body.koach-light .kpl-tip[hidden] { display: none; }
body.koach-light .kpl-empty { padding: 28px 0; border-top: 1px solid var(--kl-line-section); border-bottom: 1px solid var(--kl-line-section); font-family: var(--kl-font); font-size: 16px; color: var(--kl-ink2); }
body.koach-light .kpl-legend { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 12px 0 0; font-family: var(--kl-font); font-size: 15px; color: var(--kl-ink2); }
body.koach-light .kpl-key { display: inline-flex; align-items: center; gap: 8px; }
body.koach-light .kpl-dot { width: 10px; height: 10px; box-sizing: border-box; border: 2px solid var(--kl-phase); border-radius: 50%; background: var(--kl-phase); }
body.koach-light .kpl-dot--own { background: #FFFFFF; }
body.koach-light .kpl-rows { list-style: none; margin: 0; padding: 0; }
body.koach-light .kpl-rows li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; column-gap: 12px; min-height: 52px; margin: 0; padding: 4px 0; border-bottom: 1px solid var(--kl-line-section); font-family: var(--kl-font); font-size: 16px; color: var(--kl-ink); }
body.koach-light .kpl-rows li.kpl-rows-empty { display: block; padding: 16px 0; color: var(--kl-ink2); }
body.koach-light .kpl-r-val { font-weight: 600; white-space: nowrap; text-align: right; }
body.koach-light .kpl-tag { justify-self: end; padding: 5px 10px; border-radius: 999px; background: var(--kl-ctrl); color: var(--kl-ink2); font-size: 13px; font-weight: 500; line-height: 1.1; white-space: nowrap; }
body.koach-light .kpl-tag--koach { background: #E4F3F4; color: var(--kl-phase-tx); }
body.koach-light .kpl-more { display: block; width: 100%; min-height: var(--kl-h-secondary); margin: 16px 0 0; border: 1px solid var(--kl-line-ctrl); border-radius: var(--kl-r-btn); background: #FFFFFF; font-family: var(--kl-font); font-size: 16px; font-weight: 600; color: var(--kl-ink); cursor: pointer; text-transform: none; }
body.koach-light .kpl-more[hidden] { display: none; }
body.koach-light .kpl + .kmd-section-title,
body.koach-light .kpl ~ .kmd-section-title { margin-top: 36px; }
@media (min-width: 821px) {
  body.koach-light .kpl-ch-val { font-size: 38px; }
  body.koach-light .kpl-rows li { min-height: 48px; }
}


/* ------------------------------------------------------------------------------------------
   31.14 PUBLIC LEGAL PAGES (signed-out, koach, admin): readability only; the marketing frame and the
   card stay (owner 2026-10-21: marketing look waits for the marketing review). body.koach-light-legal.
   ------------------------------------------------------------------------------------------ */
body.koach-light-legal .koach-legal-table { display: block !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch; font-size: 14px !important; }
body.koach-light-legal .koach-legal-table :is(th, td) { font-size: 14px !important; min-width: 88px; word-break: normal !important; overflow-wrap: normal !important; hyphens: none !important; }
body.koach-light-legal .koach-legal-p, body.koach-light-legal .koach-legal-list li { font-size: 15px !important; line-height: 1.55 !important; }


/* ------------------------------------------------------------------------------------------
   31.15 PRINT: the light Program Card on paper (S330 C617 "emails and print").
   The old print block in koach-program-card.php hides .kps-header-actions / .kpc-bottom-actions /
   .kpc-session-info-section, which the light card no longer uses. These rules are additive.
   ------------------------------------------------------------------------------------------ */
@media print {
  html body.koach-light, html body.koach-light #main, html body.koach-light .koach-content-area { background: #FFFFFF !important; }
  /* app chrome and floating things */
  html body.koach-light #kns-shell .kns-mtop, html body.koach-light #kns-shell .kns-tabbar, html body.koach-light #kns-shell .kns-side,
  html body.koach-light #kns-shell .kns-sheet, html body.koach-light #kns-shell .kns-sheet-scrim,
  html body.koach-light #kbf-root, html body.koach-light .kbf-pill, html body.koach-light #toTop, html body.koach-light .kpwa-card,
  html body.koach-light #cmplz-cookiebanner-container, html body.koach-light .otgs-development-site-front-end { display: none !important; }
  html body.koach-light #main { margin: 0 !important; padding: 0 !important; width: auto !important; }
  html body.koach-light .koach-program-card.kpc-light { padding-top: 0 !important; padding-bottom: 0 !important; }
  /* controls that mean nothing on paper */
  html body.koach-light .koach-program-card.kpc-light .kl-link[onclick*="print"],
  html body.koach-light .koach-program-card.kpc-light .kl-link.kpcl-edit:not(.kpcl-mode-link), html body.koach-light .koach-program-card.kpc-light .kl-vm-btn,
  html body.koach-light .koach-program-card.kpc-light .kpc-video-toggle, html body.koach-light .koach-program-card.kpc-light .kpc-swap-btn,
  html body.koach-light .koach-program-card.kpc-light .kpc-addload, html body.koach-light .koach-program-card.kpc-light .kpc-tts-row,
  html body.koach-light .koach-program-card.kpc-light .kl-btn--primary, html body.koach-light .koach-program-card.kpc-light .kpc-chip,
  html body.koach-light .koach-program-card.kpc-light .kpc-hd-side svg, html body.koach-light .koach-program-card.kpc-light .kpc-card-hd > svg,
  html body.koach-light .koach-program-card.kpc-light .kpc-log-note, html body.koach-light .koach-program-card.kpc-light .kpc-textarea { display: none !important; }
  /* every exercise open, so every set row prints; the "View more" text fully shown */
  html body.koach-light .koach-program-card.kpc-light .kpc-station > .kpc-card-body { display: block !important; }
  html body.koach-light .koach-program-card.kpc-light .kpc-station .kpc-openonly:not(.kpc-addload) { display: block !important; }
  html body.koach-light .koach-program-card.kpc-light .kpc-station .collapsed-only { display: none !important; }
  html body.koach-light .koach-program-card.kpc-light .kpc-station { background: transparent !important; margin: 0 !important; padding: 8px 0 12px !important; border-top: 0 !important; border-bottom: 1px solid var(--kl-line-role) !important; }
  html body.koach-light .koach-program-card.kpc-light .kpc-station > .kpc-card-hd { flex-direction: column !important; align-items: stretch; padding: 0 0 6px !important; break-inside: avoid; page-break-inside: avoid; break-after: avoid; }
  /* walk 34 P1: the "Training at" value is a button -- printed as plain text */
  html body.koach-light .koach-program-card.kpc-light .kpcl-mode-link { display: inline !important; background: none !important; border: 0 !important; padding: 0 !important; color: #21252E !important; font: inherit !important; font-weight: 600 !important; }
  html body.koach-light .koach-program-card.kpc-light .kpcl-mode-link svg { display: none !important; }
  /* a category band and the note under an exercise heading stay with what follows them */
  html body.koach-light .koach-program-card.kpc-light .kpcl-role { break-after: avoid; page-break-after: avoid; break-inside: avoid; }
  html body.koach-light .koach-program-card.kpc-light .kpc-ex-card-note, html body.koach-light .koach-program-card.kpc-light .kpc-cue-koach, html body.koach-light .koach-program-card.kpc-light .kpc-last-head { break-after: avoid; page-break-after: avoid; break-inside: avoid; }
  /* empty boxes print empty: no last-time placeholder numbers */
  html body.koach-light .koach-program-card.kpc-light .kpc-log-input::placeholder { color: transparent !important; opacity: 0 !important; }
  /* no trailing blank page */
  html body.koach-light .koach-program-card.kpc-light, html body.koach-light #main, html body.koach-light .koach-content-area { margin-bottom: 0 !important; padding-bottom: 0 !important; min-height: 0 !important; }
  html body.koach-light #kns-shell, html body.koach-light .kns-tabbar-spacer, html body.koach-light #koach-footer { display: none !important; }
  html body.koach-light .kl-vm { max-height: none !important; -webkit-mask-image: none !important; mask-image: none !important; }
  html body.koach-light .koach-program-card.kpc-light .kl-vm::after { display: none !important; }
  /* inputs print as boxes to write in; typed values show */
  html body.koach-light .koach-program-card.kpc-light .kpc-log-input { border: 1px solid var(--kl-line-ctrl) !important; background: #FFFFFF !important; color: #21252E !important; box-shadow: none !important; min-height: 36px !important; }
  html body.koach-light .koach-program-card.kpc-light .kpc-set-row { break-inside: avoid; page-break-inside: avoid; }
  /* role headings keep their dot on paper */
  html body.koach-light .koach-program-card.kpc-light .kl-role, html body.koach-light .koach-program-card.kpc-light .kl-role-dot { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  html body.koach-light .koach-program-card.kpc-light a { text-decoration: none !important; color: inherit !important; }
  /* the swapped-exercise note: show the koach's text, hide the toggles */
  html body.koach-light .koach-program-card.kpc-light .kpc-cue-swapinfo-btn, html body.koach-light .koach-program-card.kpc-light .kpc-cue-koach-show,
  html body.koach-light .koach-program-card.kpc-light .kpc-cue-koach-swapline { display: none !important; }
  html body.koach-light .koach-program-card.kpc-light .kpc-cue-koach.is-collapsed .kpc-cue-koach-text,
  html body.koach-light .koach-program-card.kpc-light .kpc-cue-koach.is-collapsed .kpcl-av,
  html body.koach-light .koach-program-card.kpc-light .kpc-cue-koach.is-collapsed .kpc-cue-koach-label { display: inline-flex !important; }
}


/* ------------------------------------------------------------------------------------------
   31.16 SCHEDULE EMPTY STATE (mu-plugins/koach-schedule-panel-guard.php koach_sched_empty_state):
   inline-styled grey card + 14px button -> the light look (no box, standard primary button).
   ------------------------------------------------------------------------------------------ */
html body.koach-light .kl-sched-title { margin: 0 0 16px !important; }
html body.koach-light .koach-sched-empty { background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 32px 0 !important; }
html body.koach-light .koach-sched-empty > div:first-child { font-size: 20px !important; font-weight: 700 !important; }
html body.koach-light .koach-sched-empty > div:nth-child(2) { font-size: 16px !important; color: var(--kl-ink2) !important; }
html body.koach-light .koach-sched-empty a { display: inline-flex !important; align-items: center !important; justify-content: center !important; min-height: var(--kl-h-primary) !important; margin-top: 24px !important; padding: 0 28px !important; background: var(--kl-red) !important; color: #FFFFFF !important; font-family: var(--kl-font) !important; font-size: 17px !important; font-weight: 700 !important; border-radius: var(--kl-r-btn) !important; box-shadow: var(--kl-sh-primary) !important; text-decoration: none !important; }


/* ==========================================================================
   32. THE koach SHELL IN THE LIGHT LOOK (S331-B2, C621, D638: the koach switch).
   The sidebar keeps its COLLAPSIBLE groups (D128: no scrollbar for the koach's longer
   nav; D628's static groups are the CLIENT sidebar). The koach's More sheet is the
   current markup (.kns-sheet without --light) restyled: white, ink text, light lines.
   Scope: body.koach-light-shell for a koach / administrator viewer (koach_light_shell_on()).
   ========================================================================== */
body.koach-light-shell .kns-side .kns-group:not(.kns-group--static) .kns-group-hd { padding: 0 !important; border-radius: 9px !important; }
body.koach-light-shell .kns-side .kns-group:not(.kns-group--static) .kns-group-hd .kns-eyebrow { color: var(--kl-ink2) !important; font-size: 11px !important; letter-spacing: .08em !important; }
body.koach-light-shell .kns-side .kns-group:not(.kns-group--static) .kns-group-chev { color: var(--kl-ink2) !important; }
body.koach-light-shell .kns-side .kns-group:not(.kns-group--static) .kns-group-hd:hover { background: #E9ECF2 !important; }
body.koach-light-shell .kns-side .kns-group:not(.kns-group--static) .kns-group-hd:hover .kns-eyebrow,
body.koach-light-shell .kns-side .kns-group:not(.kns-group--static) .kns-group-hd:hover .kns-group-chev { color: var(--kl-ink) !important; }
body.koach-light-shell .kns-side .kns-group:not(.kns-group--static) .kns-group-hd:focus-visible { outline: 2px solid var(--kl-red) !important; outline-offset: 2px !important; }
/* the koach More sheet (the current markup, light) */
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) {
  background: #FFFFFF !important; border-top: 1px solid var(--kl-line-bubble) !important;
  box-shadow: 0 -8px 24px rgba(16,24,40,.12) !important; padding: 8px 20px calc(20px + env(safe-area-inset-bottom, 0px)) !important;
}
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-sheet-grip { background: var(--kl-line-role) !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-sheet-close { width: 44px !important; height: 44px !important; border-radius: 12px !important; background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; color: var(--kl-ink) !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-eyebrow { color: var(--kl-ink2) !important; font-size: 13px !important; letter-spacing: .04em !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-group-hd { border-bottom: 1px solid var(--kl-line-row) !important; min-height: 48px !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-group-chev { color: var(--kl-ink2) !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-sheet-item { color: var(--kl-ink) !important; font-size: 16px !important; font-weight: 400 !important; min-height: 48px !important; border-radius: 10px !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-sheet-item .kns-ic { color: var(--kl-ink2) !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-sheet-item:active { background: var(--kl-soft) !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-sheet-item.is-active { background: transparent !important; color: var(--kl-red) !important; font-weight: 600 !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-sheet-item.is-active .kns-ic { color: var(--kl-red) !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-sheet-sep { background: var(--kl-line-bubble) !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-soon { color: var(--kl-ink2) !important; border-color: var(--kl-line-ctrl) !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-uom { background: var(--kl-ctrl) !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: 11px !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-uom-btn { color: var(--kl-ink2) !important; font-size: 15px !important; min-height: 42px !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-uom-btn.is-on { background: #FFFFFF !important; color: var(--kl-ink) !important; font-weight: 700 !important; box-shadow: var(--kl-sh-seg) !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-uom-note { color: var(--kl-ink2) !important; font-size: 13px !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-sheet-logout { color: var(--kl-red) !important; font-weight: 700 !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light) .kns-sheet-logout .kns-ic { color: var(--kl-red) !important; }

/* ==========================================================================
   33. THE CLIENTS DASHBOARD (koach-dashboard.php, [koach_dashboard]) -- S331-B2, C621.
   Built from the live read of 2026-10-21 (nine koach pages exported as baselines). The page's
   own tokens stay; these rules apply the standard: white canvas on every width (the dark
   mobile canvas of D118 goes), Bebas 40 title, DM Sans 20 bold sections, NO boxed cards
   (panels, client cards, alert cards, schedule cards, check-in cards, quick links become
   sections with 1px lines), the three button levels (no charcoal buttons), the segmented
   tab strip as the Choice control, 44px targets, the 13px readability floor.
   Scope: body.koach-light-koach (a koach-side page for a koach viewer with the switch on).
   ========================================================================== */
html body.koach-light-koach { background: #FFFFFF !important; }
body.koach-light-koach .kdash-wrap { color: var(--kl-ink) !important; padding: 0 0 56px !important; }
/* page header */
body.koach-light-koach .kdash-pghead { padding: 0 0 16px !important; border: 0 !important; }
body.koach-light-koach .kdash-pgtitle { font-family: var(--kl-title-font) !important; font-size: 40px !important; font-weight: 400 !important; color: var(--kl-ink) !important; line-height: 1 !important; }
body.koach-light-koach .kdash-meta-name, body.koach-light-koach .kdash-meta-v { color: var(--kl-ink) !important; }
body.koach-light-koach .kdash-meta-k { color: var(--kl-ink2) !important; }
body.koach-light-koach .kdash-meta-strip, body.koach-light-koach .kdash-meta { font-size: 15px !important; color: var(--kl-ink2) !important; }
/* the koach avatar on a white surface = the light avatar (standard s.6) */
body.koach-light-koach .kdash-avatar { background: #FFFFFF !important; border: 1px solid var(--kl-line-ctrl) !important; }
body.koach-light-koach .kdash-avatar .kdash-av-last { color: var(--kl-ink) !important; }
/* tab strip = the Choice control (s.3) */
body.koach-light-koach .kdash-tabs { background: var(--kl-ctrl) !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: 11px !important; padding: 3px !important; }
body.koach-light-koach .kdash-tabs .kdash-tab-btn { font-size: 15px !important; font-weight: 600 !important; min-height: 44px !important; color: var(--kl-ink2) !important; border-radius: 8px !important; }
body.koach-light-koach .kdash-tabs .kdash-tab-btn--active, body.koach-light-koach .kdash-tabs .kdash-tab-btn[aria-selected="true"] { color: var(--kl-ink) !important; }
body.koach-light-koach .kdash-seg-ind { background: #FFFFFF !important; box-shadow: var(--kl-sh-seg) !important; border-radius: 8px !important; }
body.koach-light-koach .kdash-tab-ddbtn { background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; color: var(--kl-ink) !important; font-size: 15px !important; min-height: 44px !important; border-radius: 11px !important; }
body.koach-light-koach .kdash-tab-ddlist { background: #FFFFFF !important; border: 1px solid var(--kl-line-ctrl) !important; box-shadow: var(--kl-sh-float) !important; color: var(--kl-ink) !important; }
body.koach-light-koach .kdash-tab-ddlist a { color: var(--kl-ink) !important; font-size: 15px !important; min-height: 44px !important; }
body.koach-light-koach .kdash-tab-ddlist a.on { background: var(--kl-soft) !important; color: var(--kl-red) !important; font-weight: 600 !important; }
body.koach-light-koach .kdash-badge { font-size: 12px !important; min-width: 20px !important; height: 20px !important; line-height: 20px !important; }
/* panels: no container */
body.koach-light-koach #panel-clients, body.koach-light-koach #panel-alerts, body.koach-light-koach #panel-schedule,
body.koach-light-koach #panel-workspace, body.koach-light-koach #panel-checkins, body.koach-light-koach .kdash-panel {
  background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; margin-top: 24px !important;
}
/* toolbar, search, filters */
body.koach-light-koach .kdash-toolbar { background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 0 0 16px !important; border-bottom: 1px solid var(--kl-line-section) !important; }
body.koach-light-koach .kdash-search-input, body.koach-light-koach .kdash-filter-select, body.koach-light-koach .kdash-assign-koach, body.koach-light-koach .kdash-alert-filter select {
  background: #FFFFFF !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: 12px !important; min-height: 48px !important; font-size: 16px !important; color: var(--kl-ink) !important; box-shadow: none !important;
}
body.koach-light-koach .kdash-search-input:focus, body.koach-light-koach .kdash-filter-select:focus, body.koach-light-koach .kdash-assign-koach:focus { border-color: var(--kl-red) !important; box-shadow: 0 0 0 3px rgba(192,22,28,.12) !important; }
body.koach-light-koach .kdash-dd-btn { background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; border-radius: 999px !important; min-height: 44px !important; font-size: 14px !important; font-weight: 600 !important; color: var(--kl-ink) !important; }
body.koach-light-koach .kdash-dd-list { background: #FFFFFF !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: 12px !important; box-shadow: var(--kl-sh-float) !important; }
body.koach-light-koach .kdash-dd-opt { font-size: 15px !important; min-height: 44px !important; color: var(--kl-ink) !important; }
body.koach-light-koach .kdash-dd-opt:hover, body.koach-light-koach .kdash-dd-opt.kdash-dd-hl { background: var(--kl-soft) !important; }
body.koach-light-koach .kdash-dd-opt.sel { color: var(--kl-red) !important; font-weight: 600 !important; }
/* client cards: sections, not boxes */
body.koach-light-koach .kdash-client-card { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; box-shadow: none !important; padding: 20px 0 !important; margin: 0 !important; }
body.koach-light-koach .kdash-client-card > summary.kcc-head, body.koach-light-koach .kcc-head { background: transparent !important; border-radius: 0 !important; padding: 0 !important; min-height: 44px !important; }
body.koach-light-koach .kdash-cc--foundations[open] > summary.kcc-head, body.koach-light-koach .kdash-cc--evolution[open] > summary.kcc-head,
body.koach-light-koach .kdash-cc--mastery[open] > summary.kcc-head, body.koach-light-koach .kdash-cc--none[open] > summary.kcc-head { background: transparent !important; }
body.koach-light-koach .kdash-client-name { font-size: 17px !important; font-weight: 700 !important; color: var(--kl-ink) !important; }
body.koach-light-koach .kcc-plan, body.koach-light-koach .kdash-phase-pill, body.koach-light-koach .kdash-status-pill, body.koach-light-koach .kdash-alert-chip,
body.koach-light-koach .kdash-prep-chip, body.koach-light-koach .kdash-susage, body.koach-light-koach .kdash-sp-chip, body.koach-light-koach .kdash-ci-pain-flag,
body.koach-light-koach .kdash-ci-rating, body.koach-light-koach .kdash-alert-pill-ok, body.koach-light-koach .kdash-flag, body.koach-light-koach .kdash-alert-subtab-badge { font-size: 13px !important; line-height: 1.3 !important; }
body.koach-light-koach .kcc-body { padding: 16px 0 0 !important; }
/* tables inside a client card and the plain data tables */
body.koach-light-koach .kcc-table thead th, body.koach-light-koach .kdash-table thead th { background: transparent !important; font-size: 13px !important; font-weight: 600 !important; color: var(--kl-ink2) !important; letter-spacing: 0 !important; text-transform: none !important; border-bottom: 1px solid var(--kl-line-role) !important; }
body.koach-light-koach .kcc-table tbody td, body.koach-light-koach .kdash-table tbody td { font-size: 15px !important; color: var(--kl-ink) !important; border-bottom: 1px solid var(--kl-line-row) !important; }
body.koach-light-koach .kcc-table tbody td::before, body.koach-light-koach .kdash-table tbody td::before { font-size: 13px !important; color: var(--kl-ink2) !important; background: transparent !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light-koach .kcc-table tbody td:nth-child(even), body.koach-light-koach .kcc-table tbody td:nth-child(even)::before { background: transparent !important; }
body.koach-light-koach .kdash-table tbody tr { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; border-bottom: 1px solid var(--kl-line-row) !important; }
body.koach-light-koach .kdash-table tbody tr:hover { background: transparent !important; }
body.koach-light-koach .kcc-sess-table tbody tr { border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; margin: 0 !important; }
/* walk 1 (seat B): the phone label column drew a vertical divider and a grey band -- plain rows now */
body.koach-light-koach .kcc-table tbody td::before { border-right: 0 !important; }
body.koach-light-koach .kcc-sess { border-top: 0 !important; padding: 16px 0 0 !important; }
body.koach-light-koach .kdash-waive-btn { margin: 4px 8px 4px 0 !important; }
body.koach-light-koach .kcc-sess-title { font-size: 15px !important; font-weight: 700 !important; }
/* the row of client actions = chips; one red text link per row at most */
body.koach-light-koach .kcc-btn { background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; border-radius: 999px !important; min-height: 44px !important; padding: 0 16px !important; font-size: 14px !important; font-weight: 600 !important; color: var(--kl-ink) !important; }
body.koach-light-koach .kcc-btn:hover { background: var(--kl-soft) !important; color: var(--kl-ink) !important; }
body.koach-light-koach .kcc-btn--cta { background: var(--kl-ctrl-bg) !important; color: var(--kl-red) !important; }
body.koach-light-koach .kcc-btn--cta:hover { background: var(--kl-soft) !important; color: var(--kl-red-press) !important; }
/* buttons: three levels, no charcoal */
body.koach-light-koach .kdash-btn { min-height: 44px !important; border-radius: 14px !important; font-size: 15px !important; font-weight: 600 !important; }
body.koach-light-koach .kdash-btn--primary { background: var(--kl-red) !important; color: #FFFFFF !important; border: 0 !important; box-shadow: var(--kl-sh-primary) !important; }
body.koach-light-koach .kdash-btn--primary:hover { background: var(--kl-red-press) !important; }
body.koach-light-koach .kdash-btn--secondary, body.koach-light-koach .kdash-alert-card .kdash-btn--primary, body.koach-light-koach .kdash-alert-card .kdash-btn--secondary,
body.koach-light-koach .kdash-sysnotice .kdash-btn--secondary, body.koach-light-koach .kdash-sched-amelia-btn, body.koach-light-koach .kdash-ci-review-btn, body.koach-light-koach .kdash-waive-btn, body.koach-light-koach .kdash-ci-toggle {
  background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; color: var(--kl-ink) !important; box-shadow: none !important; border-radius: 14px !important; min-height: 44px !important; font-size: 14px !important; font-weight: 600 !important;
}
body.koach-light-koach .kdash-btn--secondary:hover, body.koach-light-koach .kdash-alert-card .kdash-btn--primary:hover, body.koach-light-koach .kdash-alert-card .kdash-btn--secondary:hover,
body.koach-light-koach .kdash-sysnotice .kdash-btn--secondary:hover, body.koach-light-koach .kdash-sched-amelia-btn:hover, body.koach-light-koach .kdash-ci-review-btn:hover, body.koach-light-koach .kdash-waive-btn:hover { background: var(--kl-soft) !important; color: var(--kl-ink) !important; }
body.koach-light-koach .kdash-ci-toggle--on { background: #FFFFFF !important; border: 2px solid var(--kl-red) !important; color: var(--kl-ink) !important; }
body.koach-light-koach .kdash-ci-toggle--on::before { background: var(--kl-red) !important; }
body.koach-light-koach .kdash-action-link { color: var(--kl-red) !important; font-size: 15px !important; font-weight: 600 !important; }
/* alerts, notices, schedule, check-ins, quick links: sections, 1px lines */
body.koach-light-koach .kdash-alert-card, body.koach-light-koach .kdash-sysnotice, body.koach-light-koach .kdash-sched-card, body.koach-light-koach .kdash-ci-card,
body.koach-light-koach .kdash-ci-metric, body.koach-light-koach .kdash-ql-link, body.koach-light-koach .kdash-alert-legend {
  background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; padding: 16px 0 !important;
}
body.koach-light-koach .kdash-alert-legend { border-bottom: 0 !important; color: var(--kl-ink2) !important; font-size: 13px !important; }
body.koach-light-koach .kdash-alert-lg, body.koach-light-koach .kdash-alert-lg b { color: var(--kl-ink2) !important; font-size: 13px !important; }
body.koach-light-koach .kdash-alert-lg b { color: var(--kl-ink) !important; }
body.koach-light-koach .kdash-alert-subtab { color: var(--kl-ink2) !important; font-size: 15px !important; min-height: 44px !important; }
body.koach-light-koach .kdash-alert-subtab.active { color: var(--kl-ink) !important; }
body.koach-light-koach .kdash-alert-subtab.active::after { background: var(--kl-red) !important; }
body.koach-light-koach .kdash-alert-subtab-badge, body.koach-light-koach .kdash-alert-subtab-badge--red { background: var(--kl-badge-bg) !important; color: var(--kl-ink) !important; }
body.koach-light-koach .kdash-sched-section-title, body.koach-light-koach .kdash-ql-group-title { background: transparent !important; border: 0 !important; padding: 24px 0 8px !important; font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; color: var(--kl-ink) !important; letter-spacing: 0 !important; }
body.koach-light-koach .kdash-sched-date-col, body.koach-light-koach .kdash-ci-head { background: transparent !important; }
body.koach-light-koach .kdash-ql-icon { background: var(--kl-soft) !important; }
body.koach-light-koach .kdash-prep-warn, body.koach-light-koach .kdash-ci-pain-detail { font-size: 14px !important; color: var(--kl-attn) !important; background: #FFF7E8 !important; border: 1px solid #E8C98F !important; border-radius: 12px !important; }
body.koach-light-koach .kmd-notice { font-size: 15px !important; border-radius: 12px !important; }
/* mobile: the dark canvas goes; ink everywhere */
@media (max-width: 820px) {
  body.koach-light-koach .kdash-pgtitle, body.koach-light-koach .kdash-meta-name, body.koach-light-koach .kdash-meta-v { color: var(--kl-ink) !important; }
  body.koach-light-koach .kdash-meta-k, body.koach-light-koach .kdash-sched-section-title, body.koach-light-koach .kdash-ql-group-title { color: var(--kl-ink2) !important; }
  body.koach-light-koach .kdash-sched-section-title, body.koach-light-koach .kdash-ql-group-title { color: var(--kl-ink) !important; }
  body.koach-light-koach .kdash-alert-legend { background: transparent !important; }
  body.koach-light-koach .kdash-alert-subtab { color: var(--kl-ink2) !important; }
  body.koach-light-koach .kdash-alert-subtab.active { color: var(--kl-ink) !important; }
  body.koach-light-koach .kdash-alert-subtab.active::after { background: var(--kl-red) !important; }
  body.koach-light-koach .kdash-alert-subtab-badge--red { background: var(--kl-badge-bg) !important; color: var(--kl-ink) !important; }
  body.koach-light-koach .kdash-wrap { padding: 0 0 40px !important; }
}
/* readability floor on the remaining small classes (s.2.3: nothing readable under 13px) */
body.koach-light-koach .kdash-meta-k, body.koach-light-koach .kdash-meta-v, body.koach-light-koach .kcc-sub, body.koach-light-koach .kdash-sub, body.koach-light-koach .kdash-hint,
body.koach-light-koach .kdash-sched-time, body.koach-light-koach .kdash-sched-meta, body.koach-light-koach .kdash-ci-date, body.koach-light-koach .kdash-ci-label, body.koach-light-koach .kdash-ql-desc,
body.koach-light-koach .kcc-email, body.koach-light-koach .kcc-sess-anchor, body.koach-light-koach .kdash-sess-pill, body.koach-light-koach .kdash-badge { font-size: 13px !important; }
body.koach-light-koach .kcc-email { color: var(--kl-ink2) !important; }
body.koach-light-koach .kdash-wrap [style*="font-size:10"], body.koach-light-koach .kdash-wrap [style*="font-size:11"], body.koach-light-koach .kdash-wrap [style*="font-size:12"],
body.koach-light-koach .kdash-wrap [style*="font-size: 10"], body.koach-light-koach .kdash-wrap [style*="font-size: 11"], body.koach-light-koach .kdash-wrap [style*="font-size: 12"] { font-size: 13px !important; }

/* ==========================================================================
   34. THE koach BUILD PAGES (S331-B4, C621): plan builder, program builder, program design, plan summary,
   periodized plan (koach view), assessment history, client intake, the picker home -- the shared kpb / kps /
   kar / kah / kat / kpp / kci / kph vocabulary, read live 2026-10-21 (baselines s331-baseline/*-args.html).
   Rules of the standard applied: white canvas, Bebas 40 page title (Bebas nowhere else), DM Sans 20 bold
   section headings (the grey Bebas bands go), NO boxed cards (kps-card / kpb-section / kpb-context-card /
   kpb-program-card / kah sections become sections with 1px lines; the D105 view-more fold keeps its
   behaviour, loses its box), the three button levels (no charcoal buttons; kpb-btn--danger stays a red
   outline), chips at 44px, fields 48px / radius 12, 44px targets, the 13px floor (the dense mesocycle week
   grid in the plan summary stays at 12px -- raised on the owner's word). Phase tints stay as small pills
   (s.2.2). Scope: body.koach-light-koach.
   ========================================================================== */
/* canvas, frame, header */
body.koach-light-koach .koach-plan-builder, body.koach-light-koach .koach-program-builder, body.koach-light-koach .koach-plan-summary,
body.koach-light-koach .koach-assessment-history, body.koach-light-koach .koach-periodized-plan, body.koach-light-koach .koach-program-design,
body.koach-light-koach .koach-client-intake, body.koach-light-koach .kph-picker { background: transparent !important; color: var(--kl-ink) !important; }
body.koach-light-koach .kpb-header { background: transparent !important; box-shadow: none !important; border: 0 !important; padding: 0 0 16px !important; }
body.koach-light-koach .kpb-pgtitle { font-family: var(--kl-title-font) !important; font-size: 40px !important; font-weight: 400 !important; color: var(--kl-ink) !important; line-height: 1 !important; letter-spacing: 0 !important; text-transform: uppercase !important; }
body.koach-light-koach .kpb-breadcrumb, body.koach-light-koach .kpb-breadcrumb a, body.koach-light-koach .kpb-breadcrumb span { font-size: 15px !important; color: var(--kl-ink2) !important; }
body.koach-light-koach .kpb-breadcrumb a:hover { color: var(--kl-red) !important; }
body.koach-light-koach .kpb-client-name, body.koach-light-koach .kpb-context-sub { color: var(--kl-ink2) !important; font-size: 15px !important; }
/* the picker home ("Choose what to work on") */
body.koach-light-koach .kph-picker--empty .kph-row, body.koach-light-koach .kph-picker--breadcrumb .kph-row { background: transparent !important; box-shadow: none !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; }
body.koach-light-koach .kph-empty-title { font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; color: var(--kl-ink) !important; }
body.koach-light-koach .kph-empty-icon { background: var(--kl-soft) !important; }
body.koach-light-koach .kph-label { font-size: 13px !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light-koach .kph-select { background: #FFFFFF !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: 12px !important; min-height: 48px !important; font-size: 16px !important; color: var(--kl-ink) !important; }
body.koach-light-koach .kph-select:focus { border-color: var(--kl-red) !important; box-shadow: 0 0 0 3px rgba(192,22,28,.12) !important; }
body.koach-light-koach .kph-empty-note { background: transparent !important; border: 0 !important; color: var(--kl-ink2) !important; font-size: 15px !important; padding: 8px 0 !important; }
/* section headings: DM Sans 20 bold, a 1px line above, no band, no Bebas */
body.koach-light-koach .kps-section-title { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; padding: 24px 0 8px !important; margin: 24px 0 0 !important; }
body.koach-light-koach .kps-section-title h3, body.koach-light-koach .kps-section-title .tl { font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink) !important; }
body.koach-light-koach .kps-section-title .hint { font-size: 13px !important; color: var(--kl-ink2) !important; }
/* boxes become sections */
body.koach-light-koach .kpb-section, body.koach-light-koach .kpb-context-card, body.koach-light-koach .kpb-program-card, body.koach-light-koach .kpb-framework-reference,
body.koach-light-koach .kps-card, body.koach-light-koach .kps-acc, body.koach-light-koach .kps-fp-wrap, body.koach-light-koach .kps-mc,
body.koach-light-koach .kah-reassess-section, body.koach-light-koach .kat-card, body.koach-light-koach .kci-card, body.koach-light-koach .kpp-card {
  background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; box-shadow: none !important; padding: 16px 0 !important; margin: 0 !important;
}
body.koach-light-koach .kpb-context-card--warning, body.koach-light-koach .kah-reassess-section--due { background: #FFF7E8 !important; border: 1px solid #E8C98F !important; border-radius: 12px !important; padding: 16px !important; margin: 0 0 16px !important; }
body.koach-light-koach .kpb-context-label { font-size: 13px !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
/* the D104 / D105 card head (grey Bebas bar) -> a DM Sans 17 bold heading; the view-more fold keeps its behaviour */
body.koach-light-koach .kps-card-head, body.koach-light-koach .kps-acc > summary, body.koach-light-koach .kpb-program-header, body.koach-light-koach .kpb-modal-head {
  background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 0 0 12px !important; font-family: var(--kl-font) !important; font-size: 17px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink) !important;
}
body.koach-light-koach .kps-card-head .kps-head-hint { font-size: 13px !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light-koach .kps-card-head .badge, body.koach-light-koach .kps-acc > summary .badge { font-size: 13px !important; }
body.koach-light-koach .kps-card-more { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-row) !important; color: var(--kl-red) !important; font-size: 15px !important; font-weight: 600 !important; min-height: 44px !important; }
body.koach-light-koach .kps-card-more .chev { font-size: 13px !important; }
body.koach-light-koach .kps-card:not(.is-open) .kps-card-body.clamp::after { background: linear-gradient(rgba(255,255,255,0), #FFFFFF) !important; }
body.koach-light-koach .kps-mc > summary, body.koach-light-koach .kps-mc.is-done > summary { background: transparent !important; }
/* key / value rows, sub-headings, notes */
body.koach-light-koach .kps-kvrow { border-bottom: 1px solid var(--kl-line-row) !important; min-height: 44px !important; }
body.koach-light-koach .kps-kvrow:nth-of-type(even) { background: transparent !important; }
body.koach-light-koach .kps-kvrow .k { font-size: 13px !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light-koach .kps-kvrow .v, body.koach-light-koach .kps-note, body.koach-light-koach .kps-help, body.koach-light-koach .kpb-hint, body.koach-light-koach .kpb-field-hint, body.koach-light-koach .kpb-limnote, body.koach-light-koach .kpb-limprose p, body.koach-light-koach .kps-rec-note, body.koach-light-koach .kps-flag-inline, body.koach-light-koach .kar-mini, body.koach-light-koach .kar-manual, body.koach-light-koach .kps-bc-what .wk, body.koach-light-koach .kah-reassess-sub, body.koach-light-koach .kpb-proposal-hint, body.koach-light-koach .kpb-perf-note, body.koach-light-koach .kpb-perf-empty, body.koach-light-koach .kpb-perf-mains-todo, body.koach-light-koach .kpb-perf-details summary, body.koach-light-koach .kpb-empty-message, body.koach-light-koach .kpb-saving, body.koach-light-koach #kar-save-result { font-size: 14px !important; color: var(--kl-ink2) !important; }
body.koach-light-koach .kps-subhead { background: transparent !important; font-size: 13px !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; padding: 12px 0 4px !important; }
body.koach-light-koach .kps-flagrow, body.koach-light-koach .kpb-override-list li, body.koach-light-koach .kpb-notice, body.koach-light-koach .koach-notice { font-size: 14px !important; color: var(--kl-attn) !important; background: #FFF7E8 !important; border: 1px solid #E8C98F !important; border-radius: 12px !important; }
body.koach-light-koach .kpb-success, body.koach-light-koach .kps-feedback--success { background: #E7F6EF !important; border: 1px solid #C5E4D5 !important; border-radius: 12px !important; font-size: 14px !important; }
body.koach-light-koach .kpb-error, body.koach-light-koach .kps-feedback--error { background: #FCEBEA !important; border: 1px solid #E8A9A6 !important; border-radius: 12px !important; font-size: 14px !important; }
/* pills, tags, badges: 13px, small */
body.koach-light-koach .kpb-phase-pill, body.koach-light-koach .kps-status-pill, body.koach-light-koach .kpb-limtag, body.koach-light-koach .ph-pill, body.koach-light-koach .kpb-perf-pill,
body.koach-light-koach .kpb-badge, body.koach-light-koach .kpb-override-badge, body.koach-light-koach .kpb-day-count, body.koach-light-koach .kps-bc-when, body.koach-light-koach .kps-bc-when .d { font-size: 13px !important; line-height: 1.3 !important; }
body.koach-light-koach .kpb-badge { background: var(--kl-ctrl) !important; color: var(--kl-ink) !important; }
body.koach-light-koach .kpb-day-badge { background: var(--kl-ink) !important; color: #FFFFFF !important; font-size: 13px !important; border-radius: 8px !important; }
/* buttons: three levels; charcoal -> secondary grey; the add-session / cta stay red; danger = red outline */
body.koach-light-koach .kpb-btn, body.koach-light-koach .kps-action-btn, body.koach-light-koach .kps-status-btn, body.koach-light-koach .kps-tbl-link, body.koach-light-koach .kps-fp-link, body.koach-light-koach .kah-del-btn, body.koach-light-koach .kat-expand, body.koach-light-koach .kpb-move {
  font-family: var(--kl-font) !important; font-size: 14px !important; font-weight: 600 !important; min-height: 44px !important; border-radius: 14px !important; padding: 0 16px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; box-shadow: none !important;
}
body.koach-light-koach .kpb-btn-primary, body.koach-light-koach .kpb-btn--cta, body.koach-light-koach .kps-action-btn--primary, body.koach-light-koach .kps-action-btn--cta, body.koach-light-koach .kps-tbl-link--cta, body.koach-light-koach .kps-fp-link--build, body.koach-light-koach #kpb-add-session-btn, body.koach-light-koach .kpb-btn--primary.kpb-add-session-btn {
  background: var(--kl-red) !important; color: #FFFFFF !important; border: 0 !important; box-shadow: var(--kl-sh-primary) !important;
}
body.koach-light-koach .kpb-btn-primary:hover, body.koach-light-koach .kpb-btn--cta:hover, body.koach-light-koach .kps-action-btn--primary:hover, body.koach-light-koach .kps-action-btn--cta:hover, body.koach-light-koach .kps-tbl-link--cta:hover, body.koach-light-koach .kps-fp-link--build:hover, body.koach-light-koach #kpb-add-session-btn:hover { background: var(--kl-red-press) !important; color: #FFFFFF !important; }
body.koach-light-koach .kpb-btn-secondary, body.koach-light-koach .kpb-btn--secondary, body.koach-light-koach .kpb-btn--primary:not(.kpb-add-session-btn), body.koach-light-koach .kpb-picker-actions .kpb-btn--primary, body.koach-light-koach .kpb-btn--tool,
body.koach-light-koach .kps-action-btn:not(.kps-action-btn--primary):not(.kps-action-btn--cta), body.koach-light-koach .kps-status-btn, body.koach-light-koach .kps-tbl-link:not(.kps-tbl-link--cta), body.koach-light-koach .kps-fp-link:not(.kps-fp-link--build), body.koach-light-koach .kat-expand, body.koach-light-koach .kpb-move, body.koach-light-koach .kpb-modal-x {
  background: var(--kl-ctrl-bg) !important; color: var(--kl-ink) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important;
}
body.koach-light-koach .kpb-btn-secondary:hover, body.koach-light-koach .kpb-btn--secondary:hover, body.koach-light-koach .kpb-btn--primary:not(.kpb-add-session-btn):hover, body.koach-light-koach .kps-action-btn:not(.kps-action-btn--primary):not(.kps-action-btn--cta):hover, body.koach-light-koach .kps-status-btn:hover:not([disabled]), body.koach-light-koach .kpb-btn--tool:hover { background: var(--kl-soft) !important; color: var(--kl-ink) !important; }
body.koach-light-koach .kps-action-btn--done { background: #E7F6EF !important; color: var(--kl-ok) !important; border: 1px solid #C5E4D5 !important; }
body.koach-light-koach .kps-status-btn--current, body.koach-light-koach .kps-status-btn.kps-status-btn--current { background: #FFFFFF !important; border: 2px solid var(--kl-red) !important; color: var(--kl-ink) !important; font-weight: 700 !important; }
body.koach-light-koach .kpb-btn--danger, body.koach-light-koach .kah-del-btn, body.koach-light-koach .kpb-delete-program-btn { background: #FFFFFF !important; color: var(--kl-red) !important; border: 1px solid var(--kl-red) !important; }
body.koach-light-koach .kpb-btn--danger:hover, body.koach-light-koach .kah-del-btn:hover, body.koach-light-koach .kpb-delete-program-btn:hover { background: #FCEBEA !important; }
body.koach-light-koach .kpb-btn.kpb-btn--sm { min-height: 36px !important; font-size: 13px !important; padding: 0 12px !important; border-radius: 10px !important; }
body.koach-light-koach .kpb-exercise-table .col-actions .kpb-btn { min-width: 44px !important; min-height: 44px !important; padding: 0 !important; border-radius: 50% !important; background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; }
/* fields */
body.koach-light-koach .kps-ftable input, body.koach-light-koach .kps-ftable select, body.koach-light-koach .kps-ftable textarea, body.koach-light-koach .kpb-input, body.koach-light-koach .kpb-select, body.koach-light-koach .kpb-program-label-input, body.koach-light-koach .kpb-program-split-input, body.koach-light-koach .kpb-modal-inner textarea, body.koach-light-koach .kar-flagnote, body.koach-light-koach .kps-bc-what input {
  background: #FFFFFF !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: 12px !important; min-height: 44px !important; font-size: 15px !important; color: var(--kl-ink) !important; box-shadow: none !important; font-family: var(--kl-font) !important;
}
body.koach-light-koach .kps-ftable input:focus, body.koach-light-koach .kps-ftable select:focus, body.koach-light-koach .kps-ftable textarea:focus, body.koach-light-koach .kpb-input:focus, body.koach-light-koach .kpb-select:focus, body.koach-light-koach .kpb-modal-inner textarea:focus, body.koach-light-koach .kar-flagnote:focus { border-color: var(--kl-red) !important; box-shadow: 0 0 0 3px rgba(192,22,28,.12) !important; }
body.koach-light-koach .kpb-exercise-table .kpb-input, body.koach-light-koach .kpb-exercise-table .kpb-select, body.koach-light-koach .kpb-exercise-table .col-tempo .kpb-input { min-height: 40px !important; font-size: 14px !important; border-radius: 10px !important; }
/* tables: transparent heads, 13px labels, 1px rows, no row cards, no zebra, no rails */
body.koach-light-koach .kps-ftable td.rail, body.koach-light-koach .kps-ftable tr:nth-of-type(even) td, body.koach-light-koach .kps-ftable tr:nth-of-type(even) td.rail, body.koach-light-koach .kpb-framework-table td:first-child, body.koach-light-koach .kpb-exercise-table tbody tr:nth-child(even), body.koach-light-koach .kps-fp-table tr.is-done td:not(.meso), body.koach-light-koach .kpb-library-table td:last-child { background: transparent !important; }
body.koach-light-koach .kps-ftable td.rail { font-size: 13px !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light-koach .kpb-framework-table th, body.koach-light-koach .kpb-exercise-table th, body.koach-light-koach .kps-fp-table thead th, body.koach-light-koach .kpb-library-table th, body.koach-light-koach .kpb-library-table th:last-child, body.koach-light-koach .kah-table th, body.koach-light-koach .kat-table th { background: transparent !important; color: var(--kl-ink2) !important; font-size: 13px !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; border-bottom: 1px solid var(--kl-line-role) !important; box-shadow: none !important; }
body.koach-light-koach .kpb-framework-table, body.koach-light-koach .kpb-exercise-table, body.koach-light-koach .kps-fp-table .desc, body.koach-light-koach .kps-fp-table .res, body.koach-light-koach .kps-fp-table .mname, body.koach-light-koach .kps-fp-table .model .sub, body.koach-light-koach .kps-fitt-cell .fv, body.koach-light-koach .kps-fp-table .wk .dl, body.koach-light-koach .kps-fitt-cell .fk, body.koach-light-koach .kps-fp-table td.meso .pill, body.koach-light-koach .kps-fp-table .wk .nowtag { font-size: 12px !important; }
body.koach-light-koach .kpb-framework-table tr, body.koach-light-koach .kpb-exercise-table tr, body.koach-light-koach .kpb-exercise-table tr.kpb-exercise-empty-row { background: transparent !important; box-shadow: none !important; border-radius: 0 !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; }
body.koach-light-koach .kpb-exercise-table td[data-label]::before, body.koach-light-koach .kpb-framework-table td:not(:first-child)::before { font-size: 13px !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light-koach .kpb-exercise-table tbody tr:hover { background: transparent !important; }
body.koach-light-koach .kpb-exercise-table tr.kpb-exercise-row--override, body.koach-light-koach .kpb-exercise-row--override { background: #FFF7E8 !important; }
body.koach-light-koach .kps-fp-table td { border-bottom: 1px solid var(--kl-line-row) !important; }
/* clip media, figures, guides */
body.koach-light-koach .koach-plan-builder .kpb-clip-label, body.koach-light-koach .koach-plan-builder .kar-guide > summary { font-size: 13px !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; background: transparent !important; }
body.koach-light-koach .koach-plan-builder .kar-guide-body .kps-help { font-size: 14px !important; }
body.koach-light-koach .koach-plan-builder .kar-fig { border: 1px solid var(--kl-line-bubble) !important; border-radius: 12px !important; }
body.koach-light-koach .kpb-grouping-code { background: var(--kl-soft) !important; }
body.koach-light-koach .kpb-pair-toggle, body.koach-light-koach .kpb-move-lbl, body.koach-light-koach .kpb-program-meta-field label { font-size: 13px !important; color: var(--kl-ink2) !important; }
/* modals: a floating white sheet (allowed), plain head */
body.koach-light-koach .kpb-modal-box { border-radius: 16px !important; box-shadow: var(--kl-sh-float) !important; }
body.koach-light-koach .kpb-modal-head { padding: 20px 20px 8px !important; }
body.koach-light-koach .kpb-modal-title { font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; color: var(--kl-ink) !important; }
/* the library tabs inside the exercise picker = underline tabs, 15px, 44px */
body.koach-light-koach .kpb-lib-tab { font-size: 15px !important; min-height: 44px !important; color: var(--kl-ink2) !important; background: transparent !important; }
body.koach-light-koach .kpb-lib-tab--active { color: var(--kl-ink) !important; border-bottom: 2px solid var(--kl-red) !important; }
/* the periodized plan (koach view of the shared plan body) and the intake panel: the kpp / kci lines */
body.koach-light-koach .kpp-mp-sechead, body.koach-light-koach .kci-section-title { font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; color: var(--kl-ink) !important; background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; padding: 24px 0 8px !important; letter-spacing: 0 !important; text-transform: none !important; }
body.koach-light-koach .kci-row { border-bottom: 1px solid var(--kl-line-row) !important; min-height: 44px !important; }
body.koach-light-koach .kci-label { font-size: 13px !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light-koach .kci-value { font-size: 15px !important; color: var(--kl-ink) !important; }
/* the dark mobile canvas of D118 goes on these pages too */
@media (max-width: 820px) {
  body.koach-light-koach .koach-plan-builder:not(.koach-program-design) .kpb-client-name, body.koach-light-koach .koach-plan-builder:not(.koach-program-design) .kpb-breadcrumb, body.koach-light-koach .koach-plan-builder:not(.koach-program-design) .kpb-breadcrumb a, body.koach-light-koach .koach-plan-builder:not(.koach-program-design) .kpb-breadcrumb span,
  body.koach-light-koach .koach-assessment-history .kpb-pgtitle, body.koach-light-koach .koach-assessment-history .kpb-breadcrumb a, body.koach-light-koach .koach-assessment-history .kpb-context-card strong, body.koach-light-koach .kpb-pgtitle, body.koach-light-koach .kps-section-title h3, body.koach-light-koach .kps-section-title .tl { color: var(--kl-ink) !important; }
  body.koach-light-koach .kpb-breadcrumb, body.koach-light-koach .kpb-breadcrumb a, body.koach-light-koach .kpb-breadcrumb span, body.koach-light-koach .kpb-client-name { color: var(--kl-ink2) !important; }
  body.koach-light-koach .kpb-exercise-table tr { padding: 12px 0 !important; }
}
/* readability floor on inline sizes */
body.koach-light-koach .koach-content-area [style*="font-size:10"], body.koach-light-koach .koach-content-area [style*="font-size:11"], body.koach-light-koach .koach-content-area [style*="font-size:12"],
body.koach-light-koach .koach-content-area [style*="font-size: 10"], body.koach-light-koach .koach-content-area [style*="font-size: 11"], body.koach-light-koach .koach-content-area [style*="font-size: 12"] { font-size: 13px !important; }

/* ==========================================================================
   35. THE S331 SWEEP FIXES (S331-B5, C621): the local sweep of 2026-10-21 22:29 UTC (ten koach pages at
   390 and 1440, rendered as the test koach with client Demo / plan 32) found: the closed koach More sheet
   casting its shadow into the page; the account menu still dark on the light shell (client and koach);
   the koach sidebar group headers 35px; the view-more label in capitals; pages section 34 did not reach
   (client intake, the periodized plan body, the plan-summary meso cards, assessment history, the exercise
   library); manual-figure links 22px tall. Scope: body.koach-light-shell (shell) / body.koach-light-koach.
   ========================================================================== */
/* the koach More sheet: hidden and shadowless while closed (the client sheet does the same, section 13) */
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light):not(.kns-open) { box-shadow: none !important; visibility: hidden !important; transition: transform .22s ease, visibility 0s linear .22s !important; }
body.koach-light-shell #kns-shell .kns-sheet:not(.kns-sheet--light).kns-open { visibility: visible !important; transition: transform .22s ease, visibility 0s !important; }
/* the desktop account menu on the light shell: white, ink, light lines (it was the dark #131B28 menu) */
body.koach-light-shell #kns-shell .kns-acct-menu { background: #FFFFFF !important; border: 1px solid var(--kl-line-bubble) !important; box-shadow: var(--kl-sh-float) !important; }
body.koach-light-shell #kns-shell .kns-menu-item { color: var(--kl-ink) !important; font-size: 15px !important; min-height: 44px !important; }
body.koach-light-shell #kns-shell .kns-menu-item svg { opacity: 1 !important; color: var(--kl-ink2) !important; }
body.koach-light-shell #kns-shell .kns-menu-item:hover { background: var(--kl-soft) !important; color: var(--kl-ink) !important; }
body.koach-light-shell #kns-shell .kns-menu-sep { background: var(--kl-line-bubble) !important; }
body.koach-light-shell #kns-shell .kns-menu-logout, body.koach-light-shell #kns-shell .kns-menu-logout:hover { color: var(--kl-red) !important; font-weight: 700 !important; }
body.koach-light-shell #kns-shell .kns-menu-logout svg { color: var(--kl-red) !important; }
/* the koach sidebar group headers: 44px targets */
body.koach-light-shell .kns-side .kns-group:not(.kns-group--static) .kns-group-hd { min-height: 44px !important; }
/* the view-more fold label: "View more" / "View less" as written (D620), not capitals */
body.koach-light-koach .kps-card-more { text-transform: none !important; letter-spacing: 0 !important; }
/* manual figure links in the plan builder: 44px targets */
body.koach-light-koach .kar-zoom-link, body.koach-light-koach .kar-manual { display: inline-flex !important; align-items: center !important; min-height: 44px !important; }
/* plan builder form tables: rows tall enough that their lines never stack (sweep threshold 32px) */
body.koach-light-koach .kps-ftable td { padding-top: 12px !important; padding-bottom: 12px !important; }
/* client intake (koach-intake.php front view): kci-subsec headings, its key / value tables */
body.koach-light-koach .kpb-intake-sub { font-size: 15px !important; color: var(--kl-ink2) !important; }
body.koach-light-koach .kci-subsec { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; box-shadow: none !important; padding: 24px 0 8px !important; margin: 24px 0 0 !important; font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink) !important; }
body.koach-light-koach.koach-app-client-intake .koach-content-area table { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: transparent !important; overflow: visible !important; }
body.koach-light-koach.koach-app-client-intake .koach-content-area th { background: transparent !important; font-family: var(--kl-font) !important; font-size: 13px !important; font-weight: 600 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; }
body.koach-light-koach.koach-app-client-intake .koach-content-area td { background: transparent !important; font-size: 15px !important; color: var(--kl-ink) !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; }
body.koach-light-koach.koach-app-client-intake .koach-content-area tr:nth-child(even) td, body.koach-light-koach.koach-app-client-intake .koach-content-area tr:nth-child(even) th { background: transparent !important; }
body.koach-light-koach .kci-lvl-pill { font-size: 13px !important; }
/* the periodized plan (koach view of the shared plan body): section 20's My Plan rules, koach scope */
body.koach-light-koach .kpp-mp .kpp-mp-sechead { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; padding: 24px 0 8px !important; margin: 0 !important; }
body.koach-light-koach .kpp-mp .kpp-mp-sechead .tl { font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink) !important; }
body.koach-light-koach .kpp-mp .kpp-mp-sec { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 0 24px !important; }
body.koach-light-koach .kpp-mp .kpp-mp-ov dt, body.koach-light-koach .kpp-mp .kpp-mp-tab th { font-family: var(--kl-font) !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 13px !important; background: transparent !important; }
body.koach-light-koach .kpp-mp .kpp-mp-ov dd, body.koach-light-koach .kpp-mp .kpp-mp-tab td { font-family: var(--kl-font) !important; color: var(--kl-ink) !important; font-size: 15px !important; background: transparent !important; }
body.koach-light-koach .kpp-mp .kpp-mp-bank-statband, body.koach-light-koach .kpp-mp .kpp-mp-tfoot { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; }
body.koach-light-koach .kpp-mp .k, body.koach-light-koach .kpp-mp .bl, body.koach-light-koach .kpp-mp .rem, body.koach-light-koach .kpp-mp .ct, body.koach-light-koach .kpp-mp-bank-legend { font-size: 13px !important; text-transform: none !important; letter-spacing: 0 !important; }
/* the plan-summary / plan-body meso cards (phone) and the status toggle label */
body.koach-light-koach .kps-status-toggle-label, body.koach-light-koach .kps-mc .lbl, body.koach-light-koach .kps-mc .h, body.koach-light-koach .kps-mc-wk, body.koach-light-koach .kps-mc .fk, body.koach-light-koach .kps-mc .fv { font-size: 13px !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light-koach .kps-mc-desc { font-size: 14px !important; }
/* assessment history: the latest row and the phone card are sections; labels 13px */
body.koach-light-koach .kah-row, body.koach-light-koach .kah-row--latest, body.koach-light-koach .kat-mcard { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; box-shadow: none !important; }
body.koach-light-koach .kat-mhead, body.koach-light-koach .kah-head { background: transparent !important; border: 0 !important; }
body.koach-light-koach .kah-k, body.koach-light-koach .kah-latest, body.koach-light-koach .kah-badge, body.koach-light-koach .kat-mlbl, body.koach-light-koach .kat-badge, body.koach-light-koach .kah-no-flags, body.koach-light-koach .kah-date { font-size: 13px !important; text-transform: none !important; letter-spacing: 0 !important; }
body.koach-light-koach .kah-k, body.koach-light-koach .kat-mlbl { color: var(--kl-ink2) !important; }
/* the exercise library (koach-exercise-library-admin.php, D134): controls and containers; the JS-built
   list is judged in the walk (it renders from the server) */
body.koach-light-koach .kela-wrap { color: var(--kl-ink) !important; }
body.koach-light-koach .kela-tabs, body.koach-light-koach .kela-tab-nav { background: var(--kl-ctrl) !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: 11px !important; padding: 3px !important; }
body.koach-light-koach .kela-tab { min-height: 44px !important; font-size: 15px !important; font-weight: 600 !important; color: var(--kl-ink2) !important; border-radius: 8px !important; }
body.koach-light-koach .kela-tab--active { background: #FFFFFF !important; color: var(--kl-ink) !important; box-shadow: var(--kl-sh-seg) !important; }
body.koach-light-koach .kela-tab-count { font-size: 13px !important; }
body.koach-light-koach .kela-mtab-trigger { min-height: 48px !important; font-size: 16px !important; background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; border-radius: 12px !important; color: var(--kl-ink) !important; }
body.koach-light-koach .kela-btn { min-height: 44px !important; font-size: 14px !important; font-weight: 600 !important; border-radius: 14px !important; padding: 0 16px !important; box-shadow: none !important; }
body.koach-light-koach .kela-btn--sm { min-height: 44px !important; font-size: 14px !important; }
body.koach-light-koach .kela-btn--primary { background: var(--kl-red) !important; color: #FFFFFF !important; border: 0 !important; box-shadow: var(--kl-sh-primary) !important; }
body.koach-light-koach .kela-btn--secondary { background: var(--kl-ctrl-bg) !important; color: var(--kl-ink) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; }
body.koach-light-koach .kela-btn--ghost { background: transparent !important; color: var(--kl-red) !important; border: 0 !important; }
body.koach-light-koach .kela-select, body.koach-light-koach .kela-input, body.koach-light-koach .kela-textarea { background: #FFFFFF !important; border: 1px solid var(--kl-line-ctrl) !important; border-radius: 12px !important; min-height: 44px !important; font-size: 15px !important; color: var(--kl-ink) !important; box-shadow: none !important; }
body.koach-light-koach .kela-select:focus, body.koach-light-koach .kela-input:focus, body.koach-light-koach .kela-textarea:focus { border-color: var(--kl-red) !important; box-shadow: 0 0 0 3px rgba(192,22,28,.12) !important; }
body.koach-light-koach .kela-checkbox-label, body.koach-light-koach .kela-inactive-toggle { font-size: 14px !important; min-height: 44px !important; display: inline-flex !important; align-items: center !important; }
body.koach-light-koach .kela-hint { font-size: 13px !important; color: var(--kl-ink2) !important; }
body.koach-light-koach .kela-table-wrap, body.koach-light-koach .kela-form-card, body.koach-light-koach .kela-bulk-panel, body.koach-light-koach .kela-loading, body.koach-light-koach .kela-empty, body.koach-light-koach .kela-koach-intro { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
body.koach-light-koach .kela-form-card { border-top: 1px solid var(--kl-line-section) !important; padding: 24px 0 0 !important; }
body.koach-light-koach .kela-form-title { font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; }
body.koach-light-koach .kela-table-wrap th { background: transparent !important; font-size: 13px !important; font-weight: 600 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; border-bottom: 1px solid var(--kl-line-role) !important; }
body.koach-light-koach .kela-table-wrap td { font-size: 15px !important; border-bottom: 1px solid var(--kl-line-row) !important; background: transparent !important; }
/* sweep 2 (22:36 UTC): no double rule where a card ends and the next section starts -- the section's top
   line is the divider; the card keeps none of its own */
body.koach-light-koach .kps-card { border-bottom: 0 !important; }
/* the empty state is unboxed (standard s.8) */
body.koach-light-koach .kpb-empty-state { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
/* the builder tables at the 13px floor (section 34 had set 12px); the performance table as plain rows */
body.koach-light-koach .kpb-framework-table, body.koach-light-koach .kpb-exercise-table { font-size: 13px !important; }
body.koach-light-koach .kpb-perf-details table, body.koach-light-koach .kpb-perf-details th, body.koach-light-koach .kpb-perf-details td { border: 0 !important; background: transparent !important; font-size: 13px !important; }
body.koach-light-koach .kpb-perf-details th { color: var(--kl-ink2) !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; border-bottom: 1px solid var(--kl-line-role) !important; }
body.koach-light-koach .kpb-perf-details td { border-bottom: 1px solid var(--kl-line-row) !important; }
/* the client intake's other section heading (kci-sec, e.g. "Assessment History") like kci-subsec */
body.koach-light-koach .kci-sec { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; box-shadow: none !important; font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink) !important; }
/* the plan body's dense mesocycle grid (periodized plan): raised from 8.5-11px to the 12px of the plan
   summary's grid; whether either goes to the 13px floor waits for the owner (section 34 note) */
body.koach-light-koach .kpp-mp .fk, body.koach-light-koach .kpp-mp .fv, body.koach-light-koach .kpp-mp-pill, body.koach-light-koach .kpp-mp-mstat,
body.koach-light-koach .kpp-mp-wk, body.koach-light-koach .kpp-mp-wk-range, body.koach-light-koach .kpp-mp-model, body.koach-light-koach .kpp-mp-desc,
body.koach-light-koach .kpp-mp-res, body.koach-light-koach .kpp-mp-life, body.koach-light-koach .kpp-mp-mname { font-size: 12px !important; text-transform: none !important; letter-spacing: 0 !important; }
/* walk 2 (seat B, 2026-10-21 ~18:45 local) + the owner's ruling 18:53 "Mesocycle week table text size: 13px" (D641):
   the dense mesocycle tables (plan summary kps-fp-table, the plan body kpp-mp-full) go to the 13px floor like
   everything else -- no exception. Overrides the 12px of section 34 and of the rule above. */
body.koach-light-koach .kps-fp-table, body.koach-light-koach .kps-fp-table td, body.koach-light-koach .kps-fp-table td *, body.koach-light-koach .kps-fp-table th,
body.koach-light-koach .kpp-mp-full, body.koach-light-koach .kpp-mp-full td, body.koach-light-koach .kpp-mp-full td *, body.koach-light-koach .kpp-mp-full th,
body.koach-light-koach .kps-mc, body.koach-light-koach .kps-mc * { font-size: 13px !important; }
/* walk 2: no double rules -- the fold carries no top line (the fade marks it); a sub-heading carries no bottom line */
body.koach-light-koach .kps-card-more { border-top: 0 !important; }
body.koach-light-koach .kps-subhead { border-bottom: 0 !important; }
/* walk 2: the exercise library tab strip outlined once (the outer nav was outlined too, 4px away -- C-S331-5) */
body.koach-light-koach .kela-tab-nav { background: transparent !important; border: 0 !important; padding: 0 !important; border-radius: 0 !important; }
/* walk 2: the exercise library phone rows are rows, not white cards with a shadow; the phone tab arrow readable */
body.koach-light-koach .kela-mcard { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; }
body.koach-light-koach .kela-mtab-chev { color: var(--kl-ink2) !important; opacity: 1 !important; }
/* walk 2: the intake title is the page title (Bebas 40, like every page) */
body.koach-light-koach .kpb-intake-title { font-family: var(--kl-title-font) !important; font-size: 40px !important; font-weight: 400 !important; line-height: 1 !important; color: var(--kl-ink) !important; }
/* the calendar page title (koach_light_koach_calendar_title, koach-app-pages.php) */
html body.koach-light-koach .kl-cal-title { margin: 0 0 16px !important; }

/* ---- 36. S331-B7 (C621, walk 3 by Claude as uid 31, 2026-10-21) ---- */
/* the calendar title now sits inside the page frame (koach-app-pages.php S331-B7); same size as every koach page title */
html body.koach-light-koach .kl-cal-title.kpb-pgtitle { display: block !important; margin: 0 0 24px !important; padding: 0 !important; }
/* phone: the first stat card was a row with its value centred (plan-builder.css :first-child rule); stack it like the others */
@media (max-width: 599px) {
  body.koach-light-koach .kpb-context-cards > .kpb-context-card:first-child:not(.kpb-context-card--metric):not(.kpb-context-card--warning) { flex-direction: column !important; align-items: flex-start !important; gap: 7px !important; }
  body.koach-light-koach .kpb-context-cards > .kpb-context-card:first-child:not(.kpb-context-card--metric):not(.kpb-context-card--warning) > * { align-self: flex-start !important; }
}
/* D641 / owner 13px: the inner spans of the mesocycle tables kept their own 12px */
body.koach-light-koach .kps-fp-table .fk, body.koach-light-koach .kps-fp-table .fv, body.koach-light-koach .kps-fp-table .mname,
body.koach-light-koach .kps-fp-table .desc, body.koach-light-koach .kps-fp-table .pill,
body.koach-light-koach .kpp-mp-fitt .fk, body.koach-light-koach .kpp-mp-fitt .fv { font-size: 13px !important; }
/* the light floor is 12px (nothing smaller): program-design table headers (9px), program-builder alternates (10-11px), the cues hint (11px) */
body.koach-light-koach .kpd-program-table th, body.koach-light-koach .kpd-program-table [class^="kpd-th-"],
body.koach-light-koach .kpb-alt-k, body.koach-light-koach .kpb-alt-v, body.koach-light-koach .kpb-alt-pin,
body.koach-light-koach .kpb-cues-hint { font-size: 12px !important; }
/* the rest of the sub-12px text found by the walk 3 measure: program-design table + phone cards (8-11.5px), periodized-plan table foot, assessment-history notes */
body.koach-light-koach .kpd-type-badge, body.koach-light-koach .kpd-td-num, body.koach-light-koach .kpd-td-cues,
body.koach-light-koach .kpd-mc-grp, body.koach-light-koach .kpd-mc-stat .l, body.koach-light-koach .kpd-mc-cues .l, body.koach-light-koach .kpd-mc-cues .t,
body.koach-light-koach .kpp-mp-tfoot, body.koach-light-koach .kps-idnote, body.koach-light-koach .kps-mini-link { font-size: 12px !important; }
body.koach-light-koach .kpd-td-num, body.koach-light-koach .kpd-mc-stat .v { font-size: 13px !important; }

/* ---- 37. S331-B8 (C621): THE FULL SCAN (owner 19:57 "re-scan every page") ----
   Found by a contrast + standard scan of 11 koach pages and 23 client pages at 390 / 820 / 1440, opened states
   included, plus a rule test of every phone-width rule that paints light text or a dark fill (the old dark phone
   canvas) on content that is not on screen (AJAX rows, empty states, other tabs). Colours = standard s.2.3 greys
   (ink #21252E, secondary #4A515F, quiet #5F6673, placeholder #6B7280) and s.2.2 meaning colours; values are the
   page's own desktop values where those already meet 4.5:1. */

/* 37.1 the old dark phone canvas: a light-shell page never paints #161B24 (a client sent to a koach-only page) */
@media (max-width: 820px) {
  html body.koach-light-shell, html body.koach-light-shell #wrapper, html body.koach-light-shell #boxed-wrapper, html body.koach-light-shell #main,
  html body.koach-light-shell .koach-assessment-history { background: #FFFFFF !important; }
}

/* 37.2 phone-width white / pale text left from the dark canvas -> the desktop colour */
@media (max-width: 820px) {
  body.koach-light .kac-sess-anchor, body.koach-light .kac-sess-count, body.koach-light .kac-sess-note, body.koach-light .kac-sess-policy,
  body.koach-light .kmd-ci-history-header, body.koach-light .kmd-schedule-section-title,
  body.koach-light .kms-group .kms-group-ico, body.koach-light .kela-wrap .kela-inactive-toggle,
  body.koach-light .kdash-meta-v, body.koach-light .kdash-sched-section-title, body.koach-light .kdash-ql-group-title,
  body.koach-light .koach-program-card .meta-v, body.koach-light .kpb-day-count, body.koach-light .koach-program-design .kpd-day-desc,
  body.koach-light .kpb-proposal-hint, body.koach-light .kpb-proposal-meta, body.koach-light .kpb-proposal-cardio, body.koach-light .kpb-proposal-cardio strong,
  body.koach-light .kpb-proposal-flags, body.koach-light .kpb-proposal-flags > strong, body.koach-light .kpb-proposal-flags li,
  body.koach-light .kpb-proposal-flags em, body.koach-light .kpb-proposal-flags i, body.koach-light .kpb-program-meta-field label { color: #4A515F !important; }
  body.koach-light .kdash-meta-name, body.koach-light .kdash-pgtitle, body.koach-light .koach-program-card .pg-title, body.koach-light .koach-program-card .pg-client,
  body.koach-light .koach-program-card .kpc-section-eyebrow, body.koach-light .koach-periodized-plan .kpb-pgtitle,
  body.koach-light .koach-periodized-plan.kpp-mp .kpp-mp-sechead .tl, body.koach-light .koach-periodized-plan.kpp-mp .kpp-mp-sechead .ic,
  body.koach-light .koach-periodized-plan.kpp-mp .kpp-mp-sechead .kpp-mp-bank-count,
  body.koach-light .koach-assessment-history .kps-section-title h3, body.koach-light .koach-plan-summary .kps-section-title h3 { color: #21252E !important; }
  body.koach-light .kdash-meta-k, body.koach-light .koach-program-card .meta-k, body.koach-light .kpb-program-meta-field .kpb-hint,
  body.koach-light .koach-program-design .kpd-warmup-label { color: #5F6673 !important; }
  body.koach-light .kmd-cat-commitment .kmd-milestones-section-icon { color: #185FA5 !important; }
  body.koach-light .kmd-cat-consistency .kmd-milestones-section-icon, body.koach-light .kmd-milestones-empty-icon { color: #A87F14 !important; }
  body.koach-light .kmd-cat-progression .kmd-milestones-section-icon { color: #0F6E56 !important; }
  /* phone fields that were translucent on dark: white field, standard outline, ink text */
  body.koach-light .kpb-program-label-input, body.koach-light .kpb-program-split-input, body.koach-light .kpb-slot-select,
  body.koach-light .kpb-warmup-notes, body.koach-light .kpb-finish-notes, body.koach-light .kela-wrap .kela-tab-dd {
    background-color: #FFFFFF !important; border: 1px solid var(--kl-line-ctrl) !important; color: #21252E !important; }
  body.koach-light .kpb-program-label-input::placeholder, body.koach-light .kpb-program-split-input::placeholder,
  body.koach-light .kpb-warmup-notes::placeholder, body.koach-light .kpb-finish-notes::placeholder { color: #6B7280 !important; }
  /* the library filter buttons: Filter = secondary button, Reset = red text link (as on desktop) */
  body.koach-light .kela-wrap .kela-filters .kela-btn, body.koach-light .kela-wrap .kela-filters #kela-filter-btn {
    background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; color: #21252E !important; }
  body.koach-light .kela-wrap .kela-filters #kela-filter-reset { background: transparent !important; border: 0 !important; color: #C0161C !important; }
  /* the program-builder proposal (built by AJAX, not on screen until "Propose") */
  body.koach-light .kpb-proposal-flags { background: var(--kl-soft) !important; border: 1px solid var(--kl-line-bubble) !important; }
  body.koach-light .kpb-proposal-flags a, body.koach-light .kpb-proposal-meta a, body.koach-light .kpb-proposal-error { color: #C0161C !important; }
  body.koach-light .kpb-proposal-manual { background: #FFF7E8 !important; border-left-color: #E8C98F !important; color: #8A5300 !important; }
  body.koach-light .kpb-proposal-deviation-summary { color: #8A5300 !important; }
  body.koach-light .kpb-proposal-table tr { box-shadow: none !important; background: #FFFFFF !important; border-color: var(--kl-line-section) !important; }
  body.koach-light .kpb-proposal-table td::before { font-size: 12px !important; color: #5F6673 !important; }
  /* program design on the phone: warm-up and finish notes */
  body.koach-light .koach-program-design .kpd-warmup-note { color: #4A515F !important; background: var(--kl-soft) !important; border-left-color: var(--kl-line-ctrl) !important; font-size: 13px !important; }
  body.koach-light .koach-program-design .kpd-finish-label { color: #076E4C !important; }
  body.koach-light .koach-program-design .kpd-finish-note { color: #166534 !important; background: #F0FDF4 !important; }
}

/* 37.3 faint greys at every width (#8A909C / #A9AEB8 / #AEB3BD / #999 / #AAA are not used for readable text, s.2.3) */
body.koach-light .kpb-breadcrumb, body.koach-light .kpb-breadcrumb span, body.koach-light .kps-section-title .hint,
body.koach-light .koach-periodized-plan.kpp-mp .kpp-mp-sechead .ct, body.koach-light .koach-periodized-plan.kpp-mp .kpp-mp-sechead .kpp-mp-bank-count .rem,
body.koach-light .kpb-cues-hint, body.koach-light .kpb-alt-k, body.koach-light .kpp-mp-fitt .fk, body.koach-light .kps-fp-table .fk, body.koach-light .r > .fk,
body.koach-light .kpp-mp-statband .k, body.koach-light .kpp-mp-bank-statband .k, body.koach-light .koach-periodized-plan .k,
body.koach-light .kpp-mp-model-sub, body.koach-light .kpp-mp-tfoot, body.koach-light .kpp-mp-dash, body.koach-light .kah-no-flags,
body.koach-light .kela-loading, body.koach-light .kps-idnote, body.koach-light .kpd-mc-stat .l, body.koach-light .kpd-mc-cues .l,
body.koach-light .kpd-td-cues, body.koach-light .kns-acct-role { color: #5F6673 !important; }
body.koach-light .kpb-breadcrumb a, body.koach-light .koach-assessment-history .kpb-sub, body.koach-light .kpb-sub { color: #4A515F !important; }
body.koach-light .kps-card-head .kpb-phase-pill { color: #4A515F !important; }
body.koach-light-koach .koach-intake-frontend td span[style*="#999"] { color: #5F6673 !important; }
body.koach-light .kns-acct-role { font-size: 12px !important; }
/* small coloured tags: phase text colour and the attention amber (s.2.2) */
body.koach-light .kpp-mp-nowtag, body.koach-light .nowtag { background: #0B5F66 !important; color: #FFFFFF !important; }
body.koach-light .kpb-limtag { color: #8A5300 !important; }
/* "Latest" is a label, not an action: nothing else is red (s.2.1) */
body.koach-light .kah-latest { color: #4A515F !important; background: var(--kl-st-neutral-bg) !important; border-color: transparent !important; }
body.koach-light .koach-legal-code { color: #21252E !important; background: var(--kl-soft) !important; }
/* the day badge is a grey chip, never a black fill (s.3) */
body.koach-light .kpd-day-badge, body.koach-light .kpb-day-badge { background: var(--kl-st-neutral-bg) !important; color: #21252E !important; border-color: transparent !important; }

/* 37.4 the 12px floor: nutrition table cells, the builder's tick / cross, the account role */
body.koach-light .knut-nft-r, body.koach-light-koach .kpb-actions-wrap .kpb-btn, body.koach-light-koach .kpb-saved-indicator { font-size: 12px !important; }

/* 37.5 one page-title size: Schedule was 58px (s.1.3 "Bebas Neue 40px on every page") */
body.koach-light .kl-title { font-size: 40px !important; line-height: 1 !important; }

/* 37.6 rows, not boxes: no shadows or tinted tiles around content (s.1.2, s.4.1) */
body.koach-light-koach .koach-program-design .kpd-mc { box-shadow: none !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; }
body.koach-light-koach .kpp-mp-bank-statband > div { background: transparent !important; border: 0 !important; box-shadow: none !important; padding-left: 0 !important; }
body.koach-light-koach .kci-row-open { box-shadow: none !important; }

/* 37.7 tap targets 44px (s.3); hit areas grown with padding + negative margin where the look must not move */
body.koach-light-koach details > summary, body.koach-light-koach .kar-guide > summary, body.koach-light-koach .kpb-perf-details > summary,
body.koach-light-koach .kps-acc > summary { min-height: 44px !important; display: flex !important; align-items: center !important; }
body.koach-light-koach .kps-mc-cta a, body.koach-light-koach .kps-mini-link,
body.koach-light-koach .koach-intake-frontend a[href*="/assessment/"] { min-height: 44px !important; display: inline-flex !important; align-items: center !important; box-sizing: border-box !important; }
body.koach-light-koach .kpb-breadcrumb a, body.koach-light-koach .kcc-name { display: inline-block; padding: 12px 0 !important; margin: -12px 0 !important; }
body.koach-light-koach .kpb-alt-pin { position: relative !important; }
body.koach-light-koach .kpb-alt-pin::after { content: "" !important; position: absolute !important; inset: -12px -6px !important; } /* S331-B11: hit area without growing the pin (the 44px box broke the alternates line) */
body.koach-light-koach .kpb-grip { min-width: 44px !important; min-height: 44px !important; margin: -9px -10px !important; }
body.koach-light-koach .kdash-flag { min-width: 44px !important; min-height: 44px !important; margin: -9px !important; display: inline-flex !important; align-items: center; justify-content: center; }
body.koach-light-koach .kpb-exercise-table .kpb-input { min-width: 44px !important; }
body.koach-light .kns-collapse { min-width: 44px !important; min-height: 44px !important; }
body.koach-light .kns-item { min-height: 44px !important; }
body.koach-light .kns-uom-btn { min-height: 44px !important; }
body.koach-light .kns-mtop .kns-avatar { box-sizing: content-box; padding: 4px !important; margin: -4px !important; }
body.koach-light .kns-mtop .kns-mlogo, body.koach-light .kns-side-logo .kns-logo-full { padding: 10px 0 !important; margin: -10px 0 !important; }
body.koach-light .kl-row > .kl-link, body.koach-light .kpcl-head-links .kl-link, body.koach-light .kpcl-setup-head .kl-link { min-width: 44px !important; min-height: 44px !important; display: inline-flex !important; align-items: center; justify-content: center; }
body.koach-light .kac-tab-btn { min-width: 44px !important; }
body.koach-light .knut-tab, body.koach-light .knut-cam-q { min-height: 44px !important; min-width: 44px !important; }
body.koach-light .kow-link, body.koach-light .kow-rt a { display: inline-block; padding: 11px 0 !important; margin: -11px 0 !important; }
body.koach-light .kan-link-secondary, body.koach-light .fusion-button { min-height: 44px !important; display: inline-flex !important; align-items: center; justify-content: center; }
/* 37.8 second pass (re-scan): rules that lost on specificity, and the shell on a light-shell page without koach-light */
html body.koach-light-shell .kns-acct-meta .kns-acct-role { color: #5F6673 !important; font-size: 12px !important; }
html body.koach-light-koach .kpb-actions-wrap .kpb-btn { font-size: 12px !important; }
html body.koach-light-shell .kns-uom .kns-uom-btn { min-height: 44px !important; }
html body.koach-light-shell .kns-mtop a.kns-avatar { min-width: 44px !important; min-height: 44px !important; margin: -4px !important; display: inline-flex !important; align-items: center; justify-content: center; box-sizing: border-box !important; }
html body.koach-light-shell .kns-item { min-height: 44px !important; }
html body.koach-light-shell .kns-collapse { min-width: 44px !important; min-height: 44px !important; }
html body.koach-light-shell .kns-mtop .kns-mlogo, html body.koach-light-shell .kns-side-logo .kns-logo-full { padding: 10px 0 !important; margin: -10px 0 !important; }
html body.koach-light-shell .kan-link-secondary { min-height: 44px !important; display: inline-flex !important; align-items: center; justify-content: center; }
html body.koach-light-koach .kcc-name { padding: 13px 2px !important; margin: -13px -2px !important; }
html body.koach-light-shell .kns-uom { min-height: 52px !important; box-sizing: border-box !important; }
html body.koach-light-shell .kns-uom .kns-uom-btn { height: auto !important; }

/* ---- 37.9 S331-B9: the independent review + the clipped-text / broken-word checks ---- */
/* program builder: the day header bled 20px past the card (old card padding gone) -> "AY 1" / "10 exerci" cut off */
html body.koach-light-koach .kpb-program-card .kpb-program-header { margin: 0 0 14px !important; }
/* my 44px hit areas must not reach outside a clipping parent or over a neighbour */
html body.koach-light-koach .kpb-breadcrumb a { padding: 12px 0 !important; margin: -12px 0 !important; }
html body.koach-light-koach .kcc-name { padding: 13px 0 !important; margin: -13px 0 !important; }
html body.koach-light-koach .kdash-flag { margin: 0 !important; }
/* plan summary mesocycle table at 13px: labels and the Build link never break inside a word */
html body.koach-light .kps-fp-table .fk, html body.koach-light .kpp-mp-fitt .fk, html body.koach-light .kps-fp-link,
html body.koach-light .kps-fp-table .nowtag, html body.koach-light .kpp-mp-nowtag { white-space: nowrap !important; word-break: normal !important; overflow-wrap: normal !important; }
html body.koach-light .kps-fp-table .fk, html body.koach-light .kpp-mp-fitt .fk { min-width: 3.4em !important; }
/* "Now . Wk 12": phase colour as TEXT on a light teal tint, not a dark filled chip (s.2.2) */
html body.koach-light .kpp-mp-nowtag, html body.koach-light .nowtag { background: #E5F4F5 !important; color: #0B5F66 !important; border: 1px solid #B9E1E4 !important; }
/* exercise library tab count: a grey chip, never a black fill (s.3) */
html body.koach-light-koach .kela-tab-count { background: var(--kl-st-neutral-bg) !important; color: #21252E !important; border-color: transparent !important; }
/* periodized plan goal quote: the red bar was decoration; nothing else is red (s.2.1) */
html body.koach-light-koach .kpp-mp-goal { border-left-color: var(--kl-line-ctrl) !important; }
/* program card set fields on desktop: the unit tag sat on top of the number ("sec8"); unit to the right */
html body.koach-light .kpc-log-input { padding-right: 40px !important; }
html body.koach-light .kpc-lf-tag { left: auto !important; right: 10px !important; }
/* intake: a section that does not apply was dimmed to 50% (about 2.4:1) -- keep it fully readable */
html body.koach-light-koach .koach-intake-frontend div[style*="opacity:0.5"], html body.koach-light-koach .koach-intake-frontend div[style*="opacity: 0.5"] { opacity: 1 !important; }
/* 37.10 S331-B10, LIVE walk as uid 31 (the exercise list only renders live): phone cards = rows, not grey blocks */
html body.koach-light-koach .kela-mcard { background: #FFFFFF !important; box-shadow: none !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; margin: 0 !important; }
html body.koach-light-koach .kela-mcard-head { background: #FFFFFF !important; border: 0 !important; border-radius: 0 !important; min-height: 56px !important; }
html body.koach-light-koach .kela-mcard-chev { background: transparent !important; color: #4A515F !important; }
html body.koach-light-koach .kela-kv .k { color: #5F6673 !important; font-size: 13px !important; }
html body.koach-light-koach .kela-nil { color: #5F6673 !important; font-size: 13px !important; }
html body.koach-light-koach .kela-pill, html body.koach-light-koach .kela-home-ind, html body.koach-light-koach .kela-src { font-size: 13px !important; text-transform: none !important; letter-spacing: 0 !important; } /* S333-B9: 13px floor, no capitals */
html body.koach-light-koach .kela-abtn { min-height: 44px !important; min-width: 44px !important; font-size: 13px !important; }
html body.koach-light-koach .kela-vid { min-width: 44px !important; min-height: 44px !important; font-size: 13px !important; }
html body.koach-light-koach .kela-sub, html body.koach-light-koach .kela-aka, html body.koach-light-koach .kela-empty { color: #5F6673 !important; }
html body.koach-light-koach .kela-sub, html body.koach-light-koach .kela-aka { font-size: 13px !important; }
html body.koach-light-koach .kela-koach-intro, html body.koach-light-koach .kela-koach-intro strong { font-size: 14px !important; }
html body.koach-light-koach .kela-bulk-meta, html body.koach-light-koach .kela-bulk-pct { font-size: 13px !important; }
html body.koach-light-koach .cell-wrap .kela-src { max-width: none !important; overflow: visible !important; text-overflow: clip !important; white-space: normal !important; }
/* 37.11 S331-B10, LIVE walk: the koach calendar (Amelia employee panel, DOM read 2026-10-21 21:40) -- 44px controls,
   the date range on one line on the phone. Scoped to this page only (the client booking pages are D619, unchanged). */
html body.koach-light-koach.koach-app-koach-calendar .am-capf__menu .am-button { min-width: 44px !important; min-height: 44px !important; }
html body.koach-light-koach.koach-app-koach-calendar .am-caph__menu { min-width: 44px !important; min-height: 44px !important; display: inline-flex !important; align-items: center; justify-content: center; }
html body.koach-light-koach.koach-app-koach-calendar .am-date-picker__wrapper { box-shadow: none !important; }
html body.koach-light-koach.koach-app-koach-calendar .el-date-editor { min-height: 44px !important; }
@media (max-width: 599px) {
  html body.koach-light-koach.koach-app-koach-calendar .el-range-input { font-size: 13px !important; white-space: nowrap !important; }
}
/* ---- 38. S331-B11: owner decisions 3-6 ("go with all", 2026-10-21 21:50) ---- */
/* 38.1 (decision 3) one red primary per koach screen; the rest secondary grey; Delete = red text link; checkboxes ink */
html body.koach-light-koach #kar-save,
html body.koach-light-koach .kps-fp-link.kps-fp-link--build,
html body.koach-light-koach .kpb-finalize-session-btn,
html body.koach-light-koach .koach-program-builder .kpb-btn--primary:not(#kpb-save-plan):not(#kpb-override-confirm) {
  background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; color: #21252E !important; box-shadow: none !important; }
html body.koach-light-koach .kpb-delete-program-btn, html body.koach-light-koach .kpb-btn--danger {
  background: transparent !important; border: 0 !important; color: #C0161C !important; box-shadow: none !important; text-decoration: underline; text-underline-offset: 3px; }
html body.koach-light-koach .kpb-actions-wrap .kpb-btn { color: #4A515F !important; border-color: var(--kl-line-ctrl) !important; }
html body.koach-light-koach input[type="checkbox"], html body.koach-light-koach input[type="radio"] { accent-color: #21252E !important; }
/* 38.2 (decision 4) canfitpro role colours appear only as the marker, never as text: the Type select reads ink */
html body.koach-light-koach .kpb-type-select,
html body.koach-light-koach .kpb-exercise-row[data-exercise-type] .kpb-type-select { color: #21252E !important; background-color: #FFFFFF !important; border-color: var(--kl-line-ctrl) !important; }

/* 38.3 (decision 5) client pages: nothing red that is not an action or a link */
html body.koach-light .koach-legal-list li::marker, html body.koach-light .koach-legal-body li::marker { color: #5F6673 !important; }
html body.koach-light .gfield_required, html body.koach-light .gfield_required::before, html body.koach-light .gfield_required::after { color: #21252E !important; }
html body.koach-light .kl-row.is-today .kl-day { color: #21252E !important; font-weight: 700 !important; }
/* 38.4 (decision 6) the booking page title is the page title: Bebas 40 (s.1.3), the "Booking" eyebrow kept */
/* (decision 6, owner OK 22:24) the booking header = eyebrow "Booking . koach Solo" (not capitalised, so koach stays
   lowercase) + the page title "Program Review" in Bebas 40 (koach_light_booking_title, koach-app-pages.php S331-B12) */
html body.koach-light .kl-book-head { margin: 0 0 20px !important; font-family: var(--kl-font, 'DM Sans'), sans-serif !important; }
html body.koach-light .kl-book-eyebrow { font-size: 14px !important; font-weight: 600 !important; color: #4A515F !important; text-transform: none !important; letter-spacing: 0 !important; margin: 0 0 6px !important; }
html body.koach-light .kl-book-title { font-family: var(--kl-title-font, 'Bebas Neue'), sans-serif !important; font-size: 40px !important; line-height: 1 !important; color: #21252E !important; margin: 0 !important; }
/* (owner OK 22:24) Contact inside the app: a signed-in client is not asked to log in */
html body.koach-light.logged-in .contact-quick-link[href*="member-dashboard"] { display: none !important; }
/* ---- 39. S331-B13 (owner "go", 22:47): the Amelia cabinet panels (koach calendar + client Schedule) ----
   DOM read live 2026-10-21 22:50 as uid 31 (C-S330-8). C32: the panel's own "Log out" is hidden (rail + phone
   menu) -- the koach Log Out in the shell is the one way out, and it runs the cache-safe logout. The phone menu
   (Amelia's slide-up, painted #0D1119) takes the light look. */
html body.koach-light .am-fs-sb__footer .am-fs-sb__page[aria-label="Log out"],
html body.koach-light .am-fs-sb__footer .am-fs-sb__page-divider,
html body.koach-light .am-slide-popup__block-footer .am-msd__item:has(.am-icon-logout) { display: none !important; }
html body.koach-light .am-slide-popup__up-inner-mobile { background: #FFFFFF !important; color: #21252E !important; border-top: 1px solid var(--kl-line-bubble) !important; }
html body.koach-light .am-slide-popup__up-inner-mobile .am-msd__item,
html body.koach-light .am-slide-popup__up-inner-mobile .am-msd__item-heading,
html body.koach-light .am-slide-popup__up-inner-mobile .am-msd__item-icon,
html body.koach-light .am-slide-popup__up-inner-mobile [class^="am-icon-"] { color: #21252E !important; }
html body.koach-light .am-slide-popup__up-inner-mobile .am-msd__item { min-height: 44px !important; }
html body.koach-light .am-slide-popup__up-inner-mobile .am-msd__item.selected { background: var(--kl-soft) !important; }
html body.koach-light .am-slide-popup__up-inner-mobile .am-msd__item.selected .am-msd__item-heading,
html body.koach-light .am-slide-popup__up-inner-mobile .am-msd__item.selected [class^="am-icon-"] { color: #C0161C !important; }
html body.koach-light .am-slide-popup__up-inner-mobile .am-msd__item-divider { background: var(--kl-line-section) !important; border-color: var(--kl-line-section) !important; }
/* second pass of 37.9 (re-scan): */
html body.koach-light .kmd-assess-detail-val small { font-size: 12px !important; }
html body.koach-light-koach .kpb-breadcrumb a { padding: 0 !important; margin: 0 !important; display: inline-flex !important; align-items: center !important; min-height: 44px !important; }
html body.koach-light-koach .kdash-flag { position: relative !important; min-width: 0 !important; min-height: 0 !important; }
html body.koach-light-koach .kdash-flag::after { content: "" !important; position: absolute !important; inset: -9px !important; }
html body.koach-light-koach .kar-stack .kar-flagnote { max-width: calc(100% - 24px) !important; box-sizing: border-box !important; }
html body.koach-light .kps-fp-table .kps-fp-link { padding-left: 10px !important; padding-right: 10px !important; font-size: 13px !important; }
html body.koach-light summary > .chev { margin-right: 10px !important; }
html body.koach-light .kpp-mp-model-sub { word-break: normal !important; overflow-wrap: normal !important; }
/* legal tables on the phone: scroll sideways inside their own box instead of being cut at the screen edge (D634) */
@media (max-width: 820px) {
  html body.koach-light .koach-legal-body table, html body.koach-light .koach-legal-table { display: block !important; max-width: 100% !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch; }
}

/* ---- 40 S331-B14 (C627): the D612 frame on built pages (waiver, in-app legal pages, the access notice) ----
   koach-app-pages.php wraps the built content in .koach-content-area.kl-built-frame; the frame owns the edge
   (phone x20, desktop the frame's 48px), so the legal wrap's own padding and centring go. Reading width stays 760. */
html body.koach-light.koach-app-page .kl-built-frame .koach-legal-wrap { padding: 0 !important; margin: 0 !important; max-width: none !important; }
html body.koach-light.koach-app-page .kl-built-frame .koach-legal-card { max-width: 760px !important; margin: 0 !important; padding: 0 !important; }
/* the access notice under the light look: a page, not a floating box -- title, one line, one red action, one link */
html body.koach-light .koach-content-area .koach-access-notice { display: block !important; min-height: 0 !important; padding: 0 !important; }
html body.koach-light .koach-content-area .koach-access-notice .kan-card { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; max-width: 560px !important; margin: 0 !important; text-align: left !important; }
html body.koach-light .koach-content-area .koach-access-notice .kan-icon { display: none !important; }
html body.koach-light .koach-content-area .koach-access-notice .kan-title { font-family: 'Bebas Neue', sans-serif !important; font-size: 40px !important; line-height: 1 !important; font-weight: 400 !important; letter-spacing: 0 !important; color: #21252E !important; margin: 0 0 12px !important; text-align: left !important; }
html body.koach-light .koach-content-area .koach-access-notice .kan-body { font-size: 16px !important; line-height: 1.5 !important; color: #4A515F !important; margin: 0 0 24px !important; text-align: left !important; }
html body.koach-light .koach-content-area .koach-access-notice .kan-cta-primary { display: inline-flex !important; align-items: center; justify-content: center; min-height: 48px !important; padding: 0 24px !important; width: auto !important; }
html body.koach-light .koach-content-area .koach-access-notice .kan-link-secondary { display: flex !important; justify-content: flex-start !important; margin-top: 8px !important; color: #C0161C !important; font-size: 14px !important; }
/* the waiver's signing block: a section heading on white, not a dark band; eyebrow 14px grey (as the booking eyebrow) */
html body.koach-light.koach-app-page .koach-waiver-sign-card .koach-legal-card-header { background: transparent !important; color: #21252E !important; padding: 0 0 16px !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; padding-top: 24px !important; border-radius: 0 !important; }
html body.koach-light.koach-app-page .koach-waiver-sign-card .koach-legal-label { font-size: 14px !important; color: #4A515F !important; text-transform: none !important; letter-spacing: 0 !important; margin: 0 0 4px !important; opacity: 1 !important; }
html body.koach-light.koach-app-page .koach-waiver-sign-card .koach-legal-title { font-size: 20px !important; line-height: 1.3 !important; color: #21252E !important; font-family: 'DM Sans', sans-serif !important; font-weight: 700 !important; margin: 0 0 8px !important; text-transform: none !important; }
html body.koach-light.koach-app-page .koach-waiver-sign-card .koach-legal-desc { font-size: 15px !important; line-height: 1.5 !important; color: #4A515F !important; opacity: 1 !important; margin: 0 !important; }
html body.koach-light img[alt="Clear Signature"] { box-sizing: content-box !important; padding: 12px 10px !important; margin: -12px -10px !important; cursor: pointer; }
@media (max-width: 820px) {
  html body.koach-light .koach-content-area .koach-access-notice .kan-cta-primary { display: flex !important; width: 100% !important; }
}

/* S332-B4 (owner 2026-10-22 16:29 "Our design decisions should be universal", R1): 41.1 and 41.2 now draw the grey
   BAND between sections (full width through border-image outset, which paints past the column without adding scroll)
   with --kl-sec-pad above and below it; everything else in 41 is unchanged. Legal documents keep headings by space. */
/* ---- 41 S331-B15 THE SPACING LEVELS ON EVERY LIGHT PAGE (owner 2026-10-22 07:19 "Yes, OK to go ahead with the
   levels as shown"): a section is marked by space and its heading -- NO section line; thin lines stay only BETWEEN
   ROWS OF ONE LIST (week days, workouts, check-in values, clients, table rows). Levels: --kl-sp-section /
   --kl-sp-sub / --kl-sp-head / --kl-sp-item (section 0). */
/* 41.1 section CONTAINERS: no line, no inner top/bottom padding, one section gap above */
html body.koach-light .kl .kl-section,
html body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-screen,
html body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-upload,
html body.koach-light #kmd-tab-schedule .kmd-sp-card,
html body.koach-light #kmd-tab-schedule .kmd-susage-card,
html body.koach-light #kmd-tab-milestones .kmd-milestones-section,
html body.koach-light #kmd-tab-assessment .kmd-as-card,
html body.koach-light.koach-app-nutrition .kap-card,
html body.koach-light .koach-program-card.kpc-light .kpcl-setup,
html body.koach-light.koach-app-guide .kow-card,
html body.koach-light-koach .kela-form-card,
html body.koach-light-shop .kct-item-card, html body.koach-light-shop .kct-summary, html body.koach-light-shop .kct-trust
{ border-top: var(--kl-band-h) solid var(--kl-band) !important; border-image: linear-gradient(var(--kl-band), var(--kl-band)) 1 / var(--kl-band-h) 0 0 0 / 0 100vw !important; padding-top: var(--kl-sec-pad) !important; padding-bottom: 0 !important; margin-top: var(--kl-sec-pad) !important; margin-bottom: 0 !important; }
/* 41.2 section HEADINGS that stand on their own (the section is the heading + what follows it) */
html body.koach-light #kmd-tab-progress .kmd-section-title,
html body.koach-light #kmd-tab-programs .kpp-mp-sechead,
html body.koach-light.koach-app-nutrition .knut-sec,
html body.koach-light .kac-rvsec,
html body.koach-light-koach .kps-section-title,
html body.koach-light-koach .kci-section-title,
html body.koach-light-koach .kci-sec,
html body.koach-light-koach .kpp-mp .kpp-mp-sechead,
html body.koach-light-shop .ktq-steps-heading
{ border-top: var(--kl-band-h) solid var(--kl-band) !important; border-image: linear-gradient(var(--kl-band), var(--kl-band)) 1 / var(--kl-band-h) 0 0 0 / 0 100vw !important; padding-top: var(--kl-sec-pad) !important; padding-bottom: 0 !important; margin-top: var(--kl-sec-pad) !important; margin-bottom: var(--kl-sp-head) !important; }
/* 41.3 SUB-SECTIONS: a group inside a section */
html body.koach-light-koach .kci-subsec,
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield.gsection
{ border-top: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; margin-top: var(--kl-sp-sub) !important; margin-bottom: var(--kl-sp-head) !important; }
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_page_footer,
html body.koach-light.koach-app-guide .kow-foot { border-top: 0 !important; padding-top: 0 !important; margin-top: var(--kl-sp-sub) !important; }
html body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-list { border-top: 0 !important; }
/* 41.4 inside a section */
html body.koach-light .kl .kl-section-head,
html body.koach-light .kl .kl-section > .kl-h2 { margin-bottom: var(--kl-sp-head) !important; }
html body.koach-light .kl .kl-section-head .kl-h2 { margin-bottom: 0 !important; }
html body.koach-light .kl .kl-section .kl-btn--primary { margin-top: var(--kl-sp-item) !important; }
/* a "section" that holds only a link (Manage appointments under This week) belongs to the section above it */
html body.koach-light .kl .kl-section:has(> .kl-link:only-child) { margin-top: var(--kl-sp-item) !important; }
html body.koach-light .kl .kl-section:last-child { padding-bottom: var(--kl-sp-sub) !important; }
/* 41.5 the remaining section lines found by the line inventory (every page, 390px): sections by space */
html body.koach-light #kmd-tab-assessment .kgsa-screen { border-top: 0 !important; padding-top: 0 !important; margin-top: var(--kl-sp-section) !important; }
html body.koach-light.koach-app-page .koach-legal-body .koach-legal-hr { display: none !important; }
html body.koach-light.koach-app-page.koach-legal-page .koach-legal-body .koach-legal-h1 { border-bottom: 0 !important; padding-bottom: 0 !important; margin-bottom: var(--kl-sp-head) !important; }
html body.koach-light.koach-app-page.koach-legal-page .koach-legal-body .koach-legal-h2 { margin-top: var(--kl-sp-section) !important; margin-bottom: var(--kl-sp-head) !important; }
html body.koach-light.koach-app-page.koach-legal-page .koach-legal-body .koach-legal-h3 { margin-top: var(--kl-sp-sub) !important; margin-bottom: 8px !important; }
html body.koach-light.koach-app-page .koach-waiver-sign-card { margin-top: var(--kl-sp-section) !important; }
html body.koach-light.koach-app-page .koach-waiver-sign-card .koach-legal-card-header { border-top: 0 !important; padding-top: 0 !important; padding-bottom: var(--kl-sp-head) !important; }
html body.koach-light.koach-app-contact :is(.contact-form-header, .contact-info-header, .contact-links-header) { border-top: 0 !important; padding-top: 0 !important; margin-top: var(--kl-sp-section) !important; margin-bottom: var(--kl-sp-head) !important; }
html body.koach-light .gform_wrapper .gform_footer, html body.koach-light .gform_wrapper .gform-footer,
html body.koach-light #main .gform_wrapper.gform-theme .gform_footer, html body.koach-light #main .gform_wrapper.gform-theme .gform-footer { border-top: 0 !important; padding-top: 0 !important; margin-top: var(--kl-sp-sub) !important; }
html body.koach-light.koach-app-nutrition :is(.knut-quick, .knut-ct1) { border-top: 0 !important; margin-top: var(--kl-sp-sub) !important; }
html body.koach-light-koach .kah-reassess-section { border-bottom: 0 !important; padding-bottom: 0 !important; margin-bottom: var(--kl-sp-section) !important; }
html body.koach-light-koach hr.kela-sep { border: 0 !important; height: 0 !important; margin: var(--kl-sp-sub) 0 0 !important; }
html body.koach-light-koach .kps-header-actions .kps-status-toggle { border-top: 0 !important; }
html body.koach-light-koach .kps-card-body .kps-subhead { border-top: 0 !important; margin-top: var(--kl-sp-sub) !important; }
/* koach Clients: the header strip and the filters are one block; the client list is the next section */
html body.koach-light-koach .kdash-meta { border-top: 0 !important; padding-top: 0 !important; margin-top: var(--kl-sp-sub) !important; }
html body.koach-light-koach .kdash-toolbar { border-bottom: 0 !important; padding-bottom: 0 !important; margin-bottom: var(--kl-sp-section) !important; }
html body.koach-light-koach .kdash-client-card { padding: var(--kl-sp-sub) 0 !important; }
html body.koach-light-koach .kdash-client-card:first-of-type { padding-top: 0 !important; }
html body.koach-light-koach .kdash-client-card .kcc-foot { border-top: 0 !important; padding-top: 0 !important; margin-top: var(--kl-sp-item) !important; }

/* ---- 42 S331-B16 production smoke look (client account, real data states staging did not have): faint grey text
   #8A909C / #909090 below 4.5:1 and under 12px -> quiet grey #5F6673 at 12px+ (standard s.2.3) ---- */
html body.koach-light .kac-sess-policy { color: #5F6673 !important; font-size: 13px !important; }
html body.koach-light.koach-app-guide .kow-prog { color: #5F6673 !important; font-size: 12px !important; }
html body.koach-light.koach-app-guide .kow-st { color: #5F6673 !important; }
html body.koach-light #kmd-tab-programs .kpp-mp-wk-dl { color: #5F6673 !important; font-size: 12px !important; }
html body.koach-light #kmd-tab-programs .kpp-mp-mstat--upcoming { color: #5F6673 !important; }

/* ---- 43 S331-B17 (C619): the exercise stills over the dumbbell stand-in (standard 4.7: contain, never cropped) ---- */
html body.koach-light .kl .kl-today-pic, html body.koach-light .koach-program-card.kpc-light .kpcl-thumb { position: relative !important; overflow: hidden !important; }
html body.koach-light .kl .kl-today-pic img, html body.koach-light .koach-program-card.kpc-light .kpcl-thumb img { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; object-fit: contain !important; background: #FFFFFF !important; border-radius: inherit !important; display: block !important; }

/* ========================================================================
   44. CONTROL CENTRING (S332-B1-LIGHTCSS, F-332-11, owner 2026-10-22 13:59).
   S331-B8 raised these controls to min-height 44px (standard s.3) without
   centring their content, so a single line of text sat at the top of the
   taller box (the Clients card buttons: 1px above, 23px below). This section
   changes NO display type (several of these are shown / hidden by display
   rules) and NO size: it only centres the content vertically.
   align-items centres flex / inline-flex controls; align-content centres
   block / inline-block controls (CSS Box Alignment 3).
   ======================================================================== */
body.koach-light .koach-program-card.kpc-light .kpc-chip, body.koach-light .koach-program-card.kpc-light .kpc-addload,
body.koach-light .kac-tab-btn,
html body.koach-light-shop .kct-coupon-toggle,
body.koach-light #kmd-tab-assessment .kmd-expand-btn,
body.koach-light.koach-app-nutrition .knut-nft-tog, body.koach-light.koach-app-nutrition .knut-cellctl-t,
body.koach-light.koach-app-nutrition .knut-link,
body.koach-light-koach .kdash-tabs .kdash-tab-btn,
body.koach-light-koach .kdash-tab-ddbtn,
body.koach-light-koach .kdash-tab-ddlist a,
body.koach-light-koach .kdash-dd-btn,
body.koach-light-koach .kdash-dd-opt,
body.koach-light-koach .kcc-btn,
body.koach-light-koach .kdash-btn,
body.koach-light-koach .kdash-btn--secondary, body.koach-light-koach .kdash-alert-card .kdash-btn--primary, body.koach-light-koach .kdash-alert-card .kdash-btn--secondary, body.koach-light-koach .kdash-sysnotice .kdash-btn--secondary, body.koach-light-koach .kdash-sched-amelia-btn, body.koach-light-koach .kdash-ci-review-btn, body.koach-light-koach .kdash-waive-btn, body.koach-light-koach .kdash-ci-toggle,
body.koach-light-koach .kdash-alert-subtab,
body.koach-light-koach .kps-card-more,
body.koach-light-koach .kpb-exercise-table .col-actions .kpb-btn,
body.koach-light-koach .kpb-lib-tab,
body.koach-light-shell #kns-shell .kns-menu-item,
body.koach-light-shell .kns-side .kns-group:not(.kns-group--static) .kns-group-hd,
body.koach-light-koach .kela-tab,
body.koach-light-koach .kela-btn,
body.koach-light-koach .kela-btn--sm,
body.koach-light .kns-collapse,
body.koach-light .kns-item,
body.koach-light .kns-uom-btn,
body.koach-light .knut-tab, body.koach-light .knut-cam-q,
html body.koach-light-shell .kns-uom .kns-uom-btn,
html body.koach-light-shell .kns-item,
html body.koach-light-shell .kns-collapse,
html body.koach-light-koach .kela-abtn,
html body.koach-light-koach .kela-vid,
html body.koach-light-koach.koach-app-koach-calendar .am-capf__menu .am-button,
html body.koach-light .am-slide-popup__up-inner-mobile .am-msd__item {
	align-items: center !important;
	align-content: center !important;
}

/* 45. BATCH A FINISH (S332-B2-LIGHTCSS; walk 3 control-finish scan + independent review; owner "go ahead with batch A"
   2026-10-22 14:49 local). Each rule names the walk 3 finding it answers. */
/* 45.1 client-card buttons (J, the owner's screenshot): the <a> is a flex item, so it computes to display:block and
   section 44's align-items never reached it. Made a centring flex box; the row's items share one centre line (O). */
body.koach-light-koach .kcc-actions { align-items: center !important; }
body.koach-light-koach .kcc-btn { display: inline-flex !important; align-items: center !important; justify-content: center !important; box-sizing: border-box !important; line-height: 1.2 !important; }
/* 45.2 "Pain only" (K): the checkbox square is drawn by ::before 12px from the left; the right inset now matches it */
body.koach-light-koach .kdash-ci-toggle { display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 8px !important; padding: 0 16px !important; }
/* 45.2b (walk 4 check 2): the square is laid out WITH the words, so square + words centre as one group at every width */
body.koach-light-koach .kdash-ci-toggle::before { position: static !important; transform: none !important; flex: 0 0 auto !important; }
/* 45.3 tags with text at the edge (M): 10px each side */
body.koach-light-koach .kpb-badge, body.koach-light-koach .kpb-limtag, html body.koach-light-koach .kela-tab-count { padding-left: 10px !important; padding-right: 10px !important; }
html body.koach-light .kpp-mp-nowtag, html body.koach-light .nowtag, html body.koach-light #kmd-tab-programs .kpp-mp-nowtag { display: inline-flex !important; align-items: center !important; padding: 2px 10px !important; }
/* 45.4 Progress period control (M at 390; uneven widths at 1440): the .kl-seg size and weight, one weight for every option */
body.koach-light .kpl-seg button, body.koach-light .kpl-seg button[aria-pressed="true"] { padding: 0 8px !important; font-size: 15px !important; font-weight: 600 !important; }
@media (max-width: 420px) { body.koach-light .kpl-seg button, body.koach-light .kpl-seg button[aria-pressed="true"] { font-size: 14px !important; padding: 0 4px !important; } }
/* 45.5 scale end captions (Journal energy, Check-In scales): 14px, the size of the other helper lines */
body.koach-light .kl .kl-numrow-ends, body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .kl-scale-ends { font-size: 14px !important; }
/* 45.6 Check-In answer cards sat 4px apart: the 8px of the scale buttons */
body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_radio:not(.kl-scale), body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_checkbox { display: grid !important; gap: 8px !important; }
/* 45.7 sidebar left edge: the Units word and the Send feedback row start where the nav labels start (x24) */
body.koach-light-shell .kns-side .kns-util .kns-eyebrow { padding-left: 12px !important; }
body.koach-light-shell .kns-side .kl-fb-side { width: calc(100% - 24px) !important; margin: 0 12px !important; }
body.koach-light-shell.kns-rail .kns-side .kl-fb-side { width: calc(100% - 20px) !important; margin: 0 10px !important; }
/* 45.8 Program Card demo modal (moved to <body> by the card script): Hear Brief reads on the dark panel and keeps 44px */
body.koach-light .kpc-video-modal .kpc-tts-play-btn, body.koach-light .kpc-video-modal .kpc-video-fullscreen-btn { min-height: 44px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; box-sizing: border-box !important; }
body.koach-light .kpc-video-modal .kpc-tts-play-btn { gap: 6px !important; padding: 0 14px !important; background: transparent !important; border: 1px solid rgba(255,255,255,.35) !important; color: #FFFFFF !important; font-size: 14px !important; box-shadow: none !important; }

/* 46. RED = ACTION ONLY (S332-B4, R3, owner 2026-10-22 15:52 + 16:06): statuses that were drawn in red now use the
   status tokens -- blocks training / critical = ink chip; needs action / pain = amber. Errors from a failed save or a
   form field stay red (an error is not a status). Values: koach-tokens.css --kl-st-*. */
body.koach-light-koach .kdash-flag--clearance { --kfc-bg: var(--kl-st-block-bg) !important; --kfc-bd: var(--kl-st-block-bg) !important; --kfc-fg: var(--kl-st-block-tx) !important; }
body.koach-light-koach .kdash-alert-chip--red, body.koach-light-koach .kdash-prep-chip--block { background: var(--kl-st-block-bg) !important; border-color: var(--kl-st-block-bg) !important; color: var(--kl-st-block-tx) !important; }
body.koach-light-koach .kdash-alert-sw--red { background: var(--kl-st-block-bg) !important; border-color: var(--kl-st-block-bg) !important; }
body.koach-light-koach .kdash-status--paused::before { background: var(--kl-attn) !important; }
body.koach-light .kmd-term-ended--clearance { background: var(--kl-soft) !important; border-color: var(--kl-line-row) !important; border-left-color: var(--kl-st-block-bg) !important; }
body.koach-light .kmd-term-ended--clearance .kmd-term-ended-eyebrow { color: var(--kl-ink) !important; }
body.koach-light .kmd-ci-pill--bad::before { background: var(--kl-attn) !important; }
html body.koach-light-koach .kdash-badge, html body.koach-light-koach .kdash-badge--review { background: var(--kl-badge-bg) !important; color: var(--kl-badge-tx) !important; }

/* 47. LISTS AND TRAINING TO THE APPROVED MOCKUP (S332-B5, owner 2026-10-22 16:36 "Approved"; canvas "koach separation
   mockups", page "Approved standard"). Lists everywhere: a line above the first row and under every row (R1). */
html body.koach-light .kl .kl-rows { margin: var(--kl-sp-head) 0 0; border-top: 1px solid var(--kl-line-row); }
html body.koach-light .kl .kl-row:last-child { border-bottom: 1px solid var(--kl-line-row); }
html body.koach-light .kl .kl-row.is-today { background: var(--kl-soft); margin: 0 -12px; padding-left: 12px; padding-right: 12px; }
html body.koach-light .kl .kl-row.is-today .kl-row-main { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
html body.koach-light .kl .kl-row-main .kl-status { margin-left: 4px; vertical-align: middle; }
html body.koach-light .kl .kl-row-main .kl-status--plain { margin-left: 6px; }
/* Training: the Check-In row and the Program Review share one section (a row line between them, no band) */
html body.koach-light .kl .kl-section.kl-section--ci { padding-top: 0 !important; padding-bottom: 0 !important; }
html body.koach-light .kl .kl-section--ci + .kl-section { margin-top: 0 !important; }   /* the row is the whole section: no empty space before the next band */
html body.koach-light .kl .kl-section--ci .kl-ci-row { min-height: 64px; border-bottom: 0; }
html body.koach-light .kl .kl-section--ci .kl-ci-row .kl-li__main { font-size: var(--kl-fs-h3); }
html body.koach-light .kl .kl-section--ci + .kl-section:is([aria-labelledby="kl-t-rev"], [aria-labelledby="kl-t-book"]) { border-top: 1px solid var(--kl-line-row) !important; border-image: none !important; margin-top: 0 !important; padding-top: 20px !important; }
html body.koach-light .kl .kl-sec-recent .kl-list { margin-top: var(--kl-sp-head); }
html body.koach-light .kl .kl-rec-li { list-style: none; }
/* N1: the week's dates sit beside its heading, not on a line of their own */
html body.koach-light .kl .kl-sec-week .kl-section-head > div:first-child { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
html body.koach-light .kl .kl-sec-week .kl-section-head > div:first-child .kl-sub { margin: 0; }
html body.koach-light .kl .kl-note svg { width: 18px; height: 18px; flex: 0 0 auto; }
html body.koach-light .kl .kl-section-head .kl-status { flex: 0 0 auto; }
/* desktop mirrors the phone (N5): today's workout on one row; This week and Recent workouts side by side */
@media (min-width: 821px) {
  html body.koach-light .kl.kl-training { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 48px; align-items: start; }
  html body.koach-light .kl.kl-training > * { grid-column: 1 / -1; }
  html body.koach-light .kl.kl-training > .kl-sec-week, html body.koach-light .kl.kl-training > .kl-sec-recent { grid-column: auto; }
  html body.koach-light .kl.kl-training > .kl-sec-week:last-child, html body.koach-light .kl.kl-training > .kl-sec-recent:only-of-type:not(:has(~ .kl-sec-week)):first-of-type { grid-column: 1 / -1; }
  html body.koach-light .kl .kl-sec-today { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; column-gap: 24px; align-items: center; }
  html body.koach-light .kl .kl-sec-today > .kl-h2 { grid-column: 1 / -1; grid-row: 1; margin-bottom: var(--kl-sp-head); }
  html body.koach-light .kl .kl-sec-today > .kl-today { grid-column: 1; grid-row: 2; margin-top: 0; }
  html body.koach-light .kl .kl-sec-today > .kl-bubble, html body.koach-light .kl .kl-sec-today > .kl-hint { grid-column: 2; grid-row: 2; margin: 0 !important; align-self: center; }
  html body.koach-light .kl .kl-sec-today > .kl-bubble ~ .kl-hint { grid-row: 3; }
  /* S334-B7 (F-334-8, production 2026-10-27): a second hint (the S334 reassessment line) goes under the first, never on it */
  html body.koach-light .kl .kl-sec-today > .kl-hint ~ .kl-hint { grid-row: 3; margin-top: 4px !important; }
  html body.koach-light .kl .kl-sec-today > .kl-bubble ~ .kl-hint ~ .kl-hint { grid-row: 4; }
  html body.koach-light .kl .kl-sec-today > .kl-btn--primary { grid-column: 3; grid-row: 2; margin-top: 0 !important; padding: 0 32px; width: auto; }
  html body.koach-light .kl .kl-sec-today > .kl-btn--secondary { grid-column: 3; }
}

/* 48. koach CLIENTS TO THE APPROVED MOCKUP (S332-B6): counts row, two headed groups, 72px rows with initials and one
   status chip; the old phase-tinted card headers are gone (R1: rows divided by lines, no boxes). */
html body.koach-light-koach .kdash-kl-stats { margin: var(--kl-sp-head) 0 var(--kl-sec-pad) 0; }
html body.koach-light-koach .kdash-kl-ic--block { background: var(--kl-st-block-bg); color: var(--kl-st-block-tx); }
html body.koach-light-koach .kdash-kl-ic--attn  { background: var(--kl-st-attn-bg);  color: var(--kl-st-attn-tx); }
html body.koach-light-koach .kdash-kl-ic--info  { background: var(--kl-st-info-bg);  color: var(--kl-st-info-tx); }
html body.koach-light-koach .kdash-kl-ic--ok    { background: var(--kl-st-ok-bg);    color: var(--kl-st-ok-tx); }
html body.koach-light-koach .kdash-kl-stats .kl-stat__icon svg { width: 18px; height: 18px; }
html body.koach-light-koach .kdash-kl-group {
  margin: var(--kl-sec-pad) 0 var(--kl-sp-head) 0 !important; padding: var(--kl-sec-pad) 0 0 0 !important;
  border-top: var(--kl-band-h) solid var(--kl-band) !important; border-image: linear-gradient(var(--kl-band), var(--kl-band)) 1 / var(--kl-band-h) 0 0 0 / 0 100vw !important;
  display: flex; align-items: baseline; gap: 8px; font-family: var(--kl-font) !important; font-size: 18px !important; font-weight: 700 !important; color: var(--kl-ink) !important; text-transform: none !important; letter-spacing: 0 !important; line-height: 1.3 !important;
}
html body.koach-light-koach .kdash-kl-group-n { font-size: 15px; font-weight: 600; color: var(--kl-ink2); }
html body.koach-light-koach .kdash-kl-group + .kdash-client-card { border-top: 1px solid var(--kl-line-row) !important; }
html body.koach-light-koach .kdash-client-card { padding: 0 !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; background: transparent !important; }
html body.koach-light-koach .kdash-client-card > summary.kcc-head { min-height: var(--kl-h-row-lg) !important; display: flex !important; align-items: center !important; gap: 16px !important; padding: 12px 0 !important; }
html body.koach-light-koach .kdash-client-card .kcc-id { display: flex !important; align-items: center !important; gap: 12px !important; min-width: 0; flex: 1 1 auto; }
html body.koach-light-koach .kdash-client-card .kcc-name { font-size: 16px !important; font-weight: 700 !important; color: var(--kl-ink) !important; white-space: nowrap; }
html body.koach-light-koach .kdash-client-card .kcc-email { font-size: var(--kl-fs-small) !important; color: var(--kl-ink2) !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
html body.koach-light-koach .kdash-client-card .kcc-pills { display: flex !important; align-items: center !important; gap: 8px !important; flex-wrap: nowrap !important; flex: 0 1 auto; }
html body.koach-light-koach .kdash-client-card[open] > summary.kcc-head { background: transparent !important; }
html body.koach-light-koach .kdash-client-card[open] .kcc-body { padding: 0 0 20px 52px !important; }
@media (max-width: 820px) {
  html body.koach-light-koach .kdash-client-card > summary.kcc-head { flex-wrap: wrap !important; }
  html body.koach-light-koach .kdash-client-card .kcc-pills { flex-wrap: wrap !important; flex-basis: 100%; padding-left: 52px; }
  html body.koach-light-koach .kdash-client-card[open] .kcc-body { padding-left: 0 !important; }
}

/* 49. THE BAND REACHES BOTH EDGES (S332-B7, owner 2026-10-22 17:33 "a floating thick grey bar in the middle of the
   page"). VERIFIED cause: the page wrappers clip sideways (overflow-x: hidden on .kmd-wrap, .kdash-wrap and the build
   pages), so the band's full-width paint was cut to the 960 / 1160 column. On light pages those wrappers no longer
   clip; the page itself clips sideways at the screen edge (overflow-x: clip keeps no sideways scroll and does not
   break sticky elements). On desktop the band runs under the fixed left menu, which paints over it. */
html:has(body.koach-light), html body.koach-light { overflow-x: clip !important; }
html body.koach-light :is(.kmd-wrap, .kdash-wrap, .koach-program-builder, .koach-plan-builder.koach-program-design, .koach-assessment-history, .koach-plan-summary, .kela-wrap, .koach-program-card, #main, #main .fusion-row, #content, .post-content, .koach-content-area, .fusion-fullwidth, .fusion-builder-row, .fusion-layout-column, .fusion-column-wrapper) { overflow-x: visible !important; overflow: visible !important; }

/* 50. FORM PAGES TAKE THE BAND TOO (S332-B8; walk 5 re-shot 17:42: /check-in/ had no band between "Your body",
   "How you feel", "Your training" and "Notes"). Every Gravity Forms section heading on a light form page opens a band
   section, the first one included (the band sits under the page intro, as on the approved Check-In mockup); the
   submit row closes the form under one more band. */
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield.gsection,
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield.gsection.kl-ci-sec--first,
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_body > .gform_fields > .gfield.gsection:first-child,
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_page_fields .gform_fields > .gfield.gsection:first-child,
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_footer,
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform-footer,
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_page_footer {
  border-top: var(--kl-band-h) solid var(--kl-band) !important;
  border-image: linear-gradient(var(--kl-band), var(--kl-band)) 1 / var(--kl-band-h) 0 0 0 / 0 100vw !important;
  padding-top: var(--kl-sec-pad) !important; margin-top: var(--kl-sec-pad) !important;
}
html body.koach-light.koach-form-page :is(.gform_wrapper, .gform_body, .gform_fields, .gform_page, .gform_page_fields, form) { overflow: visible !important; }
/* R2 on forms: scale buttons and answer cards are white with the 3:1 edge (they were grey fills in the re-shot) */
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_radio .gchoice,
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gfield_checkbox .gchoice,
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .kl-scale .gchoice { background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; }
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gchoice:has(input:checked) { background: var(--kl-sel-bg) !important; border: 2px solid var(--kl-red) !important; }
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gchoice:has(input:checked) label { color: var(--kl-red-press) !important; font-weight: 700 !important; }

/* ==========================================================================
   s.51 -- S332 walk-5 batch 1 (shared fixes, checklist v2 R1-R3)
   ========================================================================== */
/* R2: every control edge 3:1 -- exercise library row buttons and video buttons */
html body.koach-light-koach .kela-abtn,
html body.koach-light-koach .kela-vid { background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; color: var(--kl-ink) !important; }
html body.koach-light-koach .kela-abtn.kela-abtn--danger { border-color: var(--kl-red) !important; color: var(--kl-red) !important; }
/* R2: feedback bubble, cookie "View preferences", Amelia plain buttons */
html body.koach-light-shell .kbf-pill { border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; }
html body.koach-light .cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences { background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; color: var(--kl-ink) !important; }
html body.koach-light .am-button.am-button--plain { border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; }
/* R2: nutrition date field gets a full edge */
html body.koach-light.koach-app-nutrition .knut-daypick { background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; }
/* R2: Progress filters -- no grey track; every option edged; the chosen one is red edge + tint (same as every other choice) */
html body.koach-light .kpl-seg { background: transparent !important; padding: 0 !important; gap: 8px !important; }
html body.koach-light .kpl-seg button { background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-btn) !important; color: var(--kl-ink) !important; box-shadow: none !important; }
html body.koach-light .kpl-seg button[aria-pressed="true"] { background: var(--kl-sel-bg) !important; border: 2px solid var(--kl-red) !important; color: var(--kl-red-press) !important; font-weight: 700 !important; box-shadow: none !important; }
/* Workout video pop-up (dark backdrop): visible light edges on its buttons */
html body.koach-light .kpc-video-modal-close,
html body.koach-light .kpc-video-fullscreen-btn,
html body.koach-light .kpc-tts-play-btn,
html body.koach-light .kpc-video-modal-close-bottom { border: var(--kl-w-ctrl) solid rgba(255,255,255,.72) !important; }
html body.koach-light .kpc-video-fullscreen-btn,
html body.koach-light .kpc-tts-play-btn { display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; padding-left: 14px !important; padding-right: 14px !important; }
/* Title line: list titles may wrap instead of being cut off by the status chip (Recent workouts on a phone) */
html body.koach-light .kl .kl-rec-li .kl-li__main { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; line-height: 1.35; padding: 10px 0; }
/* Chips and small labels never break inside */
html body.koach-light :is(.kl-status, .kl-tag-today, .kl-badge, .kah-badge, .kps-status-btn, .kpc-chip, .kdash-sched-status-wrap, .kms-major-switch, .kela-inactive-toggle) { white-space: nowrap !important; }
/* Desktop Training: the today tint stays inside its column; the two column headings share one height */
@media (min-width: 821px) {
  html body.koach-light .kl .kl-row.is-today,
  html body.koach-light .kl-li--today { margin-left: 0 !important; margin-right: 0 !important; padding-left: 10px !important; padding-right: 10px !important; }
  html body.koach-light .kl.kl-training > .kl-sec-week .kl-section-head,
  html body.koach-light .kl.kl-training > .kl-sec-recent .kl-section-head { min-height: 44px; display: flex; align-items: center; }
}

/* ==========================================================================
   s.52 -- S332 walk-5 batch 2a: koach Clients title line (one status chip, nothing repeated)
   ========================================================================== */
/* The old "Admin View / Active clients / Alerts / Milestones" strip repeated on every koach page and its numbers
   disagreed with the count row; the count row on Clients (and the badges on the tabs) carry the numbers now. */
html body.koach-light-koach .kdash-meta { display: none !important; }
/* Row title line = initials, name, ONE status chip, plan word, chevron. Phase, "Active" and the flag icons repeat
   what the chip and the opened row already say, so they leave the title line (they stay inside the opened row). */
html body.koach-light-koach .kcc-head .kcc-pills :is(.kdash-phase-pill, .kdash-status-pill, .kcc-flags--summary) { display: none !important; }
html body.koach-light-koach .kcc-head .kcc-pills { flex-wrap: nowrap !important; gap: 12px !important; }
html body.koach-light-koach .kcc-head .kcc-plan { background: transparent !important; border: 0 !important; padding: 0 !important; font-size: 13px !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--kl-ink2) !important; }
html body.koach-light-koach .kcc-head .kcc-plan .g { display: none !important; }
html body.koach-light-koach .kcc-head .kcc-chev { font-size: 24px !important; color: var(--kl-ink2) !important; width: 24px; text-align: center; }
@media (max-width: 820px) {
  html body.koach-light-koach .kcc-head .kcc-pills { flex-wrap: wrap !important; justify-content: flex-start !important; }
}

/* ==========================================================================
   s.53 -- S332 walk-5 batch 2b: koach Alerts / Check-Ins / Schedule tabs
   ========================================================================== */
/* Sub-tab counts were ink on ink (empty black dots): the number shows in white */
html body.koach-light-koach .kdash-alert-subtab-badge,
html body.koach-light-koach .kdash-alert-subtab-badge--red { background: var(--kl-badge-bg) !important; color: var(--kl-badge-tx) !important; }
/* R1: the tab content opens with a full-width band under the tab bar (Alerts, Check-Ins, Schedule) */
html body.koach-light-koach :is(#panel-alerts, #panel-checkins, #panel-schedule) {
  border-top: var(--kl-band-h) solid var(--kl-band) !important; border-image: linear-gradient(var(--kl-band), var(--kl-band)) 1 / var(--kl-band-h) 0 0 0 / 0 100vw !important;
  padding-top: var(--kl-sec-pad) !important; margin-top: var(--kl-sec-pad) !important;
}
/* Schedule: each part (Upcoming, Recent) is its own section with a band and the app heading style */
html body.koach-light-koach #panel-schedule .kdash-sched-section-title {
  border-top: var(--kl-band-h) solid var(--kl-band) !important; border-image: linear-gradient(var(--kl-band), var(--kl-band)) 1 / var(--kl-band-h) 0 0 0 / 0 100vw !important;
  margin: var(--kl-sec-pad) 0 var(--kl-sp-head) 0 !important; padding: var(--kl-sec-pad) 0 0 0 !important;
  font-family: var(--kl-font) !important; font-size: 18px !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--kl-ink) !important; background: transparent !important;
}
html body.koach-light-koach #panel-schedule .kdash-sched-list { border-top: 1px solid var(--kl-line-row) !important; }
html body.koach-light-koach #panel-schedule .kdash-sched-card { display: flex !important; align-items: center !important; gap: 16px !important; }
html body.koach-light-koach #panel-schedule .kdash-sched-date-col { display: flex !important; flex-direction: row !important; align-items: baseline !important; gap: 6px !important; flex: 0 0 auto !important; min-width: 0 !important; border: 0 !important; padding: 0 !important; white-space: nowrap !important; }
html body.koach-light-koach #panel-schedule .kdash-sched-day,
html body.koach-light-koach #panel-schedule .kdash-sched-datenum { font-size: 15px !important; font-weight: 700 !important; color: var(--kl-ink) !important; text-transform: none !important; letter-spacing: 0 !important; }
html body.koach-light-koach #panel-schedule .kdash-sched-detail { flex: 1 1 auto !important; min-width: 0 !important; border: 0 !important; padding: 0 !important; }
html body.koach-light-koach #panel-schedule .kdash-sched-client,
html body.koach-light-koach #panel-schedule .kdash-sched-time { color: var(--kl-ink2) !important; }
/* R3: a past session's "Completed" is a green chip with a check */
html body.koach-light-koach #panel-schedule .kdash-status--completed { display: inline-flex !important; align-items: center !important; gap: 6px !important; height: var(--kl-h-chip) !important; padding: 0 10px !important; border: 0 !important; border-radius: var(--kl-r-chip) !important; background: var(--kl-st-ok-bg) !important; color: var(--kl-st-ok-tx) !important; font-size: var(--kl-fs-chip) !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; opacity: 1 !important; white-space: nowrap !important; }
html body.koach-light-koach #panel-schedule .kdash-status--completed::before { content: "\2713"; font-weight: 700; }
@media (max-width: 600px) {
  html body.koach-light-koach #panel-schedule .kdash-sched-card { flex-wrap: wrap !important; row-gap: 6px !important; }
  html body.koach-light-koach #panel-schedule .kdash-sched-date-col { flex: 1 0 100% !important; }
}

/* ==========================================================================
   s.54 -- S332 walk-5 batch 2c: Program builder / Program design / Calendar (R1 bands, no boxes)
   ========================================================================== */
html body.koach-light-koach :is(.koach-program-builder, .koach-program-design) :is(.kpb-framework-reference, .kpb-section, .kpb-add-session),
html body.koach-light-koach.koach-app-koach-calendar [id^="amelia-v2-booking"] {
  border-top: var(--kl-band-h) solid var(--kl-band) !important; border-image: linear-gradient(var(--kl-band), var(--kl-band)) 1 / var(--kl-band-h) 0 0 0 / 0 100vw !important;
  border-bottom: 0 !important; padding-top: var(--kl-sec-pad) !important; margin-top: var(--kl-sec-pad) !important; padding-bottom: 0 !important;
}
/* two neighbouring panels share one band, never two */
html body.koach-light-koach :is(.koach-program-builder, .koach-program-design) :is(.kpb-framework-reference, .kpb-section) :is(.kpb-framework-reference, .kpb-section) { border-top: 0 !important; border-image: none !important; padding-top: 0 !important; margin-top: 0 !important; }
/* Limitations: a plain row in its section, not an amber box (the "koach noted" chip carries the colour) */
html body.koach-light-koach .koach-program-builder .kpb-context-card--warning { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; padding: 16px 0 !important; margin: 0 !important; }
/* "Plan active" is a status, not a button: a green chip */
html body.koach-light-koach .kps-action-btn--done { display: inline-flex !important; align-items: center !important; align-self: center !important; gap: 6px !important; min-height: 0 !important; height: var(--kl-h-chip) !important; padding: 0 10px !important; border: 0 !important; border-radius: var(--kl-r-chip) !important; background: var(--kl-st-ok-bg) !important; color: var(--kl-st-ok-tx) !important; font-size: var(--kl-fs-chip) !important; font-weight: 600 !important; box-shadow: none !important; cursor: default !important; white-space: nowrap !important; }
html body.koach-light-koach .kps-action-btn--done::before { content: "\2713"; font-weight: 700; }
/* Recent logged performance: dates never split ("2026-09- / 21") */
html body.koach-light-koach .kpb-perf-panel .kpb-framework-table td:nth-child(3) { white-space: nowrap !important; }

/* ==========================================================================
   s.55 -- S332 walk-5 batch 3: client pages (R1 bands, no boxes, title line, statuses)
   ========================================================================== */
/* Workout: each exercise role (Mobility, Stability, Main ...) opens a section with a band, not a grey box.
   The role dot stays (role colours are the recorded role key). */
html body.koach-light .koach-program-card.kpc-light .kpcl-role {
  background: transparent !important; border-radius: 0 !important;
  border-top: var(--kl-band-h) solid var(--kl-band) !important; border-image: linear-gradient(var(--kl-band), var(--kl-band)) 1 / var(--kl-band-h) 0 0 0 / 0 100vw !important;
  margin: var(--kl-sec-pad) 0 0 !important; padding: var(--kl-sec-pad) 0 8px !important;
}
html body.koach-light .koach-program-card.kpc-light .kpcl-role .kl-role-name { font-size: 18px !important; letter-spacing: 0 !important; text-transform: none !important; }
html body.koach-light .koach-program-card.kpc-light .kpcl-role .kl-role-desc { font-size: 14px !important; }
/* Assessment: the safety note is plain text in its section (no grey box); its first words stay bold */
html body.koach-light #kmd-tab-assessment #koach-solo-assessment > .kmd-page-sub + .kmd-assess-how { background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; }
/* Schedule tab: "Sun Oct 18" on one line; "Completed" is a green chip with a check */
html body.koach-light .kl .kls-date { width: auto !important; min-width: 88px; white-space: nowrap !important; }
html body.koach-light .kl .kls-date .kl-block { display: inline !important; margin-right: 4px; }
html body.koach-light .kl.kl-schedule .kl-row-end .kl-ok { display: inline-flex; align-items: center; gap: 6px; height: var(--kl-h-chip); padding: 0 10px; border-radius: var(--kl-r-chip); background: var(--kl-st-ok-bg); color: var(--kl-st-ok-tx) !important; font-size: var(--kl-fs-chip); font-weight: 600; white-space: nowrap; }
html body.koach-light .kl.kl-schedule .kl-row-end .kl-ok::before { content: "\2713"; font-weight: 700; }
html body.koach-light .kl.kl-schedule .kls-list { border-top: 1px solid var(--kl-line-row); }
/* Milestones: the "Major" tag sits on the title line; the count reads as the page's first line */
html body.koach-light #kmd-tab-milestones .kmd-milestone-card { grid-template-columns: 48px minmax(0, 1fr) auto !important; grid-template-areas: "icon label tag" "icon detail detail" "icon date date" !important; }
html body.koach-light #kmd-tab-milestones .kmd-milestone-card-major-tag { justify-self: end !important; margin: 0 !important; white-space: nowrap !important; }
html body.koach-light #kmd-tab-milestones .kmd-milestones-summary { border-bottom: 1px solid var(--kl-line-row) !important; }
/* Milestone section icons: one neutral ink, no extra hues (R3: colour means status only) */
html body.koach-light :is(.kmd-cat-commitment, .kmd-cat-consistency, .kmd-cat-progression) .kmd-milestones-section-icon,
html body.koach-light .kmd-milestones-empty-icon { color: var(--kl-ink2) !important; }

/* ==========================================================================
   s.56 -- S332 owner yes (a)-(e), 2026-10-22 20:57 local
   ========================================================================== */
/* (e) Alerts: one status chip on each alert's title line; the old four-colour legend and the red
   "Clearance needed" chip go (the dark "Blocks training" chip says it) */
html body.koach-light-koach #kdash-alert-legend,
html body.koach-light-koach .kdash-alert-card .kdash-clearance-chip { display: none !important; }
html body.koach-light-koach .kdash-alert-card .kdash-alert-name { display: flex !important; align-items: center !important; flex-wrap: wrap !important; gap: 8px 12px !important; }
html body.koach-light-koach .kdash-alert-card::before,
html body.koach-light-koach .kdash-alert-card::after { display: none !important; }
html body.koach-light-koach .kdash-alert-card { border-left: 0 !important; }
/* (a) Check-In tab: "This week" status row above the Submit button */
html body.koach-light .kl.kl-checkin .klc-status-row { border-top: 1px solid var(--kl-line-row); margin-bottom: var(--kl-sp-item); }
html body.koach-light .kl.kl-checkin .kl-section[aria-labelledby="klc-t-earlier"] > .kl-text:only-of-type { border-top: 1px solid var(--kl-line-row); padding-top: 14px; }
/* (b) Manage appointments: the koach back link replaces the old "Back to Member Dashboard" button */
html body.koach-light.koach-app-my-schedule .koach-content-area .fusion-button[href="/member-dashboard/"] { display: none !important; }
html body.koach-light .kl-sched-back { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 15px; font-weight: 600; color: var(--kl-ink) !important; text-decoration: none !important; }
/* (d) Check-In form: the unit is a fixed label beside the field */
html body.koach-light.koach-form-page .kl-unit-wrap,
html body.koach-light .gform_wrapper .kl-unit-wrap { display: flex; align-items: center; gap: 10px; width: 100%; }
html body.koach-light .gform_wrapper .kl-unit-wrap > input { flex: 1 1 auto; min-width: 0; }
html body.koach-light .gform_wrapper .kl-unit { flex: 0 0 auto; min-width: 28px; font-size: 16px; font-weight: 600; color: var(--kl-ink2); }

/* ==========================================================================
   s.57 -- S332 walk-6 fixes (checklist v2; owner "update all pages")
   ========================================================================== */
/* A check icon drawn by CSS (the typed check glyph rendered garbled in walk 6) */
html body.koach-light :is(.kdash-status--completed, .kps-action-btn--done, .kl.kl-schedule .kl-row-end .kl-ok)::before {
  content: "" !important; display: inline-block; width: 14px; height: 14px; flex: 0 0 14px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* Training desktop: This week and Recent workouts start on the same line under ONE band (walk 6: two bands) */
@media (min-width: 821px) {
  html body.koach-light .kl.kl-training > .kl-sec-week,
  html body.koach-light .kl.kl-training > .kl-sec-recent { margin-top: var(--kl-sec-pad) !important; }
  html body.koach-light .kl.kl-training > .kl-section--ci + .kl-sec-week,
  html body.koach-light .kl.kl-training > .kl-section--ci ~ .kl-sec-recent { margin-top: 0 !important; }
}
/* My Plan: the first heading gets its space under the band (walk 6: the band touched "Plan Overview") */
html body.koach-light #kmd-tab-programs .kpp-mp > .kpp-mp-sechead:first-of-type,
html body.koach-light .koach-periodized-plan.kpp-mp > .kpp-mp-sechead:first-of-type { padding-top: var(--kl-sec-pad) !important; margin-top: var(--kl-sec-pad) !important; }
/* Milestones: the band alone separates the count from the list */
html body.koach-light #kmd-tab-milestones .kmd-milestones-summary { border-bottom: 0 !important; }
/* Forms: the submit row stays inside the last section (no band of its own) */
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_footer,
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform-footer,
html body.koach-light.koach-form-page #main .gform_wrapper.gform-theme .gform_page_footer {
  border-top: 0 !important; border-image: none !important; padding-top: 0 !important; margin-top: var(--kl-sp-sub) !important;
}
/* Check-In units: the fixed unit sits INSIDE the right end of the field, so every field keeps the full width */
html body.koach-light .gform_wrapper .kl-unit-wrap { position: relative; display: block; width: 100%; }
html body.koach-light .gform_wrapper .kl-unit-wrap > input { width: 100% !important; padding-right: 56px !important; }
html body.koach-light .gform_wrapper .kl-unit { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); pointer-events: none; min-width: 0; }
/* The feedback bubble never sits over the open menu sheet */
html body.koach-light-shell:has(.kns-sheet.kns-open) .kbf-pill { display: none !important; }
/* koach Schedule: "Open calendar" sits on the tab line (no band of its own); rows in full ink; one date column */
html body.koach-light-koach #panel-schedule { border-top: 0 !important; border-image: none !important; padding-top: 0 !important; margin-top: var(--kl-sp-sub) !important; }
html body.koach-light-koach #panel-schedule .kdash-sched-action-row { display: flex !important; justify-content: flex-end !important; margin: 0 !important; padding: 0 !important; border: 0 !important; }
html body.koach-light-koach #panel-schedule .kdash-sched-card,
html body.koach-light-koach #panel-schedule .kdash-sched-card--past { opacity: 1 !important; }
html body.koach-light-koach #panel-schedule .kdash-sched-date-col { flex: 0 0 210px !important; width: 210px !important; }
html body.koach-light-koach #panel-schedule .kdash-sched-service,
html body.koach-light-koach #panel-schedule .kdash-sched-time { color: var(--kl-ink) !important; font-size: 15px !important; }
html body.koach-light-koach #panel-schedule .kdash-sched-client { color: var(--kl-ink2) !important; font-size: 14px !important; }
@media (max-width: 600px) { html body.koach-light-koach #panel-schedule .kdash-sched-date-col { flex: 1 0 100% !important; width: auto !important; } }
/* Clients counts: "Check-ins to review" uses the grey information colour (teal is the phase colour) */
html body.koach-light-koach .kdash-kl-ic--info { background: var(--kl-st-neutral-bg) !important; color: var(--kl-st-neutral-tx) !important; }
/* Plan summary: the cards show every row (no fade, no "View more") */
html body.koach-light-koach .koach-plan-summary .kps-card-body.clamp { max-height: none !important; overflow: visible !important; }
html body.koach-light-koach .koach-plan-summary .kps-card-body.clamp::after { display: none !important; }
html body.koach-light-koach .koach-plan-summary .kps-card-more { display: none !important; }
/* Program builder: the top "Add session" (shown only while the block has no sessions) */
html body.koach-light-koach .kpb-add-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: var(--kl-sp-item) 0 0; }
html body.koach-light-koach .kpb-add-top-note { margin: 0; font-size: 15px; color: var(--kl-ink2); }
html body.koach-light-koach .kpb-add-top .kpb-add-top-btn { background: var(--kl-red) !important; color: #FFFFFF !important; border: 0 !important; box-shadow: var(--kl-sh-primary) !important; min-height: var(--kl-h-primary) !important; padding: 0 24px !important; border-radius: var(--kl-r-btn) !important; font-size: 17px !important; font-weight: 700 !important; }
html body.koach-light-koach .koach-program-builder:has(.kpb-add-top) #kpb-empty-state { display: none !important; }
/* Assessment history: ONE add action (the header button); the reassessment link only when one is due */
html body.koach-light-koach .koach-assessment-history .kah-reassess-action .kps-tbl-link:not(.kps-tbl-link--cta),
html body.koach-light-koach .koach-assessment-history .kps-mini-link { display: none !important; }
/* Program design empty state: the red "Edit Program" is the one action; the italic link goes */
html body.koach-light-koach .koach-program-design .kpb-section > p[style*="italic"] a { display: none !important; }

/* ==========================================================================
   s.58 -- S332 walk-7 fixes
   ========================================================================== */
/* R2 selection rule on the Units switch: the chosen unit = red edge + tint + red label (sidebar and sheets) */
html body.koach-light-shell .kns-uom .kns-uom-btn.is-on,
html body.koach-light-shell #kns-shell .kns-sheet .kns-uom-btn.is-on,
html body.koach-light-shell .kns-side .kns-uom-btn.is-on { background: var(--kl-sel-bg) !important; color: var(--kl-red-press) !important; box-shadow: inset 0 0 0 2px var(--kl-red) !important; font-weight: 700 !important; }
/* Check-In tab: the empty-state line runs the full content width like every other row line */
html body.koach-light .kl.kl-checkin .kl-section[aria-labelledby="klc-t-earlier"] > .kl-text { max-width: none !important; }
/* Program builder: ONE red "Add session" at the top while the block is empty (the foot one hides; it is still the one pressed) */
html body.koach-light-koach #kpb-add-top-btn { background: var(--kl-red) !important; color: #FFFFFF !important; border: 0 !important; box-shadow: var(--kl-sh-primary) !important; }
html body.koach-light-koach #kpb-add-top-btn:hover { background: var(--kl-red-press) !important; }
html body.koach-light-koach .koach-program-builder:has(#kpb-add-top-btn) .kpb-add-session { display: none !important; }
/* Program builder header values share one size (Days / week was a large number) */
html body.koach-light-koach .koach-program-builder .kpb-context-card--metric strong,
html body.koach-light-koach .koach-program-builder .kpb-context-card--metric .kpb-context-value { font-size: 15px !important; font-weight: 600 !important; text-align: left !important; line-height: 1.35 !important; }
html body.koach-light-koach .koach-program-builder .kpb-context-card--metric { align-items: flex-start !important; text-align: left !important; }
/* koach Check-Ins "Pain only": a clear checkbox -- off = empty box; on = red edge + tint and a white check in a red box */
html body.koach-light-koach .kdash-ci-toggle::before { content: "" !important; width: 18px !important; height: 18px !important; border-radius: 4px !important; background: #FFFFFF !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; box-sizing: border-box !important; }
html body.koach-light-koach .kdash-ci-toggle--on { background: var(--kl-sel-bg) !important; border: 2px solid var(--kl-red) !important; color: var(--kl-red-press) !important; }
html body.koach-light-koach .kdash-ci-toggle--on::before { border-color: var(--kl-red) !important; background: var(--kl-red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 14px no-repeat !important; }
html body.koach-light-koach #kdash-ci-empty { margin: var(--kl-sp-item) 0 0 !important; }
/* koach Schedule rows: dates left-aligned with the section edge; the status chip flush right */
html body.koach-light-koach #panel-schedule .kdash-sched-date-col { justify-content: flex-start !important; text-align: left !important; padding-left: 0 !important; margin-left: 0 !important; }
html body.koach-light-koach #panel-schedule .kdash-sched-status-wrap { margin-left: auto !important; padding-right: 0 !important; }
/* koach Clients: normal section spacing under the filter row */
html body.koach-light-koach .kdash-client-list > .kdash-kl-group:first-child { margin-top: var(--kl-sp-sub) !important; }
/* Phone and tablet: the page ends above the bottom bar and the feedback bubble (Documents, Program design) */
@media (max-width: 820px) {
  html body.koach-light-shell .koach-content-area { padding-bottom: calc(152px + env(safe-area-inset-bottom, 0px)) !important; }
}
/* Milestones on a phone: the "Major" tag goes under the title so the title keeps its line */
@media (max-width: 600px) {
  html body.koach-light #kmd-tab-milestones .kmd-milestone-card { grid-template-columns: 48px minmax(0, 1fr) !important; grid-template-areas: "icon label" "icon tag" "icon detail" "icon date" !important; }
  html body.koach-light #kmd-tab-milestones .kmd-milestone-card-major-tag { justify-self: start !important; }
}

/* ==========================================================================
   s.59 -- S333-B1 (C637, D662; owner "Mockup Yes" 2026-10-22 23:38 local): Alerts = ONE BLOCK PER CLIENT.
   The block is a full-width section opened by the band (R1); the client line carries the initials, the name, the
   most urgent chip (R3), the count and one View Dashboard link (N1); each alert sits under it divided by a row line,
   titled by its short label and its group icon, with its own buttons. Desktop indents the alerts under the name;
   a phone puts the count and the link on a second line so nothing orphans (N2).
   ========================================================================== */
html body.koach-light-koach .kdash-alert-card.kdash-kl-aclient {
  display: block !important; margin: 0 !important; padding: var(--kl-sec-pad) 0 !important; background: var(--kl-page) !important;
  border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
  border-top: var(--kl-band-h) solid var(--kl-band) !important;
  border-image: linear-gradient(var(--kl-band), var(--kl-band)) 1 / var(--kl-band-h) 0 0 0 / 0 100vw !important;
}
html body.koach-light-koach .kdash-alert-card.kdash-kl-aclient:last-child {
  border-bottom: var(--kl-band-h) solid var(--kl-band) !important;
  border-image: linear-gradient(var(--kl-band), var(--kl-band)) 1 / var(--kl-band-h) 0 var(--kl-band-h) 0 / 0 100vw !important;
}
html body.koach-light-koach .kdash-alert-card.kdash-kl-aclient.kdash-alert-card--hidden { display: none !important; }
html body.koach-light-koach .kdash-kl-acrow { display: flex; align-items: center; gap: 12px; min-height: var(--kl-h-row-lg); }
html body.koach-light-koach .kdash-kl-acname { font-size: 16px; font-weight: 700; color: var(--kl-ink) !important; text-decoration: none; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html body.koach-light-koach .kdash-kl-acname:hover { color: var(--kl-red) !important; }
html body.koach-light-koach .kdash-kl-acbrk { display: none; }
html body.koach-light-koach .kdash-kl-account { font-size: var(--kl-fs-small); color: var(--kl-ink2); white-space: nowrap; }
html body.koach-light-koach .kdash-kl-aclink { margin-left: auto; display: inline-flex; align-items: center; min-height: var(--kl-h-tap); color: var(--kl-red) !important; font-size: var(--kl-fs-body); font-weight: 600; text-decoration: none; white-space: nowrap; }
html body.koach-light-koach .kdash-kl-aclink:hover { color: var(--kl-red-press) !important; text-decoration: underline; }
html body.koach-light-koach .kdash-kl-aclient > .kdash-alert-card {
  display: block !important; margin: 0 !important; padding: 14px 0 14px 52px !important; background: transparent !important;
  border: 0 !important; border-top: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important;
}
html body.koach-light-koach .kdash-kl-aclient > .kdash-alert-card .kdash-alert-body { min-width: 0 !important; }
html body.koach-light-koach .kdash-kl-altitle { display: flex !important; align-items: center !important; gap: 8px !important; font-size: var(--kl-fs-body) !important; font-weight: 700 !important; color: var(--kl-ink) !important; line-height: 1.35 !important; }
html body.koach-light-koach .kdash-kl-alic { width: 18px; height: 18px; flex: 0 0 auto; display: inline-flex; }
html body.koach-light-koach .kdash-kl-alic svg { width: 18px; height: 18px; }
html body.koach-light-koach .kdash-kl-alic--attn { color: var(--kl-attn); }
html body.koach-light-koach .kdash-kl-alic--info { color: var(--kl-ink2); }
html body.koach-light-koach .kdash-kl-alic--block { color: var(--kl-ink); }
html body.koach-light-koach .kdash-kl-aclient .kdash-alert-msg { margin: 4px 0 0 !important; font-size: var(--kl-fs-small) !important; line-height: 1.5 !important; color: var(--kl-ink2) !important; max-width: 70ch; }
html body.koach-light-koach .kdash-kl-aclient .kdash-alert-actions { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; margin-top: 10px !important; }
html body.koach-light-koach .kdash-kl-aclient .kdash-alert-actions:not(:has(*)) { display: none !important; }
html body.koach-light-koach .kdash-kl-actx { margin: 0 0 var(--kl-sp-head) !important; font-size: var(--kl-fs-body); color: var(--kl-ink2); }
@media (max-width: 820px) {
  html body.koach-light-koach .kdash-kl-acrow { flex-wrap: wrap; row-gap: 2px; min-height: 0; padding-block: 10px; }
  html body.koach-light-koach .kdash-kl-acbrk { display: block; flex-basis: 100%; height: 0; }
  html body.koach-light-koach .kdash-kl-account { margin-left: 52px; }
  html body.koach-light-koach .kdash-kl-acrow:not(:has(.kdash-kl-account)) .kdash-kl-aclink { margin-left: 52px; }
  html body.koach-light-koach .kdash-kl-aclient > .kdash-alert-card { padding-left: 0 !important; }
}

/* s.59 fixes after the independent review (S333-B2): on a phone View Dashboard keeps one right edge for every
   client (N4); the client filter no longer touches the rule under the sub-tabs. */
@media (max-width: 820px) {
  html body.koach-light-koach .kdash-kl-acrow:not(:has(.kdash-kl-account)) .kdash-kl-aclink { margin-left: auto; }
}
html body.koach-light-koach .kdash-alert-toolbar .kdash-alert-filter { margin-bottom: 8px !important; align-self: center !important; }
/* The account menu items reach the 44px tap floor (they measured 43). */
html body.koach-light .kns-menu-item { min-height: var(--kl-h-tap) !important; box-sizing: border-box !important; }

/* ==========================================================================
   s.60 -- S333-B2 (C638, D662; owner "Mockup Yes" 2026-10-22 23:38 local): THE CLIENTS ROW.
   Name line (D653): initials, name, ONE chip (it links to the client's alerts), the plan word, the chevron; no email.
   Desktop: one line. Phone: the name over the chip, the plan word and chevron at the right (N2).
   Opened row: label / value rows (two columns on desktop, one on a phone) instead of the five-column table; no Flags
   column (the chip says it); each session one row (date and time, the status chip, the service and its buttons);
   the links as one grid of equal buttons. Every control, handler and data attribute is unchanged (layout only).
   ========================================================================== */
html body.koach-light-koach .kdash-client-card .kcc-email { display: none !important; }
html body.koach-light-koach .kdash-client-card .kcc-id { flex: 0 1 auto !important; }
html body.koach-light-koach .kdash-client-card .kcc-pills { flex: 1 1 auto !important; min-width: 0; }
html body.koach-light-koach .kcc-head .kcc-pills > .kcc-plan { margin-left: auto !important; }
html body.koach-light-koach .kcc-chip-link { display: inline-flex; align-items: center; text-decoration: none !important; border-radius: var(--kl-r-chip); padding: 8px 0; margin: -8px 0; } /* 44px tap area, the chip itself stays 28px */
html body.koach-light-koach .kcc-chip-link:hover .kl-status { box-shadow: inset 0 0 0 1px currentColor; }
html body.koach-light-koach .kcc-chip-link:focus-visible { outline: 2px solid var(--kl-red); outline-offset: 2px; }
@media (max-width: 820px) {
  html body.koach-light-koach .kdash-client-card > summary.kcc-head {
    display: grid !important; grid-template-columns: 40px minmax(0, 1fr) auto auto !important; column-gap: 12px !important; row-gap: 4px !important;
    flex-wrap: nowrap !important; padding: 12px 0 !important;
  }
  html body.koach-light-koach .kdash-client-card .kcc-id, html body.koach-light-koach .kdash-client-card .kcc-pills { display: contents !important; }
  html body.koach-light-koach .kcc-head .kl-initials { grid-column: 1; grid-row: 1 / span 2; align-self: center; }
  html body.koach-light-koach .kcc-head .kcc-name { grid-column: 2; grid-row: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  html body.koach-light-koach .kcc-head .kcc-chip-link, html body.koach-light-koach .kcc-head > .kcc-pills > .kl-status { grid-column: 2; grid-row: 2; justify-self: start; max-width: 100%; }
  html body.koach-light-koach .kcc-head .kcc-plan { grid-column: 3; grid-row: 1 / span 2; align-self: center; margin-left: 0 !important; }
  html body.koach-light-koach .kcc-head .kcc-chev { grid-column: 4; grid-row: 1 / span 2; align-self: center; }
  html body.koach-light-koach .kcc-head :is(.kdash-susage, .kdash-sp-chip) { grid-column: 2; justify-self: start; }
}
/* opened row: the first table becomes label / value rows */
html body.koach-light-koach .kdash-client-card .kcc-body > .kcc-table:not(.kcc-sess-table) thead { display: none !important; }
html body.koach-light-koach .kdash-client-card .kcc-body > .kcc-table:not(.kcc-sess-table),
html body.koach-light-koach .kdash-client-card .kcc-body > .kcc-table:not(.kcc-sess-table) tbody { display: block !important; width: 100% !important; }
html body.koach-light-koach .kdash-client-card .kcc-body > .kcc-table:not(.kcc-sess-table) tbody tr {
  display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; column-gap: 32px !important; border: 0 !important; margin: 0 !important; padding: 0 !important; background: transparent !important;
}
html body.koach-light-koach .kdash-client-card .kcc-body > .kcc-table:not(.kcc-sess-table) tbody td {
  display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; min-height: var(--kl-h-row) !important;
  padding: 4px 0 !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; background: transparent !important;
  font-size: var(--kl-fs-body) !important; font-weight: 600 !important; color: var(--kl-ink) !important; text-align: right !important;
}
html body.koach-light-koach .kdash-client-card .kcc-body > .kcc-table:not(.kcc-sess-table) tbody td::before {
  content: attr(data-label) !important; display: block !important; flex: 0 0 auto !important; width: auto !important; padding: 0 !important; margin: 0 !important;
  font-size: var(--kl-fs-small) !important; font-weight: 400 !important; color: var(--kl-ink2) !important; text-align: left !important; background: transparent !important; border: 0 !important;
}
html body.koach-light-koach .kdash-client-card .kcc-body > .kcc-table:not(.kcc-sess-table) tbody td[data-label="Flags"] { display: none !important; }
html body.koach-light-koach .kdash-client-card .kcc-body > .kcc-table:not(.kcc-sess-table) .kdash-assign-koach { width: auto !important; max-width: 60% !important; min-height: var(--kl-h-tap) !important; }
html body.koach-light-koach .kdash-client-card .kcc-body > .kcc-table:not(.kcc-sess-table) .kcc-ok,
html body.koach-light-koach .kdash-client-card .kcc-body > .kcc-table:not(.kcc-sess-table) .kcc-due { color: var(--kl-ink) !important; font-weight: 600 !important; }
@media (max-width: 820px) {
  html body.koach-light-koach .kdash-client-card .kcc-body > .kcc-table:not(.kcc-sess-table) tbody tr { grid-template-columns: minmax(0, 1fr) !important; }
}
/* Session History: one row per session */
html body.koach-light-koach .kdash-client-card .kcc-sess-bar { display: flex !important; align-items: baseline !important; justify-content: space-between !important; gap: 12px !important; flex-wrap: wrap !important; margin: var(--kl-sp-sub) 0 var(--kl-sp-item) !important; }
html body.koach-light-koach .kdash-client-card .kcc-sess-title { font-size: var(--kl-fs-h3) !important; white-space: nowrap !important; }
html body.koach-light-koach .kdash-client-card .kcc-sess-table thead { display: none !important; }
html body.koach-light-koach .kdash-client-card .kcc-sess-table, html body.koach-light-koach .kdash-client-card .kcc-sess-table tbody { display: block !important; width: 100% !important; border-top: 1px solid var(--kl-line-row) !important; }
html body.koach-light-koach .kdash-client-card .kcc-sess-table tbody { border-top: 0 !important; }
html body.koach-light-koach .kdash-client-card .kcc-sess-table tbody tr {
  display: flex !important; flex-wrap: wrap !important; align-items: center !important; column-gap: 14px !important; row-gap: 6px !important; min-height: var(--kl-h-row) !important;
  padding: 8px 0 !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; background: transparent !important; margin: 0 !important;
}
html body.koach-light-koach .kdash-client-card .kcc-sess-table tbody td { display: inline-flex !important; align-items: center !important; flex-wrap: wrap !important; gap: 8px !important; padding: 0 !important; border: 0 !important; background: transparent !important; font-size: var(--kl-fs-body) !important; text-align: left !important; }
html body.koach-light-koach .kdash-client-card .kcc-sess-table tbody td::before { content: none !important; display: none !important; }
html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Date"] { font-weight: 700 !important; white-space: nowrap !important; }
html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Time"] { font-weight: 700 !important; white-space: nowrap !important; margin-left: -8px !important; }
html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Time"]::before { content: "\00b7" !important; display: inline !important; font-weight: 700 !important; color: var(--kl-ink) !important; margin-right: 6px !important; }
html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Status"] { flex: 1 1 auto !important; color: var(--kl-ink2) !important; min-width: 0 !important; }
html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Status"] .kdash-noshow-btn,
html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Status"] .kdash-resched-btn:not(.kdash-noshow-btn ~ .kdash-resched-btn),
html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Status"] .kdash-waive-btn:first-of-type { margin-left: auto !important; }
html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Status"] .kdash-waive-btn { margin: 0 !important; min-height: var(--kl-h-tap) !important; }
html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Session count"] { font-size: var(--kl-fs-small) !important; color: var(--kl-ink2) !important; white-space: nowrap !important; }
/* the session status as a chip (R3: a word + an icon) */
html body.koach-light-koach .kdash-client-card .kdash-sess-pill {
  display: inline-flex !important; align-items: center !important; gap: 6px !important; height: var(--kl-h-chip) !important; padding: 0 10px !important; border-radius: var(--kl-r-chip) !important;
  font-size: var(--kl-fs-chip) !important; font-weight: 600 !important; line-height: 1 !important; white-space: nowrap !important; border: 0 !important;
  background: var(--kl-st-neutral-bg) !important; color: var(--kl-st-neutral-tx) !important;
}
html body.koach-light-koach .kdash-client-card .kdash-sess-pill::before {
  content: "" !important; display: inline-block !important; width: 14px !important; height: 14px !important; border-radius: 0 !important; background: currentColor !important;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center / contain no-repeat;
}
html body.koach-light-koach .kdash-client-card :is(.kdash-sess-pill--used, .kdash-sess-pill--forfeit) { background: var(--kl-st-attn-bg) !important; color: var(--kl-st-attn-tx) !important; }
html body.koach-light-koach .kdash-client-card :is(.kdash-sess-pill--booked, .kdash-sess-pill--restored) { background: var(--kl-st-ok-bg) !important; color: var(--kl-st-ok-tx) !important; }
html body.koach-light-koach .kdash-client-card :is(.kdash-sess-pill--booked, .kdash-sess-pill--restored)::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E");
}
@media (min-width: 821px) {
  html body.koach-light-koach .kdash-client-card .kcc-sess-table tbody tr { flex-wrap: nowrap !important; }
}
@media (max-width: 820px) {
  html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Status"] { flex-basis: 100% !important; }
  html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Status"] :is(.kdash-noshow-btn, .kdash-resched-btn, .kdash-waive-btn) { margin-left: 0 !important; }
}
/* the six links: one grid of equal buttons */
html body.koach-light-koach .kdash-client-card .kcc-actions {
  display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; margin-top: var(--kl-sp-head) !important; align-items: stretch !important;
}
html body.koach-light-koach .kdash-client-card .kcc-actions .kcc-btn { width: 100% !important; border-radius: var(--kl-r-btn) !important; }
@media (max-width: 820px) {
  html body.koach-light-koach .kdash-client-card .kcc-actions { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
/* S333-B2 look fixes (shots 390 / 1440): an older phone rule made each cell label absolute -- labels sit in the row;
   the time sits right after the date; the assign menu keeps the right edge; the buttons use the full width. */
html body.koach-light-koach .kdash-client-card .kcc-body .kcc-table tbody td::before { position: static !important; transform: none !important; }
html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Time"] { gap: 4px !important; margin-left: -10px !important; }
html body.koach-light-koach .kdash-client-card .kcc-body .kdash-assign-status:empty { display: none !important; }
html body.koach-light-koach .kdash-client-card .kcc-foot { display: block !important; width: 100% !important; padding: 0 !important; margin-left: 0 !important; }
html body.koach-light-koach .kdash-client-card .kcc-foot .kcc-actions { width: 100% !important; }
html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Time"] { flex-wrap: nowrap !important; margin-left: -8px !important; }
html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Time"]::before { margin-right: 2px !important; width: auto !important; min-width: 0 !important; flex: 0 0 auto !important; padding: 0 !important; }
@media (max-width: 820px) {
  html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Date"] { order: 0; }
  html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Time"] { order: 1; }
  html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Session count"] { order: 2; margin-left: auto !important; }
  html body.koach-light-koach .kdash-client-card .kcc-sess-table td[data-label="Status"] { order: 3; }
}
/* Semi-Private pairing and the clearance note sit as rows like the others */
html body.koach-light-koach .kdash-client-card .kcc-sp-ctl { display: flex !important; flex-wrap: wrap !important; align-items: center !important; gap: 8px 12px !important; min-height: var(--kl-h-row) !important; border-bottom: 1px solid var(--kl-line-row) !important; padding: 4px 0 !important; }
html body.koach-light-koach .kdash-client-card .kcc-clr-note { margin: 0 !important; padding: 12px 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; font-size: var(--kl-fs-small) !important; color: var(--kl-ink2) !important; }

/* ==========================================================================
   s.61 Plan summary (S333-B4, C639 + C636): one primary action, the status shown once, the limitations at the
   top (printed there by koach-plan-summary.php through koach-limitations.php), the mesocycles as the phone rows
   at every width (D653, N5), FITT without boxes, no orphan label wraps (N2). Sizes stay at D641's 13px floor.
   ========================================================================== */
/* status shown once: the toggle carries it, so the header card and the Plan Parameters row go */
html body.koach-light-koach .koach-plan-summary .kpb-context-card:has(> .kps-plan-status),
html body.koach-light-koach .koach-plan-summary .kps-kvrow:has(.kps-plan-status) { display: none !important; }
/* the limitations block: full width, plain rows in the header, like the Program Builder */
html body.koach-light-koach .koach-plan-summary .kpb-context-card--wide { grid-column: 1 / -1 !important; }
/* with the Status card gone the facts pair evenly on a phone (Goal no longer spans), and on wider screens they sit
   at their own width so "Aug 2, 2026 - Oct 24, 2026" keeps one line (N2) */
html body.koach-light-koach .koach-plan-summary .kps-nw { white-space: nowrap !important; }
@media (max-width: 599px) {
  html body.koach-light-koach .koach-plan-summary .kpb-context-cards > .kpb-context-card:first-child:not(.kpb-context-card--warning) { grid-column: auto !important; }
}
@media (min-width: 600px) {
  html body.koach-light-koach .koach-plan-summary .kpb-context-cards { display: flex !important; flex-wrap: wrap !important; gap: 0 32px !important; }
  html body.koach-light-koach .koach-plan-summary .kpb-context-cards > .kpb-context-card { flex: 0 1 auto !important; }
  html body.koach-light-koach .koach-plan-summary .kpb-context-cards > .kpb-context-card strong { white-space: nowrap !important; }
  html body.koach-light-koach .koach-plan-summary .kpb-context-cards > .kpb-context-card--wide { flex: 1 1 100% !important; }
}
html body.koach-light-koach .koach-plan-summary .kpb-context-card--warning { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; padding: 16px 0 !important; margin: 0 !important; }
html body.koach-light-koach .koach-plan-summary .kpb-limrow { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 8px 12px !important; flex-wrap: wrap !important; min-height: var(--kl-h-tap) !important; padding: 4px 0 !important; }
html body.koach-light-koach .koach-plan-summary .kpb-limmain { flex: 1 1 auto !important; min-width: 0 !important; }
html body.koach-light-koach .koach-plan-summary .kpb-limname { font-size: 15px !important; font-weight: 600 !important; color: var(--kl-ink) !important; }
html body.koach-light-koach .koach-plan-summary .kpb-limprose > summary { min-height: var(--kl-h-tap) !important; display: flex !important; align-items: center !important; cursor: pointer; color: var(--kl-ink) !important; font-weight: 600 !important; }
/* desktop mirrors phone: the meso rows at every width, the 9-column table goes */
html body.koach-light-koach .koach-plan-summary .kps-fp-wrap { display: none !important; }
html body.koach-light-koach .koach-plan-summary .kps-meso-cards { display: flex !important; flex-direction: column !important; gap: 0 !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; overflow: visible !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc:first-child { border-top: 0 !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc > summary { display: flex !important; flex-wrap: wrap !important; align-items: center !important; position: relative; gap: 4px 0 !important; padding: 14px 32px 14px 0 !important; min-height: var(--kl-h-tap); background: transparent !important; list-style: none !important; cursor: pointer; }
html body.koach-light-koach .koach-plan-summary .kps-mc > summary::-webkit-details-marker { display: none; }
html body.koach-light-koach .koach-plan-summary .kps-mc .kpb-phase-pill,
html body.koach-light-koach .koach-plan-summary .kps-mc .kps-status-pill { display: inline-flex !important; align-items: center !important; gap: 6px !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; margin: 0 12px 0 0 !important; height: auto !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; box-shadow: none !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc .kpb-phase-pill::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: currentColor; flex: 0 0 auto; }
html body.koach-light-koach .koach-plan-summary .kps-mc .kpb-phase-foundations { color: var(--kl-phase-tx) !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc .kpb-phase-evolution { color: #0B5F66 !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc .kps-status-pill { color: var(--kl-ink2) !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc .kps-status-pill::before { display: none !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc .kps-status-pill--done { color: var(--kl-ok) !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc .kps-status-pill--inprogress { color: var(--kl-ink) !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc .chev { position: absolute !important; right: 0; top: 50%; transform: translateY(-50%); margin: 0 !important; color: var(--kl-ink2) !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc[open] .chev { transform: translateY(-50%) rotate(90deg); }
html body.koach-light-koach .koach-plan-summary .kps-mc-name, html body.koach-light-koach .koach-plan-summary .kps-mc-wk { flex: 1 1 100% !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc-name { margin-top: 4px !important; font-weight: 700 !important; color: var(--kl-ink) !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc-wk, html body.koach-light-koach .koach-plan-summary .kps-mc-wk .dl { color: var(--kl-ink2) !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc-sec { background: transparent !important; border: 0 !important; padding: 0 0 12px !important; margin: 0 !important; line-height: 1.5 !important; color: var(--kl-ink2) !important; font-style: normal !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc .lbl { display: block !important; font-weight: 400 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; margin-bottom: 2px; }
html body.koach-light-koach .koach-plan-summary .kps-mc .val { font-weight: 600 !important; color: var(--kl-ink) !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc .val .sub { display: block; font-weight: 400 !important; color: var(--kl-ink2) !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc-2, html body.koach-light-koach .koach-plan-summary .kps-mc-fitt { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 0 24px !important; max-width: 640px; }
html body.koach-light-koach .koach-plan-summary .kps-mc-desc, html body.koach-light-koach .koach-plan-summary .kps-mc-life, html body.koach-light-koach .koach-plan-summary .kps-mc-res { max-width: 640px; }
/* FITT: plain rows, no boxes */
html body.koach-light-koach .koach-plan-summary .kps-fitt-mini { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; overflow: visible !important; }
html body.koach-light-koach .koach-plan-summary .kps-fitt-mini .h { font-weight: 700 !important; color: var(--kl-ink) !important; text-transform: none !important; letter-spacing: 0 !important; background: transparent !important; border: 0 !important; padding: 4px 0 6px !important; }
html body.koach-light-koach .koach-plan-summary .kps-fitt-mini .r { display: flex !important; justify-content: space-between !important; padding: 6px 0 !important; border: 0 !important; border-top: 1px solid var(--kl-line-row) !important; background: transparent !important; }
html body.koach-light-koach .koach-plan-summary .kps-fitt-mini .fk { font-weight: 400 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
html body.koach-light-koach .koach-plan-summary .kps-fitt-mini .fv { font-weight: 600 !important; color: var(--kl-ink) !important; }
/* one primary action (the header Program Builder): the row's Build is secondary, like the table's was */
html body.koach-light-koach .koach-plan-summary .kps-mc-cta { padding: 0 0 16px !important; border: 0 !important; background: transparent !important; }
html body.koach-light-koach .koach-plan-summary .kps-mc-cta a, html body.koach-light-koach .koach-plan-summary .kps-mc-cta a.build { display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; min-height: var(--kl-h-tap) !important; padding: 0 16px !important; border-radius: 14px !important; background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; color: #21252E !important; box-shadow: none !important; font-weight: 600 !important; text-decoration: none !important; }
/* N2: labels keep one line; on a phone the section meta goes under its title */
html body.koach-light-koach .koach-plan-summary .kps-kvrow .k { white-space: nowrap !important; flex: 0 0 auto !important; }
html body.koach-light-koach .koach-plan-summary .kps-kvrow .v { min-width: 0 !important; }
/* C636 My Plan (client): the same rows at every width; the desktop table goes (the rows are already styled above, s.My Plan) */
html body.koach-light #kmd-tab-programs .kpp-mp-tscroll { display: none !important; }
html body.koach-light #kmd-tab-programs .kps-meso-cards { display: flex !important; flex-direction: column !important; gap: 0 !important; }
html body.koach-light #kmd-tab-programs .kps-mc-2, html body.koach-light #kmd-tab-programs .kps-mc-fitt, html body.koach-light #kmd-tab-programs .kps-mc-desc, html body.koach-light #kmd-tab-programs .kps-mc-life, html body.koach-light #kmd-tab-programs .kps-mc-res { max-width: 640px; }
/* C636 Program Card: the set rows at every width; the 9-column table goes. SAVE-SAFE ONLY WITH koach-program-card.php
   S333-B4, whose activeLayoutSel() reads the computed display of .kpc-wide (carry that file BEFORE this one). */
html body.koach-light .koach-program-card.kpc-light .kpc-wide { display: none !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-stack { display: block !important; max-width: 640px; }
/* C634 the demo / brief modal (dark by design): the s.57 R2 edge lost to the older s.45.8 rule (higher specificity), so
   Hear Brief and Fullscreen still drew 1px at 35% white; the brief read at 12.5px and the Muscles line at 11px */
html body.koach-light .kpc-video-modal :is(.kpc-tts-play-btn, .kpc-video-fullscreen-btn, .kpc-video-modal-close-bottom) { border: var(--kl-w-ctrl) solid rgba(255,255,255,.72) !important; }
html body.koach-light .kpc-video-modal .kpc-brief-panel { background: #17191E !important; }   /* solid: the 7% white let the page show through the 97% backdrop */
html body.koach-light .kpc-video-modal .kpc-video-modal-video { max-width: 100% !important; }   /* reviewer: min(94vw,1100px) overflowed the 1037px modal and clipped the right edge at 1440 */
html body.koach-light .kpc-video-modal .kpc-brief-text { font-size: 15px !important; line-height: 1.6 !important; color: rgba(255,255,255,.92) !important; }
html body.koach-light .kpc-video-modal :is(.kpc-brief-muscles, .kpc-brief-muscles-label, .kpc-brief-cues-label) { font-size: 13px !important; color: rgba(255,255,255,.72) !important; }
@media (max-width: 599px) {
  html body.koach-light-koach .koach-plan-summary .kps-section-title { flex-wrap: wrap !important; row-gap: 4px !important; }
  html body.koach-light-koach .koach-plan-summary .kps-section-title h3 { flex: 1 1 100% !important; }
}

/* s.61 review fixes (independent reviewer, S333-B4): the selected status = red edge + tint (R2, like the Units switch);
   key / value rows on the section edges; no gap above a card's first sub-heading; the header facts carry no ragged
   per-fact underline on wider screens */
html body.koach-light-koach .koach-plan-summary .kps-status-btn--current { background: var(--kl-sel-bg) !important; color: var(--kl-red-press) !important; }
html body.koach-light-koach .koach-plan-summary .kps-kvrow { padding-left: 0 !important; padding-right: 0 !important; }
html body.koach-light-koach .koach-plan-summary .kps-profile-grid { column-gap: 48px !important; }
html body.koach-light-koach .koach-plan-summary .kps-card-body > .kps-subhead:first-child { margin-top: 0 !important; padding-top: 0 !important; }
@media (min-width: 600px) {
  html body.koach-light-koach .koach-plan-summary .kpb-context-cards > .kpb-context-card:not(.kpb-context-card--warning) { border-bottom: 0 !important; }
}
/* ==========================================================================
   s.62 Client content fixes (S333-B4, C640): Journal values as plain text, Progress assessment rows on the page edge,
   Account status shown once as an R3 chip.
   ========================================================================== */
/* Journal: what was logged reads as plain text ("200 lbs . Energy 7/10 . Sleep 7 h"), not as pills */
html body.koach-light .kl .klj-chips { gap: 0 !important; }
html body.koach-light .kl .klj-chip { background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; font-size: 15px !important; color: var(--kl-ink2) !important; }
html body.koach-light .kl .klj-chip + .klj-chip::before { content: "\00b7"; margin: 0 8px; color: var(--kl-quiet); }
/* Progress > Assessment History: rows start and end on the page edge like every other list; Type and Level are values */
html body.koach-light #kmd-tab-progress .kmd-assessment-table { width: 100% !important; margin: 0 !important; }
html body.koach-light #kmd-tab-progress .kmd-assessment-table :is(th, td):first-child { padding-left: 0 !important; }
html body.koach-light #kmd-tab-progress .kmd-assessment-table :is(th, td):last-child { padding-right: 0 !important; text-align: right !important; }
html body.koach-light #kmd-tab-progress :is(.kmd-atype-badge, .kmd-level-pill) { background: transparent !important; border: 0 !important; padding: 0 !important; color: var(--kl-ink) !important; font-size: 15px !important; font-weight: 400 !important; }
@media (max-width: 820px) {
  html body.koach-light #kmd-tab-progress .kmd-assessment-table td { padding-left: 0 !important; padding-right: 0 !important; }
  html body.koach-light #kmd-tab-progress .kmd-assessment-table .kmd-expand-btn { margin-left: 0 !important; padding-left: 0 !important; }
}
/* Account: the status shows once (the Status row), as the R3 word + icon chip */
html body.koach-light .kac-header-badge { display: none !important; }
html body.koach-light .kac-pt .kac-status-pill { display: inline-flex !important; align-items: center !important; gap: 6px !important; height: var(--kl-h-chip) !important; padding: 0 10px !important; border-radius: var(--kl-r-chip) !important; font-size: var(--kl-fs-chip) !important; font-weight: 600 !important; line-height: 1 !important; background: var(--kl-st-neutral-bg) !important; color: var(--kl-st-neutral-tx) !important; }
html body.koach-light .kac-pt .kac-status-pill.kac-status-active { background: var(--kl-st-ok-bg) !important; color: var(--kl-st-ok-tx) !important; }
html body.koach-light .kac-pt .kac-status-pill.kac-status-active::before {
  content: "" !important; display: inline-block !important; width: 14px !important; height: 14px !important; border-radius: 0 !important; margin: 0 !important; background: currentColor !important;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ==========================================================================
   s.63 The client intake, koach view (S333-B4, C642): key / value rows on the page edge (the labels sat 16px in),
   label and value on one top line, the label column narrower on a phone so short labels keep one line (N2).
   ========================================================================== */
html body.koach-light-koach.koach-app-client-intake .koach-intake-frontend table.form-table { width: 100% !important; margin: 0 !important; border-collapse: collapse !important; }
html body.koach-light-koach.koach-app-client-intake .koach-intake-frontend table.form-table th { padding: 12px 16px 12px 0 !important; vertical-align: baseline !important; line-height: 1.45 !important; }
html body.koach-light-koach.koach-app-client-intake .koach-intake-frontend table.form-table td { padding: 12px 0 !important; vertical-align: baseline !important; line-height: 1.45 !important; }
@media (max-width: 599px) {
  html body.koach-light-koach.koach-app-client-intake .koach-intake-frontend table.form-table th { width: 44% !important; }
}

/* ==========================================================================
   s.64 Amelia on the client pages (S333-B4, C635; DOM read live as the demo client 2026-10-23 11:2x UTC in the
   browser pane, /book-checkin/ + /my-schedule/): R2 edges on the selects and the date range (Amelia draws a 1px
   #E7E9EE inset shadow), 44px taps (selects 32-36px, month arrows / filter / menu 32-38px, the calendar days 34x26,
   the appointment row 39px), the date range on one line on a phone (as the koach calendar, 37.11), and the day
   frame edge at the R2 width. The container stays the ruled 1px line + 12px radius (S330 walk 19).
   ========================================================================== */
html body.koach-light .amelia-v2-booking :is(.el-select__wrapper, .el-input__wrapper, .el-date-editor.el-input__wrapper, .el-date-editor--daterange) { box-shadow: inset 0 0 0 var(--kl-w-ctrl) var(--kl-line-ctrl) !important; min-height: var(--kl-h-tap) !important; }
html body.koach-light .amelia-v2-booking :is(.el-select__wrapper.is-focused, .el-input__wrapper.is-focus, .el-date-editor.is-active) { box-shadow: inset 0 0 0 2px var(--kl-red) !important; }
html body.koach-light .amelia-v2-booking .am-button:not(.am-button--filled):not([style*="display: none"]),
html body.koach-light .amelia-v2-booking .am-caph__menu { min-width: var(--kl-h-tap) !important; min-height: var(--kl-h-tap) !important; }
html body.koach-light .amelia-v2-booking .am-caph__menu { display: inline-flex !important; align-items: center !important; justify-content: center !important; }
html body.koach-light .amelia-v2-booking .am-collapse-item__trigger { min-height: var(--kl-h-tap) !important; }
html body.koach-light .amelia-v2-booking .am-capf__menu-btn { min-width: var(--kl-h-tap) !important; min-height: var(--kl-h-tap) !important; box-shadow: none !important; }
/* appointment status chips: R3 -- never red; cancelled / rejected neutral, pending / no-show attention, approved ok */
html body.koach-light .amelia-v2-booking .am-cc__status { background: var(--kl-st-neutral-bg) !important; color: var(--kl-st-neutral-tx) !important; }
html body.koach-light .amelia-v2-booking .am-cc__status::before { background: currentColor !important; }
html body.koach-light .amelia-v2-booking :is(.am-cc__status-pending, .am-cc__status-no-show) { background: var(--kl-st-attn-bg) !important; color: var(--kl-st-attn-tx) !important; }
html body.koach-light .amelia-v2-booking .am-cc__status-approved { background: var(--kl-st-ok-bg) !important; color: var(--kl-st-ok-tx) !important; }
@media (max-width: 599px) {
  html body.koach-light .amelia-v2-booking .el-range-input { font-size: 13px !important; white-space: nowrap !important; }
}

/* ==========================================================================
   s.65 My Documents in sections (S333-B5, C640, owner YES 07:33): Health screening (status + its uploads), then
   Signed documents in its own band; the Upload button sits right after Choose File (full width on a phone, unchanged).
   ========================================================================== */
html body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-signed {
  border-top: var(--kl-band-h) solid var(--kl-band) !important; border-image: linear-gradient(var(--kl-band), var(--kl-band)) 1 / var(--kl-band-h) 0 0 0 / 0 100vw !important;
  padding-top: var(--kl-sec-pad) !important; margin-top: var(--kl-sec-pad) !important;
}
html body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-signed:not(:has(.kmydocs-item)) { display: none !important; }
html body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-signed .kmydocs-screen-t { margin-bottom: var(--kl-sp-head) !important; }
html body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-list--uploads { margin-top: 8px !important; }
@media (min-width: 721px) {
  html body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-up-row { justify-content: flex-start !important; }
  html body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-up-btn { margin-left: 0 !important; }
  html body.koach-light.koach-app-page .kmydocs-wrap .kmydocs-up-row input[type="file"] { flex: 0 1 auto !important; width: auto !important; max-width: 420px !important; }
}

/* ==========================================================================
   s.66 Intake > Assessment History, koach view (S333-B5, C642 + reviewer item 20): one assessment = one row at every
   width (N5 -- the desktop 12-column table goes): the date line, then label / value pairs (two columns on wide
   screens, one on a phone); no card, no grey header strip, labels 13px sentence case; level as a value (R3).
   The phone accordion (kci-row-open, JS <=820px) is kept; on desktop every row is open.
   ========================================================================== */
html body.koach-light-koach .kci-ah { padding: 0 !important; margin-left: 0 !important; margin-right: 0 !important; }
html body.koach-light-koach .kci-ah .kci-sec { padding-left: 0 !important; padding-right: 0 !important; }
html body.koach-light-koach .kci-ah .wp-list-table { display: block !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: transparent !important; margin: 0 !important; width: 100% !important; overflow: visible !important; }
html body.koach-light-koach .kci-ah .wp-list-table thead { display: none !important; }
html body.koach-light-koach .kci-ah .wp-list-table tbody { display: block !important; }
html body.koach-light-koach .kci-ah .wp-list-table tbody tr { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; column-gap: 48px !important; position: relative !important; background: transparent !important; border: 0 !important; border-bottom: 0 !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 0 16px !important; padding: 0 !important; overflow: visible !important; }
html body.koach-light-koach .kci-ah .wp-list-table tbody tr td { display: flex !important; justify-content: space-between !important; align-items: baseline !important; gap: 12px !important; background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-right: 0 !important; padding: 10px 0 !important; font-size: 15px !important; color: var(--kl-ink) !important; text-align: right !important; }
html body.koach-light-koach .kci-ah .wp-list-table tbody tr td::before { content: attr(data-label) !important; display: block !important; position: static !important; font-size: 13px !important; font-weight: 600 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; text-align: left !important; }
html body.koach-light-koach .kci-ah .wp-list-table tbody tr td:first-child { grid-column: 1 / -1 !important; border-bottom: 0 !important; padding: 14px 0 6px !important; font-weight: 700 !important; font-size: 16px !important; justify-content: flex-start !important; text-align: left !important; cursor: default; }
html body.koach-light-koach .kci-ah .wp-list-table tbody tr td:first-child::before { display: none !important; }
html body.koach-light-koach .kci-ah .kci-lvl-pill { background: transparent !important; border: 0 !important; padding: 0 !important; font-size: 15px !important; font-weight: 400 !important; color: var(--kl-ink) !important; text-transform: none !important; letter-spacing: 0 !important; }
html body.koach-light-koach .kci-ah .kci-hd-sum .kci-lvl-pill { color: var(--kl-ink2) !important; font-weight: 400 !important; }
html body.koach-light-koach .kci-ah .kci-hd-sum::before { content: "\00b7"; margin: 0 8px 0 4px; color: var(--kl-quiet); }
html body.koach-light-koach .kci-ah .kci-hd-sum { margin-left: 0 !important; }
@media (max-width: 820px) {
  html body.koach-light-koach .kci-ah .wp-list-table tbody tr { grid-template-columns: minmax(0, 1fr) !important; }
  html body.koach-light-koach .kci-ah .wp-list-table tbody tr td:first-child { cursor: pointer; padding-right: 32px !important; min-height: var(--kl-h-tap) !important; align-items: center !important; }
  html body.koach-light-koach .kci-ah .wp-list-table tbody tr td:first-child::after { right: 4px !important; }
}

/* ==========================================================================
   s.67 (S333-B7) The koach-side surfaces the S333 full audit found still on the old look:
   koach My Account (Profile hints, Certification, Revenue), Program Reviews (list + one client),
   the waiver fields, the form date buttons, the Clients prep chip, the plan builder flag rows and
   change labels, the periodized-plan status pills and FITT values (D641 13px), the legal table
   headers, and the last 12px labels. Same rules as the client pages: R1 white page / no boxed cards,
   R2 1.5px #858E9E control edge, R3 red = actions only and a status = word + icon chip, 13px floor.
   ========================================================================== */

/* -- koach My Account: header stats duplicate Platform Status (and were white on white) -- */
html body.koach-light .kac-header-stats { display: none !important; }
/* field hints and notes: 13-14px, ink2 (were 11px at 3.2:1) */
html body.koach-light .kac-pt-hint { font-size: 13px !important; line-height: 1.4 !important; color: var(--kl-ink2) !important; margin-top: 6px !important; }
html body.koach-light .kac-note { font-size: 14px !important; line-height: 1.5 !important; color: var(--kl-ink2) !important; margin: 16px 0 0 !important; }
html body.koach-light :is(.kac-note, .kac-cert-notice) a { color: var(--kl-ink) !important; font-weight: 600 !important; text-decoration: underline !important; }
/* every field on the account page: the R2 edge */
html body.koach-light .kac-pt td.val input, html body.koach-light .kac-pt td.val select { border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; }
html body.koach-light .kac-pt td.val textarea { display: block; width: 100% !important; box-sizing: border-box !important; min-height: 120px; padding: 12px 14px !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-field) !important; background: #FFFFFF !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 16px !important; line-height: 1.5 !important; box-shadow: none !important; }

/* -- Certification: the status as an R3 chip, the "not on file" notice as an inset note -- */
html body.koach-light .kac-cert-badge { display: inline-flex !important; align-items: center !important; gap: 6px !important; height: var(--kl-h-chip) !important; padding: 0 10px !important; border-radius: var(--kl-r-chip) !important; font-family: var(--kl-font) !important; font-size: var(--kl-fs-chip) !important; font-weight: 600 !important; line-height: 1 !important; text-transform: none !important; letter-spacing: 0 !important; background: var(--kl-st-neutral-bg) !important; color: var(--kl-st-neutral-tx) !important; border: 0 !important; }
html body.koach-light .kac-cert-badge::before { content: "" !important; display: inline-block !important; width: 14px !important; height: 14px !important; border-radius: 0 !important; background: currentColor !important; flex: 0 0 auto;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5h.01'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5h.01'/%3E%3C/svg%3E") center / contain no-repeat; }
html body.koach-light .kac-cert-badge--none, html body.koach-light .kac-cert-badge--warning { background: var(--kl-st-attn-bg) !important; color: var(--kl-st-attn-tx) !important; }
html body.koach-light .kac-cert-badge--expired { background: var(--kl-st-block-bg) !important; color: var(--kl-st-block-tx) !important; }
html body.koach-light .kac-cert-badge--active { background: var(--kl-st-ok-bg) !important; color: var(--kl-st-ok-tx) !important; }
html body.koach-light .kac-cert-badge--active::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / contain no-repeat; }
html body.koach-light .kac-rvsec:has(.kac-cert-badge) { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; }
html body.koach-light .kac-cert-item-value--muted { font-size: inherit !important; font-weight: 400 !important; color: var(--kl-ink2) !important; }
html body.koach-light .kac-cert-notice { background: var(--kl-soft) !important; border: 0 !important; border-radius: var(--kl-r-field) !important; padding: 12px 14px !important; margin: 16px 0 0 !important; font-size: var(--kl-fs-small) !important; line-height: 1.5 !important; color: var(--kl-ink2) !important; max-width: 640px; }

/* -- Revenue / Platform Status figures: the kl-stats row (numbers split by thin lines, no boxes) -- */
html body.koach-light .kac-rvtiles { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important; gap: 0 !important; margin: 8px 0 0 !important; }
html body.koach-light .kac-rvtile, html body.koach-light .kac-rvtile--net { background: transparent !important; border: 0 !important; border-left: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; padding: 4px 24px !important; text-align: left !important; min-width: 0 !important; }
html body.koach-light .kac-rvtile:first-child { border-left: 0 !important; padding-left: 0 !important; }
html body.koach-light .kac-rvtile-v { font-family: var(--kl-font) !important; font-size: 28px !important; font-weight: 700 !important; line-height: 1 !important; color: var(--kl-ink) !important; margin: 0 !important; }
html body.koach-light .kac-rvtile-l { display: block !important; margin-top: 6px !important; font-size: var(--kl-fs-small) !important; font-weight: 400 !important; line-height: 1.3 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
html body.koach-light .kac-rvsec-meta { font-size: var(--kl-fs-small) !important; font-weight: 400 !important; color: var(--kl-ink2) !important; white-space: nowrap; }
html body.koach-light .kac-rvsec:has(.kac-rvsec-meta), html body.koach-light .kac-rvsec:has(.kac-rvexp) { display: flex !important; align-items: center !important; justify-content: space-between !important; gap: 12px !important; }
/* Export: a secondary button */
html body.koach-light .kac-rvexp { display: inline-flex !important; align-items: center !important; height: auto !important; min-height: var(--kl-h-tap) !important; margin: 0 !important; padding: 0 16px !important; background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-btn) !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 15px !important; font-weight: 600 !important; white-space: nowrap !important; }
/* the tables sit on the page (no box) */
html body.koach-light .kac-txnwrap { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; overflow: visible !important; margin: 0 !important; }
/* filter: labelled fields on the page, Apply a secondary button */
html body.koach-light .kac-rvfilter { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; overflow: visible !important; margin: 0 0 16px !important; }
html body.koach-light .kac-kex-head { display: none !important; }
html body.koach-light .kac-kex-body { display: grid !important; grid-template-columns: 1.2fr 1fr 1fr 1.2fr auto !important; gap: 12px !important; align-items: end !important; padding: 4px 0 0 !important; background: transparent !important; }
html body.koach-light .kac-kex-cell, html body.koach-light .kac-kex-cell:nth-child(even) { display: flex !important; flex-direction: column !important; gap: 6px !important; background: transparent !important; border: 0 !important; min-width: 0; }
html body.koach-light .kac-kex-clbl, html body.koach-light .kac-kex-cell:nth-child(even) .kac-kex-clbl { display: block !important; background: transparent !important; border: 0 !important; padding: 0 !important; font-family: var(--kl-font) !important; font-size: 14px !important; font-weight: 600 !important; color: var(--kl-ink) !important; text-transform: none !important; letter-spacing: 0 !important; }
html body.koach-light .kac-kex-ctrl { height: var(--kl-h-secondary) !important; width: 100% !important; box-sizing: border-box !important; padding: 0 12px !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-field) !important; background-color: #FFFFFF !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 16px !important; font-weight: 400 !important; }
html body.koach-light .kac-kex-run { display: inline-flex !important; align-items: center !important; justify-content: center !important; width: auto !important; margin: 0 !important; height: var(--kl-h-secondary) !important; padding: 0 20px !important; background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-btn) !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 15px !important; font-weight: 600 !important; }
@media (max-width: 820px) {
  html body.koach-light .kac-kex-body { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; }
  html body.koach-light .kac-kex-cell:first-child, html body.koach-light .kac-kex-cell:nth-child(4) { grid-column: 1 / -1; }
  html body.koach-light .kac-kex-run { grid-column: 1 / -1; width: 100% !important; }
  html body.koach-light .kac-rvtiles { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; row-gap: 20px !important; }
  html body.koach-light .kac-rvtile { padding: 4px 12px !important; }
  html body.koach-light .kac-rvtile:nth-child(odd) { border-left: 0 !important; padding-left: 0 !important; }
  html body.koach-light .kac-rvtile-v { font-size: 24px !important; }
}
/* transactions on a phone: plain rows that open, no grey strips */
html body.koach-light .kac-ktm-head { background: transparent !important; border: 0 !important; padding: 14px 0 !important; min-height: var(--kl-h-row) !important; }
html body.koach-light .kac-ktm-date, html body.koach-light .kac-ktm-peek { font-size: 16px !important; font-weight: 600 !important; color: var(--kl-ink) !important; }
html body.koach-light .kac-ktm-peek.net, html body.koach-light .kac-ktm-peek.pos { color: var(--kl-ok) !important; }
html body.koach-light .kac-ktm-sub { font-size: var(--kl-fs-small) !important; font-weight: 400 !important; color: var(--kl-ink2) !important; margin-top: 4px !important; }
html body.koach-light .kac-ktm-chev { font-size: 14px !important; color: var(--kl-ink2) !important; }
html body.koach-light .kac-ktm-body { padding: 0 0 12px !important; }
html body.koach-light .kac-kt .net, html body.koach-light .kac-ktm-row .v.net { color: var(--kl-ok) !important; }

/* -- Program Reviews (/account/?koach_pr_client=): one page title, rows on the page, R2 / R3 actions -- */
html body.koach-light h1.kl-acct-title:has(~ .kpr-wrap) { display: none !important; }
html body.koach-light .kpr-wrap { max-width: 720px !important; margin: 0 !important; padding: 0 0 56px !important; font-family: var(--kl-font) !important; color: var(--kl-ink) !important; }
html body.koach-light .kpr-wrap h1.kpr-h { font-family: var(--kl-title-font) !important; font-size: var(--kl-fs-title) !important; font-weight: 400 !important; line-height: 1 !important; color: var(--kl-ink) !important; margin: 0 0 8px !important; }
html body.koach-light .kpr-wrap p.kpr-sub { font-size: var(--kl-fs-body) !important; line-height: 1.5 !important; color: var(--kl-ink2) !important; margin: 0 0 16px !important; }
html body.koach-light .kpr-wrap > a:first-child { display: inline-flex !important; align-items: center !important; min-height: var(--kl-h-tap) !important; color: var(--kl-ink2) !important; font-size: 15px !important; font-weight: 600 !important; }
html body.koach-light .kpr-wrap .kpr-card { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; }
html body.koach-light .kpr-wrap .kpr-card + .kpr-card { border-top: var(--kl-band-h) solid var(--kl-band) !important; border-image: linear-gradient(var(--kl-band), var(--kl-band)) 1 / var(--kl-band-h) 0 0 0 / 0 100vw !important; padding-top: var(--kl-sec-pad) !important; margin-top: var(--kl-sec-pad) !important; }
html body.koach-light .kpr-wrap .kpr-card h2 { font-family: var(--kl-font) !important; font-size: var(--kl-fs-h2) !important; font-weight: 700 !important; line-height: 1.3 !important; color: var(--kl-ink) !important; text-transform: none !important; letter-spacing: 0 !important; margin: 0 0 8px !important; }
html body.koach-light .kpr-wrap .kpr-card p { font-size: var(--kl-fs-body) !important; color: var(--kl-ink2) !important; margin: 0 0 16px !important; }
html body.koach-light .kpr-wrap .kpr-card.msg { background: var(--kl-st-ok-bg) !important; border-radius: var(--kl-r-field) !important; padding: 12px 14px !important; margin: 0 0 16px !important; }
html body.koach-light .kpr-wrap .kpr-card.msg p { color: var(--kl-st-ok-tx) !important; margin: 0 !important; font-weight: 600 !important; }
html body.koach-light .kpr-wrap .kpr-rows { border-top: 0 !important; margin: 0 0 16px !important; }
html body.koach-light .kpr-wrap .kpr-row, html body.koach-light .kpr-wrap a.kpr-link { display: flex !important; justify-content: space-between !important; align-items: center !important; gap: 16px !important; min-height: var(--kl-h-row) !important; padding: 12px 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; font-size: var(--kl-fs-body) !important; color: var(--kl-ink) !important; text-decoration: none !important; }
html body.koach-light .kpr-wrap a.kpr-link:last-child { border-bottom: 1px solid var(--kl-line-row) !important; }
html body.koach-light .kpr-wrap .kpr-row span:first-child { color: var(--kl-ink2) !important; }
html body.koach-light .kpr-wrap a.kpr-link span:first-child { color: var(--kl-ink) !important; font-weight: 600 !important; white-space: nowrap; }
html body.koach-light .kpr-wrap a.kpr-link span:last-child { color: var(--kl-ink2) !important; font-size: var(--kl-fs-small) !important; text-align: right !important; }
html body.koach-light .kpr-wrap input.kpr-note { height: var(--kl-h-secondary) !important; max-width: 420px !important; padding: 0 14px !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-field) !important; background: #FFFFFF !important; color: var(--kl-ink) !important; font-size: 16px !important; }
html body.koach-light .kpr-wrap .kpr-btn { display: inline-flex !important; align-items: center !important; justify-content: center !important; height: var(--kl-h-secondary) !important; line-height: 1.2 !important; padding: 0 20px !important; background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-btn) !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 15px !important; font-weight: 600 !important; }
html body.koach-light .kpr-wrap .kpr-btn.red:not(.small) { height: var(--kl-h-primary) !important; padding: 0 24px !important; background: var(--kl-red) !important; border: 0 !important; color: #FFFFFF !important; font-size: 17px !important; font-weight: 700 !important; box-shadow: var(--kl-sh-primary) !important; }
html body.koach-light .kpr-wrap .kpr-btn.small { height: var(--kl-h-tap) !important; padding: 0 14px !important; font-size: 14px !important; margin-left: 8px !important; }
html body.koach-light .kpr-wrap .kpr-btn.small.red { color: var(--kl-red) !important; }
@media (max-width: 820px) {
  html body.koach-light .kpr-wrap h1.kpr-h { font-size: 34px !important; }
  html body.koach-light .kpr-wrap a.kpr-link, html body.koach-light .kpr-wrap .kpr-row { flex-direction: column !important; align-items: flex-start !important; justify-content: center !important; gap: 2px !important; }
  html body.koach-light .kpr-wrap a.kpr-link span:last-child, html body.koach-light .kpr-wrap .kpr-row span:last-child { text-align: left !important; }
  html body.koach-light .kpr-wrap .kpr-btn.small { margin: 8px 8px 0 0 !important; }
}

/* -- the waiver (a legal page, not a form page): its fields get the R2 edge too -- */
html body.koach-light .koach-legal-page .gform_wrapper :is(input[type="text"], input[type="email"], input[type="tel"], input.large, input.datepicker, select, textarea),
html body.koach-light.koach-legal-page .gform_wrapper :is(input[type="text"], input[type="email"], input[type="tel"], input.large, input.datepicker, select, textarea) { border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-field) !important; background-color: #FFFFFF !important; min-height: var(--kl-h-secondary) !important; color: var(--kl-ink) !important; font-size: 16px !important; box-shadow: none !important; }
/* the form date button: a 44px tap target over the field's right end (the icon keeps its size) */
html body.koach-light .gform_wrapper .ginput_container_date { position: relative !important; }
html body.koach-light .gform_wrapper .ginput_container_date input.datepicker_with_icon { padding-right: 52px !important; }
html body.koach-light .gform_wrapper .gform-datepicker-toggle { position: absolute !important; right: 2px !important; top: 50% !important; transform: translateY(-50%) !important; width: var(--kl-h-tap) !important; height: var(--kl-h-tap) !important; min-width: var(--kl-h-tap) !important; display: flex !important; align-items: center !important; justify-content: center !important; margin: 0 !important; padding: 0 !important; background: transparent !important; border: 0 !important; }
/* form card eyebrow: no capitals (as the booking eyebrow) */
html body.koach-light.koach-form-page .koach-form-card-header .kfch-label { text-transform: none !important; letter-spacing: 0 !important; font-size: 14px !important; color: var(--kl-ink2) !important; }

/* -- legal tables: plain headers (no capitals) -- */
html body.koach-light .koach-legal-table th, html body.koach-light .koach-legal-body .koach-legal-table th { text-transform: none !important; letter-spacing: 0 !important; }
html body.koach-light .kpp-mp-nowtag { text-transform: none !important; letter-spacing: 0 !important; }

/* -- Clients: "Awaiting self-assessment" is waiting, not an action: the attention chip, not red -- */
html body.koach-light-koach .kdash-prep-chip--warn { background: var(--kl-st-attn-bg) !important; border-color: var(--kl-st-attn-bg) !important; color: var(--kl-st-attn-tx) !important; }

/* -- plan builder: flag rows as an inset note (no amber box); change labels without capitals -- */
html body.koach-light-koach .kps-flagrow { display: flex !important; align-items: flex-start !important; gap: 10px !important; background: var(--kl-soft) !important; border: 0 !important; border-radius: var(--kl-r-field) !important; padding: 12px 14px !important; font-size: var(--kl-fs-small) !important; line-height: 1.5 !important; color: var(--kl-ink2) !important; }
html body.koach-light-koach .kps-flagrow strong { color: var(--kl-ink) !important; }
html body.koach-light-koach .kps-flagrow svg { flex: 0 0 auto; margin-top: 2px; stroke: var(--kl-attn) !important; }
html body.koach-light-koach .kps-bc-when, html body.koach-light-koach .kps-bc-when .d { text-transform: none !important; letter-spacing: 0 !important; }

/* -- periodized plan (koach view): status as the R3 chip, FITT values at 13px (D641) -- */
html body.koach-light-koach .koach-periodized-plan .kps-status-pill { display: inline-flex !important; align-items: center !important; gap: 6px !important; height: var(--kl-h-chip) !important; padding: 0 10px !important; border: 0 !important; border-radius: var(--kl-r-chip) !important; font-size: var(--kl-fs-chip) !important; font-weight: 600 !important; line-height: 1 !important; text-transform: none !important; letter-spacing: 0 !important; background: var(--kl-st-neutral-bg) !important; color: var(--kl-st-neutral-tx) !important; white-space: nowrap !important; }
html body.koach-light-koach .koach-periodized-plan .kps-status-pill::before { width: 6px !important; height: 6px !important; background: currentColor !important; }
html body.koach-light-koach .koach-periodized-plan :is(.kps-status-pill--active, .kps-status-pill--done) { background: var(--kl-st-ok-bg) !important; color: var(--kl-st-ok-tx) !important; }
html body.koach-light-koach .koach-periodized-plan .fk, html body.koach-light-koach .koach-periodized-plan .fv { font-size: 13px !important; }

/* -- the last small labels: 13px floor -- */
body.koach-light .kl-tag-today { font-size: 13px !important; }
html body.koach-light #kmd-tab-milestones .kmd-milestone-card-major-tag { font-size: 13px !important; }
html body.koach-light-koach .kpd-meso-num { font-size: 13px !important; }
html body.koach-light-koach .kah-v { font-size: 13px !important; }
html body.koach-light-koach .kpb-framework-note { color: var(--kl-ink2) !important; }
html body.koach-light .gform_wrapper .select-arrow { color: var(--kl-ink2) !important; }
/* s.67 look fixes: table text on the page edge (N4), rows without extra gaps, Program Reviews on the account column */
html body.koach-light .kac-kt :is(th, td):first-child { padding-left: 0 !important; }
html body.koach-light .kac-kt :is(th, td):last-child { padding-right: 0 !important; }
html body.koach-light .kac-ktm { gap: 0 !important; }
html body.koach-light .kac-note { margin-top: 24px !important; }
html body.koach-light .kpr-wrap { max-width: 960px !important; margin-left: auto !important; margin-right: auto !important; }
html body.koach-light .gform_wrapper .ginput_container_date input.datepicker_with_icon { width: 100% !important; max-width: 100% !important; }
/* the waiver (and any legal-template page) was still on the old #F0F0EF canvas: every page is white (R1) */
html body.koach-light.koach-legal-page, html body.koach-light.koach-legal-page :is(#wrapper, #boxed-wrapper, #main, #content, .fusion-row, section.full-width, .fusion-fullwidth, .fusion-builder-row, .fusion-layout-column, .fusion-column-wrapper) { background: #FFFFFF !important; }

/* cookie policy: the Complianz per-purpose cookie list as rows on the page (was a grey #DADADA grid box, R1) */
html body.koach-light .koach-legal-body--cmplz #cmplz-document .cookies-per-purpose { background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; gap: 0 !important; margin: 0 0 24px !important; }
html body.koach-light .koach-legal-body--cmplz #cmplz-document .cookies-per-purpose > div { background: transparent !important; padding: 10px 12px 10px 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; font-size: 15px !important; color: var(--kl-ink) !important; min-width: 0; overflow-wrap: anywhere; }
html body.koach-light .koach-legal-body--cmplz #cmplz-document .cookies-per-purpose > .purpose { border-bottom: 0 !important; padding: 16px 0 4px !important; }
html body.koach-light .koach-legal-body--cmplz #cmplz-document .cookies-per-purpose h4 { font-family: var(--kl-font) !important; font-size: 17px !important; font-weight: 700 !important; color: var(--kl-ink) !important; margin: 0 !important; text-transform: none !important; letter-spacing: 0 !important; }
html body.koach-light .koach-legal-body--cmplz #cmplz-document .cookies-per-purpose h5 { font-family: var(--kl-font) !important; font-size: 14px !important; font-weight: 600 !important; color: var(--kl-ink2) !important; margin: 0 !important; text-transform: none !important; letter-spacing: 0 !important; }
/* cookie policy "Placed cookies": each service a plain row that opens (was a boxed grey card, R1) */
html body.koach-light .koach-legal-body--cmplz #cmplz-document details.cmplz-dropdown { background: transparent !important; border: 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; margin: 0 !important; }
html body.koach-light .koach-legal-body--cmplz #cmplz-document details.cmplz-dropdown:first-of-type { border-top: 1px solid var(--kl-line-row) !important; }
html body.koach-light .koach-legal-body--cmplz #cmplz-document details.cmplz-dropdown > summary.cmplz-service-header { background: transparent !important; border: 0 !important; border-radius: 0 !important; margin: 0 !important; padding: 14px 0 !important; min-height: var(--kl-h-row) !important; box-sizing: border-box; }
html body.koach-light .koach-legal-body--cmplz #cmplz-document details.cmplz-dropdown > summary h3 { padding: 0 !important; font-size: 16px !important; font-weight: 600 !important; color: var(--kl-ink) !important; }
html body.koach-light .koach-legal-body--cmplz #cmplz-document details.cmplz-dropdown > summary p { font-size: 14px !important; color: var(--kl-ink2) !important; }
html body.koach-light .koach-legal-body--cmplz #cmplz-document details.cmplz-dropdown > div { padding-left: 0 !important; padding-right: 0 !important; }
html body.koach-light .koach-legal-body--cmplz #cmplz-document details.cmplz-dropdown > div :is(h4, p) { padding-left: 0 !important; padding-right: 0 !important; margin-left: 0 !important; }
html body.koach-light .koach-legal-body--cmplz #cmplz-document details.cmplz-dropdown > div:not(.cookies-per-purpose) h4 { font-size: 14px !important; font-weight: 600 !important; color: var(--kl-ink2) !important; }
/* s.67 periodized plan, koach view: the same pieces as the client My Plan (kpp-mp) and the plan summary (kps-mc),
   so the koach page reads the same: bands across the page, rows on the page edge, FITT as plain rows, the rows at every width */
html body.koach-light-koach .koach-periodized-plan .kpp-mp-sechead { display: flex !important; flex-wrap: wrap !important; align-items: baseline !important; gap: 4px 12px !important; background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-section) !important; border-radius: 0 !important; box-shadow: none !important; margin: 24px 0 0 !important; padding: var(--kl-section) 0 12px !important; }
html body.koach-light-koach .koach-periodized-plan .kpp-mp-sechead .ic { display: none !important; }
html body.koach-light-koach .koach-periodized-plan .kpp-mp-sechead .tl { flex: 1 1 100% !important; font-family: var(--kl-font) !important; font-size: 20px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--kl-ink) !important; }
html body.koach-light-koach .koach-periodized-plan .kpp-mp-sechead .ct, html body.koach-light-koach .koach-periodized-plan .kpp-mp-bank-count { flex: 1 1 100% !important; font-size: 15px !important; font-weight: 600 !important; color: var(--kl-ink) !important; letter-spacing: 0 !important; text-transform: none !important; }
html body.koach-light-koach .koach-periodized-plan .kpp-mp-sechead .ct { font-weight: 400 !important; color: var(--kl-ink2) !important; }
html body.koach-light-koach .koach-periodized-plan .kpp-mp-bank-count .rem { font-size: 15px !important; font-weight: 400 !important; color: var(--kl-ink2) !important; }
html body.koach-light-koach .koach-periodized-plan .kpp-mp-sec { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; }
/* overview: label left, value right, a row line between rows, no column line */
html body.koach-light-koach .koach-periodized-plan .kpp-mp-ov dl { display: grid !important; grid-template-columns: minmax(96px, 34%) 1fr !important; margin: 0 !important; border: 0 !important; background: transparent !important; }
html body.koach-light-koach .koach-periodized-plan .kpp-mp-ov dt, html body.koach-light-koach .koach-periodized-plan .kpp-mp-ov dd { margin: 0 !important; padding: 12px 0 !important; border: 0 !important; border-top: 1px solid var(--kl-line-row) !important; background: transparent !important; }
html body.koach-light-koach .koach-periodized-plan .kpp-mp-ov dt:first-of-type, html body.koach-light-koach .koach-periodized-plan .kpp-mp-ov dd:first-of-type { border-top: 0 !important; }
html body.koach-light-koach .koach-periodized-plan .kpp-mp-ov dt { font-size: 14px !important; font-weight: 400 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
html body.koach-light-koach .koach-periodized-plan .kpp-mp-ov dd, html body.koach-light-koach .koach-periodized-plan .kpp-mp-ov dd b { font-size: 16px !important; font-weight: 400 !important; color: var(--kl-ink) !important; }
/* progress: legend + three stats as plain label/value */
html body.koach-light-koach .koach-periodized-plan .kpp-mp-bank-body { padding: 0 !important; background: transparent !important; border: 0 !important; }
html body.koach-light-koach .koach-periodized-plan .kpp-mp-bank-legend .bl { font-size: 14px !important; color: var(--kl-ink2) !important; letter-spacing: 0 !important; text-transform: none !important; }
html body.koach-light-koach .koach-periodized-plan .kpp-mp-bank-statband { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 12px !important; background: transparent !important; border: 0 !important; padding: 16px 0 0 !important; margin: 0 !important; text-align: left !important; }
html body.koach-light-koach .koach-periodized-plan .kpp-mp-bank-statband > div { text-align: left !important; background: transparent !important; border: 0 !important; padding: 0 !important; }
html body.koach-light-koach .koach-periodized-plan .kpp-mp-bank-statband .k { display: block; font-size: 13px !important; font-weight: 400 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
html body.koach-light-koach .koach-periodized-plan .kpp-mp-bank-statband .v { display: block; font-size: 16px !important; font-weight: 700 !important; color: var(--kl-ink) !important; margin-top: 2px; }
html body.koach-light-koach .koach-periodized-plan .kps-fp-wrap { display: none !important; }
html body.koach-light-koach .koach-periodized-plan .kps-meso-cards { display: flex !important; flex-direction: column !important; gap: 0 !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc { background: transparent !important; border: 0 !important; border-top: 1px solid var(--kl-line-row) !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; overflow: visible !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc:first-child { border-top: 0 !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc > summary { display: flex !important; flex-wrap: wrap !important; align-items: center !important; position: relative; gap: 4px 0 !important; padding: 14px 32px 14px 0 !important; min-height: var(--kl-h-tap); background: transparent !important; list-style: none !important; cursor: pointer; }
html body.koach-light-koach .koach-periodized-plan .kps-mc > summary::-webkit-details-marker { display: none; }
html body.koach-light-koach .koach-periodized-plan .kps-mc .kpb-phase-pill,
html body.koach-light-koach .koach-periodized-plan .kps-mc .kps-status-pill { display: inline-flex !important; align-items: center !important; gap: 6px !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; margin: 0 12px 0 0 !important; height: auto !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; box-shadow: none !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc .kpb-phase-pill::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: currentColor; flex: 0 0 auto; }
html body.koach-light-koach .koach-periodized-plan .kps-mc .kpb-phase-foundations { color: var(--kl-phase-tx) !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc .kpb-phase-evolution { color: #0B5F66 !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc .kps-status-pill { color: var(--kl-ink2) !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc .kps-status-pill::before { display: none !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc .kps-status-pill--done { color: var(--kl-ok) !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc .kps-status-pill--inprogress { color: var(--kl-ink) !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc .chev { position: absolute !important; right: 0; top: 50%; transform: translateY(-50%); margin: 0 !important; color: var(--kl-ink2) !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc[open] .chev { transform: translateY(-50%) rotate(90deg); }
html body.koach-light-koach .koach-periodized-plan .kps-mc-name, html body.koach-light-koach .koach-periodized-plan .kps-mc-wk { flex: 1 1 100% !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc-name { margin-top: 4px !important; font-weight: 700 !important; color: var(--kl-ink) !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc-wk, html body.koach-light-koach .koach-periodized-plan .kps-mc-wk .dl { color: var(--kl-ink2) !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc-sec { background: transparent !important; border: 0 !important; padding: 0 0 12px !important; margin: 0 !important; line-height: 1.5 !important; color: var(--kl-ink2) !important; font-style: normal !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc .lbl { display: block !important; font-weight: 400 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; margin-bottom: 2px; }
html body.koach-light-koach .koach-periodized-plan .kps-mc .val { font-weight: 600 !important; color: var(--kl-ink) !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc .val .sub { display: block; font-weight: 400 !important; color: var(--kl-ink2) !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc-2, html body.koach-light-koach .koach-periodized-plan .kps-mc-fitt { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 0 24px !important; max-width: 640px; }
html body.koach-light-koach .koach-periodized-plan .kps-mc-desc, html body.koach-light-koach .koach-periodized-plan .kps-mc-life, html body.koach-light-koach .koach-periodized-plan .kps-mc-res { max-width: 640px; }
/* FITT: plain rows, no boxes */
html body.koach-light-koach .koach-periodized-plan .kps-fitt-mini { background: transparent !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; overflow: visible !important; }
html body.koach-light-koach .koach-periodized-plan .kps-fitt-mini .h { font-weight: 700 !important; color: var(--kl-ink) !important; text-transform: none !important; letter-spacing: 0 !important; background: transparent !important; border: 0 !important; padding: 4px 0 6px !important; }
html body.koach-light-koach .koach-periodized-plan .kps-fitt-mini .r { display: flex !important; justify-content: space-between !important; padding: 6px 0 !important; border: 0 !important; border-top: 1px solid var(--kl-line-row) !important; background: transparent !important; }
html body.koach-light-koach .koach-periodized-plan .kps-fitt-mini .fk { font-weight: 400 !important; color: var(--kl-ink2) !important; text-transform: none !important; letter-spacing: 0 !important; }
html body.koach-light-koach .koach-periodized-plan .kps-fitt-mini .fv { font-weight: 600 !important; color: var(--kl-ink) !important; }
/* one primary action (the header Program Builder): the row's Build is secondary, like the table's was */
html body.koach-light-koach .koach-periodized-plan .kps-mc-cta { padding: 0 0 16px !important; border: 0 !important; background: transparent !important; }
html body.koach-light-koach .koach-periodized-plan .kps-mc-cta a, html body.koach-light-koach .koach-periodized-plan .kps-mc-cta a.build { display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; min-height: var(--kl-h-tap) !important; padding: 0 16px !important; border-radius: 14px !important; background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; color: #21252E !important; box-shadow: none !important; font-weight: 600 !important; text-decoration: none !important; }
html body.koach-light-koach .koach-periodized-plan .kpp-mp-tscroll { display: none !important; }
html body.koach-light-koach .koach-periodized-plan .kps-meso-cards { display: flex !important; flex-direction: column !important; gap: 0 !important; }
html body.koach-light-koach .koach-periodized-plan > .kpp-mp-sechead.kpp-mp-sechead { border-top: var(--kl-band-h) solid var(--kl-band) !important; border-image: linear-gradient(var(--kl-band), var(--kl-band)) 1 / var(--kl-band-h) 0 0 0 / 0 100vw !important; padding-top: var(--kl-sec-pad) !important; padding-bottom: 0 !important; margin-top: var(--kl-sec-pad) !important; margin-bottom: var(--kl-sp-head) !important; }
html body.koach-light .koach-periodized-plan { overflow: visible !important; overflow-x: visible !important; }
html body.koach-light-koach .koach-periodized-plan .kpb-context-card { justify-content: flex-start !important; gap: 6px !important; }
html body.koach-light-koach .koach-periodized-plan .kpb-context-card > * { margin-top: 0 !important; }
html body.koach-light-koach .koach-periodized-plan .kpb-context-card strong { text-wrap: balance; }
@media (min-width: 600px) {
  html body.koach-light-koach .koach-periodized-plan .kpb-context-cards { display: flex !important; flex-wrap: wrap !important; gap: 0 32px !important; }
  html body.koach-light-koach .koach-periodized-plan .kpb-context-cards > .kpb-context-card { flex: 0 1 auto !important; }
  html body.koach-light-koach .koach-periodized-plan .kpb-context-cards > .kpb-context-card strong { white-space: nowrap !important; }
}
/* s.67 after the independent review (S333-B7) */
/* N1/N2 everywhere: running text avoids a lone last word, short headings balance their lines */
body.koach-light :is(p, li, dd, td, .kac-pt-hint, .kac-note, .kac-cert-notice, .kl-note, .gfield_description, .kl-stat__label) { text-wrap: pretty; }
body.koach-light :is(h1, h2, h3, h4, .kl-h2, .kac-rvsec-t, .kpb-pgtitle, .kpr-h) { text-wrap: balance; }
/* placeholders read as placeholders, not as typed values */
html body.koach-light :is(.kac-pt, .kpr-wrap, .kac-rvfilter) :is(input, textarea)::placeholder { color: var(--kl-placeholder) !important; opacity: 1 !important; }
/* Certification: the chip ends where the rows end (N4) */
html body.koach-light .kac-rvsec:has(.kac-cert-badge) { max-width: 640px; }
/* Revenue: the net amount is green at every width (N5) */
html body.koach-light .kac-wrap .kac-kt tbody tr td.net { color: var(--kl-ok) !important; }
/* phone: a section's meta goes under its title so the title keeps its line (N2) */
@media (max-width: 820px) {
  html body.koach-light .kac-rvsec:has(.kac-rvsec-meta) { flex-direction: column !important; align-items: flex-start !important; gap: 4px !important; }
}
/* the waiver: the health-consent text as the inset note (no bordered box), the signature pad with the R2 edge, the
   group labels (legend) the same as the field labels */
html body.koach-light .gform_wrapper .gfield_consent_description_text { background: var(--kl-soft) !important; border: 0 !important; border-radius: var(--kl-r-field) !important; padding: 12px 14px !important; font-size: var(--kl-fs-small) !important; line-height: 1.5 !important; color: var(--kl-ink2) !important; }
html body.koach-light .gform_wrapper .gfield_signature_container canvas { border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; border-radius: var(--kl-r-field) !important; background: #FFFFFF !important; }
html body.koach-light.koach-legal-page .gform_wrapper legend.gfield_label { font-size: 14px !important; font-weight: 600 !important; color: rgb(26, 26, 26) !important; }
/* the questionnaire Name pair ends on the same right edge as every other field (N4) */
html body.koach-light .gform_wrapper .ginput_container--name { margin-left: 0 !important; margin-right: 0 !important; }
html body.koach-light .gform_wrapper .ginput_container--name > span { padding-left: 0 !important; padding-right: 0 !important; }
/* legal tables on a phone: labelled rows (koach-legal-pages.php writes each cell's column name), no sideways scroll */
@media (max-width: 600px) {
  html body.koach-light .koach-legal-body .koach-legal-table, html body.koach-light .koach-legal-body .koach-legal-table tbody { display: block !important; overflow: visible !important; width: 100% !important; border: 0 !important; table-layout: auto !important; }
  html body.koach-light .koach-legal-body .koach-legal-table colgroup, html body.koach-light .koach-legal-body .koach-legal-table thead { display: none !important; }
  html body.koach-light .koach-legal-body .koach-legal-table tr { display: block !important; padding: 12px 0 !important; border-bottom: 1px solid var(--kl-line-row) !important; }
  html body.koach-light .koach-legal-body .koach-legal-table td { display: flex !important; justify-content: space-between !important; gap: 16px !important; min-width: 0 !important; width: auto !important; padding: 4px 0 !important; border: 0 !important; background: transparent !important; text-align: right !important; }
  html body.koach-light .koach-legal-body .koach-legal-table td::before { content: attr(data-label); flex: 0 0 auto; max-width: 45%; text-align: left; font-size: 14px; color: var(--kl-ink2); }
  html body.koach-light .koach-legal-body .koach-legal-table td:first-child { display: block !important; text-align: left !important; padding-bottom: 6px !important; }
  html body.koach-light .koach-legal-body .koach-legal-table td:first-child::before { display: none; }
}
/* S333-B9: the "choose a client" start state of the koach build pages sits under the page title on the page edge
   (it was a centred block with an icon under a left title) */
html body.koach-light-koach .kph-picker--empty .kph-empty-header { text-align: left !important; align-items: flex-start !important; justify-content: flex-start !important; padding: 0 !important; margin: 0 0 16px !important; }
html body.koach-light-koach .kph-picker--empty .kph-empty-icon { display: none !important; }
html body.koach-light-koach .kph-picker--empty .kph-empty-title { font-family: var(--kl-font) !important; font-size: var(--kl-fs-h2) !important; font-weight: 700 !important; color: var(--kl-ink) !important; margin: 0 0 6px !important; text-align: left !important; }
html body.koach-light-koach .kph-picker--empty .kph-empty-body { font-size: var(--kl-fs-body) !important; color: var(--kl-ink2) !important; margin: 0 !important; text-align: left !important; }
html body.koach-light-koach .kph-pgtitle { margin: 0 0 24px !important; }
/* S333-B10 (owner look 2026-10-23): exercise video buttons -- a play icon and the words Male / Female (or Play) */
html body.koach-light-koach .kela-wrap .kela-vidrow { display: inline-flex !important; flex-wrap: wrap !important; gap: 8px !important; margin-top: 8px !important; }
html body.koach-light-koach .kela-wrap .kela-vid, html body.koach-light-koach .kela-wrap .kela-vid--f { width: auto !important; min-width: 44px !important; height: var(--kl-h-tap) !important; min-height: var(--kl-h-tap) !important; padding: 0 12px !important; gap: 6px !important; border-radius: var(--kl-r-btn) !important; background: var(--kl-ctrl-bg) !important; border: var(--kl-w-ctrl) solid var(--kl-line-ctrl) !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 14px !important; font-weight: 600 !important; line-height: 1 !important; white-space: nowrap !important; }
html body.koach-light-koach .kela-vid-ic { flex: 0 0 auto; display: block; }
/* My Account bio: the box grows with the text (no inner scroll bar), and no corner drag handle */
html body.koach-light .kac-pt td.val textarea { resize: none !important; field-sizing: content; min-height: 144px !important; overflow-y: auto; }
/* the opened exercise row on a phone: plain label / value rows (no capitals, no zebra) */
html body.koach-light-koach .kela-mcard .kela-kv, html body.koach-light-koach .kela-mcard .kela-kv:nth-child(even), html body.koach-light-koach .kela-mcard .kela-kv > * { background: transparent !important; }
html body.koach-light-koach .kela-kv .k { text-transform: none !important; letter-spacing: 0 !important; font-size: 14px !important; font-weight: 400 !important; color: var(--kl-ink2) !important; }
/* S333-B11 (dates yyyy-mm-dd): a list row that leads with a date puts the date under the name on a phone, so the
   name keeps one line (N2) */
@media (max-width: 600px) {
  html body.koach-light .kl-li:has(> .kl-li__lead--date) { display: grid !important; grid-template-columns: minmax(0, 1fr) auto !important; grid-template-areas: "main end" "lead end" !important; row-gap: 2px !important; column-gap: 12px !important; padding: 10px 0 !important; }
  html body.koach-light .kl-li:has(> .kl-li__lead--date) > .kl-li__main { grid-area: main; }
  html body.koach-light .kl-li:has(> .kl-li__lead--date) > .kl-li__end { grid-area: end; }
  html body.koach-light .kl-li__lead--date { grid-area: lead; min-width: 0 !important; font-weight: 400 !important; font-size: 14px !important; }
}
/* every text box on a light page (journal notes, forms, bio): no corner drag handle; it grows with the text */
html body.koach-light textarea { resize: none !important; field-sizing: content; }
/* S333-B12 (Marie, beta 2026-10-24/26): a per-side exercise with weight / reps / RIR boxes -- one line per side
   under the normal column heads (the two-column Left / Right layout is only for a single box per side) */
html body.koach-light .koach-program-card.kpc-light .kpc-set-row--sides-multi { display: grid !important; grid-template-columns: 48px minmax(0, 1fr) !important; column-gap: 8px !important; row-gap: 6px !important; align-items: center !important; flex-wrap: nowrap !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-set-row--sides-multi > .kpc-set-n { grid-column: 1 !important; grid-row: 1 / span 2 !important; align-self: start !important; padding-top: 30px; }
html body.koach-light .koach-program-card.kpc-light .kpc-set-row--sides-multi > .kpc-set-fields { grid-column: 2 !important; display: flex !important; flex-wrap: wrap !important; gap: 4px 8px !important; width: 100% !important; padding-left: 0 !important; margin: 0 !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-set-row--sides-multi > .kpc-set-fields > .kpc-side-tag { display: block !important; position: static !important; transform: none !important; flex: 1 1 100% !important; font-size: 13px !important; font-weight: 600 !important; color: var(--kl-ink2) !important; letter-spacing: 0 !important; line-height: 1.2 !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-set-row--sides-multi .kpc-set-fields .kpc-log-input { padding: 0 12px !important; text-indent: 0 !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-set-row--sides-multi .kpc-lf-tag { display: none !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-set-row--sides-multi > .kpc-set-last { grid-column: 2 !important; padding-left: 0 !important; margin-left: 0 !important; }
/* S333-B12 (Marie, beta 2026-10-26, "Finish workout appeared twice"): once every set is logged the pinned finish bar owns Finish workout (D459), so the end-of-page button steps aside -- the old look did this through .kpc-bottom-actions, which the light look does not have */
html body.koach-light .koach-program-card.kpc-light.kpc-has-finish-bar .kpcl-end .kpcl-finish, html body.koach-light .koach-program-card.kpc-light.kpc-has-finish-bar .kpcl-end .kpc-save-hint { display: none !important; }
/* S333-B12 (Marie, beta 2026-10-26, the note box in the setup sheet "wasn't visible"): an Avada row around the card is a z-index 10 layer, so the sheet (z 100001) stayed under the app tab bar (z 99990), which covered the bottom of the sheet -- the feeling note and the partner switch. While the sheet is open, that row is lifted above the tab bar and the tab bar steps aside */
html body.kpcl-sheet-open .fusion-builder-row:has(.kpcl-sheet), html body.kpcl-sheet-open .fusion-row:has(.kpcl-sheet), html body.kpcl-sheet-open .fusion-layout-column:has(.kpcl-sheet) { z-index: 100000 !important; }
html body.kpcl-sheet-open #kns-shell .kns-tabbar, html body.kpcl-sheet-open .kns-tabbar { display: none !important; }
html body.koach-light .koach-program-card.kpc-light .kpcl-sheet { max-height: 88dvh !important; }
/* S333-B12: the readiness value is a tap target that opens the sheet, like Training at; "Not set yet" keeps its attention colour */
html body.koach-light .koach-program-card.kpc-light .kpcl-setup-grid button.kpcl-mode-link .kl-attn { color: var(--kl-attn) !important; }
/* S333-B12: the set rows sit under their column heads -- the old look's 18px / 16px side inset on .kpc-sets (and on the weight hint and the note box) pushed every row 18px right of its head and made the boxes narrower than the heads */
html body.koach-light .koach-program-card.kpc-light .kpc-stack .kpc-sets, html body.koach-light .koach-program-card.kpc-light .kpc-card-body .kpc-load-hint, html body.koach-light .koach-program-card.kpc-light .kpc-card-body .kpc-ex-card-note { padding-left: 0 !important; padding-right: 0 !important; }
/* S333-B12 (checklist E6, labels beside the fields, no extra lines): "Left" / "Right" sit in the set column beside their boxes -- "Set 1" over "Left" on the first line, "Right" beside the second -- so each set is two lines of boxes, not four */
html body.koach-light .koach-program-card.kpc-light .kpc-set-row--sides-multi > .kpc-set-n { grid-row: 1 !important; align-self: start !important; padding-top: 6px !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-set-row--sides-multi > .kpc-set-fields { position: relative !important; flex-wrap: nowrap !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-set-row--sides-multi > .kpc-set-fields > .kpc-side-tag { position: absolute !important; left: -56px !important; bottom: 6px !important; top: auto !important; width: 48px !important; flex: none !important; }
/* S333-B12 (13px text floor): the finish bar's line under "All sets logged" */
html body.koach-light .koach-program-card.kpc-light .kpc-fb-sub { font-size: 13px !important; }
/* S333-B12 (found by the S333 sweep): a per-side timed or rep exercise keeps its two Left side / Right side columns, but once "Add weight" is on each side has two boxes, which overlapped in the half-width columns on a phone -- it then switches to the Weight / unit heads and one line per side, like a loaded per-side exercise */
html body.koach-light .koach-program-card.kpc-light .kpcl-cols.kpcl-cols--loadon { display: none !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-station.kpc-load-on .kpcl-cols.kpcl-cols--sides { display: none !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-station.kpc-load-on .kpcl-cols.kpcl-cols--loadon { display: flex !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-station.kpc-load-on .kpc-set-row--sides-addload { display: grid !important; grid-template-columns: 48px minmax(0, 1fr) !important; column-gap: 8px !important; row-gap: 6px !important; align-items: center !important; flex-wrap: nowrap !important; padding-left: 0 !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-station.kpc-load-on .kpc-set-row--sides-addload > .kpc-set-n { grid-column: 1 !important; grid-row: 1 !important; align-self: start !important; padding-top: 6px !important; position: static !important; transform: none !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-station.kpc-load-on .kpc-set-row--sides-addload > .kpc-set-fields { grid-column: 2 !important; position: relative !important; display: flex !important; flex-wrap: nowrap !important; gap: 4px 8px !important; width: 100% !important; max-width: none !important; padding-left: 0 !important; margin: 0 !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-station.kpc-load-on .kpc-set-row--sides-addload > .kpc-set-fields > .kpc-logfield { flex: 1 1 0 !important; min-width: 0 !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-station.kpc-load-on .kpc-set-row--sides-addload > .kpc-set-fields > .kpc-side-tag { display: block !important; position: absolute !important; left: -56px !important; bottom: 6px !important; top: auto !important; transform: none !important; width: 48px !important; flex: none !important; font-size: 13px !important; font-weight: 600 !important; color: var(--kl-ink2) !important; letter-spacing: 0 !important; line-height: 1.2 !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-station.kpc-load-on .kpc-set-row--sides-addload .kpc-set-fields .kpc-log-input { padding: 0 12px !important; text-indent: 0 !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-station.kpc-load-on .kpc-set-row--sides-addload .kpc-lf-tag { display: none !important; }
html body.koach-light .koach-program-card.kpc-light .kpc-station.kpc-load-on .kpc-set-row--sides-addload > .kpc-set-last { grid-column: 2 !important; padding-left: 0 !important; margin-left: 0 !important; }
/* S333-B15 (production walk 2026-10-26, koach pages): text under the 12px floor and small-caps labels -- Check-ins metric labels (9px caps), the email-failure notice (11.5-12px), the client card's Pairing row (10px caps) */
html body.koach-light-koach .kdash-ci-metric-label { font-size: 13px !important; font-weight: 400 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--kl-ink2) !important; }
html body.koach-light-koach .kdash-sysnotice-msg, html body.koach-light-koach .kdash-sysnotice-list li, html body.koach-light-koach .kdash-sysnotice-when, html body.koach-light-koach .kdash-sysnotice-what, html body.koach-light-koach .kdash-sysnotice-who, html body.koach-light-koach .kdash-sysnotice-why { font-size: 13px !important; }
html body.koach-light-koach .kcc-sp-ctl-lbl { font-size: 13px !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--kl-ink2) !important; }
html body.koach-light-koach .kcc-sp-ctl-val, html body.koach-light-koach .kcc-sp-ctl-val strong, html body.koach-light-koach .kcc-sp-ctl-note { font-size: 13px !important; }
/* S333-B15 (production walk 2026-10-26, client pages): My Plan "Why it matters" (9.5px red small caps -- red is for actions, R3), Progress change badge (11px), Assessment card line (11px) and the unit beside a dual value (9px) */
html body.koach-light .koach-periodized-plan .why-k { font-size: 13px !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--kl-ink2) !important; }
html body.koach-light .kmd-delta { font-size: 13px !important; }
html body.koach-light .kmd-as-card-sub { font-size: 13px !important; }
html body.koach-light .kmd-dual-companion-label { font-size: 13px !important; letter-spacing: 0 !important; text-transform: none !important; }
/* S333-B17 (owner APPROVED 2026-10-26 18:30): workout timers -- the set timer (Start on a timed exercise), its panel, the rest bar and the two switches in the setup sheet */
html body.koach-light .koach-program-card.kpc-light .kpct-start { display: flex !important; align-items: center !important; justify-content: center !important; gap: 8px !important; width: calc(100% - 56px) !important; margin: 2px 0 10px 56px !important; min-height: 44px !important; padding: 0 12px !important; border: 1.5px solid #858E9E !important; border-radius: 14px !important; background: #FFFFFF !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 15px !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; box-shadow: none !important; cursor: pointer; }
html body.koach-light .koach-program-card.kpc-light .kpct-start[hidden] { display: none !important; }
html body.koach-light .koach-program-card.kpc-light .kpct-start svg { width: 14px; height: 14px; flex: none; }
html body.koach-light .koach-program-card.kpc-light .kpct-panel { margin: 8px 0 14px; padding: 24px 16px; background: var(--kl-soft); border-radius: 18px; display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; }
html body.koach-light .koach-program-card.kpc-light .kpct-panel[hidden] { display: none !important; }
html body.koach-light .koach-program-card.kpc-light .kpct-side { margin: 0 !important; font-size: 15px !important; font-weight: 700 !important; color: var(--kl-ink2) !important; }
html body.koach-light .koach-program-card.kpc-light .kpct-ring { position: relative; width: 200px; height: 200px; max-width: 100%; }
html body.koach-light .koach-program-card.kpc-light .kpct-ring svg { width: 200px; height: 200px; display: block; }
html body.koach-light .koach-program-card.kpc-light .kpct-track { fill: none; stroke: #E2E6EC; stroke-width: 12; }
html body.koach-light .koach-program-card.kpc-light .kpct-prog { fill: none; stroke: var(--kl-red); stroke-width: 12; stroke-linecap: round; transition: stroke-dashoffset .2s linear; }
html body.koach-light .koach-program-card.kpc-light .kpct-panel.is-switch .kpct-prog { stroke: var(--kl-ink2); }
html body.koach-light .koach-program-card.kpc-light .kpct-ring-txt { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
html body.koach-light .koach-program-card.kpc-light .kpct-time { font-size: 56px; font-weight: 700; line-height: 1; color: var(--kl-ink); font-variant-numeric: tabular-nums; }
html body.koach-light .koach-program-card.kpc-light .kpct-of { margin-top: 6px; font-size: 14px; color: var(--kl-ink2); }
html body.koach-light .koach-program-card.kpc-light .kpct-next { margin: 0 !important; min-height: 18px; font-size: 14px !important; color: var(--kl-ink2) !important; }
html body.koach-light .koach-program-card.kpc-light .kpct-actions { display: flex; gap: 12px; width: 100%; max-width: 420px; }
html body.koach-light .kpct-btn { flex: 1 1 0; min-height: 48px; padding: 0 16px; border: 1.5px solid #858E9E !important; border-radius: 14px !important; background: #FFFFFF !important; color: var(--kl-ink) !important; font-family: var(--kl-font) !important; font-size: 16px !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; box-shadow: none !important; cursor: pointer; }
html body.koach-light .kpct-btn--primary { background: var(--kl-red) !important; border-color: var(--kl-red) !important; color: #FFFFFF !important; font-weight: 700 !important; }
html body.koach-light .koach-program-card.kpc-light .kpct-hint { margin: 0 !important; font-size: 13px !important; color: var(--kl-ink2) !important; line-height: 1.45 !important; max-width: 420px; }
html body.koach-light .kpct-rest { position: fixed; left: 12px; right: 12px; bottom: calc(84px + env(safe-area-inset-bottom, 0px)); z-index: 99995; max-width: 560px; margin: 0 auto; background: #FFFFFF; border: 1px solid #D3D9E2; border-radius: 16px; box-shadow: 0 6px 16px rgba(16,24,40,.16); padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; font-family: var(--kl-font); color: var(--kl-ink); }
html body.koach-light .kpct-rest[hidden] { display: none !important; }
html body.koach-light .kpct-rest-row { display: flex; align-items: center; gap: 10px; }
html body.koach-light .kpct-rest-txt { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
html body.koach-light .kpct-rest-lbl { font-size: 13px; font-weight: 600; color: var(--kl-ink2); }
html body.koach-light .kpct-rest-time { font-size: 28px; font-weight: 700; line-height: 1.1; font-variant-numeric: tabular-nums; }
html body.koach-light .kpct-rest .kpct-btn { flex: none; min-height: 44px; font-size: 15px !important; }
html body.koach-light .kpct-rest-bar { height: 6px; border-radius: 999px; background: #E2E6EC; overflow: hidden; }
html body.koach-light .kpct-rest-fill { height: 6px; border-radius: 999px; background: var(--kl-ink); width: 100%; transition: width .25s linear; }
@media (min-width: 821px) { html body.koach-light .kpct-rest { bottom: 24px; } }
html body.koach-light.kpct-resting .koach-program-card.kpc-light { padding-bottom: 120px !important; }
html body.koach-light .kpct-rest .kpct-btn[hidden] { display: none !important; }
/* S333-B17b (owner 2026-10-26 19:45, "I thought they were black"): in a set box the prescribed number is a light hint, a real entry is dark and bold, so a filled box is never mistaken for an empty one */
html body.koach-light .koach-program-card.kpc-light input.kpc-log-input::placeholder { color: #8A909C !important; opacity: 1 !important; font-weight: 400 !important; }
html body.koach-light .koach-program-card.kpc-light input.kpc-log-input::-webkit-input-placeholder { color: #8A909C !important; opacity: 1 !important; font-weight: 400 !important; }
html body.koach-light .koach-program-card.kpc-light input.kpc-log-input { color: var(--kl-ink) !important; font-weight: 600 !important; }   /* the page can always scroll its last boxes clear of the rest bar */
html body.koach-light .koach-program-card.kpc-light .kpct-switch { display: flex; align-items: center; gap: 16px; padding-top: 18px; margin-top: 18px; border-top: 1px solid #D3D9E2; cursor: pointer; }
html body.koach-light .koach-program-card.kpc-light .kpct-switch + .kpct-switch { border-top: 0; padding-top: 0; margin-top: 14px; }
html body.koach-light .koach-program-card.kpc-light .kpct-switch-txt { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
html body.koach-light .koach-program-card.kpc-light .kpct-switch-name { font-size: 16px; font-weight: 600; color: var(--kl-ink); }
html body.koach-light .koach-program-card.kpc-light .kpct-switch-hint { font-size: 14px; color: var(--kl-ink2); line-height: 1.4; }
html body.koach-light .koach-program-card.kpc-light .kpct-switch input { appearance: none; -webkit-appearance: none; flex: none; width: 52px !important; height: 32px !important; min-height: 32px !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 999px !important; background: #858E9E !important; position: relative; cursor: pointer; transition: background .15s; box-shadow: none !important; }
html body.koach-light .koach-program-card.kpc-light .kpct-switch input::after { content: ""; position: absolute; top: 4px; left: 4px; width: 24px; height: 24px; border-radius: 50%; background: #FFFFFF; transition: left .15s; }
html body.koach-light .koach-program-card.kpc-light .kpct-switch input:checked { background: var(--kl-red) !important; }
html body.koach-light .koach-program-card.kpc-light .kpct-switch input:checked::after { left: 24px; }
html body.koach-light .koach-program-card.kpc-light .kpct-switch input:focus-visible { outline: 2px solid var(--kl-ink); outline-offset: 2px; }
/* End of koach-light.css */
