/* ==================== css/lab-stats.css ====================
 * Embryology Lab Statistics (Tab 113) — screen styles
 * Design language: deep navy + gold accent + serif headings, generous whitespace
 * Print-specific overrides live in lab-stats-print.css
 */

#labStatsView {
    /* Page background — soft off-white for parchment-like feel */
    background: #f8fafc;
    min-height: 100%;
}

/* Design tokens. Also scoped to .lab-stats-export-overlay because that dialog
   is appended to <body> (outside .lab-stats-root); without this, every
   var(--ls-*) inside it resolves to nothing — most visibly the primary button's
   background collapses to transparent (white text on white, only appearing on
   hover where the bg is hard-coded #142844). */
.lab-stats-root,
.lab-stats-export-overlay {
    --ls-navy:     #1e3a5f;
    --ls-gold:     #c4985e;
    --ls-success:  #5b8a72;
    --ls-danger:   #b45c5c;
    --ls-warn:     #c08938;
    /* Muted outcome palette for the transfer card — tuned to sit quietly next
       to the tonal-slate funnel rather than shout. */
    --ls-preg:     #6f8f7e;  /* sage — pregnant */
    --ls-notpreg:  #b08a8a;  /* dusty rose — not pregnant */
    --ls-pending:  #94a3b8;  /* slate — no result yet */
    --ls-text:     #0f172a;
    --ls-text-sub: #475569;
    --ls-muted:    #94a3b8;
    --ls-border:   #e2e8f0;
    --ls-card-bg:  #ffffff;
    --ls-bg-tint:  #f8fafc;
}

.lab-stats-root {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: var(--ls-text);
    max-width: 1500px;
    margin: 0 auto;
    padding: 24px 32px 48px;
    font-variant-numeric: tabular-nums;
}

/* ==================== Top bar ==================== */
/* Matches the .lab-stats-audit-toolbar shell below — same compact look. */
.lab-stats-topbar {
    background: var(--ls-card-bg);
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    padding: 10px 14px;
    margin-bottom: 28px;
}

.lab-stats-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: flex-end;
}

.lab-stats-filter-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.lab-stats-filter-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ls-muted);
    font-weight: 600;
}

.lab-stats-select,
.lab-stats-input {
    background: #fff;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    padding: 8px 12px;
    font-size: 13px;
    color: var(--ls-text);
    font-family: inherit;
    min-width: 140px;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.lab-stats-select:focus,
.lab-stats-input:focus {
    outline: none;
    border-color: var(--ls-navy);
    box-shadow: 0 0 0 3px rgba(30, 58, 95, 0.1);
}

.lab-stats-custom-dates {
    flex-direction: row;
    align-items: center;
    gap: 8px;
}
.lab-stats-dash { color: var(--ls-muted); }

.lab-stats-checkbox-group {
    flex-direction: row;
    gap: 16px;
    align-items: center;
}
.lab-stats-checkbox-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--ls-text-sub);
    cursor: pointer;
}
.lab-stats-checkbox-label input[type="checkbox"] {
    accent-color: var(--ls-navy);
    width: 15px;
    height: 15px;
}

.lab-stats-export-group {
    display: inline-flex;
    align-items: flex-end;
}

