:root {
  --bg: #eef2f6;
  --card: rgba(255,255,255,.92);
  --text: #071331;
  --muted: #64748b;
  --muted2: #475569;
  --border: #d8e0ec;
  --border2: #cbd5e1;
  --navy: #071331;
  --teal: #007a80;
  --orange: #f05a14;
  --shadow: 0 18px 45px rgba(7,19,49,.10);
  --shadow-soft: 0 10px 28px rgba(7,19,49,.08);
  --radius: 18px;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-height: 100vh;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:
    radial-gradient(circle at 10% 0%, rgba(0,122,128,.10), transparent 34%),
    radial-gradient(circle at 90% 15%, rgba(240,90,20,.08), transparent 32%),
    linear-gradient(180deg, #f8fafc 0%, #eef2f6 100%);
  color: var(--text);
}

.page {
  max-width: 1120px;
  margin: 0 auto;
  padding: 34px 22px 60px;
}

.hero {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 22px;
  margin-bottom: 22px;
}

.eyebrow {
  margin: 0 0 6px;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 12px;
  font-weight: 800;
  color: var(--teal);
}

h1, h2 {
  margin: 0;
  letter-spacing: -0.035em;
  color: var(--navy);
}

h1 {
  font-size: clamp(34px, 5vw, 56px);
  line-height: .98;
}

h2 {
  font-size: 26px;
  line-height: 1.05;
}

.subtle {
  color: var(--muted);
  margin: 10px 0 0;
}

.card {
  background: var(--card);
  border: 1px solid rgba(203,213,225,.82);
  border-radius: var(--radius);
  padding: 24px;
  margin-bottom: 22px;
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(8px);
}

.narrow {
  max-width: 540px;
}

.upload-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.section-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 18px;
  margin-bottom: 14px;
}

.right-note {
  text-align: right;
  max-width: 280px;
}

.button.full {
  width: 100%;
  margin-top: 22px;
}

form { margin: 0; }

label {
  display: block;
  font-weight: 800;
  color: var(--navy);
  margin-top: 16px;
  margin-bottom: 7px;
}

input, select {
  width: 100%;
  padding: 12px 13px;
  border: 1px solid var(--border2);
  border-radius: 12px;
  background: white;
  color: var(--text);
  font-size: 16px;
  outline: none;
}

input[type="checkbox"] {
  width: auto;
  padding: 0;
}

input:focus, select:focus {
  border-color: var(--teal);
  box-shadow: 0 0 0 4px rgba(0,122,128,.12);
}

.error {
  background: #fff1f1;
  border: 1px solid #fecaca;
  color: #9f1239;
  padding: 12px 14px;
  border-radius: 14px;
  margin: 14px 0;
  font-weight: 700;
}

.success-card {
  color: #047857;
  font-weight: 900;
  border-left: 4px solid #047857;
}

.status-card {
  border-top: 4px solid var(--teal);
}

.compact-actions-card {
  padding: 18px 20px;
}

.compact-actions {
  margin: 0;
  justify-content: flex-start;
}

.status-grid {
  display: grid;
  grid-template-columns: 170px 220px 1fr;
  gap: 22px;
  align-items: start;
}

.field-label {
  margin: 0 0 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.field-value {
  margin: 0;
  font-weight: 800;
  color: var(--navy);
  overflow-wrap: anywhere;
}

.mono, code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

code {
  background: #eef3f8;
  padding: 3px 6px;
  border-radius: 7px;
  font-size: .92em;
}

.source-line {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
}

.actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 22px 0 0;
}

.badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 13px;
  font-weight: 900;
  text-transform: capitalize;
  background: #e2e8f0;
  color: var(--muted2);
}

.badge.processing { background: #fff7ed; color: #c2410c; }
.badge.report_ready { background: #e6f6ef; color: #047857; }
.badge.failed { background: #fee2e2; color: #b91c1c; }
.badge.archived { background: #e0f2fe; color: #075985; }
.badge.deleted { background: #fee2e2; color: #991b1b; }

.report-preview-card { padding: 18px; }

.report-preview-wrap {
  width: 100%;
  max-height: 78vh;
  overflow: auto;
  background:
    linear-gradient(45deg, #e2e8f0 25%, transparent 25%),
    linear-gradient(-45deg, #e2e8f0 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #e2e8f0 75%),
    linear-gradient(-45deg, transparent 75%, #e2e8f0 75%);
  background-size: 18px 18px;
  background-position: 0 0, 0 9px, 9px -9px, -9px 0px;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 16px;
}

.report-preview {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
  background: white;
  border-radius: 10px;
  box-shadow: var(--shadow);
}

.table-wrap { overflow-x: auto; }

table {
  width: 100%;
  border-collapse: collapse;
}

th, td {
  text-align: left;
  padding: 13px 10px;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}

th {
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.text-link {
  color: var(--teal);
  font-weight: 900;
  text-decoration: none;
}

.text-link:hover { text-decoration: underline; }

.login-shell {
  min-height: calc(100vh - 90px);
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  align-items: center;
  gap: 28px;
}

.brand-panel {
  min-height: 420px;
  padding: 44px;
  border-radius: 28px;
  color: white;
  background:
    linear-gradient(135deg, rgba(7,19,49,.95), rgba(7,19,49,.86)),
    radial-gradient(circle at 20% 20%, rgba(0,122,128,.42), transparent 38%);
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.brand-panel .eyebrow { color: #67e8f9; }
.brand-panel h1 { color: white; max-width: 680px; }
.brand-panel p:not(.eyebrow) { color: rgba(255,255,255,.78); font-size: 18px; max-width: 560px; }
.login-card { margin: 0; }

.admin-form-grid,
.athlete-form-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 14px;
  align-items: end;
}

.admin-form-grid > div,
.athlete-form-grid > div {
  grid-column: span 2;
}

.checkbox-row {
  display: flex;
  gap: 10px;
  align-items: center;
  padding-top: 22px;
}

.checkbox-row input { width: auto; }
.checkbox-row label { margin: 0; }

.admin-form-button {
  display: flex;
  align-items: end;
}

.admin-table { margin-top: 22px; }

.admin-actions-cell {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 310px;
}

.admin-actions-cell form { margin: 0; }

@media (max-width: 980px) {
  .admin-form-grid,
  .athlete-form-grid {
    grid-template-columns: 1fr;
  }
  .admin-form-grid > div,
  .athlete-form-grid > div {
    grid-column: auto;
  }
}

@media (max-width: 820px) {
  .hero, .upload-card, .section-header {
    flex-direction: column;
    align-items: stretch;
  }

  .status-grid { grid-template-columns: 1fr; }
  .login-shell { grid-template-columns: 1fr; }
  .brand-panel { min-height: 260px; padding: 28px; }
}


/* ---------- ErgScreen app chrome + upload polish ---------- */

.app-shell-header {
  max-width: 1120px;
  margin: 0 auto;
  padding: 22px 22px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
}

.brand-lockup {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--navy);
  text-decoration: none;
}

.brand-mark {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--navy);
  color: white;
  font-weight: 950;
  letter-spacing: -0.04em;
  box-shadow: 0 10px 20px rgba(7,19,49,.18);
}

.brand-name {
  display: block;
  font-size: 18px;
  font-weight: 950;
  letter-spacing: -0.04em;
  line-height: 1;
}

.brand-beta {
  display: block;
  margin-top: 2px;
  color: var(--teal);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: 10px;
  font-weight: 900;
}

.app-nav {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px;
  background: rgba(255,255,255,.62);
  border: 1px solid rgba(203,213,225,.82);
  border-radius: 999px;
  box-shadow: 0 8px 22px rgba(7,19,49,.06);
}

.app-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 6px 12px;
  border-radius: 999px;
  color: var(--muted2);
  text-decoration: none;
  font-size: 13px;
  font-weight: 850;
}

.app-nav a:hover {
  background: white;
  color: var(--navy);
}

.upload-hero {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 22px;
  align-items: end;
  margin-bottom: 22px;
}

.upload-hero-copy {
  max-width: 680px;
  font-size: 17px;
}

.engagement-pill {
  min-width: 210px;
  padding: 16px 18px;
  border: 1px solid rgba(203,213,225,.88);
  border-radius: 18px;
  background: rgba(255,255,255,.76);
  box-shadow: var(--shadow-soft);
}

.engagement-pill strong {
  display: block;
  margin-top: 5px;
  color: var(--navy);
  font-size: 24px;
  letter-spacing: -0.035em;
}

.upload-panel {
  border-top: 4px solid var(--teal);
}

.upload-form-grid {
  display: grid;
  grid-template-columns: 1.2fr 1.2fr .8fr .8fr;
  gap: 16px;
}

.file-upload-box {
  margin-top: 22px;
  padding: 18px;
  border: 1px dashed var(--border2);
  border-radius: 18px;
  background: rgba(248,250,252,.74);
}

.file-upload-box label {
  margin-top: 0;
}

.file-upload-box input[type="file"] {
  margin-top: 12px;
  background: white;
}

.upload-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 22px;
}

@media (max-width: 900px) {
  .upload-hero {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .upload-form-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 640px) {
  .app-shell-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .app-nav {
    width: 100%;
    overflow-x: auto;
    justify-content: flex-start;
  }

  .upload-form-grid {
    grid-template-columns: 1fr;
  }

  .upload-actions {
    flex-direction: column-reverse;
  }

  .upload-actions .button {
    width: 100%;
  }
}

.processing-status-grid {
  grid-template-columns: 170px 1fr;
}


/* Compact legacy admin actions */
.mini-button,
.mini-danger,
.mini-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 5px 9px;
  border: 1px solid var(--border2);
  border-radius: 999px;
  background: #fff;
  color: var(--navy);
  font-size: 12px;
  font-weight: 900;
  text-decoration: none;
  cursor: pointer;
}

.mini-danger {
  border-color: #fecaca;
  background: #fff1f1;
  color: #b91c1c;
}

.mini-link {
  color: var(--teal);
}

/* --- ErgScreen unified button system v1 --- */
:root {
  --es-button-height: 2.65rem;
  --es-button-radius: 999px;
  --es-button-pad-x: 1.15rem;
  --es-button-font-size: 0.92rem;
  --es-button-font-weight: 800;
  --es-button-border: rgba(15, 23, 42, 0.16);
  --es-button-bg: #ffffff;
  --es-button-bg-hover: #f8fbfc;
  --es-button-primary-bg: #07143d;
  --es-button-primary-color: #ffffff;
  --es-button-accent: #007f86;
  --es-button-danger-bg: #fff4f4;
  --es-button-danger-border: rgba(220, 38, 38, 0.22);
  --es-button-danger-color: #b91c1c;
}

.button,
button,
input[type="submit"],
input[type="button"],
a.button,
.text-link.action-as-button,
a.text-link.action-as-button,
.table-action,
a.table-action {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--es-button-height);
  height: var(--es-button-height);
  padding: 0 var(--es-button-pad-x);
  border: 1px solid var(--es-button-border);
  border-radius: var(--es-button-radius);
  background: var(--es-button-bg);
  color: #07143d;
  font-family: inherit;
  font-size: var(--es-button-font-size);
  font-weight: var(--es-button-font-weight);
  line-height: 1;
  letter-spacing: -0.01em;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, border-color 120ms ease;
  appearance: none;
  -webkit-appearance: none;
}


.button:focus-visible,
button:focus-visible,
input[type="submit"]:focus-visible,
input[type="button"]:focus-visible,
a.button:focus-visible,
.text-link.action-as-button:focus-visible,
.table-action:focus-visible {
  outline: 3px solid rgba(15, 139, 141, 0.22);
  outline-offset: 3px;
}

.button:disabled,
button:disabled,
input[type="submit"]:disabled,
input[type="button"]:disabled,
.button[aria-disabled="true"],
a.button[aria-disabled="true"] {
  opacity: 0.48;
  cursor: not-allowed;
  pointer-events: none;
  transform: none !important;
  box-shadow: none !important;
}

.button:hover,
button:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
a.button:hover,
.text-link.action-as-button:hover,
a.text-link.action-as-button:hover,
.table-action:hover,
a.table-action:hover {
  transform: translateY(-1px);
  background: var(--es-button-bg-hover);
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.09);
  text-decoration: none;
}

.button-primary,
.button.primary,
a.button-primary,
a.button.primary,
button.button-primary,
button.primary {
  background: var(--es-button-primary-bg);
  border-color: var(--es-button-primary-bg);
  color: var(--es-button-primary-color);
  box-shadow: 0 10px 24px rgba(7, 20, 61, 0.20);
}

.button-primary:hover,
.button.primary:hover,
a.button-primary:hover,
a.button.primary:hover,
button.button-primary:hover,
button.primary:hover {
  background: var(--es-button-primary-bg);
  color: var(--es-button-primary-color);
  box-shadow: 0 12px 28px rgba(7, 20, 61, 0.24);
}

.button-ghost,
.button.secondary,
.button-secondary,
a.button-ghost,
a.button.secondary,
a.button-secondary,
button.button-ghost,
button.secondary,
button.button-secondary {
  background: #ffffff;
  border-color: var(--es-button-border);
  color: #07143d;
}

.text-link,
a.text-link {
  color: var(--es-button-accent);
  font-weight: var(--es-button-font-weight);
  text-decoration: none;
}

.text-link:not(.action-as-button):hover,
a.text-link:not(.action-as-button):hover {
  text-decoration: underline;
}

.text-link.action-as-button,
a.text-link.action-as-button,
.table-action,
a.table-action {
  color: var(--es-button-accent);
}

.button-danger,
.button.danger,
a.button-danger,
a.button.danger,
button.button-danger,
button.danger {
  background: var(--es-button-danger-bg);
  border-color: var(--es-button-danger-border);
  color: var(--es-button-danger-color);
}

.button-danger:hover,
.button.danger:hover,
a.button-danger:hover,
a.button.danger:hover,
button.button-danger:hover,
button.danger:hover {
  background: #ffecec;
  color: var(--es-button-danger-color);
}

.actions,
.action-row,
.action-row-primary,
.action-row-file,
.admin-actions-cell,
.table-actions {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex-wrap: wrap;
}

.admin-actions-cell {
  min-width: 22rem;
}

.admin-actions-cell form,
.action-row form,
.table-actions form {
  display: inline-flex;
  margin: 0;
}

.admin-actions-cell::after {
  content: "";
  flex-basis: 100%;
  order: 1;
  height: 0;
}

.admin-actions-cell > a,
.admin-actions-cell > .button,
.admin-actions-cell > .text-link,
.admin-actions-cell > .table-action {
  order: 1;
}

.admin-actions-cell > form {
  order: 2;
}

td .text-link.action-as-button,
td a.text-link.action-as-button,
td .table-action,
td a.table-action {
  height: 2.3rem;
  min-height: 2.3rem;
  padding-inline: 0.9rem;
  font-size: 0.88rem;
}

@media (max-width: 760px) {
  .admin-actions-cell {
    min-width: 0;
  }

  .button,
  button,
  input[type="submit"],
  input[type="button"],
  a.button,
  .text-link.action-as-button,
  a.text-link.action-as-button,
  .table-action,
  a.table-action {
    min-height: 2.45rem;
    height: 2.45rem;
    padding-inline: 0.95rem;
    font-size: 0.88rem;
  }
}
/* --- End ErgScreen unified button system v1 --- */

/* Processing / job status reassurance card */
.processing-intro-card {
  margin: 1.25rem 0 1.5rem;
  padding: 1.25rem 1.45rem;
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-left: 5px solid #0f8b8d;
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(15, 139, 141, 0.10), rgba(255, 255, 255, 0.86) 46%, rgba(249, 115, 22, 0.07));
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
}

.processing-intro-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.45rem;
  color: #0f766e;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.10em;
  text-transform: uppercase;
}

.processing-intro-kicker::before {
  content: "";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 999px;
  color: #ffffff;
  background: #0f766e;
  font-size: 0.72rem;
  line-height: 1;
}

.processing-intro-title {
  color: #071331;
  font-size: clamp(1.05rem, 2vw, 1.22rem);
  font-weight: 850;
  letter-spacing: -0.01em;
}

.processing-intro-copy,
.processing-intro-note {
  max-width: 780px;
  margin: 0.45rem 0 0;
  color: #334155;
  font-size: 0.98rem;
  line-height: 1.55;
}

.processing-intro-note {
  color: #64748b;
}

@media (max-width: 700px) {
  .processing-intro-card {
    margin: 1rem 0 1.2rem;
    padding: 1rem 1.05rem;
    border-radius: 16px;
  }

  .processing-intro-copy,
  .processing-intro-note {
    font-size: 0.94rem;
  }
}

/* === ErgScreen polish pack: upload, processing, dashboard/mobile === */

.form-helper {
  margin: 0.45rem 0 0;
  color: #64748b;
  font-size: 0.92rem;
  line-height: 1.45;
}

.video-upload-helper {
  max-width: 760px;
}

.processing-intro-card,
.processing-timeline-card,
.report-ready-card {
  margin: 1.25rem 0 1.5rem;
  padding: 1.25rem 1.45rem;
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.08);
}

.processing-intro-card {
  border-left: 5px solid #0f8b8d;
  background:
    linear-gradient(135deg, rgba(15, 139, 141, 0.10), rgba(255, 255, 255, 0.88) 48%, rgba(249, 115, 22, 0.07));
}

.report-ready-card {
  border-left: 5px solid #16a34a;
  background:
    linear-gradient(135deg, rgba(22, 163, 74, 0.10), rgba(255, 255, 255, 0.90) 52%, rgba(15, 139, 141, 0.06));
}

.processing-intro-kicker,
.report-ready-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.45rem;
  color: #0f766e;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.10em;
  text-transform: uppercase;
}

.report-ready-kicker {
  color: #15803d;
}

.processing-intro-kicker::before,
.report-ready-kicker::before {
  content: "";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 999px;
  color: #ffffff;
  background: #0f766e;
  font-size: 0.72rem;
  line-height: 1;
}

.report-ready-kicker::before {
  background: #15803d;
}

.processing-intro-title,
.report-ready-title {
  color: #071331;
  font-size: clamp(1.05rem, 2vw, 1.22rem);
  font-weight: 850;
  letter-spacing: -0.01em;
}

.processing-intro-copy,
.processing-intro-note,
.report-ready-copy {
  max-width: 780px;
  margin: 0.45rem 0 0;
  color: #334155;
  font-size: 0.98rem;
  line-height: 1.55;
}

.processing-intro-note,
.report-ready-copy {
  color: #64748b;
}

.processing-timeline-card {
  padding: 1.05rem 1.25rem;
}

.processing-timeline-title {
  color: #071331;
  font-weight: 850;
  margin-bottom: 0.8rem;
}

.processing-timeline {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.7rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.processing-timeline li {
  position: relative;
  min-height: 2.5rem;
  padding: 0.65rem 0.75rem 0.65rem 2.05rem;
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: 14px;
  background: #f8fafc;
  color: #64748b;
  font-size: 0.92rem;
  font-weight: 700;
}

.processing-timeline li::before {
  content: "";
  position: absolute;
  left: 0.72rem;
  top: 0.78rem;
  width: 0.8rem;
  height: 0.8rem;
  border: 2px solid #cbd5e1;
  border-radius: 999px;
  background: #ffffff;
}

.processing-timeline li.complete {
  color: #0f766e;
  background: #f0fdfa;
}

.processing-timeline li.complete::before {
  content: "";
  display: flex;
  align-items: center;
  justify-content: center;
  border-color: #0f766e;
  background: #0f766e;
  color: #ffffff;
  font-size: 0.58rem;
  line-height: 1;
}

.processing-timeline li.active {
  color: #071331;
  background: #fff7ed;
  border-color: rgba(249, 115, 22, 0.30);
}

.processing-timeline li.active::before {
  border-color: #f97316;
  background: #f97316;
  box-shadow: 0 0 0 4px rgba(249, 115, 22, 0.16);
}

.status-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.28rem 0.58rem;
  border-radius: 999px;
  background: #f1f5f9;
  color: #334155;
  font-size: 0.82rem;
  font-weight: 800;
}

.status-pill.status-ready {
  background: #ecfdf5;
  color: #047857;
}

.status-pill.status-processing,
.status-pill.status-pending {
  background: #fff7ed;
  color: #c2410c;
}

.status-pill.status-failed {
  background: #fef2f2;
  color: #b91c1c;
}

.status-pill.status-hidden,
.status-pill.status-archived {
  background: #f8fafc;
  color: #64748b;
}

/* Better tap targets and mobile form behavior */
button,
.button,
input[type="submit"],
input[type="file"],
select {
  min-height: 44px;
}

input[type="file"] {
  width: 100%;
}

/* Mobile dashboard/table fallback. Works with existing tables without template changes. */
@media (max-width: 760px) {
  .processing-intro-card,
  .processing-timeline-card,
  .report-ready-card {
    margin: 1rem 0 1.2rem;
    padding: 1rem 1.05rem;
    border-radius: 16px;
  }

  .processing-intro-copy,
  .processing-intro-note,
  .report-ready-copy {
    font-size: 0.94rem;
  }

  .processing-timeline {
    grid-template-columns: 1fr;
    gap: 0.45rem;
  }

  .upload-form-grid {
    grid-template-columns: 1fr !important;
  }

  .upload-actions,
  .job-actions,
  .dashboard-actions,
  .actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }

  .upload-actions .button,
  .job-actions .button,
  .dashboard-actions .button,
  .actions .button {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  table {
    width: 100%;
  }

  .dashboard-table,
  .jobs-table,
  table.jobs,
  table.dashboard {
    border-collapse: separate;
    border-spacing: 0 0.75rem;
  }

  .dashboard-table thead,
  .jobs-table thead,
  table.jobs thead,
  table.dashboard thead {
    display: none;
  }

  .dashboard-table tr,
  .jobs-table tr,
  table.jobs tr,
  table.dashboard tr {
    display: block;
    padding: 0.95rem;
    border: 1px solid rgba(15, 23, 42, 0.10);
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.06);
  }

  .dashboard-table td,
  .jobs-table td,
  table.jobs td,
  table.dashboard td {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.42rem 0 !important;
    border: 0 !important;
    text-align: right;
  }

  .dashboard-table td::before,
  .jobs-table td::before,
  table.jobs td::before,
  table.dashboard td::before {
    content: attr(data-label);
    flex: 0 0 42%;
    color: #64748b;
    font-weight: 700;
    text-align: left;
  }

  .dashboard-table td:last-child,
  .jobs-table td:last-child,
  table.jobs td:last-child,
  table.dashboard td:last-child {
    display: block;
    text-align: left;
  }

  .dashboard-table td:last-child::before,
  .jobs-table td:last-child::before,
  table.jobs td:last-child::before,
  table.dashboard td:last-child::before {
    content: "";
    display: none;
  }
}


/* --- ErgScreen VM-rendered Stroke Evidence table v1 --- */
.stroke-evidence-vm-card {
  overflow: visible;
}

.stroke-evidence-vm-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0 16px;
}

