@import url("font-family.css?v=work-sans-1");
/* Shared typography roles retain their existing sizes, weights and colors. */

:root {
  --rpds-text-display: clamp(2rem, 1.5rem + 2vw, 3.25rem);
  --rpds-text-page: clamp(1.5rem, 1.25rem + .6vw, 1.875rem);
  --rpds-text-section: 1.25rem;
  --rpds-text-subsection: 1.125rem;
  --rpds-text-card: 1rem;
  --rpds-text-metric: clamp(1.5rem, 1.25rem + .5vw, 1.875rem);
  --rpds-text-body: .9375rem;
  --rpds-text-label: .875rem;
  --rpds-text-small: .8125rem;
  --rpds-text-helper: .875rem;
  --rpds-weight-regular: 400;
  --rpds-weight-medium: 500;
  --rpds-weight-semibold: 600;
  --rpds-weight-bold: 700;
  --rpds-leading-body: 1.55;
  --rpds-leading-heading: 1.3;
  --rpds-color-primary: #243142;
  --rpds-color-secondary: #475569;
  --rpds-color-muted: #586579;
  --rpds-color-accent: #43551e;
  --bs-body-color: var(--rpds-color-primary);
  --bs-secondary-color: var(--rpds-color-secondary);
  --bs-body-font-size: var(--rpds-text-body);
  --bs-body-line-height: 1.55;
}
body { font-size: var(--rpds-text-body); line-height: var(--rpds-leading-body); font-weight: var(--rpds-weight-regular); color: var(--rpds-color-primary); }
pre, code, kbd, samp { font-variant-numeric: tabular-nums; line-height: 1.5; }
strong, b { font-weight: var(--rpds-weight-semibold); }
h1, h2, h3, h4, h5, h6 { font-weight: var(--rpds-weight-semibold); line-height: 1.3; letter-spacing: -.015em; overflow-wrap: break-word; }
h1 { font-size: var(--rpds-text-page); font-weight: var(--rpds-weight-bold); }
h2, h3 { font-size: var(--rpds-text-section); }
h4, h5, h6, .card-title { font-size: var(--rpds-text-card); }
p { line-height: 1.55; }
small, .small, .form-text { font-size: var(--rpds-text-helper); line-height: 1.5; }
.text-muted, .text-secondary { color: var(--rpds-color-secondary) !important; }
.form-text, .form-control::placeholder { color: var(--rpds-color-muted); opacity: 1; }
label, .form-label, .col-form-label { font-size: var(--rpds-text-label); font-weight: var(--rpds-weight-medium); line-height: 1.4; }
.form-control, .form-select { font-size: var(--rpds-text-body); line-height: 1.5; font-weight: var(--rpds-weight-regular); }
.form-control::placeholder { font-weight: var(--rpds-weight-regular); }
.btn, .gb-mini-btn, .gb-button, .gb-action-btn, .gb-btn, .gb-mini-primary, .btn-rpds { font-size: var(--rpds-text-label); font-weight: var(--rpds-weight-semibold); line-height: 1.4; letter-spacing: 0; white-space: normal; }
.btn-sm { font-size: var(--rpds-text-label); }
.navbar .nav-link, .dropdown-menu .dropdown-item, .nav-tabs .nav-link { font-size: var(--rpds-text-body); font-weight: var(--rpds-weight-medium); line-height: 1.4; }
.navbar-brand { font-size: 1.25rem; letter-spacing: -.02em; }
.table, table.dataframe { font-size: var(--rpds-text-label); line-height: 1.45; font-variant-numeric: tabular-nums; }
.table th, table.dataframe th { font-weight: var(--rpds-weight-semibold); vertical-align: middle; }
.table td, table.dataframe td { vertical-align: middle; }
.table th, .table td { padding-top: .625rem; padding-bottom: .625rem; }
.badge { font-size: var(--rpds-text-small); font-weight: var(--rpds-weight-semibold); line-height: 1.35; letter-spacing: .01em; white-space: normal; }
.alert { font-size: var(--rpds-text-body); line-height: 1.5; }
.modal-title { font-size: var(--rpds-text-section); font-weight: var(--rpds-weight-semibold); }
.modal-body, .popover-body, .tooltip-inner { font-size: var(--rpds-text-helper); line-height: 1.5; }
.modal-body { font-size: var(--rpds-text-body); }
.popover-header { font-size: var(--rpds-text-label); font-weight: var(--rpds-weight-semibold); }