.lab-stats-btn-primary {
    background: var(--ls-navy);
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 9px 18px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: inherit;
    transition: background 0.15s, transform 0.05s;
}
.lab-stats-btn-primary:hover { background: #142844; }
.lab-stats-btn-primary:active { transform: translateY(1px); }

.lab-stats-btn-secondary {
    background: #fff;
    color: var(--ls-text-sub);
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    padding: 9px 18px;
    font-size: 13px;
    cursor: pointer;
    font-family: inherit;
}
.lab-stats-btn-secondary:hover { background: var(--ls-bg-tint); }

/* ==================== Header ==================== */
.lab-stats-header {
    margin-bottom: 28px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--ls-border);
}
.lab-stats-title-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 24px;
    flex-wrap: wrap;
}
.lab-stats-title-block {
    flex: 1 1 auto;
    min-width: 280px;
}
.lab-stats-title {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 22px;
    font-weight: 600;
    margin: 0 0 4px;
    color: var(--ls-navy);
    letter-spacing: -0.01em;
}
.lab-stats-subtitle {
    font-size: 12px;
    color: var(--ls-text-sub);
    margin: 0;
    letter-spacing: 0.01em;
}
/* Toolbar in the right of the header row — matches the audit toolbar look */
.lab-stats-header-toolbar {
    display: flex;
    align-items: flex-end;
    gap: 14px;
    flex-wrap: wrap;
    background: var(--ls-card-bg);
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    padding: 10px 14px;
}
.lab-stats-header-toolbar .lab-stats-filter-label {
    font-size: 9.5px;
}
.lab-stats-header-toolbar .lab-stats-select,
.lab-stats-header-toolbar .lab-stats-input {
    min-width: 150px;
    font-size: 12px;
    padding: 6px 10px;
}
.lab-stats-header-toolbar .lab-stats-btn-primary {
    padding: 7px 14px;
    font-size: 12px;
}
/* Legacy logo block — hidden (logo moved out of header per 2026-05-21 spec) */
.lab-stats-brand,
.lab-stats-logo {
    display: none;
}

/* ==================== Sections ==================== */
.lab-stats-section {
    margin-bottom: 32px;
}
.lab-stats-section-title {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 13px;
    font-weight: 600;
    margin: 0 0 14px;
    color: var(--ls-text-sub);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.lab-stats-subsection-title {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 12px;
    font-weight: 600;
    margin: 18px 0 10px;
    color: var(--ls-navy);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

/* ==================== KPI cards ==================== */
.lab-stats-kpi-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 18px;
}
/* PGT Normal Rate hidden (short window) → 4 cards fill the row evenly. */
.lab-stats-kpi-grid--4 {
    grid-template-columns: repeat(4, 1fr);
}
@media (max-width: 1280px) {
    .lab-stats-kpi-grid { grid-template-columns: repeat(3, 1fr); }
    .lab-stats-kpi-grid--4 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 700px) {
    .lab-stats-kpi-grid { grid-template-columns: repeat(2, 1fr); }
    .lab-stats-kpi-grid--4 { grid-template-columns: repeat(2, 1fr); }
}

.lab-stats-kpi-card {
    background: var(--ls-card-bg);
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    padding: 16px 18px;
    text-align: left;
    transition: box-shadow 0.15s, border-color 0.15s;
}
.lab-stats-kpi-card:hover {
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
    border-color: #cbd5e1;
}
.lab-stats-kpi-label {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
    color: var(--ls-muted);
    margin-bottom: 10px;
    line-height: 1.4;
    min-height: 28px;
}
.lab-stats-kpi-value {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 26px;
    font-weight: 600;
    color: var(--ls-navy);
    line-height: 1.1;
    margin-bottom: 4px;
    letter-spacing: -0.02em;
}
.lab-stats-kpi-denom {
    font-size: 11px;
    color: var(--ls-muted);
    font-variant-numeric: tabular-nums;
}

/* ==================== Totals grid ==================== */
.lab-stats-totals-grid {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 1px;
    background: var(--ls-border);
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    overflow: hidden;
}
@media (max-width: 1400px) {
    .lab-stats-totals-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 700px) {
    .lab-stats-totals-grid { grid-template-columns: repeat(2, 1fr); }
}

.lab-stats-total-cell {
    padding: 14px 16px;
    background: var(--ls-card-bg);
    border: none;
}
.lab-stats-total-label {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ls-muted);
    font-weight: 600;
    margin-bottom: 6px;
    line-height: 1.3;
}
.lab-stats-total-value {
    font-size: 18px;
    font-weight: 600;
    color: var(--ls-text);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    letter-spacing: -0.01em;
}
.lab-stats-total-hint {
    font-size: 10.5px;
    color: var(--ls-muted);
    margin-top: 4px;
    line-height: 1.4;
}

/* ==================== Charts ==================== */
.lab-stats-charts-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
@media (max-width: 1280px) {
    .lab-stats-charts-grid { grid-template-columns: 1fr; }
}

.lab-stats-chart-card {
    background: var(--ls-card-bg);
    border: 1px solid var(--ls-border);
    border-radius: 10px;
    padding: 22px;
    display: flex;
    flex-direction: column;
}
.lab-stats-chart-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--ls-text-sub);
    margin-bottom: 16px;
    letter-spacing: 0.02em;
}
.lab-stats-chart-wrap {
    position: relative;
    height: 260px;
    width: 100%;
}

