/* RAPID-iNose design system
   Breakpoints: compact <= 680px, navigation <= 900px, wide >= 1200px.
   Icons are decorative by default. Meaningful icons require an accessible label. */
:root {
  color-scheme: dark;

  /* NanoBioFAB color system */
  --nbf-black: #090c12;
  --nbf-surface: #111722;
  --nbf-surface-raised: #172132;
  --nbf-surface-overlay: #1d293b;
  --nbf-primary: #0868df;
  --nbf-primary-hover: #075abc;
  --nbf-secondary: #63d7ff;
  --nbf-focus: #8be4ff;
  --nbf-text: #e8edf5;
  --nbf-heading: #ffffff;
  --nbf-muted: #adb8c8;
  --nbf-border: #52627a;
  --nbf-border-soft: #303b4d;
  --nbf-success: #42dfa0;
  --nbf-success-surface: #0f2b23;
  --nbf-warning: #ffc45c;
  --nbf-warning-surface: #302310;
  --nbf-danger: #ff8795;
  --nbf-danger-surface: #32171e;
  --nbf-info-surface: #0d2340;

  /* Typography */
  --font-sans: Inter, "Segoe UI", Arial, sans-serif;
  --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.375rem;
  --text-2xl: clamp(1.75rem, 3vw, 2.5rem);
  --text-3xl: clamp(2.15rem, 5vw, 4rem);
  --leading-tight: 1.18;
  --leading-normal: 1.6;
  --readable-width: 76ch;
  --content-width: 1480px;

  /* Spacing */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;

  /* Shape and elevation */
  --radius-sm: 0.25rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.875rem;
  --radius-pill: 999px;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.32);
  --shadow-md: 0 14px 34px rgba(0, 0, 0, 0.24);
  --transition-fast: 150ms ease;

  /* Semantic aliases used by the public playground components. */
  --color-border: var(--nbf-border-soft);
  --color-border-strong: var(--nbf-border);
  --color-surface: var(--nbf-surface);
  --color-surface-subtle: var(--nbf-surface-overlay);
  --color-accent: var(--surface-accent, var(--nbf-primary));
  --color-accent-strong: var(--nbf-primary);
  --color-accent-soft: var(--nbf-info-surface);
  --color-text: var(--nbf-heading);
  --color-text-muted: var(--nbf-muted);
  --font-size-xs: var(--text-xs);
  --font-size-sm: var(--text-sm);
  --font-size-md: var(--text-lg);
  --font-size-lg: var(--text-xl);
}

/* GC-MS evidence atlas --------------------------------------------------- */
.gcms-study-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
  margin: 0 0 1rem;
}