/* Semantic roles, including the existing workflow title normalization. */
.rpds-page-title, .gb-title, #regression-content .reg-page-title,
.eda-title, .tuning-title, .clean-title, .interp-title, .viz-hero-title,
.kinetic-hero h1, .kinetic-page-title { font-size: var(--rpds-text-page); font-weight: var(--rpds-weight-bold); line-height: 1.2; letter-spacing: -.025em; margin-bottom: .5rem; }
.rpds-section-title, main .section-title, .gb-section-title { font-size: var(--rpds-text-section); font-weight: var(--rpds-weight-semibold); line-height: 1.3; letter-spacing: -.015em; }
.rpds-subsection-title { font-size: var(--rpds-text-subsection); font-weight: var(--rpds-weight-semibold); line-height: var(--rpds-leading-heading); }
.rpds-card-title, .gb-card h5, .gb-card h6, .gb-stats-page .gb-card h6,
#regression-content h5:not(.reg-page-title), #regression-content h6 { font-size: var(--rpds-text-card); font-weight: var(--rpds-weight-semibold); line-height: 1.35; letter-spacing: -.01em; }
#regression-content h5.section-title { font-size: var(--rpds-text-section); line-height: 1.3; }
.gb-subtitle, #regression-content .reg-page-subtitle, .eda-subtitle, .tuning-subtitle,
.clean-subtitle, .interp-subtitle, .viz-hero-subtitle { font-size: var(--rpds-text-body); font-weight: var(--rpds-weight-regular); line-height: 1.55; letter-spacing: 0; }
.rpds-kpi, .gb-kpi-value, .gb-metric-value, .metric-value, .stat-value,
.eda-stat-value, .eda-stat b, .tuning-stat-value, .split-stat-value,
#profile-summary .h4 { font-size: var(--rpds-text-metric); font-weight: var(--rpds-weight-semibold); line-height: 1.2; letter-spacing: -.025em; font-variant-numeric: tabular-nums; }
.gb-merged-flow .gb-hero-stat strong { font-size: 1.125rem; font-weight: var(--rpds-weight-semibold); line-height: 1.35; letter-spacing: -.01em; overflow-wrap: anywhere; }
.gb-merged-flow .gb-hero-stat .label { font-size: var(--rpds-text-small); font-weight: var(--rpds-weight-medium); line-height: 1.4; letter-spacing: .04em; }
.eda-section-title, .reactor-title { font-size: var(--rpds-text-card); font-weight: var(--rpds-weight-semibold); line-height: 1.35; }
.plot-title, .eda-card-header { font-size: var(--rpds-text-card); font-weight: var(--rpds-weight-semibold); line-height: 1.35; }
.predict-metrics .badge { font-size: 1rem; font-weight: var(--rpds-weight-semibold); line-height: 1.4; font-variant-numeric: tabular-nums; }
.info-text, .meta-pill, .split-stat-label { font-size: var(--rpds-text-small); line-height: 1.5; font-weight: var(--rpds-weight-regular); }
.kinetic-hero p, .reactor-desc { font-size: var(--rpds-text-body); line-height: 1.55; }
.kinetic-footnote { font-size: var(--rpds-text-small); }
#paramsOut { font-size: var(--rpds-text-body); font-weight: var(--rpds-weight-semibold); line-height: 1.6; font-variant-numeric: tabular-nums; white-space: pre-wrap; }
.gb-inline-metrics strong, .feature-variation-chip b, .gb-stats-summary-chip,
.gb-deviation-summary strong { font-weight: var(--rpds-weight-semibold); font-variant-numeric: tabular-nums; }
.gb-hero-stat-label, .gb-step-meta, .gb-tag, .reg-dataset-label,
.reg-sidebar-subtitle, .reg-nav-section { font-size: var(--rpds-text-small); font-weight: var(--rpds-weight-medium); line-height: 1.4; letter-spacing: .04em; }
.gb-workspace-hint, .gb-workspace-status, .gb-step-caption, .gb-help-text,
.gb-stats-page .gb-dl-toolbar .gb-mini-btn { font-size: var(--rpds-text-label); line-height: 1.45; }
.gb-stats-page .form-select { font-size: var(--rpds-text-body); font-weight: var(--rpds-weight-medium); }
.gb-stats-page #featureVariationTable th, .gb-stats-page #featureVariationTable td { font-size: var(--rpds-text-label); }
#rpds-sidebar .list-group-item { font-size: var(--rpds-text-body); font-weight: var(--rpds-weight-medium); line-height: 1.4; }
#rpds-sidebar .list-group-item.active { font-weight: var(--rpds-weight-semibold); }
.reg-sidebar-title { font-size: 1rem; font-weight: var(--rpds-weight-semibold); line-height: 1.35; letter-spacing: -.01em; }
.reg-dataset-name { font-size: var(--rpds-text-label); font-weight: var(--rpds-weight-semibold); overflow-wrap: anywhere; }
.reg-nav-section { white-space: normal; }
footer { font-size: var(--rpds-text-small); line-height: 1.5; }
footer h5, footer h6 { font-size: var(--rpds-text-label); font-weight: var(--rpds-weight-semibold); }
.hero-title, .rpds-display-title { font-size: var(--rpds-text-display); font-weight: var(--rpds-weight-bold); line-height: 1.15; letter-spacing: -.035em; }
.hero-subtitle { font-size: 1.125rem; line-height: 1.55; }
.rpds-ai-title { font-size: 1rem; font-weight: var(--rpds-weight-semibold); }
.rpds-ai-subtitle, .rpds-ai-footnote, .rpds-ai-quick-label, .rpds-ai-helper { font-size: var(--rpds-text-helper); line-height: 1.45; }
.rpds-ai-message, .rpds-ai-input, .rpds-ai-quick-list .rpds-ai-quick-btn { font-size: var(--rpds-text-label); line-height: 1.5; }
.rpds-ai-quick-title { font-size: var(--rpds-text-small); font-weight: var(--rpds-weight-medium); line-height: 1.45; }
#regression-content #tab-summary .table th, #regression-content #tab-summary .table td { font-size: var(--rpds-text-label); text-align: right; }
#regression-content #tab-summary .table thead th { font-size: var(--rpds-text-label); font-weight: var(--rpds-weight-semibold); letter-spacing: 0; }
#regression-content #tab-summary .table th:nth-child(-n+2), #regression-content #tab-summary .table td:nth-child(-n+2) { text-align: left; white-space: normal; min-width: 9rem; }
/* Instructions are working content; reserve the caption role for metadata. */
.rpds-body { font-size: var(--rpds-text-body); line-height: var(--rpds-leading-body); }
.rpds-label, .rpds-variable-name, .gb-field-label { font-size: var(--rpds-text-body); font-weight: var(--rpds-weight-medium); line-height: 1.4; color: var(--rpds-color-primary); }
.rpds-helper, .gb-field-help, .gb-hero-caption, .gb-step-hint, .gb-block-note,
.gb-quick-guide-item, .gb-plot-toolbar .hint, .upload-dropzone .hint,
.gb-step-caption, .gb-help-text, .reactor-desc { font-size: var(--rpds-text-helper); line-height: 1.5; color: var(--rpds-color-secondary); }
.rpds-caption, .rpds-metadata { font-size: var(--rpds-text-small); line-height: 1.5; color: var(--rpds-color-muted); }
.gb-flow-step h6 { font-size: var(--rpds-text-section); font-weight: var(--rpds-weight-semibold); line-height: 1.3; }
.gb-live-node .meta b { font-size: var(--rpds-text-body); font-weight: var(--rpds-weight-semibold); line-height: 1.4; }
.gb-live-node .meta small, .gb-live-tag, .gb-inline-chip, .gb-summary-chip,
.gb-merged-pill, .gb-badge { font-size: var(--rpds-text-small); line-height: 1.45; }
.gb-live-node .num { font-size: var(--rpds-text-label); font-weight: var(--rpds-weight-semibold); }
.gb-inline-chip, .gb-summary-chip, .gb-merged-pill, .gb-badge { overflow-wrap: anywhere; }
.gb-workspace-hint, .gb-workspace-status, .gb-step-meta { color: var(--rpds-color-secondary); }
.upload-dropzone .file-name { font-size: var(--rpds-text-body); font-weight: var(--rpds-weight-medium); overflow-wrap: anywhere; }
.text-brand-green { color: var(--rpds-color-accent) !important; }
.handsontable, .handsontable td, .handsontable th { font-size: var(--rpds-text-label); color: var(--rpds-color-primary); }
.handsontable th .colHeader { line-height: 1.4; }
.gb-matrix-table, .gb-deviation-table { font-size: var(--rpds-text-label); font-variant-numeric: tabular-nums; }
.gb-matrix-table th, .gb-deviation-table th { font-weight: var(--rpds-weight-semibold); }
.gb-compare-option, .col-chip { font-size: var(--rpds-text-label); }
.gb-inline-alert, .gb-status-box { font-size: var(--rpds-text-helper); line-height: 1.5; }
.gb-workspace-btn { font-size: var(--rpds-text-label); line-height: 1.4; }
.gb-merged-flow .gb-quick-guide-title { font-size: var(--rpds-text-card); font-weight: var(--rpds-weight-semibold); line-height: var(--rpds-leading-heading); }
/* Button colors and states belong to the existing theme/page styles. */
.text-brand-yellow { color: #765a09 !important; }
.reactor-title { color: var(--rpds-color-accent); }
fieldset > legend { font-size: var(--rpds-text-section); font-weight: var(--rpds-weight-semibold); line-height: 1.3; }
#rpds-sidebar .small { font-size: var(--rpds-text-small); line-height: 1.5; }
/* Plotly computes text extents from its layout; typography.js sets those fonts. */
/* Apply the same bold text to native selects and the site's dropdown menus. */
select, select option, select optgroup, .form-select,
.dropdown-toggle, .dropdown-item,
[role="combobox"], [role="option"], [aria-haspopup="listbox"],
.gb-compare-trigger-copy strong, .gb-compare-trigger-copy small,
.htDropdownMenu td, .htDropdownMenu .htItemWrapper,
.htDropdownMenu label, .htDropdownMenu button, .htDropdownMenu input {
  font-weight: var(--rpds-weight-bold) !important;
}
@media (max-width: 575.98px) {
  :root { --rpds-text-section: 1.125rem; }
  .hero-subtitle { font-size: 1rem; }
  .navbar .nav-link { line-height: 1.5; }
}