/* ==================== Agency table ==================== */
.lab-stats-agency-table-wrap {
    background: var(--ls-card-bg);
    border: 1px solid var(--ls-border);
    border-radius: 10px;
    overflow: auto;
}
.lab-stats-agency-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.lab-stats-agency-table th,
.lab-stats-agency-table td {
    padding: 12px 14px;
    text-align: right;
    border-bottom: 1px solid var(--ls-border);
    white-space: nowrap;
}
.lab-stats-agency-table th {
    background: var(--ls-bg-tint);
    color: var(--ls-text-sub);
    font-weight: 600;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 2px solid var(--ls-border);
}
.lab-stats-agency-table .lab-stats-th-agency {
    text-align: left;
    color: var(--ls-text);
    min-width: 200px;
}
.lab-stats-agency-row:hover {
    background: var(--ls-bg-tint);
}
.lab-stats-totals-row {
    background: var(--ls-bg-tint);
}
.lab-stats-totals-row td {
    border-top: 2px solid var(--ls-navy);
    border-bottom: none;
    color: var(--ls-text);
}
.lab-stats-expand-btn {
    background: none;
    border: none;
    cursor: pointer;
    font-family: inherit;
    font-size: inherit;
    color: var(--ls-text);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0;
    text-align: left;
}
.lab-stats-expand-icon {
    color: var(--ls-muted);
    font-size: 12px;
    width: 12px;
    display: inline-block;
}
.lab-stats-expand-btn:hover .lab-stats-expand-icon {
    color: var(--ls-navy);
}

.lab-stats-agency-detail-row td {
    background: var(--ls-bg-tint);
    padding: 0;
}
.lab-stats-detail-block {
    padding: 18px 22px;
}
.lab-stats-detail-rates {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 14px;
    padding-bottom: 12px;
    border-bottom: 1px dashed var(--ls-border);
    font-size: 12px;
    color: var(--ls-text-sub);
}
.lab-stats-detail-rates strong { color: var(--ls-text); font-weight: 600; }

.lab-stats-detail-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
    background: var(--ls-card-bg);
    border-radius: 6px;
    overflow: hidden;
}
.lab-stats-detail-table th,
.lab-stats-detail-table td {
    padding: 8px 12px;
    text-align: right;
    border-bottom: 1px solid var(--ls-border);
}
.lab-stats-detail-table th {
    background: var(--ls-card-bg);
    font-size: 10px;
    text-transform: uppercase;
    color: var(--ls-muted);
    font-weight: 600;
    letter-spacing: 0.05em;
}
.lab-stats-detail-table th:first-child,
.lab-stats-detail-table td:first-child,
.lab-stats-detail-table th:nth-child(2),
.lab-stats-detail-table td:nth-child(2),
.lab-stats-detail-table th:nth-child(3),
.lab-stats-detail-table td:nth-child(3),
.lab-stats-detail-table th:nth-child(4),
.lab-stats-detail-table td:nth-child(4) {
    text-align: left;
}
.lab-stats-detail-row-main.has-supplement {
    background: rgba(196, 152, 94, 0.06);
}
.lab-stats-detail-row-member td {
    color: var(--ls-muted);
    font-style: italic;
}

.lab-stats-supplement-badge {
    display: inline-block;
    background: var(--ls-gold);
    color: #fff;
    font-size: 10px;
    padding: 2px 7px;
    border-radius: 10px;
    font-weight: 600;
    letter-spacing: 0.04em;
    margin-left: 8px;
    text-transform: uppercase;
}

/* ==================== Audit blocks ==================== */
.lab-stats-audit-block {
    background: var(--ls-card-bg);
    border: 1px solid var(--ls-border);
    border-left-width: 4px;
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 14px;
}
.lab-stats-audit-danger { border-left-color: var(--ls-danger); }
.lab-stats-audit-warn   { border-left-color: var(--ls-warn); }

