/* BodyStats Lab report: the iPad's VO2 max and RMR PDFs on the results dashboard (October 27, 2026).
   Every size is in the PDF's points times --u, so the screen and the PDF keep the same proportions: --u is 1.5px on a
   computer, smaller on a phone, and 4/3 px when a page is drawn for the PDF (612 by 792 points, US Letter). */
.lr {
  --u: 1.5px;
  --forest: #2F4237; --gold: #9B6E2A; --sage: #6B7A5A; --ink: #1C1C1A; --warm: #FAF7F2; --stone: #D8D2C7;
  --heart: #AB4943; --step: #E9E3D8; --go: #3E7A4E; --gold-text: #7D5820; --muted: #5E5A52; --hairline: #E6E1D8;
  font-family: 'Outfit', 'Helvetica Neue', Arial, sans-serif; color: var(--ink); -webkit-font-smoothing: antialiased;
  display: flex; flex-direction: column; align-items: center; gap: 20px;
}
.lr *, .lr *::before, .lr *::after { box-sizing: border-box; }
.lr-bar { width: 100%; max-width: calc(var(--u) * 612); display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; }
.lr-btn { font: inherit; font-size: 14px; font-weight: 600; padding: 10px 16px; border-radius: 2px; border: 1px solid var(--forest); background: var(--forest); color: #fff; cursor: pointer; display: inline-flex; gap: 8px; align-items: center; }
.lr-btn[disabled] { opacity: .6; cursor: progress; }
.lr-btn--quiet { background: #fff; color: var(--forest); }
.lr-weight { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 14px; color: var(--muted); }
.lr-weight b { color: var(--ink); font-weight: 600; }
.lr-weight input { font: inherit; width: 84px; padding: 8px 10px; border: 1px solid var(--stone); border-radius: 2px; }
.lr-weight select { font: inherit; padding: 8px; border: 1px solid var(--stone); border-radius: 2px; background: #fff; }
.lr-weight .lr-err { color: var(--heart); width: 100%; }
.lr-sheet { width: 100%; max-width: calc(var(--u) * 612); background: #fff; padding: calc(var(--u) * 30) calc(var(--u) * 36); border: 1px solid var(--hairline); display: flex; flex-direction: column; }
.lr-head { display: flex; align-items: center; gap: calc(var(--u) * 8); }
.lr-logo { display: flex; align-items: center; gap: calc(var(--u) * 8); color: var(--forest); font-weight: 700; font-size: calc(var(--u) * 18); }
.lr-logo svg { width: calc(var(--u) * 20); height: calc(var(--u) * 22); }
/* The dashboard's own styles colour some SVG paths; the report keeps its colours. */
.lr .lr-logo svg path { fill: var(--forest) !important; }
.lr svg [fill="currentColor"] { fill: currentColor !important; }
.lr-head-right { margin-left: auto; text-align: right; }
.lr-kicker { font-size: calc(var(--u) * 8); font-weight: 700; color: var(--sage); letter-spacing: .1em; text-transform: uppercase; }
.lr-who { font-size: calc(var(--u) * 9); font-weight: 600; margin-top: calc(var(--u) * 1); }
.lr-rule { height: calc(var(--u) * 1.5); background: var(--forest); margin: calc(var(--u) * 8) 0 calc(var(--u) * 14); }
.lr-body { display: flex; flex-direction: column; gap: calc(var(--u) * 14); flex: 1; }
.lr-foot { display: flex; justify-content: space-between; margin-top: calc(var(--u) * 16); font-size: calc(var(--u) * 7.5); color: var(--sage); }
.lr-foot b { font-weight: 600; }
.lr-info { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: calc(var(--u) * 6) calc(var(--u) * 8); }
.lr-info dt { font-size: calc(var(--u) * 6.5); font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .03em; }
.lr-info dd { margin: 0; font-size: calc(var(--u) * 8.5); font-weight: 600; line-height: 1.25; overflow-wrap: anywhere; }
.lr-row { display: flex; gap: calc(var(--u) * 14); align-items: stretch; }
.lr-row--tight { gap: calc(var(--u) * 10); }
.lr-col { display: flex; flex-direction: column; gap: calc(var(--u) * 8); flex: 1; min-width: 0; }
.lr-hero { width: calc(var(--u) * 210); flex: none; background: var(--forest); color: #fff; padding: calc(var(--u) * 14); border-radius: 4px; }
.lr-hero-label { font-size: calc(var(--u) * 11); font-weight: 600; opacity: .85; }
.lr-hero-big { display: flex; align-items: baseline; gap: calc(var(--u) * 4); margin: calc(var(--u) * 2) 0; }
.lr-hero-big b { font-size: calc(var(--u) * 50); font-weight: 600; line-height: 1.05; letter-spacing: -.01em; }
.lr-hero-big span { font-size: calc(var(--u) * 11); font-weight: 600; opacity: .85; }
.lr-hero-line { font-size: calc(var(--u) * 8.5); opacity: .85; }
.lr-hero-strong { font-size: calc(var(--u) * 8.5); font-weight: 600; margin-top: calc(var(--u) * 3); }
.lr-card { background: var(--warm); border-radius: 2px; padding: calc(var(--u) * 8); }
.lr-pct-top { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.lr-pct-top span { font-size: calc(var(--u) * 10); font-weight: 600; }
.lr-pct-top b { font-size: calc(var(--u) * 10); font-weight: 700; color: var(--forest); }
.lr-pct-bar { position: relative; display: flex; gap: 1px; height: calc(var(--u) * 16); margin: calc(var(--u) * 4) 0 calc(var(--u) * 12); }
.lr-pct-bar > div { flex: 1; display: flex; align-items: center; justify-content: center; font-size: calc(var(--u) * 6); font-weight: 600; white-space: nowrap; overflow: hidden; }
.lr-pct-mark { position: absolute; top: calc(var(--u) * 17); width: 0; height: 0; border-left: calc(var(--u) * 4.5) solid transparent; border-right: calc(var(--u) * 4.5) solid transparent; border-bottom: calc(var(--u) * 7) solid var(--heart); transform: translateX(-50%); }
.lr-src { font-size: calc(var(--u) * 6.5); color: var(--muted); }
.lr-stats { display: flex; gap: calc(var(--u) * 6); }
.lr-stat { flex: 1; min-width: 0; background: var(--warm); border-radius: 2px; padding: calc(var(--u) * 7); }
.lr-stat svg { width: calc(var(--u) * 11); height: calc(var(--u) * 11); color: var(--forest); display: block; margin-bottom: calc(var(--u) * 2); }
.lr-stat--heart svg { color: var(--heart); }
.lr-stat b { display: block; font-size: calc(var(--u) * 14); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lr-stat span { display: block; font-size: calc(var(--u) * 6.5); color: var(--muted); line-height: 1.3; }
.lr-sec-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: calc(var(--u) * 6); margin-bottom: calc(var(--u) * 6); }
.lr-sec-title h3 { margin: 0; font-size: calc(var(--u) * 8.5); font-weight: 700; color: var(--forest); text-transform: uppercase; letter-spacing: .07em; }
.lr-sec-title span { font-size: calc(var(--u) * 7.5); color: var(--muted); }
.lr-vt { flex: 1; min-width: 0; background: var(--warm); border-radius: 4px; padding: calc(var(--u) * 10); border-left: calc(var(--u) * 3) solid var(--sage); }
.lr-vt--2 { border-left-color: var(--gold); }
.lr-vt-top { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.lr-vt-top b { font-size: calc(var(--u) * 13); font-weight: 700; color: var(--sage); }
.lr-vt--2 .lr-vt-top b { color: var(--gold); }
.lr-vt-top span { font-size: calc(var(--u) * 7); font-weight: 600; color: var(--muted); text-align: right; }
.lr-vt p { margin: calc(var(--u) * 4) 0 0; font-size: calc(var(--u) * 8); color: var(--muted); }
.lr-vt p.lr-vt-why { color: var(--gold); font-size: calc(var(--u) * 7.5); }
.lr-vt table { border-collapse: collapse; margin-top: calc(var(--u) * 5); }
.lr-vt td { padding: calc(var(--u) * 1.5) calc(var(--u) * 10) calc(var(--u) * 1.5) 0; font-size: calc(var(--u) * 7.5); color: var(--muted); white-space: nowrap; }
.lr-vt td:nth-child(2) { font-size: calc(var(--u) * 9.5); font-weight: 600; color: var(--ink); }
.lr-vt-none { font-size: calc(var(--u) * 13); font-weight: 600; color: var(--gold); margin-top: calc(var(--u) * 5); }
.lr-ladder { position: relative; height: calc(var(--u) * 70); }
.lr-ladder-bar { position: absolute; left: 0; right: 0; top: calc(var(--u) * 26); height: calc(var(--u) * 14); border-radius: 2px; background: linear-gradient(90deg, rgba(107,122,90,.35), rgba(155,110,42,.6), rgba(171,73,67,.75)); }
.lr-ladder-rest { position: absolute; left: 0; top: calc(var(--u) * 44); font-size: calc(var(--u) * 7); color: var(--muted); }
.lr-ladder-mark { position: absolute; top: calc(var(--u) * 6); width: calc(var(--u) * 60); transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: calc(var(--u) * 2); }
.lr-ladder-mark b { font-size: calc(var(--u) * 8.5); font-weight: 700; }
.lr-ladder-mark i { width: calc(var(--u) * 2); height: calc(var(--u) * 26); display: block; }
.lr-ladder-mark span { font-size: calc(var(--u) * 7.5); font-weight: 600; }
.lr-zones { display: flex; flex-direction: column; gap: calc(var(--u) * 4); }
.lr-zone { display: grid; grid-template-columns: calc(var(--u) * 26) calc(var(--u) * 130) calc(var(--u) * 110) calc(var(--u) * 170) 1fr; gap: calc(var(--u) * 10); align-items: center; }
.lr-zone--plain { grid-template-columns: calc(var(--u) * 26) calc(var(--u) * 130) calc(var(--u) * 110) calc(var(--u) * 110) 1fr; }
.lr-zone-n { width: calc(var(--u) * 26); height: calc(var(--u) * 26); color: #fff; font-size: calc(var(--u) * 14); font-weight: 700; display: flex; align-items: center; justify-content: center; border-radius: 2px; }
.lr-zone-name b { display: block; font-size: calc(var(--u) * 10.5); font-weight: 600; }
.lr-zone-name span { font-size: calc(var(--u) * 7.5); color: var(--muted); }
.lr-zone-v { font-size: calc(var(--u) * 9.5); font-weight: 600; }
.lr-zone-swatch { height: calc(var(--u) * 8); }
.lr-zone-head { font-size: calc(var(--u) * 6.5); font-weight: 700; color: var(--muted); }
.lr-zone-head > :first-child { grid-column: 3; }
.lr-text { font-size: calc(var(--u) * 8.5); margin: 0; line-height: 1.4; }
.lr-legend { display: flex; flex-wrap: wrap; gap: calc(var(--u) * 4) calc(var(--u) * 10); margin-bottom: calc(var(--u) * 6); }
.lr-legend span { display: inline-flex; align-items: center; gap: calc(var(--u) * 3); font-size: calc(var(--u) * 7); }
.lr-legend i { display: inline-block; width: calc(var(--u) * 6); height: calc(var(--u) * 6); }
.lr-legend i.lr-dash { height: 0; width: calc(var(--u) * 8); border-top: calc(var(--u) * 1.5) dashed currentColor; }
.lr-chart { position: relative; }
.lr-chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.lr-chart text { font-family: 'Outfit', 'Helvetica Neue', Arial, sans-serif; }
.lr-tip { position: absolute; pointer-events: none; background: var(--ink); color: #fff; font-size: 12px; padding: 6px 8px; border-radius: 2px; white-space: nowrap; transform: translate(-50%, -110%); display: none; z-index: 2; }
.lr-tip b { font-weight: 600; }
.lr-list { display: flex; flex-direction: column; gap: calc(var(--u) * 4); margin: 0; padding: 0; list-style: none; }
.lr-list li { display: flex; gap: calc(var(--u) * 6); align-items: flex-start; font-size: calc(var(--u) * 8); line-height: 1.35; }
.lr-list svg { width: calc(var(--u) * 9); height: calc(var(--u) * 9); flex: none; margin-top: calc(var(--u) * 1); color: var(--forest); }
.lr-list--gold svg { color: var(--gold); }
.lr-list .lr-warn svg { color: var(--gold); }
.lr-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.lr-table th { font-size: calc(var(--u) * 6.5); font-weight: 700; color: var(--muted); text-align: right; padding: calc(var(--u) * 4) calc(var(--u) * 3); white-space: nowrap; }
.lr-table td { font-size: calc(var(--u) * 8); text-align: right; padding: calc(var(--u) * 3.5) calc(var(--u) * 3); white-space: nowrap; }
.lr-table th:last-child, .lr-table td:last-child { text-align: left; }
.lr-table tr:nth-child(even) td { background: var(--warm); }
.lr-table tr.lr-mark td { background: rgba(155,110,42,.18); font-weight: 600; }
.lr-table tr.lr-rec td { background: rgba(62,122,78,.08); }
.lr-sub { font-size: calc(var(--u) * 7.5); font-weight: 700; color: var(--forest); letter-spacing: .07em; margin: calc(var(--u) * 12) 0 calc(var(--u) * 4); }
.lr-sub span { font-weight: 400; color: var(--muted); letter-spacing: 0; margin-left: 6px; }
.lr-band-card { background: var(--warm); border-radius: 2px; padding: calc(var(--u) * 8); }
.lr-band-top { display: flex; align-items: baseline; gap: calc(var(--u) * 4); }
.lr-band-top h4 { margin: 0 auto 0 0; font-size: calc(var(--u) * 7.5); font-weight: 700; color: var(--forest); letter-spacing: .07em; text-transform: uppercase; }
.lr-band-top b { font-size: calc(var(--u) * 17); font-weight: 600; }
.lr-band-top span { font-size: calc(var(--u) * 8); font-weight: 600; color: var(--muted); }
.lr-band-mark { position: relative; height: calc(var(--u) * 8); }
.lr-band-mark i { position: absolute; top: 0; width: 0; height: 0; border-left: calc(var(--u) * 4) solid transparent; border-right: calc(var(--u) * 4) solid transparent; border-top: calc(var(--u) * 6) solid var(--heart); transform: translateX(-50%); }
.lr-bands { display: flex; gap: 1px; }
.lr-bands > div { flex: 1; text-align: center; padding: calc(var(--u) * 4) 0; background: var(--step); }
.lr-bands > div.on { background: var(--forest); color: #fff; }
.lr-bands b { display: block; font-size: calc(var(--u) * 7.5); font-weight: 700; }
.lr-bands span { display: block; font-size: calc(var(--u) * 6.5); opacity: .8; }
.lr-band-note { font-size: calc(var(--u) * 6.5); color: var(--muted); margin-top: calc(var(--u) * 3); }
.lr-cmp { background: var(--warm); border-radius: 2px; padding: calc(var(--u) * 8); display: flex; flex-direction: column; gap: calc(var(--u) * 5); }
.lr-cmp-row { display: grid; grid-template-columns: calc(var(--u) * 150) 1fr calc(var(--u) * 120); gap: calc(var(--u) * 10); align-items: center; }
.lr-cmp-row b { display: block; font-size: calc(var(--u) * 9.5); font-weight: 600; }
.lr-cmp-row span { display: block; font-size: calc(var(--u) * 6.5); color: var(--muted); }
.lr-cmp-row i { display: block; height: calc(var(--u) * 12); }
.lr-cmp-row > :last-child { text-align: right; }
.lr-cmp-row > :last-child b { font-size: calc(var(--u) * 10.5); }
.lr-act td, .lr-act th { text-align: left; }
.lr-act td { font-size: calc(var(--u) * 7.5); color: var(--muted); white-space: normal; padding: calc(var(--u) * 4.5) calc(var(--u) * 8); }
.lr-act td:first-child { font-size: calc(var(--u) * 9.5); font-weight: 600; color: var(--ink); white-space: nowrap; }
.lr-act td:nth-child(3) { font-size: calc(var(--u) * 8.5); color: var(--ink); text-align: right; }
.lr-act td:last-child { font-size: calc(var(--u) * 10.5); font-weight: 600; color: var(--forest); text-align: right; white-space: nowrap; }
.lr-act th { padding: 0 calc(var(--u) * 8) calc(var(--u) * 4); }
.lr-act th:nth-child(3), .lr-act th:last-child { text-align: right; }
.lr-facts { display: flex; gap: calc(var(--u) * 8); align-items: stretch; }
.lr-fact { flex: 1; min-width: 0; background: var(--warm); border-radius: 2px; padding: calc(var(--u) * 8); }
.lr-fact > span { display: block; font-size: calc(var(--u) * 7); color: var(--muted); }
.lr-fact > b { display: block; font-size: calc(var(--u) * 15); font-weight: 600; margin: calc(var(--u) * 2) 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lr-fact > b small { font-size: calc(var(--u) * 7); font-weight: 400; color: var(--muted); }
.lr-fact > p { margin: 0; font-size: calc(var(--u) * 6.5); color: var(--muted); line-height: 1.35; }
.lr-half { flex: 1; min-width: 0; }
.lr-more summary { cursor: pointer; font-size: 14px; font-weight: 600; color: var(--forest); padding: 4px 0; }
.lr-print-only { display: none; }

/* A phone: one column, the PDF's proportions a little smaller. */
@media (max-width: 720px) {
  .lr:not(.lr-print) { --u: 1.35px; }
  .lr:not(.lr-print) .lr-sheet { padding: 20px 16px; }
  .lr:not(.lr-print) .lr-info { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lr:not(.lr-print) .lr-row { flex-direction: column; }
  .lr:not(.lr-print) .lr-hero { width: 100%; }
  .lr:not(.lr-print) .lr-stats, .lr:not(.lr-print) .lr-facts { flex-wrap: wrap; }
  .lr:not(.lr-print) .lr-stat, .lr:not(.lr-print) .lr-fact { flex: 1 1 calc(50% - 8px); }
  .lr:not(.lr-print) .lr-zone, .lr:not(.lr-print) .lr-zone--plain { grid-template-columns: calc(var(--u) * 26) 1fr; row-gap: 2px; }
  .lr:not(.lr-print) .lr-zone > .lr-zone-v { grid-column: 2; }
  .lr:not(.lr-print) .lr-zone-swatch, .lr:not(.lr-print) .lr-zone-head { display: none; }
  .lr:not(.lr-print) .lr-cmp-row { grid-template-columns: 1fr calc(var(--u) * 110); }
  .lr:not(.lr-print) .lr-cmp-row > i, .lr:not(.lr-print) .lr-cmp-row > div:nth-child(2) { grid-column: 1 / -1; order: 3; }
  .lr:not(.lr-print) .lr-table-wrap { overflow-x: auto; }
  .lr:not(.lr-print) .lr-act td:nth-child(2), .lr:not(.lr-print) .lr-act th:nth-child(2) { display: none; }
  .lr:not(.lr-print) .lr-ladder-mark { width: calc(var(--u) * 44); }
}

/* Drawn for the PDF: fixed US Letter pages, nothing interactive. */
.lr-print { --u: calc(4px / 3); gap: 0; align-items: flex-start; width: 816px; }
.lr-print .lr-sheet { width: 816px; max-width: none; height: 1056px; border: 0; overflow: hidden; }
.lr-print .lr-bar, .lr-print .lr-screen-only { display: none !important; }
.lr-print .lr-print-only { display: block; }

/* 1.0.3 (results 3.0.11, October 30, 2026): the site theme outlines every table cell (Astra: table, td, th { border: 1px solid }),
   which drew a grey box round each Heart rate / Lactate / % of max cell. The report's tables have no outlines, only a hairline
   between a card's rows. */
.lr table, .lr th, .lr td, .v3-hrlac table, .v3-hrlac th, .v3-hrlac td { border: 0; }
.lr-vt table { width: 100%; margin: calc(var(--u) * 5) 0 0; }
.lr-vt tr + tr td { border-top: 1px solid var(--hairline); }
