:root {
  /* Safe fallbacks; a validated Praxisprofil overrides these brand roles. */
  --brand-primary: #792122;
  --brand-primary-hover: #5f181a;
  --brand-primary-rgb: 121, 33, 34;
  --brand-dark: #0f172a;
  --brand-dark-soft: #1e293b;
  --brand-accent: #f57c00;
  --brand-accent-rgb: 245, 124, 0;
  --brand-highlight: #ffc400;
  --brand-highlight-rgb: 255, 196, 0;
  --brand-tint: #f8e9e9;
  --brand-accent-tint: #fff1df;
  --brand-border: #d7b5b5;
  --brand-report-tint: #faf5f5;
  --focus-ring-dark: #0f172a;
  --focus-ring-light: #ffffff;
  --surface-page: #f5f5f4;
  --surface-subtle: #fafafa;
  --surface-muted: #eeeae8;
  --surface-panel: #fff;
  --text-primary: #0f172a;
  --text-secondary: #475569;
  --text-muted: #64748b;
  --border-color: #e2e4e7;
  /* Scientific encoding stays stable regardless of branding. */
  --chart-heart-rate: #d94350;
  --chart-heart-rate-muted: #b4666c;
  --chart-lactate: #277faf;
  --chart-lactate-muted: #70a8c8;
  --amber: #c48422;
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, .05), 0 7px 22px rgba(15, 23, 42, .04);
  --shadow-md: 0 18px 50px rgba(15, 23, 42, .12);
  --radius-sm: 10px;
  --radius: 16px;
  --radius-lg: 24px;
}