.lab-stats-audit-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}
.lab-stats-audit-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--ls-danger);
    display: inline-block;
}
.lab-stats-audit-warn .lab-stats-audit-dot { background: var(--ls-warn); }
.lab-stats-audit-title {
    font-weight: 600;
    color: var(--ls-text);
    font-size: 13px;
}
.lab-stats-audit-count {
    margin-left: auto;
    background: var(--ls-bg-tint);
    color: var(--ls-text-sub);
    font-size: 12px;
    padding: 2px 10px;
    border-radius: 12px;
    font-weight: 600;
}
.lab-stats-audit-list {
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 12.5px;
    color: var(--ls-text-sub);
}
.lab-stats-audit-list li {
    padding: 6px 0;
    border-bottom: 1px dashed var(--ls-border);
}
.lab-stats-audit-list li:last-child {
    border-bottom: none;
}

.lab-stats-audit-clean {
    background: var(--ls-card-bg);
    border: 1px solid var(--ls-border);
    border-left: 4px solid var(--ls-success);
    border-radius: 8px;
    padding: 18px 22px;
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--ls-text);
    font-size: 14px;
    font-weight: 500;
}
.lab-stats-audit-clean-icon {
    color: var(--ls-success);
    font-size: 18px;
    font-weight: 700;
}

/* ==================== Audit table (per-agency, single table) ==================== */
.lab-stats-audit-table-wrap {
    background: var(--ls-card-bg);
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    overflow: auto;
}
.lab-stats-audit-table {
    width: 100%;
}
.lab-stats-audit-table th[title] {
    cursor: help;
}
.lab-stats-audit-cell-flag {
    color: var(--ls-danger);
    font-weight: 600;
    background: rgba(180, 92, 92, 0.06);
}
.lab-stats-audit-cell-zero {
    color: var(--ls-muted);
}
.lab-stats-audit-note {
    margin-top: 12px;
    padding: 12px 16px;
    background: rgba(192, 137, 56, 0.08);
    border: 1px solid rgba(192, 137, 56, 0.3);
    border-left: 3px solid var(--ls-warn);
    border-radius: 6px;
    font-size: 12.5px;
    color: var(--ls-text-sub);
    display: flex;
    gap: 10px;
    align-items: flex-start;
}
.lab-stats-audit-note-icon {
    color: var(--ls-warn);
    font-weight: 700;
}
.lab-stats-audit-conflict-item {
    display: inline-block;
    margin-right: 8px;
    padding: 1px 8px;
    background: #fff;
    border-radius: 4px;
    font-family: 'Inter', monospace;
    font-size: 11px;
    color: var(--ls-text);
}

.lab-stats-empty,
.lab-stats-empty-inline {
    color: var(--ls-muted);
    text-align: center;
    padding: 40px 20px;
    font-style: italic;
    background: var(--ls-card-bg);
    border: 1px dashed var(--ls-border);
    border-radius: 8px;
}
.lab-stats-empty-inline {
    padding: 12px;
}

/* ==================== Methodology ==================== */
.lab-stats-section-methodology {
    margin-top: 48px;
    padding-top: 28px;
    border-top: 1px solid var(--ls-border);
}
.lab-stats-method-list {
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--ls-text-sub);
    font-size: 12px;
}
.lab-stats-method-list li {
    padding: 6px 0 6px 22px;
    position: relative;
    line-height: 1.6;
}
.lab-stats-method-list li::before {
    content: '◦';
    position: absolute;
    left: 4px;
    top: 5px;
    color: var(--ls-gold);
    font-weight: 700;
}

/* ==================== Export modal ==================== */
.lab-stats-export-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.4);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(2px);
}
.lab-stats-export-dialog {
    background: #fff;
    border-radius: 10px;
    padding: 28px 32px;
    min-width: 420px;
    max-width: 480px;
    box-shadow: 0 10px 40px rgba(15, 23, 42, 0.2);
    font-family: 'Inter', sans-serif;
}
.lab-stats-export-dialog h3 {
    margin: 0 0 22px;
    font-family: 'Inter', sans-serif;
    font-size: 18px;
    font-weight: 600;
    color: var(--ls-navy);
}
.lab-stats-export-row {
    margin-bottom: 18px;
}
.lab-stats-export-row > label {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--ls-muted);
    margin-bottom: 8px;
    font-weight: 600;
}
.lab-stats-export-row select {
    width: 100%;
    background: #fff;
    border: 1px solid var(--ls-border);
    border-radius: 6px;
    padding: 9px 12px;
    font-size: 14px;
    font-family: inherit;
}
.lab-stats-export-radio-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.lab-stats-export-radio {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-size: 14px;
    color: var(--ls-text);
}
.lab-stats-export-radio input[type="radio"] {
    accent-color: var(--ls-navy);
    width: 16px;
    height: 16px;
}
.lab-stats-export-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid var(--ls-border);
}

