.pump-db-ingestion-status { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12px; color: #475569; }
.pump-db-ingestion-status[hidden] { display: none; }
.pump-db-ingestion-status span { flex: 1 1 240px; }
.pump-db-ingestion-status button { padding: 5px 9px; border: 1px solid #94a3b8; border-radius: 5px; background: white; color: #164e63; cursor: pointer; }
.task-window[data-kind="pump-database"] {
  width: min(1240px, calc(100vw - 28px));
  height: min(800px, calc(100dvh - 104px));
}

.task-window-body.pump-database-task-body {
  padding: 0;
  background: #f4f7fa;
}

.pump-database {
  min-width: 0;
  min-height: 100%;
  color: #172b3d;
  font: 12px/1.45 var(--font-main, "Segoe UI", system-ui, sans-serif);
  font-variant-numeric: tabular-nums;
}

.pump-db-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) repeat(4, auto);
  align-items: center;
  gap: 12px;
  padding: 13px 16px;
  border-bottom: 1px solid #d9e4ed;
  box-shadow: inset 4px 0 0 #1475aa;
  background: linear-gradient(100deg, #f7fbfe 0%, #fff 58%);
}

.pump-db-intro-copy { min-width: 0; }
.pump-db-eyebrow { margin: 0 0 2px; color: #146595; font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.pump-db-description { max-width: 680px; margin: 0; color: #536879; }
.pump-db-intro-meta { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.pump-db-surface-badge,
.pump-db-public-badge { padding: 5px 9px; border: 1px solid #a9d5c0; border-radius: 999px; background: #effaf5; color: #175f41; font-weight: 700; white-space: nowrap; }
.pump-db-surface-badge { border-color: #a9c8dc; background: #edf6fb; color: #14577e; font-size: 10px; letter-spacing: .04em; }

.pump-db-refresh,
.pump-db-primary,
.pump-db-secondary {
  min-height: 30px;
  padding: 5px 10px;
  border-radius: 5px;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
}

.pump-db-refresh,
.pump-db-secondary { border: 1px solid #a8bfd1; background: #fff; color: #123b5a; }
.pump-db-primary { border: 1px solid #155b89; background: #155b89; color: #fff; }
.pump-db-refresh:hover,
.pump-db-secondary:hover { border-color: #236f9f; background: #eef7fc; }
.pump-db-primary:hover { background: #0e4b74; }
.pump-db-primary:disabled { border-color: #cbd5dd; background: #e6eaee; color: #798895; cursor: not-allowed; }
.pump-db-refresh:focus-visible,
.pump-db-primary:focus-visible,
.pump-db-secondary:focus-visible,
.pump-db-tab:focus-visible,
.pump-db-table tr:focus-visible,
.pump-db-toolbar input:focus-visible,
.pump-db-toolbar select:focus-visible { outline: 2px solid #1683c2; outline-offset: 2px; }

.pump-db-tabs {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  gap: 2px;
  overflow-x: auto;
  padding: 0 12px;
  border-bottom: 1px solid #cfdce7;
  background: #edf3f7;
}

.pump-db-tab { min-height: 42px; padding: 0 13px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: #526878; cursor: pointer; font: inherit; font-weight: 700; white-space: nowrap; }
.pump-db-tab:hover { background: #e3edf4; color: #123b5a; }
.pump-db-tab[aria-selected="true"] { border-bottom-color: #1374aa; background: #fff; color: #123b5a; }

.pump-db-panel { min-height: 320px; padding: 14px 16px 16px; }
.pump-db-catalog-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin-bottom: 11px; }
.pump-db-summary-card { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 10px; min-width: 0; padding: 9px 11px; border: 1px solid #cbdce7; border-radius: 7px; box-shadow: 0 1px 2px rgba(30, 64, 86, .04); background: #fff; }
.pump-db-summary-value { grid-row: 1 / span 2; align-self: center; min-width: 30px; color: #0e5f8f; font-size: 21px; line-height: 1; text-align: center; }
.pump-db-summary-label { overflow: hidden; color: #173e5c; font-size: 11px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.pump-db-summary-basis { overflow: hidden; color: #6a7d8b; font-size: 9.5px; text-overflow: ellipsis; white-space: nowrap; }
.pump-db-toolbar { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(155px, .35fr) minmax(155px, .35fr); gap: 10px; margin-bottom: 10px; }
.pump-db-search,
.pump-db-filter { display: grid; gap: 4px; color: #41586a; font-size: 11px; font-weight: 700; }
.pump-db-toolbar input,
.pump-db-toolbar select { width: 100%; min-width: 0; height: 34px; padding: 5px 8px; border: 1px solid #bfcdd8; border-radius: 5px; background: #fff; color: #172b3d; font: inherit; }
.pump-db-assurance-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 10px; }
.pump-db-assurance-grid .pump-db-state {
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto auto;
  justify-items: start;
  align-items: center;
  max-width: none;
  min-width: 0;
  margin: 0;
  padding: 9px 11px;
  border: 1px solid #c8dbe8;
  border-radius: 7px;
  background: #f7fbfd;
  text-align: left;
}
.pump-db-assurance-grid .pump-db-state-icon { grid-row: 1 / span 2; width: 26px; height: 26px; margin: 0 9px 0 0; font-size: 15px; }
.pump-db-assurance-grid .pump-db-state h3 { overflow: hidden; max-width: 100%; font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap; }
.pump-db-assurance-grid .pump-db-state p { overflow: hidden; max-width: 100%; margin: 1px 0 0; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.pump-db-assurance-grid .pump-db-state-ready { border-color: #9fd0b8; background: #effaf5; }
.pump-db-assurance-grid .pump-db-state-ready .pump-db-state-icon { border-color: #79bd9c; color: #17633f; }
.pump-db-assurance-grid .pump-db-state-error { border-color: #dfaaaa; background: #fff4f4; }
.pump-db-result-summary { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 7px; color: #526878; font-size: 11px; }

.pump-db-table-wrap { width: 100%; overflow: auto; border: 1px solid #d4e0e9; border-radius: 7px; background: #fff; scrollbar-gutter: stable; }
.pump-db-available-table-wrap { max-height: clamp(280px, calc(100dvh - 465px), 475px); }
.pump-db-table { width: 100%; min-width: 1160px; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.pump-db-available-table { min-width: 1020px; }
.pump-db-available-table td:nth-child(2) { min-width: 195px; }
.pump-db-available-table td:nth-child(2) strong { white-space: normal; }
.pump-db-table th,
.pump-db-table td { padding: 8px 9px; border-bottom: 1px solid #e3eaf0; text-align: left; vertical-align: middle; }
.pump-db-table th { position: sticky; top: 0; z-index: 2; background: #eaf3f9; color: #173e5c; font-size: 10.5px; letter-spacing: .01em; white-space: nowrap; }
.pump-db-table tbody tr { background: #fff; }
.pump-db-table tbody tr:nth-child(even) { background: #f8fafc; }
.pump-db-table tbody tr:hover { background: #edf7fc; }
.pump-db-table tbody tr.is-selected { box-shadow: inset 3px 0 0 #1475aa; background: #eef8fd; }
.pump-db-table tbody tr.is-project-exact { box-shadow: inset 3px 0 0 #238456; }
.pump-db-table tbody tr.is-selected.is-project-exact { box-shadow: inset 3px 0 0 #1475aa, inset 6px 0 0 #238456; }
.pump-db-table td strong { display: block; color: #123b5a; white-space: nowrap; }
.pump-db-table td small { display: block; margin-top: 2px; color: #718390; }
.pump-db-row-actions { display: flex; gap: 5px; white-space: nowrap; }
.pump-db-row-actions button { min-height: 28px; padding: 4px 8px; }
.pump-db-available-table th:last-child { right: 0; z-index: 3; box-shadow: -1px 0 #d4e0e9; }
.pump-db-available-table td:last-child { position: sticky; right: 0; box-shadow: -1px 0 #e3eaf0; background: inherit; }

.pump-db-chip { display: inline-flex; align-items: center; max-width: 150px; padding: 3px 7px; border: 1px solid #cbd7e0; border-radius: 999px; background: #f4f7f9; color: #475d6d; font-size: 10px; font-weight: 800; line-height: 1.2; text-transform: capitalize; white-space: nowrap; }
.pump-db-chip-selection-ready,
.pump-db-chip-ready,
.pump-db-chip-yes,
.pump-db-chip-quantified { border-color: #94cfb3; background: #eaf8f1; color: #17633f; }
.pump-db-chip-screening-only,
.pump-db-chip-reference-only,
.pump-db-chip-partial,
.pump-db-chip-partially-quantified,
.pump-db-chip-input-required { border-color: #e3c980; background: #fff8df; color: #72520b; }
.pump-db-chip-not-ready,
.pump-db-chip-no { border-color: #e2a8a8; background: #fff1f1; color: #8c2e2e; }

.pump-db-state { display: grid; justify-items: center; max-width: 620px; margin: 48px auto; padding: 28px; text-align: center; }
.pump-db-state-icon { display: grid; place-items: center; width: 40px; height: 40px; margin-bottom: 8px; border: 1px solid #b9cddd; border-radius: 50%; background: #fff; color: #176b9c; font-size: 22px; font-weight: 800; }
.pump-db-state h3 { margin: 0; color: #123b5a; font-size: 16px; }
.pump-db-state p { max-width: 500px; margin: 6px 0 14px; color: #607585; }
.pump-db-state-error .pump-db-state-icon { border-color: #dfaaaa; color: #9c2f2f; }

.pump-db-recommendation-state {
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto auto;
  justify-items: start;
  align-items: center;
  column-gap: 10px;
  max-width: none;
  margin: 0 0 10px;
  padding: 9px 11px;
  border: 1px solid #bfd5e3;
  border-radius: 7px;
  background: #f7fbfd;
  text-align: left;
}
.pump-db-recommendation-state .pump-db-state-icon {
  grid-row: 1 / span 2;
  width: 26px;
  height: 26px;
  margin: 0;
  font-size: 15px;
}
.pump-db-recommendation-state h3 { font-size: 12px; }
.pump-db-recommendation-state p {
  max-width: none;
  margin: 1px 0 0;
  font-size: 10.5px;
}
.pump-db-recommendation-state.pump-db-state-ready {
  border-color: #9fd0b8;
  background: #effaf5;
}
.pump-db-recommendation-state.pump-db-state-ready .pump-db-state-icon {
  border-color: #79bd9c;
  color: #17633f;
}

.pump-db-selection-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; padding: 10px 12px; border: 1px solid #c8dbe8; border-radius: 7px; background: #fff; color: #123b5a; font-size: 13px; font-weight: 800; }
.pump-db-speed-selector { display: grid; grid-template-columns: minmax(250px, 1fr) minmax(210px, .55fr) minmax(320px, .85fr); align-items: start; gap: 12px; margin-bottom: 12px; padding: 11px 12px; border: 1px solid #b8d5e7; border-radius: 7px; background: #f7fbfd; }
.pump-db-speed-selector-copy { display: grid; gap: 3px; }
.pump-db-speed-selector-copy strong { color: #123b5a; font-size: 12px; }
.pump-db-speed-selector-copy span { color: #526878; font-size: 10.5px; }
.pump-db-speed-selector label { display: grid; gap: 4px; color: #41586a; font-size: 10.5px; font-weight: 750; }
.pump-db-speed-selector select { width: 100%; height: 34px; padding: 5px 8px; border: 1px solid #9db9ca; border-radius: 5px; background: #fff; color: #172b3d; font: inherit; font-variant-numeric: tabular-nums; }
.pump-db-speed-selector select:focus-visible { outline: 2px solid #1683c2; outline-offset: 2px; }
.pump-db-speed-authorities { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(80px, auto); margin: 0; overflow: hidden; border: 1px solid #d4e1e9; border-radius: 5px; background: #fff; font-size: 10px; }
.pump-db-speed-authorities dt,
.pump-db-speed-authorities dd { margin: 0; padding: 4px 6px; border-bottom: 1px solid #edf2f5; }
.pump-db-speed-authorities dt { color: #607585; }
.pump-db-speed-authorities dd { color: #173e5c; font-weight: 700; text-align: right; }
.pump-db-speed-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; padding-top: 2px; }
.pump-db-rpm-comparison { grid-column: 1 / -1; overflow-x: auto; border: 1px solid #bfd5e3; border-radius: 6px; background: #fff; }
.pump-db-rpm-comparison > strong { display: block; padding: 8px 10px; color: #173e5c; font-size: 11px; }
.pump-db-rpm-comparison table { width: 100%; border-collapse: collapse; font-size: 10.5px; font-variant-numeric: tabular-nums; }
.pump-db-rpm-comparison th,
.pump-db-rpm-comparison td { padding: 6px 8px; border-top: 1px solid #e4edf2; color: #233d50; text-align: left; white-space: nowrap; }
.pump-db-rpm-comparison th { background: #f3f8fb; color: #526878; font-weight: 800; }
.pump-db-qh-defense { grid-column: 1 / -1; border-top: 1px solid #d7e4ec; padding-top: 8px; }
.pump-db-qh-defense summary { cursor: pointer; color: #173e5c; font-weight: 750; }
.pump-db-qh-defense .pump-db-speed-authorities { margin-top: 8px; }
.pump-db-reference-label { color: #7a5410; font-weight: 700; }
.pump-db-bep-section { display: grid; gap: 10px; margin-bottom: 12px; }
.pump-db-bep-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.pump-db-bep-heading h3,
.pump-db-bep-heading p,
.pump-db-bep-configuration h4,
.pump-db-bep-card h5,
.pump-db-bep-card-note { margin: 0; }
.pump-db-bep-heading h3 { color: #123b5a; font-size: 13px; }
.pump-db-bep-heading p { color: #526878; font-size: 11px; }
.pump-db-bep-configuration { overflow: hidden; border: 1px solid #cbdbe6; border-radius: 7px; background: #fff; }
.pump-db-bep-configuration > h4 { padding: 8px 11px; border-bottom: 1px solid #dce6ed; background: #edf5fa; color: #123b5a; font-size: 11px; }
.pump-db-bep-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 9px; }
.pump-db-bep-card { min-width: 0; overflow: hidden; border: 1px solid #d9e2e8; border-radius: 6px; background: #fff; }
.pump-db-bep-card-published { border-top: 3px solid #526878; }
.pump-db-bep-card-observed { border-top: 3px solid #1475aa; }
.pump-db-bep-card-derived { border-top: 3px solid #2d7a4f; }
.pump-db-bep-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 7px; min-height: 46px; padding: 8px 9px; border-bottom: 1px solid #e5ebef; background: #f8fafc; }
.pump-db-bep-card h5 { color: #173e5c; font-size: 11px; line-height: 1.3; }
.pump-db-bep-card dl,
.pump-db-bep-defense dl { display: grid; grid-template-columns: minmax(120px, .9fr) minmax(0, 1.1fr); margin: 0; font-variant-numeric: tabular-nums; }
.pump-db-bep-card dt,
.pump-db-bep-card dd,
.pump-db-bep-defense dt,
.pump-db-bep-defense dd { margin: 0; padding: 6px 8px; border-bottom: 1px solid #edf1f4; overflow-wrap: anywhere; }
.pump-db-bep-card dt,
.pump-db-bep-defense dt { color: #617583; }
.pump-db-bep-card dd,
.pump-db-bep-defense dd { color: #172b3d; font-weight: 650; }
.pump-db-bep-card-note { padding: 8px 9px; color: #526878; font-size: 10.5px; }
.pump-db-bep-defense { margin: 0 9px 9px; border: 1px solid #d7e2e9; border-radius: 6px; background: #fff; }
.pump-db-bep-defense summary { padding: 8px 10px; color: #123b5a; cursor: pointer; font-weight: 800; }
.pump-db-bep-defense-body { display: grid; grid-template-columns: minmax(250px, .75fr) minmax(360px, 1.25fr); gap: 10px; padding: 10px; border-top: 1px solid #e5ebef; }
.pump-db-bep-equation { display: grid; place-items: center; min-height: 112px; padding: 12px; border: 1px solid #dce6ed; border-radius: 5px; background: #fff; color: #102f47; overflow-x: auto; }
.pump-db-bep-equation math { font-size: 20px; }
.pump-db-bep-diagnostics { grid-column: 1 / -1; padding: 8px 10px; border-left: 3px solid #b9852a; border-radius: 4px; background: #fff9e9; color: #57431d; }
.pump-db-bep-diagnostics ul { display: flex; flex-wrap: wrap; gap: 5px 12px; margin: 4px 0 0; padding-left: 18px; }
.pump-db-bep-operation { display: grid; grid-template-columns: minmax(0, 1fr); gap: 9px; margin: 0 9px 9px; padding: 10px; border: 1px solid #c9dce8; border-radius: 6px; background: #f7fbfd; }
.pump-db-bep-operation-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.pump-db-bep-operation-heading h5,
.pump-db-bep-operation-heading p,
.pump-db-bep-operation-point h6 { margin: 0; }
.pump-db-bep-operation-heading h5 { color: #123b5a; font-size: 12px; }
.pump-db-bep-operation-heading p { color: #536d7d; font-size: 10.5px; }
.pump-db-bep-operation .pump-db-state { max-width: none; margin: 0; padding: 16px; background: #fff; }
.pump-db-bep-operation-points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pump-db-bep-operation-point { min-width: 0; overflow: hidden; border: 1px solid #d7e2e9; border-radius: 5px; background: #fff; }
.pump-db-bep-operation-point h6 { padding: 7px 9px; border-bottom: 1px solid #e5ebef; background: #edf5fa; color: #173e5c; font-size: 11px; }
.pump-db-bep-operation-point dl { display: grid; grid-template-columns: minmax(112px, .75fr) minmax(0, 1.25fr); margin: 0; font-variant-numeric: tabular-nums; }
.pump-db-bep-operation-point dt,
.pump-db-bep-operation-point dd { min-width: 0; margin: 0; padding: 5px 8px; border-bottom: 1px solid #edf1f4; overflow-wrap: anywhere; }
.pump-db-bep-operation-point dt { color: #617583; }
.pump-db-bep-operation-point dd { color: #172b3d; font-weight: 650; }
.pump-db-bep-operation-table-wrap { max-width: 100%; background: #fff; }
.pump-db-bep-operation-table { min-width: 1320px; font-variant-numeric: tabular-nums; }
.pump-db-bep-operation-table tbody tr[data-bep-lane="published"] { box-shadow: inset 3px 0 #526878; }
.pump-db-bep-operation-table tbody tr[data-bep-lane="observed"] { box-shadow: inset 3px 0 #1475aa; }
.pump-db-bep-operation-table tbody tr[data-bep-lane="derived"] { box-shadow: inset 3px 0 #2d7a4f; }
.pump-db-bep-operation-defense { margin: 0; }
.pump-db-bep-operation-equation math { font-size: 17px; }
.pump-db-bep-defense-equations { display: grid; gap: 8px; min-width: 0; }
.pump-db-bep-uncertainty-equation math { font-size: 15px; }
.pump-db-bep-uncertainty { box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; overflow: hidden; border: 1px solid #bed6c8; border-radius: 6px; background: #fff; }
.pump-db-bep-uncertainty-summary { display: flex; align-items: center; gap: 8px; min-height: 38px; padding: 7px 10px; color: #123b5a; cursor: pointer; }
.pump-db-bep-uncertainty-summary strong { font-size: 11px; }
.pump-db-bep-uncertainty-summary > span:last-child { margin-left: auto; color: #617583; font-size: 10.5px; }
.pump-db-bep-uncertainty-body { display: grid; gap: 8px; padding: 9px; border-top: 1px solid #dce6ed; background: #f8fbf9; }
.pump-db-bep-uncertainty-notice { margin: 0; padding: 8px 10px; border-left: 3px solid #2d7a4f; border-radius: 4px; background: #edf8f2; color: #24553d; }
.pump-db-bep-uncertainty-notice-input_required,
.pump-db-bep-uncertainty-notice-partially_quantified { border-left-color: #b9852a; background: #fff9e9; color: #57431d; }
.pump-db-bep-uncertainty-card { min-width: 0; overflow: hidden; border: 1px solid #d7e2e9; border-radius: 5px; background: #fff; }
.pump-db-bep-uncertainty-card-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 9px; border-bottom: 1px solid #e5ebef; background: #edf5fa; }
.pump-db-bep-uncertainty-card-head h6 { margin: 0; color: #173e5c; font-size: 11px; }
.pump-db-bep-uncertainty-card dl { display: grid; grid-template-columns: minmax(155px, .8fr) minmax(0, 1.2fr); margin: 0; font-variant-numeric: tabular-nums; }
.pump-db-bep-uncertainty-card dt,
.pump-db-bep-uncertainty-card dd { min-width: 0; margin: 0; padding: 5px 8px; border-bottom: 1px solid #edf1f4; overflow-wrap: anywhere; }
.pump-db-bep-uncertainty-card dt { color: #617583; }
.pump-db-bep-uncertainty-card dd { color: #172b3d; font-weight: 650; }
.pump-db-bep-sensitivity-table-wrap { margin: 8px; width: auto; }
.pump-db-bep-sensitivity-table { min-width: 900px; }
.pump-db-bep-uncertainty-missing,
.pump-db-bep-sensitivity-context { padding: 8px 10px; border-left: 3px solid #b9852a; background: #fff9e9; color: #57431d; }
.pump-db-bep-uncertainty-missing ul,
.pump-db-bep-sensitivity-context ul { margin: 4px 0 0; padding-left: 18px; }
.pump-db-bep-sensitivity-context { border-left-color: #4f738a; background: #f2f7fa; color: #304d60; }
.pump-db-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(300px, 1fr)); gap: 10px; }
.pump-db-chart-gridline { fill: none; stroke: #dce5eb; stroke-width: .6; }
.pump-db-plot { min-width: 0; margin: 0; padding: 10px; border: 1px solid #d6e1e9; border-radius: 7px; background: #fff; }
.pump-db-plot-featured { grid-column: 1 / -1; }
.pump-db-plot figcaption { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 4px; color: #123b5a; }
.pump-db-plot figcaption strong { font-size: 12px; }
.pump-db-plot figcaption span { color: #6b7f8e; font-size: 10px; }
.pump-db-plot svg { display: block; width: 100%; min-height: 190px; color: #536879; font: 10px var(--font-main, sans-serif); }
.pump-db-plot-featured svg { min-height: 300px; }
.pump-db-axis { fill: none; stroke: #8295a4; stroke-width: 1; }
.pump-db-curve-line { stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.pump-db-curve-line.is-context-speed { stroke-width: 1.3; opacity: .7; }
.pump-db-curve-line.is-selected-speed { stroke-width: 3.2; }
.pump-db-plot figcaption .pump-db-family-note { flex-basis: 100%; }
.pump-db-plot figcaption { flex-wrap: wrap; }
.pump-db-bep-marker { stroke-width: 1.5; stroke-dasharray: 4 4; }
.pump-db-bep-marker-published { stroke: #526878; }
.pump-db-bep-marker-observed { stroke: #1475aa; }
.pump-db-bep-marker-derived { stroke: #2d7a4f; }
.pump-db-bep-point { vector-effect: non-scaling-stroke; }
.pump-db-bep-point-published { fill: #fff; stroke: #526878; stroke-width: 2.5; }
.pump-db-bep-point-observed { fill: #d9eef9; stroke: #1475aa; stroke-width: 2.5; }
.pump-db-bep-point-derived { fill: #e0f1e8; stroke: #2d7a4f; stroke-width: 2.5; }
.pump-db-system-curve { stroke: #6f42c1; stroke-width: 2; stroke-dasharray: 7 5; stroke-linecap: round; }
.pump-db-duty-point { fill: #fff4d6; stroke: #a55a00; stroke-width: 3; vector-effect: non-scaling-stroke; }
.pump-db-operating-point { fill: #e5f6ed; stroke: #167548; stroke-width: 3; vector-effect: non-scaling-stroke; }
.pump-db-plot-empty { display: grid; place-items: center; min-height: 190px; color: #758895; }
.pump-db-legend { display: flex; flex-wrap: wrap; gap: 5px 12px; padding: 2px 0; color: #526878; font-size: 10px; }
.pump-db-legend span { display: inline-flex; align-items: center; gap: 5px; }
.pump-db-legend i { flex: 0 0 auto; width: 14px; height: 3px; border-radius: 3px; }
.pump-db-legend i.pump-db-legend-system { height: 0; border-top: 2px dashed #6f42c1; background: transparent; }
.pump-db-legend i.pump-db-legend-duty { width: 8px; height: 8px; border: 2px solid #a55a00; border-radius: 1px; background: #fff4d6; transform: rotate(45deg); }
.pump-db-legend i.pump-db-legend-operating { width: 9px; height: 9px; border: 2px solid #167548; border-radius: 50%; background: #e5f6ed; }
.pump-db-legend i.pump-db-legend-bep-published { height: 0; border-top: 2px dashed #526878; background: transparent; }
.pump-db-legend i.pump-db-legend-bep-observed { height: 0; border-top: 2px dashed #1475aa; background: transparent; }
.pump-db-legend i.pump-db-legend-bep-derived { height: 0; border-top: 2px dashed #2d7a4f; background: transparent; }
.pump-db-evidence-note { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 14px; margin: 10px 0; padding: 10px 12px; border-left: 3px solid #7b94a6; border-radius: 5px; background: #eef2f5; color: #526878; }
.pump-db-evidence-note strong { color: #263f52; }
.pump-db-point-details { border: 1px solid #d6e1e9; border-radius: 7px; background: #fff; }
.pump-db-point-details summary { padding: 10px 12px; color: #123b5a; cursor: pointer; font-weight: 800; }
.pump-db-point-details .pump-db-table-wrap { border-width: 1px 0 0; border-radius: 0; }
.pump-db-points { min-width: 980px; }

.pump-db-record-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); gap: 10px; }
.pump-db-record-card { overflow: hidden; border: 1px solid #d6e1e9; border-radius: 7px; background: #fff; }
.pump-db-record-card h3 { margin: 0; padding: 10px 12px; border-bottom: 1px solid #e4ebf0; background: #edf5fa; color: #123b5a; font-size: 12px; }
.pump-db-record-card dl { display: grid; grid-template-columns: minmax(130px, .8fr) minmax(0, 1.2fr); margin: 0; }
.pump-db-record-card dt,
.pump-db-record-card dd { margin: 0; padding: 7px 10px; border-bottom: 1px solid #edf1f4; }
.pump-db-record-card dt { color: #667987; }
.pump-db-record-card dd { color: #172b3d; font-weight: 650; overflow-wrap: anywhere; }
.pump-db-card-head { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #e4ebf0; background: #edf5fa; }
.pump-db-card-head h3 { border: 0; }
.pump-db-card-head .pump-db-chip { margin-right: 10px; }
.pump-db-input-list { padding: 10px 12px; border-bottom: 1px solid #e4ebf0; }
.pump-db-input-list h4 { margin: 0 0 5px; color: #294b63; font-size: 11px; }
.pump-db-input-list ul { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; padding: 0; list-style: none; }
.pump-db-input-list li { padding: 3px 7px; border-radius: 4px; background: #edf7f2; color: #256044; font-size: 10.5px; }
.pump-db-input-list-missing li { background: #fff3e7; color: #80501d; }
.pump-db-input-list-case li { background: #eaf4fb; color: #185a82; }
.pump-db-input-list-level2 li { background: #fff3e7; color: #80501d; }
.pump-db-input-list-level3 li { background: #f2eef8; color: #614184; }
.pump-db-input-list-readiness li { background: #fff0ed; color: #8a3328; }
.pump-db-readiness-note { margin: 0; padding: 8px 12px; border-bottom: 1px solid #e4ebf0; color: #526878; font-size: 10.5px; line-height: 1.45; overflow-wrap: anywhere; }
.pump-db-readiness-note-case { border-left: 3px solid #2a78a5; background: #f4f9fc; }
.pump-db-readiness-note-level2 { border-left: 3px solid #bd762b; background: #fffaf4; }
.pump-db-readiness-note-level3 { border-left: 3px solid #77539a; background: #faf8fc; }
.pump-db-readiness-note-readiness { border-left: 3px solid #b5473c; background: #fff8f6; }
.pump-db-claims { grid-template-columns: minmax(140px, .5fr) minmax(0, 1.5fr) !important; }
.pump-db-sr-live { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.pump-db-speed-inputs { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: end; gap: 10px; }
.pump-db-curve-types { margin: 12px 0; padding: 10px; border: 1px solid #bdd1df; border-radius: 6px; background: #f6fafc; font-size: 12px; }
.pump-db-curve-types summary { cursor: pointer; font-weight: 700; }
.pump-db-curve-type-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-top: 12px; }
.pump-db-curve-type-options label { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.pump-db-curve-type-options small { flex-basis: 100%; color: #50637a; }
.pump-db-speed-summary { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(85px, 1fr) minmax(85px, 1fr)); }
@media (max-width: 720px) { .pump-db-speed-summary { grid-template-columns: minmax(90px, 1fr) minmax(90px, 1fr); } }
.pump-db-speed-inputs label { display: grid; gap: 5px; flex: 1 1 145px; min-width: 0; font-size: 12px; color: #214963; }
.pump-db-speed-inputs input { box-sizing: border-box; width: 100%; min-width: 0; min-height: 36px; padding: 7px 9px; border: 1px solid #91aec5; border-radius: 5px; background: #fff; color: #17384e; }
.pump-db-exploration-note { grid-column: 1 / -1; margin: 0; font-size: 12px; color: #395a70; line-height: 1.5; }
.pump-db-speed-selector > .pump-db-error { grid-column: 1 / -1; color: #a52a21; padding: 9px; border: 1px solid #f0beb8; border-radius: 5px; background: #fff5f3; }
@media (max-width: 900px) {
  .pump-db-intro { grid-template-columns: minmax(0, 1fr) auto; }
  .pump-db-intro-meta { grid-row: 2; grid-column: 1 / -1; justify-content: flex-start; }
  .pump-db-catalog-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pump-db-assurance-grid { grid-template-columns: 1fr; }
  .pump-db-toolbar { grid-template-columns: 1fr 1fr; }
  .pump-db-search { grid-column: 1 / -1; }
  .pump-db-chart-grid { grid-template-columns: 1fr; }
  .pump-db-speed-selector { grid-template-columns: 1fr; align-items: stretch; }
  .pump-db-bep-grid { grid-template-columns: 1fr; }
  .pump-db-bep-defense-body { grid-template-columns: 1fr; }
  .pump-db-bep-operation-points { grid-template-columns: 1fr; }
}

@media (max-width: 639px) {
  .task-window[data-kind="pump-database"].task-window-mobile-sheet:not(.task-window-minimized) { height: min(92dvh, calc(100dvh - 12px)) !important; }
  .pump-db-intro { padding: 10px; }
  .pump-db-description { font-size: 11px; }
  .pump-db-tabs { padding: 0 5px; }
  .pump-db-tab { min-height: 38px; padding: 0 10px; }
  .pump-db-panel { padding: 8px; }
  .pump-db-catalog-summary { grid-template-columns: 1fr; }
  .pump-db-summary-basis { white-space: normal; }
  .pump-db-toolbar { grid-template-columns: 1fr; }
  .pump-db-search { grid-column: auto; }
  .pump-db-result-summary { flex-direction: column; gap: 2px; }
  .pump-db-assurance-grid .pump-db-state h3,
  .pump-db-assurance-grid .pump-db-state p { overflow: visible; text-overflow: clip; white-space: normal; }
  .pump-db-record-grid { grid-template-columns: 1fr; }
  .pump-db-bep-heading { display: grid; gap: 3px; }
  .pump-db-bep-operation-heading { display: grid; gap: 3px; }
  .pump-db-bep-operation { margin-inline: 0; padding: 8px; }
  .pump-db-bep-uncertainty-summary { align-items: flex-start; flex-wrap: wrap; }
  .pump-db-bep-uncertainty-summary > span:last-child { width: 100%; margin-left: 0; }
  .pump-db-bep-uncertainty-card dl { grid-template-columns: 1fr; }
  .pump-db-evidence-note { grid-template-columns: 1fr; }
  .pump-db-speed-authorities { grid-template-columns: minmax(145px, 1fr) minmax(70px, auto); }
}
.pump-db-add-database{min-height:34px;border:1px solid #0f766e;border-radius:6px;background:#0f766e;color:#fff;font-size:12px;font-weight:800;padding:8px 12px;white-space:nowrap;cursor:pointer}.pump-db-add-database:hover:not(:disabled){background:#115e59}.pump-db-add-database:focus-visible{outline:3px solid #5eead4;outline-offset:2px}.pump-db-add-database:disabled{border-color:#94a3b8;background:#e2e8f0;color:#64748b;cursor:not-allowed}
.pump-ingestion-overlay{position:fixed;inset:0;z-index:10050;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(15,23,42,.72)}.pump-ingestion-dialog{width:min(760px,96vw);max-height:min(850px,94vh);overflow:auto;border:1px solid #94a3b8;border-radius:12px;background:#fff;color:#172033;box-shadow:0 24px 80px rgba(15,23,42,.38)}.pump-ingestion-header{display:flex;align-items:flex-start;gap:18px;padding:18px 20px;border-bottom:1px solid #dbe4ee;background:#f8fafc}.pump-ingestion-title-wrap{flex:1}.pump-ingestion-eyebrow{margin:0 0 4px;color:#0f766e;font-size:10px;font-weight:900;letter-spacing:.08em}.pump-ingestion-header h2{margin:0;font-size:22px}.pump-ingestion-header p:not(.pump-ingestion-eyebrow){margin:6px 0 0;color:#526175;font-size:12px;line-height:1.45}.pump-ingestion-close{border:1px solid #94a3b8;border-radius:5px;background:#fff;color:#334155;font-weight:800;padding:7px 10px;cursor:pointer}.pump-ingestion-status{margin:16px 20px 10px;border-left:4px solid #0284c7;border-radius:4px;background:#f0f9ff;padding:11px 12px;color:#0c4a6e;font-size:13px;font-weight:700;line-height:1.45}.pump-ingestion-status[data-tone="success"]{border-color:#16a34a;background:#f0fdf4;color:#166534}.pump-ingestion-status[data-tone="warning"]{border-color:#d97706;background:#fffbeb;color:#92400e}.pump-ingestion-status[data-tone="error"]{border-color:#dc2626;background:#fef2f2;color:#991b1b}.pump-ingestion-progress{display:block;width:calc(100% - 40px);height:12px;margin:0 20px;accent-color:#0f766e}.pump-ingestion-eta{min-height:18px;margin:7px 20px 0;color:#526175;font-size:11px}.pump-ingestion-section{margin:14px 20px;border:1px solid #d8e2ec;border-radius:8px;padding:14px}.pump-ingestion-section h3{margin:0 0 10px;font-size:14px}.pump-ingestion-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.pump-ingestion-action{min-height:34px;border:1px solid #176a9b;border-radius:5px;background:#e8f3ff;color:#123b5a;font-size:12px;font-weight:800;padding:7px 11px;cursor:pointer}.pump-ingestion-action:hover:not(:disabled){background:#d9ecff}.pump-ingestion-action:focus-visible,.pump-ingestion-close:focus-visible,.pump-ingestion-file:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}.pump-ingestion-action:disabled{border-color:#cbd5e1;background:#f8fafc;color:#94a3b8;cursor:not-allowed}.pump-ingestion-action-primary{background:#0f766e;border-color:#0f766e;color:#fff}.pump-ingestion-action-primary:hover:not(:disabled){background:#115e59}.pump-ingestion-action-danger{border-color:#dc2626;background:#fff;color:#b91c1c}.pump-ingestion-file{display:block;width:100%;box-sizing:border-box;border:1px solid #aebdce;border-radius:5px;background:#fff;padding:9px;font-size:12px}.pump-ingestion-details{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(220px,1.3fr);gap:7px 12px;margin:16px 20px 20px;padding:12px;border-radius:7px;background:#f8fafc;font-size:11px}.pump-ingestion-details dt{color:#526175;font-weight:800}.pump-ingestion-details dd{margin:0;color:#172033}.pump-ingestion-dialog button[hidden],.pump-ingestion-progress[hidden]{display:none!important}
@media(max-width:640px){.pump-ingestion-overlay{padding:6px}.pump-ingestion-dialog{max-height:98vh}.pump-ingestion-header{padding:14px}.pump-ingestion-status,.pump-ingestion-section,.pump-ingestion-details{margin-left:12px;margin-right:12px}.pump-ingestion-progress{width:calc(100% - 24px);margin-left:12px;margin-right:12px}.pump-ingestion-actions{display:grid;grid-template-columns:1fr}.pump-ingestion-action{width:100%}.pump-ingestion-details{grid-template-columns:1fr}.pump-ingestion-details dd{margin-bottom:7px}}
/* Google Picker defaults (1000/1001) sit below the task window and upload dialog. */
.npsh-drive-picker-open .picker-dialog-bg { z-index: 10060 !important; }
.npsh-drive-picker-open .picker-dialog { z-index: 10061 !important; }
.pump-ingestion-dialog a.pump-ingestion-action { display: inline-block; box-sizing: border-box; margin-top: 10px; text-decoration: none; }
.pump-ingestion-dialog a[hidden] { display: none !important; }
.pump-repair-dialog { overflow-wrap: anywhere; }
.pump-repair-dialog select { max-width: 100%; min-width: 0; margin-top: 8px; }
.pump-repair-dialog pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; }
.pump-repair-dialog .pump-ingestion-title-wrap { min-width: 0; }
.pump-repair-dialog .pump-ingestion-header { color: #172033; }