.gcms-study-card {
  display: flex;
  min-height: 8.25rem;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 1.1rem;
  border: 1px solid var(--border, #ccd9e5);
  border-radius: 0.8rem;
  background: #fff;
  color: var(--ink, #10213b);
  text-decoration: none;
  box-shadow: 0 8px 24px rgb(22 49 79 / 5%);
}

.gcms-study-card:hover,
.gcms-study-card:focus-visible,
.gcms-study-card.is-active {
  border-color: #0087a8;
  box-shadow: 0 0 0 2px rgb(0 135 168 / 13%);
}

.gcms-study-card strong { font-size: 1.08rem; line-height: 1.25; }
.gcms-study-card small { margin-top: auto; color: #53677f; line-height: 1.4; }
.gcms-card-method,
.gcms-card-panel,
.gcms-card-limitation { color: #60758b; font-size: 0.72rem; line-height: 1.35; }
.gcms-card-panel { padding-top: 0.45rem; border-top: 1px solid #e3ebf2; font-weight: 700; }
.gcms-card-limitation { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }

.record-status-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.6rem;
}

.gcms-unit-chip {
  display: inline-flex;
  padding: 0.38rem 0.62rem;
  border: 1px solid #b5c9d9;
  border-radius: 999px;
  background: #f5f9fc;
  color: #334d68;
  font-size: 0.78rem;
  font-weight: 700;
}

.gcms-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
  margin-top: 1rem;
}

.gcms-stat-grid > div {
  min-width: 0;
  padding: 0.8rem 0.9rem;
  border-left: 3px solid #00a2b8;
  background: #f4f8fb;
}

.gcms-stat-grid strong,
.gcms-stat-grid span { display: block; overflow-wrap: anywhere; }
.gcms-stat-grid strong { color: #10213b; font-size: 1.1rem; }
.gcms-stat-grid span { margin-top: 0.2rem; color: #63748a; font-size: 0.78rem; }

.gcms-filter-grid {
  display: grid;
  grid-template-columns: 1.25fr 1fr 1.25fr auto;
  align-items: end;
  gap: 0.75rem;
}
.gcms-method-line { margin: 0.9rem 0 0; color: #52667e; font-size: 0.9rem; }
.gcms-method-line span { display: inline-block; margin-left: 0.5rem; }
.gcms-advanced-filters { grid-column: 1 / -1; border-top: 1px solid #dce6ef; padding-top: 0.65rem; }
.gcms-advanced-filters > summary { color: #34516e; cursor: pointer; font-size: 0.82rem; font-weight: 750; }
.gcms-advanced-filter-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.75rem; padding-top: 0.75rem; }

.gcms-heatmap-section { overflow: hidden; }
.gcms-heatmap-scroll { overflow-x: auto; padding-bottom: 0.45rem; }
.gcms-heatmap-table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 3px; }
.gcms-heatmap-table th,
.gcms-heatmap-table td { border: 0; }
.gcms-heatmap-table thead th {
  width: 6.6rem;
  max-width: 6.6rem;
  padding: 0.55rem 0.35rem;
  color: #233b58;
  font-size: 0.72rem;
  line-height: 1.25;
  text-align: center;
  vertical-align: bottom;
}

.gcms-heatmap-table thead th:first-child {
  position: sticky;
  left: 0;
  z-index: 3;
  width: 15rem;
  max-width: 15rem;
  padding-left: 0.65rem;
  background: #fff;
  text-align: left;
}

.gcms-heatmap-table thead th a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.gcms-heatmap-table thead th small,
.gcms-heatmap-table tbody th small { display: block; margin-top: 0.25rem; color: #697a8f; font-size: 0.66rem; font-weight: 500; }
.gcms-heatmap-table tbody th {
  position: sticky;
  left: 0;
  z-index: 2;
  width: 15rem;
  max-width: 15rem;
  padding: 0.6rem 0.65rem;
  border-radius: 0.35rem;
  background: #f5f8fb;
  color: #162e4b;
  font-size: 0.78rem;
  line-height: 1.25;
  text-align: left;
}

.gcms-heatmap-table tbody tr.is-control th { border-left: 3px dashed #e0841c; background: #fff8ed; }
.gcms-heat-cell {
  min-width: 6.6rem;
  height: 3.35rem;
  border-radius: 0.35rem;
  color: #0e3042;
  font-size: 0.78rem;
  text-align: center;
}

.gcms-heat-cell strong { font-variant-numeric: tabular-nums; }
.gcms-cell-evidence { position: relative; }
.gcms-cell-evidence > summary { align-items: center; cursor: pointer; display: flex; justify-content: center; min-height: 3rem; list-style: none; padding: 0.3rem; }
.gcms-cell-evidence > summary::-webkit-details-marker { display: none; }
.gcms-cell-evidence > summary:focus-visible { outline: 3px solid #005fcc; outline-offset: -3px; }
.gcms-cell-popover { background: #fff; border: 1px solid #9fb3c7; border-radius: 0.45rem; box-shadow: 0 12px 30px rgb(16 33 59 / 18%); color: #1d3653; font-size: 0.75rem; line-height: 1.35; padding: 0.75rem; text-align: left; width: 15rem; }
.gcms-cell-popover > strong,
.gcms-cell-popover > span { display: block; }
.gcms-cell-popover > span { color: #60758b; margin: 0.15rem 0 0.5rem; }
.gcms-cell-popover dl { margin: 0; }
.gcms-cell-popover dl div { border-top: 1px solid #e2eaf1; display: grid; gap: 0.4rem; grid-template-columns: 5rem 1fr; padding: 0.3rem 0; }
.gcms-cell-popover dt { color: #667b91; font-weight: 700; }
.gcms-cell-popover dd { margin: 0; overflow-wrap: anywhere; }
.gcms-cell-popover p { margin: 0.5rem 0 0; }
.gcms-cell-button { background: transparent; border: 0; color: inherit; cursor: pointer; font: inherit; height: 100%; min-height: 3rem; padding: 0.3rem; width: 100%; }
.gcms-cell-button:focus-visible { outline: 3px solid #005fcc; outline-offset: -3px; }
.gcms-cell-dialog { border: 1px solid #9fb3c7; border-radius: 0.65rem; box-shadow: 0 20px 70px rgb(16 33 59 / 28%); color: #1d3653; max-width: min(34rem, calc(100vw - 2rem)); padding: 1.25rem; width: 100%; }
.gcms-cell-dialog::backdrop { background: rgb(12 28 48 / 45%); }
.gcms-cell-dialog > form { float: right; }
.gcms-cell-dialog > form button { align-items: center; background: #f0f5f8; border: 1px solid #c8d6e2; border-radius: 50%; color: #29435f; display: inline-flex; font-size: 1.25rem; height: 2rem; justify-content: center; padding: 0; width: 2rem; }
.gcms-cell-dialog h3 { margin-bottom: 0.2rem; }
.gcms-cell-dialog > p:not(.eyebrow) { color: #60758b; margin-top: 0; }
.gcms-cell-dialog > a { display: inline-block; font-weight: 750; margin-top: 0.8rem; }
.gcms-heat-0 { background: #edf2f6; color: #68798b; }
.gcms-heat-1 { background: #e8f7f5; }
.gcms-heat-2 { background: #c9eee9; }
.gcms-heat-3 { background: #94ddd4; }
.gcms-heat-4 { background: #55c5bb; }
.gcms-heat-5 { background: #1ca99e; color: #082e36; }
.gcms-heat-6 { background: #087f7c; color: #fff; }
.gcms-heat-7 { background: #07575d; color: #fff; }

.gcms-legend { display: inline-flex; align-items: center; gap: 0.25rem; color: #586c82; font-size: 0.75rem; }
.gcms-legend i { width: 1.15rem; height: 0.72rem; border-radius: 0.2rem; }
.gcms-missing-key { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 0.8rem; color: #5c6f84; font-size: 0.78rem; }
.gcms-missing-key b { display: inline-grid; min-width: 2rem; place-items: center; margin-right: 0.2rem; border-radius: 0.2rem; background: #edf2f6; color: #324d69; }

.gcms-evidence-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.gcms-evidence-grid > .content-section,
.gcms-evidence-grid > article { margin: 0; min-width: 0; }
.gcms-evidence-grid code,
.gcms-definition-list code { overflow-wrap: anywhere; }
.gcms-definition-list { margin: 0; }
.gcms-definition-list > div { display: grid; grid-template-columns: minmax(6rem, 0.8fr) minmax(0, 1.4fr); gap: 0.75rem; padding: 0.55rem 0; border-bottom: 1px solid #e4ebf1; }
.gcms-definition-list dt { color: #61758b; font-size: 0.78rem; font-weight: 700; }
.gcms-definition-list dd { margin: 0; color: #1d3653; overflow-wrap: anywhere; }
.gcms-definition-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.25rem; }
.record-back-link { margin: 0 0 1rem; }

.gcms-profile-bars { display: grid; gap: 0.9rem; }
.gcms-profile-bars article > div:first-child { display: flex; justify-content: space-between; gap: 1rem; font-size: 0.88rem; }
.gcms-profile-bars small { color: #697b8f; }
.gcms-bar-track { height: 0.58rem; margin: 0.32rem 0; overflow: hidden; border-radius: 999px; background: #e7eef4; }
.gcms-bar-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #00a8b8, #07575d); }
.gcms-bar-track.negative i { background: linear-gradient(90deg, #e6a24f, #b55f1b); }
.gcms-metric-tabs { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 0.65rem; }
.gcms-metric-tabs a { background: #f4f8fb; border: 1px solid #c8d6e2; border-radius: 99px; color: #34516e; font-size: 0.75rem; font-weight: 750; padding: 0.4rem 0.7rem; text-decoration: none; }
.gcms-metric-tabs a.is-active { background: #087f7c; border-color: #087f7c; color: #fff; }

.gcms-study-comparison { margin-top: 1rem; }
.gcms-zimmer-facets { display: grid; gap: 0.85rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gcms-zimmer-facets > article { border: 1px solid #d7e2ec; border-radius: 0.55rem; min-width: 0; padding: 1rem; }
.gcms-zimmer-facets h3,
.gcms-zimmer-facets p { margin: 0 0 0.5rem; }
.gcms-zimmer-facets > article > p { color: #64778c; font-size: 0.78rem; }
.gcms-dumbbell-list { display: grid; gap: 0.8rem; }
.gcms-dumbbell-row > a,
.gcms-dumbbell-row > small { display: block; }
.gcms-dumbbell-row > a { color: #163b65; font-size: 0.8rem; font-weight: 750; }
.gcms-dumbbell-row > small { color: #60758b; font-size: 0.68rem; line-height: 1.35; margin-top: 0.25rem; }
.gcms-dumbbell { background: #dce6ef; height: 2px; margin: 0.65rem 0.35rem 0.45rem; position: relative; }
.gcms-dumbbell i,
.gcms-dumbbell b { border: 2px solid #fff; border-radius: 50%; height: 0.7rem; position: absolute; top: 50%; transform: translate(-50%, -50%); width: 0.7rem; }
.gcms-dumbbell i { background: #e18b2d; }
.gcms-dumbbell b { background: #087f7c; }
.gcms-source-class-grid { display: grid; gap: 0.65rem; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); margin-top: 1rem; }
.gcms-source-class-grid > div { background: #f4f8fb; border-left: 3px solid #00a2b8; padding: 0.75rem; }
.gcms-source-class-grid strong,
.gcms-source-class-grid span { display: block; }
.gcms-source-class-grid strong { color: #10213b; font-size: 1.25rem; }
.gcms-source-class-grid span { color: #61758b; font-size: 0.78rem; }

/* GC-MS pheatmap-style matrix: mVOCs in rows, individual profiles in columns. */
.gcms-study-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gcms-study-card { min-height: 6.5rem; }
.gcms-pheatmap-filter-grid { grid-template-columns: minmax(14rem, 1.25fr) minmax(11rem, 0.85fr) minmax(15rem, 1.2fr) auto; }
.gcms-pheatmap-heading { align-items: flex-start; }
.gcms-pheatmap-heading > div:first-child > p:last-child { color: #60758b; font-size: 0.85rem; margin: 0.35rem 0 0; }
.gcms-pheatmap-scale { flex: 0 0 auto; margin-top: 0.4rem; }
.gcms-annotation-legend { align-items: center; border-bottom: 1px solid #dbe5ed; display: flex; flex-wrap: wrap; gap: 0.45rem 0.9rem; margin: 0.5rem 0 0.8rem; padding-bottom: 0.7rem; }
.gcms-annotation-legend > strong { color: #253d59; font-size: 0.76rem; }
.gcms-annotation-legend > span { align-items: center; color: #5b6f84; display: inline-flex; font-size: 0.72rem; gap: 0.3rem; }
.gcms-annotation-legend i { border-radius: 0.12rem; display: inline-block; height: 0.72rem; width: 0.9rem; }
.gcms-annotation-1 { background: #4c78a8 !important; }
.gcms-annotation-2 { background: #e45756 !important; }
.gcms-annotation-3 { background: #59a14f !important; }
.gcms-annotation-4 { background: #f28e2b !important; }
.gcms-annotation-5 { background: #b279a2 !important; }
.gcms-annotation-6 { background: #76b7b2 !important; }
.gcms-annotation-7 { background: #edc949 !important; }
.gcms-annotation-8 { background: #9c755f !important; }
.gcms-annotation-9 { background: #bab0ac !important; }
.gcms-annotation-10 { background: #17becf !important; }
.gcms-annotation-11 { background: #bcbd22 !important; }
.gcms-annotation-12 { background: #ff9da7 !important; }
.gcms-pheatmap-scroll { border: 1px solid #d8e2eb; border-radius: 0.4rem; max-height: 72rem; overflow: auto; }
.gcms-pheatmap-table { border-spacing: 1px; min-width: 100%; table-layout: fixed; }
.gcms-pheatmap-table thead th:first-child,
.gcms-pheatmap-table tbody th { box-shadow: 2px 0 0 rgb(255 255 255 / 90%); width: 17rem; max-width: 17rem; min-width: 17rem; }
.gcms-pheatmap-table tbody th { font-size: 0.74rem; padding: 0.32rem 0.55rem; }
.gcms-pheatmap-table tbody th small { margin-top: 0.12rem; }
.gcms-pheatmap-table thead th:not(:first-child) { min-width: 1.28rem; padding: 0; width: 1.28rem; max-width: 1.28rem; }
.gcms-profile-annotation-row th { height: 0.8rem; }
.gcms-profile-annotation-row th:first-child { color: #5b6e83; font-size: 0.68rem; padding: 0.15rem 0.55rem; }
.gcms-profile-annotation-row th:not(:first-child).is-control { box-shadow: inset 2px 0 0 #7d4b16; }
.gcms-profile-label-row { height: 10.5rem; }
.gcms-profile-label-row th { vertical-align: bottom; }
.gcms-profile-label-row th:not(:first-child) > a,
.gcms-profile-label-row th:not(:first-child) > span { color: #243b56; display: inline-flex; font-size: 0.64rem; line-height: 1.05; max-height: 9.8rem; padding: 0.35rem 0.08rem; text-decoration: none; writing-mode: vertical-rl; }
.gcms-profile-label-row th:not(:first-child) > a { align-items: center; }
.gcms-profile-label-row th:not(:first-child) small { color: #718297; display: inline; font-size: 0.56rem; margin: 0.35rem 0 0; }
.gcms-profile-label-row th:not(:first-child).is-control { border-left: 2px dashed #c87821; }
.gcms-pheat-cell { border-radius: 0; height: 1.08rem; min-width: 1.28rem; padding: 0; width: 1.28rem; }
.gcms-pheat-cell.is-control { box-shadow: inset 2px 0 0 rgb(116 71 21 / 70%); }
.gcms-pheat-cell .gcms-cell-button { min-height: 1.08rem; padding: 0; }
.gcms-scale-diverging.gcms-heat-1 { background: #3b4cc0; }
.gcms-scale-diverging.gcms-heat-2 { background: #7597d2; }
.gcms-scale-diverging.gcms-heat-3 { background: #b7cfe8; }
.gcms-scale-diverging.gcms-heat-4 { background: #f7f7f2; }
.gcms-scale-diverging.gcms-heat-5 { background: #f3b17e; }
.gcms-scale-diverging.gcms-heat-6 { background: #df654a; }
.gcms-scale-diverging.gcms-heat-7 { background: #b40426; }
.gcms-scale-sequential.gcms-heat-1 { background: #e8f7f5; }
.gcms-scale-sequential.gcms-heat-2 { background: #c9eee9; }
.gcms-scale-sequential.gcms-heat-3 { background: #94ddd4; }
.gcms-scale-sequential.gcms-heat-4 { background: #55c5bb; }
.gcms-scale-sequential.gcms-heat-5 { background: #1ca99e; }
.gcms-scale-sequential.gcms-heat-6 { background: #087f7c; }
.gcms-scale-sequential.gcms-heat-7 { background: #07575d; }
.gcms-pheat-cell.gcms-heat-0 { background: repeating-linear-gradient(135deg, #edf2f6 0, #edf2f6 3px, #dce4eb 3px, #dce4eb 5px); }
.gcms-heatmap-instructions { color: #60758a; font-size: 0.8rem; margin: 0 0 0.65rem; }
.gcms-canvas-scroll { background: #fff; max-height: min(72rem, 72vh); position: relative; }
.gcms-canvas-scroll canvas { display: block; max-width: none; }
.gcms-canvas-scroll canvas:focus-visible { outline: 3px solid #005fcc; outline-offset: -3px; }
.gcms-pheatmap-tooltip { background: #10213b; border-radius: 0.35rem; box-shadow: 0 8px 24px rgb(16 33 59 / 22%); color: #fff; font-size: 0.75rem; line-height: 1.35; max-width: 19rem; padding: 0.5rem 0.65rem; pointer-events: none; position: fixed; z-index: 30; }
.gcms-pheatmap-selection { background: #f5f8fb; border: 1px solid #d7e2eb; border-radius: 0.45rem; display: grid; gap: 1px; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 0.75rem; overflow: hidden; }
.gcms-pheatmap-selection > div { background: #fff; min-width: 0; padding: 0.65rem 0.75rem; }
.gcms-pheatmap-selection span,
.gcms-pheatmap-selection strong { display: block; overflow-wrap: anywhere; }
.gcms-pheatmap-selection span { color: #65788d; font-size: 0.66rem; font-weight: 700; text-transform: uppercase; }
.gcms-pheatmap-selection strong { color: #183450; font-size: 0.78rem; margin-top: 0.2rem; }
.gcms-pheatmap-selection .gcms-pheatmap-selection-links { align-items: flex-start; display: flex; flex-direction: column; gap: 0.35rem; grid-column: 1 / -1; }
.gcms-pheatmap-selection-links a { font-size: 0.76rem; font-weight: 750; }
.gcms-heatmap-notes { padding: 0; }
.gcms-heatmap-notes > summary { cursor: pointer; font-weight: 750; padding: 1rem 1.2rem; }
.gcms-heatmap-note-grid { border-top: 1px solid #dce6ee; display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 1rem 1.2rem; }
.gcms-heatmap-note-grid strong { color: #183450; }
.gcms-heatmap-note-grid p { color: #60758a; font-size: 0.82rem; margin: 0.25rem 0 0; }
.gcms-heatmap-note-grid code { overflow-wrap: anywhere; }

@media (max-width: 1100px) {
  .gcms-filter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gcms-pheatmap-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gcms-pheatmap-selection { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gcms-evidence-grid { grid-template-columns: 1fr 1fr; }
  .gcms-zimmer-facets { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .gcms-study-strip,
  .gcms-stat-grid,
  .gcms-evidence-grid,
  .gcms-heatmap-note-grid,
  .gcms-definition-grid { grid-template-columns: 1fr; }
  .gcms-filter-grid,
  .gcms-pheatmap-filter-grid { grid-template-columns: 1fr; }
  .gcms-advanced-filter-grid,
  .record-status-stack { align-items: flex-start; }
  .gcms-heatmap-table thead th:first-child,
  .gcms-heatmap-table tbody th { width: 11rem; max-width: 11rem; }
  .gcms-pheatmap-heading { display: block; }
  .gcms-pheatmap-scale { margin-top: 0.8rem; }
  .gcms-pheatmap-selection { grid-template-columns: 1fr 1fr; }
}

/* Client playground: heatmap-first module navigation and progressive disclosure. */
.playground-intro {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0 0 var(--space-6);
  overflow: hidden;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-border);
}

.playground-intro > div {
  display: grid;
  grid-template-columns: 2.25rem 1fr;
  gap: 0 var(--space-3);
  min-height: 7rem;
  padding: var(--space-5);
  background: var(--color-surface);
}

.playground-intro span {
  grid-row: 1 / span 2;
  display: grid;
  width: 2.25rem;
  height: 2.25rem;
  place-items: center;
  border-radius: 50%;
  background: var(--color-accent-soft);
  color: var(--color-accent-strong);
  font-weight: 800;
}

.playground-intro strong {
  align-self: end;
  color: var(--color-text);
  font-size: var(--font-size-md);
}

.playground-intro small {
  margin-top: 0.25rem;
  color: var(--color-text-muted);
  line-height: 1.45;
}

.playground-filter-panel {
  border-top: 4px solid var(--color-accent);
}

.status-badge.status-caution {
  display: inline-flex;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  background: var(--nbf-warning-surface);
  color: var(--nbf-warning);
  font-size: var(--text-xs);
  font-weight: 800;
}

.playground-filter-form {
  display: flex;
  align-items: end;
  gap: var(--space-4);
  flex-wrap: wrap;
}

.playground-filter-form .form-field {
  min-width: 15rem;
  margin: 0;
}

.playground-filter-form .playground-search-field {
  flex: 1 1 20rem;
}

.playground-filter-form button,
.playground-filter-form .button-link {
  min-height: 2.75rem;
}

.playground-method-note {
  margin: var(--space-4) 0 0;
  padding: var(--space-3) var(--space-4);
  border-left: 4px solid var(--color-accent);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  background: var(--color-accent-soft);
  color: var(--color-text-muted);
}

.heatmap-scroll {
  overflow: auto;
  max-height: min(68vh, 52rem);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
}

.playground-heatmap {
  width: 100%;
  min-width: 44rem;
  border-collapse: separate;
  border-spacing: 0.28rem;
  table-layout: fixed;
}

.playground-heatmap th,
.playground-heatmap td {
  border: 0;
}

.playground-heatmap thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  padding: 0.75rem 0.55rem;
  background: var(--color-surface);
  color: var(--color-text-muted);
  text-align: center;
  font-size: var(--font-size-sm);
}

.playground-heatmap thead th:first-child {
  left: 0;
  z-index: 4;
  width: 18rem;
  text-align: left;
}

.playground-heatmap thead small,
.playground-heatmap tbody th small,
.heat-cell small {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.72rem;
  font-weight: 600;
}

.playground-heatmap tbody th {
  position: sticky;
  left: 0;
  z-index: 2;
  padding: 0.65rem 0.7rem;
  background: var(--color-surface);
  text-align: left;
  line-height: 1.25;
}

.playground-heatmap tbody th a,
.playground-heatmap tbody th strong {
  display: block;
  color: var(--color-text);
  font-weight: 750;
}

.playground-heatmap tbody th small {
  color: var(--color-text-muted);
}

.heat-cell {
  min-width: 7rem;
  height: 4.35rem;
  padding: 0;
  border-radius: var(--radius-sm);
  text-align: center;
  transition: transform 120ms ease, box-shadow 120ms ease;
}

.heat-cell:hover,
.heat-cell:focus-within {
  z-index: 1;
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgb(15 23 42 / 0.18);
}

.heat-cell > a,
.heat-cell > span {
  display: grid;
  width: 100%;
  height: 100%;
  min-height: 4.35rem;
  padding: 0.55rem;
  place-content: center;
  color: inherit;
  text-decoration: none;
}

.heat-cell strong {
  font-size: var(--font-size-md);
}

.heat-level-0,
.heat-cell.is-empty {
  background: var(--color-surface-subtle);
  color: var(--color-text-muted);
}

.heat-level-1 { background: #d9f5f1; color: #123a39; }
.heat-level-2 { background: #9ce3d8; color: #123a39; }
.heat-level-3 { background: #4fc8b8; color: #062f2d; }
.heat-level-4 { background: #128c84; color: #fff; }
.heat-level-5 { background: #075e5a; color: #fff; }

.heatmap-scale {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  color: var(--color-text-muted);
  font-size: var(--font-size-xs);
}

.heatmap-scale i {
  display: block;
  width: 1.25rem;
  height: 0.75rem;
  border-radius: 0.2rem;
}

.amr-heatmap {
  width: max-content;
  min-width: 100%;
}

.amr-heatmap thead th:first-child {
  width: 20rem;
}

.amr-heatmap .heat-cell {
  width: 8.2rem;
}

.amr-heatmap .endpoint-growth,
.amr-endpoint-key .endpoint-growth {
  background: #fff1c7;
  color: #674600;
}

.amr-heatmap .endpoint-no_growth,
.amr-endpoint-key .endpoint-no_growth {
  background: #dbeafe;
  color: #174a7e;
}

.amr-heatmap .endpoint-unknown,
.amr-endpoint-key .endpoint-unknown {
  background: var(--color-surface-subtle);
  color: var(--color-text-muted);
}

.amr-heatmap .endpoint-mixed,
.amr-endpoint-key .endpoint-mixed {
  background: #eee5ff;
  color: #5b328b;
}

.amr-heatmap .endpoint-growth strong::before { content: "● "; }
.amr-heatmap .endpoint-no_growth strong::before { content: "○ "; }
.amr-heatmap .endpoint-unknown strong::before { content: "? "; }
.amr-heatmap .endpoint-mixed strong::before { content: "◐ "; }

.amr-endpoint-key {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  color: var(--color-text-muted);
  font-size: var(--font-size-xs);
}

.amr-endpoint-key span {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.amr-endpoint-key i {
  width: 0.9rem;
  height: 0.9rem;
  border: 1px solid currentColor;
  border-radius: 0.2rem;
}

.phenotype-resistant { color: #b42318 !important; }
.phenotype-susceptible { color: #087a61 !important; }
.phenotype-unknown { color: var(--color-text-muted) !important; }
.phenotype-mixed { color: #8a4b08 !important; }

.playground-evidence-disclosure > summary {
  font-size: var(--font-size-lg);
}

.playground-evidence-body {
  padding-top: var(--space-6);
}

.supporting-tool-links {
  display: flex;
  gap: var(--space-3);
  flex-wrap: wrap;
  padding-top: var(--space-4);
}

.playground-module-grid .task-card {
  position: relative;
}

.module-status {
  align-self: start;
  width: max-content;
  margin: 0 0 var(--space-3);
  padding: 0.3rem 0.55rem;
  border-radius: 999px;
  font-size: var(--font-size-xs);
  font-weight: 750;
}

.module-status.is-ready {
  background: #dff6ef;
  color: #087a61;
}

.module-status.is-pending {
  background: #fff2d5;
  color: #8a4b08;
}

.pending-heatmap {
  position: relative;
  overflow: hidden;
  min-height: 24rem;
  padding: var(--space-5);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface-subtle);
}

.pending-heatmap-header,
.pending-heatmap-row {
  display: grid;
  grid-template-columns: 11rem repeat(5, 1fr);
  gap: 0.4rem;
  margin-bottom: 0.4rem;
  color: var(--color-text-muted);
  text-align: center;
}

.pending-heatmap-row > span {
  padding: 1rem;
  text-align: left;
}

.pending-heatmap-row i {
  min-height: 3.5rem;
  border-radius: var(--radius-sm);
  background: repeating-linear-gradient(135deg, #eef2f6, #eef2f6 8px, #e2e8f0 8px, #e2e8f0 16px);
}

.pending-heatmap-message {
  position: absolute;
  inset: 50% auto auto 50%;
  width: min(34rem, calc(100% - 2rem));
  padding: var(--space-6);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-lg);
  background: rgb(255 255 255 / 0.96);
  box-shadow: var(--shadow-md);
  text-align: center;
  transform: translate(-50%, -50%);
}

.pending-heatmap-message strong {
  display: block;
  margin-bottom: var(--space-2);
  color: var(--color-text);
}

.pending-heatmap-message p {
  margin: 0;
  color: var(--color-text-muted);
}

.scientific-caution {
  border-left: 4px solid #d97706;
}

.caution-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
  margin-top: var(--space-4);
}

.caution-grid article {
  padding: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface-subtle);
}

.caution-grid h3,
.caution-grid p {
  margin-top: 0;
}

.caution-grid p {
  margin-bottom: 0;
  color: var(--color-text-muted);
}

.dimension-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-2) var(--space-6);
  padding-top: var(--space-4);
}

@media (max-width: 840px) {
  .playground-intro,
  .caution-grid {
    grid-template-columns: 1fr;
  }

  .playground-intro > div {
    min-height: auto;
  }

  .playground-filter-form,
  .playground-filter-form .form-field,
  .playground-filter-form button,
  .playground-filter-form .button-link {
    width: 100%;
  }

  .section-heading .heatmap-scale {
    margin-top: var(--space-3);
  }
}

@media (max-width: 560px) {
  .pending-heatmap-header,
  .pending-heatmap-row {
    grid-template-columns: 7rem repeat(5, 4rem);
  }

  .dimension-list {
    grid-template-columns: 1fr;
  }
}

* { box-sizing: border-box; }
.visually-hidden { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
html { scroll-behavior: smooth; }
body {
  background: var(--nbf-black);
  color: var(--nbf-text);
  font-family: var(--font-sans);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  margin: 0;
}
.public-surface { --surface-accent: var(--nbf-secondary); }
.workspace-surface {
  --surface-accent: var(--nbf-warning);
  font-size: 0.9375rem;
}

a { color: var(--nbf-secondary); text-underline-offset: 0.16em; }
a:hover { color: #a6ecff; }
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex="0"]:focus-visible {
  outline: 3px solid var(--nbf-focus);
  outline-offset: 3px;
}
.content-section,
[id] { scroll-margin-top: 8rem; }
.skip-link {
  background: #fff;
  border-radius: var(--radius-sm);
  color: #000;
  font-weight: 750;
  left: var(--space-3);
  padding: var(--space-2) var(--space-3);
  position: fixed;
  top: -80px;
  z-index: 100;
}
.skip-link:focus { top: var(--space-3); }

/* Navigation */
.site-header {
  backdrop-filter: blur(14px);
  background: rgba(9, 12, 18, 0.95);
  border-bottom: 1px solid var(--nbf-border-soft);
  position: sticky;
  top: 0;
  z-index: 20;
}
.site-header::after {
  background: linear-gradient(90deg, var(--nbf-primary), var(--surface-accent), transparent 72%);
  bottom: -1px;
  content: "";
  height: 2px;
  left: 0;
  position: absolute;
  right: 0;
}
.header-inner {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-6);
  margin: 0 auto;
  max-width: var(--content-width);
  padding: var(--space-3) var(--space-6);
}
.header-navigation { align-items: center; display: flex; flex: 1; gap: var(--space-6); min-width: 0; }
.navigation-toggle { display: none; margin-left: auto; min-height: 2.75rem; }
.brand {
  align-items: baseline;
  color: var(--nbf-heading);
  display: inline-flex;
  font-size: var(--text-lg);
  font-weight: 850;
  letter-spacing: -0.02em;
  text-decoration: none;
}
.brand span {
  color: var(--nbf-secondary);
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  margin-left: var(--space-2);
  text-transform: uppercase;
}
.workspace-surface .brand span { color: var(--nbf-warning); }
.primary-nav { display: flex; flex: 1; flex-wrap: wrap; gap: var(--space-1) var(--space-5); }
.primary-nav a,
.account-nav a,
.workspace-entry,
.nav-button {
  border-radius: var(--radius-sm);
  color: var(--nbf-text);
  font-size: 0.8125rem;
  font-weight: 700;
  padding: 0.35rem 0;
  text-decoration: none;
}
.primary-nav a:hover,
.account-nav a:hover,
.workspace-entry:hover,
.nav-button:hover { color: var(--surface-accent); }
.primary-nav a[aria-current="page"] {
  box-shadow: inset 0 -2px var(--surface-accent);
  color: var(--nbf-heading);
}
.workspace-entry {
  border-left: 1px solid var(--nbf-border-soft);
  color: var(--nbf-muted);
  padding-left: var(--space-5);
}
.account-nav { align-items: center; display: flex; flex-wrap: wrap; gap: var(--space-3); }
.signed-in-user { color: var(--nbf-muted); font-size: var(--text-xs); overflow-wrap: anywhere; }
.nav-form { display: inline; margin: 0; }
.nav-button { background: transparent; border: 0; margin: 0; }

/* Page frame and typography */
main {
  margin: 0 auto;
  max-width: var(--content-width);
  min-height: calc(100vh - 150px);
  padding: var(--space-10) var(--space-6) var(--space-16);
}
.site-footer {
  border-top: 1px solid var(--nbf-border-soft);
  color: var(--nbf-muted);
  font-size: var(--text-xs);
  margin: 0 auto;
  max-width: var(--content-width);
  padding: var(--space-5) var(--space-6) var(--space-10);
}
h1, h2, h3 { color: var(--nbf-heading); line-height: var(--leading-tight); text-wrap: balance; }
h1 { font-size: var(--text-3xl); letter-spacing: -0.045em; margin: 0 0 var(--space-5); max-width: 19ch; }
.workspace-surface h1 { font-size: var(--text-2xl); max-width: 28ch; }
h1::after {
  background: linear-gradient(90deg, var(--nbf-primary), var(--surface-accent));
  content: "";
  display: block;
  height: 3px;
  margin-top: var(--space-3);
  width: 4.75rem;
}
h2 { font-size: var(--text-xl); margin: var(--space-10) 0 var(--space-4); }
h3 { font-size: var(--text-lg); margin: var(--space-6) 0 var(--space-3); }
p { max-width: var(--readable-width); }
.eyebrow {
  color: var(--surface-accent);
  font-size: var(--text-xs);
  font-weight: 850;
  letter-spacing: 0.14em;
  margin: 0 0 var(--space-2);
  text-transform: uppercase;
}
.lede { color: var(--nbf-muted); font-size: clamp(1.05rem, 2vw, 1.25rem); max-width: 68ch; }
.muted, .helptext { color: var(--nbf-muted); }
.helptext { display: block; font-size: var(--text-xs); margin-top: var(--space-1); }
.page-header { margin-bottom: var(--space-6); }
.page-header .lede { margin-bottom: 0; }
.content-section { scroll-margin-top: 7rem; }
.content-section + .content-section { border-top: 1px solid var(--nbf-border-soft); margin-top: var(--space-10); padding-top: var(--space-2); }
code {
  background: var(--nbf-surface-raised);
  border: 1px solid var(--nbf-border-soft);
  border-radius: var(--radius-sm);
  color: #bdeeff;
  font-family: var(--font-mono);
  padding: 0.08rem 0.3rem;
}

/* Breadcrumb and local section navigation */
.breadcrumbs { color: var(--nbf-muted); display: block; font-size: 0.8125rem; margin: 0 0 var(--space-5); }
.breadcrumbs ol { align-items: center; display: flex; flex-wrap: wrap; gap: var(--space-1); list-style: none; margin: 0; padding: 0; }
.breadcrumbs li { align-items: center; display: inline-flex; }
.breadcrumbs li + li::before { color: var(--nbf-border); content: "/"; margin-right: var(--space-1); }
.breadcrumbs a { color: var(--nbf-muted); }
.breadcrumbs [aria-current="page"] { color: var(--nbf-text); }
.section-tabs {
  border-bottom: 1px solid var(--nbf-border-soft);
  display: flex;
  gap: var(--space-1);
  margin: var(--space-6) 0 var(--space-8);
  overflow-x: auto;
  scrollbar-width: thin;
}
.section-tabs a {
  border-bottom: 2px solid transparent;
  color: var(--nbf-muted);
  flex: 0 0 auto;
  font-size: 0.8125rem;
  font-weight: 750;
  min-height: 2.75rem;
  padding: var(--space-2) var(--space-3);
  text-decoration: none;
}
.section-tabs a:hover,
.section-tabs a[aria-current="location"] { border-bottom-color: var(--surface-accent); color: var(--nbf-heading); }
.context-links {
  align-items: center;
  border-top: 1px solid var(--nbf-border-soft);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-5);
  margin: var(--space-8) 0 var(--space-3);
  padding-top: var(--space-4);
}
.context-links strong { color: var(--nbf-heading); font-size: 0.8125rem; }

/* Cards, metrics, and workflow */
.hero {
  background: radial-gradient(circle at 82% 20%, rgba(99, 215, 255, 0.15), transparent 31%), linear-gradient(140deg, rgba(8, 104, 223, 0.15), transparent 60%);
  border: 1px solid var(--nbf-border-soft);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  padding: clamp(1.5rem, 5vw, 4rem);
}
.module-grid,
.metric-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.module-grid { margin: var(--space-6) 0 var(--space-10); }
.module-card,
.metric {
  background: linear-gradient(145deg, var(--nbf-surface-raised), var(--nbf-surface));
  border: 1px solid var(--nbf-border-soft);
  border-radius: var(--radius-md);
  border-top-color: var(--nbf-primary);
  box-shadow: var(--shadow-sm);
  padding: var(--space-5);
}
.module-card { color: var(--nbf-text); display: block; min-height: 9.5rem; text-decoration: none; transition: border-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast); }
.module-card:hover { border-color: var(--surface-accent); box-shadow: var(--shadow-md); transform: translateY(-2px); }
.module-card h2, .module-card h3 { margin: 0 0 var(--space-2); }
.module-card p { color: var(--nbf-muted); margin: 0; }
.metric { color: var(--nbf-muted); }
.metric b { color: var(--nbf-heading); display: block; font-size: 1.7rem; margin-top: var(--space-1); overflow-wrap: anywhere; }
.atlas-hero { display: grid; gap: var(--space-8); grid-template-columns: minmax(0, 1.5fr) minmax(18rem, 0.7fr); }
.hero-explainer,
.boundary-card {
  background: rgba(9, 12, 18, 0.72);
  border: 1px solid var(--nbf-border);
  border-radius: var(--radius-md);
  padding: var(--space-5);
}
.hero-explainer ul { margin: var(--space-3) 0 0; padding-left: var(--space-5); }
.hero-explainer li + li { margin-top: var(--space-2); }
.section-heading { align-items: end; display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-8); justify-content: space-between; margin: var(--space-10) 0 var(--space-4); }
.section-heading h2,
.section-heading p { margin-bottom: 0; margin-top: 0; }
.section-heading > p,
.section-heading > span { color: var(--nbf-muted); font-size: var(--text-sm); }
.task-grid,
.record-grid,
.feature-grid,
.method-grid,
.qc-card-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.task-card,
.record-card,
.feature-card,
.method-card,
.qc-card {
  background: linear-gradient(145deg, var(--nbf-surface-raised), var(--nbf-surface));
  border: 1px solid var(--nbf-border-soft);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  min-width: 0;
  overflow-wrap: anywhere;
  padding: var(--space-5);
}
.task-card { color: var(--nbf-text); min-height: 15rem; position: relative; text-decoration: none; }
.task-card:hover { border-color: var(--surface-accent); box-shadow: var(--shadow-md); }
.task-card h3,
.record-card h2,
.record-card h3,
.feature-card h3,
.method-card h3,
.qc-card h3 { margin: var(--space-3) 0; }
.task-card p,
.record-card > p:not(.eyebrow),
.method-card > p:not(.formula) { color: var(--nbf-muted); }
.task-number { color: var(--nbf-secondary); font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 850; }
.card-action { color: var(--nbf-secondary); display: inline-block; font-size: var(--text-sm); font-weight: 800; margin-top: var(--space-4); }
.split-section,
.overview-grid { display: grid; gap: var(--space-8); grid-template-columns: minmax(0, 1.4fr) minmax(17rem, 0.7fr); }
.evidence-list { display: grid; gap: var(--space-3); grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.evidence-list article { border-left: 2px solid var(--nbf-primary); padding-left: var(--space-4); }
.evidence-list h3 { margin-bottom: var(--space-1); }
.evidence-list p { color: var(--nbf-muted); margin-top: 0; }
.catalog-grid { grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); margin: var(--space-5) 0; }
.record-card { display: flex; flex-direction: column; min-height: 13rem; }
.record-card .card-action { margin-top: auto; }
.record-stats,
.overview-facts,
.qc-card dl { display: grid; gap: var(--space-3); grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr)); margin: auto 0 0; }
.record-stats div,
.overview-facts div,
.qc-card dl div { border-top: 1px solid var(--nbf-border-soft); padding-top: var(--space-2); }
.record-stats dt,
.overview-facts dt,
.qc-card dt { color: var(--nbf-muted); font-size: var(--text-xs); }
.record-stats dd,
.overview-facts dd,
.qc-card dd { color: var(--nbf-heading); font-weight: 800; margin: 0; overflow-wrap: anywhere; }
.result-summary {
  align-items: baseline;
  background: var(--nbf-info-surface);
  border-left: 3px solid var(--nbf-secondary);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
  margin: var(--space-5) 0;
  padding: var(--space-3) var(--space-4);
}
.result-summary span { color: var(--nbf-muted); font-size: var(--text-sm); }
.search-prominent { margin-bottom: var(--space-5); }
.search-prominent > label { color: var(--nbf-heading); display: block; font-weight: 800; margin-bottom: var(--space-2); }
.search-row { display: flex; gap: var(--space-2); }
.search-row input { flex: 1; font-size: var(--text-lg); }
.filter-groups { display: grid; gap: var(--space-3); grid-template-columns: repeat(3, 1fr); }
.filter-groups fieldset { border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-sm); display: grid; gap: var(--space-3); margin: 0; min-width: 0; padding: var(--space-4); }
.filter-groups legend { color: var(--nbf-secondary); font-size: var(--text-xs); font-weight: 850; letter-spacing: 0.08em; padding: 0 var(--space-2); text-transform: uppercase; }
.checkbox-row { align-items: center; color: var(--nbf-heading); cursor: pointer; display: flex; font-size: var(--text-sm); font-weight: 750; gap: var(--space-2); min-height: 2.75rem; padding: var(--space-2) 0; }
.feature-grid { grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); }
.feature-card strong { color: var(--nbf-heading); font-size: 1.75rem; }
.feature-card p:last-child { margin-bottom: 0; }
.disclosure { background: var(--nbf-surface); border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-md); margin: var(--space-5) 0; max-width: 100%; min-width: 0; overflow: hidden; padding: 0 var(--space-4); width: 100%; }
.disclosure > summary { color: var(--nbf-heading); cursor: pointer; font-size: var(--text-sm); font-weight: 800; list-style-position: outside; min-height: 2.75rem; padding: var(--space-4) var(--space-1); }
.disclosure[open] > summary { border-bottom: 1px solid var(--nbf-border-soft); }
.disclosure > .table-wrap { margin: var(--space-4) 0; }
.provenance-boundary { background: var(--nbf-info-surface); border-left: 3px solid var(--nbf-secondary); border-radius: var(--radius-sm); margin: var(--space-4) 0; max-width: none; padding: var(--space-4); }
.provenance-boundary p { color: var(--nbf-muted); margin-bottom: 0; }
.concept-flow { display: grid; gap: var(--space-3); grid-template-columns: repeat(3, 1fr); }
.concept-flow article { background: var(--nbf-surface); border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-md); padding: var(--space-4); position: relative; }
.concept-flow article > span { align-items: center; background: var(--nbf-primary); border-radius: 50%; color: #fff; display: inline-flex; font-size: var(--text-xs); font-weight: 850; height: 1.75rem; justify-content: center; width: 1.75rem; }
.concept-flow h3 { margin: var(--space-3) 0 var(--space-2); }
.concept-flow p { color: var(--nbf-muted); margin: 0; }
.method-grid { grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr)); }
.formula { background: var(--nbf-black); border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-sm); color: #c7efff; font-family: var(--font-mono); overflow-wrap: anywhere; padding: var(--space-3); }
.method-caution { border-top: 1px solid var(--nbf-border-soft); font-size: var(--text-sm); margin-top: var(--space-4); padding-top: var(--space-3); }
.qc-card-grid { grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); }
.qc-card dl { margin: var(--space-4) 0; }
.workspace-surface .module-grid,
.workspace-surface .metric-grid { gap: var(--space-3); }
.workspace-surface .metric { padding: var(--space-4); }
.workflow { counter-reset: workflow; display: grid; gap: var(--space-3); grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); margin: var(--space-5) 0; }
.workflow-step {
  background: var(--nbf-surface);
  border: 1px solid var(--nbf-border-soft);
  border-radius: var(--radius-md);
  color: var(--nbf-muted);
  padding: var(--space-4);
  position: relative;
}
.workflow-step::before { color: var(--nbf-secondary); content: counter(workflow); counter-increment: workflow; display: block; font-size: var(--text-xs); font-weight: 850; }
.workflow-step b,
.workflow-step span { display: block; }
.workflow-step span { margin-top: var(--space-1); }
.workflow-step.is-complete { border-color: rgba(66, 223, 160, 0.55); }
.workflow-step.is-complete::before { color: var(--nbf-success); }
.workflow-step.is-current { background: var(--nbf-info-surface); border-color: var(--surface-accent); color: var(--nbf-heading); box-shadow: inset 3px 0 var(--surface-accent); }

/* Buttons and actions */
button,
.button-link {
  align-items: center;
  background: var(--nbf-primary);
  border: 1px solid var(--nbf-primary);
  border-radius: var(--radius-sm);
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 800;
  gap: var(--space-2);
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.55rem 0.9rem;
  text-decoration: none;
  transition: background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
}
button:hover,
.button-link:hover { background: var(--nbf-primary-hover); border-color: var(--nbf-secondary); color: #fff; }
button:active,
.button-link:active { transform: translateY(1px); }
.button-link.secondary,
.button-secondary { background: transparent; border-color: var(--nbf-secondary); color: var(--nbf-secondary); }
.button-link.secondary:hover,
.button-secondary:hover { background: rgba(99, 215, 255, 0.1); color: #b8f0ff; }
.button-text { background: transparent; border-color: transparent; color: var(--nbf-secondary); padding-left: var(--space-2); padding-right: var(--space-2); }
.button-text:hover { background: rgba(99, 215, 255, 0.08); border-color: transparent; color: #b8f0ff; }
.button-link.danger,
.button-danger { background: transparent; border-color: var(--nbf-danger); color: var(--nbf-danger); }
.button-link.danger:hover,
.button-danger:hover { background: var(--nbf-danger-surface); border-color: #ffacb6; color: #ffd5da; }
button:disabled,
.button-link[aria-disabled="true"],
input:disabled,
select:disabled,
textarea:disabled { cursor: not-allowed; opacity: 0.52; }
.button-link[aria-disabled="true"] { pointer-events: none; }
.actions { align-items: center; display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-4) 0; }
.actions form { margin: 0; }

/* Badges */
.status {
  background: var(--nbf-surface-raised);
  border: 1px solid var(--nbf-border);
  border-radius: var(--radius-pill);
  color: var(--nbf-text);
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: 850;
  letter-spacing: 0.055em;
  line-height: 1.3;
  padding: 0.22rem 0.55rem;
  text-transform: uppercase;
  white-space: nowrap;
}
.status-published,
.status-complete,
.status-success,
.status-curator { background: var(--nbf-success-surface); border-color: #2c8063; color: #a9f6d6; }
.status-review,
.status-processing,
.status-warning,
.status-administrator { background: var(--nbf-warning-surface); border-color: #8b6625; color: #ffe0a0; }
.status-draft,
.status-validating,
.status-pending,
.status-contributor { background: var(--nbf-info-surface); border-color: #306baa; color: #bcecff; }
.status-failed,
.status-error { background: var(--nbf-danger-surface); border-color: #984555; color: #ffc3ca; }
.status-archived { color: var(--nbf-muted); }

/* Alerts and messages */
.message,
.notice,
.warning,
.success,
.error-panel {
  background: var(--nbf-info-surface);
  border: 1px solid #28517d;
  border-left: 4px solid var(--nbf-secondary);
  border-radius: var(--radius-sm);
  margin: var(--space-4) 0;
  max-width: var(--readable-width);
  padding: var(--space-3) var(--space-4);
}
.warning { background: var(--nbf-warning-surface); border-color: #755524; border-left-color: var(--nbf-warning); color: #ffe3ad; }
.success { background: var(--nbf-success-surface); border-color: #2a6e57; border-left-color: var(--nbf-success); color: #b8f7de; }
.error-panel,
.message.error { background: var(--nbf-danger-surface); border-color: #7c3847; border-left-color: var(--nbf-danger); color: #ffd1d6; }
.message-stack { display: grid; gap: var(--space-2); margin-bottom: var(--space-5); }
.message-stack .message { margin: 0; }
.error,
.errorlist,
.flag { color: #ffb1ba; }
.errorlist { font-size: var(--text-xs); margin: var(--space-1) 0; padding-left: var(--space-5); }

/* Empty and confirmation states */
.empty-state {
  background: linear-gradient(145deg, var(--nbf-surface), rgba(23, 33, 50, 0.65));
  border: 1px dashed var(--nbf-border);
  border-radius: var(--radius-md);
  color: var(--nbf-muted);
  margin: var(--space-4) 0;
  padding: var(--space-8);
  text-align: center;
}
.empty-state > * { margin-left: auto; margin-right: auto; }
.empty-state h2,
.empty-state h3 { margin-top: 0; }
.empty-state .actions { justify-content: center; }
.confirmation-panel {
  background: var(--nbf-warning-surface);
  border: 1px solid #765522;
  border-left: 4px solid var(--nbf-warning);
  border-radius: var(--radius-md);
  margin: var(--space-5) 0;
  max-width: 52rem;
  padding: var(--space-5);
}
.confirmation-panel.danger { background: var(--nbf-danger-surface); border-color: #7c3847; border-left-color: var(--nbf-danger); }
.confirmation-panel h2,
.confirmation-panel h3 { margin-top: 0; }
.confirmation-panel p { color: var(--nbf-muted); }

/* Filters and forms */
.filters,
.form-panel {
  background: var(--nbf-surface);
  border: 1px solid var(--nbf-border-soft);
  border-left: 3px solid var(--nbf-primary);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  margin-bottom: var(--space-5);
  padding: var(--space-5);
}
.form-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); margin-bottom: var(--space-4); }
.form-field label,
.filters > p > label,
.form-panel > p > label { color: var(--nbf-heading); display: block; font-size: var(--text-xs); font-weight: 800; margin-bottom: var(--space-1); }
.form-field .checkbox-row { display: flex; font-size: var(--text-sm); margin-bottom: var(--space-1); }
input,
select,
textarea { background: var(--nbf-black); border: 1px solid var(--nbf-border); border-radius: var(--radius-sm); color: var(--nbf-heading); font: inherit; min-height: 2.75rem; padding: 0.5rem 0.6rem; }
textarea { min-height: 7rem; resize: vertical; }
.form-field input,
.form-field select,
.form-field textarea,
.filters > p input:not([type="checkbox"]),
.filters > p select,
.filters > p textarea,
.form-panel > p input:not([type="checkbox"]),
.form-panel > p select,
.form-panel > p textarea { margin: 0; width: 100%; }
input:hover,
select:hover,
textarea:hover { border-color: #70839e; }
input:focus,
select:focus,
textarea:focus { border-color: var(--nbf-focus); }
input[aria-invalid="true"],
.form-field:has(.errorlist) input,
.form-field:has(.errorlist) select,
.form-field:has(.errorlist) textarea { border-color: var(--nbf-danger); }
input[type="checkbox"],
input[type="radio"] { accent-color: var(--nbf-primary); min-height: auto; }
.form-field input[type="checkbox"],
.sensor-picker input { margin-right: var(--space-1); width: auto; }
.sensor-picker > div { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-3); }
option { background: var(--nbf-black); color: var(--nbf-heading); }
.filter-summary { align-items: center; display: flex; flex-wrap: wrap; gap: var(--space-2); margin: calc(-1 * var(--space-2)) 0 var(--space-5); }
.filter-summary > strong { color: var(--nbf-muted); font-size: var(--text-xs); }
.filter-chip {
  align-items: center;
  background: var(--nbf-info-surface);
  border: 1px solid #356899;
  border-radius: var(--radius-pill);
  color: #c7efff;
  display: inline-flex;
  font-size: var(--text-xs);
  gap: var(--space-1);
  min-height: 2.75rem;
  padding: 0.25rem 0.6rem;
  text-decoration: none;
}
.filter-chip::after { content: "×"; font-size: 1rem; line-height: 0.8; }
.filter-chip:hover { background: #15365e; color: #fff; }

/* Phase 5 signal and normalization configuration */
.signal-intro-grid { align-items: start; display: grid; gap: var(--space-6); grid-template-columns: minmax(0, 1.4fr) minmax(18rem, 0.6fr); margin-bottom: var(--space-6); }
.signal-configurator { display: grid; gap: var(--space-4); margin: var(--space-6) 0 var(--space-8); }
.config-step {
  background: linear-gradient(145deg, var(--nbf-surface), rgba(23, 33, 50, 0.72));
  border: 1px solid var(--nbf-border-soft);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  min-width: 0;
  padding: var(--space-5);
}
.config-step-heading { align-items: flex-start; display: flex; gap: var(--space-4); margin-bottom: var(--space-5); }
.config-step-heading > span,
.step-badge { align-items: center; background: var(--nbf-primary); border-radius: 50%; color: #fff; display: inline-flex; flex: 0 0 auto; font-size: var(--text-xs); font-weight: 850; height: 2rem; justify-content: center; width: 2rem; }
.config-step-heading h2,
.config-step-heading p { margin-bottom: 0; margin-top: 0; }
.config-step-heading > div > p:last-child { color: var(--nbf-muted); margin-top: var(--space-2); }
.config-step .form-grid { margin-bottom: 0; }
.sensor-view-mode-fieldset { border: 0; margin: 0 0 var(--space-4); min-width: 0; padding: 0; }
.sensor-view-mode-fieldset > legend { color: var(--nbf-heading); font-size: var(--text-sm); font-weight: 800; margin-bottom: var(--space-2); }
.sensor-view-mode-grid > div { display: grid; gap: var(--space-3); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sensor-view-mode-grid label {
  align-items: flex-start;
  background: var(--nbf-black);
  border: 1px solid var(--nbf-border);
  border-radius: var(--radius-sm);
  color: var(--nbf-heading);
  cursor: pointer;
  display: flex;
  font-weight: 800;
  gap: var(--space-3);
  min-height: 3.5rem;
  padding: var(--space-3);
}
.sensor-view-mode-grid label:has(input:checked) { background: var(--nbf-info-surface); border-color: var(--nbf-secondary); box-shadow: inset 3px 0 var(--nbf-secondary); }
.sensor-view-mode-grid input { flex: 0 0 auto; height: 1.2rem; margin-top: 0.1rem; width: 1.2rem; }
.sensor-mode-panel { background: rgba(41, 200, 255, 0.07); border: 1px solid var(--nbf-border-soft); border-left: 3px solid var(--nbf-secondary); border-radius: var(--radius-sm); padding: var(--space-3) var(--space-4); }
.sensor-mode-panel > strong,
.sensor-mode-panel > span { display: block; }
.sensor-mode-panel > span { color: var(--nbf-muted); font-size: var(--text-sm); margin-top: var(--space-1); }
.sensor-mode-panel[hidden],
.toggle-card[hidden] { display: none; }
.sensor-choice-fieldset { border: 0; margin: 0; min-width: 0; padding: 0; }
.sensor-choice-grid > div > div { display: grid; gap: var(--space-2); grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr)); }
.sensor-choice-grid label {
  align-items: center;
  background: var(--nbf-black);
  border: 1px solid var(--nbf-border);
  border-radius: var(--radius-sm);
  color: var(--nbf-heading);
  cursor: pointer;
  display: flex;
  font-size: var(--text-sm);
  font-weight: 800;
  gap: var(--space-2);
  min-height: 2.75rem;
  padding: var(--space-2) var(--space-3);
}
.sensor-choice-grid label:has(input:checked) { background: var(--nbf-info-surface); border-color: var(--nbf-secondary); box-shadow: inset 3px 0 var(--nbf-secondary); }
.sensor-choice-grid input { flex: 0 0 auto; height: 1.15rem; margin: 0; width: 1.15rem; }
.advanced-settings { padding: 0; }
.advanced-settings > summary { align-items: center; cursor: pointer; display: flex; gap: var(--space-3); list-style: none; padding: var(--space-4) var(--space-5); }
.advanced-settings > summary::-webkit-details-marker { display: none; }
.advanced-settings > summary::after { color: var(--nbf-secondary); content: "+"; font-size: 1.4rem; margin-left: auto; }
.advanced-settings[open] > summary::after { content: "−"; }
.advanced-settings > summary small { color: var(--nbf-muted); display: block; font-weight: 400; }
.advanced-settings-body { border-top: 1px solid var(--nbf-border-soft); display: grid; gap: var(--space-5); grid-template-columns: minmax(12rem, 0.7fr) minmax(0, 1.3fr); padding: var(--space-5); }
.setting-group { border-left: 3px solid var(--nbf-secondary); min-width: 0; padding-left: var(--space-4); transition: opacity var(--transition-fast); }
.setting-group h2 { font-size: var(--text-lg); margin: 0 0 var(--space-2); }
.setting-group.is-inactive { border-left-color: var(--nbf-border); opacity: 0.55; }
.setting-group.is-inactive::after { color: var(--nbf-muted); content: "Not used by the active calculation"; display: block; font-size: var(--text-xs); font-weight: 800; margin-top: var(--space-3); text-transform: uppercase; }
.calculation-summary {
  align-items: start;
  background: var(--nbf-info-surface);
  border: 1px solid #28517d;
  border-left: 4px solid var(--nbf-secondary);
  border-radius: var(--radius-sm);
  display: grid;
  gap: var(--space-4);
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.8fr);
  margin: var(--space-4) 0;
  padding: var(--space-4);
}
.calculation-summary h3,
.calculation-summary p { margin-bottom: 0; margin-top: 0; }
.calculation-summary code { display: block; overflow-wrap: anywhere; padding: var(--space-3); }
.calculation-settings { color: var(--nbf-muted); font-size: var(--text-xs); margin-top: var(--space-2) !important; }
.display-toggle-grid { display: grid; gap: var(--space-3); grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: var(--space-4); }
.toggle-card { align-items: flex-start; background: var(--nbf-black); border: 1px solid var(--nbf-border); border-radius: var(--radius-sm); cursor: pointer; display: flex; gap: var(--space-3); min-height: 4.5rem; padding: var(--space-3); }
.toggle-card:has(input:checked) { background: var(--nbf-info-surface); border-color: var(--nbf-secondary); }
.toggle-card input { flex: 0 0 auto; height: 1.2rem; margin-top: 0.15rem; width: 1.2rem; }
.toggle-card strong,
.toggle-card small { display: block; }
.toggle-card small { color: var(--nbf-muted); margin-top: var(--space-1); }
.toggle-card.is-unavailable { border-style: dashed; }
.sticky-form-actions { align-items: center; backdrop-filter: blur(12px); background: rgba(13, 35, 64, 0.96); border: 1px solid #356899; border-radius: var(--radius-md); bottom: var(--space-3); box-shadow: var(--shadow-md); display: flex; flex-wrap: wrap; gap: var(--space-3); justify-content: space-between; padding: var(--space-3) var(--space-4); position: sticky; z-index: 10; }
.sticky-form-actions > div:first-child span { color: var(--nbf-muted); display: block; font-size: var(--text-xs); }
.sticky-form-actions .actions { margin: 0; }
.strategy-reference .method-grid { padding: var(--space-4) 0; }
.axis-summary { margin: var(--space-4) 0; }
.axis-summary .metric span { display: block; font-size: var(--text-xs); margin-top: var(--space-2); }
.warning-disclosure { border-left: 4px solid var(--nbf-warning); }
.warning-disclosure > summary { color: #ffe3ad; }
.warning-disclosure ul { padding-bottom: var(--space-3); }
.plot-shell-header p { margin: var(--space-1) 0 0; }
.compact-configurator { max-width: 72rem; }
.compact-configurator .config-step-heading h3 { margin: 0; }
.sample-advanced-grid { grid-template-columns: minmax(12rem, 0.65fr) minmax(0, 1.35fr); }
.sensor-choice-fieldset > legend { color: var(--nbf-heading); font-size: var(--text-xs); font-weight: 800; margin-bottom: var(--space-2); }
.chart-axis-guide { align-items: center; border-bottom: 1px solid var(--nbf-border-soft); color: var(--nbf-muted); display: flex; flex-wrap: wrap; font-size: var(--text-xs); gap: var(--space-2) var(--space-6); padding: var(--space-2) var(--space-4); }
.chart-axis-guide strong { color: var(--nbf-heading); }
.line-swatch { border-top: 3px solid var(--line-color); display: inline-block; margin-right: var(--space-2); vertical-align: middle; width: 2rem; }
.line-swatch.is-control { border-top-style: dashed; opacity: 0.75; }
.control-legend-swatch { background: #ff4fd8; }
.response-map-section { scroll-margin-top: 6rem; }
.response-map-config {
  background: linear-gradient(145deg, var(--nbf-surface), rgba(23, 33, 50, 0.72));
  border: 1px solid var(--nbf-border-soft);
  border-radius: var(--radius-md);
  display: grid;
  gap: var(--space-4);
  margin: var(--space-5) 0;
  padding: var(--space-5);
}
.response-map-config fieldset { border: 0; margin: 0; min-width: 0; padding: 0; }
.response-map-config legend { color: var(--nbf-heading); font-size: var(--text-lg); font-weight: 800; margin-bottom: var(--space-1); }
.timepoint-choice-grid { display: grid; gap: var(--space-2); grid-template-columns: repeat(7, minmax(4.5rem, 1fr)); margin-top: var(--space-3); }
.timepoint-choice-grid label {
  align-items: center;
  background: var(--nbf-black);
  border: 1px solid var(--nbf-border);
  border-radius: var(--radius-sm);
  color: var(--nbf-heading);
  cursor: pointer;
  display: flex;
  font-size: var(--text-sm);
  font-weight: 800;
  gap: var(--space-2);
  justify-content: center;
  min-height: 2.75rem;
  padding: var(--space-2);
}
.timepoint-choice-grid label:has(input:checked) { background: var(--nbf-info-surface); border-color: var(--nbf-secondary); box-shadow: inset 3px 0 var(--nbf-secondary); }
.timepoint-choice-grid input { height: 1.1rem; margin: 0; width: 1.1rem; }
.response-map-options { align-items: stretch; display: grid; gap: var(--space-3); grid-template-columns: minmax(0, 1fr) minmax(14rem, 0.55fr); }
.response-map-options .toggle-card { margin: 0; }
.scatter-chart-panel { min-height: 40rem; }
.scatter-role-swatch,
.scatter-size-swatch { border: 1px solid rgba(255, 255, 255, 0.7); border-radius: 50%; display: inline-block; margin-right: var(--space-2); vertical-align: middle; }
.scatter-role-swatch { height: 0.75rem; width: 0.75rem; }
.scatter-size-swatch { background: #73839a; min-height: 0.55rem; min-width: 0.55rem; }

/* Phase 6 staff workspace operations */
.role-command-bar {
  align-items: center;
  background: linear-gradient(120deg, #102d50, #111722 68%);
  border: 1px solid #315f8f;
  border-radius: var(--radius-lg);
  display: flex;
  gap: var(--space-6);
  justify-content: space-between;
  margin: var(--space-5) 0;
  padding: var(--space-5);
}
.role-command-bar h2,
.role-command-bar p { margin-bottom: 0; margin-top: 0; }
.role-command-bar .actions { justify-content: flex-end; margin: 0; }
.workspace-metrics .metric { color: var(--nbf-heading); text-decoration: none; }
.workspace-metrics .metric span { color: var(--nbf-muted); display: block; font-size: var(--text-xs); margin-top: var(--space-2); }
.workspace-metrics .metric:hover { border-color: var(--nbf-secondary); transform: translateY(-1px); }
.metric.has-attention { border-left: 4px solid var(--nbf-danger); }
.attention-section { margin: var(--space-8) 0; }
.attention-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.task-column { background: var(--nbf-surface); border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-md); min-width: 0; padding: var(--space-4); }
.task-column-heading { align-items: flex-start; border-bottom: 1px solid var(--nbf-border-soft); display: flex; gap: var(--space-3); margin-bottom: var(--space-3); padding-bottom: var(--space-3); }
.task-column-heading h3,
.task-column-heading p { margin: 0; }
.task-icon { align-items: center; background: var(--nbf-info-surface); border: 1px solid var(--nbf-secondary); border-radius: 50%; color: var(--nbf-secondary); display: inline-flex; flex: 0 0 auto; font-weight: 900; height: 2rem; justify-content: center; width: 2rem; }
.task-icon.is-danger { background: rgba(255, 94, 94, 0.12); border-color: var(--nbf-danger); color: #ffaaaa; }
.task-icon.is-review { background: rgba(244, 185, 66, 0.12); border-color: var(--nbf-warning); color: #ffe0a0; }
.task-card { border-bottom: 1px solid var(--nbf-border-soft); display: grid; gap: var(--space-2); padding: var(--space-3) 0; }
.task-card:last-child { border-bottom: 0; }
.task-card h4 { margin: var(--space-2) 0 var(--space-1); }
.task-card p { color: var(--nbf-muted); font-size: var(--text-sm); margin: 0; }
.task-card > a { font-size: var(--text-sm); font-weight: 800; }
.task-empty { color: var(--nbf-muted); margin: var(--space-4) 0; }
.workspace-secondary-grid { display: grid; gap: var(--space-5); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.compact-list { display: grid; }
.compact-list article { align-items: center; border-bottom: 1px solid var(--nbf-border-soft); display: flex; gap: var(--space-3); justify-content: space-between; padding: var(--space-3) 0; }
.compact-list article > div { display: grid; gap: var(--space-1); }
.compact-list article > div:last-child { justify-items: end; }
.compact-list span { color: var(--nbf-muted); font-size: var(--text-xs); }
.activity-feed { list-style: none; margin: 0; padding: 0; }
.activity-feed li { display: grid; gap: var(--space-3); grid-template-columns: 0.8rem minmax(0, 1fr); padding: 0 0 var(--space-4); position: relative; }
.activity-feed li::before { background: var(--nbf-border-soft); content: ""; height: 100%; left: 0.34rem; position: absolute; top: 0.6rem; width: 1px; }
.activity-feed li:last-child::before { content: none; }
.activity-marker { background: var(--nbf-secondary); border: 2px solid var(--nbf-surface); border-radius: 50%; height: 0.75rem; margin-top: 0.25rem; position: relative; width: 0.75rem; z-index: 1; }
.activity-feed p { color: var(--nbf-muted); margin: var(--space-1) 0; }
.activity-feed small { color: var(--nbf-muted); }
.activity-feed.compact { max-height: 26rem; overflow: auto; }

.workflow-filters .search-row,
.compact-filters .search-row { align-items: end; }
.workflow-filters .form-field,
.compact-filters .form-field { flex: 1 1 14rem; }
.workflow-filters .actions,
.compact-filters .actions { margin: 0; }
.workflow-card-list,
.manufacturing-card-list,
.upload-history-list { display: grid; gap: var(--space-4); margin: var(--space-5) 0; }
.workflow-card,
.manufacturing-card,
.upload-record { background: var(--nbf-surface); border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); padding: var(--space-5); }
.manufacturing-card,
.manufacturing-card > *,
.manufacturing-card .workflow-card-heading > * { min-width: 0; }
.workflow-card-heading { align-items: flex-start; display: flex; gap: var(--space-4); justify-content: space-between; }
.workflow-card-heading h2,
.workflow-card-heading h3,
.workflow-card-heading p { margin-bottom: 0; margin-top: 0; }
.workflow-card-heading > div:last-child { align-items: flex-end; display: flex; flex-wrap: wrap; gap: var(--space-2); justify-content: flex-end; }
.lifecycle { display: grid; gap: 0; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: var(--space-5) 0; }
.lifecycle-step { align-items: center; border-top: 3px solid var(--nbf-border); display: flex; gap: var(--space-2); min-width: 0; padding: var(--space-3) var(--space-2) 0 0; }
.lifecycle-step > span { align-items: center; background: var(--nbf-surface-raised); border: 1px solid var(--nbf-border); border-radius: 50%; color: var(--nbf-muted); display: inline-flex; flex: 0 0 auto; font-size: var(--text-xs); font-weight: 900; height: 1.75rem; justify-content: center; width: 1.75rem; }
.lifecycle-step strong,
.lifecycle-step small { display: block; }
.lifecycle-step small { color: var(--nbf-muted); font-size: 0.7rem; }
.lifecycle-step.is-complete { border-top-color: var(--nbf-success); }
.lifecycle-step.is-complete > span { background: rgba(66, 223, 160, 0.12); border-color: var(--nbf-success); color: var(--nbf-success); }
.lifecycle-step.is-current { border-top-color: var(--nbf-secondary); }
.lifecycle-step.is-current > span { background: var(--nbf-primary); border-color: var(--nbf-secondary); color: #fff; }
.workflow-card-body { align-items: stretch; display: grid; gap: var(--space-5); grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.55fr); }
.next-action,
.next-action-panel { background: var(--nbf-info-surface); border-left: 4px solid var(--nbf-secondary); border-radius: var(--radius-sm); padding: var(--space-4); }
.next-action span,
.next-action-panel .eyebrow { color: var(--nbf-secondary); display: block; font-size: var(--text-xs); font-weight: 850; text-transform: uppercase; }
.next-action strong { display: block; margin-top: var(--space-1); }
.next-action p,
.next-action-panel p { color: var(--nbf-muted); margin: var(--space-2) 0; }
.workflow-card-footer { align-items: center; border-top: 1px solid var(--nbf-border-soft); color: var(--nbf-muted); display: flex; flex-wrap: wrap; font-size: var(--text-sm); gap: var(--space-3); justify-content: space-between; margin-top: var(--space-4); padding-top: var(--space-3); }
.workflow-decision-grid { display: grid; gap: var(--space-5); grid-template-columns: minmax(0, 1.4fr) minmax(17rem, 0.6fr); margin-top: var(--space-5); }
.readiness-panel { background: var(--nbf-surface); border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-md); padding: var(--space-4); }
.readiness-score { color: var(--nbf-heading); font-size: var(--text-xs); font-weight: 850; }
.readiness-list { display: grid; gap: var(--space-2); list-style: none; margin: 0; padding: 0; }
.readiness-list li { align-items: start; background: var(--nbf-black); border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-sm); display: flex; gap: var(--space-3); padding: var(--space-3); }
.readiness-list li > span { align-items: center; border: 1px solid currentColor; border-radius: 50%; display: inline-flex; flex: 0 0 auto; font-weight: 900; height: 1.5rem; justify-content: center; width: 1.5rem; }
.readiness-list strong,
.readiness-list small { display: block; }
.readiness-list small { color: var(--nbf-muted); margin-top: var(--space-1); }
.readiness-list .is-ready > span { color: var(--nbf-success); }
.readiness-list .is-missing > span { color: var(--nbf-warning); }
.impact-summary { display: grid; gap: var(--space-3); grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); }
.impact-summary div { background: rgba(0, 0, 0, 0.16); border-radius: var(--radius-sm); padding: var(--space-3); }
.impact-summary dt { color: var(--nbf-muted); font-size: var(--text-xs); }
.impact-summary dd { font-weight: 800; margin: var(--space-1) 0 0; }
.confirmation-check { align-items: flex-start; display: flex; gap: var(--space-2); margin: var(--space-4) 0; }
.confirmation-check input { flex: 0 0 auto; margin-top: 0.2rem; width: auto; }

.workspace-form { display: grid; gap: var(--space-4); margin: var(--space-5) 0; }
.form-section { background: var(--nbf-surface); border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-md); margin: 0; min-width: 0; padding: var(--space-5); }
.form-section legend { color: var(--nbf-heading); font-size: var(--text-lg); font-weight: 850; padding: 0 var(--space-2); }
.form-section > p { color: var(--nbf-muted); margin: 0 0 var(--space-4); }
.form-section.is-internal { border-left: 4px solid #718096; }
.form-section.is-public { background: var(--nbf-info-surface); border-left: 4px solid var(--nbf-secondary); }
.error-summary { background: rgba(164, 49, 49, 0.18); border: 1px solid var(--nbf-danger); border-left: 4px solid var(--nbf-danger); border-radius: var(--radius-md); margin: var(--space-5) 0; padding: var(--space-4); }
.error-summary h2,
.error-summary p { margin-top: 0; }
.error-summary a { color: #ffcdcd; }
.field-errors .errorlist { color: #ffbaba; font-size: var(--text-sm); margin: var(--space-2) 0 0; padding-left: var(--space-5); }
.field-error-text { color: #ffbaba; }
.file-selection { color: var(--nbf-muted); display: block; font-size: var(--text-xs); margin-top: var(--space-2); overflow-wrap: anywhere; }
.terminology-boundary { align-items: center; background: var(--nbf-surface); border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-md); display: grid; gap: var(--space-4); grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); margin: var(--space-5) 0; padding: var(--space-4); }
.terminology-boundary > span { color: var(--nbf-warning); font-size: var(--text-xl); font-weight: 900; }
.terminology-boundary p { margin: 0; }
.requirement-grid { display: grid; gap: var(--space-3); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.requirement-grid article { background: var(--nbf-black); border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-sm); display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-4); }
.requirement-grid p { color: var(--nbf-muted); margin: 0; }
.requirement-grid .button-link { align-self: flex-start; }
.processing-status { background: rgba(23, 107, 69, 0.24); border: 1px solid var(--nbf-success); border-radius: var(--radius-sm); display: grid; gap: var(--space-1); margin-top: var(--space-4); padding: var(--space-4); }
.processing-status[hidden] { display: none; }
.processing-status span { color: var(--nbf-muted); }
.recovery-banner { background: rgba(164, 49, 49, 0.15); border: 1px solid var(--nbf-danger); border-left: 4px solid var(--nbf-danger); border-radius: var(--radius-md); margin: var(--space-5) 0; padding: var(--space-5); }
.recovery-banner h2 { margin-top: 0; }
.recovery-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); }
.recovery-card { background: var(--nbf-surface); border: 1px solid var(--nbf-danger); border-radius: var(--radius-md); padding: var(--space-4); }
.recovery-card ol { padding-left: var(--space-5); }
.upload-record-main { align-items: flex-start; display: flex; gap: var(--space-5); justify-content: space-between; }
.upload-record-main h3,
.upload-record-main p { margin-bottom: 0; }
.upload-record-main dl { display: flex; gap: var(--space-4); margin: 0; }
.upload-record-main dl div { text-align: right; }
.upload-record-main dt { color: var(--nbf-muted); font-size: var(--text-xs); }
.upload-record-main dd { font-size: var(--text-lg); font-weight: 850; margin: 0; }
.definition-list { display: grid; gap: 0; }
.definition-list div { border-bottom: 1px solid var(--nbf-border-soft); display: grid; gap: var(--space-3); grid-template-columns: minmax(8rem, 0.35fr) minmax(0, 1fr); padding: var(--space-2) 0; }
.definition-list dt { color: var(--nbf-muted); font-weight: 800; }
.definition-list dd { margin: 0; overflow-wrap: anywhere; }

.registry-map { display: grid; gap: var(--space-3); grid-template-columns: repeat(6, minmax(0, 1fr)); margin: var(--space-6) 0; }
.registry-map a { background: var(--nbf-surface); border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-md); color: var(--nbf-heading); display: grid; gap: var(--space-1); padding: var(--space-3); text-decoration: none; }
.registry-map a:hover { border-color: var(--nbf-secondary); }
.registry-map span { align-items: center; background: var(--nbf-primary); border-radius: 50%; display: inline-flex; font-size: var(--text-xs); font-weight: 900; height: 1.5rem; justify-content: center; width: 1.5rem; }
.registry-map small { color: var(--nbf-muted); }
.management-card-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr)); }
.management-card { background: var(--nbf-surface); border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-md); min-width: 0; padding: var(--space-4); }
.manufacturing-summary { align-items: stretch; display: grid; gap: var(--space-5); grid-template-columns: minmax(0, 1fr) minmax(12rem, 0.3fr); margin: var(--space-5) 0; }
.qc-summary { background: var(--nbf-black); border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-sm); display: grid; gap: var(--space-1); padding: var(--space-3); }
.qc-summary span,
.qc-summary small { color: var(--nbf-muted); }
.batch-detail-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.public-field-group { background: var(--nbf-info-surface); border: 1px solid #28517d; border-left: 4px solid var(--nbf-secondary); border-radius: var(--radius-md); padding: var(--space-4); }
.internal-field-group { border-left: 4px solid #718096; margin: 0; }

/* Tables and compact record cards */
.table-wrap {
  border: 1px solid var(--nbf-border-soft);
  border-radius: var(--radius-md);
  margin: var(--space-3) 0 var(--space-6);
  max-width: 100%;
  overflow-x: auto;
  scrollbar-color: var(--nbf-border) var(--nbf-surface);
  scrollbar-gutter: stable;
}
.table-wrap.is-scrollable { border-bottom-color: var(--nbf-secondary); box-shadow: inset -1rem 0 1.25rem -1.4rem var(--nbf-secondary); }
table { background: var(--nbf-surface); border-collapse: collapse; width: 100%; }
.table-wrap table { margin: 0; }
th, td { border-bottom: 1px solid var(--nbf-border-soft); font-size: 0.8125rem; padding: 0.65rem 0.75rem; text-align: left; vertical-align: top; }
th { background: linear-gradient(180deg, #202b40, var(--nbf-surface-raised)); color: var(--nbf-heading); font-weight: 750; }
tr:last-child > td,
tr:last-child > th { border-bottom: 0; }
tbody tr:nth-child(even) { background: rgba(255, 255, 255, 0.018); }
tbody tr:hover { background: rgba(99, 215, 255, 0.06); }
.definition-table th { width: 12rem; }
.table-note { color: var(--nbf-muted); font-size: var(--text-xs); margin-top: calc(-1 * var(--space-4)); }
.table-empty { color: var(--nbf-muted); padding: var(--space-8); text-align: center; }

/* Pagination */
.pagination { align-items: center; display: flex; flex-wrap: wrap; gap: var(--space-3); justify-content: center; margin: var(--space-6) 0; }
.pagination > span { color: var(--nbf-muted); font-size: var(--text-sm); }

/* Plots, legends, loading, and processing */
.plot-shell { background: var(--nbf-surface); border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); margin: var(--space-4) 0 var(--space-6); overflow: hidden; }
.plot-shell-header { align-items: center; border-bottom: 1px solid var(--nbf-border-soft); display: flex; flex-wrap: wrap; gap: var(--space-3); justify-content: space-between; padding: var(--space-3) var(--space-4); }
.plot-shell-header h2,
.plot-shell-header h3 { margin: 0; }
.chart-panel { background: var(--nbf-surface); min-height: 38rem; }
.chart-panel:focus-visible { outline-offset: -4px; }
.chart-alternative { background: var(--nbf-info-surface); border-left: 3px solid var(--nbf-secondary); color: var(--nbf-muted); margin: 0; padding: var(--space-3) var(--space-4); }
.chart-alternative strong { color: var(--nbf-heading); }
.modebar-btn { align-items: center !important; display: inline-flex !important; justify-content: center !important; min-height: 2.75rem !important; min-width: 2.75rem !important; }
.signal-plot { background: var(--nbf-surface); height: 16.25rem; width: 100%; }
.plot-legend { align-items: center; color: var(--nbf-muted); display: flex; flex-wrap: wrap; font-size: var(--text-xs); gap: var(--space-2) var(--space-4); padding: var(--space-3) var(--space-4); }
.legend-swatch { border-radius: var(--radius-pill); display: inline-block; height: 0.4rem; margin-right: var(--space-1); width: 2rem; }
.loading-indicator { align-items: center; color: var(--nbf-muted); display: inline-flex; font-size: var(--text-sm); gap: var(--space-2); }
.loading-indicator::before {
  animation: nbf-spin 0.8s linear infinite;
  border: 2px solid var(--nbf-border);
  border-radius: 50%;
  border-top-color: var(--nbf-secondary);
  content: "";
  height: 1rem;
  width: 1rem;
}
.loading-indicator[hidden] { display: none; }
.is-processing { cursor: progress; opacity: 0.72; pointer-events: none; }
@keyframes nbf-spin { to { transform: rotate(360deg); } }

/* AST photographic evidence */
.ast-evidence-figure {
  background: var(--nbf-black);
  border: 1px solid var(--nbf-border-soft);
  border-radius: var(--radius-md);
  display: grid;
  gap: var(--space-4);
  grid-template-columns: minmax(16rem, 0.7fr) minmax(18rem, 0.3fr);
  margin: var(--space-4) 0;
  overflow: hidden;
}
.ast-evidence-figure[hidden] { display: none; }
.ast-evidence-figure > a { align-items: center; background: #080b11; display: flex; justify-content: center; min-height: 24rem; }
.ast-evidence-figure img { display: block; height: min(68vh, 50rem); max-width: 100%; object-fit: contain; width: 100%; }
.ast-evidence-figure figcaption { display: flex; flex-direction: column; gap: var(--space-3); justify-content: center; padding: var(--space-5) var(--space-5) var(--space-5) 0; }
.ast-evidence-figure figcaption span,
.ast-evidence-figure figcaption small { color: var(--nbf-muted); }
.ast-image-grid { display: grid; gap: var(--space-5); grid-template-columns: repeat(auto-fit, minmax(26rem, 1fr)); margin: var(--space-6) 0; }
.ast-image-card { background: var(--nbf-surface); border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); min-width: 0; overflow: hidden; }
.ast-image-preview { align-items: center; background: #080b11; display: flex; height: 28rem; justify-content: center; }
.ast-image-preview img { height: 100%; object-fit: contain; width: 100%; }
.ast-image-card-body { padding: var(--space-5); }
.ast-image-card-body h2 { font-size: var(--text-xl); margin-top: 0; }

/* AST coordinated scientific review */
.ast-review-view-tabs {
  border-bottom: 1px solid var(--nbf-border-soft);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin: var(--space-6) 0;
}
.ast-review-view-tab {
  background: transparent;
  border-color: transparent;
  border-bottom-color: transparent;
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
  color: var(--nbf-muted);
}
.ast-review-view-tab:hover {
  background: var(--nbf-info-surface);
  border-color: var(--nbf-border);
  color: var(--nbf-heading);
}
.ast-review-view-tab[aria-selected="true"] {
  background: var(--nbf-info-surface);
  border-color: var(--nbf-secondary);
  border-bottom-color: var(--nbf-info-surface);
  color: var(--nbf-heading);
  margin-bottom: -1px;
}
.ast-review-workspace { margin: var(--space-6) 0 var(--space-12); }
.ast-review-heading { align-items: end; margin-bottom: var(--space-5); }
.ast-review-heading p:last-child { color: var(--nbf-muted); margin-bottom: 0; max-width: var(--readable-width); }
.ast-review-controls {
  background: linear-gradient(145deg, var(--nbf-surface), rgba(23, 33, 50, 0.72));
  border: 1px solid var(--nbf-border-soft);
  border-radius: var(--radius-md);
  display: grid;
  gap: var(--space-4);
  grid-template-columns: repeat(4, minmax(11rem, 1fr));
  padding: var(--space-5);
}
.ast-review-controls .form-field { margin: 0; }
.ast-review-toggle { min-height: 5.25rem; }
.ast-review-apply { align-items: end; display: flex; gap: var(--space-2); grid-column: span 2; justify-content: flex-end; }
.ast-review-boundary { margin-bottom: var(--space-3); }
.ast-review-selection {
  align-items: baseline;
  border-left: 3px solid var(--nbf-secondary);
  color: var(--nbf-muted);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
  margin: var(--space-3) 0 var(--space-4);
  padding: var(--space-2) var(--space-3);
}
.ast-review-selection strong { color: var(--nbf-heading); }
.ast-review-plot-shell { margin-top: var(--space-3); }
.ast-review-chart { min-height: 52rem; }
.ast-review-legend {
  border-top: 1px solid var(--nbf-border-soft);
  display: grid;
  gap: var(--space-3);
  padding: var(--space-4);
}
.ast-review-concentration-key {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}
.ast-review-key-item {
  background: transparent;
  border-color: var(--nbf-border-soft);
  color: var(--nbf-text);
  font-weight: 600;
  min-height: 2.5rem;
  padding: var(--space-2) var(--space-3);
}
.ast-review-key-item:hover,
.ast-review-key-item[aria-pressed="true"] {
  background: var(--nbf-info-surface);
  border-color: var(--ast-well-color);
  color: var(--nbf-heading);
}
.ast-review-key-swatch {
  background: var(--ast-well-color);
  border: 1px solid var(--nbf-heading);
  border-radius: var(--radius-pill);
  display: inline-block;
  height: 0.65rem;
  width: 1.4rem;
}
.ast-review-symbol-key {
  align-items: center;
  color: var(--nbf-muted);
  display: flex;
  flex-wrap: wrap;
  font-size: var(--text-xs);
  gap: var(--space-2) var(--space-5);
}
.ast-review-symbol-key > span { align-items: center; display: inline-flex; gap: var(--space-2); }
.ast-review-symbol-key > span[hidden] { display: none; }
.ast-marker {
  background: var(--nbf-text);
  border: 2px solid var(--nbf-text);
  display: inline-block;
  height: 0.85rem;
  width: 0.85rem;
}
.ast-marker-filled { border-radius: 50%; }
.ast-marker-hollow { background: transparent; border-radius: 50%; }
.ast-marker-diamond { transform: rotate(45deg); }
.ast-marker-square { background: transparent; }
.ast-review-plate-layout {
  align-items: start;
  display: grid;
  gap: var(--space-8);
  grid-template-columns: minmax(22rem, 0.75fr) minmax(28rem, 1.25fr);
}
.ast-review-plate-grid {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(4, minmax(6rem, 1fr));
}
.ast-review-well {
  align-content: center;
  background: var(--nbf-surface);
  border-color: var(--nbf-border);
  color: var(--nbf-text);
  display: grid;
  gap: var(--space-1);
  justify-items: center;
  min-height: 8rem;
  min-width: 0;
  padding: var(--space-3);
  text-align: center;
}
.ast-review-well:hover { background: var(--nbf-info-surface); border-color: var(--nbf-secondary); }
.ast-review-well strong { color: var(--nbf-heading); font-size: var(--text-lg); }
.ast-review-well > span:not(.ast-review-well-symbol) {
  color: var(--nbf-muted);
  font-size: var(--text-xs);
  overflow-wrap: anywhere;
}
.ast-review-well small { color: var(--nbf-danger); }
.ast-review-well-symbol { color: var(--nbf-secondary); font-size: 1.4rem; line-height: 1; }
.ast-review-well.is-no_growth .ast-review-well-symbol { color: var(--nbf-warning); }
.ast-review-well.is-control .ast-review-well-symbol { color: var(--nbf-success); }
.ast-review-well.is-selected {
  background: var(--nbf-info-surface);
  border-color: var(--nbf-secondary);
  box-shadow: inset 0 0 0 2px var(--nbf-secondary);
}
.ast-review-well.is-missing,
.ast-review-well.is-missing-data { border-style: dashed; }
.ast-review-well.needs-review { border-color: var(--nbf-warning); }
.ast-review-plate-layout .ast-evidence-figure {
  grid-template-columns: 1fr;
  margin-top: 0;
}
.ast-review-plate-layout .ast-evidence-figure figcaption { padding: var(--space-5); }
.ast-review-plate-layout .ast-evidence-figure > a { min-height: 20rem; }
.ast-review-plate-layout .ast-review-image-frame {
  aspect-ratio: 1;
  overflow: hidden;
}
.ast-review-plate-layout .ast-review-image-frame img {
  height: 90%;
  max-width: none;
  transform: rotate(90deg);
  transform-origin: center;
  width: 90%;
}

/* Authentication */
.auth-panel { margin: var(--space-6) auto; max-width: 42rem; }

/* Icon rules */
.icon { display: inline-block; fill: none; flex: 0 0 auto; height: 1em; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; vertical-align: -0.125em; width: 1em; }
.icon-only { padding: 0.6rem; }
.icon-only .icon { height: 1.1rem; width: 1.1rem; }

@media (min-width: 1200px) {
  .public-surface main { padding-top: var(--space-12); }
  .workspace-surface main { padding-top: var(--space-8); }
}

@media (max-width: 1100px) {
  .navigation-toggle { display: inline-flex; }
  .header-navigation { align-items: stretch; flex-basis: 100%; flex-direction: column; gap: var(--space-3); order: 3; }
  .navigation-enhanced .header-navigation[data-open="false"] { display: none; }
  .primary-nav { display: grid; flex: none; gap: var(--space-1); grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .primary-nav a,
  .account-nav a,
  .workspace-entry,
  .nav-button { align-items: center; display: flex; min-height: 2.75rem; padding: var(--space-2) var(--space-3); }
  .primary-nav a[aria-current="page"] { background: var(--nbf-info-surface); box-shadow: inset 3px 0 var(--surface-accent); }
  .workspace-entry { border-left: 0; border-top: 1px solid var(--nbf-border-soft); padding-left: var(--space-3); }
  .account-nav { border-top: 1px solid var(--nbf-border-soft); gap: var(--space-1); padding-top: var(--space-2); }
  .nav-form { display: block; }
  .workspace-surface .sticky-form-actions { bottom: auto; margin-left: 0; margin-right: 0; position: static; }
}

@media (max-width: 900px) {
  .header-inner { align-items: flex-start; }
  .primary-nav { flex-basis: 100%; order: 3; }
  .workspace-entry { border-left: 0; padding-left: 0; }
  .account-nav { flex-basis: 100%; }
  .atlas-hero,
  .split-section,
  .overview-grid { grid-template-columns: 1fr; }
  .filter-groups,
  .concept-flow { grid-template-columns: repeat(2, 1fr); }
  .signal-intro-grid,
  .advanced-settings-body,
  .sample-advanced-grid,
  .calculation-summary,
  .response-map-options { grid-template-columns: 1fr; }
  .timepoint-choice-grid { grid-template-columns: repeat(4, minmax(4.5rem, 1fr)); }
  .attention-grid,
  .workspace-secondary-grid,
  .workflow-card-body,
  .workflow-decision-grid,
  .batch-detail-grid,
  .manufacturing-summary,
  .ast-evidence-figure,
  .ast-review-plate-layout { grid-template-columns: 1fr; }
  .ast-review-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ast-evidence-figure figcaption { padding: var(--space-5); }
  .registry-map { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .requirement-grid { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .header-inner,
  main { padding-left: var(--space-4); padding-right: var(--space-4); }
  main { padding-top: var(--space-8); }
  .brand { align-items: flex-start; flex-direction: column; }
  .brand span { margin-left: 0; }
  .primary-nav { gap: var(--space-1); grid-template-columns: 1fr; }
  h1 { font-size: clamp(2rem, 11vw, 3rem); }
  .workspace-surface h1 { font-size: clamp(1.75rem, 9vw, 2.3rem); }
  .hero { padding: var(--space-6) var(--space-5); }
  .module-grid,
  .metric-grid,
  .form-grid,
  .filter-groups,
  .concept-flow { grid-template-columns: 1fr; }
  .search-row { align-items: stretch; flex-direction: column; }
  .config-step { padding: var(--space-4); }
  .config-step-heading { gap: var(--space-3); }
  .advanced-settings > summary { padding: var(--space-4); }
  .advanced-settings-body { padding: var(--space-4); }
  .display-toggle-grid { grid-template-columns: 1fr; }
  .ast-review-view-tabs { align-items: stretch; flex-direction: column; }
  .ast-review-view-tab { border-radius: var(--radius-sm); width: 100%; }
  .ast-review-view-tab[aria-selected="true"] { margin-bottom: 0; }
  .ast-review-controls { grid-template-columns: 1fr; padding: var(--space-4); }
  .ast-review-apply { grid-column: auto; }
  .ast-review-apply button { width: 100%; }
  .ast-review-chart { min-height: 42rem; }
  .ast-review-plate-grid { gap: var(--space-2); grid-template-columns: repeat(2, minmax(7rem, 1fr)); }
  .ast-review-well { min-height: 7rem; }
  .sensor-view-mode-grid > div { grid-template-columns: 1fr; }
  .sticky-form-actions { bottom: 0; margin-left: calc(-1 * var(--space-2)); margin-right: calc(-1 * var(--space-2)); }
  .sticky-form-actions .actions { width: 100%; }
  .sticky-form-actions .actions > * { width: 100%; }
  .sensor-choice-grid > div > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .timepoint-choice-grid { grid-template-columns: repeat(2, minmax(4.5rem, 1fr)); }
  .response-map-config { padding: var(--space-4); }
  .scatter-chart-panel { min-height: 34rem; }
  .actions > button,
  .actions > .button-link,
  .actions > form { width: 100%; }
  .actions > form button { width: 100%; }
  .table-wrap:not(.table-cards) table { min-width: 38rem; }
  .table-wrap .definition-table { min-width: 0; }
  .definition-table,
  .definition-table tbody,
  .definition-table tr,
  .definition-table th,
  .definition-table td { display: block; width: 100%; }
  .definition-table tr { border-bottom: 1px solid var(--nbf-border-soft); }
  .definition-table tr:last-child { border-bottom: 0; }
  .definition-table th { border-bottom: 0; padding-bottom: var(--space-1); }
  .definition-table td { padding-top: var(--space-1); }
  .table-cards { border: 0; overflow: visible; }
  .table-cards table,
  .table-cards tbody,
  .table-cards tr,
  .table-cards td { display: block; min-width: 0; width: 100%; }
  .table-cards thead { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
  .table-cards tbody { display: grid; gap: var(--space-3); }
  .table-cards tr { background: var(--nbf-surface); border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); overflow: hidden; }
  .table-cards td { align-items: baseline; border-bottom: 1px solid var(--nbf-border-soft); display: grid; gap: var(--space-3); grid-template-columns: minmax(7rem, 38%) 1fr; padding: var(--space-3); }
  .table-cards td::before { color: var(--nbf-muted); content: attr(data-label); font-size: var(--text-xs); font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }
  .table-cards td:last-child { border-bottom: 0; }
  .table-cards .table-empty { display: block; text-align: center; }
  .table-cards .table-empty::before { content: none; }
  .definition-table th { width: 8rem; }
  .chart-panel { min-height: 27rem; }
  .role-command-bar,
  .upload-record-main,
  .workflow-card-heading { align-items: stretch; flex-direction: column; }
  .role-command-bar .actions,
  .workflow-card-heading > div:last-child { justify-content: flex-start; }
  .lifecycle { gap: var(--space-2); grid-template-columns: 1fr; }
  .lifecycle-step { border-left: 3px solid var(--nbf-border); border-top: 0; padding: var(--space-2) 0 var(--space-2) var(--space-3); }
  .lifecycle-step.is-complete { border-left-color: var(--nbf-success); }
  .lifecycle-step.is-current { border-left-color: var(--nbf-secondary); }
  .registry-map { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .terminology-boundary { align-items: start; grid-template-columns: 1fr; }
  .terminology-boundary > span { text-align: center; }
  .management-card-grid,
  .recovery-grid,
  .ast-image-grid { grid-template-columns: 1fr; }
  .upload-record-main dl { justify-content: space-between; width: 100%; }
  .definition-list div { grid-template-columns: 1fr; }
  .manufacturing-card .button-link,
  .manufacturing-card .status { max-width: 100%; overflow-wrap: anywhere; white-space: normal; }
  .confirmation-panel,
  .empty-state,
  .filters,
  .form-panel { padding: var(--space-4); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
  .module-card:hover,
  .workspace-metrics .metric:hover,
  button:active,
  .button-link:active { transform: none; }
}

@media (forced-colors: active) {
  .status,
  .lifecycle-step,
  .toggle-card,
  .module-card,
  .metric,
  .filters,
  .form-panel { border: 1px solid CanvasText; }
  .lifecycle-step.is-current { border-width: 3px; }
  a:focus-visible,
  button:focus-visible,
  input:focus-visible,
  select:focus-visible,
  textarea:focus-visible,
  summary:focus-visible,
  [tabindex="0"]:focus-visible { outline-color: Highlight; }
}

/* Phase 1 public application refresh: light canvas, clear hierarchy, sidebar shell. */
.public-surface {
  color-scheme: light;
  --nbf-black: #f4f7fb;
  --nbf-surface: #ffffff;
  --nbf-surface-raised: #ffffff;
  --nbf-surface-overlay: #edf3f9;
  --nbf-primary: #0868df;
  --nbf-primary-hover: #075abc;
  --nbf-secondary: #087ca7;
  --nbf-focus: #0868df;
  --nbf-text: #27364a;
  --nbf-heading: #142238;
  --nbf-muted: #5c6b7d;
  --nbf-border: #a9b7c8;
  --nbf-border-soft: #d9e2ec;
  --nbf-success: #137a52;
  --nbf-success-surface: #e8f7f0;
  --nbf-warning: #9a5b00;
  --nbf-warning-surface: #fff6df;
  --nbf-danger: #b83243;
  --nbf-danger-surface: #fff0f2;
  --nbf-info-surface: #eaf4ff;
  --surface-accent: var(--nbf-primary);
  --color-border: var(--nbf-border-soft);
  --color-border-strong: var(--nbf-border);
  --color-surface: var(--nbf-surface);
  --color-surface-subtle: var(--nbf-surface-overlay);
  --color-accent: var(--surface-accent);
  --color-accent-strong: var(--nbf-primary);
  --color-accent-soft: var(--nbf-info-surface);
  --color-text: var(--nbf-heading);
  --color-text-muted: var(--nbf-muted);
  --shadow-sm: 0 1px 2px rgba(20, 34, 56, 0.06), 0 5px 16px rgba(20, 34, 56, 0.05);
  --shadow-md: 0 18px 48px rgba(20, 34, 56, 0.12);
  background: var(--nbf-black);
  color: var(--nbf-text);
  font-size: 1.0625rem;
}
.public-surface a { color: var(--nbf-secondary); }
.public-surface a:hover { color: var(--nbf-primary); }
.public-surface .public-app-shell { display: grid; grid-template-columns: 17rem minmax(0, 1fr); min-height: 100vh; }
.public-surface .public-app-column { display: flex; min-width: 0; flex-direction: column; min-height: 100vh; }
.public-surface .public-sidebar {
  align-self: start;
  background: #ffffff;
  border-right: 1px solid var(--nbf-border-soft);
  box-shadow: 6px 0 24px rgba(20, 34, 56, 0.04);
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  height: 100vh;
  overflow-y: auto;
  padding: 0 var(--space-4) var(--space-5);
  position: sticky;
  top: 0;
  z-index: 30;
}
.public-surface .public-sidebar-brand { align-items: center; border-bottom: 1px solid var(--nbf-border-soft); display: flex; min-height: 6.75rem; padding: 0.5rem 0; }
.public-surface .brand { align-items: center; color: var(--nbf-heading); display: flex; gap: var(--space-3); line-height: 1.1; padding: var(--space-2); text-decoration: none; }
.public-surface .brand-mark { align-items: center; background: linear-gradient(145deg, var(--nbf-primary), #0aa5c8); border-radius: 0.75rem; box-shadow: 0 8px 18px rgba(8, 104, 223, 0.2); color: #fff; display: inline-flex; flex: 0 0 auto; font-size: 1rem; font-weight: 900; height: 2.5rem; justify-content: center; width: 2.5rem; }
.public-surface .brand-copy { display: grid; gap: 0.25rem; letter-spacing: normal; margin-left: 0; min-width: 0; text-transform: none; }
.public-surface .brand-copy strong { font-size: 1.05rem; letter-spacing: -0.02em; }
.public-surface .brand-copy small { color: var(--nbf-muted); font-size: 0.6875rem; font-weight: 750; letter-spacing: 0.025em; line-height: 1.35; max-width: 10.5rem; text-transform: none; }
.public-surface .primary-nav { display: grid; flex: none; gap: var(--space-1); width: 100%; }
.public-surface .navigation-label { color: #718096; font-size: 0.6875rem; font-weight: 850; letter-spacing: 0.12em; margin: 0 0 var(--space-2); padding: 0 var(--space-3); text-transform: uppercase; }
.public-surface .primary-nav a,
.public-surface .sidebar-resources a,
.public-surface .workspace-entry {
  align-items: center;
  border-radius: 0.625rem;
  color: #425168;
  display: flex;
  font-size: 0.9375rem;
  font-weight: 720;
  gap: var(--space-3);
  min-height: 3rem;
  padding: 0.65rem var(--space-3);
  text-decoration: none;
}
.public-surface .primary-nav a:hover,
.public-surface .sidebar-resources a:hover,
.public-surface .workspace-entry:hover { background: #f0f6ff; color: var(--nbf-primary); }
.public-surface .primary-nav a[aria-current="page"],
.public-surface .sidebar-resources a[aria-current="page"] { background: #e8f2ff; box-shadow: inset 3px 0 var(--nbf-primary); color: #075abc; }
.public-surface .nav-glyph { align-items: center; color: #738399; display: inline-flex; font-size: 1.15rem; height: 1.35rem; justify-content: center; width: 1.35rem; }
.public-surface .primary-nav a[aria-current="page"] .nav-glyph { color: var(--nbf-primary); }
.public-surface .sidebar-resources { border-top: 1px solid var(--nbf-border-soft); padding-top: var(--space-3); }
.public-surface .sidebar-resources > summary { color: #5c6b7d; cursor: pointer; font-size: 0.75rem; font-weight: 820; letter-spacing: 0.06em; list-style: none; min-height: 2.75rem; padding: var(--space-3); text-transform: uppercase; }
.public-surface .sidebar-resources > summary::-webkit-details-marker { display: none; }
.public-surface .sidebar-resources > summary::after { content: "+"; float: right; font-size: 1rem; }
.public-surface .sidebar-resources[open] > summary::after { content: "−"; }
.public-surface .sidebar-resources nav { display: grid; gap: var(--space-1); }
.public-surface .sidebar-resources a { font-size: 0.875rem; min-height: 2.65rem; padding-left: var(--space-5); }
.public-surface .public-sidebar-footer { border-top: 1px solid var(--nbf-border-soft); display: grid; gap: var(--space-2); margin-top: auto; padding-top: var(--space-4); }
.public-surface .workspace-entry { border: 0; padding-left: var(--space-3); }
.public-surface .public-sidebar-footer small { color: #718096; font-size: 0.6875rem; padding: 0 var(--space-3); }
.public-surface .public-topbar {
  align-items: center;
  background: rgba(255, 255, 255, 0.92);
  border-bottom: 1px solid var(--nbf-border-soft);
  display: flex;
  gap: var(--space-4);
  justify-content: space-between;
  min-height: 5rem;
  padding: var(--space-3) var(--space-8);
  position: sticky;
  top: 0;
  z-index: 20;
}
.public-surface .site-header::after { content: none; }
.public-surface .public-topbar-title { display: grid; gap: 0.1rem; }
.public-surface .public-topbar-title span { color: var(--nbf-muted); font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.public-surface .public-topbar-title strong { color: var(--nbf-heading); font-size: 1.125rem; }
.public-surface .topbar-action { background: #f0f5fa; border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-pill); color: #526176; font-size: 0.875rem; font-weight: 700; min-width: 11rem; padding: 0.55rem 1rem; text-align: center; text-decoration: none; }
.public-surface .topbar-action:hover { background: #e8f2ff; border-color: #9abce8; color: var(--nbf-primary); }
.public-surface main { max-width: 100rem; padding: clamp(2rem, 4vw, 4rem); width: 100%; }
.public-surface .site-footer { border-color: var(--nbf-border-soft); color: var(--nbf-muted); max-width: none; padding-left: clamp(2rem, 4vw, 4rem); padding-right: clamp(2rem, 4vw, 4rem); width: 100%; }

/* Public typography and reusable hierarchy components. */
.public-surface h1 { font-size: clamp(2.35rem, 4vw, 3.5rem); letter-spacing: -0.04em; max-width: 23ch; }
.public-surface h1::after { background: linear-gradient(90deg, var(--nbf-primary), #08a6c7); height: 4px; width: 4rem; }
.public-surface h2 { font-size: clamp(1.55rem, 2.2vw, 2rem); }
.public-surface h3 { font-size: 1.1875rem; }
.public-surface .lede { color: #526176; font-size: clamp(1.1rem, 1.7vw, 1.3rem); line-height: 1.65; }
.public-surface .eyebrow { color: #087ca7; font-size: 0.75rem; }
.public-surface .muted,
.public-surface .helptext { color: var(--nbf-muted); }
.public-surface .helptext { font-size: 0.8125rem; }
.public-surface .page-header { margin-bottom: var(--space-8); }
.public-surface .page-header .lede { max-width: 58ch; }
.public-surface .summary-panel,
.public-surface .public-panel,
.public-surface .signal-start-card { background: #fff; border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); padding: var(--space-6); }
.public-surface .summary-panel-heading { display: grid; gap: var(--space-3); }
.public-surface .summary-panel-heading > strong { color: var(--nbf-heading); font-size: 1.25rem; }
.public-surface .highlight-badge { align-items: center; align-self: start; background: #e8f2ff; border: 1px solid #bbd3f3; border-radius: var(--radius-pill); color: #075abc; display: inline-flex; font-size: 0.6875rem; font-weight: 850; letter-spacing: 0.08em; min-height: 1.75rem; padding: 0.25rem 0.65rem; text-transform: uppercase; width: fit-content; }
.public-surface .summary-metrics { display: grid; gap: var(--space-3); grid-template-columns: repeat(2, minmax(0, 1fr)); margin: var(--space-5) 0; }
.public-surface .summary-metrics div { background: #f6f9fc; border: 1px solid #e3eaf2; border-radius: var(--radius-md); padding: var(--space-4); }
.public-surface .summary-metrics dt { color: var(--nbf-muted); font-size: 0.75rem; font-weight: 750; }
.public-surface .summary-metrics dd { color: var(--nbf-heading); font-size: 1.8rem; font-weight: 850; letter-spacing: -0.04em; margin: var(--space-1) 0 0; }
.public-surface button,
.public-surface .button-link { border-radius: 0.625rem; font-size: 0.9375rem; min-height: 3rem; padding-left: 1.1rem; padding-right: 1.1rem; }
.public-surface .button-link.secondary,
.public-surface .button-secondary { background: #fff; border-color: #98abc0; color: #29435f; }
.public-surface .button-link:not(.secondary):not(.danger) { color: #fff; }
.public-surface .button-link:not(.secondary):not(.danger):hover { color: #fff; }
.public-surface .button-link.secondary:hover,
.public-surface .button-secondary:hover { background: #edf5ff; border-color: var(--nbf-primary); color: var(--nbf-primary); }

/* Home page: clear entry points with secondary detail disclosed on demand. */
.public-surface .hero { background: radial-gradient(circle at 82% 18%, rgba(8, 166, 199, 0.12), transparent 30%), linear-gradient(145deg, #ffffff, #f2f7fd); border-color: #cbdbea; }
.public-surface .atlas-hero { align-items: center; grid-template-columns: minmax(0, 1.3fr) minmax(19rem, 0.7fr); }
.public-surface .hero-copy .lede { max-width: 49rem; }
.public-surface .collection-summary > p { color: var(--nbf-muted); font-size: 0.8125rem; margin-bottom: 0; }
.public-surface .compact-heading { align-items: center; }
.public-surface .task-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.public-surface .task-card { background: #fff; border-color: var(--nbf-border-soft); min-height: 12rem; padding: var(--space-6); }
.public-surface .task-card:hover { background: #fbfdff; border-color: #8fb8ea; }
.public-surface .task-card.is-featured { background: linear-gradient(145deg, #eef6ff, #ffffff); border-color: #9bc0ed; }
.public-surface .task-number { color: var(--nbf-primary); }
.public-surface .task-card p { font-size: 0.9375rem; }
.public-surface .card-action { color: var(--nbf-primary); font-size: 0.9375rem; }
.public-surface .resource-strip { align-items: center; background: #eaf4ff; border: 1px solid #c6dbf4; border-radius: var(--radius-lg); display: grid; gap: var(--space-6); grid-template-columns: minmax(0, 1fr) auto; padding: var(--space-6); }
.public-surface .resource-strip h2,
.public-surface .resource-strip p { margin-bottom: 0; margin-top: 0; }
.public-surface .resource-strip p:not(.eyebrow) { color: var(--nbf-muted); margin-top: var(--space-2); }
.public-surface .resource-links { display: grid; gap: var(--space-2); }
.public-surface .resource-links a { background: #fff; border: 1px solid #bdd5ef; border-radius: var(--radius-sm); color: #075abc; font-size: 0.875rem; font-weight: 750; padding: var(--space-3) var(--space-4); text-decoration: none; }
.public-surface .home-secondary { display: grid; gap: var(--space-3); }
.public-surface .home-details { margin: 0; }
.public-surface .home-details > summary { font-size: 1rem; list-style: none; }
.public-surface .home-details > summary::-webkit-details-marker { display: none; }
.public-surface .home-details > summary::after { color: var(--nbf-primary); content: "+"; float: right; font-size: 1.25rem; }
.public-surface .home-details[open] > summary::after { content: "−"; }
.public-surface .home-details > summary span,
.public-surface .home-details > summary strong,
.public-surface .home-details > summary small { display: block; }
.public-surface .home-details > summary small { color: var(--nbf-muted); font-size: 0.8125rem; font-weight: 500; margin-top: 0.2rem; }
.public-surface .home-details .evidence-list,
.public-surface .home-details .record-grid,
.public-surface .home-details > p { margin: var(--space-5); }
.public-surface .media-stats { display: grid; gap: var(--space-2); grid-template-columns: repeat(3, minmax(0, 1fr)); margin: var(--space-3) 0 0; }
.public-surface .media-stats div { border-top: 1px solid var(--nbf-border-soft); padding-top: var(--space-2); }
.public-surface .media-stats dt { color: var(--nbf-muted); font-size: 0.6875rem; }
.public-surface .media-stats dd { color: var(--nbf-heading); font-size: 1.15rem; font-weight: 800; margin: 0; }
.public-surface .compact-record-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Public cards, forms, charts, and status surfaces on the light canvas. */
.public-surface .module-card,
.public-surface .metric,
.public-surface .record-card,
.public-surface .feature-card,
.public-surface .method-card,
.public-surface .qc-card,
.public-surface .concept-flow article,
.public-surface .disclosure,
.public-surface .filters,
.public-surface .form-panel,
.public-surface .config-step,
.public-surface .response-map-config,
.public-surface .plot-shell,
.public-surface .ast-review-controls { background: #fff; border-color: var(--nbf-border-soft); }
.public-surface .record-card,
.public-surface .feature-card,
.public-surface .method-card,
.public-surface .qc-card { background-image: none; }
.public-surface .signal-page-introduction .page-header { margin-bottom: var(--space-4); }
.public-surface .signal-page-introduction h1 { font-size: clamp(2.25rem, 3.5vw, 3.1rem); }
.public-surface .signal-intro-grid { align-items: start; grid-template-columns: minmax(0, 1fr) minmax(17rem, 0.7fr); margin-bottom: var(--space-5); }
.public-surface .signal-start-card { align-content: center; display: grid; gap: var(--space-2); padding: var(--space-5); }
.public-surface .signal-start-card strong { color: var(--nbf-heading); font-size: 1.15rem; }
.public-surface .signal-start-card p { color: var(--nbf-muted); margin: 0; }
.public-surface .scientific-note { margin: 0; }
.public-surface .scientific-note p { color: var(--nbf-muted); margin: var(--space-4); }
.public-surface .signal-configurator { gap: var(--space-3); margin-top: var(--space-5); }
.public-surface .config-step { background-image: none; padding: var(--space-5) var(--space-6); }
.public-surface .config-step-heading { margin-bottom: var(--space-4); }
.public-surface .config-step-heading > span,
.public-surface .step-badge { background: #e8f2ff; color: #075abc; }
.public-surface .config-step-heading h2 { font-size: 1.35rem; }
.public-surface .config-step-heading > div > p:last-child { font-size: 0.9375rem; }
.public-surface .form-field label,
.public-surface .filters > p > label,
.public-surface .form-panel > p > label,
.public-surface .sensor-choice-fieldset > legend { font-size: 0.875rem; }
.public-surface input,
.public-surface select,
.public-surface textarea,
.public-surface .sensor-view-mode-grid label,
.public-surface .sensor-choice-grid label,
.public-surface .toggle-card,
.public-surface .timepoint-choice-grid label { background: #fff; border-color: #9fb0c3; color: var(--nbf-heading); }
.public-surface option { background: #fff; color: var(--nbf-heading); }
.public-surface .sensor-view-mode-grid label:has(input:checked),
.public-surface .sensor-choice-grid label:has(input:checked),
.public-surface .toggle-card:has(input:checked),
.public-surface .timepoint-choice-grid label:has(input:checked) { background: #eaf4ff; border-color: var(--nbf-primary); box-shadow: inset 3px 0 var(--nbf-primary); }
.public-surface .sensor-mode-panel { background: #f1f7fe; border-color: #c8d9ec; border-left-color: var(--nbf-primary); }
.public-surface .sticky-form-actions { background: rgba(255, 255, 255, 0.96); border-color: #a9c5e6; }
.public-surface .calculation-summary,
.public-surface .result-summary,
.public-surface .chart-alternative,
.public-surface .provenance-boundary,
.public-surface .public-field-group { background: #eaf4ff; border-color: #b8d2ef; }
.public-surface code,
.public-surface .formula { background: #f2f6fa; border-color: #d3deea; color: #24445f; }
.public-surface .plot-shell { box-shadow: 0 12px 32px rgba(20, 34, 56, 0.08); }
.public-surface .chart-panel,
.public-surface .signal-plot { background: #fff; }
.public-surface .plot-shell-header { background: #fbfdff; }
.public-surface .plot-legend { background: #fbfdff; border-top: 1px solid var(--nbf-border-soft); }
.public-surface .scatter-role-swatch,
.public-surface .scatter-size-swatch { border-color: #fff; box-shadow: 0 0 0 1px #8798ac; }
.public-surface .warning { color: #6e4300; }
.public-surface .success { color: #175f45; }
.public-surface .error-panel,
.public-surface .message.error { color: #8c2634; }
.public-surface .warning-disclosure > summary { color: #774700; }
.public-surface .status-published,
.public-surface .status-complete,
.public-surface .status-success,
.public-surface .status-curator { border-color: #83c7aa; color: #126141; }
.public-surface .status-review,
.public-surface .status-processing,
.public-surface .status-warning,
.public-surface .status-administrator { border-color: #d9ae62; color: #744500; }
.public-surface .status-failed,
.public-surface .status-error { border-color: #dda3ab; color: #8b2634; }
.public-surface .empty-state { background: #f8fafc; }
.public-surface .ast-evidence-figure > a,
.public-surface .ast-image-preview { background: #edf2f7; }

@media (max-width: 1100px) {
  .public-surface.navigation-open { overflow: hidden; }
  .public-surface.navigation-open::after { background: rgba(20, 34, 56, 0.34); content: ""; inset: 0; position: fixed; z-index: 25; }
  .public-surface .public-app-shell { display: block; }
  .public-surface .public-sidebar {
    bottom: 0;
    box-shadow: 18px 0 44px rgba(20, 34, 56, 0.22);
    height: 100vh;
    left: 0;
    max-width: 86vw;
    position: fixed;
    top: 0;
    width: 20rem;
  }
  .navigation-enhanced .public-surface .public-sidebar[data-open="false"] { display: none; }
  .navigation-enhanced .public-surface .public-sidebar[data-open="true"] { display: flex; }
  .public-surface .public-topbar { padding-left: var(--space-5); padding-right: var(--space-5); }
  .public-surface .navigation-toggle { background: #fff; border-color: #9fb0c3; color: var(--nbf-heading); display: inline-flex; flex: 0 0 auto; min-width: 3rem; padding: 0.5rem; }
  .public-surface .navigation-toggle:hover { background: #eaf4ff; color: var(--nbf-primary); }
}

@media (max-width: 900px) {
  .public-surface .atlas-hero,
  .public-surface .signal-intro-grid,
  .public-surface .resource-strip { grid-template-columns: 1fr; }
  .public-surface .task-grid,
  .public-surface .compact-record-grid { grid-template-columns: 1fr; }
  .public-surface .task-card { min-height: 0; }
  .public-surface .resource-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .public-surface { font-size: 1rem; }
  .public-surface .public-topbar { min-height: 4.5rem; padding: var(--space-2) var(--space-4); }
  .public-surface .public-topbar-title span { display: none; }
  .public-surface .topbar-action { display: none; }
  .public-surface main { padding: var(--space-6) var(--space-4) var(--space-10); }
  .public-surface .site-footer { padding-left: var(--space-4); padding-right: var(--space-4); }
  .public-surface h1 { font-size: clamp(2.15rem, 10vw, 3rem); }
  .public-surface .summary-metrics { grid-template-columns: 1fr 1fr; }
  .public-surface .hero { padding: var(--space-6); }
  .public-surface .resource-links { grid-template-columns: 1fr; }
  .public-surface .config-step { padding: var(--space-4); }
}

/* Phase 2 Signal Explorer: compact controls, chart-first results, and secondary evidence tabs. */
.public-surface .signal-page-introduction .page-header { margin-bottom: var(--space-4); }
.public-surface .signal-page-introduction .page-header .lede { max-width: 52rem; }
.public-surface .signal-page-introduction h1 { font-size: clamp(2.15rem, 3vw, 2.65rem); max-width: none; }
.public-surface .signal-page-introduction h1::after { margin-top: var(--space-3); }
.public-surface .signal-page-introduction .lede { font-size: 1.075rem; margin-bottom: 0; }
.public-surface .signal-configurator { gap: var(--space-3); margin: 0 0 var(--space-6); }
.public-surface .signal-primary-toolbar {
  background: #fff;
  border: 1px solid #c7d5e5;
  border-top: 4px solid var(--nbf-primary);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: var(--space-4) var(--space-5);
}
.public-surface .signal-toolbar-heading { align-items: start; display: flex; gap: var(--space-4); justify-content: space-between; margin-bottom: var(--space-3); }
.public-surface .signal-toolbar-heading h2,
.public-surface .signal-toolbar-heading p { margin: 0; }
.public-surface .signal-toolbar-heading h2 { font-size: 1.35rem; }
.public-surface .signal-toolbar-heading p:last-child { color: var(--nbf-muted); font-size: 0.875rem; margin-top: var(--space-1); }
.public-surface .pending-settings { background: var(--nbf-warning-surface); border: 1px solid #d5a855; border-radius: var(--radius-pill); color: #744500; flex: 0 0 auto; font-size: 0.75rem; font-weight: 800; padding: 0.35rem 0.7rem; }
.public-surface .signal-toolbar-grid { align-items: start; display: grid; gap: var(--space-3); grid-template-columns: minmax(15rem, 1.35fr) minmax(12rem, 0.95fr) minmax(13rem, 0.9fr); }
.public-surface .signal-toolbar-grid .form-field,
.public-surface .signal-toolbar-grid fieldset { margin: 0; min-width: 0; }
.public-surface .signal-dataset-field select { height: 5.5rem; min-height: 5.5rem; }
.public-surface .signal-view-mode-compact { margin: 0; }
.public-surface .signal-view-mode-compact .sensor-view-mode-grid > div { gap: var(--space-2); }
.public-surface .signal-view-mode-compact .sensor-view-mode-grid label { align-items: center; min-height: 3rem; padding: var(--space-2) var(--space-3); }
.public-surface .signal-focused-sensor,
.public-surface .signal-sensor-summary { align-self: start; }
.public-surface .signal-sensor-summary { min-height: 4rem; padding: var(--space-3); }
.public-surface .signal-sensor-summary span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.public-surface .signal-sensor-group .sensor-view-mode-grid > div { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.public-surface .signal-sensor-group .helptext { display: block; margin-top: var(--space-2); }
.public-surface .compact-toggle {
  align-items: center;
  background: #fff;
  border: 1px solid #9fb0c3;
  border-radius: var(--radius-sm);
  cursor: pointer;
  display: flex;
  gap: var(--space-2);
  min-height: 4rem;
  padding: var(--space-3);
}
.public-surface .compact-toggle:has(input:checked) { background: #eaf4ff; border-color: var(--nbf-primary); box-shadow: inset 3px 0 var(--nbf-primary); }
.public-surface .compact-toggle input { flex: 0 0 auto; height: 1.15rem; margin: 0; width: 1.15rem; }
.public-surface .compact-toggle strong,
.public-surface .compact-toggle small { display: block; }
.public-surface .compact-toggle small { color: var(--nbf-muted); font-size: 0.75rem; margin-top: 0.2rem; }
.public-surface .compact-toggle.is-unavailable { border-style: dashed; }
.public-surface .signal-toolbar-actions { align-self: end; display: grid; gap: var(--space-2); grid-column: 3 / -1; grid-template-columns: minmax(12rem, 1fr) auto; justify-self: end; }
.public-surface .signal-toolbar-actions > * { margin: 0; white-space: nowrap; }
.public-surface .signal-advanced-options { background: #fff; border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.public-surface .signal-advanced-options > summary { min-height: 3.75rem; padding-bottom: var(--space-3); padding-top: var(--space-3); }
.public-surface .advanced-settings-summary { color: #39516d; font-size: 0.8125rem; font-weight: 750; margin-left: auto; text-align: right; }
.public-surface .signal-advanced-options > summary::after { margin-left: var(--space-3); }
.public-surface .signal-advanced-grid { grid-template-columns: minmax(16rem, 0.7fr) minmax(0, 1.3fr); }
.public-surface .managed-policy-note { background: #f4f8fc; border: 1px solid var(--nbf-border-soft); border-radius: var(--radius-sm); margin-top: var(--space-3); padding: var(--space-3); }
.public-surface .managed-policy-note strong { color: var(--nbf-heading); font-size: 0.875rem; }
.public-surface .managed-policy-note p { color: var(--nbf-muted); font-size: 0.8125rem; margin: var(--space-1) 0 0; }
.public-surface .signal-display-grid { grid-template-columns: repeat(3, minmax(8rem, 1fr)); margin-bottom: var(--space-3); }
.public-surface .compact-advanced-toggle { min-height: 3.75rem; }
.public-surface .signal-primary-results { scroll-margin-top: 6rem; }
.public-surface .signal-results-heading { align-items: end; margin-top: var(--space-7); }
.public-surface .signal-results-heading h2 { margin-bottom: 0; }
.public-surface .signal-results-heading .actions { margin: 0; }
.public-surface .signal-status { margin: var(--space-3) 0; max-width: none; padding: var(--space-2) var(--space-3); }
.public-surface .signal-result-layout { align-items: start; display: grid; gap: var(--space-4); grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.31fr); }
.public-surface .signal-chart-column { min-width: 0; }
.public-surface .signal-chart-column .plot-shell { margin: 0; }
.public-surface .signal-chart-header { align-items: flex-start; }
.public-surface .chart-sensor-group { flex: 0 1 34rem; margin: 0; min-width: min(100%, 30rem); }
.public-surface .chart-sensor-group > legend { font-size: 0.75rem; margin-bottom: var(--space-1); text-transform: uppercase; }
.public-surface .chart-sensor-group .sensor-view-mode-grid > div { gap: var(--space-2); }
.public-surface .chart-sensor-group .sensor-view-mode-grid label { align-items: center; min-height: 2.75rem; padding: var(--space-2) var(--space-3); }
.public-surface .chart-sensor-group .helptext { font-size: 0.72rem; line-height: 1.35; margin-top: var(--space-1); }
.public-surface .chart-control-status { color: var(--nbf-primary); display: block; font-size: 0.75rem; font-weight: 750; margin-top: var(--space-1); min-height: 1rem; }
.public-surface .chart-control-status:empty { margin-top: 0; min-height: 0; }
.public-surface .signal-chart-column .chart-panel { min-height: 32rem; }
.public-surface .signal-chart-column .chart-alternative { height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; white-space: nowrap; width: 1px; clip: rect(0, 0, 0, 0); }
.public-surface .signal-run-summary { background: #fff; border: 1px solid #cbd8e7; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); min-width: 0; overflow: hidden; padding: var(--space-5); }
.public-surface .run-summary-heading { border-bottom: 1px solid var(--nbf-border-soft); padding-bottom: var(--space-4); }
.public-surface .run-summary-heading h3 { font-size: 1.25rem; margin: var(--space-1) 0 var(--space-3); }
.public-surface .signal-mode-status { background: #eaf4ff; border-color: #9bc0ed; color: #075abc; }
.public-surface .run-summary-list,
.public-surface .axis-summary-list { display: grid; gap: 0; margin: 0; }
.public-surface .run-summary-list > div,
.public-surface .axis-summary-list > div { border-bottom: 1px solid #e4ebf3; padding: var(--space-3) 0; }
.public-surface .run-summary-list > div:last-child,
.public-surface .axis-summary-list > div:last-child { border-bottom: 0; }
.public-surface .run-summary-list dt,
.public-surface .axis-summary-list dt { color: var(--nbf-muted); font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; }
.public-surface .run-summary-list dd,
.public-surface .axis-summary-list dd { color: var(--nbf-heading); font-size: 0.875rem; font-weight: 700; margin: 0.2rem 0 0; overflow-wrap: anywhere; }
.public-surface .signal-run-summary .axis-summary { border-top: 1px solid var(--nbf-border-soft); margin: var(--space-3) 0 0; padding-top: var(--space-1); }
.public-surface .signal-run-summary .warning-disclosure { box-shadow: none; margin: var(--space-4) 0 0; }
.public-surface .signal-run-summary .warning-disclosure > summary { font-size: 0.8125rem; }
.public-surface .signal-run-summary .warning-disclosure ul { font-size: 0.8125rem; max-height: 12rem; overflow-y: auto; padding-right: var(--space-3); }
.public-surface .signal-secondary-section { margin-top: var(--space-10); scroll-margin-top: 6rem; }
.public-surface .signal-secondary-section > .section-heading { margin-bottom: var(--space-3); }
.public-surface .signal-secondary-tabs { border-bottom: 1px solid #b9c9db; display: flex; gap: var(--space-1); overflow-x: auto; scrollbar-width: thin; }
.public-surface .signal-secondary-tab { background: transparent; border: 0; border-bottom: 3px solid transparent; border-radius: 0; color: #526176; flex: 0 0 auto; font-size: 0.875rem; min-height: 3.25rem; padding: var(--space-2) var(--space-4); }
.public-surface .signal-secondary-tab:hover { background: #eef5fc; border-color: transparent; color: var(--nbf-primary); }
.public-surface .signal-secondary-tab[aria-selected="true"] { background: #eef5ff; border-bottom-color: var(--nbf-primary); color: #075abc; }
.public-surface .signal-tab-panel { background: #fff; border: 1px solid var(--nbf-border-soft); border-radius: 0 0 var(--radius-lg) var(--radius-lg); box-shadow: var(--shadow-sm); min-width: 0; padding: var(--space-5); }
.public-surface .signal-tab-panel[hidden] { display: none; }
.public-surface .signal-panel-heading { margin-bottom: var(--space-4); }
.public-surface .signal-panel-heading h3,
.public-surface .signal-panel-heading p { margin: 0; }
.public-surface .signal-panel-heading p { color: var(--nbf-muted); font-size: 0.875rem; margin-top: var(--space-1); }
.public-surface .coverage-summary-strip { display: grid; gap: var(--space-3); grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: var(--space-4); }
.public-surface .coverage-summary-strip span { background: #f4f8fc; border: 1px solid #dde6f0; border-radius: var(--radius-sm); color: var(--nbf-muted); font-size: 0.8125rem; padding: var(--space-3); }
.public-surface .coverage-summary-strip strong { color: var(--nbf-heading); display: block; font-size: 1.3rem; }
.public-surface .response-map-section > .section-heading { margin-top: 0; }
.public-surface .response-map-section > .section-heading h2 { font-size: 1.5rem; }
.public-surface .response-map-config { box-shadow: none; }
.public-surface .normalization-method-details { display: grid; gap: var(--space-4); grid-template-columns: minmax(0, 1.15fr) minmax(16rem, 0.85fr); margin-bottom: var(--space-4); }
.public-surface .active-method-card,
.public-surface .published-policy-list { background: #f5f9fd; border: 1px solid #d6e1ed; border-radius: var(--radius-md); padding: var(--space-4); }
.public-surface .active-method-card h4,
.public-surface .active-method-card p,
.public-surface .published-policy-list h4 { margin: 0; }
.public-surface .active-method-card > code { display: block; margin-top: var(--space-3); }
.public-surface .published-policy-list ul { margin-bottom: var(--space-3); padding-left: var(--space-5); }
.public-surface .published-policy-list li + li { margin-top: var(--space-2); }

@media (max-width: 1250px) {
  .public-surface .signal-toolbar-grid { grid-template-columns: minmax(14rem, 1.2fr) repeat(2, minmax(12rem, 1fr)); }
  .public-surface .signal-toolbar-actions { align-self: start; grid-column: 2 / -1; }
}

@media (max-width: 980px) {
  .public-surface .signal-toolbar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-surface .signal-toolbar-actions { grid-column: 1 / -1; justify-self: stretch; }
  .public-surface .signal-result-layout,
  .public-surface .signal-advanced-grid,
  .public-surface .normalization-method-details { grid-template-columns: 1fr; }
  .public-surface .signal-chart-header { align-items: stretch; display: grid; }
  .public-surface .chart-sensor-group { max-width: none; min-width: 0; width: 100%; }
  .public-surface .signal-run-summary { display: grid; gap: var(--space-4); grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-surface .signal-run-summary > #plot-warnings { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
  .public-surface .signal-page-introduction h1 { font-size: 2.15rem; }
  .public-surface .signal-toolbar-heading { display: grid; }
  .public-surface .pending-settings { justify-self: start; }
  .public-surface .signal-primary-toolbar { padding: var(--space-4); }
  .public-surface .signal-toolbar-grid,
  .public-surface .signal-display-grid,
  .public-surface .signal-run-summary { grid-template-columns: 1fr; }
  .public-surface .signal-sensor-group .sensor-view-mode-grid > div { grid-template-columns: 1fr; }
  .public-surface .signal-toolbar-actions { grid-template-columns: minmax(0, 1fr) auto; }
  .public-surface .advanced-settings-summary { margin-left: 0; text-align: left; }
  .public-surface .signal-advanced-options > summary { align-items: flex-start; flex-wrap: wrap; }
  .public-surface .signal-chart-column .chart-panel { min-height: 27rem; }
  .public-surface .signal-results-heading { align-items: stretch; }
  .public-surface .signal-results-heading .actions,
  .public-surface .signal-results-heading .actions button { width: 100%; }
  .public-surface .coverage-summary-strip { grid-template-columns: 1fr; }
  .public-surface .signal-tab-panel { padding: var(--space-4); }
}

@media (max-width: 430px) {
  .public-surface .signal-toolbar-actions { grid-template-columns: 1fr; }
  .public-surface .signal-toolbar-actions > * { width: 100%; }
}

/* Phase 3 AST Review: chart-first evidence, concise summaries, and progressive disclosure. */
.public-surface:not(.public-section-home):not(.public-section-signals) .page-header {
  margin-bottom: var(--space-5);
}
.public-surface:not(.public-section-home):not(.public-section-signals) .page-header h1 {
  font-size: clamp(2.15rem, 3vw, 2.8rem);
  max-width: 30ch;
}
.public-surface:not(.public-section-home):not(.public-section-signals) .page-header .lede {
  font-size: 1.075rem;
  max-width: 62rem;
}
.public-surface .ast-page-introduction .breadcrumbs { margin-bottom: var(--space-3); }
.public-surface .ast-page-introduction .page-header { margin-bottom: var(--space-4); }
.public-surface .ast-page-introduction h1 { max-width: none; }
.public-surface .ast-review-workspace { margin: 0 0 var(--space-12); }
.public-surface .ast-review-toolbar {
  background: #fff;
  border: 1px solid #c7d5e5;
  border-top: 4px solid var(--nbf-primary);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: var(--space-4) var(--space-5) 0;
}
.public-surface .ast-review-toolbar-heading {
  align-items: start;
  display: flex;
  gap: var(--space-4);
  justify-content: space-between;
  margin-bottom: var(--space-3);
}
.public-surface .ast-review-toolbar-heading h2,
.public-surface .ast-review-toolbar-heading p { margin: 0; }
.public-surface .ast-review-toolbar-heading h2 { font-size: 1.35rem; }
.public-surface .ast-review-toolbar-grid {
  align-items: end;
  display: grid;
  gap: var(--space-3);
  grid-template-columns: minmax(17rem, 1.3fr) minmax(16rem, 1.15fr) minmax(11rem, 0.65fr) auto;
}
.public-surface .ast-review-toolbar-grid .form-field { margin: 0; min-width: 0; }
.public-surface .ast-review-apply {
  align-items: stretch;
  display: grid;
  gap: var(--space-2);
  grid-column: auto;
  grid-template-columns: auto auto;
}
.public-surface .ast-review-apply button { white-space: nowrap; }
.public-surface .ast-review-advanced {
  border: 0;
  border-top: 1px solid var(--nbf-border-soft);
  border-radius: 0;
  box-shadow: none;
  margin: var(--space-4) calc(-1 * var(--space-5)) 0;
}
.public-surface .ast-review-advanced > summary {
  align-items: center;
  display: flex;
  font-size: 0.875rem;
  min-height: 3.5rem;
  padding: var(--space-3) var(--space-5);
}
.public-surface .ast-review-advanced > summary small {
  color: var(--nbf-muted);
  font-weight: 650;
  margin-left: auto;
}
.public-surface .ast-review-advanced > summary::after { margin-left: var(--space-3); }
.public-surface .ast-review-advanced-grid {
  background: #f7fafd;
  border-top: 1px solid var(--nbf-border-soft);
  display: grid;
  gap: var(--space-3);
  grid-template-columns: minmax(13rem, 0.7fr) repeat(2, minmax(15rem, 1fr));
  padding: var(--space-4) var(--space-5);
}
.public-surface .ast-review-advanced-grid .form-field { margin: 0; }
.public-surface .ast-review-status {
  margin: var(--space-3) 0;
  max-width: none;
  padding: var(--space-2) var(--space-3);
}
.public-surface .ast-review-section-tabs {
  border-bottom: 1px solid #b9c9db;
  display: flex;
  gap: var(--space-1);
  margin-top: var(--space-5);
  overflow-x: auto;
  scrollbar-width: thin;
}
.public-surface .ast-review-section-tab {
  background: transparent;
  border: 0;
  border-bottom: 3px solid transparent;
  border-radius: 0;
  color: #526176;
  flex: 0 0 auto;
  font-size: 0.875rem;
  min-height: 3.35rem;
  padding: var(--space-2) var(--space-4);
}
.public-surface .ast-review-section-tab:hover {
  background: #eef5fc;
  border-color: transparent;
  color: var(--nbf-primary);
}
.public-surface .ast-review-section-tab[aria-selected="true"] {
  background: #eef5ff;
  border-bottom-color: var(--nbf-primary);
  color: #075abc;
}
.public-surface .tab-count {
  align-items: center;
  background: var(--nbf-warning-surface);
  border: 1px solid #d6aa58;
  border-radius: var(--radius-pill);
  color: #744500;
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: 850;
  height: 1.45rem;
  justify-content: center;
  margin-left: var(--space-1);
  min-width: 1.45rem;
  padding: 0 0.35rem;
}
.public-surface .ast-review-section-panel {
  background: #fff;
  border: 1px solid var(--nbf-border-soft);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  box-shadow: var(--shadow-sm);
  min-width: 0;
  padding: var(--space-5);
}
.public-surface .ast-review-section-panel[hidden] { display: none; }
.public-surface .ast-review-mode-bar {
  align-items: end;
  display: flex;
  gap: var(--space-4);
  justify-content: space-between;
  margin-bottom: var(--space-3);
}
.public-surface .ast-review-mode-bar h2,
.public-surface .ast-review-mode-bar p { margin: 0; }
.public-surface .ast-review-mode-bar h2 { font-size: 1.45rem; }
.public-surface .ast-review-view-switch {
  background: #f0f5fa;
  border: 1px solid #c8d5e3;
  border-radius: 0.7rem;
  display: inline-flex;
  gap: var(--space-1);
  padding: 0.2rem;
}
.public-surface .ast-review-view-tab {
  background: transparent;
  border: 0;
  border-radius: 0.5rem;
  color: #526176;
  font-size: 0.8125rem;
  min-height: 2.6rem;
  padding: 0.45rem 0.9rem;
}
.public-surface .ast-well-sensor-key-item,
.public-surface .ast-well-sensor-key-note {
  align-items: center;
  color: #314258;
  display: inline-flex;
  font-size: 0.75rem;
  gap: 0.4rem;
  min-height: 2rem;
}
.public-surface .ast-well-sensor-key-item {
  background: #f7fafc;
  border: 1px solid #dbe5ef;
  border-radius: 999px;
  padding: 0.25rem 0.65rem;
}
.public-surface .ast-well-sensor-swatch {
  background: var(--ast-sensor-color);
  border-radius: 999px;
  display: inline-block;
  height: 0.22rem;
  width: 1.4rem;
}
.public-surface .ast-well-sensor-key-note { color: #66768a; }
.public-surface .ast-review-symbol-key[hidden] { display: none; }
.public-surface .ast-review-chart[hidden],
.public-surface .ast-assay-overview[hidden],
.public-surface .ast-review-well-layout-switch[hidden] { display: none; }
.public-surface .ast-review-well-layout-switch {
  align-items: center;
  background: #eef4fa;
  border: 1px solid #c8d5e3;
  border-radius: 0.6rem;
  display: inline-flex;
  flex: 0 0 auto;
  gap: 0.2rem;
  padding: 0.18rem;
}
.public-surface .ast-review-well-layout-button {
  background: transparent;
  border: 0;
  border-radius: 0.45rem;
  color: #536479;
  font-size: 0.75rem;
  min-height: 2.25rem;
  padding: 0.35rem 0.65rem;
}
.public-surface .ast-review-well-layout-button:hover { background: #fff; color: #075abc; }
.public-surface .ast-review-well-layout-button[aria-selected="true"] {
  background: #fff;
  box-shadow: 0 1px 4px rgba(20, 34, 56, 0.14);
  color: #075abc;
}
.public-surface .ast-review-workspace.is-assay-card-view .ast-review-result-layout {
  grid-template-columns: minmax(0, 1fr);
}
.public-surface .ast-review-workspace.is-assay-card-view .ast-review-run-summary {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: minmax(15rem, 0.75fr) minmax(0, 1.8fr) auto;
}
.public-surface .ast-review-workspace.is-assay-card-view .ast-review-summary-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.public-surface .ast-review-workspace.is-assay-card-view .ast-review-qc-shortcut {
  align-self: center;
  margin: 0;
  width: auto;
}
.public-surface .ast-assay-overview {
  background: #f6f9fc;
  border-top: 1px solid #dce5ef;
  min-width: 0;
  padding: var(--space-4);
}
.public-surface .ast-assay-overview-heading {
  align-items: end;
  display: flex;
  gap: var(--space-4);
  justify-content: space-between;
}
.public-surface .ast-assay-overview-heading h4,
.public-surface .ast-assay-overview-heading p { margin: 0; }
.public-surface .ast-assay-overview-heading h4 { font-size: 1.1rem; }
.public-surface .ast-assay-overview-counts {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  justify-content: flex-end;
}
.public-surface .ast-assay-overview-counts span {
  background: #fff;
  border: 1px solid #d4dfeb;
  border-radius: 999px;
  color: #5b6b7e;
  font-size: 0.7rem;
  padding: 0.3rem 0.55rem;
  white-space: nowrap;
}
.public-surface .ast-assay-overview-counts strong { color: #1b2a3d; }
.public-surface .ast-assay-interpretation-note {
  background: #edf5fd;
  border-left: 3px solid #1684c7;
  color: #40546c;
  font-size: 0.75rem;
  margin: var(--space-3) 0;
  padding: 0.5rem 0.7rem;
}
.public-surface .ast-assay-card-scroll {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding: 0 0 var(--space-2);
  scrollbar-color: #93a8bf #e6edf4;
  scrollbar-width: thin;
}
.public-surface .ast-assay-card-grid {
  display: grid;
  gap: 0.45rem;
  grid-template-columns: repeat(12, minmax(8.25rem, 8.25rem));
  width: max-content;
}
.public-surface .ast-assay-card {
  --ast-assay-state: #53708f;
  background: #fff;
  border: 1px solid #cbd8e5;
  border-top: 4px solid var(--ast-assay-state);
  border-radius: 0.45rem;
  box-shadow: 0 2px 7px rgba(27, 42, 61, 0.08);
  color: #17263a;
  display: grid;
  gap: 0.4rem;
  min-width: 0;
  padding: 0.55rem;
  text-align: left;
}
.public-surface .ast-assay-card.is-no-growth { --ast-assay-state: #078463; }
.public-surface .ast-assay-card.is-growth { --ast-assay-state: #d34454; }
.public-surface .ast-assay-card.is-control { --ast-assay-state: #1777bb; }
.public-surface .ast-assay-card.needs-review { --ast-assay-state: #c57a00; }
.public-surface .ast-assay-card:hover {
  border-color: var(--ast-assay-state);
  box-shadow: 0 5px 14px rgba(27, 42, 61, 0.15);
  transform: translateY(-1px);
}
.public-surface .ast-assay-card.is-selected {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ast-assay-state) 30%, transparent);
  outline: 2px solid var(--ast-assay-state);
  outline-offset: -2px;
}
.public-surface .ast-assay-card-heading,
.public-surface .ast-assay-card-heading strong,
.public-surface .ast-assay-card-heading small { display: block; }
.public-surface .ast-assay-card-heading { min-height: 2.55rem; }
.public-surface .ast-assay-card-heading strong { color: var(--ast-assay-state); font-size: 0.75rem; }
.public-surface .ast-assay-card-heading small {
  color: #66768a;
  font-size: 0.65rem;
  margin-top: 0.15rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.public-surface .ast-assay-card-photo {
  align-items: center;
  aspect-ratio: 1;
  background: #e8eef4;
  border: 2px solid color-mix(in srgb, var(--ast-assay-state) 60%, #fff);
  border-radius: 50%;
  display: flex;
  justify-content: center;
  overflow: hidden;
}
.public-surface .ast-assay-card-photo img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.public-surface .ast-assay-image-missing {
  color: #66768a;
  font-size: 0.62rem;
  padding: var(--space-2);
  text-align: center;
}
.public-surface .ast-assay-card-status {
  background: var(--ast-assay-state);
  border-radius: 0.25rem;
  color: #fff;
  font-size: 0.61rem;
  font-weight: 850;
  min-height: 1.55rem;
  padding: 0.32rem 0.2rem;
  text-align: center;
  text-transform: uppercase;
}
.public-surface .ast-assay-mini-chart {
  background: #fff;
  border: 1px solid #d7e1eb;
  display: block;
  height: 5rem;
  overflow: hidden;
}
.public-surface .ast-assay-mini-chart svg { display: block; height: 100%; width: 100%; }
.public-surface .ast-assay-chart-background { fill: #fff; }
.public-surface .ast-assay-zero-line { stroke: #b9c7d6; stroke-width: 0.7; }
.public-surface .ast-assay-signal-line {
  fill: none;
  stroke: var(--ast-sensor-color);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.45;
  vector-effect: non-scaling-stroke;
}
.public-surface .ast-assay-card-footer {
  color: #6a798b;
  font-size: 0.61rem;
  text-align: center;
}
.public-surface .ast-review-view-tab:hover { background: #fff; color: var(--nbf-primary); }
.public-surface .ast-review-view-tab[aria-selected="true"] {
  background: #fff;
  border: 0;
  box-shadow: 0 1px 5px rgba(20, 34, 56, 0.12);
  color: #075abc;
  margin: 0;
}
.public-surface .ast-review-selection {
  background: #f4f8fc;
  border: 1px solid #dbe5ef;
  border-left: 3px solid var(--nbf-primary);
  border-radius: var(--radius-sm);
  font-size: 0.8125rem;
  margin: 0 0 var(--space-3);
  padding: var(--space-2) var(--space-3);
}
.public-surface .ast-review-result-layout {
  align-items: start;
  display: grid;
  gap: var(--space-4);
  grid-template-columns: minmax(0, 1fr) minmax(17rem, 0.28fr);
}
.public-surface .ast-review-view-panel { min-width: 0; }
.public-surface .ast-review-plot-shell { margin: 0; }
.public-surface .ast-review-chart { min-height: 45rem; }
.public-surface .ast-review-plot-shell .chart-alternative {
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
.public-surface .ast-review-legend { background: #fbfdff; }
.public-surface .ast-review-key-item { background: #fff; color: var(--nbf-text); }
.public-surface .ast-review-key-item:hover,
.public-surface .ast-review-key-item[aria-pressed="true"] { background: #eaf4ff; color: var(--nbf-heading); }
.public-surface .ast-review-run-summary {
  background: #fff;
  border: 1px solid #cbd8e7;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  min-width: 0;
  overflow: hidden;
  padding: var(--space-5);
}
.public-surface .ast-review-summary-heading {
  border-bottom: 1px solid var(--nbf-border-soft);
  padding-bottom: var(--space-4);
}
.public-surface .ast-review-summary-heading h3 { font-size: 1.15rem; margin: var(--space-2) 0; }
.public-surface .ast-review-summary-heading p { font-size: 0.8125rem; margin: 0; }
.public-surface .ast-review-summary-list { display: grid; margin: 0; }
.public-surface .ast-review-summary-list > div { border-bottom: 1px solid #e4ebf3; padding: var(--space-3) 0; }
.public-surface .ast-review-summary-list > div:last-child { border-bottom: 0; }
.public-surface .ast-review-summary-list dt {
  color: var(--nbf-muted);
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.public-surface .ast-review-summary-list dd {
  color: var(--nbf-heading);
  font-size: 0.85rem;
  font-weight: 700;
  margin: 0.2rem 0 0;
  overflow-wrap: anywhere;
}
.public-surface .ast-review-qc-shortcut { margin-top: var(--space-4); width: 100%; }
.public-surface .ast-review-panel-heading { margin-bottom: var(--space-5); }
.public-surface .ast-review-panel-heading h2,
.public-surface .ast-review-panel-heading p { margin: 0; }
.public-surface .ast-review-panel-heading p:last-child { color: var(--nbf-muted); font-size: 0.9rem; margin-top: var(--space-1); }
.public-surface .ast-review-plate-card,
.public-surface .ast-review-image-card,
.public-surface .ast-review-method-card {
  background: #f8fafc;
  border: 1px solid #dbe5ef;
  border-radius: var(--radius-md);
  min-width: 0;
  padding: var(--space-5);
}
.public-surface .ast-review-plate-card .section-heading,
.public-surface .ast-review-image-card .section-heading { margin-bottom: var(--space-4); }
.public-surface .ast-review-plate-card h3,
.public-surface .ast-review-image-card h3 { margin: 0; }
.public-surface .ast-review-plate-grid { grid-template-columns: repeat(4, minmax(4.5rem, 1fr)); }
.public-surface .ast-review-plate-layout { grid-template-columns: minmax(24rem, 0.9fr) minmax(28rem, 1.1fr); }
.public-surface .ast-review-well { background: #fff; border-color: #aab9ca; color: var(--nbf-text); }
.public-surface .ast-review-well:hover { background: #eaf4ff; border-color: var(--nbf-primary); }
.public-surface .ast-review-well.is-selected { background: #eaf4ff; border-color: var(--nbf-primary); box-shadow: inset 0 0 0 2px var(--nbf-primary); }
.public-surface .ast-review-well-symbol { color: var(--nbf-primary); }
.public-surface .ast-review-well.is-control .ast-review-well-symbol { color: var(--nbf-success); }
.public-surface .ast-review-coverage-strip {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: var(--space-5);
}
.public-surface .ast-review-coverage-strip > div {
  background: #f4f8fc;
  border: 1px solid #dbe5ef;
  border-radius: var(--radius-md);
  padding: var(--space-4);
}
.public-surface .ast-review-coverage-strip span { color: var(--nbf-muted); display: block; font-size: 0.75rem; font-weight: 750; }
.public-surface .ast-review-coverage-strip strong { color: var(--nbf-heading); display: block; font-size: 1.55rem; margin-top: var(--space-1); }
.public-surface .ast-review-section-panel .success-panel {
  background: var(--nbf-success-surface);
  border: 1px solid #8bc8ad;
  border-radius: var(--radius-md);
  color: #175f45;
  padding: var(--space-4);
}
.public-surface .ast-review-section-panel .success-panel p { margin-bottom: 0; }
.public-surface .ast-review-well-table-disclosure { margin-top: var(--space-4); }
.public-surface .ast-review-well-table-disclosure small { color: var(--nbf-muted); }
.public-surface .ast-review-method-grid {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.public-surface .ast-review-method-card h3 { margin: var(--space-3) 0; }
.public-surface .ast-review-method-card p,
.public-surface .ast-review-method-card li { color: var(--nbf-muted); font-size: 0.9rem; }
.public-surface .ast-review-method-card ul { margin-bottom: 0; padding-left: var(--space-5); }
.public-surface .ast-review-method-card .formula { display: block; margin: var(--space-4) 0; overflow-wrap: anywhere; }
.public-surface .ast-review-method-facts { margin-top: var(--space-4); }
.public-surface .ast-review-provenance-card { grid-column: 1 / -1; }

@media (max-width: 1250px) {
  .public-surface .ast-review-toolbar-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .public-surface .ast-review-apply { grid-column: 2 / -1; justify-content: end; }
}

@media (max-width: 980px) {
  .public-surface .ast-review-toolbar-grid,
  .public-surface .ast-review-advanced-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-surface .ast-review-apply { grid-column: 1 / -1; justify-content: stretch; }
  .public-surface .ast-review-result-layout { grid-template-columns: 1fr; }
  .public-surface .ast-review-run-summary { display: grid; gap: var(--space-4); grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-surface .ast-review-summary-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-surface .ast-review-summary-list > div { padding: var(--space-2) var(--space-3); }
  .public-surface .ast-review-qc-shortcut { align-self: end; }
  .public-surface .ast-review-workspace.is-assay-card-view .ast-review-run-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .public-surface .ast-review-workspace.is-assay-card-view .ast-review-summary-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .public-surface .ast-review-workspace.is-assay-card-view .ast-review-qc-shortcut {
    width: 100%;
  }
}

@media (max-width: 680px) {
  .public-surface .ast-review-toolbar { padding: var(--space-4) var(--space-4) 0; }
  .public-surface .ast-review-toolbar-heading { display: grid; }
  .public-surface .ast-review-toolbar-grid,
  .public-surface .ast-review-advanced-grid,
  .public-surface .ast-review-run-summary,
  .public-surface .ast-review-summary-list,
  .public-surface .ast-review-method-grid { grid-template-columns: 1fr; }
  .public-surface .ast-review-apply { grid-template-columns: 1fr; }
  .public-surface .ast-review-apply button { width: 100%; }
  .public-surface .ast-review-advanced { margin-left: calc(-1 * var(--space-4)); margin-right: calc(-1 * var(--space-4)); }
  .public-surface .ast-review-advanced > summary { align-items: flex-start; display: grid; }
  .public-surface .ast-review-advanced > summary small { margin-left: 0; }
  .public-surface .ast-review-section-panel { padding: var(--space-4); }
  .public-surface .ast-review-mode-bar { align-items: stretch; display: grid; }
  .public-surface .ast-review-view-switch { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .public-surface .ast-review-view-tab { font-size: 0.75rem; padding-left: 0.45rem; padding-right: 0.45rem; }
  .public-surface .ast-review-chart { min-height: 40rem; }
  .public-surface .ast-review-plot-shell .plot-shell-header { align-items: stretch; display: grid; }
  .public-surface .ast-review-well-layout-switch { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-surface .ast-assay-overview { padding: var(--space-3); }
  .public-surface .ast-assay-overview-heading { align-items: start; display: grid; }
  .public-surface .ast-assay-overview-counts { justify-content: flex-start; }
  .public-surface .ast-review-workspace.is-assay-card-view .ast-review-run-summary,
  .public-surface .ast-review-workspace.is-assay-card-view .ast-review-summary-list {
    grid-template-columns: 1fr;
  }
  .public-surface .ast-review-coverage-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-surface .ast-review-provenance-card { grid-column: auto; }
}

@media (max-width: 430px) {
  .public-surface .ast-review-coverage-strip { grid-template-columns: 1fr; }
}

/* HPA-inspired discovery and entity records: visual entry points, evidence status,
   and direct access to the public data supporting each summary. */
.public-surface .atlas-global-search {
  align-items: stretch;
  display: flex;
  flex: 1 1 34rem;
  justify-content: flex-end;
  max-width: 44rem;
}
.public-surface .atlas-global-search input {
  border-radius: 0.625rem 0 0 0.625rem;
  min-height: 2.75rem;
  min-width: 12rem;
  width: min(36rem, 42vw);
}
.public-surface .atlas-global-search button {
  border-radius: 0 0.625rem 0.625rem 0;
  min-height: 2.75rem;
  padding: 0.55rem 1rem;
}
.public-surface .atlas-home-search {
  background: #fff;
  border: 1px solid #c8d9ec;
  border-radius: var(--radius-lg);
  box-shadow: 0 10px 28px rgba(20, 34, 56, 0.07);
  margin: var(--space-6) 0 var(--space-4);
  max-width: 48rem;
  padding: var(--space-4);
}
.public-surface .atlas-home-search > label {
  color: var(--nbf-heading);
  display: block;
  font-size: 0.875rem;
  font-weight: 800;
  margin-bottom: var(--space-2);
}
.public-surface .atlas-home-search .search-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
.public-surface .atlas-home-search .search-row input { border-radius: 0.625rem 0 0 0.625rem; min-height: 3.25rem; }
.public-surface .atlas-home-search .search-row button { border-radius: 0 0.625rem 0.625rem 0; min-height: 3.25rem; }
.public-surface .atlas-home-search p,
.public-surface .search-scope,
.public-surface .inline-empty { color: var(--nbf-muted); font-size: 0.8125rem; margin: var(--space-2) 0 0; }

.public-surface .playground-module-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.public-surface .playground-module-grid .task-card {
  align-content: start;
  grid-template-columns: 1fr auto;
  min-height: 24rem;
  overflow: hidden;
}
.public-surface .playground-module-grid .module-preview,
.public-surface .playground-module-grid h3,
.public-surface .playground-module-grid p,
.public-surface .playground-module-grid .card-action { grid-column: 1 / -1; }
.public-surface .module-preview {
  align-items: end;
  background: #f4f8fc;
  border: 1px solid #d8e3ee;
  border-radius: var(--radius-md);
  display: grid;
  gap: 0.35rem;
  height: 7.5rem;
  margin-bottom: var(--space-2);
  overflow: hidden;
  padding: var(--space-3);
}
.public-surface .module-preview i { display: block; }
.public-surface .module-preview-media { grid-template-columns: repeat(4, 1fr); }
.public-surface .module-preview-media i { background: #dcecf9; border-radius: 0.2rem; height: 1.25rem; }
.public-surface .module-preview-media i:nth-child(3n+1) { background: #b9daf1; }
.public-surface .module-preview-media i:nth-child(4n+2) { background: #62b9cf; }
.public-surface .module-preview-media i:nth-child(5n) { background: #087ca7; }
.public-surface .module-preview-amr { align-items: center; grid-template-columns: repeat(4, 1fr); }
.public-surface .module-preview-amr i { background: #b9daf1; border: 3px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px #9ab2c9; height: 1.55rem; justify-self: center; width: 1.55rem; }
.public-surface .module-preview-amr i:nth-child(n+6) { background: #f2b35d; }
.public-surface .module-preview-amr i:nth-child(n+9) { background: #e86b75; }
.public-surface .module-preview-gcms { grid-template-columns: repeat(6, 1fr); }
.public-surface .module-preview-gcms i { background: linear-gradient(#0aa5c8, #0868df); border-radius: 0.2rem 0.2rem 0 0; height: 24%; }
.public-surface .module-preview-gcms i:nth-child(2) { height: 72%; }
.public-surface .module-preview-gcms i:nth-child(3) { height: 42%; }
.public-surface .module-preview-gcms i:nth-child(4) { height: 88%; }
.public-surface .module-preview-gcms i:nth-child(5) { height: 55%; }
.public-surface .module-preview-gcms i:nth-child(6) { height: 34%; }
.public-surface .module-preview-sensors { align-items: center; grid-template-columns: repeat(6, 1fr); position: relative; }
.public-surface .module-preview-sensors::before { background: #9abce8; content: ""; height: 2px; left: 12%; position: absolute; right: 12%; top: 50%; }
.public-surface .module-preview-sensors i { background: #fff; border: 3px solid #0868df; border-radius: 50%; height: 1.45rem; justify-self: center; position: relative; width: 1.45rem; z-index: 1; }
.public-surface .module-preview-sensors i:nth-child(2n) { border-color: #0aa5c8; transform: translateY(-1rem); }
.public-surface .module-preview-sensors i:nth-child(3n) { border-color: #f2a23a; transform: translateY(1rem); }

.public-surface .entity-masthead {
  align-items: end;
  background: linear-gradient(135deg, #ffffff 20%, #edf6ff);
  border: 1px solid #c8d9ec;
  border-radius: var(--radius-lg);
  display: grid;
  gap: var(--space-6);
  grid-template-columns: minmax(0, 1fr) auto;
  margin-bottom: var(--space-5);
  padding: clamp(1.5rem, 4vw, 3rem);
}
.public-surface .entity-masthead h1 { margin-bottom: var(--space-3); }
.public-surface .entity-masthead .lede { font-size: 1.05rem; margin-bottom: var(--space-4); max-width: 65ch; }
.public-surface .entity-identity-row { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.public-surface .entity-identity-row span,
.public-surface .evidence-chip {
  background: #fff;
  border: 1px solid #b8cbe0;
  border-radius: var(--radius-pill);
  color: #34516e;
  display: inline-flex;
  font-size: 0.75rem;
  font-weight: 750;
  padding: 0.35rem 0.65rem;
}
.public-surface .data-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); justify-content: flex-end; }
.public-surface .evidence-status-strip { display: grid; gap: var(--space-3); grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 var(--space-6); }
.public-surface .evidence-status-card { background: #fff; border: 1px solid #dbe5ef; border-left: 4px solid #8da2b8; border-radius: var(--radius-md); min-width: 0; padding: var(--space-4); }
.public-surface .evidence-status-card.status-verified { background: #f1fbf6; border-left-color: #1e9a69; }
.public-surface .evidence-status-card.status-measured { background: #f1f7ff; border-left-color: #0868df; }
.public-surface .evidence-status-card.status-context { background: #fff9ee; border-left-color: #d38b1f; }
.public-surface .evidence-status-card.status-boundary { background: #f8f5fb; border-left-color: #7e62aa; }
.public-surface .evidence-status-card span { color: var(--nbf-muted); display: block; font-size: 0.6875rem; font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }
.public-surface .evidence-status-card strong { color: var(--nbf-heading); display: block; font-size: 1rem; margin: 0.25rem 0; }
.public-surface .evidence-status-card small { color: var(--nbf-muted); display: block; line-height: 1.45; }
.public-surface .entity-coverage-grid { display: grid; gap: var(--space-3); grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0; }
.public-surface .entity-coverage-grid > div { background: #f6f9fc; border: 1px solid #e1e9f1; border-radius: var(--radius-md); padding: var(--space-4); }
.public-surface .entity-coverage-grid dt { color: var(--nbf-muted); font-size: 0.75rem; font-weight: 750; }
.public-surface .entity-coverage-grid dd { color: var(--nbf-heading); font-size: 1.8rem; font-weight: 850; margin: var(--space-1) 0; }
.public-surface .entity-coverage-grid small { color: var(--nbf-muted); display: block; line-height: 1.35; }
.public-surface .interpretation-boundary { background: #f8f5fb; border-left: 4px solid #7e62aa; border-radius: var(--radius-sm); margin-top: var(--space-4); padding: var(--space-4); }
.public-surface .interpretation-boundary strong { color: #594177; }
.public-surface .interpretation-boundary p { color: #5f5870; margin: var(--space-1) 0 0; }
.public-surface .evidence-record-card { border-top: 3px solid #9abce8; position: relative; }
.public-surface .record-type-marker { border-radius: 50%; display: block; height: 0.65rem; position: absolute; right: var(--space-4); top: var(--space-4); width: 0.65rem; }
.public-surface .media-marker { background: #087ca7; }
.public-surface .amr-marker { background: #d38b1f; }
.public-surface .gcms-marker { background: #087f7c; }
.public-surface .evidence-definition-list { display: grid; gap: var(--space-2); margin: var(--space-4) 0; }
.public-surface .evidence-definition-list > div { border-top: 1px solid #e3eaf2; display: grid; gap: var(--space-3); grid-template-columns: minmax(7rem, 0.45fr) 1fr; padding-top: var(--space-2); }
.public-surface .evidence-definition-list dt { color: var(--nbf-muted); font-size: 0.75rem; font-weight: 750; }
.public-surface .evidence-definition-list dd { color: var(--nbf-heading); font-size: 0.85rem; font-weight: 700; margin: 0; overflow-wrap: anywhere; }
.public-surface .identity-record-grid { display: grid; gap: var(--space-3); grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); margin-bottom: var(--space-4); }
.public-surface .identity-record-grid article { background: #f8fafc; border: 1px solid #dbe5ef; border-radius: var(--radius-md); padding: var(--space-4); }
.public-surface .identity-record-grid h3,
.public-surface .identity-record-grid p { margin: var(--space-1) 0; }
.public-surface .evidence-verified { background: #eefaf4; border-color: #83c7aa; color: #126141; }
.public-surface .evidence-conflict { background: #fff3f3; border-color: #dda3ab; color: #8b2634; }
.public-surface .inline-data-actions,
.public-surface .result-tools { align-items: center; display: flex; flex-wrap: wrap; gap: var(--space-3); justify-content: flex-end; }
.public-surface .inline-data-actions a,
.public-surface .data-download-link { background: #fff; border: 1px solid #98abc0; border-radius: 0.5rem; color: #29435f; font-size: 0.8125rem; font-weight: 750; padding: 0.55rem 0.75rem; text-decoration: none; }
.public-surface .inline-data-actions a:hover,
.public-surface .data-download-link:hover { background: #edf5ff; border-color: var(--nbf-primary); color: var(--nbf-primary); }
.public-surface .playground-supporting-tools > summary span,
.public-surface .playground-evidence-disclosure > summary span,
.public-surface .playground-supporting-tools > summary strong,
.public-surface .playground-supporting-tools > summary small,
.public-surface .playground-evidence-disclosure > summary strong,
.public-surface .playground-evidence-disclosure > summary small { display: block; }
.public-surface .playground-supporting-tools > summary small,
.public-surface .playground-evidence-disclosure > summary small { color: var(--nbf-muted); font-size: 0.8125rem; font-weight: 500; margin-top: 0.2rem; }

@media (max-width: 1300px) {
  .public-surface .playground-module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-surface .playground-module-grid .task-card { min-height: 22rem; }
  .public-surface .entity-coverage-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .public-surface .public-topbar-title { display: none; }
  .public-surface .atlas-global-search { max-width: none; }
  .public-surface .atlas-global-search input { width: 100%; }
  .public-surface .entity-masthead { align-items: start; grid-template-columns: 1fr; }
  .public-surface .data-actions { justify-content: flex-start; }
  .public-surface .evidence-status-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .public-surface .playground-module-grid,
  .public-surface .entity-coverage-grid,
  .public-surface .evidence-status-strip { grid-template-columns: 1fr; }
  .public-surface .playground-module-grid .task-card { min-height: 0; }
  .public-surface .atlas-global-search button { font-size: 0.8125rem; padding-left: 0.75rem; padding-right: 0.75rem; }
  .public-surface .atlas-home-search .search-row { grid-template-columns: 1fr; }
  .public-surface .atlas-home-search .search-row input,
  .public-surface .atlas-home-search .search-row button { border-radius: 0.625rem; }
  .public-surface .atlas-home-search .search-row button { margin-top: var(--space-2); }
  .public-surface .data-actions .button-link { justify-content: center; width: 100%; }
  .public-surface .result-tools { align-items: flex-start; justify-content: flex-start; }
}

/* Phase 1 scientific credibility layer */
.public-surface .scientific-record-header {
  align-items: end;
  background: #fff;
  border: 1px solid #c8d9ec;
  border-top: 5px solid var(--nbf-primary);
  border-radius: var(--radius-md);
  display: grid;
  gap: var(--space-6);
  grid-template-columns: minmax(0, 1fr) auto;
  margin-bottom: var(--space-4);
  padding: clamp(1.4rem, 3vw, 2.4rem);
}
.public-surface .scientific-record-header h1 { margin-bottom: var(--space-2); }
.public-surface .scientific-record-header .lede { font-size: 1rem; margin-bottom: var(--space-5); max-width: 72ch; }
.public-surface .scientific-record-meta {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(4, minmax(8rem, 1fr));
  margin: 0;
  overflow: hidden;
  border: 1px solid #dbe5ef;
  border-radius: var(--radius-sm);
  background: #dbe5ef;
}
.public-surface .scientific-record-meta > div { background: #f8fafc; min-width: 0; padding: 0.7rem 0.85rem; }
.public-surface .scientific-record-meta dt,
.public-surface .scientific-context-item span {
  color: var(--nbf-muted);
  font-size: 0.6875rem;
  font-weight: 850;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.public-surface .scientific-record-meta dd {
  color: var(--nbf-heading);
  font-family: var(--font-mono);
  font-size: 0.8125rem;
  font-weight: 750;
  margin: 0.2rem 0 0;
  overflow-wrap: anywhere;
}
.public-surface .scientific-record-actions {
  align-items: stretch;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 10.5rem;
}
.public-surface .scientific-record-actions .button-link { justify-content: center; margin: 0; }
.public-surface .copy-feedback { color: #126141; font-size: 0.75rem; min-height: 1rem; text-align: center; }
.public-surface .scientific-identity-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin: 0 0 var(--space-5);
}
.public-surface .scientific-identity-row span {
  background: #fff;
  border: 1px solid #b8cbe0;
  border-radius: var(--radius-pill);
  color: #34516e;
  display: inline-flex;
  font-size: 0.75rem;
  font-weight: 750;
  padding: 0.35rem 0.65rem;
}
.public-surface .scientific-context-strip {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0 0 var(--space-6);
  overflow: hidden;
  border: 1px solid #dbe5ef;
  border-radius: var(--radius-md);
  background: #dbe5ef;
}
.public-surface .scientific-context-strip.context-five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.public-surface .scientific-context-item { background: #fff; border-top: 4px solid #8da2b8; min-width: 0; padding: var(--space-4); }
.public-surface .scientific-context-item.context-published { border-top-color: #1e9a69; }
.public-surface .scientific-context-item.context-measured { border-top-color: #0868df; }
.public-surface .scientific-context-item.context-derived { border-top-color: #d38b1f; }
.public-surface .scientific-context-item.context-caution { border-top-color: #c15b2f; }
.public-surface .scientific-context-item.context-boundary { border-top-color: #7e62aa; }
.public-surface .scientific-context-item strong { color: var(--nbf-heading); display: block; font-size: 0.95rem; margin: 0.3rem 0; }
.public-surface .scientific-context-item small { color: var(--nbf-muted); display: block; line-height: 1.45; }
.public-surface .release-summary { color: var(--nbf-muted); font-size: 0.8125rem; margin: var(--space-2) 0 0; }

@media (max-width: 1050px) {
  .public-surface .scientific-record-meta,
  .public-surface .scientific-context-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-surface .scientific-context-strip.context-five { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .public-surface .scientific-record-header { align-items: start; grid-template-columns: 1fr; }
  .public-surface .scientific-record-actions { flex-direction: row; flex-wrap: wrap; min-width: 0; }
  .public-surface .scientific-record-actions .button-link { flex: 1 1 9rem; }
  .public-surface .copy-feedback { flex-basis: 100%; text-align: left; }
}
@media (max-width: 560px) {
  .public-surface .scientific-record-meta,
  .public-surface .scientific-context-strip { grid-template-columns: 1fr; }
  .public-surface .scientific-context-strip.context-five { grid-template-columns: 1fr; }
}

.public-surface .record-citation { color: var(--nbf-muted); font-size: 0.75rem; max-width: 18rem; }
.public-surface .record-citation summary { color: var(--nbf-secondary); cursor: pointer; font-weight: 750; }
.public-surface .record-citation p { background: #f6f9fc; border: 1px solid #dbe5ef; border-radius: var(--radius-sm); margin: var(--space-2) 0 0; overflow-wrap: anywhere; padding: var(--space-3); }

.public-surface .boundary-card {
  background: #f1f7ff;
  border-color: #c8d9ec;
}
.public-surface .boundary-card h3 { color: var(--nbf-heading); }
.public-surface .boundary-card p { color: var(--nbf-muted); }
.public-surface .boundary-card a { color: var(--nbf-primary); font-weight: 750; }

/* Phase 2 experiment-centered scientific records */
.public-surface .experiment-card { border-top: 3px solid #1777bb; }
.public-surface .lineage-flow { display: grid; gap: 0.75rem; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 1.25rem 0; }
.public-surface .lineage-stage { align-items: flex-start; background: #fff; border: 1px solid #d7e3ee; border-radius: var(--radius-md); display: flex; gap: 0.75rem; min-width: 0; padding: 1rem; position: relative; }
.public-surface .lineage-stage:not(:last-child)::after { color: #7c91a6; content: "→"; font-size: 1.1rem; font-weight: 800; position: absolute; right: -0.7rem; top: 50%; transform: translateY(-50%); z-index: 1; }
.public-surface .lineage-stage > span { align-items: center; background: #eaf3fd; border-radius: 999px; color: #075ca8; display: inline-flex; flex: 0 0 1.65rem; font-size: 0.75rem; font-weight: 850; height: 1.65rem; justify-content: center; }
.public-surface .lineage-stage strong,
.public-surface .lineage-stage b,
.public-surface .lineage-stage small { display: block; }
.public-surface .lineage-stage strong { color: var(--nbf-heading); font-size: 0.78rem; letter-spacing: 0.04em; text-transform: uppercase; }
.public-surface .lineage-stage b { color: var(--nbf-heading); font-size: 1rem; margin: 0.25rem 0; overflow-wrap: anywhere; }
.public-surface .lineage-stage small { color: var(--nbf-muted); line-height: 1.45; }
.public-surface .lineage-stage.tone-verified { border-top: 3px solid #168765; }
.public-surface .lineage-stage.tone-measured { border-top: 3px solid #1777bb; }
.public-surface .lineage-stage.tone-derived { border-top: 3px solid #7e62aa; }
.public-surface .lineage-stage.tone-caution,
.public-surface .lineage-stage.tone-context { border-top: 3px solid #ca8217; }
.public-surface .scientific-plate-grid { display: grid; gap: 0.75rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.public-surface .scientific-well-card { background: #fff; border: 1px solid #d7e3ee; border-left: 4px solid #1777bb; border-radius: var(--radius-md); color: var(--nbf-text); display: grid; gap: 0.25rem; min-height: 8.5rem; padding: 1rem; text-decoration: none; }
.public-surface .scientific-well-card:hover { border-color: #1777bb; box-shadow: var(--shadow-md); transform: translateY(-2px); }
.public-surface .scientific-well-card > span { color: #075ca8; font-size: 0.75rem; font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }
.public-surface .scientific-well-card strong { color: var(--nbf-heading); font-size: 1.05rem; }
.public-surface .scientific-well-card small { color: var(--nbf-muted); line-height: 1.35; }
.public-surface .scientific-well-card.role-antibiotic_no_bacteria { border-left-color: #ca8217; }
.public-surface .scientific-well-card.role-no_antibiotic_growth { border-left-color: #168765; }
.public-surface .scientific-well-card.growth-no_growth { background: #f2fbf7; }
.public-surface .scientific-well-card.growth-growth { background: #fff5f5; }
@media (max-width: 1100px) {
  .public-surface .lineage-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-surface .lineage-stage::after { display: none; }
  .public-surface .scientific-plate-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .public-surface .lineage-flow,
  .public-surface .scientific-plate-grid { grid-template-columns: 1fr; }
  .public-surface .scientific-well-card { min-height: 0; }
}