/* ==================== Lab Outcome Analysis (Funnel + Donut) ==================== */
.lab-stats-outcome-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr);
    gap: 20px;
}
/* When the PGT donut is hidden (short window), the funnel spans full width. */
.lab-stats-outcome-grid--single {
    grid-template-columns: 1fr;
}
@media (max-width: 1100px) {
    .lab-stats-outcome-grid { grid-template-columns: 1fr; }
}
.lab-stats-chart-subtitle {
    font-size: 11px;
    color: var(--ls-muted);
    margin: -8px 0 14px;
    letter-spacing: 0.02em;
}
.lab-stats-chart-wrap-tall {
    height: 380px;
}
.lab-stats-card-funnel .lab-stats-chart-wrap-tall {
    /* Fewer bars now (the transfer cohort moved to its own card), so a shorter
       canvas keeps the bars from looking sparse. */
    height: 360px;
}
.lab-stats-card-donut .lab-stats-chart-wrap {
    height: 320px;
}

/* ==================== Transfer cohort card ==================== */
/* Full-width strip below the funnel: a Transferred stat + a segmented
   pregnancy-outcome bar with legend. */
.lab-stats-transfer-card {
    margin-top: 20px;
}
.lab-stats-transfer-body {
    display: flex;
    align-items: center;
    gap: 28px;
}
.lab-stats-transfer-stat {
    flex: 0 0 auto;
    padding-right: 28px;
    border-right: 1px solid var(--ls-border);
    text-align: left;
}
.lab-stats-transfer-stat-value {
    font-size: 30px;
    font-weight: 600;
    color: var(--ls-text);
    line-height: 1;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}
.lab-stats-transfer-stat-label {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
    color: var(--ls-muted);
    margin-top: 8px;
}
.lab-stats-transfer-outcome {
    flex: 1 1 auto;
    min-width: 0;
}
.lab-stats-transfer-bar {
    display: flex;
    height: 26px;
    border-radius: 6px;
    overflow: hidden;
    background: var(--ls-bg-tint);
    border: 1px solid var(--ls-border);
}
.lab-stats-transfer-seg {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    overflow: hidden;
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.lab-stats-transfer-seg.is-preg    { background: var(--ls-preg); }
.lab-stats-transfer-seg.is-notpreg { background: var(--ls-notpreg); }
.lab-stats-transfer-seg.is-pending { background: var(--ls-pending); }
.lab-stats-transfer-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin-top: 10px;
    font-size: 11.5px;
    color: var(--ls-text-sub);
    font-variant-numeric: tabular-nums;
}
.lab-stats-transfer-leg-item {
    display: inline-flex;
    align-items: center;
}
.lab-stats-transfer-leg-item i {
    width: 10px;
    height: 10px;
    border-radius: 2px;
    margin-right: 6px;
    flex: 0 0 auto;
}
.lab-stats-transfer-leg-item i.is-preg    { background: var(--ls-preg); }
.lab-stats-transfer-leg-item i.is-notpreg { background: var(--ls-notpreg); }
.lab-stats-transfer-leg-item i.is-pending { background: var(--ls-pending); }
@media (max-width: 700px) {
    .lab-stats-transfer-body { flex-direction: column; align-items: stretch; gap: 16px; }
    .lab-stats-transfer-stat {
        border-right: none;
        border-bottom: 1px solid var(--ls-border);
        padding: 0 0 14px;
    }
}
/* Full-width adaptive trend curve (Blastulation & Fertilization Dynamics) */
.lab-stats-card-trend {
    margin-top: 20px;
}
.lab-stats-chart-wrap-trend {
    height: 340px;
}