* { box-sizing: border-box; }
html { color-scheme: light; scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  color: var(--text-primary);
  background: var(--surface-page);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  font-size: 15px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
a { color: inherit; }
svg { width: 1.15em; height: 1.15em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.svg-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 999; top: 10px; left: 10px; padding: 10px 16px; color: white; background: var(--brand-dark); border-radius: 8px; transform: translateY(-200%); }
.skip-link:focus { transform: none; }

.app-shell { min-height: 100vh; }
.sidebar {
  position: fixed;
  z-index: 30;
  inset: 0 auto 0 0;
  display: flex;
  width: 258px;
  flex-direction: column;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 26px 18px 22px;
  color: #e2e8f0;
  background:
    radial-gradient(circle at 18% 5%, rgba(var(--brand-accent-rgb), .18), transparent 26%),
    linear-gradient(165deg, var(--brand-primary), var(--brand-dark) 72%);
}
.brand { display: flex; align-items: flex-start; gap: 13px; margin: 0 8px 38px; color: white; text-decoration: none; }
.brand-logo { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; overflow: hidden; background: white; border: 1px solid rgba(15, 23, 42, .12); border-radius: 11px; }
.brand-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.brand-logo--sidebar { width: 54px; height: 54px; padding: 3px; box-shadow: 0 5px 18px rgba(15, 23, 42, .18); }
.brand-logo--mobile { width: 35px; height: 35px; padding: 2px; border-radius: 8px; }
.brand-logo--login { width: 72px; height: 72px; padding: 4px; border-radius: 14px; }
.brand-logo--report { width: 28mm; height: 28mm; padding: 1.5mm; border-radius: 3mm; }
.brand-logo--report-mini { width: 14mm; height: 14mm; padding: .6mm; border-radius: 2mm; }
.brand-copy { display: flex; min-width: 0; flex-direction: column; }
.brand-copy strong { font-size: 13px; line-height: 1.25; letter-spacing: .01em; overflow-wrap: anywhere; }
.brand-copy small { margin-top: 4px; color: #cbd5e1; font-size: 9px; line-height: 1.35; letter-spacing: .04em; }
.main-nav { display: grid; gap: 7px; }
.main-nav a { position: relative; display: flex; align-items: center; gap: 13px; padding: 12px 14px; color: #cbd5e1; border-radius: 11px; font-weight: 640; text-decoration: none; transition: .18s ease; }
.main-nav a:hover { color: white; background: rgba(255,255,255,.07); }
.main-nav a[aria-current="page"] { color: white; background: rgba(var(--brand-accent-rgb), .18); box-shadow: inset 0 0 0 1px rgba(var(--brand-highlight-rgb), .08); }
.main-nav a[aria-current="page"]::before { position: absolute; left: -18px; width: 3px; height: 27px; content: ""; background: var(--brand-highlight); border-radius: 0 4px 4px 0; }
.main-nav svg { width: 19px; height: 19px; }
.sidebar-note { display: flex; gap: 10px; align-items: flex-start; margin-top: auto; padding: 14px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.07); border-radius: 12px; }
.status-dot { display: inline-block; width: 7px; height: 7px; flex: 0 0 auto; background: var(--brand-highlight); border-radius: 50%; box-shadow: 0 0 0 4px rgba(var(--brand-highlight-rgb),.14); }
.sidebar-note .status-dot { margin-top: 6px; }
.sidebar-note div { display: flex; flex-direction: column; }
.sidebar-note strong { color: #f8fafc; font-size: 11px; }
.sidebar-note small { margin-top: 2px; color: #aeb8c6; font-size: 10px; line-height: 1.35; }
.sidebar-footer { display: flex; flex-direction: column; gap: 3px; padding: 21px 13px 0; color: #aeb8c6; font-size: 10px; }
.sidebar-operator { display: flex; flex-direction: column; margin-bottom: 6px; padding-bottom: 8px; border-bottom: 1px solid rgba(255,255,255,.08); }
.sidebar-operator strong { color: #f8fafc; font-size: 10px; line-height: 1.35; overflow-wrap: anywhere; }
.sidebar-operator small { margin-top: 2px; color: #aeb8c6; font-size: 9px; line-height: 1.35; overflow-wrap: anywhere; }
.app-version { margin-top: 7px; color: #87958f; font-size: 9px; letter-spacing: .08em; white-space: nowrap; }
.sidebar-footer a { text-decoration: none; }
.sidebar-footer a:hover { color: white; }
.sidebar-footer form { margin: 3px 0 0; }
.sidebar-footer button { padding: 0; color: #a9c0ba; background: none; border: 0; cursor: pointer; font-size: 10px; text-decoration: underline; }
.sidebar-footer button:hover { color: white; }
.app-main { min-height: 100vh; margin-left: 258px; }
.mobile-header { display: none; }
.page-wrap { width: min(100%, 1540px); margin: 0 auto; padding: 43px clamp(28px, 4vw, 66px) 72px; }

.page-header, .profile-header, .analysis-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 30px; }
.page-header h1, .profile-header h1, .analysis-header h1 { margin: 2px 0 7px; color: var(--brand-dark); font-size: clamp(29px, 3vw, 43px); font-weight: 760; line-height: 1.07; letter-spacing: -.045em; }
.page-header p:not(.eyebrow), .profile-header p, .analysis-header p { max-width: 660px; margin: 0; color: var(--text-muted); font-size: 15px; }
.eyebrow { margin: 0 0 5px; color: var(--brand-primary); font-size: 10px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.header-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.button { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 8px; padding: 10px 16px; border: 1px solid transparent; border-radius: 10px; cursor: pointer; font-size: 13px; font-weight: 720; line-height: 1.1; text-decoration: none; transition: transform .15s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease; }
.button:hover { transform: translateY(-1px); }
.button:focus-visible, button:focus-visible, a:focus-visible, summary:focus-visible { outline: 2px solid var(--focus-ring-light); outline-offset: 2px; box-shadow: 0 0 0 5px var(--focus-ring-dark) !important; }
.button svg { width: 16px; height: 16px; }
.button-primary { color: white; background: var(--brand-primary); box-shadow: 0 5px 15px rgba(var(--brand-primary-rgb),.18); }
.button-primary:hover { background: var(--brand-primary-hover); box-shadow: 0 7px 18px rgba(var(--brand-primary-rgb),.26); }
.button-secondary { color: var(--brand-dark); background: white; border-color: #d4d7dc; box-shadow: 0 1px 1px rgba(15,23,42,.03); }
.button-secondary:hover { border-color: #9eb4ab; }
.button-ghost { color: var(--text-secondary); background: transparent; }
.button-ghost:hover { background: var(--brand-tint); }
.button-danger { color: white; background: #b94747; }
.button-danger:hover { background: #9d3535; }
.button-block { width: 100%; }
.text-link { display: inline-flex; align-items: center; gap: 5px; color: var(--brand-primary); font-size: 12px; font-weight: 750; text-decoration: none; }
.text-link svg { width: 13px; transition: transform .15s ease; }
.text-link:hover svg { transform: translateX(3px); }

.panel { background: rgba(255,255,255,.92); border: 1px solid var(--border-color); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.panel-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 23px 25px 18px; }
.panel-header h2 { margin: 0; color: var(--brand-dark); font-size: 19px; letter-spacing: -.025em; }
.content-grid { display: grid; gap: 22px; }
.dashboard-grid { grid-template-columns: minmax(0, 1fr) 330px; }
.dashboard-grid > *, .recent-panel { min-width: 0; }
.recent-panel { overflow: hidden; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; margin-bottom: 22px; }
.metric-card { position: relative; display: flex; min-height: 142px; flex-direction: column; justify-content: center; padding: 23px; overflow: hidden; background: white; border: 1px solid var(--border-color); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.metric-card::after { position: absolute; right: -20px; bottom: -48px; width: 105px; height: 105px; content: ""; border: 1px solid var(--surface-muted); border-radius: 50%; }
.metric-label { color: var(--text-muted); font-size: 11px; font-weight: 720; letter-spacing: .045em; text-transform: uppercase; }
.metric-card > strong { margin: 8px 0 1px; color: var(--brand-dark); font-size: 34px; line-height: 1; letter-spacing: -.045em; }
.metric-foot { color: #8b9793; font-size: 11px; }
.metric-card-accent { color: white; background: linear-gradient(145deg, var(--brand-primary), var(--brand-dark)); border-color: transparent; }
.metric-card-accent .metric-label, .metric-card-accent .metric-foot { color: #a9c3bc; }
.metric-card-accent > strong { color: white; }
.metric-card-accent::after { border-color: rgba(var(--brand-accent-rgb),.2); box-shadow: 0 0 0 20px rgba(var(--brand-accent-rgb),.03); }
.method-card > strong { font-size: 19px; letter-spacing: -.02em; }

.table-wrap, .measurement-table-wrap, .zones-table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th { padding: 10px 16px; color: #5d6d67; background: #f8faf7; border-top: 1px solid var(--border-color); border-bottom: 1px solid var(--border-color); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-align: left; text-transform: uppercase; }
.data-table td { padding: 14px 16px; color: var(--text-secondary); border-bottom: 1px solid #edf0ec; font-size: 12px; }
.data-table tbody tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover { background: #fbfcfa; }
.person-cell { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.person-cell > span:last-child { display: flex; flex-direction: column; }
.person-cell strong { color: var(--text-primary); font-size: 12px; }
.person-cell small { color: var(--text-muted); font-size: 9px; }
.avatar { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; color: var(--brand-primary); background: var(--brand-tint); border: 1px solid var(--brand-border); border-radius: 50%; font-size: 10px; font-weight: 850; letter-spacing: .02em; }
.avatar-large { width: 47px; height: 47px; font-size: 13px; }
.avatar-xl { width: 68px; height: 68px; font-size: 19px; }
.badge { display: inline-flex; width: fit-content; align-items: center; gap: 5px; padding: 4px 8px; border-radius: 999px; font-size: 9px; font-weight: 800; letter-spacing: .025em; white-space: nowrap; }
.badge-success { color: #176151; background: #ddf5ed; }
.badge-draft { color: #6b726e; background: #ecefeb; }
.badge-review { color: #88580d; background: #fff0cc; }
.row-link { display: grid; width: 28px; height: 28px; place-items: center; color: var(--text-muted); border-radius: 7px; }
.row-link:hover { color: var(--brand-primary); background: var(--brand-tint); }
.row-link svg { width: 13px; }
.workflow-panel { padding-bottom: 22px; background: linear-gradient(155deg, #fff, #f8faf6); }
.workflow-panel > .eyebrow, .workflow-panel > h2 { margin-right: 25px; margin-left: 25px; }
.workflow-panel > .eyebrow { margin-top: 24px; }
.workflow-panel > h2 { margin-top: 0; font-size: 19px; }
.workflow-list { display: grid; gap: 2px; margin: 20px 24px 22px; padding: 0; list-style: none; counter-reset: steps; }
.workflow-list li { position: relative; display: flex; gap: 13px; align-items: center; min-height: 53px; }
.workflow-list li:not(:last-child)::after { position: absolute; top: 40px; bottom: -12px; left: 15px; width: 1px; content: ""; background: var(--brand-border); }
.workflow-list li > span { position: relative; z-index: 1; display: grid; width: 31px; height: 31px; place-items: center; color: var(--brand-primary); background: var(--brand-tint); border: 1px solid var(--brand-border); border-radius: 50%; font-size: 9px; font-weight: 850; }
.workflow-list li div { display: flex; flex-direction: column; }
.workflow-list strong { font-size: 12px; }
.workflow-list small { color: var(--text-muted); font-size: 10px; }
.science-note { margin: 0 22px; padding: 14px; background: #f0f4ef; border-left: 3px solid #7ea096; border-radius: 4px 9px 9px 4px; }
.science-note strong { color: var(--brand-primary); font-size: 10px; text-transform: uppercase; }
.science-note p { margin: 3px 0 0; color: var(--text-muted); font-size: 10px; line-height: 1.45; }
.empty-state { display: grid; min-height: 280px; place-items: center; align-content: center; padding: 35px; text-align: center; }
.empty-state h2 { margin: 15px 0 5px; font-size: 18px; }
.empty-state p { max-width: 430px; margin: 0 0 18px; color: var(--text-muted); font-size: 12px; }
.empty-state-mark { display: flex; height: 50px; align-items: flex-end; gap: 5px; }
.empty-state-mark span { display: block; width: 9px; background: var(--brand-border); border-radius: 5px 5px 2px 2px; }
.empty-state-mark span:nth-child(1) { height: 20px; }.empty-state-mark span:nth-child(2) { height: 43px; }.empty-state-mark span:nth-child(3) { height: 31px; }

.search-bar { display: flex; align-items: center; gap: 10px; padding: 16px 18px; border-bottom: 1px solid var(--border-color); }
.search-bar > span { color: var(--text-muted); font-size: 24px; }
.search-bar input { min-width: 0; flex: 1; padding: 10px 0; background: transparent; border: 0; outline: 0; }
.search-bar input:focus-visible { border-radius: 5px; outline: 2px solid var(--focus-ring-light); outline-offset: 2px; box-shadow: 0 0 0 5px var(--focus-ring-dark); }
.search-bar > a { color: var(--text-muted); font-size: 11px; }
.athlete-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1px; background: var(--border-color); }
.athlete-card { display: grid; grid-template-columns: auto 1fr auto auto; gap: 13px; align-items: center; min-height: 93px; padding: 17px 22px; background: white; text-decoration: none; transition: background .15s ease; }
.athlete-card:hover { background: #f9fbf8; }
.athlete-card-body { display: flex; min-width: 0; flex-direction: column; }
.athlete-card-body strong { font-size: 14px; }
.athlete-card-body small { color: var(--text-muted); font-size: 10px; }
.athlete-card > svg { width: 14px; color: #9ba7a3; }
.analysis-device-notice { margin-bottom: 17px; }
.analysis-device-panel { overflow: hidden; }
.analysis-device-list { display: grid; }
.analysis-device-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 24px; align-items: center; padding: 22px 25px; border-bottom: 1px solid var(--border-color); }
.analysis-device-row:last-child { border-bottom: 0; }
.analysis-device-row-body { min-width: 0; }
.analysis-device-row-body h2 { margin: 0; color: var(--brand-dark); font-size: 16px; letter-spacing: -.015em; overflow-wrap: anywhere; }
.analysis-device-row-body p { margin: 5px 0; color: var(--text-secondary); font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; }
.analysis-device-row-body .analysis-device-empty-description { color: var(--text-muted); font-style: italic; }
.analysis-device-row-body small { color: var(--text-muted); font-size: 9px; }
.analysis-device-row-actions { display: flex; gap: 8px; align-items: center; }
.analysis-device-form-page { width: min(820px, 100%); }
.analysis-device-form-notice { margin-top: 22px; }
.analysis-device-delete-notice { margin: 22px 0; text-align: left; }

.breadcrumbs { display: flex; gap: 8px; align-items: center; margin: -10px 0 26px; color: #5e6f69; font-size: 11px; }
.breadcrumbs a { color: var(--brand-primary); text-decoration: none; }
.profile-header { align-items: center; }
.profile-identity, .analysis-person { display: flex; align-items: center; gap: 16px; }
.profile-identity h1, .analysis-person h1 { margin-top: 2px; margin-bottom: 2px; }
.profile-kicker { display: flex; align-items: center; gap: 8px; color: var(--brand-primary); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.profile-grid { grid-template-columns: 360px minmax(0,1fr); }
.detail-list { margin: 0; padding: 0 25px 22px; }
.detail-list > div { display: grid; grid-template-columns: 120px 1fr; gap: 15px; padding: 10px 0; border-bottom: 1px solid #edf1ed; }
.detail-list dt { color: var(--text-muted); font-size: 10px; }
.detail-list dd { margin: 0; font-size: 11px; font-weight: 650; }
.detail-list a { color: var(--brand-primary); }
.note-block { margin: 0 25px 25px; padding: 14px; background: #f5f8f4; border-radius: 10px; }
.note-block > span { color: var(--brand-primary); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.note-block p { margin: 5px 0 0; color: var(--text-secondary); font-size: 11px; }
.count-pill { display: grid; min-width: 27px; height: 27px; place-items: center; padding: 0 8px; color: var(--brand-primary); background: var(--brand-tint); border-radius: 999px; font-size: 10px; font-weight: 800; }
.timeline { padding: 0 25px 20px; }
.timeline-item { position: relative; display: grid; grid-template-columns: 12px 82px 1fr auto auto; gap: 12px; align-items: center; min-height: 66px; color: inherit; border-top: 1px solid #edf1ed; text-decoration: none; }
.timeline-item:last-child { border-bottom: 1px solid #edf1ed; }
.timeline-dot { position: relative; width: 8px; height: 8px; background: var(--brand-accent); border: 2px solid white; border-radius: 50%; box-shadow: 0 0 0 1px var(--brand-border); }
.timeline-date { color: var(--text-muted); font-size: 10px; }
.timeline-body { display: flex; flex-direction: column; }
.timeline-body strong { font-size: 12px; }.timeline-body small { color: var(--text-muted); font-size: 9px; }
.test-moment-chip { color: var(--brand-primary); font-weight: 800; }
.timeline-item > svg { width: 12px; color: #95a09c; }

.form-page-header { margin-bottom: 25px; }
.stack-form { display: grid; gap: 17px; }
.form-section { padding: 25px; }
.section-heading { display: flex; gap: 15px; align-items: flex-start; margin-bottom: 24px; }
.section-heading > span:first-child { display: grid; width: 29px; height: 29px; flex: 0 0 auto; place-items: center; color: var(--brand-primary); background: var(--brand-tint); border-radius: 9px; font-size: 9px; font-weight: 850; }
.section-heading h2, .section-heading strong { display: block; margin: 0; color: var(--brand-dark); font-size: 17px; font-weight: 760; letter-spacing: -.02em; }
.section-heading p, .section-heading small { display: block; margin: 3px 0 0; color: var(--text-muted); font-size: 10px; font-weight: 450; }
.form-grid { display: grid; gap: 17px 20px; }
.form-grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.form-grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.form-grid-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.compact-grid { max-width: 680px; }
.span-2 { grid-column: span 2; }
.form-group { min-width: 0; }
.form-group > label:not(.checkbox-label) { display: block; margin-bottom: 6px; color: var(--text-secondary); font-size: 10px; font-weight: 720; }
.required { margin-left: 3px; color: #c64f4f; }
.form-control { width: 100%; min-height: 42px; padding: 9px 11px; color: var(--text-primary); background: #fbfcfa; border: 1px solid #cfd9d3; border-radius: 8px; outline: 0; transition: border .15s ease, box-shadow .15s ease, background .15s ease; }
textarea.form-control { resize: vertical; line-height: 1.45; }
.form-control:hover { border-color: #aebdb6; }
.form-control:focus { background: white; border-color: var(--brand-primary); box-shadow: 0 0 0 3px var(--brand-primary); }
.form-control:disabled { color: #53625d; background: #eef1ed; border-color: #d9dfdb; cursor: not-allowed; }
select.form-control { padding-right: 32px; }
.athlete-combobox { position: relative; }
.athlete-combobox[hidden], .athlete-combobox-listbox[hidden] { display: none; }
.athlete-combobox-control { position: relative; }
.athlete-combobox .form-control { padding-right: 42px; background: #fbfcfa; }
.athlete-combobox-toggle { position: absolute; top: 1px; right: 1px; display: grid; width: 40px; height: 40px; place-items: center; padding: 0; color: var(--text-secondary); background: transparent; border: 0; border-radius: 0 7px 7px 0; cursor: pointer; }
.athlete-combobox-toggle:hover { color: var(--brand-primary); background: var(--brand-tint); }
.athlete-combobox-toggle:focus-visible { outline: 3px solid var(--brand-primary); outline-offset: 2px; }
.athlete-combobox-toggle > span { width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .15s ease; }
.athlete-combobox-toggle[aria-expanded="true"] > span { transform: translateY(2px) rotate(225deg); }
.athlete-combobox-listbox { position: absolute; z-index: 30; top: calc(100% + 5px); right: 0; left: 0; max-height: 260px; padding: 5px; overflow-y: auto; background: white; border: 1px solid #cfd9d3; border-radius: 9px; box-shadow: 0 14px 34px rgba(15,23,42,.16); }
.athlete-combobox-option { padding: 9px 10px; color: var(--text-primary); border-radius: 6px; cursor: pointer; font-size: 11px; line-height: 1.35; }
.athlete-combobox-option:hover, .athlete-combobox-option[data-active="true"] { color: var(--brand-primary); background: var(--brand-tint); }
.athlete-combobox-option[aria-selected="true"] { color: white; background: var(--brand-primary); font-weight: 720; }
.athlete-combobox-option[aria-selected="true"][data-active="true"] { background: var(--brand-primary-hover); }
.athlete-filter-empty { margin: 0; padding: 11px 10px; color: #8c2d2d; font-size: 9px; font-weight: 650; }
.athlete-filter-empty[hidden] { display: none; }
.test-moment-field .form-control { display: flex; min-height: 42px; align-items: center; gap: 18px; padding: 8px 11px; }
.test-moment-field .form-control > div { display: inline-flex; }
.test-moment-field .form-control label { display: inline-flex; align-items: center; gap: 7px; color: var(--text-secondary); cursor: pointer; font-size: 11px; font-weight: 700; }
.test-moment-field .form-control input { width: 17px; height: 17px; margin: 0; accent-color: var(--brand-primary); }
.help-text { margin-top: 5px; color: #60706a; font-size: 9px; line-height: 1.35; }
.field-error, .cell-error { display: block; margin-top: 4px; color: #af3535; font-size: 9px; font-weight: 650; }
.field-error > span { display: block; }
.has-error .form-control { border-color: #d67878; background: #fffafa; }
.checkbox-label { display: inline-flex; align-items: center; gap: 8px; color: var(--text-secondary); font-size: 11px; font-weight: 700; cursor: pointer; }
.form-check-input { width: 17px; height: 17px; accent-color: var(--brand-primary); }
.form-check-input:focus-visible, .test-moment-field input:focus-visible { outline: 3px solid var(--brand-primary); outline-offset: 2px; }
.form-errors { padding: 13px 16px; color: #8c2d2d; background: #fff1f1; border: 1px solid #efc4c4; border-radius: 10px; font-size: 11px; }
.form-errors ul { margin: 0; padding-left: 18px; }
.form-actions { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.form-actions > div { display: flex; gap: 9px; }
.sticky-actions { position: sticky; z-index: 10; bottom: 15px; padding: 12px; background: rgba(250,250,250,.92); border: 1px solid rgba(212,215,220,.92); border-radius: 13px; box-shadow: 0 10px 35px rgba(15,23,42,.12); backdrop-filter: blur(12px); }
.profile-update-dialog { width: min(620px, calc(100% - 32px)); max-height: calc(100vh - 32px); padding: 0; overflow: auto; color: var(--text-primary); background: var(--surface-panel); border: 1px solid var(--border-color); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
.profile-update-dialog::backdrop { background: rgba(15,23,42,.48); backdrop-filter: blur(3px); }
.profile-update-dialog-content { padding: 28px; }
.profile-update-dialog h2 { margin: 0 0 8px; color: var(--brand-dark); font-size: 24px; letter-spacing: -.025em; }
.profile-update-dialog-content > p:not(.eyebrow) { margin: 0; color: var(--text-secondary); }
.profile-update-summary { display: grid; gap: 8px; padding: 0; margin: 20px 0; list-style: none; }
.profile-update-summary li { padding: 12px 14px; color: var(--brand-dark); background: var(--brand-tint); border: 1px solid var(--brand-border); border-radius: var(--radius-sm); font-weight: 700; }
.profile-update-note { font-size: 13px; }
.profile-update-dialog-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.profile-update-dialog-actions .button { flex: 1 1 210px; }
.disclosure { padding: 0; overflow: hidden; }
.disclosure summary { display: flex; align-items: center; justify-content: space-between; padding: 23px 25px; cursor: pointer; list-style: none; }
.disclosure summary::-webkit-details-marker { display: none; }
.disclosure summary .section-heading { margin: 0; }
.disclosure-icon { color: var(--brand-primary); font-size: 21px; transition: transform .2s ease; }
.disclosure[open] .disclosure-icon { transform: rotate(45deg); }
.disclosure-body { padding: 0 25px 25px; border-top: 1px solid var(--border-color); }
.threshold-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin: 20px 0; }
.threshold-form-column { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; padding: 16px; background: #f7f9f6; border-radius: 12px; }
.threshold-form-column h3 { grid-column: 1/-1; margin: 0; color: var(--brand-primary); font-size: 12px; }
.callout { padding: 14px 16px; border-radius: 10px; }
.callout strong { display: block; margin-bottom: 2px; font-size: 10px; text-transform: uppercase; }
.callout p { margin: 0; font-size: 10px; line-height: 1.45; }
.callout-neutral { color: var(--brand-primary); background: var(--brand-accent-tint); border-left: 3px solid var(--brand-primary); }
.callout-warning { color: #73521d; background: #fff7e5; border-left: 3px solid #e3ad50; }
.compact-callout { margin-bottom: 17px; }

.stepper { display: flex; align-items: center; justify-content: center; margin: 0 0 24px; padding: 14px 20px; background: white; border: 1px solid var(--border-color); border-radius: 13px; box-shadow: var(--shadow-sm); }
.stepper-item { display: flex; align-items: center; gap: 9px; color: #85918d; text-decoration: none; }
.stepper-item[aria-disabled="true"] { pointer-events: none; }
.stepper-item[aria-disabled="true"] { opacity: .68; }
.stepper-item > span { display: grid; width: 27px; height: 27px; place-items: center; border: 1px solid #cad4ce; border-radius: 50%; font-size: 9px; font-weight: 800; }
.stepper-item > div { display: flex; flex-direction: column; }
.stepper-item strong { font-size: 10px; }.stepper-item small { font-size: 8px; }
.stepper-item.active { color: var(--brand-primary); }
.stepper-item.active > span { color: white; background: var(--brand-primary); border-color: var(--brand-primary); box-shadow: 0 0 0 4px var(--brand-tint); }
.stepper-item.complete { color: var(--brand-primary); }
.stepper-item.complete > span { background: var(--brand-tint); border-color: var(--brand-border); }
.stepper-line { width: clamp(18px, 4vw, 75px); height: 1px; margin: 0 12px; background: #d8dfdb; }

.measurements-panel { overflow: hidden; }
.measurement-panel-header { padding-bottom: 15px; }
.unit-legend { display: grid; grid-template-columns: auto auto; gap: 2px 7px; color: var(--text-muted); font-size: 9px; }
.unit-legend strong { color: var(--brand-primary); }
.measurements-panel .callout { margin-right: 25px; margin-left: 25px; }
.measurement-table-wrap { margin-top: 20px; }
.measurement-table { width: 100%; min-width: 920px; border-collapse: collapse; }
.measurement-table th { padding: 9px 7px; color: #71807b; background: #f2f5f1; border-top: 1px solid var(--border-color); border-bottom: 1px solid var(--border-color); font-size: 9px; text-align: left; text-transform: uppercase; }
.measurement-table th:first-child, .measurement-table td:first-child { padding-left: 24px; }
.measurement-table th small { display: block; color: #9aa49f; font-size: 7px; font-weight: 500; text-transform: none; }
.measurement-table td { padding: 7px; border-bottom: 1px solid #e8ece8; vertical-align: top; }
.measurement-table .form-control { min-height: 37px; padding: 6px 8px; font-size: 11px; }
.measurement-table td:nth-child(1) { width: 68px; }.measurement-table td:nth-child(2) { width: 88px; }.measurement-table td:nth-child(3) { width: 110px; }.measurement-table td:nth-child(4) { width: 95px; }.measurement-table td:nth-child(5) { width: 105px; }.measurement-table td:nth-child(6) { width: 80px; }.measurement-table td:last-child { width: 48px; }
.measurement-row { transition: opacity .2s ease; }
.measurement-row:focus-within { background: #f7fbf8; }
.measurement-row.row-error { background: #fff8f8; }
.measurement-row.is-deleted { opacity: .28; text-decoration: line-through; }
.delete-cell label { display: grid; width: 31px; height: 31px; place-items: center; color: #a07373; border-radius: 7px; cursor: pointer; font-size: 19px; }
.delete-cell label:hover { color: #b63838; background: #fff0f0; }
.delete-cell input { position: absolute; opacity: 0; pointer-events: none; }
.delete-cell label:has(input:focus-visible) { color: #9d3535; outline: 2px solid var(--focus-ring-light); outline-offset: 2px; box-shadow: 0 0 0 5px var(--focus-ring-dark); }
.button-add-row { margin: 16px 24px 21px; color: var(--brand-primary); background: var(--brand-tint); border: 1px dashed var(--brand-border); }

.threshold-review-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-bottom: 18px; }
.threshold-review-card { position: relative; padding: 19px; overflow: hidden; background: white; border: 1px solid var(--border-color); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.threshold-review-card > div:first-of-type small, .threshold-review-card > small { color: var(--text-muted); font-size: 8px; font-weight: 700; text-transform: uppercase; }
.threshold-review-card h2 { margin: 3px 0 13px; font-size: 14px; }
.threshold-review-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; }
.threshold-review-card dl > div { padding: 9px; background: #f5f8f5; border-radius: 8px; }
.threshold-review-card dt { color: var(--text-muted); font-size: 8px; }.threshold-review-card dd { margin: 2px 0 0; font-size: 14px; font-weight: 800; }.threshold-review-card dd small { font-size: 8px; }
.threshold-dot { position: absolute; top: 0; right: 0; width: 65px; height: 5px; }
.threshold-dot-aerobic { background: var(--brand-accent); }.threshold-dot-anaerobic { background: #ef9a55; }
.method-summary { color: white; background: var(--brand-dark); border-color: var(--brand-dark); }
.method-summary > small, .method-summary p { color: #a8c1ba; }
.method-summary h2 { color: white; }
.method-summary p { margin: 0 0 8px; font-size: 10px; }
.method-summary .text-link { color: var(--brand-highlight); }
.unavailable { color: #8b9591; font-size: 10px; font-style: italic; }
.zones-form-panel { padding: 0; overflow: hidden; }
.zones-form-panel > .callout { margin: 0 25px 20px; }
.zones-editor { border-top: 1px solid var(--border-color); }
.zone-editor { position: relative; padding: 17px 24px; border-bottom: 1px solid var(--border-color); }
.zone-editor:last-child { border-bottom: 0; }
.zone-editor::before { position: absolute; inset: 0 auto 0 0; width: 4px; content: ""; background: #9ba5a1; }
.zone-editor.zone-cyan::before { background: #5ec8d1; }.zone-editor.zone-green::before { background: #61c875; }.zone-editor.zone-yellow::before { background: #e5cf43; }.zone-editor.zone-orange::before { background: #e98b39; }.zone-editor.zone-red::before { background: #db5252; }
.zone-editor-title { display: grid; grid-template-columns: 10px 95px minmax(180px,1fr) 140px; gap: 10px; align-items: end; }
.zone-editor-title .form-group > label { font-size: 8px; }
.zone-color { display: block; width: 8px; height: 38px; margin-bottom: 1px; background: var(--brand-highlight); border-radius: 5px; }
.zone-editor-values { display: grid; grid-template-columns: 1fr 1fr 1.5fr; gap: 20px; margin: 13px 0 0 20px; }
.zone-editor fieldset { display: grid; grid-template-columns: 1fr auto 1fr; gap: 7px; align-items: center; margin: 0; padding: 0; border: 0; }
.zone-editor legend { grid-column: 1/-1; margin-bottom: 4px; color: var(--text-muted); font-size: 8px; font-weight: 750; text-transform: uppercase; }
.zone-editor legend small { font-weight: 450; text-transform: none; }
.zone-editor fieldset > span { color: #9aa5a0; font-size: 9px; }
.zone-editor .form-control { min-height: 36px; padding: 6px 8px; font-size: 11px; }
.zone-editor-values .form-group > label { display: none; }
.zone-description textarea { height: 36px; min-height: 36px; }
.zone-approval { padding: 20px 24px; background: #eef5f1; border-top: 1px solid var(--border-color); }
.zone-approval label { display: flex; gap: 11px; align-items: flex-start; cursor: pointer; }
.zone-approval input { margin-top: 2px; flex: 0 0 auto; }
.zone-approval label > span { display: flex; flex-direction: column; }
.zone-approval strong { color: var(--brand-dark); font-size: 11px; }
.zone-approval small { margin-top: 2px; color: var(--text-muted); font-size: 9px; }

.analysis-header { align-items: center; margin-bottom: 20px; }
.analysis-tabs { display: flex; gap: 4px; margin-bottom: 18px; padding: 5px; background: #e9eeea; border-radius: 11px; }
.analysis-tabs a { padding: 8px 17px; color: #697771; border-radius: 8px; font-size: 10px; font-weight: 730; text-decoration: none; }
.analysis-tabs a:hover { color: var(--brand-primary); }
.analysis-tabs a.active { color: var(--brand-dark); background: white; box-shadow: 0 2px 6px rgba(15,23,42,.08); }
.quality-banner { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 17px; padding: 14px 18px; color: #684a18; background: #fff7e5; border: 1px solid #f0d89e; border-radius: 12px; }
.quality-icon { display: grid; width: 25px; height: 25px; flex: 0 0 auto; place-items: center; color: white; background: #d59b35; border-radius: 50%; font-size: 12px; font-weight: 850; }
.quality-banner strong { font-size: 11px; }.quality-banner ul { display: flex; flex-wrap: wrap; gap: 3px 25px; margin: 3px 0 0; padding-left: 15px; font-size: 9px; }
.analysis-metrics { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); margin-bottom: 17px; overflow: hidden; background: white; border: 1px solid var(--border-color); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.analysis-metrics article { padding: 17px 20px; border-right: 1px solid var(--border-color); }
.analysis-metrics article:last-child { border: 0; }
.analysis-metrics span { display: block; color: var(--text-muted); font-size: 8px; font-weight: 730; text-transform: uppercase; }
.analysis-metrics strong { display: block; margin-top: 3px; color: var(--brand-dark); font-size: 22px; letter-spacing: -.03em; }
.analysis-metrics strong small { font-size: 9px; font-weight: 600; }
.analysis-layout { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 17px; margin-bottom: 17px; }
.chart-panel { min-width: 0; align-self: start; overflow: hidden; }
.chart-panel .panel-header { padding-bottom: 6px; }
.method-pill, .info-tag { max-width: 270px; padding: 5px 8px; color: var(--brand-primary); background: var(--brand-tint); border-radius: 999px; overflow: hidden; font-size: 8px; font-weight: 740; text-overflow: ellipsis; white-space: nowrap; }
.chart-component { padding: 0 18px 15px; }
.chart-controls { margin: 2px 6px 11px; padding: 10px 12px 9px; background: #f6f8f5; border: 1px solid var(--border-color); border-radius: 10px; }
.chart-controls legend { padding: 0 5px; color: var(--brand-primary); font-size: 9px; font-weight: 780; letter-spacing: .04em; }
.chart-control-options { display: flex; flex-wrap: wrap; gap: 6px 13px; }
.chart-control-options label { display: inline-flex; min-width: 0; align-items: center; gap: 5px; color: var(--text-secondary); cursor: pointer; font-size: 9px; font-weight: 650; }
.chart-control-options label[hidden] { display: none !important; }
.chart-control-options input { width: 13px; height: 13px; margin: 0; accent-color: var(--brand-primary); }
.chart-control-options input:focus-visible, .chart-reset:focus-visible, .chart-expand:focus-visible { outline: 2px solid var(--focus-ring-light); outline-offset: 2px; box-shadow: 0 0 0 5px var(--focus-ring-dark) !important; }
.chart-controls-footer { display: flex; min-height: 19px; align-items: flex-end; justify-content: space-between; gap: 12px; margin-top: 5px; }
.chart-control-status { color: var(--text-muted); font-size: 8px; }
.chart-control-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px 13px; }
.chart-reset, .chart-expand { padding: 2px 0; color: var(--brand-primary); background: transparent; border: 0; cursor: pointer; font-size: 8px; font-weight: 720; text-decoration: underline; text-underline-offset: 2px; }
.chart-reset:disabled { color: #929e99; cursor: default; text-decoration: none; }
.chart-legend { display: flex; flex-wrap: wrap; gap: 7px 15px; justify-content: flex-end; min-height: 16px; padding: 0 27px 4px; color: var(--text-muted); font-size: 8px; }
.chart-legend span { display: flex; align-items: center; gap: 6px; }
.legend-series { display: block; width: 18px; height: 2px; border-radius: 2px; }
.legend-mader-heart-rate { background: var(--chart-heart-rate); }.legend-mader-lactate { background: var(--chart-lactate); }
.legend-dmax-heart-rate { height: 7px; background: linear-gradient(transparent 2px,var(--chart-heart-rate) 2px,var(--chart-heart-rate) 4px,transparent 4px); border: 1px solid var(--chart-heart-rate); border-radius: 50%; }.legend-dmax-lactate { height: 7px; background: white; border: 2px solid var(--chart-lactate); border-radius: 1px; }
.legend-dmax-fit { background: repeating-linear-gradient(90deg,#39423f 0 2px,transparent 2px 5px); }.legend-dmax-chord { background: repeating-linear-gradient(90deg,#303634 0 6px,transparent 6px 10px); }
.legend-comparison-baseline-heart-rate { background: repeating-linear-gradient(90deg,var(--chart-heart-rate-muted) 0 4px,transparent 4px 7px); }.legend-comparison-baseline-lactate { background: repeating-linear-gradient(90deg,var(--chart-lactate-muted) 0 4px,transparent 4px 7px); }
.legend-comparison-follow-up-heart-rate { background: var(--chart-heart-rate); }.legend-comparison-follow-up-lactate { background: var(--chart-lactate); }
.legend-diamond { display: block; width: 7px; height: 7px; transform: rotate(45deg); border: 1px solid currentColor; }.legend-threshold-aerobic { color: #65b92f; background: #8add4e; }.legend-threshold-anaerobic { color: #885191; background: #b67ac0; }
.legend-zone { display: block; width: 9px; height: 9px; flex: 0 0 auto; border: 1px solid rgba(36,61,54,.28); border-radius: 2px; }
.legend-zone-cyan { background: #aee7ed; }.legend-zone-green { background: #b7eaba; }.legend-zone-yellow { background: #f1e88a; }.legend-zone-orange { background: #f5bf91; }.legend-zone-red { background: #efaaaa; }.legend-zone-slate { background: #c9d2ce; }
.legend-threshold-comparison-baseline-aerobic { color: #6f963b; background: #d7e8bf; }.legend-threshold-comparison-baseline-anaerobic { color: #805d86; background: #dfcce3; }
.legend-threshold-comparison-follow-up-aerobic { color: #4f842c; background: #86d944; }.legend-threshold-comparison-follow-up-anaerobic { color: #73447c; background: #b477bf; }
.lactate-chart { position: relative; width: 100%; min-height: 300px; }
.chart-svg { display: block; width: 100%; height: auto; font-family: inherit; }
.chart-svg-interactive { cursor: crosshair; touch-action: pan-y; }
.chart-svg-interactive:focus-visible { border-radius: 4px; outline: 2px solid var(--focus-ring-light); outline-offset: 2px; box-shadow: 0 0 0 5px var(--focus-ring-dark); }
.chart-svg text { stroke: none; stroke-width: 0; paint-order: normal; }
.chart-title { fill: #26332f; font-size: 13px; font-weight: 600; }
.chart-plot { fill: #f8faf8; }
.chart-profile-mader-bike .chart-plot { fill: #aebfc0; }.chart-profile-modified-dmax-run .chart-plot { fill: #fafafa; }
.chart-grid line { stroke: #cbd5cf; stroke-width: .8; }.chart-grid .chart-grid-vertical { stroke: #d9dfdb; }
.chart-profile-mader-bike .chart-grid line { stroke: #7d8e8e; stroke-dasharray: 3 4; }.chart-profile-modified-dmax-run .chart-grid line { stroke: #d1d1d1; }
.chart-tick { fill: #52615c; font-size: 9px; font-weight: 400; }.chart-tick-hr, .chart-tick-la { fill: #35413d; }
.chart-frame { fill: none; stroke: #45534e; stroke-width: 1.2; }.chart-axis-label { fill: #4c5b56; font-size: 10px; font-weight: 500; }.chart-axis-hr, .chart-axis-la { fill: #3c4944; }
.chart-lactate-band { fill: #7b837f; opacity: .18; }
.chart-training-zone { opacity: .16; }
.chart-training-zone:focus { outline: none; stroke: #173f37; stroke-width: 2; opacity: .3; }
.zone-fill-cyan { fill: #34d9df; }.zone-fill-green { fill: #17e92b; }.zone-fill-yellow { fill: #f1ef18; }.zone-fill-orange { fill: #f39116; }.zone-fill-red { fill: #f12521; }.zone-fill-slate { fill: #93a29c; }
.chart-series { fill: none; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.chart-series-mader-heart-rate { stroke: var(--chart-heart-rate); }.chart-series-mader-lactate { stroke: var(--chart-lactate); }
.chart-series-dmax-heart-rate { stroke: var(--chart-heart-rate); }.chart-series-dmax-lactate { stroke: var(--chart-lactate); }
.chart-series-dmax-fit { stroke: #39423f; stroke-width: 1.25; stroke-dasharray: 2 3; }.chart-series-dmax-chord { stroke: #303634; stroke-width: 1.2; stroke-dasharray: 7 4; }
.chart-series-comparison-baseline-heart-rate { stroke: var(--chart-heart-rate-muted); stroke-dasharray: 7 5; stroke-width: 2; }.chart-series-comparison-baseline-lactate { stroke: var(--chart-lactate-muted); stroke-dasharray: 7 5; stroke-width: 2; }
.chart-series-comparison-follow-up-heart-rate { stroke: var(--chart-heart-rate); }.chart-series-comparison-follow-up-lactate { stroke: var(--chart-lactate); }
.chart-marker { fill: white; stroke-width: 1.8; }.chart-marker-dmax-heart-rate { stroke: var(--chart-heart-rate); }.chart-marker-dmax-lactate { stroke: var(--chart-lactate); }
.chart-marker-comparison-baseline-heart-rate { stroke: var(--chart-heart-rate-muted); }.chart-marker-comparison-baseline-lactate { stroke: var(--chart-lactate-muted); }
.chart-marker-comparison-follow-up-heart-rate { stroke: var(--chart-heart-rate); }.chart-marker-comparison-follow-up-lactate { stroke: var(--chart-lactate); }
.chart-marker:focus, .chart-threshold-marker:focus { outline: none; stroke-width: 3.5; }
.chart-threshold { stroke-width: 1.4; stroke-dasharray: 7 4; }.chart-threshold-aerobic { stroke: #91bf2d; }.chart-threshold-anaerobic { stroke: #83518f; }
.chart-threshold-comparison-baseline-aerobic { stroke: #729747; stroke-dasharray: 3 4; }.chart-threshold-comparison-baseline-anaerobic { stroke: #805d86; stroke-dasharray: 3 4; }
.chart-threshold-comparison-follow-up-aerobic { stroke: #79ae31; }.chart-threshold-comparison-follow-up-anaerobic { stroke: #784681; }
.chart-threshold-marker { stroke-width: 1.5; }.chart-threshold-marker-aerobic { fill: #86d944; stroke: #559b27; }.chart-threshold-marker-anaerobic { fill: #b477bf; stroke: #784681; }
.chart-threshold-marker-comparison-baseline-aerobic { fill: #d7e8bf; stroke: #729747; }.chart-threshold-marker-comparison-baseline-anaerobic { fill: #dfcce3; stroke: #805d86; }
.chart-threshold-marker-comparison-follow-up-aerobic { fill: #86d944; stroke: #559b27; }.chart-threshold-marker-comparison-follow-up-anaerobic { fill: #b477bf; stroke: #784681; }
.chart-threshold-label { font-size: 9px; font-weight: 500; }.chart-threshold-label-aerobic { fill: #4f842c; }.chart-threshold-label-anaerobic { fill: #73447c; }
.chart-threshold-label-comparison-baseline-aerobic { fill: #617e3e; }.chart-threshold-label-comparison-baseline-anaerobic { fill: #725177; }
.chart-threshold-label-comparison-follow-up-aerobic { fill: #4f842c; }.chart-threshold-label-comparison-follow-up-anaerobic { fill: #73447c; }
.chart-inspector-layer { pointer-events: none; }
.chart-inspector-crosshair { stroke: #26332f; stroke-width: 1.15; stroke-dasharray: 4 3; opacity: .82; vector-effect: non-scaling-stroke; }
.chart-inspector-dot { fill: white; stroke-width: 2.5; vector-effect: non-scaling-stroke; }
.chart-tooltip { position: absolute; z-index: 4; width: min(310px,calc(100% - 8px)); padding: 10px 11px; color: #f8faf9; background: rgba(24,38,34,.96); border: 1px solid rgba(255,255,255,.16); border-radius: 9px; box-shadow: 0 10px 28px rgba(15,23,42,.24); pointer-events: none; font-size: 8px; line-height: 1.35; }
.chart-tooltip[hidden] { display: none; }
.chart-tooltip-load { display: block; margin-bottom: 6px; color: white; font-size: 10px; }
.chart-tooltip-values { display: grid; gap: 4px; }
.chart-tooltip-row { display: grid; grid-template-columns: 8px minmax(0,1fr) auto; gap: 6px; align-items: center; }
.chart-tooltip-row > strong { color: white; white-space: nowrap; }
.chart-tooltip-label { min-width: 0; color: #dce5e1; overflow-wrap: anywhere; }
.chart-tooltip-swatch { width: 7px; height: 7px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; }
.chart-tooltip small { display: block; margin-top: 7px; padding-top: 6px; color: #bac7c2; border-top: 1px solid rgba(255,255,255,.14); font-size: 7px; }
.threshold-panel { padding-bottom: 18px; }
.selected-method { margin: 0 20px 13px; padding: 13px; background: var(--brand-tint); border-radius: 9px; }
.selected-method span, .selected-method small { display: block; color: var(--text-muted); font-size: 8px; }.selected-method strong { display: block; margin: 3px 0; color: var(--brand-primary); font-size: 10px; }
.threshold-list { display: grid; gap: 9px; margin: 0 20px 14px; }
.threshold-result { padding: 14px; border: 1px solid var(--border-color); border-radius: 11px; }
.threshold-result-label { display: flex; align-items: center; gap: 7px; color: var(--text-muted); font-size: 8px; font-weight: 750; text-transform: uppercase; }
.threshold-result-label i { width: 7px; height: 7px; border-radius: 50%; }.threshold-result.aerobic i { background: var(--brand-accent); }.threshold-result.anaerobic i { background: #ed8e4a; }
.threshold-result > strong { display: block; margin: 6px 0 8px; color: var(--brand-dark); font-size: 25px; letter-spacing: -.04em; }.threshold-result > strong small { font-size: 9px; }
.threshold-result dl { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 0; }.threshold-result dl > div { padding: 7px; background: #f5f7f4; border-radius: 7px; }.threshold-result dt { color: var(--text-muted); font-size: 7px; }.threshold-result dd { margin: 2px 0 0; font-size: 9px; font-weight: 700; }
.threshold-panel > .button { width: calc(100% - 40px); margin: 0 20px; }
.empty-chart { display: grid; min-height: 340px; place-items: center; align-content: center; padding: 20px; text-align: center; }.empty-chart > span { color: var(--brand-accent); font-size: 50px; }.empty-chart h3 { margin: 0; }.empty-chart p { margin: 5px 0 15px; color: var(--text-muted); font-size: 10px; }
.analysis-lower-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 17px; margin-bottom: 17px; }
.threshold-table { padding-bottom: 14px; }.threshold-table-head, .threshold-table-row { display: grid; grid-template-columns: 1fr .8fr .7fr 1.4fr; gap: 8px; align-items: center; padding: 9px 23px; }.threshold-table-head { color: var(--text-muted); background: #f6f8f5; border-top: 1px solid var(--border-color); border-bottom: 1px solid var(--border-color); font-size: 8px; font-weight: 750; text-transform: uppercase; }.threshold-table-row { border-bottom: 1px solid #eef1ee; font-size: 10px; }.threshold-table-row strong { font-size: 10px; }.threshold-table-row small { color: var(--text-muted); }
.pwc-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin: 0 23px 23px; overflow: hidden; background: var(--border-color); border: 1px solid var(--border-color); border-radius: 10px; }.pwc-grid article { display: flex; min-height: 88px; flex-direction: column; justify-content: center; padding: 12px; background: #f9faf8; }.pwc-grid span { color: var(--text-muted); font-size: 8px; font-weight: 750; }.pwc-grid strong { color: var(--brand-dark); font-size: 16px; }.pwc-grid strong small, .pwc-grid article > small { color: var(--text-muted); font-size: 8px; }
.zones-panel { margin-bottom: 17px; overflow: hidden; }
.zones-table { width: 100%; border-collapse: collapse; }.zones-table th { padding: 9px 20px; color: var(--text-muted); background: #f5f7f4; border-top: 1px solid var(--border-color); border-bottom: 1px solid var(--border-color); font-size: 8px; text-align: left; text-transform: uppercase; }.zones-table td { padding: 11px 20px; border-bottom: 1px solid #edf0ed; font-size: 10px; }.zones-table tr:last-child td { border: 0; }.zones-table td:first-child { display: flex; align-items: center; gap: 10px; }.zones-table td > strong { font-size: 10px; }.zones-table td small { color: var(--text-muted); font-size: 8px; }
.zone-badge { display: inline-flex; min-width: 45px; justify-content: center; padding: 5px 7px; color: #17332e; border-radius: 6px; font-size: 8px; font-weight: 850; }.zone-badge.zone-cyan, .zone-cell.zone-cyan { background: #aee7ed; }.zone-badge.zone-green, .zone-cell.zone-green { background: #b7eaba; }.zone-badge.zone-yellow, .zone-cell.zone-yellow { background: #f1e88a; }.zone-badge.zone-orange, .zone-cell.zone-orange { background: #f5bf91; }.zone-badge.zone-red, .zone-cell.zone-red { background: #efaaaa; }
.empty-inline { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 25px; border-top: 1px solid var(--border-color); }.empty-inline strong { font-size: 12px; }.empty-inline p { margin: 2px 0 0; color: var(--text-muted); font-size: 10px; }
.raw-values-panel { margin-bottom: 15px; overflow: hidden; }.raw-values-panel details summary { display: flex; align-items: center; justify-content: space-between; padding: 17px 23px; cursor: pointer; list-style: none; }.raw-values-panel summary::-webkit-details-marker { display: none; }.raw-values-panel summary > span:first-child { display: flex; flex-direction: column; }.raw-values-panel summary strong { font-size: 11px; }.raw-values-panel summary small { color: var(--text-muted); font-size: 8px; }.raw-values-panel details[open] summary > span:last-child { transform: rotate(45deg); }
.interpretation-panel { margin-bottom: 17px; overflow: hidden; }
.interpretation-copy { padding: 0 25px 24px; color: var(--text-secondary); font-size: 11px; line-height: 1.65; overflow-wrap: anywhere; }
.danger-actions { text-align: right; }.danger-actions a { color: #a74d4d; font-size: 9px; }

/* Test comparison */
.comparison-selector-panel, .comparison-chart-panel, .comparison-metrics-panel { margin-bottom: 17px; overflow: hidden; }
.comparison-selector { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) auto; gap: 14px; align-items: end; padding: 0 25px 12px; }
.comparison-selector .form-group { margin: 0; }
.comparison-form-errors { grid-column: 1/-1; }
.comparison-direction { display: grid; width: 31px; height: 42px; place-items: center; color: var(--brand-primary); font-size: 19px; }
.comparison-selector-note { margin: 0; padding: 10px 25px 15px; color: var(--text-muted); background: #f8faf7; border-top: 1px solid var(--border-color); font-size: 9px; }
.comparison-snapshots { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); gap: 16px; align-items: center; margin-bottom: 17px; }
.comparison-snapshot { position: relative; display: flex; min-height: 132px; flex-direction: column; justify-content: center; padding: 22px 25px 20px 30px; overflow: hidden; }
.comparison-snapshot::before { position: absolute; inset: 0 auto 0 0; width: 5px; content: ""; }
.comparison-snapshot-baseline::before { background: repeating-linear-gradient(180deg,#869c95 0 8px,transparent 8px 13px); }
.comparison-snapshot-follow-up::before { background: var(--brand-accent); }
.comparison-role { color: var(--text-muted); font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.comparison-snapshot > strong { margin: 3px 0 2px; color: var(--brand-dark); font-size: 26px; letter-spacing: -.035em; }
.comparison-snapshot > small { color: var(--text-secondary); font-size: 10px; }
.comparison-method { width: fit-content; margin-top: 9px; padding: 4px 8px; color: var(--brand-primary); background: var(--brand-tint); border-radius: 999px; font-size: 8px; font-weight: 720; }
.comparison-snapshot > p { margin: 6px 0 0; color: var(--text-muted); font-size: 8px; line-height: 1.35; }
.comparison-span { display: flex; min-width: 92px; flex-direction: column; align-items: center; padding: 12px 10px; color: var(--text-muted); background: rgba(255,255,255,.68); border: 1px solid var(--border-color); border-radius: 999px; text-align: center; }
.comparison-span strong { color: var(--brand-dark); font-size: 16px; line-height: 1; }.comparison-span span { margin-top: 3px; font-size: 7px; text-transform: uppercase; }
.comparison-chart-panel .chart-component { padding-bottom: 20px; }
.comparison-interpretations { margin-bottom: 17px; overflow: hidden; }
.comparison-interpretation-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: var(--border-color); border-top: 1px solid var(--border-color); }
.comparison-interpretation-grid article { min-width: 0; padding: 18px 25px 22px; background: white; }
.comparison-interpretation-grid article > span { color: var(--brand-primary); font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.comparison-interpretation-grid article > p { margin: 6px 0 0; color: var(--text-secondary); font-size: 10px; line-height: 1.55; overflow-wrap: anywhere; }
.comparison-interpretation-grid .unavailable { color: var(--text-muted); font-style: italic; }
.comparison-table td { font-variant-numeric: tabular-nums; }
.comparison-table td:first-child > strong, .comparison-table td:first-child > small { display: block; }
.comparison-table td:first-child > small { max-width: 430px; margin-top: 2px; color: var(--text-muted); font-size: 8px; line-height: 1.35; }
.comparison-table td:not(:first-child) { white-space: nowrap; }
.comparison-delta { display: inline-flex; min-width: 70px; justify-content: flex-end; padding: 5px 7px; color: var(--brand-primary); background: var(--brand-tint); border-radius: 7px; font-weight: 760; }
.comparison-delta.delta-even { color: var(--text-muted); background: #f0f2ef; }
.comparison-disclaimer { margin: 0 22px 20px; padding: 13px 15px; color: var(--text-secondary); background: #f3f6f3; border-left: 3px solid #8da59d; border-radius: 4px 9px 9px 4px; }
.comparison-disclaimer strong { color: var(--brand-primary); font-size: 9px; text-transform: uppercase; }.comparison-disclaimer p { margin: 3px 0 0; font-size: 9px; }

/* Login */
/* Practice profile */
.practice-settings-layout { display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: 22px; align-items: start; }
.practice-settings-fields { display: grid; min-width: 0; gap: 17px; }
.practice-logo-editor { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 24px; align-items: center; }
.practice-logo-current { display: grid; width: 150px; height: 150px; place-items: center; padding: 10px; overflow: hidden; background: #fff; border: 1px solid var(--border-color); border-radius: 18px; box-shadow: var(--shadow-sm); }
.practice-logo-current img { display: block; width: 100%; height: 100%; object-fit: contain; }
.practice-logo-editor .form-group + .form-group { margin-top: 12px; }
.brand-color-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.brand-color-field { position: relative; min-width: 0; }
.brand-color-field input[type="color"] { height: 58px; padding: 4px; cursor: pointer; }
.brand-color-field output { display: block; margin-top: 5px; color: var(--text-muted); font-size: 9px; font-variant-numeric: tabular-nums; letter-spacing: .08em; }
.practice-preview { position: sticky; top: 24px; overflow: hidden; padding: 0 18px 18px; }
.practice-preview-heading { padding: 23px 5px 18px; }
.practice-preview-heading h2 { margin: 0; color: var(--brand-dark); font-size: 20px; letter-spacing: -.025em; }
.practice-preview-heading > p:last-child { margin: 4px 0 0; color: var(--text-muted); font-size: 10px; }
.practice-preview-sidebar { min-height: 190px; padding: 20px; color: #e2e8f0; background: radial-gradient(circle at 20% 4%, rgba(var(--brand-accent-rgb),.2), transparent 29%), linear-gradient(155deg, var(--brand-primary), var(--brand-dark) 76%); border-radius: 13px; }
.practice-preview-brand { display: flex; gap: 10px; align-items: center; margin-bottom: 26px; }
.practice-preview-brand > span:last-child, .practice-preview-report-head > span:last-child { display: flex; min-width: 0; flex-direction: column; }
.practice-preview-brand strong { color: white; font-size: 11px; line-height: 1.25; overflow-wrap: anywhere; }
.practice-preview-brand small { margin-top: 2px; color: #cbd5e1; font-size: 8px; line-height: 1.3; letter-spacing: .04em; overflow-wrap: anywhere; }
.practice-preview-logo { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; padding: 3px; overflow: hidden; background: white; border-radius: 9px; }
.practice-preview-logo img { width: 100%; height: 100%; object-fit: contain; }
.practice-preview-nav { display: flex; gap: 8px; align-items: center; margin: 5px 0; padding: 8px 10px; color: #cbd5e1; border-radius: 8px; font-size: 9px; font-weight: 700; }
.practice-preview-nav:first-of-type { color: white; background: rgba(var(--brand-accent-rgb),.18); }
.practice-preview-nav i { width: 3px; height: 17px; margin-left: -10px; background: var(--brand-highlight); border-radius: 0 3px 3px 0; }
.practice-preview-report { min-height: 245px; margin-top: 14px; padding: 18px; color: white; background: linear-gradient(145deg, var(--brand-primary), var(--brand-dark) 78%); border-radius: 13px; }
.practice-preview-report-head { display: flex; gap: 9px; align-items: center; }
.practice-preview-report-head strong { font-size: 9px; }
.practice-preview-report-head small { color: #cbd5e1; font-size: 7px; }
.practice-preview-report > p { margin: 35px 0 0; color: var(--brand-highlight); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.practice-preview-report h3 { margin: 2px 0 24px; font-size: 22px; letter-spacing: -.035em; }
.practice-preview-contact { display: flex; flex-direction: column; color: #cbd5e1; font-size: 7px; line-height: 1.45; }
.practice-preview-contact span { white-space: pre-line; }
.practice-preview-science { display: flex; flex-wrap: wrap; gap: 11px; align-items: center; padding: 16px 5px 0; color: var(--text-secondary); font-size: 9px; }
.practice-preview-science span { display: inline-flex; gap: 5px; align-items: center; font-weight: 750; }
.practice-preview-science i { width: 18px; height: 3px; border-radius: 3px; }
.practice-preview-science span:first-child i { background: var(--chart-heart-rate); }
.practice-preview-science span:nth-child(2) i { background: var(--chart-lactate); }
.practice-preview-science small { flex-basis: 100%; color: var(--text-muted); font-size: 8px; }
.practice-profile-audit { color: var(--text-muted); font-size: 10px; }

/* Login */
.login-view { background: var(--surface-page); }
.login-view .sidebar, .login-view .mobile-header { display: none; }
.login-view .app-main { margin-left: 0; }
.login-view .page-wrap { width: 100%; max-width: none; min-height: 100vh; padding: 0; }
.login-layout { display: grid; min-height: 100vh; grid-template-columns: minmax(420px, .85fr) minmax(460px, 1.15fr); }
.login-card { width: min(430px, calc(100% - 50px)); margin: auto; padding: 40px; background: white; border: 1px solid var(--border-color); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
.login-brand { display: flex; gap: 11px; align-items: center; margin-bottom: 42px; }
.login-brand-copy { display: flex; min-width: 0; flex-direction: column; }
.login-brand strong { color: var(--brand-dark); font-size: 13px; line-height: 1.25; }
.login-brand small { margin-top: 3px; color: var(--text-muted); font-size: 9px; line-height: 1.35; letter-spacing: .03em; }
.login-card h1 { margin: 0 0 7px; color: var(--brand-dark); font-size: 35px; letter-spacing: -.045em; }
.login-intro { margin: 0 0 24px; color: var(--text-muted); font-size: 11px; }
.login-form { display: grid; gap: 15px; margin-top: 18px; }
.login-form label { display: block; margin-bottom: 6px; color: var(--text-secondary); font-size: 10px; font-weight: 720; }
.login-form input:not([type="hidden"]) { width: 100%; min-height: 44px; padding: 9px 11px; color: var(--text-primary); background: #fbfcfa; border: 1px solid #cfd9d3; border-radius: 8px; outline: 0; }
.login-form input:focus { background: white; border-color: var(--brand-primary); box-shadow: 0 0 0 3px var(--brand-primary); }
.login-card > footer { display: grid; gap: 9px; margin-top: 24px; padding-top: 18px; color: var(--text-muted); border-top: 1px solid var(--border-color); font-size: 9px; }
.login-auth-status { display: flex; gap: 8px; align-items: center; }
.login-operator { display: flex; min-width: 0; flex-direction: column; line-height: 1.45; }
.login-operator strong { color: var(--text-secondary); font-size: 10px; overflow-wrap: anywhere; }
.login-operator span { overflow-wrap: anywhere; }
.login-card .app-version { margin-top: 0; }
.login-aside { display: flex; flex-direction: column; justify-content: space-between; padding: 70px; color: white; background: radial-gradient(circle at 80% 15%, rgba(var(--brand-accent-rgb),.2), transparent 28%), linear-gradient(145deg, var(--brand-primary), var(--brand-dark)); }
.login-tagline { margin: auto 0; }
.login-aside p { margin: 0; font-size: clamp(28px,4vw,57px); font-weight: 720; line-height: 1.1; letter-spacing: -.05em; }
.login-aside p:nth-child(2) { color: var(--brand-highlight); }
.login-aside small { color: #a5beb7; font-size: 10px; }

.message-stack { position: fixed; z-index: 50; top: 20px; right: 25px; display: grid; gap: 8px; width: min(390px, calc(100vw - 40px)); }
.message { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; padding: 12px 14px; color: white; background: var(--brand-primary); border: 1px solid rgba(255,255,255,.15); border-radius: 11px; box-shadow: var(--shadow-md); font-size: 11px; }.message svg { color: var(--brand-highlight); }.message button { color: #b9cdc7; background: none; border: 0; cursor: pointer; font-size: 18px; }
.narrow-page { width: min(620px, 100%); margin: 70px auto; }.confirm-card { padding: 38px; text-align: center; }.confirm-mark { display: grid; width: 55px; height: 55px; margin: 0 auto 15px; place-items: center; color: #ad4c4c; background: #fff0f0; border-radius: 50%; font-size: 25px; font-weight: 800; }.confirm-card h1 { margin: 4px 0 10px; font-size: 27px; }.confirm-card > p:not(.eyebrow) { color: var(--text-muted); font-size: 12px; }.confirm-card form { display: flex; gap: 10px; justify-content: center; margin-top: 22px; }

/* Report */
.report-view { background: #e4e4e7; }
.report-view .sidebar { display: none; }
.report-view .app-main { margin-left: 0; }
.report-view .page-wrap { max-width: none; padding: 25px 35px 60px; }
.report-toolbar { position: sticky; z-index: 20; top: 14px; display: flex; width: min(210mm, 100%); align-items: center; justify-content: space-between; margin: 0 auto 18px; padding: 9px 11px; color: white; background: rgba(15,23,42,.94); border-radius: 12px; box-shadow: var(--shadow-md); backdrop-filter: blur(10px); }
.report-toolbar > div { display: flex; align-items: center; gap: 10px; }.report-toolbar > div > span { color: #cbd5e1; font-size: 10px; }.report-toolbar .button-ghost { color: white; }
.report-design-switch { display: flex; align-items: center; padding: 2px; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.16); border-radius: 8px; }
.report-design-option { padding: 6px 10px; color: #cbd5e1; border-radius: 6px; font-size: 9px; font-weight: 720; text-decoration: none; }
.report-design-option:hover { color: white; }.report-design-option.is-active { color: #17211e; background: white; }.report-design-option:focus-visible { outline: 2px solid var(--focus-ring-light); outline-offset: 2px; box-shadow: 0 0 0 4px var(--focus-ring-dark); }
.report-document { display: grid; gap: 24px; justify-content: center; }
.report-page { position: relative; width: 210mm; min-height: 297mm; padding: 17mm 18mm 15mm; overflow: hidden; background: white; box-shadow: 0 15px 50px rgba(15,23,42,.16); }
.report-cover { display: flex; flex-direction: column; color: white; background: linear-gradient(145deg, var(--brand-primary), var(--brand-dark) 76%); }
.report-cover::before { position: absolute; inset: 0; content: ""; background: radial-gradient(circle at 78% 22%, rgba(var(--brand-accent-rgb),.2), transparent 28%), linear-gradient(115deg, transparent 45%, rgba(255,255,255,.025) 45% 47%, transparent 47%); }
.report-brand { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; }
.report-brand > div:last-child { display: flex; max-width: 76mm; max-height: 42mm; flex-direction: column; align-items: flex-end; overflow: hidden; color: #cbd5e1; font-size: 8pt; line-height: 1.35; text-align: right; }
.report-brand > div:last-child > * { max-width: 100%; overflow-wrap: anywhere; word-break: break-word; }
.report-brand strong { color: white; font-size: 10pt; }.report-brand a { color: var(--brand-highlight); text-decoration: none; }.report-contact-address { display: -webkit-box; max-height: 4.05em; margin-top: 1mm; overflow: hidden; white-space: normal; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; }
.report-product-brand { display: flex; min-width: 0; max-width: 88mm; align-items: center; gap: 4mm; }
.report-product-brand > span { display: flex; min-width: 0; flex-direction: column; }
.report-product-brand > span > strong { overflow-wrap: anywhere; font-size: 11pt; line-height: 1.2; }
.report-product-brand > span > small { margin-top: 1mm; color: #cbd5e1; font-size: 6pt; line-height: 1.3; letter-spacing: .04em; }
.cover-content { position: relative; z-index: 1; margin: auto 0; padding: 0 8mm; }.cover-content > p { max-width: 130mm; margin: 0; overflow-wrap: anywhere; color: var(--brand-highlight); font-size: 15pt; font-weight: 450; letter-spacing: .07em; text-transform: uppercase; }.cover-content h1 { max-width: 130mm; margin: 0 0 18mm; font-size: 55pt; font-weight: 760; line-height: .95; letter-spacing: -.055em; }.cover-content > span { display: block; color: #cbd5e1; font-size: 10pt; text-transform: uppercase; }.cover-content h2 { margin: 2mm 0 11mm; font-size: 27pt; font-weight: 530; }.cover-date { display: flex; flex-direction: column; padding-left: 5mm; border-left: 1.5mm solid var(--brand-accent); }.cover-date small { color: #cbd5e1; font-size: 7pt; text-transform: uppercase; }.cover-date strong { font-size: 11pt; }
.cover-curve { position: absolute; right: -20mm; bottom: 32mm; width: 175mm; opacity: .3; transform: rotate(-3deg); }.cover-curve svg { width: 100%; height: auto; overflow: visible; }.cover-curve path:first-child { fill: none; stroke: var(--chart-heart-rate); stroke-width: 2; }.cover-curve path:last-child { fill: none; stroke: var(--chart-lactate); stroke-width: 2; }
.report-cover > footer { position: relative; z-index: 1; display: flex; justify-content: space-between; padding-top: 5mm; color: #cbd5e1; border-top: .2mm solid rgba(255,255,255,.13); font-size: 7pt; }
.report-page-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 7mm; padding-bottom: 3mm; border-bottom: .4mm solid var(--brand-primary); }.report-page-header > div:first-child { display: flex; min-width: 0; flex-direction: column; }.report-page-header strong { overflow-wrap: anywhere; color: var(--brand-dark); font-size: 14pt; }.report-page-header span { color: #64748b; font-size: 7pt; }
.report-product-brand--compact { max-width: 68mm; justify-content: flex-end; gap: 2mm; text-align: right; }
.report-product-brand--compact > span { align-items: flex-end; }
.report-page-header .report-product-brand--compact strong { font-size: 7pt; line-height: 1.2; }
.report-page-header .report-product-brand--compact small { margin-top: .5mm; font-size: 5pt; line-height: 1.2; }
.report-section { margin-bottom: 8mm; }.report-section > h2 { margin: 0 0 3mm; padding-bottom: 2mm; color: var(--brand-primary); border-bottom: .25mm solid var(--brand-border); font-size: 13pt; font-weight: 600; text-align: center; }
.report-definition-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8mm; }.report-definition-grid dl { margin: 0; }.report-definition-grid dl > div { display: grid; grid-template-columns: 42mm 1fr; padding: 1.7mm 2mm; border-bottom: .2mm solid #d5dcd7; font-size: 8pt; }.report-definition-grid dt { font-weight: 720; }.report-definition-grid dd { margin: 0; }
.report-zones { width: 100%; border-collapse: collapse; font-size: 7.5pt; }.report-zones th { padding: 2mm; color: #66736f; border-bottom: .25mm solid #aab5b0; text-align: left; }.report-zones td { padding: 2.5mm; border-bottom: .2mm solid #d9dfdb; }.report-zones td:first-child { width: 52mm; }.report-zones .zone-cell { display: flex; gap: 3mm; align-items: center; }.report-zones .zone-cell strong { min-width: 11mm; }.report-zones .zone-cell span { font-size: 6.5pt; }
.report-missing { padding: 8mm; color: #64748b; background: #f8fafc; border: .2mm dashed #cbd5e1; text-align: center; font-size: 8pt; }
.report-explanation { margin-top: 8mm; padding: 4mm; color: var(--text-secondary); background: var(--brand-report-tint); border-left: 1mm solid var(--brand-primary); font-size: 7pt; line-height: 1.45; }.report-explanation p { margin: 1mm 0 0; }
.report-footer { position: absolute; right: 18mm; bottom: 10mm; left: 18mm; display: flex; justify-content: space-between; padding-top: 2mm; color: #6d7974; border-top: .2mm solid #dce1de; font-size: 7pt; }
.report-chart-section .chart-component { padding: 0; }.report-chart-section .lactate-chart { min-height: 0; }.report-chart-section .chart-svg { max-height: 95mm; }.report-chart-section .chart-legend { padding-right: 0; font-size: 6pt; }
.report-two-columns { display: grid; grid-template-columns: .85fr 1.15fr; gap: 7mm; }.report-data-table { width: 100%; border-collapse: collapse; font-size: 7pt; }.report-data-table th { padding: 1.7mm; color: var(--text-secondary); background: var(--brand-tint); border: .2mm solid var(--brand-border); text-align: left; }.report-data-table td { padding: 1.7mm; border: .2mm solid #d9dde3; }.report-data-table.compact { margin-top: 3mm; }
.report-thresholds { display: grid; grid-template-columns: 1fr 1fr; gap: 2mm; }.report-thresholds article { display: flex; flex-direction: column; padding: 3mm; background: var(--brand-report-tint); border-radius: 2mm; }.report-thresholds span { color: var(--text-muted); font-size: 6pt; text-transform: uppercase; }.report-thresholds strong { color: var(--brand-dark); font-size: 12pt; }.report-thresholds small { color: var(--text-muted); font-size: 6pt; }
.report-source { margin: 2mm 0 3mm; padding: 2mm; color: var(--text-secondary); background: #f8fafc; border-left: .6mm solid var(--brand-primary); font-size: 6.5pt; line-height: 1.35; }
.report-pwc { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: #cfd9d3; border: .2mm solid #cfd9d3; }.report-pwc > div { display: flex; flex-direction: column; padding: 3mm; background: #f7f9f7; }.report-pwc span { color: #65736e; font-size: 6pt; }.report-pwc strong { color: var(--brand-dark); font-size: 10pt; }.report-pwc small { color: #7a8581; font-size: 6pt; }
.report-disclaimer { position: absolute; right: 18mm; bottom: 18mm; left: 18mm; padding: 3mm; color: var(--text-muted); background: #f8fafc; border-left: .8mm solid #94a3b8; font-size: 6pt; line-height: 1.4; }.report-disclaimer p { margin: 1mm 0 0; }
.report-warnings { margin: -3mm 0 4mm; padding: 2.5mm 3mm; color: #714f18; background: #fff5dc; border-left: .8mm solid #d9a039; font-size: 6.5pt; }
.report-warnings ul { margin: 1mm 0 0; padding-left: 4mm; }
.report-data-table tr, .report-section { break-inside: avoid; page-break-inside: avoid; }
.report-zones .zone-cell span { max-width: 34mm; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.report-summary-page .report-section { margin-bottom: 6mm; }
.report-chart-page .report-chart-section { margin-bottom: 4mm; }
.report-chart-page .report-chart-section .chart-svg { max-height: 112mm; }
.report-chart-explanation { margin-top: 4mm; font-size: 7.4pt; line-height: 1.5; }
.report-results-page .report-section { margin-bottom: 5mm; }
.report-results-page .report-disclaimer { position: static; margin-top: 4mm; }
.report-interpretation > p { margin: 0; color: var(--text-secondary); font-size: 8pt; line-height: 1.55; overflow-wrap: anywhere; }
.report-text-reference { padding: 4mm; color: var(--text-secondary); background: var(--brand-report-tint); border-left: 1mm solid var(--brand-primary); font-size: 8pt; }
.report-text-list { display: grid; gap: 5mm; }
.report-text-list article { padding: 5mm; background: #fafafa; border-left: 1mm solid var(--brand-primary); break-inside: avoid; page-break-inside: avoid; }
.report-text-list article:nth-child(even) { border-left-color: var(--brand-accent); }
.report-text-list article > span { display: block; color: var(--brand-primary); font-size: 6pt; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.report-text-list article > strong { display: block; margin-top: 1mm; color: var(--brand-dark); font-size: 11pt; }
.report-text-list article > p { margin: 3mm 0 0; color: var(--text-secondary); font-size: 8pt; line-height: 1.55; overflow-wrap: anywhere; }
.report-text-page { height: 297mm; min-height: 297mm; max-height: 297mm; padding-bottom: 24mm; overflow: hidden; break-inside: avoid; page-break-inside: avoid; }
.report-text-page > .report-section { min-height: 0; margin-bottom: 0; }
.report-text-page .report-text-list article, .report-text-page .comparison-report-interpretation-list article, .report-text-page .comparison-report-warning-list article { min-width: 0; max-width: 100%; overflow-wrap: anywhere; word-break: break-word; }
.report-text-page .report-text-list p, .report-text-page .report-text-list strong, .report-text-page .report-text-list span, .report-text-page .comparison-report-interpretation-list p, .report-text-page .comparison-report-interpretation-list strong, .report-text-page .comparison-report-interpretation-list span, .report-text-page .comparison-report-warning-list p, .report-text-page .comparison-report-warning-list span { overflow-wrap: anywhere; word-break: break-word; }
.report-text-page .report-footer { z-index: 2; min-height: 5mm; background: white; }
.report-documentation-page .report-explanation { margin-top: 7mm; }
.report-section { break-inside: auto; page-break-inside: auto; }
.report-data-table tr { break-inside: avoid; page-break-inside: avoid; }
.report-stage-table td { padding: 3mm 2mm; font-size: 8pt; }
.report-stages-page .report-explanation { margin-top: 10mm; }

/* Comparison report */
.comparison-report-cover .cover-content h1 { max-width: 155mm; font-size: 49pt; }
.comparison-report-pair-section { margin-bottom: 4mm; }
.comparison-report-tests { display: grid; grid-template-columns: minmax(0,1fr) 20mm minmax(0,1fr); gap: 4mm; align-items: center; }
.comparison-report-tests > article { min-width: 0; padding: 4mm; background: var(--brand-report-tint); border-left: 1mm solid var(--brand-primary); border-radius: 2mm; overflow-wrap: anywhere; }
.comparison-report-tests > article:last-child { border-left-color: var(--brand-accent); }
.comparison-report-tests > article > span { display: block; color: #6c7974; font-size: 6pt; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.comparison-report-tests > article > strong { display: block; margin: 1mm 0; color: var(--brand-dark); font-size: 14pt; }
.comparison-report-tests > article > small { display: block; color: #5d6a66; font-size: 6.5pt; }
.comparison-report-tests > article > b { display: inline-block; margin-top: 2mm; padding: 1mm 2mm; color: var(--brand-primary); background: var(--brand-tint); border-radius: 8mm; font-size: 6pt; }
.comparison-report-tests > article > p { min-height: 8mm; margin: 1.5mm 0 2mm; color: #65726e; font-size: 6pt; line-height: 1.35; }
.comparison-report-tests > article > p em { font-style: normal; }
.comparison-report-tests dl { margin: 0; }
.comparison-report-tests dl > div { display: grid; grid-template-columns: 17mm 1fr; gap: 2mm; padding: .8mm 0; border-top: .2mm solid #d6dfda; font-size: 5.7pt; }
.comparison-report-tests dt { color: #6c7974; font-weight: 720; }.comparison-report-tests dd { min-width: 0; margin: 0; }
.comparison-report-tests > div { display: flex; flex-direction: column; align-items: center; justify-content: center; color: #6c7974; text-align: center; }
.comparison-report-tests > div strong { color: var(--brand-dark); font-size: 16pt; line-height: 1; }.comparison-report-tests > div span { margin-top: 1mm; font-size: 6pt; text-transform: uppercase; }
.comparison-report-warning-reference { display: flex; align-items: center; justify-content: space-between; gap: 5mm; margin: 0 0 3mm; }
.comparison-report-warning-reference span { font-size: 6pt; }
.comparison-report-chart { margin-bottom: 3mm; }.comparison-report-chart .chart-svg { max-height: 82mm; }
.comparison-report-chart .chart-legend { gap: 2mm 4mm; padding-bottom: 1mm; }
.comparison-report-results .report-section { margin-bottom: 5mm; }
.comparison-report-metrics { font-size: 6.2pt; font-variant-numeric: tabular-nums; }
.comparison-report-metrics th, .comparison-report-metrics td { padding: 1.25mm 1.5mm; }
.comparison-report-metrics th:first-child { width: 43%; }.comparison-report-metrics td:not(:first-child) { white-space: nowrap; }
.comparison-report-metrics td:first-child strong, .comparison-report-metrics td:first-child small { display: block; }
.comparison-report-metrics td:first-child small { margin-top: .4mm; color: #71807a; font-size: 5.2pt; line-height: 1.25; }
.comparison-report-zones-section .report-zones { font-size: 6.5pt; }.comparison-report-zones-section .report-zones th, .comparison-report-zones-section .report-zones td { padding: 1.5mm 2mm; }
.comparison-report-results .comparison-report-disclaimer { position: static; margin-top: 4mm; }
.comparison-report-interpretation-list { display: grid; gap: 5mm; }
.comparison-report-interpretation-list article { min-height: 70mm; padding: 5mm; background: #fafafa; border-left: 1mm solid var(--brand-primary); break-inside: avoid; page-break-inside: avoid; }
.comparison-report-interpretation-list article:last-child { border-left-color: var(--brand-accent); }
.comparison-report-interpretation-list article > span { display: block; color: var(--brand-primary); font-size: 6pt; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.comparison-report-interpretation-list article > strong { display: block; margin-top: 1mm; color: var(--brand-dark); font-size: 11pt; }
.comparison-report-interpretation-list article > p { margin: 3mm 0 0; color: var(--text-secondary); font-size: 8pt; line-height: 1.55; overflow-wrap: anywhere; }
.comparison-report-interpretation-list article > p.unavailable { color: var(--text-muted); font-style: italic; }
.comparison-report-warning-list { display: grid; gap: 3mm; }
.comparison-report-warning-list article { padding: 4mm; background: #fff8e8; border-left: 1mm solid #d9a039; break-inside: avoid; page-break-inside: avoid; }
.comparison-report-warning-list span { color: #815d23; font-size: 6pt; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.comparison-report-warning-list p { margin: 1mm 0 0; color: #5b5141; font-size: 8pt; line-height: 1.45; }
.comparison-report-warning-page .report-explanation { margin-top: 7mm; }

/* Minimal, low-ink report design. Scientific series, thresholds and zone colors remain unchanged. */
.report-design-print { --report-print-ink: #20252b; --report-print-muted: #596168; --report-print-border: #aeb4b9; }
.report-design-print .report-page { color: var(--report-print-ink); box-shadow: 0 0 0 1px #cfd3d6; }
.report-design-print .report-cover { color: var(--report-print-ink); background: white; }
.report-design-print .report-cover::before { display: none; }
.report-design-print .cover-curve { display: none; }
.report-design-print .report-cover .brand-logo { border-color: var(--report-print-border); border-radius: 0; }
.report-design-print .report-brand > div:last-child, .report-design-print .report-brand a, .report-design-print .report-brand strong { color: var(--report-print-ink); }
.report-design-print .report-brand .report-product-brand small { color: var(--report-print-muted); }
.report-design-print .cover-content { padding: 0; }
.report-design-print .cover-content > p { color: var(--report-print-muted); font-size: 10pt; letter-spacing: .1em; }
.report-design-print .cover-content h1 { margin-bottom: 12mm; font-size: 37pt; font-weight: 650; letter-spacing: -.035em; }
.report-design-print .cover-content > span { color: var(--report-print-muted); }
.report-design-print .cover-content h2 { color: var(--report-print-ink); font-size: 23pt; font-weight: 520; }
.report-design-print .cover-date { border-left-color: var(--report-print-ink); }
.report-design-print .cover-date small { color: var(--report-print-muted); }
.report-design-print .report-cover > footer { color: var(--report-print-muted); border-top-color: var(--report-print-border); }
.report-design-print .report-page-header { border-bottom-color: var(--report-print-ink); }
.report-design-print .report-page-header strong, .report-design-print .report-section > h2, .report-design-print .report-thresholds strong, .report-design-print .report-pwc strong { color: var(--report-print-ink); }
.report-design-print .report-page-header span, .report-design-print .report-thresholds span, .report-design-print .report-thresholds small, .report-design-print .report-pwc span, .report-design-print .report-pwc small { color: var(--report-print-muted); }
.report-design-print .report-section > h2 { border-bottom-color: var(--report-print-border); }
.report-design-print .report-definition-grid dl > div, .report-design-print .report-zones th, .report-design-print .report-zones td { border-color: var(--report-print-border); }
.report-design-print .report-zones th, .report-design-print .report-data-table th { color: var(--report-print-muted); background: white; border-color: var(--report-print-border); }
.report-design-print .report-zones .zone-cell { background: white; border-left: 2mm solid #8b9693; }
.report-design-print .report-zones .zone-cell.zone-cyan { border-left-color: #4b9ba2; }
.report-design-print .report-zones .zone-cell.zone-green { border-left-color: #4f955d; }
.report-design-print .report-zones .zone-cell.zone-yellow { border-left-color: #a58e22; }
.report-design-print .report-zones .zone-cell.zone-orange { border-left-color: #b5682d; }
.report-design-print .report-zones .zone-cell.zone-red { border-left-color: #a64c4c; }
.report-design-print .report-data-table td { border-color: var(--report-print-border); }
.report-design-print .report-missing, .report-design-print .report-explanation, .report-design-print .report-source, .report-design-print .report-text-reference, .report-design-print .report-disclaimer { color: var(--report-print-muted); background: white; border-color: var(--report-print-border); }
.report-design-print .report-explanation, .report-design-print .report-source, .report-design-print .report-text-reference { border-left-color: var(--report-print-ink); }
.report-design-print .report-thresholds article { background: white; border: .2mm solid var(--report-print-border); border-radius: 0; }
.report-design-print .report-pwc { background: var(--report-print-border); border-color: var(--report-print-border); }
.report-design-print .report-pwc > div { background: white; }
.report-design-print .report-warnings { color: var(--report-print-ink); background: white; border: .25mm solid var(--report-print-border); border-left: 1mm solid #585f65; }
.report-design-print .report-footer { color: var(--report-print-muted); border-top-color: var(--report-print-border); }
.report-design-print .chart-plot, .report-design-print .chart-profile-mader-bike .chart-plot, .report-design-print .chart-profile-modified-dmax-run .chart-plot { fill: white; }
.report-design-print .chart-grid line, .report-design-print .chart-profile-mader-bike .chart-grid line, .report-design-print .chart-profile-modified-dmax-run .chart-grid line { stroke: #b8bec2; }
.report-design-print .report-text-list article, .report-design-print .comparison-report-tests > article, .report-design-print .comparison-report-interpretation-list article { background: white; border: .2mm solid var(--report-print-border); border-left: 1mm solid var(--report-print-ink); border-radius: 0; }
.report-design-print .report-text-list article:nth-child(even), .report-design-print .comparison-report-tests > article:last-child, .report-design-print .comparison-report-interpretation-list article:last-child { border-left-color: #666d73; }
.report-design-print .report-text-list article > span, .report-design-print .comparison-report-interpretation-list article > span { color: var(--report-print-ink); }
.report-design-print .report-text-list article > strong, .report-design-print .comparison-report-tests > article > strong, .report-design-print .comparison-report-tests > div strong, .report-design-print .comparison-report-interpretation-list article > strong { color: var(--report-print-ink); }
.report-design-print .comparison-report-tests > article > b { color: var(--report-print-ink); background: white; border: .2mm solid var(--report-print-border); border-radius: 0; }
.report-design-print .comparison-report-tests > article > span, .report-design-print .comparison-report-tests > article > small, .report-design-print .comparison-report-tests > article > p, .report-design-print .comparison-report-tests dt, .report-design-print .comparison-report-tests > div, .report-design-print .comparison-report-interpretation-list article > p { color: var(--report-print-muted); }
.report-design-print .comparison-report-tests dl > div { border-color: var(--report-print-border); }
.report-design-print .comparison-report-metrics td:first-child small { color: var(--report-print-muted); }
.report-design-print .comparison-report-warning-list article { background: white; border: .2mm solid var(--report-print-border); border-left: 1mm solid #585f65; }
.report-design-print .comparison-report-warning-list span, .report-design-print .comparison-report-warning-list p { color: var(--report-print-ink); }
.report-design-print .chart-training-zone { opacity: .1; }

@media (min-width: 1181px) {
  .analysis-layout-expanded { grid-template-columns: 1fr; }
  .analysis-layout-expanded .threshold-panel { display: grid; grid-template-columns: 230px 1fr auto; gap: 12px; align-items: center; padding: 18px; }
  .analysis-layout-expanded .threshold-panel .panel-header { display: none; }.analysis-layout-expanded .threshold-panel .selected-method, .analysis-layout-expanded .threshold-panel .threshold-list { margin: 0; }.analysis-layout-expanded .threshold-panel .threshold-list { grid-template-columns: 1fr 1fr; }.analysis-layout-expanded .threshold-panel > .button { width: auto; margin: 0; }
}

@media (max-width: 1180px) {
  .metric-grid { grid-template-columns: repeat(2,1fr); }
  .dashboard-grid { grid-template-columns: 1fr; }
  .workflow-panel { display: none; }
  .analysis-layout { grid-template-columns: 1fr; }
  .chart-expand { display: none; }
  .threshold-panel { display: grid; grid-template-columns: 230px 1fr auto; gap: 12px; align-items: center; padding: 18px; }
  .threshold-panel .panel-header { display: none; }.threshold-panel .selected-method, .threshold-panel .threshold-list { margin: 0; }.threshold-panel .threshold-list { grid-template-columns: 1fr 1fr; }.threshold-panel > .button { width: auto; margin: 0; }
  .form-grid-4 { grid-template-columns: repeat(2,1fr); }
  .practice-settings-layout { grid-template-columns: minmax(0,1fr) 320px; }
}

@media (max-width: 1100px) {
  .practice-settings-layout { grid-template-columns: 1fr; }
  .practice-preview { position: static; }
}

@media (max-width: 900px) {
  .sidebar { transform: translateX(-105%); transition: transform .22s ease; box-shadow: var(--shadow-md); }
  .sidebar-open .sidebar { transform: none; }
  .sidebar-open::after { position: fixed; z-index: 25; inset: 0; content: ""; background: rgba(15,23,42,.38); }
  .app-main { margin-left: 0; }
  .mobile-header { position: sticky; z-index: 20; top: 0; display: flex; height: 59px; align-items: center; gap: 12px; padding: 0 20px; background: rgba(250,251,248,.93); border-bottom: 1px solid var(--border-color); backdrop-filter: blur(12px); }
  .icon-button { display: grid; width: 36px; height: 36px; place-items: center; color: var(--brand-dark); background: white; border: 1px solid var(--border-color); border-radius: 9px; }
  .mobile-brand { display: inline-flex; min-width: 0; align-items: center; gap: 8px; color: var(--brand-dark); text-decoration: none; }
  .mobile-brand-copy { display: flex; min-width: 0; flex-direction: column; }
  .mobile-brand-copy strong, .mobile-brand-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .mobile-brand-copy strong { font-size: 12px; font-weight: 850; line-height: 1.2; }
  .mobile-brand-copy small { color: var(--text-muted); font-size: 8px; font-weight: 600; line-height: 1.2; letter-spacing: .02em; }
  .page-wrap { padding: 30px 22px 60px; }
  .athlete-grid { grid-template-columns: 1fr; }
  .profile-grid { grid-template-columns: 1fr; }
  .threshold-review-grid { grid-template-columns: 1fr 1fr; }.method-summary { grid-column: 1/-1; }
  .zone-editor-values { grid-template-columns: 1fr 1fr; }.zone-description { grid-column: 1/-1; }
  .analysis-lower-grid { grid-template-columns: 1fr; }
  .report-view .page-wrap { padding: 20px 0 50px; overflow-x: auto; }.report-toolbar { width: calc(100% - 30px); }.report-page { transform-origin: top left; }
  .report-document { width: max-content; min-width: 100%; justify-content: start; }
  .login-layout { grid-template-columns: 1fr; }
  .login-aside { display: none; }
  .practice-settings-layout { grid-template-columns: 1fr; }
  .practice-preview { position: static; }
}

@media (max-width: 680px) {
  .page-wrap { padding-right: 15px; padding-left: 15px; }
  .page-header, .profile-header, .analysis-header { align-items: flex-start; flex-direction: column; gap: 18px; }
  .header-actions { width: 100%; }.header-actions .button { flex: 1; }
  .metric-grid { grid-template-columns: 1fr 1fr; }.metric-card { min-height: 120px; padding: 18px; }.metric-card > strong { font-size: 28px; }.method-card > strong { font-size: 16px; }
  .form-grid-2, .form-grid-3, .form-grid-4 { grid-template-columns: 1fr; }.span-2 { grid-column: auto; }
  .form-section { padding: 19px; }.threshold-form-grid { grid-template-columns: 1fr; }.threshold-form-column { grid-template-columns: 1fr; }
  .athlete-combobox .form-control { font-size: 16px; }
  .athlete-combobox-listbox { max-height: min(45vh, 280px); }
  .test-moment-field .form-control { align-items: flex-start; flex-direction: column; gap: 8px; }
  .form-actions, .form-actions > div { width: 100%; flex-direction: column-reverse; }.form-actions .button { width: 100%; }
  .analysis-device-row { grid-template-columns: 1fr; gap: 15px; padding: 19px; }
  .analysis-device-row-actions { width: 100%; }
  .analysis-device-row-actions .button { flex: 1; }
  .profile-update-dialog-content { padding: 22px 18px; }
  .profile-update-dialog-actions { flex-direction: column; }
  .profile-update-dialog-actions .button { width: 100%; flex-basis: auto; }
  .stepper { justify-content: flex-start; overflow-x: auto; }.stepper-item > div { display: none; }.stepper-line { min-width: 20px; }
  .threshold-review-grid { grid-template-columns: 1fr; }.method-summary { grid-column: auto; }
  .zone-editor-title { grid-template-columns: 8px 80px 1fr; }.zone-color-field { grid-column: 2/-1; }.zone-editor-values { grid-template-columns: 1fr; margin-left: 0; }.zone-description { grid-column: auto; }
  .analysis-tabs { overflow-x: auto; }.analysis-tabs a { white-space: nowrap; }
  .analysis-metrics { grid-template-columns: repeat(2,1fr); }.analysis-metrics article:nth-child(2n) { border-right: 0; }.analysis-metrics article:last-child { grid-column: 1/-1; border-top: 1px solid var(--border-color); }
  .comparison-selector { grid-template-columns: 1fr; padding-right: 18px; padding-left: 18px; }
  .comparison-selector .button { width: 100%; }
  .comparison-direction { width: 100%; height: 18px; transform: rotate(90deg); }
  .comparison-selector-note { padding-right: 18px; padding-left: 18px; }
  .comparison-snapshots { grid-template-columns: 1fr; }
  .comparison-interpretation-grid { grid-template-columns: 1fr; }
  .comparison-span { min-width: 130px; justify-self: center; }
  .chart-control-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .chart-control-options label { align-items: flex-start; white-space: normal; }
  .chart-controls-footer { align-items: flex-start; flex-direction: column; gap: 3px; }
  .threshold-panel { display: block; }.threshold-panel .selected-method { margin-bottom: 10px; }.threshold-panel .threshold-list { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 10px; }.threshold-panel > .button { width: 100%; }
  .pwc-grid { grid-template-columns: 1fr 1fr; }
  .threshold-table-head, .threshold-table-row { grid-template-columns: 1fr 1fr 1fr; }.threshold-table-head span:last-child, .threshold-table-row small:last-child { display: none; }
  .empty-inline { align-items: stretch; flex-direction: column; }
  .search-bar .button { display: none; }
  .message-stack { top: 70px; right: 12px; }
  .timeline-item { grid-template-columns: 12px 1fr auto; gap: 5px 10px; padding: 10px 0; }
  .timeline-item .timeline-dot { grid-row: 1 / 3; }
  .timeline-item .timeline-date { grid-column: 2; }
  .timeline-item .timeline-body { grid-column: 2; }
  .timeline-item .badge { grid-column: 3; grid-row: 1 / 3; }
  .timeline-item > svg { display: none; }
  .login-card { width: min(430px, calc(100% - 28px)); padding: 27px; }
  .practice-logo-editor { grid-template-columns: 1fr; }
  .practice-logo-current { width: 120px; height: 120px; }
  .brand-color-grid { grid-template-columns: 1fr; }
  .practice-profile-audit { text-align: center; }
}

@media print {
  @page { size: A4 portrait; margin: 0; }
  html, body { width: 210mm; min-width: 210mm; margin: 0; padding: 0; background: white !important; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .sidebar, .mobile-header, .report-toolbar, .message-stack, .chart-controls, .chart-expand, .chart-tooltip, .chart-inspector-layer { display: none !important; }
  .app-main { margin: 0 !important; }
  .page-wrap, .report-view .page-wrap { width: 210mm; max-width: none; margin: 0; padding: 0; }
  .report-document { display: block; }
  .report-page { width: 210mm; min-height: 297mm; margin: 0; box-shadow: none; break-after: page; page-break-after: always; }
  .report-text-page { height: 297mm; min-height: 297mm; max-height: 297mm; break-inside: avoid; page-break-inside: avoid; }
  .report-page:last-child { break-after: auto; page-break-after: auto; }
  .report-analysis-page { break-inside: auto; page-break-inside: auto; }
}