.stroke-evidence-vm-metric {
  border: 1px solid rgba(203, 213, 225, 0.86);
  border-radius: 14px;
  padding: 12px 14px;
  background: rgba(248, 250, 252, 0.78);
}

.stroke-evidence-vm-metric .field-label {
  margin-bottom: 4px;
}

.stroke-evidence-vm-value {
  margin: 0;
  color: var(--navy, #071331);
  font-size: 1.18rem;
  line-height: 1;
  font-weight: 900;
}

.stroke-evidence-vm-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--border, #d8e0ec);
  border-radius: 18px;
  background: #ffffff;
  -webkit-overflow-scrolling: touch;
}

.stroke-evidence-vm-table {
  min-width: 980px;
  background: #ffffff;
}

.stroke-evidence-vm-table th {
  background: rgba(248, 250, 252, 0.92);
  color: var(--muted, #64748b);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.09em;
}

.stroke-evidence-vm-table td {
  color: var(--text, #071331);
  font-size: 0.92rem;
  line-height: 1.35;
}

.stroke-evidence-vm-table tr.stroke-evidence-row-omitted td {
  color: var(--muted, #64748b);
  background: rgba(248, 250, 252, 0.68);
}

.stroke-evidence-vm-table tr.stroke-evidence-row-flagged td {
  background: linear-gradient(90deg, rgba(15, 139, 141, 0.055), rgba(255, 255, 255, 0));
}

.stroke-cell {
  white-space: nowrap;
}

.stroke-landmark-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px 10px;
  min-width: 260px;
}

.stroke-landmark-list span {
  color: var(--muted2, #475569);
  font-size: 0.82rem;
}

.stroke-landmark-list strong {
  color: var(--navy, #071331);
  font-weight: 850;
}

.stroke-evidence-pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 7px;
}

.stroke-evidence-pill {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(15, 139, 141, 0.10);
  color: var(--teal, #007a80);
  font-size: 0.76rem;
  font-weight: 900;
  white-space: nowrap;
}

.stroke-evidence-pill-muted {
  margin-left: 6px;
  background: rgba(100, 116, 139, 0.12);
  color: var(--muted, #64748b);
}

.stroke-evidence-note {
  color: var(--muted2, #475569);
  overflow-wrap: anywhere;
}

@media (max-width: 900px) {
  .stroke-evidence-vm-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stroke-evidence-vm-summary .stroke-evidence-vm-metric:first-child {
    grid-column: 1 / -1;
  }
}
/* --- End ErgScreen VM-rendered Stroke Evidence table v1 --- */


/* --- ErgScreen VM recovery landmark timeline v1 --- */
.stroke-timeline-wrap {
  min-width: 260px;
}

.stroke-timeline-track {
  position: relative;
  height: 30px;
  margin: 0 4px;
}

.stroke-timeline-track::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 16px;
  height: 2px;
  background: #94a3b8;
}

.stroke-timeline-tick {
  position: absolute;
  top: 12px;
  width: 1px;
  height: 10px;
  background: #94a3b8;
}

.stroke-timeline-tick-0 { left: 0; }
.stroke-timeline-tick-50 { left: 50%; }
.stroke-timeline-tick-100 { right: 0; }

.stroke-timeline-marker {
  position: absolute;
  width: 12px;
  height: 12px;
  top: 10px;
  z-index: 2;
}

.stroke-timeline-marker-circle {
  background: var(--marker);
  border: 1px solid #0f172a;
  border-radius: 999px;
}

.stroke-timeline-marker-square {
  background: var(--marker);
  border: 1px solid #0f172a;
}

.stroke-timeline-marker-diamond {
  background: var(--marker);
  border: 1px solid #0f172a;
  transform: rotate(45deg);
  transform-origin: center center;
}

.stroke-timeline-marker-triangle {
  width: 0;
  height: 0;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-bottom: 12px solid var(--marker);
}

.stroke-timeline-scale {
  margin: 2px 4px 0;
  display: flex;
  justify-content: space-between;
  color: var(--muted, #64748b);
  font-size: 10px;
  font-weight: 800;
}

.stroke-timeline-values {
  margin: 3px 4px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 3px 6px;
  color: var(--muted, #64748b);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.01em;
}

.stroke-timeline-values strong {
  color: var(--navy, #071331);
  font-weight: 900;
}

.stroke-timeline-dot {
  color: #94a3b8;
}

.stroke-evidence-vm-table td.timing-concern {
  background: #fbf1df !important;
  font-weight: 800;
}
/* --- End ErgScreen VM recovery landmark timeline v1 --- */


/* --- ErgScreen compact recovery landmark key/timeline v2 --- */
.stroke-evidence-landmark-key {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  align-items: center;
  margin: 4px 0 14px;
  color: var(--navy, #071331);
  font-size: 0.82rem;
  font-weight: 800;
}

.stroke-evidence-key-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  display: inline-block;
  margin-right: 7px;
  vertical-align: -1px;
}

.stroke-evidence-key-hands { background: #3b82f6; }
.stroke-evidence-key-body { background: #f97316; }
.stroke-evidence-key-knees { background: #16a34a; }
.stroke-evidence-key-slide { background: #dc2626; }
.stroke-evidence-key-concern {
  background: #fbf1df;
  border: 1px solid #ead8b8;
}

.stroke-timeline-wrap {
  min-width: 250px;
}

.stroke-timeline-track {
  height: 24px;
  margin: 0 4px;
}

.stroke-timeline-track::before {
  top: 13px;
}

.stroke-timeline-tick {
  top: 9px;
  height: 9px;
}

.stroke-timeline-marker {
  top: 7px;
}

.stroke-timeline-scale {
  display: none;
}

.stroke-timeline-values {
  margin-top: 1px;
  font-size: 10.5px;
  gap: 2px 5px;
}

.stroke-evidence-vm-table td.timing-concern {
  background: #fbf1df !important;
}
/* --- End ErgScreen compact recovery landmark key/timeline v2 --- */


/* --- ErgScreen semantic report colors v1 --- */
/*
  Cross-surface color contract:
  - Added Movement: teal
  - Reduced Drive: orange
  - Stroke Consistency / Rate-Rhythm: blue
  - Recovery Sequencing / Early Slide: amber/beige
  - Omitted / unavailable: gray
*/

:root {
  --es-added: #0f8b8d;
  --es-added-soft: rgba(15, 139, 141, 0.10);
  --es-reduced: #f97316;
  --es-reduced-soft: rgba(249, 115, 22, 0.10);
  --es-rhythm: #1d4e89;
  --es-rhythm-soft: rgba(29, 78, 137, 0.10);
  --es-recovery: #b7791f;
  --es-recovery-soft: #fbf1df;
  --es-recovery-border: #ead8b8;
  --es-omitted: #64748b;
  --es-omitted-soft: rgba(100, 116, 139, 0.12);
}

/* Technique Watch top metric cards */
.job-technique-summary .job-technique-metric:nth-child(1) {
  border-left: 4px solid var(--es-added);
}

.job-technique-summary .job-technique-metric:nth-child(2) {
  border-left: 4px solid var(--es-reduced);
}

.job-technique-summary .job-technique-metric:nth-child(3) {
  border-left: 4px solid var(--es-recovery);
  background: linear-gradient(90deg, rgba(251, 241, 223, 0.62), rgba(248, 250, 252, 0.72) 34%);
}

/* Stroke Evidence VM summary cards */
.stroke-evidence-vm-summary .stroke-evidence-vm-metric:nth-child(3) {
  border-color: rgba(15, 139, 141, 0.34);
  border-left: 4px solid var(--es-added);
}

.stroke-evidence-vm-summary .stroke-evidence-vm-metric:nth-child(4) {
  border-color: rgba(249, 115, 22, 0.34);
  border-left: 4px solid var(--es-reduced);
}

.stroke-evidence-vm-summary .stroke-evidence-vm-metric:nth-child(5) {
  border-color: rgba(183, 121, 31, 0.32);
  border-left: 4px solid var(--es-recovery);
  background: linear-gradient(90deg, rgba(251, 241, 223, 0.72), rgba(248, 250, 252, 0.78) 34%);
}

/* Row-level flag badges */
.stroke-evidence-pill-added {
  background: var(--es-added-soft);
  color: var(--es-added);
}

.stroke-evidence-pill-reduced {
  background: var(--es-reduced-soft);
  color: var(--es-reduced);
}

.stroke-evidence-pill-recovery {
  background: var(--es-recovery-soft);
  color: var(--es-recovery);
  border: 1px solid var(--es-recovery-border);
}

.stroke-evidence-pill-muted {
  background: var(--es-omitted-soft);
  color: var(--es-omitted);
}

/* Recovery sequencing concern cells own the amber/beige lane. */
.stroke-evidence-vm-table td.timing-concern {
  background: var(--es-recovery-soft) !important;
  box-shadow: inset 3px 0 0 rgba(183, 121, 31, 0.38);
}

/* Preserve blue for rhythm/rate surfaces only. */
.stroke-consistency-accent,
.rate-rhythm-accent {
  color: var(--es-rhythm);
}
/* --- End ErgScreen semantic report colors v1 --- */


/* --- ErgScreen compact recovery timeline label de-emphasis v1 --- */
.stroke-timeline-values,
.stroke-timeline-values strong {
  color: var(--muted, #64748b) !important;
  font-weight: 750 !important;
}

.stroke-timeline-values strong {
  font-weight: inherit !important;
}
/* --- End ErgScreen compact recovery timeline label de-emphasis v1 --- */


/* --- ErgScreen Stroke Evidence clean table start v1 --- */
.stroke-evidence-vm-card .stroke-evidence-landmark-key {
  margin-top: 0;
  margin-bottom: 14px;
}
/* --- End ErgScreen Stroke Evidence clean table start v1 --- */


/* --- ErgScreen final Stroke Evidence VM polish v1 --- */
.stroke-timeline-marker {
  width: 10px;
  height: 10px;
  top: 8px;
}

.stroke-timeline-marker-circle {
  border-radius: 999px;
}

.stroke-timeline-marker-diamond {
  transform: rotate(45deg);
  transform-origin: center center;
}

.stroke-timeline-marker-triangle {
  width: 0;
  height: 0;
  border-left-width: 6px;
  border-right-width: 6px;
  border-bottom-width: 10px;
}

.stroke-timeline-values,
.stroke-timeline-values strong {
  color: #64748b !important;
  font-weight: 700 !important;
}

.stroke-timeline-dot {
  color: #aab4c1 !important;
}

.stroke-evidence-vm-table td {
  font-size: 0.91rem;
}

.stroke-evidence-vm-table th {
  letter-spacing: 0.075em;
}

.stroke-evidence-vm-table td.timing-concern {
  background: #fbf1df !important;
  box-shadow: inset 3px 0 0 rgba(183, 121, 31, 0.34);
}
/* --- End ErgScreen final Stroke Evidence VM polish v1 --- */


/* --- ErgScreen Movement Analysis VM web surface v1 --- */
.movement-analysis-vm-card {
  position: relative;
  overflow: hidden;
  padding: 24px;
  border-color: rgba(15, 139, 141, 0.18);
  background:
    radial-gradient(circle at 92% 6%, rgba(15, 139, 141, 0.10), transparent 28%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.88));
  box-shadow: 0 22px 60px rgba(7, 19, 49, 0.08);
}

.movement-analysis-vm-hero {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 18px;
}

.movement-analysis-vm-hero h2 {
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  letter-spacing: -0.045em;
}

.movement-analysis-vm-lockup {
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: var(--navy, #071331);
  color: #ffffff;
  font-weight: 950;
  letter-spacing: -0.08em;
  box-shadow: 0 12px 26px rgba(7, 19, 49, 0.18);
}

.movement-analysis-section-label {
  margin: 0 0 6px;
  color: var(--muted, #64748b);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.10em;
}

.movement-analysis-session-read {
  border: 1px solid rgba(15, 139, 141, 0.22);
  border-left: 5px solid var(--es-added, #0f8b8d);
  border-radius: 18px;
  padding: 18px 20px;
  background: rgba(15, 139, 141, 0.07);
  margin-bottom: 16px;
}

.movement-analysis-session-read h3,
.movement-signal-card h3,
.movement-priority-card h3,
.movement-repeat-band h3 {
  margin: 0;
  color: var(--navy, #071331);
  letter-spacing: -0.025em;
}

.movement-analysis-session-read h3 {
  color: var(--es-added, #0f8b8d);
  font-size: 1.14rem;
}

.movement-analysis-session-read ul {
  margin: 12px 0 0;
  padding-left: 1.1rem;
  color: var(--text, #071331);
}

.movement-analysis-session-read li {
  margin: 4px 0;
}

.movement-analysis-why {
  margin: 12px 0 0;
  padding-top: 10px;
  border-top: 1px solid rgba(15, 139, 141, 0.18);
  color: var(--navy, #071331);
  font-weight: 850;
}

.movement-analysis-two-up,
.movement-analysis-priority-grid,
.movement-rhythm-grid {
  display: grid;
  gap: 14px;
}

.movement-analysis-two-up,
.movement-analysis-priority-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 16px;
}

.movement-rhythm-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 16px;
}

.movement-signal-card,
.movement-priority-card,
.movement-rhythm-card {
  border: 1px solid rgba(203, 213, 225, 0.84);
  border-radius: 18px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.86);
}

.movement-signal-added {
  border-left: 5px solid var(--es-added, #0f8b8d);
}

.movement-signal-reduced {
  border-left: 5px solid var(--es-reduced, #f97316);
}

.movement-signal-added .movement-analysis-section-label,
.movement-signal-added h3 {
  color: var(--es-added, #0f8b8d);
}

.movement-signal-reduced .movement-analysis-section-label,
.movement-signal-reduced h3 {
  color: var(--es-reduced, #f97316);
}

.movement-chip-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 14px 0;
}

.movement-chip {
  border: 1px solid rgba(203, 213, 225, 0.84);
  border-radius: 14px;
  padding: 10px 8px;
  background: #ffffff;
  text-align: center;
}

.movement-chip strong {
  display: block;
  color: var(--navy, #071331);
  font-size: 1rem;
  line-height: 1.05;
  white-space: pre-line;
}

.movement-chip span {
  display: block;
  margin-top: 5px;
  color: var(--muted, #64748b);
  font-size: 0.70rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.movement-detail-list {
  display: grid;
  gap: 7px;
  margin: 0;
}

.movement-detail-list div {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 8px;
  align-items: baseline;
}

.movement-detail-list dt {
  color: var(--muted, #64748b);
  font-size: 0.75rem;
  font-weight: 900;
}

.movement-detail-list dd {
  margin: 0;
  color: var(--text, #071331);
  font-size: 0.88rem;
  font-weight: 700;
}

.movement-priority-first {
  border-left: 5px solid var(--es-added, #0f8b8d);
}

.movement-priority-context {
  border-left: 5px solid var(--es-rhythm, #1d4e89);
}

.movement-kicker {
  display: inline-flex;
  margin-bottom: 8px;
  padding: 4px 9px;
  border-radius: 999px;
  background: rgba(15, 139, 141, 0.10);
  color: var(--es-added, #0f8b8d);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.movement-priority-context .movement-kicker {
  background: rgba(29, 78, 137, 0.10);
  color: var(--es-rhythm, #1d4e89);
}

.movement-priority-card p {
  margin: 9px 0 0;
  color: var(--muted2, #475569);
}

.movement-priority-card ul {
  margin: 8px 0 0;
  padding-left: 1.05rem;
  color: var(--text, #071331);
  font-weight: 700;
}

.movement-rhythm-card {
  border-top: 4px solid var(--es-rhythm, #1d4e89);
  background: linear-gradient(180deg, rgba(29, 78, 137, 0.06), rgba(255, 255, 255, 0.86));
}

.movement-rhythm-card strong {
  display: block;
  color: var(--navy, #071331);
  font-size: 0.98rem;
  line-height: 1.2;
}

.movement-rhythm-card span {
  display: block;
  margin-top: 6px;
  color: var(--muted, #64748b);
  font-size: 0.82rem;
  font-weight: 800;
}

.movement-repeat-band {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 15px;
  align-items: center;
  border-radius: 18px;
  padding: 18px 20px;
  color: #ffffff;
  background:
    radial-gradient(circle at 94% 12%, rgba(15, 139, 141, 0.28), transparent 30%),
    var(--navy, #071331);
}

.movement-repeat-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  color: #ffffff;
  background: var(--es-added, #0f8b8d);
  font-size: 1.5rem;
  font-weight: 950;
}

.movement-repeat-band .movement-analysis-section-label {
  color: rgba(255, 255, 255, 0.70);
}

.movement-repeat-band h3,
.movement-repeat-band p {
  color: #ffffff;
}

.movement-repeat-band p {
  margin: 6px 0 0;
  font-weight: 800;
}

@media (max-width: 900px) {
  .movement-analysis-vm-hero,
  .movement-analysis-two-up,
  .movement-analysis-priority-grid,
  .movement-rhythm-grid {
    grid-template-columns: 1fr;
  }

  .movement-analysis-vm-hero {
    display: grid;
  }

  .movement-chip-grid {
    grid-template-columns: 1fr;
  }

  .movement-detail-list div {
    grid-template-columns: 1fr;
    gap: 2px;
  }
}
/* --- End ErgScreen Movement Analysis VM web surface v1 --- */


/* --- ErgScreen Movement Analysis full-page view v1 --- */
.movement-analysis-view-hero {
  align-items: flex-end;
}

.movement-analysis-view-hero .actions {
  justify-content: flex-end;
}

.movement-analysis-vm-embedded {
  margin-top: 0;
}

@media (max-width: 900px) {
  .movement-analysis-view-hero .actions {
    justify-content: stretch;
  }
}
/* --- End ErgScreen Movement Analysis full-page view v1 --- */


/* --- ErgScreen Movement Analysis VM polish v2 --- */
.movement-analysis-vm-card {
  padding: 26px;
}

.movement-analysis-vm-card:not(.movement-analysis-vm-embedded) {
  margin-top: -2px;
}

.movement-analysis-vm-card:not(.movement-analysis-vm-embedded) .movement-analysis-session-read {
  margin-top: 0;
}

.movement-analysis-vm-embedded .movement-analysis-vm-hero {
  margin-bottom: 18px;
}

.movement-analysis-vm-lockup {
  display: none;
}

.movement-analysis-session-read {
  padding: 20px 22px;
  margin-bottom: 18px;
}

.movement-analysis-session-read ul {
  margin-top: 14px;
}

.movement-analysis-two-up,
.movement-analysis-priority-grid,
.movement-rhythm-grid {
  gap: 16px;
}

.movement-analysis-two-up,
.movement-analysis-priority-grid {
  margin-bottom: 18px;
}

.movement-rhythm-grid {
  margin-bottom: 18px;
}

.movement-signal-card,
.movement-priority-card,
.movement-rhythm-card {
  padding: 18px;
}

.movement-signal-heading {
  min-height: 64px;
}

.movement-signal-card h3 {
  line-height: 1.12;
}

.movement-chip-grid {
  margin: 16px 0;
}

.movement-detail-list {
  gap: 8px;
}

.movement-priority-card {
  min-height: 168px;
}

.movement-repeat-band {
  margin-top: 2px;
}

@media (max-width: 900px) {
  .movement-analysis-vm-card {
    padding: 20px;
  }

  .movement-signal-heading {
    min-height: 0;
  }

  .movement-priority-card {
    min-height: 0;
  }
}
/* --- End ErgScreen Movement Analysis VM polish v2 --- */


/* --- ErgScreen Movement Analysis VM microcopy/spacing polish v3 --- */
.movement-analysis-vm-card {
  margin-top: -6px;
}

.movement-analysis-session-read {
  margin-bottom: 16px;
}

.movement-signal-heading {
  min-height: 54px;
}

.movement-signal-card h3 {
  font-size: 1.03rem;
}

.movement-analysis-priority-grid {
  margin-top: 2px;
}

.movement-rhythm-card {
  min-height: 92px;
}

@media (max-width: 900px) {
  .movement-analysis-vm-card {
    margin-top: 0;
  }

  .movement-signal-heading {
    min-height: 0;
  }

  .movement-rhythm-card {
    min-height: 0;
  }
}
/* --- End ErgScreen Movement Analysis VM microcopy/spacing polish v3 --- */


/* --- ErgScreen Movement Analysis metadata + color contract polish v4 --- */
.movement-analysis-view-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 24px;
}

.movement-analysis-view-main {
  min-width: 0;
}

.movement-analysis-meta-bubbles {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.movement-analysis-meta-bubble {
  min-width: 190px;
  padding: 12px 15px;
  border: 1px solid rgba(203, 213, 225, 0.90);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.74);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.055);
}

.movement-analysis-meta-bubble span {
  display: block;
  color: var(--muted, #64748b);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.movement-analysis-meta-bubble strong {
  display: block;
  color: var(--navy, #071331);
  font-size: 0.98rem;
  line-height: 1.15;
  font-weight: 900;
}

.movement-analysis-meta-bubble strong em {
  display: inline-block;
  margin-left: 5px;
  color: var(--muted, #64748b);
  font-style: normal;
  font-weight: 800;
}

.movement-analysis-meta-bubble-rate {
  min-width: 105px;
}

.movement-analysis-meta-bubble-rate strong {
  color: var(--es-rhythm, #1d4e89);
  font-size: 1.18rem;
}

/* Color contract:
   Added Movement = teal
   Reduced Drive = orange
   Stroke rhythm/rate = blue
   Visible/context/non-priority = neutral slate, not blue.
*/
.movement-priority-context {
  border-left-color: #94a3b8 !important;
}

.movement-priority-context .movement-analysis-section-label {
  color: var(--muted, #64748b);
}

.movement-priority-context .movement-kicker {
  background: rgba(100, 116, 139, 0.11);
  color: #475569;
}

.movement-priority-context h3,
.movement-priority-context li {
  color: var(--navy, #071331);
}

.movement-rhythm-card {
  border-top-color: var(--es-rhythm, #1d4e89);
}

@media (max-width: 900px) {
  .movement-analysis-view-hero {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .movement-analysis-view-actions {
    justify-content: flex-start;
  }

  .movement-analysis-meta-bubble {
    min-width: min(100%, 220px);
  }
}

@media (max-width: 640px) {
  .movement-analysis-meta-bubbles {
    display: grid;
    grid-template-columns: 1fr;
  }

  .movement-analysis-view-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .movement-analysis-view-actions .button {
    width: 100%;
  }
}
/* --- End ErgScreen Movement Analysis metadata + color contract polish v4 --- */


/* --- ErgScreen Movement Analysis priority color polish v5 --- */
/*
  Keep semantic report colors distinct:
  - Added Movement = teal
  - Reduced Drive = orange
  - Rate/Rhythm = blue
  - Priority / visible-but-not-first = neutral slate
*/
.movement-priority-first {
  border-left-color: #94a3b8 !important;
}

.movement-priority-first .movement-analysis-section-label,
.movement-priority-context .movement-analysis-section-label {
  color: var(--muted, #64748b) !important;
}

.movement-priority-first .movement-kicker,
.movement-priority-context .movement-kicker {
  background: rgba(100, 116, 139, 0.11) !important;
  color: #475569 !important;
}

.movement-priority-first h3,
.movement-priority-context h3 {
  color: var(--navy, #071331) !important;
}

.movement-priority-first p,
.movement-priority-context p {
  color: var(--muted2, #475569) !important;
}
/* --- End ErgScreen Movement Analysis priority color polish v5 --- */


/* --- ErgScreen Stroke Evidence full-page view v1 --- */
.stroke-evidence-view-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 24px;
}

@media (max-width: 900px) {
  .stroke-evidence-view-hero {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
}
/* --- End ErgScreen Stroke Evidence full-page view v1 --- */


/* --- ErgScreen report-view navigation labels v1 --- */
.movement-analysis-view-actions {
  flex-wrap: wrap;
}

.movement-analysis-view-actions .button {
  white-space: nowrap;
}
/* --- End ErgScreen report-view navigation labels v1 --- */


/* --- ErgScreen report-view simplified nav v2 --- */
.movement-analysis-view-actions {
  gap: 10px;
}
/* --- End ErgScreen report-view simplified nav v2 --- */


/* --- ErgScreen Coach Brief VM web surface v1 --- */
.coach-brief-view-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 24px;
}

.coach-brief-vm-card {
  position: relative;
  overflow: hidden;
  padding: 26px;
  border-color: rgba(7, 19, 49, 0.14);
  background:
    radial-gradient(circle at 92% 8%, rgba(29, 78, 137, 0.09), transparent 28%),
    linear-gradient(135deg, rgba(255,255,255,0.97), rgba(248,250,252,0.90));
  box-shadow: 0 22px 60px rgba(7, 19, 49, 0.08);
}

.coach-brief-kicker {
  margin: 0 0 7px;
  color: var(--muted, #64748b);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.10em;
}

.coach-brief-decision-band {
  border-radius: 20px;
  padding: 20px 22px;
  color: #ffffff;
  background:
    radial-gradient(circle at 96% 10%, rgba(15, 139, 141, 0.24), transparent 30%),
    var(--navy, #071331);
  margin-bottom: 18px;
}

.coach-brief-decision-band .coach-brief-kicker {
  color: rgba(255, 255, 255, 0.72);
}

.coach-brief-decision-band h2 {
  color: #ffffff;
  font-size: clamp(1.35rem, 2.5vw, 2rem);
  line-height: 1.05;
}

.coach-brief-decision-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
}

.coach-brief-decision-grid div {
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 14px;
  padding: 11px 12px;
  background: rgba(255, 255, 255, 0.08);
}

.coach-brief-decision-grid span,
.coach-brief-three-col span {
  display: block;
  margin-bottom: 5px;
  color: var(--muted, #64748b);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.coach-brief-decision-grid div span {
  color: rgba(255, 255, 255, 0.64);
}

.coach-brief-decision-grid strong {
  display: block;
  color: #ffffff;
  font-size: 0.88rem;
  line-height: 1.25;
}

.coach-brief-signal-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}

.coach-brief-signal-card {
  border: 1px solid rgba(203, 213, 225, 0.86);
  border-radius: 18px;
  padding: 18px;
  background: rgba(255, 255, 255, 0.88);
}

.coach-brief-signal-added {
  border-left: 5px solid var(--es-added, #0f8b8d);
}

.coach-brief-signal-reduced {
  border-left: 5px solid var(--es-reduced, #f97316);
}

.coach-brief-signal-rhythm {
  border-left: 5px solid var(--es-rhythm, #1d4e89);
}

.coach-brief-signal-value {
  color: var(--navy, #071331);
  font-size: 1.45rem;
  line-height: 1;
  font-weight: 950;
  letter-spacing: -0.04em;
}

.coach-brief-signal-subvalue {
  min-height: 1.3rem;
  margin-top: 6px;
  color: var(--muted, #64748b);
  font-size: 0.88rem;
  font-weight: 850;
}

.coach-brief-signal-card dl {
  display: grid;
  gap: 8px;
  margin: 14px 0 0;
}

.coach-brief-signal-card dl div {
  display: grid;
  gap: 2px;
}

.coach-brief-signal-card dt {
  color: var(--muted, #64748b);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.coach-brief-signal-card dd {
  margin: 0;
  color: var(--text, #071331);
  font-size: 0.88rem;
  line-height: 1.35;
  font-weight: 720;
}

.coach-brief-blind-spot-card {
  border: 1px solid rgba(203, 213, 225, 0.86);
  border-radius: 20px;
  padding: 20px;
  background: rgba(255, 255, 255, 0.88);
  margin-bottom: 18px;
}

.coach-brief-blind-spot-card h3 {
  margin: 0;
  color: var(--navy, #071331);
  font-size: 1.05rem;
  letter-spacing: -0.02em;
}

.coach-brief-three-col {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.coach-brief-three-col article {
  border-radius: 16px;
  padding: 14px;
  background: rgba(248, 250, 252, 0.86);
  border: 1px solid rgba(203, 213, 225, 0.78);
}

.coach-brief-three-col ul {
  margin: 0;
  padding-left: 1.05rem;
  color: var(--text, #071331);
  font-size: 0.9rem;
  line-height: 1.35;
  font-weight: 720;
}

.coach-brief-three-col li {
  margin: 5px 0;
}

.coach-brief-association-read {
  margin: 16px 0 0;
  padding-top: 13px;
  border-top: 1px solid rgba(203, 213, 225, 0.86);
  color: var(--navy, #071331);
  font-weight: 850;
}

.coach-brief-next-test-band {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 15px;
  align-items: center;
  border-radius: 18px;
  padding: 18px 20px;
  color: #ffffff;
  background:
    radial-gradient(circle at 94% 12%, rgba(15, 139, 141, 0.28), transparent 30%),
    var(--navy, #071331);
}

.coach-brief-next-test-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  color: #ffffff;
  background: var(--es-added, #0f8b8d);
  font-size: 1.5rem;
  font-weight: 950;
}

.coach-brief-next-test-band .coach-brief-kicker {
  color: rgba(255, 255, 255, 0.70);
}

.coach-brief-next-test-band h3,
.coach-brief-next-test-band p {
  color: #ffffff;
}

.coach-brief-next-test-band h3 {
  margin: 0;
  font-size: 1.12rem;
  letter-spacing: -0.02em;
}

.coach-brief-next-test-band p {
  margin: 6px 0 0;
  font-weight: 800;
}

.coach-brief-pass-fail {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-top: 9px;
  color: rgba(255, 255, 255, 0.92);
  font-size: 0.86rem;
  font-weight: 750;
}

.coach-brief-pass-fail strong {
  color: #ffffff;
}

@media (max-width: 1000px) {
  .coach-brief-view-hero,
  .coach-brief-decision-grid,
  .coach-brief-signal-grid,
  .coach-brief-three-col {
    grid-template-columns: 1fr;
  }

  .coach-brief-view-hero {
    align-items: stretch;
  }
}
/* --- End ErgScreen Coach Brief VM web surface v1 --- */


/* --- ErgScreen Reports table Technique Watch button v1 --- */
.technique-lines-watch {
  color: var(--navy, #071331);
}

.technique-watch-flag {
  position: relative;
  padding-left: 11px;
  font-weight: 850;
  color: var(--navy, #071331);
}

.technique-watch-flag::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: var(--muted, #64748b);
}

.technique-watch-added::before {
  background: var(--es-added, #0f8b8d);
}

.technique-watch-reduced::before {
  background: var(--es-reduced, #f97316);
}

.technique-watch-recovery::before {
  background: var(--es-recovery, #b7791f);
}

.technique-watch-button-row {
  margin-top: 9px;
}

.technique-watch-button {
  height: 2.1rem !important;
  min-height: 2.1rem !important;
  padding-inline: 0.82rem !important;
  border-color: rgba(15, 139, 141, 0.28) !important;
  background: rgba(15, 139, 141, 0.07) !important;
  color: var(--teal, #007a80) !important;
  font-size: 0.82rem !important;
}

.technique-watch-button:hover {
  background: rgba(15, 139, 141, 0.11) !important;
  border-color: rgba(15, 139, 141, 0.40) !important;
}

@media (max-width: 1100px) {
  .technique-watch-button-row {
    margin-top: 8px;
  }
}
/* --- End ErgScreen Reports table Technique Watch button v1 --- */


/* --- ErgScreen report-view active tab color polish v2 --- */
/*
  Report-view tabs now match the app's softer green/teal active treatment.
  The dark navy button remains reserved for primary actions elsewhere, while
  active report state reads as selected rather than as a heavy command button.
*/
.report-surface-tab-active {
  background: rgba(15, 139, 141, 0.12) !important;
  border-color: rgba(15, 139, 141, 0.34) !important;
  color: var(--teal, #007a80) !important;
  box-shadow: inset 0 0 0 1px rgba(15, 139, 141, 0.08), 0 8px 18px rgba(15, 139, 141, 0.08) !important;
}

.report-surface-tab-active:hover {
  transform: none;
  background: rgba(15, 139, 141, 0.14) !important;
  color: var(--teal, #007a80) !important;
  box-shadow: inset 0 0 0 1px rgba(15, 139, 141, 0.10), 0 8px 18px rgba(15, 139, 141, 0.08) !important;
}
/* --- End ErgScreen report-view active tab color polish v2 --- */


/* --- ErgScreen Coach Brief web/PDF family polish v2 --- */
/*
  Goal: Coach Brief HTML should feel like the spacious sibling of the PDF export,
  not a different report. Keep web navigation outside the report content, keep
  Download PDF as a utility, and tighten the decision/signals hierarchy.
*/

.coach-brief-vm-card {
  padding: 26px !important;
}

.coach-brief-export-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: -2px 0 16px;
  padding: 12px 14px;
  border: 1px solid rgba(203, 213, 225, 0.78);
  border-radius: 16px;
  background: rgba(248, 250, 252, 0.66);
}

.coach-brief-export-label {
  margin: 0;
  color: var(--muted, #64748b);
  font-size: 0.70rem;
  font-weight: 900;
  letter-spacing: 0.10em;
  text-transform: uppercase;
}

.coach-brief-export-copy {
  margin: 3px 0 0;
  color: var(--muted2, #475569);
  font-size: 0.88rem;
  font-weight: 760;
  line-height: 1.25;
}

.coach-brief-vm-card .report-card-pdf-button {
  min-height: 38px;
  height: 38px;
  padding-inline: 14px;
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.055);
}

.coach-brief-decision-band {
  margin-bottom: 16px !important;
  padding: 18px 20px !important;
  border-radius: 18px !important;
  background:
    radial-gradient(circle at 96% 12%, rgba(15, 139, 141, 0.23), transparent 32%),
    linear-gradient(135deg, #071331 0%, #071331 62%, #07384a 100%) !important;
}

.coach-brief-decision-band h2 {
  max-width: 820px;
  font-size: clamp(1.45rem, 2.8vw, 2rem) !important;
  line-height: 1.03 !important;
}

.coach-brief-decision-lead {
  margin: 8px 0 0;
  max-width: 760px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.94rem;
  font-weight: 760;
  line-height: 1.35;
}

.coach-brief-decision-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 10px !important;
  margin-top: 14px !important;
}

.coach-brief-decision-grid div {
  min-height: 74px;
  padding: 10px 12px !important;
  border-radius: 13px !important;
  background: rgba(255, 255, 255, 0.065) !important;
  border-color: rgba(255, 255, 255, 0.14) !important;
}

.coach-brief-decision-grid strong {
  font-size: 0.84rem !important;
  line-height: 1.22 !important;
}

.coach-brief-signal-grid {
  gap: 14px !important;
  margin-bottom: 16px !important;
}

.coach-brief-signal-card {
  min-height: 248px;
  padding: 16px !important;
  border-radius: 17px !important;
}

.coach-brief-signal-value {
  font-size: 1.32rem !important;
}

.coach-brief-signal-subvalue {
  min-height: 1.15rem !important;
  margin-top: 5px !important;
  font-size: 0.84rem !important;
}

.coach-brief-signal-card dl {
  gap: 7px !important;
  margin-top: 12px !important;
}

.coach-brief-signal-card dd {
  font-size: 0.84rem !important;
  line-height: 1.30 !important;
}

.coach-brief-blind-spot-card {
  margin-bottom: 16px !important;
  padding: 18px !important;
  border-radius: 18px !important;
}

.coach-brief-blind-spot-card h3 {
  max-width: 980px;
  font-size: 1.0rem !important;
  line-height: 1.24 !important;
}

.coach-brief-three-col {
  gap: 12px !important;
  margin-top: 14px !important;
}

.coach-brief-three-col article {
  padding: 13px !important;
  border-radius: 15px !important;
}

.coach-brief-three-col ul {
  font-size: 0.86rem !important;
}

.coach-brief-association-read {
  margin-top: 14px !important;
  padding-top: 12px !important;
  font-size: 0.92rem;
}

.coach-brief-next-test-band {
  padding: 17px 19px !important;
  border-radius: 17px !important;
}

@media (max-width: 1000px) {
  .coach-brief-decision-grid,
  .coach-brief-signal-grid,
  .coach-brief-three-col {
    grid-template-columns: 1fr !important;
  }

  .coach-brief-signal-card {
    min-height: 0;
  }

  .coach-brief-export-row {
    align-items: stretch;
    flex-direction: column;
  }

  .coach-brief-vm-card .report-card-pdf-button {
    width: fit-content;
  }
}

@media (max-width: 640px) {
  .coach-brief-vm-card .report-card-pdf-button {
    width: 100%;
  }
}
/* --- End ErgScreen Coach Brief web/PDF family polish v2 --- */


/* --- ErgScreen Coach Standard Check v1 --- */
.coach-standard-check-band {
  margin-bottom: 16px;
  padding: 18px 20px;
  border-radius: 18px;
  color: #ffffff;
  background:
    radial-gradient(circle at 96% 12%, rgba(15, 139, 141, 0.23), transparent 32%),
    linear-gradient(135deg, #071331 0%, #071331 62%, #07384a 100%);
}

.coach-standard-check-header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
}

.coach-standard-check-band .coach-brief-kicker {
  color: rgba(255, 255, 255, 0.70);
}

.coach-standard-check-band h2 {
  margin: 0;
  color: #ffffff;
  font-size: clamp(1.45rem, 2.8vw, 2rem);
  line-height: 1.04;
  letter-spacing: -0.035em;
}

.coach-standard-check-subtitle {
  margin: 7px 0 0;
  color: rgba(255, 255, 255, 0.74);
  font-size: 0.94rem;
  font-weight: 760;
}

.coach-standard-profile-pill {
  flex: 0 0 auto;
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  padding: 0 12px;
  border-radius: 999px;
  color: #dff7f7;
  background: rgba(255, 255, 255, 0.075);
  border: 1px solid rgba(255, 255, 255, 0.16);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.coach-standard-check-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}

.coach-standard-check-item {
  min-height: 62px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 9px;
  align-items: center;
  padding: 9px 10px;
  border-radius: 13px;
  background: rgba(255, 255, 255, 0.065);
  border: 1px solid rgba(255, 255, 255, 0.14);
}

.coach-standard-icon {
  width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  font-size: 0.88rem;
  font-weight: 950;
  line-height: 1;
}

.coach-standard-check-pass .coach-standard-icon {
  background: rgba(22, 163, 74, 0.16);
  color: #86efac;
  border: 1px solid rgba(134, 239, 172, 0.38);
}

.coach-standard-check-watch .coach-standard-icon {
  background: rgba(245, 158, 11, 0.15);
  color: #fcd34d;
  border: 1px solid rgba(252, 211, 77, 0.38);
}

.coach-standard-check-fail .coach-standard-icon {
  background: rgba(239, 68, 68, 0.14);
  color: #fca5a5;
  border: 1px solid rgba(252, 165, 165, 0.38);
}

.coach-standard-main strong {
  display: block;
  color: #ffffff;
  font-size: 0.82rem;
  line-height: 1.1;
  font-weight: 900;
}

.coach-standard-main em {
  display: block;
  margin-top: 4px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.72rem;
  line-height: 1.15;
  font-style: normal;
  font-weight: 760;
}

.coach-standard-next-request {
  margin-top: 12px;
  padding-top: 11px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.coach-standard-next-request span {
  display: block;
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.70rem;
  font-weight: 900;
  letter-spacing: 0.10em;
  text-transform: uppercase;
}

.coach-standard-next-request strong {
  display: block;
  margin-top: 4px;
  color: #ffffff;
  font-size: 0.98rem;
  line-height: 1.25;
  font-weight: 900;
}

@media (max-width: 1000px) {
  .coach-standard-check-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .coach-standard-check-header {
    flex-direction: column;
  }

  .coach-standard-check-grid {
    grid-template-columns: 1fr;
  }
}
/* --- End ErgScreen Coach Standard Check v1 --- */


/* --- ErgScreen Coach Standard Check compact polish v2 --- */
.coach-standard-check-band {
  padding: 16px 18px !important;
  margin-bottom: 15px !important;
}

.coach-standard-check-header {
  margin-bottom: 12px !important;
}

.coach-standard-check-band h2 {
  font-size: clamp(1.38rem, 2.55vw, 1.88rem) !important;
  line-height: 1.02 !important;
}

.coach-standard-check-subtitle {
  margin-top: 5px !important;
  font-size: 0.90rem !important;
}

.coach-standard-profile-pill {
  min-height: 30px !important;
  padding: 0 11px !important;
  font-size: 0.74rem !important;
}

.coach-standard-check-grid {
  gap: 8px !important;
}

.coach-standard-check-item {
  min-height: 56px !important;
  padding: 8px 9px !important;
  gap: 8px !important;
}

.coach-standard-icon {
  width: 22px !important;
  height: 22px !important;
  font-size: 0.80rem !important;
}

.coach-standard-title-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}

.coach-standard-title-row strong {
  min-width: 0;
}

.coach-standard-title-row small {
  flex: 0 0 auto;
  color: rgba(255, 255, 255, 0.50);
  font-size: 0.60rem;
  line-height: 1;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.coach-standard-check-pass .coach-standard-title-row small {
  color: #86efac;
}

.coach-standard-check-watch .coach-standard-title-row small {
  color: #fcd34d;
}

.coach-standard-check-fail .coach-standard-title-row small {
  color: #fca5a5;
}

.coach-standard-main strong {
  font-size: 0.80rem !important;
}

.coach-standard-main em {
  margin-top: 3px !important;
  font-size: 0.70rem !important;
  line-height: 1.12 !important;
}

.coach-standard-next-request {
  margin-top: 10px !important;
  padding-top: 10px !important;
}

.coach-standard-next-request strong {
  margin-top: 3px !important;
  font-size: 0.94rem !important;
}
/* --- End ErgScreen Coach Standard Check compact polish v2 --- */


/* --- ErgScreen Coach Preferences v1 --- */
.coach-preferences-hero .subtle {
  max-width: 760px;
  font-size: 1.03rem;
  line-height: 1.5;
}

.coach-preferences-form {
  display: grid;
  gap: 22px;
}

.coach-preferences-form .card {
  margin-bottom: 0;
}

.coach-pref-overview-card {
  padding: 20px;
  border-color: rgba(15, 139, 141, 0.16);
  background:
    radial-gradient(circle at 94% 4%, rgba(15, 139, 141, 0.08), transparent 28%),
    rgba(255, 255, 255, 0.90);
}

.coach-pref-overview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.coach-pref-overview-grid article {
  padding: 16px;
  border: 1px solid rgba(203, 213, 225, 0.78);
  border-radius: 18px;
  background: rgba(248, 250, 252, 0.72);
}

.coach-pref-overview-grid h2 {
  font-size: 1.12rem;
  letter-spacing: -0.025em;
}

.coach-pref-card {
  padding: 24px;
}

.coach-pref-section-header {
  align-items: flex-start;
  margin-bottom: 20px;
}

.coach-pref-toggle,
.coach-pref-pill {
  flex: 0 0 auto;
  margin: 0;
}

.coach-pref-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid rgba(15, 139, 141, 0.26);
  border-radius: 999px;
  background: rgba(15, 139, 141, 0.07);
  color: var(--teal, #007a80);
  font-size: 0.84rem;
  font-weight: 900;
}

.coach-pref-toggle input,
.coach-pref-checkbox input {
  width: auto;
  margin: 0;
}

.coach-pref-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 13px;
  border: 1px solid rgba(15, 139, 141, 0.26);
  border-radius: 999px;
  background: rgba(15, 139, 141, 0.07);
  color: var(--teal, #007a80);
  font-size: 0.78rem;
  font-weight: 950;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.coach-pref-grid {
  display: grid;
  gap: 14px;
}

.coach-pref-grid-four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.coach-pref-grid-five {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.coach-pref-field {
  margin: 0;
  padding: 14px;
  border: 1px solid rgba(203, 213, 225, 0.82);
  border-radius: 16px;
  background: rgba(248, 250, 252, 0.66);
}

.coach-pref-field input {
  margin-top: 8px;
  font-weight: 850;
}

.coach-pref-field .subtle {
  margin-top: 8px;
  font-size: 0.84rem;
  line-height: 1.35;
}

.coach-pref-check-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
}

.coach-pref-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid rgba(203, 213, 225, 0.82);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.74);
  color: var(--navy, #071331);
  font-size: 0.88rem;
  font-weight: 850;
}

.coach-pref-recruit-card {
  border-color: rgba(15, 139, 141, 0.18);
}

.coach-pref-save-card {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  border-top: 4px solid var(--teal, #007a80);
}

.coach-pref-save-card .actions {
  margin: 0;
  flex: 0 0 auto;
}

.coach-pref-message-card {
  border-left: 4px solid var(--teal, #007a80);
}

@media (max-width: 1100px) {
  .coach-pref-grid-four,
  .coach-pref-grid-five {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .coach-pref-overview-grid,
  .coach-pref-grid-four,
  .coach-pref-grid-five,
  .coach-pref-save-card {
    grid-template-columns: 1fr;
  }

  .coach-pref-save-card {
    display: grid;
  }

  .coach-pref-section-header {
    display: grid;
  }

  .coach-pref-toggle,
  .coach-pref-pill,
  .coach-pref-save-card .button {
    width: 100%;
  }
}
/* --- End ErgScreen Coach Preferences v1 --- */


/* --- ErgScreen Coach Preferences v2: Action Items / Technique Watch / Recruit Brief --- */
.coach-pref-overview-grid-three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.coach-pref-grid-three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.coach-pref-action-card {
  border-color: rgba(100, 116, 139, 0.18);
}

.coach-pref-action-card .coach-pref-pill {
  color: #475569;
  border-color: rgba(100, 116, 139, 0.24);
  background: rgba(100, 116, 139, 0.08);
}

.coach-pref-field-check {
  position: relative;
  min-height: 142px;
}

.coach-pref-field-title {
  display: block;
  margin-top: 7px;
  color: var(--navy, #071331);
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.15;
}

.coach-pref-field-check input[type="checkbox"] {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--teal, #007a80);
}

.coach-pref-card[id] {
  scroll-margin-top: 22px;
}

@media (max-width: 1100px) {
  .coach-pref-overview-grid-three,
  .coach-pref-grid-three {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .coach-pref-overview-grid-three,
  .coach-pref-grid-three {
    grid-template-columns: 1fr;
  }

  .coach-pref-field-check {
    min-height: 0;
    padding-right: 48px;
  }
}
/* --- End ErgScreen Coach Preferences v2 --- */


/* --- ErgScreen Coach Preferences v3: mirrored standards layout --- */
.coach-pref-grid-one {
  grid-template-columns: minmax(220px, 0.32fr);
}

.coach-pref-standard-grid .coach-pref-field {
  min-height: 148px;
}

.coach-pref-secondary-grid {
  margin-top: 14px;
}

.coach-pref-secondary-grid .coach-pref-field {
  max-width: 340px;
}

@media (max-width: 1100px) {
  .coach-pref-grid-four.coach-pref-standard-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .coach-pref-grid-one {
    grid-template-columns: minmax(0, 1fr);
  }

  .coach-pref-secondary-grid .coach-pref-field {
    max-width: none;
  }
}

@media (max-width: 760px) {
  .coach-pref-grid-four.coach-pref-standard-grid {
    grid-template-columns: 1fr;
  }
}
/* --- End ErgScreen Coach Preferences v3 --- */


/* --- ErgScreen Rate Hold settings/layout v1 --- */
.coach-pref-grid-five {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}

@media (max-width: 1100px) {
  .coach-pref-grid-five {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .coach-pref-grid-five {
    grid-template-columns: 1fr;
  }
}
/* --- End ErgScreen Rate Hold settings/layout v1 --- */

/* --- Technique Watch Rate Hold polish v2 --- */
.stroke-evidence-vm-table .stroke-col-rate-hold {
  width: 12%;
}

.stroke-rate-hold-value,
.stroke-rate-hold-detail {
  display: block;
  white-space: nowrap !important;
  line-height: 1.22;
}

.stroke-rate-hold-value {
  font-weight: 500 !important;
}

.stroke-rate-hold-detail {
  margin-top: 3px;
  font-weight: 500 !important;
  color: var(--muted2, #475569);
}

.stroke-evidence-vm-table td.rate-hold-outside .stroke-rate-hold-value {
  font-weight: 600 !important;
  color: var(--navy, #071331) !important;
}

.stroke-evidence-vm-table td.rate-hold-outside .stroke-rate-hold-detail {
  font-weight: 950 !important;
  color: var(--navy, #071331) !important;
}

.job-technique-summary .job-technique-metric-rate {
  border-color: rgba(100, 116, 139, 0.32) !important;
  background: #ffffff !important;
  box-shadow: inset 4px 0 0 rgba(100, 116, 139, 0.72), 0 10px 24px rgba(15, 23, 42, 0.055) !important;
}

.technique-watch-flag-line-rate {
  color: #475569 !important;
}
/* --- End Technique Watch Rate Hold polish v2 --- */
/* --- ErgScreen event color system v2: evidence badges + brief cards --- */
/*
  Mature cross-surface event colors:
  - Recovery Sequencing: warm amber
  - Added Movement: teal
  - Reduced Drive: orange
  - Rate Hold: slate gray
  - Rhythm: blue-gray
*/
:root {
  --es-event-recovery: #b7791f;
  --es-event-recovery-soft: rgba(183, 121, 31, 0.12);
  --es-event-recovery-border: rgba(183, 121, 31, 0.24);

  --es-event-added: #0f8b8d;
  --es-event-added-soft: rgba(15, 139, 141, 0.11);
  --es-event-added-border: rgba(15, 139, 141, 0.24);

  --es-event-reduced: #f97316;
  --es-event-reduced-soft: rgba(249, 115, 22, 0.12);
  --es-event-reduced-border: rgba(249, 115, 22, 0.25);

  --es-event-rate: #64748b;
  --es-event-rate-soft: rgba(100, 116, 139, 0.13);
  --es-event-rate-border: rgba(100, 116, 139, 0.24);

  --es-event-rhythm: #475569;
  --es-event-rhythm-soft: rgba(71, 85, 105, 0.12);
  --es-event-rhythm-border: rgba(71, 85, 105, 0.24);
}

/* Evidence Details pills. These are the only colored elements inside the table. */
.stroke-evidence-pill-added {
  background: var(--es-event-added-soft) !important;
  color: var(--es-event-added) !important;
  border: 1px solid var(--es-event-added-border) !important;
}

.stroke-evidence-pill-reduced {
  background: var(--es-event-reduced-soft) !important;
  color: var(--es-event-reduced) !important;
  border: 1px solid var(--es-event-reduced-border) !important;
}

.stroke-evidence-pill-recovery {
  background: var(--es-event-recovery-soft) !important;
  color: var(--es-event-recovery) !important;
  border: 1px solid var(--es-event-recovery-border) !important;
}

.stroke-evidence-pill-rate {
  background: var(--es-event-rate-soft) !important;
  color: var(--es-event-rate) !important;
  border: 1px solid var(--es-event-rate-border) !important;
}

.stroke-evidence-pill-rhythm {
  background: var(--es-event-rhythm-soft) !important;
  color: var(--es-event-rhythm) !important;
  border: 1px solid var(--es-event-rhythm-border) !important;
}

/* Brief signal cards use the same event colors as the Evidence Details pills. */
.coach-brief-signal-grid-evidence .coach-brief-signal-recovery::before {
  background: var(--es-event-recovery) !important;
}

.coach-brief-signal-grid-evidence .coach-brief-signal-added::before {
  background: var(--es-event-added) !important;
}

.coach-brief-signal-grid-evidence .coach-brief-signal-reduced::before {
  background: var(--es-event-reduced) !important;
}

.coach-brief-signal-grid-evidence .coach-brief-signal-rate::before {
  background: var(--es-event-rate) !important;
}

.coach-brief-signal-grid-evidence .coach-brief-signal-rhythm::before {
  background: var(--es-event-rhythm) !important;
}

/* Keep Stroke Evidence table cells unfilled; flag indication is bold text + optional pill only. */
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody tr,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody tr:hover,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody tr:nth-child(odd),
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody tr:nth-child(even),
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody tr.stroke-evidence-row-flagged,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody tr.stroke-evidence-row-clean,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody tr.stroke-evidence-row-omitted,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody tr.stroke-evidence-row-flagged td,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody tr.stroke-evidence-row-clean td,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody tr.stroke-evidence-row-omitted td,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.timing-concern,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.rate-hold-outside,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-movement-hit,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-added-hit,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-reduced-hit,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-recovery-hit,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-rhythm-hit,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-bold-hit {
  background: #ffffff !important;
  background-color: #ffffff !important;
  background-image: none !important;
  box-shadow: none !important;
  filter: none !important;
}

.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td::before,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td::after,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody tr::before,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody tr::after {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  opacity: 0 !important;
}

/* Restore bold emphasis after the no-fill reset. */
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-bold-hit,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-bold-hit *,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-added-hit,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-added-hit *,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-reduced-hit,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-reduced-hit *,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.rate-hold-outside .stroke-rate-hold-value,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.rate-hold-outside .stroke-rate-hold-detail,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-rhythm-hit .stroke-rhythm-ratio,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-rhythm-hit .stroke-rhythm-delta {
  font-weight: 900 !important;
}
/* --- End ErgScreen event color system v2 --- */
/* --- ErgScreen Stroke Evidence Recovery Sequencing tan cell fill v1 --- */
/* Recovery Sequencing is the only event that keeps a table-cell fill. */
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-recovery-sequencing-hit {
  background: var(--es-event-recovery-soft, #fbf1df) !important;
  background-color: var(--es-event-recovery-soft, #fbf1df) !important;
  background-image: none !important;
  box-shadow: inset 3px 0 0 var(--es-event-recovery-border, #ead8b8) !important;
  filter: none !important;
  font-weight: 900 !important;
}

.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-recovery-sequencing-hit *,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-recovery-sequencing-hit .stroke-timeline-values,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-recovery-sequencing-hit .stroke-timeline-values span,
.stroke-evidence-vm-card .stroke-evidence-vm-table tbody td.stroke-evidence-recovery-sequencing-hit .stroke-timeline-values strong {
  font-weight: 900 !important;
}
/* --- End ErgScreen Stroke Evidence Recovery Sequencing tan cell fill v1 --- */

/* --- ErgScreen Coach Brief detail line breaks v1 --- */
/*
  Preserve intentional line breaks in Coach/Recruit Brief supporting-card values.
  This lets Added Movement Breakdown render as:
    drive 87.2%
    recovery 12.8%
  without changing the VM or lower-card content.
*/
.coach-brief-signal-grid-evidence .coach-brief-signal-card dd {
  white-space: pre-line;
}
/* --- End ErgScreen Coach Brief detail line breaks v1 --- */

/* --- ErgScreen Movement Analysis premium visual alignment v7 --- */
/*
  Athlete-facing Movement Analysis should share the Coach / Recruit Brief
  premium system without exposing coach-facing blind-spot logic.

  Visual intent:
  - calmer editorial surface
  - no heavy left rails
  - softer semantic accents
  - support/prep tone rather than coach evaluation/status tone
*/

.movement-analysis-vm-card {
  padding: 28px !important;
  border-color: rgba(203, 213, 225, 0.86) !important;
  background:
    radial-gradient(circle at 92% 8%, rgba(15, 139, 141, 0.055), transparent 30%),
    radial-gradient(circle at 8% 92%, rgba(29, 78, 137, 0.035), transparent 26%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.92)) !important;
  box-shadow: 0 18px 46px rgba(7, 19, 49, 0.070) !important;
}

.movement-analysis-vm-card .report-card-toolbar {
  margin: -2px 0 18px !important;
  padding: 0 0 14px !important;
  border-bottom: 1px solid rgba(203, 213, 225, 0.72);
}

.movement-analysis-vm-card .report-card-toolbar-label {
  color: rgba(100, 116, 139, 0.86) !important;
  font-size: 0.68rem !important;
  letter-spacing: 0.105em !important;
}

.movement-analysis-vm-card .report-card-toolbar h2 {
  margin-top: 2px !important;
  font-size: clamp(1.08rem, 1.75vw, 1.34rem) !important;
  letter-spacing: -0.03em !important;
}

.movement-analysis-vm-card .report-card-pdf-button {
  min-height: 38px !important;
  height: 38px !important;
  padding-inline: 15px !important;
  border-color: rgba(203, 213, 225, 0.92) !important;
  background: rgba(255, 255, 255, 0.92) !important;
  color: var(--teal, #007a80) !important;
  box-shadow: 0 7px 18px rgba(15, 23, 42, 0.055) !important;
}

/* Session summary: premium insight panel, not an alert/help box. */
.movement-analysis-session-read {
  margin-bottom: 18px !important;
  padding: 20px 22px !important;
  border: 1px solid rgba(203, 213, 225, 0.82) !important;
  border-left-width: 1px !important;
  border-radius: 20px !important;
  background:
    radial-gradient(circle at 96% 10%, rgba(15, 139, 141, 0.075), transparent 32%),
    linear-gradient(135deg, rgba(240, 253, 250, 0.64), rgba(255, 255, 255, 0.86) 58%, rgba(248, 250, 252, 0.82)) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82), 0 10px 26px rgba(15, 23, 42, 0.045) !important;
}

.movement-analysis-session-read .movement-analysis-section-label {
  color: rgba(100, 116, 139, 0.94) !important;
}

.movement-analysis-session-read h3 {
  color: var(--teal, #007a80) !important;
  font-size: clamp(1.05rem, 1.75vw, 1.20rem) !important;
  line-height: 1.18 !important;
}

.movement-analysis-session-read ul {
  margin-top: 12px !important;
  color: rgba(7, 19, 49, 0.88) !important;
}

.movement-analysis-session-read li {
  margin: 3px 0 !important;
}

.movement-analysis-why {
  margin-top: 12px !important;
  padding-top: 11px !important;
  border-top: 1px solid rgba(203, 213, 225, 0.78) !important;
  color: var(--navy, #071331) !important;
  font-weight: 850 !important;
}

/* Main movement cards: semantic top accent instead of heavy left rails. */
.movement-signal-card,
.movement-priority-card,
.movement-rhythm-card {
  border: 1px solid rgba(203, 213, 225, 0.82) !important;
  border-left-width: 1px !important;
  border-radius: 19px !important;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0.82)) !important;
  box-shadow: 0 9px 22px rgba(15, 23, 42, 0.035) !important;
}

.movement-signal-card {
  padding: 18px 20px !important;
  border-top-width: 3px !important;
}

.movement-signal-added {
  border-top-color: rgba(15, 139, 141, 0.72) !important;
}

.movement-signal-reduced {
  border-top-color: rgba(249, 115, 22, 0.70) !important;
}

.movement-signal-added .movement-analysis-section-label,
.movement-signal-reduced .movement-analysis-section-label {
  color: var(--muted, #64748b) !important;
}

.movement-signal-added h3 {
  color: var(--teal, #007a80) !important;
}

.movement-signal-reduced h3 {
  color: var(--es-reduced, #f97316) !important;
}

.movement-signal-heading {
  min-height: 48px !important;
}

.movement-signal-card h3 {
  font-size: clamp(1.00rem, 1.55vw, 1.10rem) !important;
  line-height: 1.16 !important;
  letter-spacing: -0.025em !important;
}

.movement-chip-grid {
  gap: 10px !important;
  margin: 16px 0 15px !important;
}

.movement-chip {
  border-color: rgba(203, 213, 225, 0.78) !important;
  border-radius: 15px !important;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.78)) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.86) !important;
}

.movement-chip strong {
  color: var(--navy, #071331) !important;
  font-size: 1.02rem !important;
}

.movement-chip span {
  color: rgba(100, 116, 139, 0.92) !important;
  font-size: 0.68rem !important;
  letter-spacing: 0.055em !important;
}

.movement-detail-list {
  gap: 8px !important;
}

.movement-detail-list div {
  grid-template-columns: 96px minmax(0, 1fr) !important;
}

.movement-detail-list dt {
  color: rgba(100, 116, 139, 0.92) !important;
  font-size: 0.73rem !important;
}

.movement-detail-list dd {
  color: rgba(7, 19, 49, 0.94) !important;
  font-size: 0.89rem !important;
  font-weight: 760 !important;
}

/* Priority / context: neutral athlete-prep cards, not coach-facing status cards. */
.movement-analysis-priority-grid {
  gap: 16px !important;
  margin-top: 0 !important;
  margin-bottom: 18px !important;
}

.movement-priority-card {
  min-height: 152px !important;
  padding: 18px 20px !important;
  border-left-width: 1px !important;
  border-top: 3px solid rgba(148, 163, 184, 0.72) !important;
}

.movement-priority-first,
.movement-priority-context {
  border-left-color: rgba(203, 213, 225, 0.82) !important;
}

.movement-priority-card .movement-analysis-section-label {
  color: rgba(100, 116, 139, 0.94) !important;
}

.movement-kicker {
  margin-bottom: 9px !important;
  padding: 4px 9px !important;
  border: 1px solid rgba(203, 213, 225, 0.76) !important;
  border-radius: 999px !important;
  background: rgba(248, 250, 252, 0.92) !important;
  color: rgba(71, 85, 105, 0.94) !important;
  font-size: 0.68rem !important;
  letter-spacing: 0.055em !important;
}

.movement-priority-card h3 {
  color: var(--navy, #071331) !important;
  font-size: clamp(1.02rem, 1.65vw, 1.16rem) !important;
  line-height: 1.14 !important;
}

.movement-priority-card p {
  margin-top: 10px !important;
  color: rgba(71, 85, 105, 0.92) !important;
  font-size: 0.96rem !important;
  line-height: 1.36 !important;
}

.movement-priority-card ul {
  margin-top: 9px !important;
  color: rgba(7, 19, 49, 0.94) !important;
  font-weight: 760 !important;
}

/* Rhythm / rate: context cards should read quieter than status cards. */
.movement-rhythm-grid {
  gap: 16px !important;
  margin-bottom: 18px !important;
}

.movement-rhythm-card {
  min-height: 84px !important;
  padding: 16px 18px !important;
  border-top-width: 3px !important;
  border-top-color: rgba(29, 78, 137, 0.72) !important;
  background:
    linear-gradient(180deg, rgba(29, 78, 137, 0.045), rgba(255, 255, 255, 0.86)) !important;
}

.movement-rhythm-card strong {
  font-size: 0.98rem !important;
  line-height: 1.18 !important;
}

.movement-rhythm-card span {
  margin-top: 5px !important;
  color: rgba(100, 116, 139, 0.92) !important;
}

/* Athlete-facing anchor band: keep premium, slightly less CTA/icon-heavy. */
.movement-repeat-band {
  margin-top: 2px !important;
  padding: 17px 20px !important;
  border-radius: 18px !important;
  gap: 14px !important;
  background:
    radial-gradient(circle at 92% 12%, rgba(15, 139, 141, 0.26), transparent 32%),
    linear-gradient(135deg, #071331 0%, #071331 64%, #07384a 100%) !important;
  box-shadow: 0 14px 32px rgba(7, 19, 49, 0.12) !important;
}

.movement-repeat-icon {
  width: 40px !important;
  height: 40px !important;
  font-size: 1.18rem !important;
  background: var(--teal, #007a80) !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.10) !important;
}

.movement-repeat-band h3 {
  font-size: clamp(1.04rem, 1.75vw, 1.18rem) !important;
  line-height: 1.12 !important;
}

.movement-repeat-band p {
  font-size: 0.94rem !important;
  line-height: 1.28 !important;
}

@media (max-width: 900px) {
  .movement-analysis-vm-card {
    padding: 22px !important;
  }

  .movement-detail-list div {
    grid-template-columns: 1fr !important;
  }

  .movement-priority-card {
    min-height: 0 !important;
  }
}

@media (max-width: 640px) {
  .movement-analysis-vm-card {
    padding: 18px !important;
  }

  .movement-analysis-session-read,
  .movement-signal-card,
  .movement-priority-card,
  .movement-rhythm-card,
  .movement-repeat-band {
    border-radius: 16px !important;
  }
}
/* --- End ErgScreen Movement Analysis premium visual alignment v7 --- */

/* --- ErgScreen Movement Analysis final maturity polish v8 --- */
/*
  Keep Movement Analysis athlete-facing and visually tied to Coach/Recruit Brief,
  while making semantic accents quieter and less alert-like.
*/
.movement-analysis-session-read {
  border-left-width: 3px !important;
  border-left-color: rgba(15, 139, 141, 0.58) !important;
  border-color: rgba(203, 213, 225, 0.82) !important;
  background:
    radial-gradient(circle at 94% 10%, rgba(15, 139, 141, 0.060), transparent 30%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(240, 253, 250, 0.48)) !important;
}

.movement-analysis-session-read h3 {
  color: #0f766e !important;
}

.movement-signal-card,
.movement-priority-card {
  border-left-width: 3px !important;
  border-left-color: rgba(148, 163, 184, 0.52) !important;
  border-color: rgba(203, 213, 225, 0.80) !important;
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.045) !important;
}

.movement-signal-added {
  border-left-color: rgba(15, 139, 141, 0.52) !important;
  background:
    linear-gradient(180deg, rgba(15, 139, 141, 0.035), rgba(255, 255, 255, 0.92) 38%),
    rgba(255, 255, 255, 0.92) !important;
}

.movement-signal-reduced {
  border-left-color: rgba(249, 115, 22, 0.50) !important;
  background:
    linear-gradient(180deg, rgba(249, 115, 22, 0.040), rgba(255, 255, 255, 0.92) 38%),
    rgba(255, 255, 255, 0.92) !important;
}

.movement-priority-first,
.movement-priority-context {
  border-left-color: rgba(148, 163, 184, 0.54) !important;
  background:
    linear-gradient(180deg, rgba(100, 116, 139, 0.026), rgba(255, 255, 255, 0.92) 40%),
    rgba(255, 255, 255, 0.92) !important;
}

.movement-rhythm-card {
  border-top-width: 2px !important;
  border-top-color: rgba(29, 78, 137, 0.52) !important;
  border-color: rgba(203, 213, 225, 0.80) !important;
  background:
    linear-gradient(180deg, rgba(29, 78, 137, 0.035), rgba(255, 255, 255, 0.90) 44%),
    rgba(255, 255, 255, 0.90) !important;
  box-shadow: 0 9px 22px rgba(15, 23, 42, 0.040) !important;
}

.movement-repeat-band {
  box-shadow: 0 14px 34px rgba(7, 19, 49, 0.12) !important;
}
/* --- End ErgScreen Movement Analysis final maturity polish v8 --- */
/* --- ErgScreen Movement Analysis flagship page wrapper v2 ---
   Pair with ergscreen_analysis_vm_flagship_athlete_v2.html.
   This only polishes the outer Movement Analysis page shell; the report body
   carries its flagship styling inline to avoid older Movement Analysis CSS layers.
*/

.movement-analysis-flagship-page-hero {
  position: relative;
  padding: 2px 0 4px;
}

.movement-analysis-flagship-page-hero .eyebrow {
  color: var(--teal, #007a80);
}

.movement-analysis-flagship-page-hero h1 {
  max-width: 760px;
  letter-spacing: -0.055em;
}

.movement-analysis-page-tagline {
  max-width: 620px;
  margin: 10px 0 0;
  color: var(--muted2, #475569);
  font-size: 1.05rem;
  line-height: 1.45;
  font-weight: 720;
}

.movement-analysis-flagship-page-hero .movement-analysis-meta-bubbles {
  margin-top: 20px;
}

.movement-analysis-flagship-page-hero .movement-analysis-meta-bubble {
  border-color: rgba(203, 213, 225, 0.82);
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.060);
}

.movement-analysis-flagship-page-hero + .report-surface-tabs {
  margin-top: -2px;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.72);
}


/* --- ErgScreen Movement Analysis v31 readability guard --- */
/* Use with the v31 Movement Analysis partial. The partial owns most report-body
   styling; this block keeps the outer app shell and any future extraction calm. */
.ma-visible-section-head h3 {
  font-weight: 860 !important;
  font-size: clamp(1.14rem, 1.65vw, 1.42rem) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.035em !important;
}

.ma-lower-grid-interpretive .ma-priority {
  min-height: 286px !important;
  padding: 18px !important;
  border-left-width: 3px !important;
}

.ma-lower-grid-interpretive .ma-priority > span {
  color: rgba(100, 116, 139, 0.76) !important;
  font-size: 0.64rem !important;
  letter-spacing: 0.125em !important;
}

.ma-lower-grid-interpretive .ma-priority h3 {
  color: #071331 !important;
  font-size: clamp(1.02rem, 1.36vw, 1.22rem) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.030em !important;
  font-weight: 840 !important;
}

.ma-lower-grid-interpretive .ma-priority p {
  font-size: 0.90rem !important;
  line-height: 1.40 !important;
  font-weight: 690 !important;
}

.ma-lower-grid-interpretive .ma-coach-visible-tiles {
  gap: 8px !important;
}

.ma-lower-grid-interpretive .ma-coach-visible-tile {
  border-color: rgba(203, 213, 225, 0.66) !important;
  background: rgba(248,250,252,0.62) !important;
  box-shadow: none !important;
  padding: 10px 12px !important;
}

.ma-lower-grid-interpretive .ma-coach-visible-name {
  font-size: 0.91rem !important;
  line-height: 1.18 !important;
  font-weight: 760 !important;
  letter-spacing: -0.006em !important;
}
/* --- End ErgScreen Movement Analysis v31 readability guard --- */


/* --- ErgScreen Movement Analysis v32 type consistency guard --- */
.ma-report-card {
  --ma-eyebrow-size: 0.68rem;
  --ma-eyebrow-tracking: 0.13em;
  --ma-eyebrow-weight: 950;
  --ma-section-title-size: clamp(1.22rem, 1.92vw, 1.62rem);
  --ma-card-title-size: clamp(1.03rem, 1.36vw, 1.20rem);
  --ma-card-title-weight: 900;
}
.ma-report-card .ma-section-head span,
.ma-report-card .ma-visible-section-head span,
.ma-report-card .ma-signal-head span,
.ma-report-card .ma-priority > span,
.ma-report-card .ma-lower-grid-interpretive .ma-priority > span,
.ma-report-card .ma-metric span {
  color: var(--ma-muted, #64748b) !important;
  font-size: var(--ma-eyebrow-size) !important;
  line-height: 1 !important;
  font-weight: var(--ma-eyebrow-weight) !important;
  letter-spacing: var(--ma-eyebrow-tracking) !important;
  text-transform: uppercase !important;
}
.ma-report-card .ma-section-head h3,
.ma-report-card .ma-visible-section-head h3 {
  color: var(--ma-ink, #071331) !important;
  font-size: var(--ma-section-title-size) !important;
  line-height: 1.06 !important;
  letter-spacing: -0.044em !important;
  font-weight: 900 !important;
}
.ma-report-card .ma-signal h3,
.ma-report-card .ma-priority h3,
.ma-report-card .ma-clip-expression-card h3,
.ma-report-card .ma-visible-timing-card h3 {
  font-size: var(--ma-card-title-size) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.030em !important;
  font-weight: var(--ma-card-title-weight) !important;
}
.ma-report-card .ma-priority h3,
.ma-report-card .ma-clip-expression-card h3,
.ma-report-card .ma-visible-timing-card h3 {
  color: var(--ma-ink, #071331) !important;
}
.ma-report-card .ma-coach-visible-name {
  font-size: 0.89rem !important;
  line-height: 1.20 !important;
  font-weight: 720 !important;
}
/* --- End ErgScreen Movement Analysis v32 type consistency guard --- */


/* ErgScreen Movement Analysis -- v33 luxury type refinement
     Purpose: keep the flagship hierarchy, but reduce visual force in the
     middle sections so the report feels editorial/luxury rather than loud. */
  .ma-report-card {
    --ma-eyebrow-weight: 880;
    --ma-section-title-size: clamp(1.18rem, 1.78vw, 1.50rem);
    --ma-card-title-size: clamp(0.98rem, 1.24vw, 1.12rem);
    --ma-card-title-weight: 820;
  }

  /* Let section headings lead without feeling like another hero. */
  .ma-section-head h3,
  .ma-visible-section-head h3 {
    font-size: var(--ma-section-title-size) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.038em !important;
    font-weight: 860 !important;
  }

  /* The two primary signal card titles remain semantic, but less heavy. */
  .ma-signal h3,
  .ma-priority h3,
  .ma-clip-expression-card h3,
  .ma-visible-timing-card h3 {
    font-size: var(--ma-card-title-size) !important;
    line-height: 1.14 !important;
    letter-spacing: -0.024em !important;
    font-weight: var(--ma-card-title-weight) !important;
  }

  .ma-signal-added h3 { color: #0f766e !important; }
  .ma-signal-drive h3 { color: #b45309 !important; }

  /* Softer labels and text weights throughout the report body. */
  .ma-export-row span,
  .ma-kicker,
  .ma-metric span,
  .ma-section-head span,
  .ma-signal-head span,
  .ma-priority > span,
  .ma-lower-grid-interpretive .ma-priority > span,
  .ma-rhythm-card > span,
  .ma-repeat span:not(.ma-repeat-focus) {
    font-weight: var(--ma-eyebrow-weight) !important;
    letter-spacing: 0.115em !important;
  }

  .ma-signal-details dt,
  .ma-signal-metrics span {
    font-weight: 850 !important;
    letter-spacing: 0.075em !important;
  }

  .ma-signal-details dd {
    font-size: 0.885rem !important;
    line-height: 1.32 !important;
    font-weight: 650 !important;
  }

  .ma-signal-metrics strong {
    font-weight: 880 !important;
  }

  .ma-metric strong {
    font-weight: 880 !important;
    letter-spacing: -0.030em !important;
  }

  .ma-metric p,
  .ma-priority p {
    font-weight: 650 !important;
  }

  /* Lower video cards become a quieter editorial read. */
  .ma-lower-grid-interpretive > .ma-priority,
  .ma-lower-synthesis-stack .ma-priority {
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.030) !important;
  }

  .ma-coach-visible-tile {
    padding: 10px 12px !important;
    border-color: rgba(203, 213, 225, 0.66) !important;
    background: rgba(248, 250, 252, 0.48) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.72) !important;
  }

  .ma-coach-visible-name {
    font-size: 0.875rem !important;
    line-height: 1.22 !important;
    font-weight: 650 !important;
    color: rgba(7, 19, 49, 0.90) !important;
  }

  .ma-clip-expression-card h3,
  .ma-visible-timing-card h3 {
    color: rgba(7, 19, 49, 0.92) !important;
  }

  /* Preserve premium contrast in the CTA without adding extra loudness. */
  .ma-repeat h3 {
    font-weight: 860 !important;
    letter-spacing: -0.032em !important;
  }

  .ma-repeat p {
    font-weight: 680 !important;
  }


/* --- ErgScreen premium PDF export status overlay v1 --- */
.pdf-export-status-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 24px;
  background:
    radial-gradient(circle at 78% 18%, rgba(15, 139, 141, 0.16), transparent 28%),
    rgba(7, 19, 49, 0.34);
  backdrop-filter: blur(10px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease;
}

.pdf-export-status-overlay.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.pdf-export-status-card {
  width: min(430px, calc(100vw - 38px));
  position: relative;
  overflow: hidden;
  padding: 28px;
  border: 1px solid rgba(203, 213, 225, 0.82);
  border-radius: 28px;
  background:
    radial-gradient(circle at 92% 10%, rgba(15, 139, 141, 0.10), transparent 30%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.94));
  box-shadow: 0 30px 90px rgba(7, 19, 49, 0.26);
  color: var(--navy, #071331);
}

.pdf-export-status-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,0.58), transparent 46%);
}

.pdf-export-status-card > * {
  position: relative;
  z-index: 1;
}

.pdf-export-status-orb {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  margin-bottom: 16px;
  border-radius: 999px;
  background: rgba(15, 139, 141, 0.10);
  border: 1px solid rgba(15, 139, 141, 0.22);
}

.pdf-export-status-orb span {
  width: 24px;
  height: 24px;
  display: block;
  border-radius: 999px;
  border: 3px solid rgba(15, 139, 141, 0.18);
  border-top-color: var(--teal, #007a80);
  animation: pdfExportSpin 920ms linear infinite;
}

.pdf-export-status-overlay.is-complete .pdf-export-status-orb span,
.pdf-export-status-overlay.is-error .pdf-export-status-orb span {
  animation: none;
  display: block;
  box-sizing: border-box;
}

/* Completion state: pure CSS checkmark, no text glyph or font fallback. */
.pdf-export-status-overlay.is-complete .pdf-export-status-orb span {
  width: 13px;
  height: 22px;
  border: 0;
  border-right: 3px solid #0f766e;
  border-bottom: 3px solid #0f766e;
  border-radius: 1px;
  background: transparent;
  transform: rotate(45deg) translate(-2px, -2px);
  transform-origin: center;
}

.pdf-export-status-overlay.is-complete .pdf-export-status-orb span::before,
.pdf-export-status-overlay.is-complete .pdf-export-status-orb span::after {
  content: none !important;
  display: none !important;
}

.pdf-export-status-overlay.is-error .pdf-export-status-orb {
  background: rgba(239, 68, 68, 0.08);
  border-color: rgba(239, 68, 68, 0.22);
}

/* Error state: pure CSS geometry, no text glyph. */
.pdf-export-status-overlay.is-error .pdf-export-status-orb span {
  position: relative;
  width: 4px;
  height: 18px;
  border: 0;
  border-radius: 999px;
  background: #b91c1c;
  transform: none;
}

.pdf-export-status-overlay.is-error .pdf-export-status-orb span::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -7px;
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: #b91c1c;
  transform: translateX(-50%);
}

.pdf-export-status-overlay.is-error .pdf-export-status-orb span::after {
  content: none !important;
  display: none !important;
}

.pdf-export-status-kicker {
  margin: 0 0 7px;
  color: var(--teal, #007a80);
  font-size: 0.72rem;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.pdf-export-status-card h2 {
  margin: 0;
  color: var(--navy, #071331);
  font-size: clamp(1.42rem, 3.4vw, 1.95rem);
  line-height: 1.03;
  letter-spacing: -0.045em;
  font-weight: 900;
}

.pdf-export-status-copy {
  margin: 10px 0 0;
  color: var(--muted2, #475569);
  font-size: 0.98rem;
  line-height: 1.48;
  font-weight: 650;
}

.pdf-export-status-steps {
  display: grid;
  gap: 9px;
  margin-top: 20px;
}

.pdf-export-status-step {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 34px;
  padding: 8px 10px 8px 34px;
  border: 1px solid rgba(203, 213, 225, 0.76);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.70);
  color: #64748b;
  font-size: 0.88rem;
  line-height: 1.1;
  font-weight: 760;
}

.pdf-export-status-step::before {
  content: "";
  position: absolute;
  left: 12px;
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: #cbd5e1;
}

.pdf-export-status-step.is-active {
  color: #071331;
  background: rgba(15, 139, 141, 0.075);
  border-color: rgba(15, 139, 141, 0.25);
}

.pdf-export-status-step.is-active::before {
  background: var(--teal, #007a80);
  box-shadow: 0 0 0 5px rgba(15, 139, 141, 0.12);
}

.pdf-export-status-step.is-complete::before {
  content: "";
  width: 16px;
  height: 16px;
  left: 9px;
  display: grid;
  place-items: center;
  color: #ffffff;
  background: #0f766e;
  font-size: 0.62rem;
  font-weight: 950;
}

.pdf-export-status-note {
  margin: 16px 0 0;
  color: #64748b;
  font-size: 0.84rem;
  line-height: 1.35;
  font-weight: 650;
}

.pdf-export-status-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  margin-top: 16px;
  padding: 0 16px;
  border: 1px solid rgba(203, 213, 225, 0.90);
  border-radius: 999px;
  background: #ffffff;
  color: var(--teal, #007a80);
  font-family: inherit;
  font-size: 0.88rem;
  font-weight: 850;
  cursor: pointer;
}

.pdf-export-status-close:hover {
  border-color: rgba(15, 139, 141, 0.34);
  background: rgba(15, 139, 141, 0.055);
}

.report-card-pdf-button.is-preparing-pdf,
.report-action-button.is-preparing-pdf {
  opacity: 0.74;
  pointer-events: none;
  transform: none !important;
}

@keyframes pdfExportSpin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .pdf-export-status-overlay,
  .pdf-export-status-orb span,
  .report-card-pdf-button,
  .report-action-button {
    animation: none !important;
    transition: none !important;
  }
}

@media (max-width: 640px) {
  .pdf-export-status-card {
    padding: 22px;
    border-radius: 24px;
  }

  .pdf-export-status-step {
    border-radius: 16px;
  }
}
/* --- End ErgScreen premium PDF export status overlay v1 --- */


/* --- ErgScreen Group Read v2 polish --- */
.group-read-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: end;
  margin-bottom: 22px;
}

.group-read-hero h1 {
  font-size: clamp(2.7rem, 5vw, 4.8rem);
  line-height: 0.94;
  letter-spacing: -0.065em;
}

.group-read-hero-copy .subtle {
  max-width: 620px;
}

.group-read-lens-card {
  display: grid;
  gap: 5px;
  max-width: 760px;
  margin-top: 18px;
  padding: 15px 17px;
  border: 1px solid rgba(203, 213, 225, 0.82);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.74);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.055);
}

.group-read-lens-card span,
.group-read-scope-card span,
.group-read-signal-label,
.group-read-signal-note {
  color: var(--muted, #64748b);
  font-size: 0.68rem;
  font-weight: 950;
  letter-spacing: 0.10em;
  text-transform: uppercase;
}

.group-read-lens-card strong {
  color: var(--navy, #071331);
  font-size: 1.02rem;
  line-height: 1.22;
  font-weight: 950;
  letter-spacing: -0.02em;
}

.group-read-lens-card em {
  color: var(--muted, #64748b);
  font-style: normal;
  font-size: 0.90rem;
  font-weight: 800;
}

.group-read-scope-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(132px, 1fr));
  gap: 10px;
  min-width: min(100%, 440px);
}

.group-read-scope-card {
  border: 1px solid rgba(203, 213, 225, 0.78);
  border-radius: 18px;
  padding: 13px 14px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
}

.group-read-scope-card strong {
  display: block;
  margin-top: 5px;
  color: var(--navy, #071331);
  font-size: 1.22rem;
  line-height: 1;
  font-weight: 950;
  letter-spacing: -0.04em;
}

.group-read-report-card {
  border-radius: 26px;
  border-color: rgba(203, 213, 225, 0.82);
  background:
    radial-gradient(circle at 92% 0%, rgba(15, 139, 141, 0.075), transparent 26%),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,250,252,.90));
  box-shadow: 0 26px 70px rgba(7, 19, 49, 0.085);
}

.group-read-read-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(15, 139, 141, 0.22);
  border-left: 5px solid var(--teal, #007a80);
  border-radius: 22px;
  padding: 22px 24px;
  background:
    radial-gradient(circle at 92% 0%, rgba(15, 139, 141, 0.10), transparent 28%),
    rgba(15, 139, 141, 0.058);
  margin-bottom: 22px;
}

.group-read-read-card h2 {
  max-width: 920px;
  font-size: clamp(1.34rem, 2.4vw, 1.9rem);
  line-height: 1.08;
  letter-spacing: -0.04em;
}

.group-read-read-card p:not(.eyebrow) {
  max-width: 820px;
  margin: 10px 0 0;
  color: var(--muted2, #475569);
  font-size: 1rem;
  line-height: 1.5;
  font-weight: 750;
}

.group-read-signal-panel,
.group-read-contributor-panel,
.group-read-table-panel {
  margin-top: 22px;
}

.group-read-panel-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 18px;
  margin-bottom: 14px;
}

.group-read-panel-heading h2 {
  font-size: clamp(1.35rem, 2.2vw, 1.85rem);
  line-height: 1.05;
}

.group-read-primary-pill {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 12px;
  border: 1px solid rgba(15, 139, 141, 0.28);
  border-radius: 999px;
  background: rgba(15, 139, 141, 0.08);
  color: var(--teal, #007a80);
  font-size: 0.78rem;
  font-weight: 950;
  white-space: nowrap;
}

.group-read-primary-pill-clean {
  color: var(--muted, #64748b);
  background: rgba(248, 250, 252, 0.88);
  border-color: rgba(203, 213, 225, 0.82);
}

.group-read-signal-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.group-read-signal-card {
  border: 1px solid rgba(203, 213, 225, 0.84);
  border-radius: 20px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.86);
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.04);
}

.group-read-signal-card-primary {
  border-color: rgba(15, 139, 141, 0.34);
  background: linear-gradient(180deg, rgba(15, 139, 141, 0.095), rgba(255,255,255,0.90));
  box-shadow: 0 16px 34px rgba(15, 139, 141, 0.095);
}

.group-read-signal-card-drive-effectiveness.group-read-signal-card-primary {
  border-color: rgba(249, 115, 22, 0.34);
  background: linear-gradient(180deg, rgba(249, 115, 22, 0.10), rgba(255,255,255,0.90));
}

.group-read-signal-card strong {
  display: block;
  margin-top: 10px;
  color: var(--navy, #071331);
  font-size: 1.45rem;
  line-height: 1;
  font-weight: 950;
  letter-spacing: -0.055em;
}

.group-read-signal-note {
  display: block;
  margin-top: 8px;
}

.group-read-contributor-list {
  display: grid;
  gap: 10px;
}

.group-read-contributor-card {
  display: grid;
  grid-template-columns: minmax(210px, 1fr) minmax(220px, 1.3fr) auto;
  gap: 14px;
  align-items: center;
  padding: 14px 16px;
  border: 1px solid rgba(203, 213, 225, 0.80);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.84);
}

.group-read-contributor-card strong {
  display: block;
  color: var(--navy, #071331);
  font-size: 0.98rem;
  font-weight: 950;
}

.group-read-contributor-card span {
  display: block;
  margin-top: 4px;
  color: var(--muted, #64748b);
  font-size: 0.84rem;
  font-weight: 800;
}

.group-read-contributor-card p {
  margin: 0;
  color: var(--navy, #071331);
  font-weight: 900;
}

.group-read-contributor-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  white-space: nowrap;
}


.group-read-contributor-actions .report-action-button {
  min-height: 32px !important;
  height: 32px !important;
  padding: 0 11px !important;
  font-size: 0.80rem !important;
  box-shadow: 0 6px 14px rgba(15, 23, 42, 0.045) !important;
}

.group-read-contributor-actions .report-action-button:first-child {
  background: rgba(15, 139, 141, 0.08) !important;
  border-color: rgba(15, 139, 141, 0.28) !important;
}

.group-read-empty-contributors {
  padding: 16px;
  border: 1px solid rgba(203, 213, 225, 0.80);
  border-radius: 18px;
  background: rgba(248, 250, 252, 0.88);
}

.group-read-empty-contributors strong {
  color: var(--navy, #071331);
}

.group-read-session-table {
  min-width: 920px;
}

.group-read-session-table-polished tr.group-read-row-watch td {
  background: linear-gradient(90deg, rgba(15, 139, 141, 0.035), rgba(255,255,255,0));
}

.group-read-watch-pill {
  display: inline-flex;
  align-items: center;
  min-height: 27px;
  margin: 0 5px 5px 0;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(15, 139, 141, 0.08);
  color: var(--navy, #071331);
  font-size: 0.78rem;
  font-weight: 900;
}

.group-read-watch-pill-drive-effectiveness {
  background: rgba(249, 115, 22, 0.105);
  color: #c2410c;
}

.group-read-watch-pill-added-movement {
  background: rgba(15, 139, 141, 0.10);
  color: var(--teal, #007a80);
}

.group-read-watch-pill-recovery-sequencing {
  background: var(--es-recovery-soft, #fbf1df);
  color: var(--es-recovery, #b7791f);
}

.group-read-watch-pill-rate-hold {
  background: rgba(29, 78, 137, 0.10);
  color: var(--es-rhythm, #1d4e89);
}

.group-read-watch-clean {
  color: var(--muted, #64748b);
  background: rgba(248, 250, 252, 0.88);
  border: 1px solid rgba(203, 213, 225, 0.82);
}

.group-read-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(203, 213, 225, 0.72);
}

@media (max-width: 1050px) {
  .group-read-hero,
  .group-read-scope-strip,
  .group-read-signal-grid,
  .group-read-contributor-card {
    grid-template-columns: 1fr;
  }

  .group-read-panel-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .group-read-contributor-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 640px) {
  .group-read-actions {
    align-items: stretch;
    flex-direction: column;
  }
}
/* --- End ErgScreen Group Read v2 polish --- */


/* --- ErgScreen Training Group Read luxury polish v1 --- */
.group-read-hero {
  position: relative;
  margin-bottom: 22px;
}

.group-read-hero::before {
  content: "";
  position: absolute;
  inset: -16px -18px auto auto;
  width: 260px;
  height: 260px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(15, 139, 141, 0.13), transparent 66%);
  pointer-events: none;
  z-index: -1;
}

.group-read-hero h1 {
  max-width: 740px;
  font-size: clamp(3.05rem, 6vw, 5.8rem);
  line-height: 0.90;
  letter-spacing: -0.075em;
}

.group-read-hero .subtle {
  max-width: 680px;
  font-size: 1.08rem;
  line-height: 1.55;
}

.group-read-lens-card {
  border-color: rgba(7, 19, 49, 0.14);
  background:
    linear-gradient(135deg, rgba(7, 19, 49, 0.96), rgba(9, 26, 62, 0.90)),
    radial-gradient(circle at 88% 0%, rgba(15, 139, 141, 0.36), transparent 42%);
  color: #ffffff;
  box-shadow: 0 24px 56px rgba(7, 19, 49, 0.18);
}

.group-read-lens-card span,
.group-read-lens-card em {
  color: rgba(255, 255, 255, 0.68) !important;
}

.group-read-lens-card strong {
  color: #ffffff !important;
}

.group-read-scope-strip .group-read-scope-card {
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 16px 34px rgba(7, 19, 49, 0.075);
}

.group-read-card {
  border-color: rgba(203, 213, 225, 0.78);
  background:
    radial-gradient(circle at 88% 0%, rgba(15, 139, 141, 0.08), transparent 30%),
    linear-gradient(180deg, rgba(255,255,255,0.96), rgba(248,250,252,0.92));
}

.group-read-main-card {
  border: 1px solid rgba(7, 19, 49, 0.12);
  border-left: 0;
  padding: 28px 30px;
  background:
    linear-gradient(135deg, rgba(7, 19, 49, 0.97), rgba(7, 19, 49, 0.91)),
    radial-gradient(circle at 100% 0%, rgba(15, 139, 141, 0.36), transparent 38%);
  box-shadow: 0 26px 58px rgba(7, 19, 49, 0.20);
}

.group-read-main-card .eyebrow {
  color: rgba(103, 232, 249, 0.86);
}

.group-read-main-card h2 {
  max-width: 960px;
  color: #ffffff;
  font-size: clamp(1.75rem, 3.2vw, 3.1rem);
  line-height: 1.01;
  letter-spacing: -0.055em;
}

.group-read-main-card p:not(.eyebrow) {
  max-width: 820px;
  color: rgba(255, 255, 255, 0.76);
  font-size: 1.03rem;
  line-height: 1.55;
}

.group-read-primary-pill {
  border-color: rgba(7, 19, 49, 0.16);
  background: rgba(7, 19, 49, 0.95);
  color: #ffffff;
  box-shadow: 0 14px 32px rgba(7, 19, 49, 0.14);
}

.group-read-signal-primary {
  transform: translateY(-2px);
  box-shadow: 0 20px 46px rgba(7, 19, 49, 0.12);
}

.group-read-contributor-card {
  border-color: rgba(7, 19, 49, 0.12);
  background: rgba(255, 255, 255, 0.92);
}

.group-read-contributor-card strong {
  font-size: 1.05rem;
  letter-spacing: -0.025em;
}

.group-read-contributor-card p {
  color: var(--navy, #071331);
  font-weight: 950;
}

.group-read-clean-state {
  border: 1px solid rgba(15, 139, 141, 0.20);
  background: rgba(15, 139, 141, 0.055);
}

.group-read-table-panel {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid rgba(203, 213, 225, 0.72);
}

.group-read-session-table th {
  background: rgba(7, 19, 49, 0.035);
}

.group-read-actions {
  border-top: 1px solid rgba(203, 213, 225, 0.72);
  padding-top: 18px;
}
/* --- End ErgScreen Training Group Read luxury polish v1 --- */

/* --- ErgScreen Group Read coach-aligned report shell v5 --- */
.group-read-page-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 24px;
}

.group-read-page-hero h1 {
  font-size: clamp(2.6rem, 5vw, 4.7rem);
  line-height: 0.94;
  letter-spacing: -0.065em;
}

.group-read-page-hero .movement-analysis-page-tagline {
  max-width: 720px;
  margin-top: 12px;
  color: var(--muted, #64748b);
  font-size: 1.05rem;
  line-height: 1.55;
  font-weight: 700;
}

.group-read-meta-bubbles .movement-analysis-meta-bubble-rate {
  min-width: 150px;
}

.group-read-meta-bubbles .movement-analysis-meta-bubble-rate strong {
  color: var(--navy, #071331);
  font-size: 1.02rem;
}

.group-read-utility-actions {
  align-items: center;
  justify-content: flex-end;
}

.group-read-pdf-button {
  background: var(--navy, #071331) !important;
  border-color: var(--navy, #071331) !important;
  color: #ffffff !important;
  box-shadow: 0 10px 24px rgba(7, 19, 49, 0.18) !important;
}

.group-read-tabs {
  margin-bottom: 18px;
}

.group-read-card-coach-aligned {
  padding: 0;
  overflow: hidden;
}

.group-read-main-card-luxury {
  margin: 18px;
  padding: 24px 26px;
}

.group-read-lens-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin-bottom: 18px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.group-read-lens-line span,
.group-read-lens-line em {
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.70rem;
  font-style: normal;
  font-weight: 950;
  letter-spacing: 0.10em;
  text-transform: uppercase;
}

.group-read-lens-line strong {
  color: #ffffff;
  font-size: 0.92rem;
  font-weight: 950;
}

.group-read-panel-heading {
  align-items: end;
}

.group-read-primary-report-button,
.session-report-actions .group-read-primary-report-button,
.group-read-contributor-actions .group-read-primary-report-button {
  background: rgba(7, 19, 49, 0.96) !important;
  border-color: rgba(7, 19, 49, 0.96) !important;
  color: #ffffff !important;
  box-shadow: 0 8px 18px rgba(7, 19, 49, 0.16) !important;
}

.group-read-primary-report-button:hover {
  background: rgba(7, 19, 49, 1) !important;
  color: #ffffff !important;
  box-shadow: 0 10px 22px rgba(7, 19, 49, 0.22) !important;
}

.group-read-report-actions {
  gap: 8px;
}

.group-read-contributor-card .group-read-report-actions {
  margin-top: 12px;
}

@media print {
  .app-shell-header,
  .group-read-utility-actions,
  .group-read-tabs,
  .group-read-actions,
  .report-surface-tabs,
  .group-read-actions {
    display: none !important;
  }

  body {
    background: #ffffff !important;
  }

  .page {
    max-width: none !important;
    padding: 0 !important;
  }

  .group-read-page-hero,
  .group-read-card-coach-aligned {
    box-shadow: none !important;
  }

  .group-read-main-card-luxury {
    break-inside: avoid;
  }
}

@media (max-width: 900px) {
  .group-read-page-hero {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .group-read-utility-actions {
    justify-content: flex-start;
  }
}
/* --- End ErgScreen Group Read coach-aligned report shell v5 --- */


/* --- ErgScreen Group Read spacing + button fix v7 --- */
.group-read-card-coach-aligned {
  padding: 18px !important;
}

.group-read-card-coach-aligned > .group-read-main-card-luxury {
  margin: 0 0 18px !important;
}

.group-read-card-coach-aligned > .group-read-signal-panel,
.group-read-card-coach-aligned > .group-read-contributor-panel,
.group-read-card-coach-aligned > .group-read-table-panel,
.group-read-card-coach-aligned > .group-read-actions {
  padding-left: 8px !important;
  padding-right: 8px !important;
}

.group-read-card-coach-aligned .group-read-panel-heading,
.group-read-card-coach-aligned .section-header {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.group-read-report-actions {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}

.group-read-contributor-card .group-read-report-actions {
  justify-content: flex-end !important;
  margin-top: 0 !important;
}

.group-read-primary-report-button,
a.group-read-primary-report-button,
.session-report-actions a.group-read-primary-report-button,
.group-read-contributor-actions a.group-read-primary-report-button,
.group-read-report-actions a.group-read-primary-report-button {
  min-height: 34px !important;
  height: 34px !important;
  padding: 0 13px !important;
  border: 1px solid var(--navy, #071331) !important;
  background: var(--navy, #071331) !important;
  color: #ffffff !important;
  font-size: 0.80rem !important;
  font-weight: 950 !important;
  letter-spacing: -0.01em !important;
  opacity: 1 !important;
  box-shadow: 0 10px 22px rgba(7, 19, 49, 0.18) !important;
}

.group-read-primary-report-button:hover,
a.group-read-primary-report-button:hover,
.session-report-actions a.group-read-primary-report-button:hover,
.group-read-contributor-actions a.group-read-primary-report-button:hover,
.group-read-report-actions a.group-read-primary-report-button:hover {
  background: #020817 !important;
  border-color: #020817 !important;
  color: #ffffff !important;
  box-shadow: 0 12px 26px rgba(7, 19, 49, 0.24) !important;
}

.group-read-secondary-report-button,
a.group-read-secondary-report-button,
.group-read-report-actions a.group-read-secondary-report-button {
  min-height: 34px !important;
  height: 34px !important;
  padding: 0 13px !important;
  border: 1px solid rgba(15, 139, 141, 0.28) !important;
  background: rgba(255, 255, 255, 0.94) !important;
  color: var(--teal, #007a80) !important;
  font-size: 0.80rem !important;
  font-weight: 950 !important;
  opacity: 1 !important;
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.055) !important;
}

.group-read-secondary-report-button:hover,
a.group-read-secondary-report-button:hover,
.group-read-report-actions a.group-read-secondary-report-button:hover {
  border-color: rgba(15, 139, 141, 0.40) !important;
  background: rgba(15, 139, 141, 0.07) !important;
  color: var(--teal, #007a80) !important;
}

.group-read-contributor-card {
  grid-template-columns: minmax(190px, 1fr) minmax(210px, 1.2fr) minmax(230px, auto) !important;
}

.group-read-session-table .session-report-actions {
  min-width: 240px;
}

.group-read-session-table td:last-child {
  width: 260px;
}

@media (max-width: 1050px) {
  .group-read-card-coach-aligned {
    padding: 14px !important;
  }

  .group-read-card-coach-aligned > .group-read-signal-panel,
  .group-read-card-coach-aligned > .group-read-contributor-panel,
  .group-read-card-coach-aligned > .group-read-table-panel,
  .group-read-card-coach-aligned > .group-read-actions {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .group-read-contributor-card {
    grid-template-columns: 1fr !important;
  }

  .group-read-contributor-card .group-read-report-actions {
    justify-content: flex-start !important;
  }
}
/* --- End ErgScreen Group Read spacing + button fix v7 --- */

/* --- ErgScreen Group Read unified report buttons v8 --- */
/* Match the standard app report-action language: white surface, teal text. */
.group-read-report-actions .report-action-button,
.group-read-report-actions a.report-action-button,
.group-read-primary-report-button,
a.group-read-primary-report-button,
.group-read-secondary-report-button,
a.group-read-secondary-report-button,
.session-report-actions a.group-read-primary-report-button,
.session-report-actions a.group-read-secondary-report-button,
.group-read-contributor-actions a.group-read-primary-report-button,
.group-read-contributor-actions a.group-read-secondary-report-button,
.group-read-report-actions a.group-read-primary-report-button,
.group-read-report-actions a.group-read-secondary-report-button {
  min-height: 34px !important;
  height: 34px !important;
  padding: 0 13px !important;
  border: 1px solid rgba(15, 139, 141, 0.30) !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.96) !important;
  color: var(--teal, #007a80) !important;
  font-size: 0.80rem !important;
  font-weight: 950 !important;
  letter-spacing: -0.01em !important;
  opacity: 1 !important;
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.055) !important;
}

.group-read-report-actions .report-action-button:hover,
.group-read-report-actions a.report-action-button:hover,
.group-read-primary-report-button:hover,
a.group-read-primary-report-button:hover,
.group-read-secondary-report-button:hover,
a.group-read-secondary-report-button:hover,
.session-report-actions a.group-read-primary-report-button:hover,
.session-report-actions a.group-read-secondary-report-button:hover,
.group-read-contributor-actions a.group-read-primary-report-button:hover,
.group-read-contributor-actions a.group-read-secondary-report-button:hover,
.group-read-report-actions a.group-read-primary-report-button:hover,
.group-read-report-actions a.group-read-secondary-report-button:hover {
  border-color: rgba(15, 139, 141, 0.44) !important;
  background: rgba(15, 139, 141, 0.075) !important;
  color: var(--teal, #007a80) !important;
  box-shadow: 0 8px 18px rgba(15, 139, 141, 0.10) !important;
}

.group-read-contributor-card .group-read-report-actions {
  justify-content: flex-end !important;
}

.group-read-session-table .group-read-report-actions {
  align-items: flex-start !important;
}
/* --- End ErgScreen Group Read unified report buttons v8 --- */


/* --- ErgScreen Group Read button surface fix v9 --- */
/* Force every Group Read report navigation button onto the standard app surface:
   white background, teal text. This overrides legacy primary classes and the
   contributor-card context where Coach Brief could appear teal-on-teal. */
.group-read-contributor-panel .group-read-report-actions a,
.group-read-contributor-panel .group-read-report-actions a.button,
.group-read-contributor-panel .group-read-report-actions a.report-action-button,
.group-read-contributor-panel .group-read-report-actions a.group-read-primary-report-button,
.group-read-contributor-panel .group-read-report-actions a.group-read-secondary-report-button,
.group-read-table-panel .group-read-report-actions a,
.group-read-table-panel .group-read-report-actions a.button,
.group-read-table-panel .group-read-report-actions a.report-action-button,
.group-read-table-panel .group-read-report-actions a.group-read-primary-report-button,
.group-read-table-panel .group-read-report-actions a.group-read-secondary-report-button,
.group-read-card .group-read-report-actions a,
.group-read-card .group-read-report-actions a.button,
.group-read-card .group-read-report-actions a.report-action-button,
.group-read-card .group-read-report-actions a.group-read-primary-report-button,
.group-read-card .group-read-report-actions a.group-read-secondary-report-button {
  min-height: 34px !important;
  height: 34px !important;
  padding: 0 13px !important;
  border: 1px solid rgba(15, 139, 141, 0.30) !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  color: var(--teal, #007a80) !important;
  font-size: 0.80rem !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  opacity: 1 !important;
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.055) !important;
  filter: none !important;
}

.group-read-contributor-panel .group-read-report-actions a:hover,
.group-read-contributor-panel .group-read-report-actions a.button:hover,
.group-read-contributor-panel .group-read-report-actions a.report-action-button:hover,
.group-read-table-panel .group-read-report-actions a:hover,
.group-read-table-panel .group-read-report-actions a.button:hover,
.group-read-table-panel .group-read-report-actions a.report-action-button:hover,
.group-read-card .group-read-report-actions a:hover,
.group-read-card .group-read-report-actions a.button:hover,
.group-read-card .group-read-report-actions a.report-action-button:hover {
  border-color: rgba(15, 139, 141, 0.44) !important;
  background: rgba(255, 255, 255, 0.98) !important;
  color: var(--teal, #007a80) !important;
  box-shadow: 0 8px 18px rgba(15, 139, 141, 0.10) !important;
}
/* --- End ErgScreen Group Read button surface fix v9 --- */

/* --- ErgScreen Group Report Hub v13: roster readiness tab + report --- */
.group-read-tab-row {
  align-items: center;
  gap: 10px;
}

.group-read-tab-form {
  display: inline-flex;
  margin: 0;
  padding: 0;
}

.group-read-tab-button {
  appearance: none;
  cursor: pointer;
  font-family: inherit;
  border: 1px solid rgba(15, 139, 141, 0.22);
  background: rgba(255, 255, 255, 0.94);
  color: var(--teal, #007a80);
}

.group-read-tab-button:hover {
  border-color: rgba(15, 139, 141, 0.40);
  background: #ffffff;
  transform: translateY(-1px);
}

.roster-readiness-summary-grid .roster-readiness-card {
  min-height: 112px;
}

.roster-readiness-card-supported,
.roster-readiness-card-clean {
  border-color: rgba(15, 139, 141, 0.18) !important;
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(240,253,250,0.78)) !important;
}

.roster-readiness-card-limited,
.roster-readiness-card-hold {
  border-color: rgba(180, 83, 9, 0.18) !important;
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(255,251,235,0.78)) !important;
}

.roster-attention-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.roster-attention-item {
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.055);
  color: #334155;
  font-size: 0.94rem;
  font-weight: 760;
  letter-spacing: -0.015em;
  line-height: 1.42;
  padding: 14px 16px;
}

.roster-status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 11px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 950;
  letter-spacing: -0.01em;
  white-space: nowrap;
}

.roster-status-supported {
  border: 1px solid rgba(15, 139, 141, 0.20);
  background: rgba(240, 253, 250, 0.95);
  color: var(--teal, #007a80);
}

.roster-status-hold {
  border: 1px solid rgba(180, 83, 9, 0.22);
  background: rgba(255, 251, 235, 0.98);
  color: #92400e;
}

.roster-status-limited {
  border: 1px solid rgba(100, 116, 139, 0.22);
  background: rgba(248, 250, 252, 0.98);
  color: #475569;
}

.roster-readiness-table td:nth-child(6) {
  min-width: 220px;
  color: #334155;
  font-weight: 650;
  line-height: 1.35;
}

.roster-guardrail-card {
  border-color: rgba(15, 23, 42, 0.08) !important;
  background: linear-gradient(180deg, rgba(248,250,252,0.92), rgba(255,255,255,0.96)) !important;
}

.roster-guardrail-card p:last-child {
  max-width: 980px;
  color: #475569;
  font-weight: 650;
  line-height: 1.48;
}


/* --- ErgScreen Roster Readiness language tighten v14 --- */
.roster-readiness-card-signal {
  border-color: rgba(15, 139, 141, 0.28);
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(240,253,250,0.72));
}
.roster-status-pill.roster-status-supported {
  white-space: nowrap;
}


/* --- ErgScreen Lineup Optionality Report Polish Restore v14 --- */


/* --- ErgScreen Lineup Optionality Read v2: flagship polish --- */
.lineup-summary-panel {
  margin-top: 20px !important;
}

.lineup-section-heading h2 {
  letter-spacing: -0.045em;
}

.lineup-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.lineup-summary-card {
  position: relative;
  overflow: hidden;
  min-height: 185px;
  padding: 18px 18px 16px !important;
  border: 1px solid rgba(203, 213, 225, 0.82);
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,250,252,0.88));
  box-shadow: 0 18px 42px rgba(7, 19, 49, 0.075);
}

.lineup-summary-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: rgba(15, 139, 141, 0.55);
}

.lineup-profile-card-bow::before { background: rgba(15, 139, 141, 0.72); }
.lineup-profile-card-stroke::before { background: rgba(29, 78, 137, 0.72); }
.lineup-profile-card-engine::before { background: rgba(249, 115, 22, 0.68); }

.lineup-summary-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.lineup-summary-card-top span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  background: rgba(15, 139, 141, 0.09);
  color: var(--teal, #007a80);
  font-size: 0.68rem;
  line-height: 1;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.lineup-summary-card-top strong {
  color: var(--navy, #071331);
  font-size: 2.2rem;
  line-height: 0.92;
  font-weight: 950;
  letter-spacing: -0.07em;
}

.lineup-summary-card h3 {
  margin: 0;
  color: var(--navy, #071331);
  font-size: 1.12rem;
  line-height: 1.06;
  letter-spacing: -0.035em;
}

.lineup-summary-card p {
  min-height: 54px;
  margin: 8px 0 12px;
  color: #475569;
  font-size: 0.86rem;
  line-height: 1.35;
  font-weight: 720;
}

.lineup-bucket-row-polished {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.lineup-bucket-row-polished em {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 0.70rem;
  font-style: normal;
  font-weight: 950;
  white-space: nowrap;
}

.lineup-bucket-preserve {
  color: #0f766e;
  background: rgba(15, 139, 141, 0.10);
  border: 1px solid rgba(15, 139, 141, 0.22);
}

.lineup-bucket-verify {
  color: #1d4e89;
  background: rgba(29, 78, 137, 0.09);
  border: 1px solid rgba(29, 78, 137, 0.18);
}

.lineup-bucket-watch {
  color: #92400e;
  background: rgba(245, 158, 11, 0.11);
  border: 1px solid rgba(245, 158, 11, 0.24);
}

.lineup-bucket-limited {
  color: #475569;
  background: rgba(100, 116, 139, 0.10);
  border: 1px solid rgba(100, 116, 139, 0.18);
}

.lineup-matrix-panel {
  margin-top: 22px !important;
}

.lineup-optionality-table {
  min-width: 0 !important;
  table-layout: fixed;
}

.lineup-optionality-table th,
.lineup-optionality-table td {
  padding: 13px 10px;
}

.lineup-optionality-table th:nth-child(1),
.lineup-optionality-table td:nth-child(1) { width: 17%; }
.lineup-optionality-table th:nth-child(2),
.lineup-optionality-table td:nth-child(2),
.lineup-optionality-table th:nth-child(3),
.lineup-optionality-table td:nth-child(3),
.lineup-optionality-table th:nth-child(4),
.lineup-optionality-table td:nth-child(4) { width: 15%; }
.lineup-optionality-table th:nth-child(5),
.lineup-optionality-table td:nth-child(5) { width: 12%; }
.lineup-optionality-table th:nth-child(6),
.lineup-optionality-table td:nth-child(6) { width: 26%; }

.lineup-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 950;
  letter-spacing: -0.01em;
  white-space: nowrap;
}

.lineup-status-preserve,
.lineup-status-supported {
  color: #0f766e;
  background: rgba(15, 139, 141, 0.10);
  border: 1px solid rgba(15, 139, 141, 0.24);
}

.lineup-status-verify {
  color: #1d4e89;
  background: rgba(29, 78, 137, 0.09);
  border: 1px solid rgba(29, 78, 137, 0.20);
}

.lineup-status-watch,
.lineup-status-hold {
  color: #92400e;
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.26);
}

.lineup-status-limited,
.lineup-status-coverage-limited {
  color: #475569;
  background: rgba(100, 116, 139, 0.10);
  border: 1px solid rgba(100, 116, 139, 0.20);
}

.lineup-action-copy {
  margin-top: 6px;
  color: #64748b;
  font-size: 0.80rem;
  line-height: 1.25;
  font-weight: 750;
}

.lineup-settings-panel-secondary {
  margin-top: 24px !important;
  padding-top: 18px;
  border-top: 1px solid rgba(203, 213, 225, 0.72);
}

.lineup-settings-panel-secondary .group-read-panel-heading h2 {
  font-size: clamp(1.15rem, 1.7vw, 1.45rem);
}

.lineup-settings-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.lineup-settings-card {
  border: 1px solid rgba(203, 213, 225, 0.82);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
  overflow: hidden;
}

.lineup-settings-card summary {
  cursor: pointer;
  padding: 13px 15px;
  color: var(--navy, #071331);
  font-weight: 950;
  letter-spacing: -0.02em;
}

.lineup-settings-card[open] summary {
  border-bottom: 1px solid rgba(203, 213, 225, 0.72);
  background: rgba(248, 250, 252, 0.78);
}

.lineup-control-group {
  display: grid;
  gap: 6px;
  padding: 12px 15px;
  border-bottom: 1px solid rgba(226, 232, 240, 0.76);
}

.lineup-control-group:last-child {
  border-bottom: 0;
}

.lineup-control-group strong {
  color: var(--navy, #071331);
  font-size: 0.82rem;
  font-weight: 950;
}

.lineup-control-group span {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: #475569;
  font-size: 0.78rem;
  line-height: 1.2;
  font-weight: 760;
}

.lineup-control-group em {
  color: var(--navy, #071331);
  font-style: normal;
  font-weight: 950;
  white-space: nowrap;
}

@media (max-width: 1050px) {
  .lineup-summary-grid,
  .lineup-settings-grid {
    grid-template-columns: 1fr;
  }
  .lineup-optionality-table {
    min-width: 860px !important;
  }
}
/* --- End ErgScreen Lineup Optionality Read v2 --- */
/* --- End ErgScreen Lineup Optionality Report Polish Restore v14 --- */


/* --- ErgScreen report subtitle no-wrap polish v19 --- */
.group-read-page-hero .movement-analysis-view-main {
  min-width: 0;
}

.group-read-page-hero .movement-analysis-page-tagline {
  max-width: none;
  width: max-content;
  white-space: nowrap;
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

@media (max-width: 1180px) {
  .group-read-page-hero .movement-analysis-page-tagline {
    width: auto;
    max-width: 100%;
    white-space: normal;
  }
}
/* --- End ErgScreen report subtitle no-wrap polish v19 --- */


/* --- ErgScreen social badge actions v1 --- */
.movement-analysis-download-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

@media (max-width: 720px) {
  .movement-analysis-download-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .movement-analysis-download-actions .button {
    width: 100%;
  }
}
/* --- End ErgScreen social badge actions v1 --- */

/* --- ErgScreen Lineup Optionality upgrade v20 --- */
.lineup-optionality-table-upgraded {
  min-width: 1080px !important;
}

.lineup-optionality-table-upgraded th:nth-child(1),
.lineup-optionality-table-upgraded td:nth-child(1) { width: 16% !important; }
.lineup-optionality-table-upgraded th:nth-child(2),
.lineup-optionality-table-upgraded td:nth-child(2),
.lineup-optionality-table-upgraded th:nth-child(3),
.lineup-optionality-table-upgraded td:nth-child(3),
.lineup-optionality-table-upgraded th:nth-child(4),
.lineup-optionality-table-upgraded td:nth-child(4) { width: 12.5% !important; }
.lineup-optionality-table-upgraded th:nth-child(5),
.lineup-optionality-table-upgraded td:nth-child(5) { width: 8% !important; }
.lineup-optionality-table-upgraded th:nth-child(6),
.lineup-optionality-table-upgraded td:nth-child(6) { width: 20.5% !important; }
.lineup-optionality-table-upgraded th:nth-child(7),
.lineup-optionality-table-upgraded td:nth-child(7) { width: 18% !important; }

.lineup-athlete-name {
  display: block;
  color: var(--navy, #071331);
  font-weight: 950;
  letter-spacing: -0.02em;
}

.lineup-profile-line {
  margin-top: 5px;
  color: #334155;
  font-size: 0.78rem;
  line-height: 1.24;
  font-weight: 850;
}

.lineup-session-line {
  margin-top: 5px !important;
  font-size: 0.78rem !important;
  line-height: 1.22 !important;
}

.lineup-next-action {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.lineup-next-action strong {
  display: block;
  color: var(--navy, #071331);
  font-size: 0.86rem;
  line-height: 1.12;
  font-weight: 950;
  letter-spacing: -0.018em;
}

.lineup-next-action span {
  display: block;
  color: #475569;
  font-size: 0.78rem;
  line-height: 1.26;
  font-weight: 720;
}

.lineup-next-action-watch strong { color: #92400e; }
.lineup-next-action-verify strong { color: #1d4e89; }
.lineup-next-action-limited strong { color: #475569; }
.lineup-next-action-preserve strong { color: #0f766e; }

.lineup-report-actions {
  min-width: 0 !important;
  gap: 6px !important;
}

.lineup-report-actions .button {
  min-height: 30px !important;
  height: 30px !important;
  padding: 0 9px !important;
  font-size: 0.72rem !important;
}

.lineup-custom-standard-pill {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  margin-top: 10px;
  padding: 0 10px;
  border: 1px solid rgba(15,139,141,.24);
  border-radius: 999px;
  background: rgba(204,251,241,.66);
  color: #00656a;
  font-size: 0.70rem;
  font-weight: 950;
  letter-spacing: 0.075em;
  text-transform: uppercase;
}

.lineup-bucket-row-polished .lineup-bucket-preserve {
  min-width: 0;
}

@media (max-width: 1050px) {
  .lineup-optionality-table-upgraded {
    min-width: 1080px !important;
  }
}

@media print {
  .lineup-optionality-table-upgraded {
    min-width: 0 !important;
    table-layout: fixed !important;
  }
  .lineup-optionality-table-upgraded .lineup-profile-line,
  .lineup-optionality-table-upgraded .lineup-session-line,
  .lineup-optionality-table-upgraded .lineup-next-action span {
    font-size: 8.8px !important;
    line-height: 1.14 !important;
  }
  .lineup-optionality-table-upgraded .lineup-next-action strong {
    font-size: 9.4px !important;
  }
}
/* --- End ErgScreen Lineup Optionality upgrade v20 --- */

/* --- ErgScreen Lineup Optionality PDF/accessibility polish v20 --- */
.lineup-settings-summary-cue {
  float: right;
  margin-left: 10px;
  color: var(--teal, #007a80);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.lineup-standards-pdf-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.lineup-standards-pdf-card {
  border: 1px solid rgba(203, 213, 225, 0.82);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.88);
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.lineup-standards-pdf-card h3 {
  margin: 0;
  padding: 13px 15px;
  color: var(--navy, #071331);
  background: rgba(248, 250, 252, 0.84);
  border-bottom: 1px solid rgba(203, 213, 225, 0.72);
  font-size: 1rem;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.lineup-standards-pdf-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.lineup-standards-pdf-table th,
.lineup-standards-pdf-table td {
  padding: 9px 12px;
  border-bottom: 1px solid rgba(226, 232, 240, 0.78);
  font-size: 0.82rem;
  line-height: 1.18;
}

.lineup-standards-pdf-table th {
  color: var(--navy, #071331);
  background: #ffffff;
  text-align: left;
  font-weight: 950;
}

.lineup-standards-pdf-table td:first-child {
  color: #475569;
  font-weight: 760;
}

.lineup-standards-pdf-table td:last-child {
  color: var(--navy, #071331);
  text-align: right;
  font-weight: 950;
  white-space: nowrap;
}

@media print {
  body > header,
  body > nav,
  .app-shell-header,
  header.app-shell-header,
  .site-header,
  .brand-lockup,
  .app-nav,
  .site-nav,
  .report-surface-tabs,
  .report-download-card,
  .group-read-tabs,
  .group-read-utility-actions,
  .group-read-actions,
  .pdf-export-status-overlay {
    display: none !important;
  }
}
/* --- End ErgScreen Lineup Optionality PDF/accessibility polish v20 --- */

/* --- ErgScreen Recruit Verification Board flagship polish v1 --- */
.rvb-profile-line {
  color: #334155;
  font-weight: 850;
}
.rvb-session-line {
  margin-top: 4px;
}
.rvb-next-copy strong {
  display: block;
  margin-bottom: 4px;
}
.rvb-next-copy-ready strong { color: #00656a; }
.rvb-next-copy-verify strong { color: #92400e; }
.rvb-next-copy-limited strong { color: #475569; }
.rvb-standards-pdf-grid {
  display: grid;
  grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr);
  gap: 12px;
  align-items: start;
}
.rvb-standards-pdf-card {
  border: 1px solid rgba(203,213,225,.82);
  border-radius: 18px;
  background: #fff;
  overflow: hidden;
}
.rvb-standards-pdf-card h3 {
  margin: 0;
  padding: 13px 15px;
  background: rgba(248,250,252,.92);
  border-bottom: 1px solid rgba(203,213,225,.72);
  color: var(--navy,#071331);
  font-size: 1rem;
  letter-spacing: -.02em;
}
.rvb-standards-pdf-table {
  width: 100%;
  table-layout: fixed;
}
.rvb-standards-pdf-table td {
  padding: 10px 14px;
  font-size: .86rem;
  line-height: 1.2;
}
.rvb-standards-pdf-table td:first-child {
  color: #475569;
  font-weight: 780;
}
.rvb-standards-pdf-table td:last-child {
  color: #071331;
  font-weight: 950;
  text-align: right;
}
.rvb-standards-pdf-copy {
  display: grid;
  gap: 10px;
  padding: 14px 15px;
}
.rvb-standards-pdf-copy p {
  margin: 0;
  color: #334155;
  font-size: .9rem;
  line-height: 1.35;
  font-weight: 720;
}
.rvb-standards-pdf-copy strong { color: #071331; }
@media (max-width: 980px) {
  .rvb-standards-pdf-grid { grid-template-columns: 1fr; }
}
/* --- End ErgScreen Recruit Verification Board flagship polish v1 --- */


/* --- Movement Analysis meta subtitle polish v1 --- */
.movement-analysis-meta-bubble strong em.movement-analysis-meta-subtitle {
  display: block;
  margin-left: 0;
  margin-top: 3px;
  color: var(--muted, #64748b);
  font-size: 0.82rem;
  line-height: 1.15;
  font-weight: 820;
}
/* --- End Movement Analysis meta subtitle polish v1 --- */


/* --- ErgScreen Stroke Evidence visible-fit fix v22 --- */
/*
  v21 made the table horizontally scrollable, but that still leaves the Evidence
  column off-screen at normal desktop widths. v22 keeps the full evidence matrix
  visible in the report card by fitting the VM table to the card width on desktop,
  while preserving horizontal scroll only on narrow/mobile screens.
*/
.stroke-evidence-vm-card,
.report-preview-card.stroke-evidence-card,
.stroke-evidence-card {
  overflow: visible !important;
}

.stroke-evidence-vm-card .stroke-evidence-vm-table-wrap {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
  border-radius: 18px !important;
}

.stroke-evidence-vm-card .stroke-evidence-vm-table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
  border-collapse: collapse !important;
}

/* Desktop fit: Stroke | Start | Recovery | Added | Drive | Rate | Rhythm | Evidence */
.stroke-evidence-vm-card .stroke-evidence-vm-table th:nth-child(1),
.stroke-evidence-vm-card .stroke-evidence-vm-table td:nth-child(1) { width: 7% !important; }
.stroke-evidence-vm-card .stroke-evidence-vm-table th:nth-child(2),
.stroke-evidence-vm-card .stroke-evidence-vm-table td:nth-child(2) { width: 7% !important; }
.stroke-evidence-vm-card .stroke-evidence-vm-table th:nth-child(3),
.stroke-evidence-vm-card .stroke-evidence-vm-table td:nth-child(3) { width: 23% !important; }
.stroke-evidence-vm-card .stroke-evidence-vm-table th:nth-child(4),
.stroke-evidence-vm-card .stroke-evidence-vm-table td:nth-child(4) { width: 12% !important; }
.stroke-evidence-vm-card .stroke-evidence-vm-table th:nth-child(5),
.stroke-evidence-vm-card .stroke-evidence-vm-table td:nth-child(5) { width: 12% !important; }
.stroke-evidence-vm-card .stroke-evidence-vm-table th:nth-child(6),
.stroke-evidence-vm-card .stroke-evidence-vm-table td:nth-child(6) { width: 9% !important; }
.stroke-evidence-vm-card .stroke-evidence-vm-table th:nth-child(7),
.stroke-evidence-vm-card .stroke-evidence-vm-table td:nth-child(7) { width: 11% !important; }
.stroke-evidence-vm-card .stroke-evidence-vm-table th:nth-child(8),
.stroke-evidence-vm-card .stroke-evidence-vm-table td:nth-child(8) { width: 19% !important; }

.stroke-evidence-vm-card .stroke-evidence-vm-table th,
.stroke-evidence-vm-card .stroke-evidence-vm-table td {
  min-width: 0 !important;
  max-width: none !important;
  padding: 12px 8px !important;
  white-space: normal !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

.stroke-evidence-vm-card .stroke-evidence-vm-table th {
  font-size: 0.64rem !important;
  line-height: 1.12 !important;
  letter-spacing: 0.055em !important;
}

.stroke-evidence-vm-card .stroke-evidence-vm-table td {
  font-size: 0.82rem !important;
  line-height: 1.28 !important;
}

.stroke-evidence-vm-card .stroke-cell,
.stroke-evidence-vm-card .stroke-rate-hold-value,
.stroke-evidence-vm-card .stroke-rate-hold-detail {
  white-space: normal !important;
}

.stroke-evidence-vm-card .stroke-timeline-wrap {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.stroke-evidence-vm-card .stroke-timeline-track {
  width: 100% !important;
  min-width: 0 !important;
  margin-inline: 2px !important;
}

.stroke-evidence-vm-card .stroke-timeline-values {
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
  font-size: 9.5px !important;
  line-height: 1.12 !important;
}

.stroke-evidence-vm-card .stroke-evidence-pill-row {
  gap: 4px !important;
}

.stroke-evidence-vm-card .stroke-evidence-pill {
  min-height: 20px !important;
  padding: 2px 6px !important;
  font-size: 0.68rem !important;
  white-space: normal !important;
}

.stroke-evidence-vm-card .stroke-evidence-note,
.stroke-evidence-vm-card .stroke-evidence-vm-table td:last-child {
  min-width: 0 !important;
  white-space: normal !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

/* On genuinely narrow screens, scroll is better than compressing the evidence. */
@media (max-width: 900px) {
  .stroke-evidence-vm-card .stroke-evidence-vm-table-wrap {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .stroke-evidence-vm-card .stroke-evidence-vm-table {
    min-width: 980px !important;
  }
}

@media print {
  .stroke-evidence-vm-card .stroke-evidence-vm-table-wrap {
    overflow: visible !important;
  }

  .stroke-evidence-vm-card .stroke-evidence-vm-table {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
}
/* --- End ErgScreen Stroke Evidence visible-fit fix v22 --- */


/* Recruit Assist inline sections: calmer request toggles and benchmark layout */


@media (max-width: 980px) {
  .recruit-inline-field-row-benchmark {
    grid-template-columns: 1fr;
  }
}


/* Recruit Assist section-local styles consolidated from template. */


/* --- Recruit Assist Coach Review: recruit profile + unified ErgScreen Analysis v4 --- */
.coach-review-picture-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.coach-review-picture-copy strong { white-space: pre-line; }
.coach-review-picture-grid article.is-attention { border-color: rgba(245,158,11,.28); background: rgba(255,251,235,.72); }
.coach-review-picture-grid article.is-attention .coach-review-picture-meta em { color:#92400e; background:rgba(245,158,11,.12); border-color:rgba(245,158,11,.24); }
.coach-review-analysis-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.coach-review-selected-session { display:grid; gap:4px; margin:0 0 16px; padding:14px 16px; border:1px solid rgba(203,213,225,.78); border-radius:16px; background:rgba(248,250,252,.72); }
.coach-review-selected-session span { color:#64748b; font-size:.68rem; font-weight:900; letter-spacing:.10em; text-transform:uppercase; }
.coach-review-selected-session strong { color:#071331; font-size:.98rem; line-height:1.25; font-weight:900; }
.coach-review-selected-session small { color:#64748b; font-size:.82rem; font-weight:700; }
.coach-review-visible-events-inline { margin-top:18px; padding-top:16px; border-top:1px solid rgba(203,213,225,.72); }
.coach-review-visible-events-inline .eyebrow { margin-bottom:10px; }
.coach-review-visible-events-inline .coach-review-context-pills { justify-content:flex-start; }
@media (max-width: 1050px) { .coach-review-picture-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; } }
@media (max-width: 820px) { .coach-review-picture-grid { grid-template-columns:1fr !important; } .coach-review-analysis-actions { justify-content:flex-start; } .coach-review-analysis-actions .button { width:100%; } }
/* --- End Recruit Assist Coach Review v4 --- */


/* --- Recruit Assist Coach Review: evidence recommendation flow v1 --- */
.coach-review-evidence-recommendation {
  align-items: stretch;
  flex-direction: column;
}
.coach-review-evidence-recommendation-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.coach-review-new-evidence-option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 14px 0 0;
  padding: 13px 14px;
  border: 1px solid rgba(203, 213, 225, 0.82);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.78);
  cursor: pointer;
}
.coach-review-new-evidence-option input {
  width: auto;
  margin: 2px 0 0;
  accent-color: var(--teal, #007a80);
}
.coach-review-new-evidence-option span { display: grid; gap: 3px; }
.coach-review-new-evidence-option strong { color: #071331; font-size: 0.92rem; }
.coach-review-new-evidence-option small { color: #64748b; font-size: 0.82rem; line-height: 1.35; font-weight: 650; }
.coach-review-new-evidence-message { display: block; margin: 14px 0 0; }
.coach-review-new-evidence-message[hidden] { display: none !important; }
.coach-review-new-evidence-message textarea {
  display: block;
  width: 100%;
  min-height: 104px;
  margin-top: 7px;
  padding: 12px 13px;
  border: 1px solid rgba(203, 213, 225, 0.92);
  border-radius: 14px;
  background: #fff;
  color: #071331;
  font: inherit;
  line-height: 1.45;
  resize: vertical;
}
@media (max-width: 820px) {
  .coach-review-evidence-recommendation-head { align-items: stretch; flex-direction: column; }
  .coach-review-evidence-recommendation-head .button { width: 100%; }
}
/* --- End Recruit Assist Coach Review evidence recommendation flow v1 --- */


/* --- Recruit Packet canonical flow v1 --- */


@media (max-width: 980px) {
  .recruit-overview-workflow-rail {
    grid-template-columns: 1fr;
  }
}
/* --- End Recruit Packet canonical flow v1 --- */




/* ===== Coach Recruit Assist Workspace maturity v1 ===== */


.coach-workspace-next-action {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 20px;
  align-items: center;
  padding: 20px 21px;
  border: 1px solid rgba(15,139,141,.24);
  border-radius: 23px;
  background:
    radial-gradient(circle at 100% 0%, rgba(20,184,166,.10), transparent 34%),
    rgba(255,255,255,.94);
  box-shadow: 0 16px 40px rgba(7,19,49,.055);
}

.coach-workspace-next-action.is-verify,
.coach-workspace-next-action.is-review {
  border-color: rgba(245,158,11,.25);
  background:
    radial-gradient(circle at 100% 0%, rgba(245,158,11,.10), transparent 34%),
    rgba(255,251,235,.72);
}

.coach-workspace-next-action h2 {
  margin: 5px 0 0;
  color: #071331;
  font-size: clamp(1.35rem,2.5vw,2.0rem);
  line-height: 1;
  letter-spacing: -.052em;
}

.coach-workspace-next-action p:not(.eyebrow) {
  max-width: 720px;
  margin: 8px 0 0;
  color: #64748b;
  font-size: .86rem;
  line-height: 1.38;
  font-weight: 720;
}


.ask-athlete-check-label {
  text-transform: none !important;
}


@media (max-width: 980px) {




  .coach-workspace-next-action {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .recruit-workspace-segment-list {
    grid-template-columns: 1fr !important;
  }
  .recruit-workspace-body {
    padding: 18px !important;
  }
}
/* ===== End Coach Recruit Assist Workspace maturity v1 ===== */


/* ===== Coach Recruit Assist selected navigation fix v1 =====
   Removes legacy active-state markers and height/overflow rules that collide
   with the newer numbered, status-aware workspace navigation. */


/* Prevent older guided-nav selectors from injecting a second active marker. */


@media (max-width: 980px) {
  .recruit-workspace-segment,
  .recruit-workspace-segment.is-active {
    min-height: 52px !important;
  }
}
/* ===== End Coach Recruit Assist selected navigation fix v1 ===== */


/* --- Athlete Packet / Recruit Packet commercial fork v1 --- */
.packet-commercial-choice-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:18px;
}
.packet-commercial-choice {
  display:grid;
  align-content:start;
  gap:12px;
  min-height:250px;
  padding:20px;
  border:1px solid rgba(203,213,225,.78);
  border-radius:24px;
  background:rgba(255,255,255,.90);
  box-shadow:0 14px 34px rgba(7,19,49,.055);
}
.packet-commercial-choice.is-primary {
  border-color:rgba(15,139,141,.30);
  background:
    radial-gradient(circle at 96% 0%,rgba(20,184,166,.13),transparent 34%),
    linear-gradient(180deg,rgba(240,253,250,.78),rgba(255,255,255,.96));
  box-shadow:0 20px 46px rgba(15,139,141,.10);
}
.packet-commercial-choice h3 {
  margin:0;
  color:var(--navy,#071331);
  font-size:clamp(1.35rem,2vw,1.75rem);
  line-height:1.02;
  letter-spacing:-.045em;
}
.packet-commercial-choice p:not(.eyebrow) {
  margin:0;
  color:#475569;
  font-size:.91rem;
  line-height:1.42;
  font-weight:720;
}
.packet-commercial-choice form,
.packet-commercial-choice .button {
  margin-top:auto;
}
@media (max-width:820px) {
  .packet-commercial-choice-grid { grid-template-columns:1fr; }
}
/* --- End Athlete Packet / Recruit Packet commercial fork v1 --- */


/* --- Packet Studio missing-field guidance v1 --- */
.packet-missing-guidance {
  display:grid;
  gap:4px;
  margin:0 0 16px;
  padding:13px 15px;
  border:1px solid rgba(245,158,11,.30);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,251,235,.92),rgba(255,255,255,.96));
  color:#78350f;
}
.packet-missing-guidance strong {
  color:#78350f;
  font-size:.94rem;
  font-weight:950;
}
.packet-missing-guidance span {
  color:#92400e;
  font-size:.82rem;
  line-height:1.32;
  font-weight:740;
}
.packet-studio-form label.packet-field-missing {
  position:relative;
  padding:12px;
  border:1px solid rgba(245,158,11,.42);
  border-radius:16px;
  background:rgba(255,251,235,.74);
  box-shadow:0 0 0 3px rgba(245,158,11,.08);
}
.packet-studio-form label.packet-field-missing .field-label {
  color:#92400e;
}
.packet-studio-form label.packet-field-missing input,
.packet-studio-form label.packet-field-missing select,
.packet-studio-form label.packet-field-missing textarea {
  border-color:rgba(245,158,11,.55);
  background:#fff;
}
.packet-field-missing-copy {
  display:block;
  margin-top:7px;
  color:#92400e;
  font-size:.76rem;
  line-height:1.28;
  font-weight:820;
}
#packet-recruit-profile-form,
#packet-training-context-form {
  scroll-margin-top:92px;
}
/* --- End Packet Studio missing-field guidance v1 --- */


/* --- Packet Studio logical performance marker layout v1 --- */
.packet-performance-block {
  display:grid;
  gap:12px;
}
.packet-performance-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px;
  align-items:start;
}
.packet-performance-context-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px;
}
.packet-performance-context-row > label {
  grid-column:1;
}
.packet-performance-divider {
  height:1px;
  margin:4px 0 2px;
  background:rgba(203,213,225,.72);
}
@media (max-width:760px) {
  .packet-performance-row,
  .packet-performance-context-row {
    grid-template-columns:1fr;
  }
  .packet-performance-context-row > label {
    grid-column:auto;
  }
}
/* --- End Packet Studio logical performance marker layout v1 --- */


/* --- Packet Studio optional coach request disclosure v1 --- */
.packet-coach-help-choice {
  display:grid;
  gap:14px;
  margin-top:14px;
  padding:18px;
  border:1px solid rgba(203,213,225,.76);
  border-radius:22px;
  background:
    radial-gradient(circle at 96% 0%, rgba(15,139,141,.075), transparent 32%),
    rgba(255,255,255,.88);
}
.packet-coach-help-choice-head h3 {
  margin:4px 0 0;
  color:var(--navy,#071331);
  font-size:clamp(1.2rem,1.9vw,1.55rem);
  line-height:1.04;
  letter-spacing:-.042em;
}
.packet-coach-help-choice-head p:not(.eyebrow) {
  margin:7px 0 0;
  color:#64748b;
  font-size:.87rem;
  line-height:1.34;
  font-weight:720;
}
.packet-coach-help-options {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.packet-coach-help-radio {
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.packet-coach-help-option {
  display:grid;
  gap:4px;
  min-height:76px;
  margin:0;
  padding:14px 15px;
  border:1px solid rgba(203,213,225,.78);
  border-radius:18px;
  background:rgba(248,250,252,.72);
  cursor:pointer;
  transition:border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
}
.packet-coach-help-option strong {
  color:var(--navy,#071331);
  font-size:.94rem;
  line-height:1.1;
  font-weight:950;
}
.packet-coach-help-option small {
  color:#64748b;
  font-size:.78rem;
  line-height:1.28;
  font-weight:720;
}
.packet-coach-help-radio:checked + .packet-coach-help-option {
  border-color:rgba(15,139,141,.38);
  background:rgba(240,253,250,.78);
  box-shadow:0 10px 24px rgba(15,139,141,.075);
}
.packet-coach-help-reveal {
  grid-column:1 / -1;
  display:none;
  padding-top:4px;
}
.packet-coach-help-radio[id$="CoachHelpYes"]:checked ~ .packet-coach-help-reveal {
  display:block;
}
.packet-coach-help-reveal form {
  display:grid;
  gap:12px;
  padding:16px;
  border:1px solid rgba(15,139,141,.22);
  border-radius:18px;
  background:rgba(240,253,250,.56);
}
.packet-coach-help-note {
  margin:0;
}
.packet-coach-help-note textarea {
  display:block;
  width:100%;
  min-height:122px;
  margin-top:8px;
  padding:12px 13px;
  border:1px solid rgba(203,213,225,.92);
  border-radius:14px;
  background:#fff;
  color:var(--text,#071331);
  font:inherit;
  line-height:1.45;
  resize:vertical;
}
.packet-coach-help-note textarea:focus {
  outline:none;
  border-color:rgba(15,139,141,.58);
  box-shadow:0 0 0 4px rgba(15,139,141,.10);
}
.packet-coach-help-note small {
  display:block;
  margin-top:7px;
  color:#64748b;
  font-size:.76rem;
  line-height:1.28;
  font-weight:720;
}
.packet-coach-help-actions {
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  align-items:center;
}
.packet-coach-help-actions label.button {
  margin:0;
}
@media (max-width:720px) {
  .packet-coach-help-options {
    grid-template-columns:1fr;
  }
  .packet-coach-help-reveal {
    grid-column:auto;
  }
  .packet-coach-help-actions,
  .packet-coach-help-actions .button {
    width:100%;
  }
}
/* --- End Packet Studio optional coach request disclosure v1 --- */


/* Unified five-step Recruit Packet Studio */
.packet-builder-accordion {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}
.packet-builder-section {
  overflow: hidden;
  border: 1px solid rgba(203,213,225,.82);
  border-radius: 24px;
  background: rgba(248,250,252,.72);
  box-shadow: 0 12px 30px rgba(7,19,49,.045);
}
.packet-builder-section[open] {
  background: rgba(255,255,255,.96);
  border-color: rgba(15,139,141,.26);
  box-shadow: 0 20px 48px rgba(7,19,49,.075);
}
.packet-builder-section > summary {
  list-style: none;
  cursor: pointer;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 18px 20px;
}
.packet-builder-section > summary::-webkit-details-marker { display:none; }
.packet-builder-section > summary div { display:grid; gap:5px; }
.packet-builder-section > summary strong {
  color: var(--erg-navy,#071331);
  font-size: 1.08rem;
  font-weight: 950;
  letter-spacing: -.03em;
}
.packet-builder-section > summary small {
  color: var(--erg-muted,#64748b);
  font-size: .86rem;
  line-height: 1.35;
  font-weight: 740;
}
.packet-builder-section > summary > span {
  display: inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 11px;
  border:1px solid rgba(15,139,141,.22);
  border-radius:999px;
  background:rgba(15,139,141,.07);
  color:var(--teal,#007a80);
  font-size:.72rem;
  font-weight:950;
  white-space:nowrap;
}
.packet-builder-section-body {
  padding: 0 18px 18px;
  border-top: 1px solid rgba(203,213,225,.62);
}
.packet-builder-section-body > .packet-studio-panel {
  margin: 18px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
.packet-builder-sticky-action {
  position: sticky;
  bottom: 14px;
  z-index: 6;
  margin-top: 18px;
  backdrop-filter: blur(12px);
  background: rgba(255,255,255,.94) !important;
}
@media (max-width: 720px) {
  .packet-builder-section > summary { grid-template-columns:1fr; }
  .packet-builder-section > summary > span { width:max-content; }
  .packet-builder-sticky-action { position:static; }
}


/* Packet Builder summary-first interaction */
.packet-builder-section > summary {
  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;
}
.packet-builder-section > summary:hover {
  background: rgba(15,139,141,.035);
}
.packet-builder-section > summary:focus-visible {
  outline: 3px solid rgba(15,139,141,.18);
  outline-offset: -3px;
}
.packet-builder-section > summary > span {
  cursor: pointer;
}
.packet-builder-section:not([open]) > summary > span::after {
  content: " ->";
}
.packet-builder-section[open] > summary > span::after {
  content: " ^";
}
.packet-builder-section[open] .packet-missing-guidance {
  margin-top: 2px;
}
.packet-builder-section[open] .packet-field-missing {
  border-radius: 16px;
  padding: 10px;
  background: rgba(255,251,235,.78);
  box-shadow: inset 0 0 0 1px rgba(245,158,11,.24);
}
.packet-builder-section[open] .packet-field-missing input,
.packet-builder-section[open] .packet-field-missing select,
.packet-builder-section[open] .packet-field-missing textarea {
  border-color: rgba(217,119,6,.72) !important;
  box-shadow: 0 0 0 4px rgba(245,158,11,.11) !important;
}


/* Packet Builder readiness tones and persistent missing-field highlights */
.packet-builder-section > summary > span.is-warning {
  border-color: rgba(217,119,6,.30) !important;
  background: rgba(254,243,199,.84) !important;
  color: #92400e !important;
}
.packet-builder-section > summary > span.is-ready {
  border-color: rgba(15,139,141,.24) !important;
  background: rgba(204,251,241,.70) !important;
  color: #0f766e !important;
}
.packet-builder-section .packet-field-missing {
  border-radius: 16px;
  padding: 10px;
  background: rgba(255,251,235,.84);
  box-shadow: inset 0 0 0 1px rgba(245,158,11,.30);
}
.packet-builder-section .packet-field-missing .field-label {
  color: #92400e !important;
}
.packet-builder-section .packet-field-missing input,
.packet-builder-section .packet-field-missing select,
.packet-builder-section .packet-field-missing textarea {
  border-color: rgba(217,119,6,.78) !important;
  background: #fffdf7 !important;
  box-shadow: 0 0 0 4px rgba(245,158,11,.12) !important;
}
.packet-builder-section .packet-field-missing-copy {
  color: #92400e !important;
  font-weight: 850 !important;
}

/* Packet Studio benchmark dependencies */
.packet-studio-form label.is-disabled {
  opacity: 0.58;
}
.packet-studio-form label.is-disabled input,
.packet-studio-form label.is-disabled select {
  cursor: not-allowed;
}


/* --- Unified coach Packet Builder v2 --- */

.packet-coach-ask-athlete{display:inline-flex!important;align-items:center;gap:8px;margin:9px 0 0!important;color:#0f766e!important;font-size:.78rem!important;font-weight:900!important;text-transform:none!important;letter-spacing:0!important}
.packet-coach-ask-athlete input{width:17px!important;height:17px!important;margin:0!important;accent-color:#0f8b8d}
.packet-coach-request-composer{display:grid;gap:13px;margin-top:18px;padding:17px;border:1px solid rgba(15,139,141,.22);border-radius:18px;background:linear-gradient(135deg,rgba(240,253,250,.72),rgba(255,255,255,.96))}
.packet-coach-request-composer h3{margin:3px 0 0;color:#071331;font-size:1rem}
.packet-coach-request-composer p:not(.eyebrow){margin:5px 0 0;color:#64748b;font-size:.84rem;font-weight:720}
.packet-coach-request-composer label{margin:0}
.packet-coach-request-composer textarea{width:100%;min-height:86px}
.packet-coach-request-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.packet-coach-request-options label{display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid rgba(203,213,225,.82);border-radius:13px;background:#fff;color:#071331;font-size:.82rem;font-weight:850}
.packet-coach-request-options input{width:16px!important;height:16px!important;margin:0!important;accent-color:#0f8b8d}
.packet-coach-tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.packet-coach-tool-grid a{display:block;padding:14px;border:1px solid rgba(203,213,225,.82);border-radius:15px;background:#fff;text-decoration:none}
.packet-coach-tool-grid strong{display:block;color:#071331}.packet-coach-tool-grid small{display:block;margin-top:5px;color:#64748b;line-height:1.35}
@media(max-width:760px){.packet-coach-request-options,.packet-coach-tool-grid{grid-template-columns:1fr}}
/* --- End unified coach Packet Builder v2 --- */


/* --- Packet Studio field-level Ask Athlete controls v1 --- */
.packet-coach-request-toolbar {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  margin-bottom: 18px; padding: 14px 16px; border: 1px solid rgba(15,139,141,.22);
  border-radius: 18px; background: rgba(240,253,250,.58);
}
.packet-coach-request-toolbar strong { display:block; color:var(--navy,#071331); font-weight:950; }
.packet-coach-request-toolbar small { display:block; margin-top:4px; color:#64748b; font-weight:720; }
.packet-coach-request-toolbar > div:last-child { display:flex; gap:8px; flex-wrap:wrap; }
.packet-coach-field-stack { display:grid; gap:8px; align-content:start; }
.packet-coach-field-stack > label:first-child { margin:0; }
.packet-coach-field-request { margin:0 !important; min-height:42px; display:flex !important; align-items:center; gap:9px; padding:9px 11px; border:1px solid rgba(203,213,225,.82); border-radius:14px; background:#fff; color:#475569; cursor:pointer; }
.packet-coach-field-request input { width:auto; margin:0; accent-color:var(--teal,#007a80); }
.packet-coach-field-request > span { display:grid; gap:2px; }
.packet-coach-field-request strong { color:var(--navy,#071331); font-size:.82rem; line-height:1.1; }
.packet-coach-field-request small { color:#64748b; font-size:.72rem; line-height:1.15; font-weight:720; }
.packet-coach-field-request:has(input:checked) { border-color:rgba(15,139,141,.38); background:rgba(240,253,250,.82); box-shadow:inset 0 0 0 1px rgba(15,139,141,.06); }
.dashboard-requested-fields { margin-top:12px; padding:12px 14px; border:1px solid rgba(203,213,225,.72); border-radius:15px; background:rgba(248,250,252,.82); }
.dashboard-requested-fields > span { color:#64748b; font-size:.66rem; font-weight:950; letter-spacing:.09em; text-transform:uppercase; }
.dashboard-requested-fields ul { display:grid; gap:4px; margin:8px 0 0; padding-left:1.1rem; color:#1e293b; font-size:.88rem; font-weight:760; }
@media(max-width:760px){ .packet-coach-request-toolbar{align-items:stretch;flex-direction:column}.packet-coach-request-toolbar > div:last-child,.packet-coach-request-toolbar .button{width:100%} }
/* --- End Packet Studio field-level Ask Athlete controls v1 --- */


/* --- Packet Studio Ask Athlete icon controls v2 --- */
.packet-coach-icon-field {
  position: relative;
  min-width: 0;
}

.packet-coach-icon-field > label:first-child {
  padding-right: 42px !important;
}

.packet-coach-request-icon {
  position: absolute !important;
  top: 2px;
  right: 2px;
  z-index: 4;
  display: inline-grid !important;
  place-items: center;
  width: 34px;
  height: 34px;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  cursor: pointer;
}

.packet-coach-request-checkbox {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
}

.packet-coach-request-icon-button {
  display: grid;
  place-items: center;
  width: 31px;
  height: 31px;
  border: 1px solid rgba(148, 163, 184, .52);
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: #64748b;
  box-shadow: 0 5px 13px rgba(15,23,42,.055);
  transition: transform 120ms ease, color 120ms ease, border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
}

.packet-coach-request-icon-button svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.packet-coach-request-icon:hover .packet-coach-request-icon-button,
.packet-coach-request-icon:focus-within .packet-coach-request-icon-button {
  transform: translateY(-1px);
  border-color: rgba(15,139,141,.48);
  color: #0f766e;
  background: rgba(240,253,250,.98);
  box-shadow: 0 8px 18px rgba(15,139,141,.11);
}

.packet-coach-request-icon.is-selected .packet-coach-request-icon-button {
  border-color: #0f8b8d;
  background: #0f8b8d;
  color: #ffffff;
  box-shadow: 0 8px 18px rgba(15,139,141,.22);
}

.packet-coach-request-icon.is-selected .packet-coach-request-icon-button::after {
  content: "";
  position: absolute;
  right: -2px;
  bottom: -2px;
  display: grid;
  place-items: center;
  width: 14px;
  height: 14px;
  border: 2px solid #ffffff;
  border-radius: 999px;
  background: #071331;
  color: #ffffff;
  font-size: 8px;
  line-height: 1;
  font-weight: 950;
}

.packet-coach-request-tooltip {
  position: absolute;
  right: 0;
  bottom: calc(100% + 8px);
  width: max-content;
  max-width: 240px;
  padding: 7px 9px;
  border-radius: 9px;
  background: #071331;
  color: #ffffff;
  font-size: .72rem;
  line-height: 1.25;
  font-weight: 800;
  text-align: left;
  box-shadow: 0 10px 24px rgba(7,19,49,.18);
  opacity: 0;
  pointer-events: none;
  transform: translateY(3px);
  transition: opacity 120ms ease, transform 120ms ease;
}

.packet-coach-request-icon:hover .packet-coach-request-tooltip,
.packet-coach-request-icon:focus-within .packet-coach-request-tooltip {
  opacity: 1;
  transform: translateY(0);
}

.packet-coach-request-selection {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 11px;
  align-items: baseline;
  margin: -5px 0 15px;
  padding: 0 4px;
  color: #64748b;
}

.packet-coach-request-selection strong {
  color: #64748b;
  font-size: .76rem;
  font-weight: 950;
  white-space: nowrap;
}

.packet-coach-request-selection small {
  min-width: 0;
  overflow: hidden;
  color: #64748b;
  font-size: .76rem;
  line-height: 1.3;
  font-weight: 720;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.packet-coach-request-selection.has-selection strong {
  color: #0f766e;
}

.packet-coach-request-selection.has-selection small {
  color: #334155;
}

.packet-coach-composer-selected {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border: 1px solid rgba(15,139,141,.20);
  border-radius: 14px;
  background: rgba(240,253,250,.72);
}

.packet-coach-composer-selected strong {
  color: #0f766e;
  font-size: .82rem;
  font-weight: 950;
}

.packet-coach-composer-selected span {
  color: #334155;
  font-size: .82rem;
  line-height: 1.35;
  font-weight: 740;
}

/* The old card-style selectors are generated nowhere in v2. Keep them hidden
   defensively in case stale cached markup survives one development reload. */
.packet-coach-field-request,
.packet-coach-group-request,
.packet-coach-field-stack > .packet-coach-ask-athlete {
  display: none !important;
}

@media (max-width: 760px) {
  .packet-coach-request-selection {
    grid-template-columns: 1fr;
    gap: 3px;
  }
  .packet-coach-request-selection small {
    white-space: normal;
  }
  .packet-coach-request-tooltip {
    display: none;
  }
}
/* --- End Packet Studio Ask Athlete icon controls v2 --- */


/* --- Packet Studio Ask Athlete key + full-width controls v3 --- */
/* Keep the request icon in its own gutter without narrowing the actual input. */
.packet-coach-icon-field > label:first-child {
  padding-right: 0 !important;
}

.packet-coach-icon-field > label:first-child > .field-label {
  display: block;
  min-height: 31px;
  padding-right: 42px;
}

.packet-coach-icon-field > label:first-child > input,
.packet-coach-icon-field > label:first-child > select,
.packet-coach-icon-field > label:first-child > textarea {
  width: 100% !important;
  max-width: none !important;
}

.packet-coach-request-toolbar-copy {
  min-width: 0;
}

.packet-coach-request-toolbar-title {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.packet-coach-request-key {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 27px;
  padding: 0 9px 0 5px;
  border: 1px solid rgba(148,163,184,.42);
  border-radius: 999px;
  background: rgba(255,255,255,.78);
  color: #475569;
  font-size: .72rem;
  line-height: 1;
  font-weight: 850;
  white-space: nowrap;
}

.packet-coach-request-key-icon {
  display: grid;
  place-items: center;
  width: 23px;
  height: 23px;
  border: 1px solid rgba(148,163,184,.48);
  border-radius: 999px;
  background: #fff;
  color: #64748b;
}

.packet-coach-request-key-icon svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.packet-coach-request-toolbar-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

/* The two longest Recruit Profile selects get a little more breathing room. */
#packet-recruit-profile-form .packet-form-grid {
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 1.18fr);
}

#packet-field-target-level select,
#packet-field-target-program select {
  padding-right: 34px;
  font-size: .94rem;
}

@media (max-width: 760px) {
  .packet-coach-request-toolbar-title {
    align-items: flex-start;
    flex-direction: column;
    gap: 7px;
  }
  .packet-coach-request-key {
    width: fit-content;
  }
  #packet-recruit-profile-form .packet-form-grid {
    grid-template-columns: 1fr;
  }
}
/* --- End Packet Studio Ask Athlete key + full-width controls v3 --- */


/* --- Packet Studio Ask Athlete field-header alignment v4 --- */
/* Every requestable field uses the same header row. The icon is no longer
   positioned against the outer field wrapper, so all icons align with labels
   regardless of input type, helper text, or validation state. */
.packet-coach-icon-field {
  position: relative;
  min-width: 0;
}

.packet-coach-field-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 34px;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  margin: 0 0 6px;
}

.packet-coach-field-head > .field-label {
  min-width: 0;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  align-self: center;
}

.packet-coach-icon-field > label:first-of-type {
  display: block;
  margin-top: 0 !important;
  padding-right: 0 !important;
}

.packet-coach-icon-field > label:first-of-type > input,
.packet-coach-icon-field > label:first-of-type > select,
.packet-coach-icon-field > label:first-of-type > textarea {
  width: 100% !important;
  max-width: none !important;
  margin-top: 0 !important;
}

.packet-coach-field-head .packet-coach-request-icon {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  z-index: 4;
  justify-self: end;
  align-self: center;
  width: 34px;
  height: 34px;
  margin: 0 !important;
}

.packet-coach-field-head .packet-coach-request-tooltip {
  right: 0;
  bottom: calc(100% + 8px);
}

@media (max-width: 760px) {
  .packet-coach-field-head {
    grid-template-columns: minmax(0, 1fr) 34px;
  }
}
/* --- End Packet Studio Ask Athlete field-header alignment v4 --- */





/* ===== Athlete Evidence Share boundary polish v1 ===== */
.shared-commercial-shell .shared-coach-strip[aria-label="Coach access context"] .shared-access-point { min-height: 108px; }
.shared-commercial-shell #request-recruit-packet {
  border-color: rgba(15,139,141,.24);
  background: radial-gradient(circle at 96% 0%, rgba(15,139,141,.09), transparent 30%), rgba(255,255,255,.94);
}
.shared-commercial-shell #request-recruit-packet .subtle strong { color: #0f766e; }
@media (max-width: 980px) {
  .shared-commercial-shell .shared-coach-strip[aria-label="Coach access context"] .shared-access-point { min-height: 0; }
}
/* ===== End Athlete Evidence Share boundary polish v1 ===== */



/* --- Recruit Assist actionable summary cards v15 --- */


@media (max-width: 1100px) {
  .recruit-assist-summary-grid-four {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 720px) {
  .recruit-assist-summary-grid-four {
    grid-template-columns: 1fr !important;
  }
}
/* --- End Recruit Assist actionable summary cards v14 --- */


/* --- ErgScreen shared command cards v1 --- */
/*
  Canonical interaction contract for the coach Dashboard, Sessions, and
  Recruit Assist landing summary cards. Feature templates retain only their
  page-specific accent and content rules.
*/
.erg-command-grid {
  display: grid;
  gap: 10px;
}

.erg-command-card {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px 12px;
  min-height: 138px;
  padding: 17px 18px;
  border: 1px solid rgba(203, 213, 225, .78);
  border-radius: 23px;
  background: #ffffff;
  color: inherit;
  text-decoration: none;
  box-shadow: 0 15px 38px rgba(7, 19, 49, .055);
  transition:
    transform 150ms ease,
    border-color 150ms ease,
    box-shadow 150ms ease,
    background 150ms ease;
}

.erg-command-card:hover,
.erg-command-card:focus-visible {
  transform: translateY(-3px);
  border-color: rgba(15, 139, 141, .36);
  background: #ffffff;
  box-shadow: 0 22px 46px rgba(7, 19, 49, .11);
  text-decoration: none;
  outline: none;
}

.erg-command-card.is-selected {
  border-color: rgba(15, 139, 141, .44);
  background:
    radial-gradient(circle at 100% 0%, rgba(15, 139, 141, .10), transparent 34%),
    rgba(240, 253, 250, .76);
  box-shadow:
    inset 0 0 0 1px rgba(15, 139, 141, .08),
    0 16px 36px rgba(15, 139, 141, .09);
}

.erg-command-card.is-selected:hover,
.erg-command-card.is-selected:focus-visible {
  background:
    radial-gradient(circle at 100% 0%, rgba(15, 139, 141, .13), transparent 34%),
    rgba(240, 253, 250, .88);
  box-shadow:
    inset 0 0 0 1px rgba(15, 139, 141, .10),
    0 22px 46px rgba(15, 139, 141, .13);
}

.erg-command-card .erg-command-arrow {
  transition: transform 150ms ease;
}

.erg-command-card:hover .erg-command-arrow,
.erg-command-card:focus-visible .erg-command-arrow {
  transform: translateX(3px);
}

@media (prefers-reduced-motion: reduce) {
  .erg-command-card,
  .erg-command-card .erg-command-arrow {
    transition: none;
  }

  .erg-command-card:hover,
  .erg-command-card:focus-visible,
  .erg-command-card:hover .erg-command-arrow,
  .erg-command-card:focus-visible .erg-command-arrow {
    transform: none;
  }
}
/* --- End ErgScreen shared command cards v1 --- */




/* --- ErgScreen encoding-safe status icons v1 --- */
.processing-intro-kicker::before,
.report-ready-kicker::before,
.processing-timeline li.complete::before,
.pdf-export-status-step.is-complete::before,
.packet-coach-request-icon.is-selected .packet-coach-request-icon-button::after {
  content: "" !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3E%3Cpath d=%27M3.2 8.4 6.6 11.6 12.8 4.8%27 fill=%27none%27 stroke=%27white%27 stroke-width=%272.2%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 72% 72% !important;
}

/* Preserve each component's existing semantic background color. */
.processing-intro-kicker::before { background-color: #0f766e !important; }
.report-ready-kicker::before { background-color: #15803d !important; }
.processing-timeline li.complete::before { background-color: #0f766e !important; }
.pdf-export-status-step.is-complete::before { background-color: #0f766e !important; }
.packet-coach-request-icon.is-selected .packet-coach-request-icon-button::after { background-color: #071331 !important; }
/* --- End ErgScreen encoding-safe status icons v1 --- */


/* Packet Studio global CSS boundary v60.
   Outer shell, rail geometry, navigation rows, and active state are owned by
   app_layout.css and Packet Studio's page-level stylesheets. */
.packet-canonical-nav-row > .packet-canonical-nav-copy {
  width: 100%;
  min-width: 0;
  overflow-wrap: normal;
  word-break: normal;
}

.packet-canonical-nav-row > .packet-canonical-nav-chevron {
  width: auto;
  min-width: 0;
}
/* End Packet Studio global CSS boundary v60. */