/* In-progress banner (top-of-page + inline above audit) */
.lab-stats-inprogress-banner {
    margin-top: 14px;
    padding: 10px 16px;
    background: rgba(192, 137, 56, 0.10);
    border: 1px solid rgba(192, 137, 56, 0.35);
    border-left: 3px solid var(--ls-warn);
    border-radius: 6px;
    font-size: 12.5px;
    color: var(--ls-text);
    font-weight: 500;
    letter-spacing: 0.01em;
}
.lab-stats-inprogress-banner-inline {
    margin-bottom: 14px;
}

/* ==================== Agency Audit section (per-case list) ==================== */
.lab-stats-audit-header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}
.lab-stats-audit-toolbar {
    display: flex;
    align-items: flex-end;
    gap: 16px;
    flex-wrap: wrap;
    background: var(--ls-card-bg);
    padding: 10px 14px;
    border: 1px solid var(--ls-border);
    border-radius: 8px;
}
.lab-stats-audit-toolbar .lab-stats-filter-label,
.lab-stats-topbar .lab-stats-filter-label {
    font-size: 9.5px;
}
.lab-stats-audit-toolbar .lab-stats-select,
.lab-stats-audit-toolbar .lab-stats-input,
.lab-stats-topbar .lab-stats-select,
.lab-stats-topbar .lab-stats-input {
    min-width: 130px;
    font-size: 12px;
    padding: 6px 10px;
}
.lab-stats-topbar .lab-stats-checkbox-label {
    font-size: 12px;
}
.lab-stats-audit-toolbar .lab-stats-btn-secondary,
.lab-stats-topbar .lab-stats-btn-secondary {
    background: var(--ls-card-bg);
    color: var(--ls-navy);
    border-color: var(--ls-navy);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    padding: 7px 14px;
}
.lab-stats-audit-toolbar .lab-stats-btn-secondary:hover,
.lab-stats-topbar .lab-stats-btn-secondary:hover {
    background: var(--ls-bg-tint);
}

.lab-stats-audit-context {
    font-size: 12px;
    color: var(--ls-text-sub);
    margin-bottom: 10px;
    padding-left: 2px;
}
.lab-stats-audit-context strong {
    color: var(--ls-text);
    font-weight: 600;
}

.lab-stats-audit-truncated {
    background: rgba(192, 137, 56, 0.08);
    border: 1px solid rgba(192, 137, 56, 0.3);
    border-radius: 6px;
    padding: 8px 14px;
    margin-bottom: 10px;
    font-size: 12px;
    color: var(--ls-text-sub);
}

.lab-stats-case-audit-table-wrap {
    background: var(--ls-card-bg);
    border: 1px solid var(--ls-border);
    border-radius: 8px;
    overflow: auto;
}
.lab-stats-case-audit-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
}
.lab-stats-case-audit-table th,
.lab-stats-case-audit-table td {
    padding: 10px 12px;
    text-align: right;
    border-bottom: 1px solid var(--ls-border);
    white-space: nowrap;
}
.lab-stats-case-audit-table th {
    background: var(--ls-bg-tint);
    color: var(--ls-text-sub);
    font-weight: 600;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 2px solid var(--ls-border);
}
.lab-stats-case-audit-table th:nth-child(-n+5),
.lab-stats-case-audit-table td:nth-child(-n+5) {
    text-align: left;
}
.lab-stats-case-audit-table tr:hover {
    background: var(--ls-bg-tint);
}
.lab-stats-case-audit-table .lab-stats-totals-row {
    background: var(--ls-bg-tint);
}
.lab-stats-case-audit-table .lab-stats-totals-row td {
    border-top: 2px solid var(--ls-navy);
    border-bottom: none;
    color: var(--ls-text);
    font-weight: 600;
}
.lab-stats-case-audit-table .lab-stats-totals-row:hover {
    background: var(--ls-bg-tint);
}
/* Footnote lives as a block element AFTER the table (not a colspan <td>):
 * a colspan cell's width depends on the layout engine summing the spanned
 * column widths, which is fragile across render contexts. A block div always
 * fills the wrap's full width and wraps text naturally. */
.lab-stats-table-footnote {
    padding: 10px 12px;
    text-align: left;
    white-space: normal;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.5;
    color: var(--ls-text-sub);
    border-top: 1px solid var(--ls-border);
}
.lab-stats-case-id {
    font-family: 'SF Mono', Menlo, Consolas, monospace;
    font-size: 11px;
    color: var(--ls-text-sub);
}
.lab-stats-status-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.lab-stats-status-done {
    background: rgba(91, 138, 114, 0.12);
    color: var(--ls-success);
}
.lab-stats-status-progress {
    background: rgba(192, 137, 56, 0.12);
    color: var(--ls-warn);
}
.lab-stats-status-pending {
    background: rgba(148, 163, 184, 0.12);
    color: var(--ls-muted);
}

/* Small attribution on screen (right-aligned, hidden in print where the
 * per-page print-footer takes over). */
.lab-stats-screen-footer {
    margin-top: 40px;
    padding-top: 14px;
    border-top: 1px solid var(--ls-border);
    text-align: right;
    font-size: 10px;
    color: var(--ls-muted);
    letter-spacing: 0.12em;
    text-transform: lowercase;
    font-weight: 500;
}

/* ==================== Print-only elements (hidden on screen) ==================== */
/* Print cover is hidden on the normal screen view; revealed only during PDF
 * export (body.lab-stats-printing). The cover lives at the top of the captured
 * region so html2pdf renders it as the document header on page 1. */
.lab-stats-print-cover,
.lab-stats-print-footer {
    display: none;
}

/* ===== PDF-export-time cover (visible while body.lab-stats-printing) =====
 * Compact one-strip layout: title block on the left, small Vita mark on the
 * right, hairline rule underneath. Sized to fit alongside KPI cards on the
 * first PDF page rather than occupying a dedicated cover page. */
body.lab-stats-printing .no-print { display: none !important; }
body.lab-stats-printing .lab-stats-print-cover {
    display: block;
    padding: 0 0 14px 0;
    margin: 0 0 18px 0;
    border-bottom: 1px solid #c4985e;
}
body.lab-stats-printing .lab-stats-cover-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
body.lab-stats-printing .lab-stats-cover-text {
    flex: 1 1 auto;
    min-width: 0;
}
body.lab-stats-printing .lab-stats-cover-title {
    font-family: 'Inter', -apple-system, sans-serif;
    font-size: 22pt;
    font-weight: 600;
    color: var(--ls-navy);
    margin: 0 0 4px 0;
    letter-spacing: -0.01em;
    line-height: 1.15;
}
body.lab-stats-printing .lab-stats-cover-subtitle {
    font-size: 10pt;
    color: var(--ls-text-sub);
    margin: 0 0 8px 0;
    letter-spacing: 0.03em;
}
body.lab-stats-printing .lab-stats-cover-meta {
    font-size: 9pt;
    color: var(--ls-text-sub);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
}
body.lab-stats-printing .lab-stats-cover-meta-key {
    color: #94a3b8;
    font-size: 7.5pt;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-right: 6px;
}
body.lab-stats-printing .lab-stats-cover-meta-sep {
    color: #cbd5e1;
}
body.lab-stats-printing .lab-stats-cover-brand {
    flex: 0 0 auto;
}
body.lab-stats-printing .lab-stats-cover-logo {
    height: 56px;
    width: auto;
    display: block;
}
/* Screen H1 / subtitle are redundant during export — cover already shows them. */
body.lab-stats-printing .lab-stats-header { display: none !important; }

/* Audit-only print mode: hide everything except the audit section.
 * Applied via body class when the user clicks the audit Export PDF button. */
body.lab-stats-printing-audit .lab-stats-section[data-section="rates"],
body.lab-stats-printing-audit .lab-stats-section[data-section="outcome"],
body.lab-stats-printing-audit .lab-stats-section[data-section="agency-perf"],
body.lab-stats-printing-audit .lab-stats-section[data-section="methodology"],
body.lab-stats-printing-audit .lab-stats-header,
body.lab-stats-printing-audit .lab-stats-print-cover,
body.lab-stats-printing-audit > .lab-stats-inprogress-banner,
body.lab-stats-printing-audit .lab-stats-root > .lab-stats-inprogress-banner:not(.lab-stats-inprogress-banner-inline) {
    display: none !important;
}
